Mercurial > hg > Members > kono > os9 > sbc09
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++; |