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