comparison src/v09.c @ 84:9b661787d5ed

2Mbyte
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Sat, 11 Aug 2018 18:16:04 +0900
parents 2e3d4b54ec2d
children 4652761a60f9
comparison
equal deleted inserted replaced
83:2e3d4b54ec2d 84:9b661787d5ed
101 #ifdef USE_MMU 101 #ifdef USE_MMU
102 /* 102 /*
103 * In case of Coco, there is no ROM (switched out after boot ) 103 * In case of Coco, there is no ROM (switched out after boot )
104 * 0x00000-0x0fdff normal mem 104 * 0x00000-0x0fdff normal mem
105 * 0x0fe00-0x0ffff ram fixed address ram including io 105 * 0x0fe00-0x0ffff ram fixed address ram including io
106 * 0x10000-0x7ffff ram (512Kb memory current implementation) 106 * 0x10000-0x1fffff ram (2MB memory )
107 * it should have 2MB memory 107 * >0x200000 lapround
108 * 0x10000-0xfffff ram
109 * >0x100000 lapround
110 * 108 *
111 * discless boot 109 * discless boot
112 * rom image will be copyied from 0xed00-0x1xxxx (all ram) 110 * rom image will be copyied from 0x7eed00-0x7fxxxx (all ram)
113 * boot copies 0x10000-0x1xxxx to os9's boot memory (ususally done by rel.asm ) 111 * boot copies 0x800000-0x8xxxx to os9's boot memory (ususally done by rel.asm )
114 * after that 0x10000-0x1xxx will be all free 112 * (original system copies it from fd or hd)
113 * after that 0x800000-0x8xxxx will be all free
115 */ 114 */
116 phymem = malloc(memsize + len - 0x2000); 115 phymem = malloc(memsize );
117 rommemsize = memsize + len - 0x2000; 116 rommemsize = memsize ;
118 mem = phymem + memsize - 0x10000 ; 117 mem = phymem + 0x38*0x2000;
119 mmu = &mem[0xffa0]; 118 mmu = &mem[0xffa0];
120 prog = (char*)mem; 119 prog = (char*)mem;
121 if (romstart==0x8000) { 120 if (romstart==0x8000) {
122 // romstart = memsize - 0x10000 + 0xed00 ;
123 romstart = memsize ; // full 512kb mem 121 romstart = memsize ; // full 512kb mem
124 } 122 }
125 fread(mem+ 0xe000,len,1,image); 123 fread(mem+ 0xe000,len,1,image);
124 mem[0xff90] = 0;
126 mem[0xffa7] = 0x3f; 125 mem[0xffa7] = 0x3f;
127 #else 126 #else
128 if (romstart==0x8000) { 127 if (romstart==0x8000) {
129 romstart = 0x10000 - len; 128 romstart = 0x10000 - len;
130 } 129 }
152 { 151 {
153 char *imagename=0; 152 char *imagename=0;
154 int i; 153 int i;
155 int setterm = 1; 154 int setterm = 1;
156 timerirq = 2; // use FIRQ default 155 timerirq = 2; // use FIRQ default
157 memsize = 512*1024; // full 2 mbute 156 memsize = 512*1024*4; // full 2 mbute
158 escchar='\x1d'; 157 escchar='\x1d';
159 tracelo=0;tracehi=0xffff; 158 tracelo=0;tracehi=0xffff;
160 for(i=1;i<argc;i++) { 159 for(i=1;i<argc;i++) {
161 if (strcmp(argv[i],"-t")==0) { 160 if (strcmp(argv[i],"-t")==0) {
162 i++; 161 i++;