comparison v09.c @ 11:ce7323f9b937

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Fri, 06 Jul 2018 18:31:38 +0900
parents cb7aa75418b8
children 111e5defb8ab
comparison
equal deleted inserted replaced
10:2a1338b218bf 11:ce7323f9b937
81 exit(2); 81 exit(2);
82 } 82 }
83 long len = filesize(image); 83 long len = filesize(image);
84 if (romstart==0x8000) { 84 if (romstart==0x8000) {
85 #ifdef USE_MMU 85 #ifdef USE_MMU
86 romstart = memsize - len; 86 phymem = malloc(memsize + len - 0x2000);
87 mem = phymem + memsize - 0x10000 ;
88 mmu = mem + 0xffa0;
89 romstart = memsize - 0x2000;
87 #else 90 #else
88 romstart = 0x10000 - len; 91 romstart = 0x10000 - len;
89 #endif 92 #endif
90 } 93 }
91 fread(mem+(romstart&0xffff),len,1,image); 94 fread(mem+(romstart&0xffff),len,1,image);
149 i++; 152 i++;
150 memsize=strtol(argv[i],(char**)0,0) & ~0xffff; 153 memsize=strtol(argv[i],(char**)0,0) & ~0xffff;
151 if (memsize < 512*1024) memsize = 512*1024; 154 if (memsize < 512*1024) memsize = 512*1024;
152 } else usage(); 155 } else usage();
153 } 156 }
154 #ifdef USE_MMU
155 phymem = malloc(memsize);
156 mem = phymem + memsize - 0x10000 ;
157 mmu = mem + 0xffa0;
158 #else
159 #ifdef MSDOS 157 #ifdef MSDOS
160 if((mem=farmalloc(65535))==0) { 158 if((mem=farmalloc(65535))==0) {
161 fprintf(stderr,"Not enough memory\n"); 159 fprintf(stderr,"Not enough memory\n");
162 exit(2); 160 exit(2);
163 } 161 }
164 #endif
165 #endif 162 #endif
166 read_image(); 163 read_image();
167 if (setterm) set_term(escchar); 164 if (setterm) set_term(escchar);
168 pcreg=(mem[0xfffe]<<8)+mem[0xffff]; 165 pcreg=(mem[0xfffe]<<8)+mem[0xffff];
169 interpr(); 166 interpr();