comparison a09.c @ 25:c4e3abe97e2c

rmb in os9 mode
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 10 Jul 2018 15:38:58 +0900
parents 7104ad38bed3
children 51a35f0347f6
comparison
equal deleted inserted replaced
24:7104ad38bed3 25:c4e3abe97e2c
314 void generate() 314 void generate()
315 { 315 {
316 generating = 1; 316 generating = 1;
317 if (prevloc) { 317 if (prevloc) {
318 oldlc = loccounter = prevloc-1 ; 318 oldlc = loccounter = prevloc-1 ;
319 prevloc = 0; 319 os9 = prevloc = 0;
320 } 320 }
321 } 321 }
322 322
323 323
324 char namebuf[MAXIDLEN+1]; 324 char namebuf[MAXIDLEN+1];
1135 while (*srcptr==',') { // there are some more 1135 while (*srcptr==',') { // there are some more
1136 srcptr++; 1136 srcptr++;
1137 putword(scanexpr(0)); 1137 putword(scanexpr(0));
1138 skipspace(); 1138 skipspace();
1139 } 1139 }
1140 if(pass==2) {
1141 outbuffer();
1142 }
1143 loccounter+=codeptr;
1144 codeptr=0;
1145 prevloc = loccounter+1;
1146 oldlc = loccounter = 0;
1147 } 1140 }
1148 1141
1149 void os9end() 1142 void os9end()
1150 { 1143 {
1151 crc = crc ^ 0xffffff; 1144 crc = crc ^ 0xffffff;
1269 operand=scanexpr(0); 1262 operand=scanexpr(0);
1270 if(unknown)error|=4; 1263 if(unknown)error|=4;
1271 if(!operand)suppress=2; 1264 if(!operand)suppress=2;
1272 break; 1265 break;
1273 case 12: /* ORG */ 1266 case 12: /* ORG */
1274 if (os9 && !prevloc) prevloc = loccounter+1;
1275 operand=scanexpr(0); 1267 operand=scanexpr(0);
1276 if(unknown)error|=4; 1268 if(unknown)error|=4;
1277 if(generating&&pass==2&&!outmode&&!os9) { 1269 if(generating&&pass==2&&!outmode&&!os9) {
1278 for(i=0;i<(unsigned short)operand-loccounter;i++) 1270 for(i=0;i<(unsigned short)operand-loccounter;i++)
1279 fputc(0,objfile); 1271 fputc(0,objfile);
1400 outbuffer(); 1392 outbuffer();
1401 if(listing)outlist(); 1393 if(listing)outlist();
1402 } 1394 }
1403 if(error)report(); 1395 if(error)report();
1404 loccounter+=codeptr; 1396 loccounter+=codeptr;
1397 if (os9 && prevloc==0 ) {
1398 prevloc = loccounter+1;
1399 oldlc = loccounter = 0;
1400 }
1405 } 1401 }
1406 1402
1407 void 1403 void
1408 suppressline() 1404 suppressline()
1409 { 1405 {