Mercurial > hg > Members > kono > os9 > sbc09
comparison TL1/TL1os9.asm @ 162:d3a9f5f7befb
fix TL1 PIC
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 09 Apr 2019 22:49:44 +0900 |
parents | 032578807a7d |
children | e09e66204c71 |
comparison
equal
deleted
inserted
replaced
161:91447c3ccd58 | 162:d3a9f5f7befb |
---|---|
51 WEND RMB 2 word end | 51 WEND RMB 2 word end |
52 PMODE RMB 1 0x20 main, 1 proc, 0 ? | 52 PMODE RMB 1 0x20 main, 1 proc, 0 ? |
53 RSW RMB 1 0 word lookup, 0xff word register mode in tlook | 53 RSW RMB 1 0 word lookup, 0xff word register mode in tlook |
54 GEND RMB 2 end of global name | 54 GEND RMB 2 end of global name |
55 SSW RMB 1 | 55 SSW RMB 1 |
56 modofs RMB 2 module library offset | |
56 | 57 |
57 filepath rmb 2 | 58 filepath rmb 2 |
58 parmptr rmb 2 | 59 parmptr rmb 2 |
59 stdin rmb 2 | 60 stdin rmb 2 |
60 adr rmb 2 | 61 adr rmb 2 |
66 ** | 67 ** |
67 LIBR equ . | 68 LIBR equ . |
68 ioentry rmb $80 | 69 ioentry rmb $80 |
69 readbuff rmb bufsiz+1 | 70 readbuff rmb bufsiz+1 |
70 | 71 |
71 OBJSTART RMB 2+12 | 72 OBJSTART RMB 12 |
72 | 73 |
73 | 74 |
74 * OBJECT PG AREA | 75 * OBJECT PG AREA |
75 | 76 |
76 WTBLE RMB $100+500 | 77 WTBLE RMB $100+500 |
82 size equ . | 83 size equ . |
83 | 84 |
84 name fcs /TL1/ | 85 name fcs /TL1/ |
85 fcb edition | 86 fcb edition |
86 | 87 |
87 | 88 ** OBJECT START |
88 start clr <stdin | 89 ****** |
90 C leas OBJECT,u | |
91 VARPTR lda INDN | |
92 lbsr close | |
93 clra os9 stdin | |
94 sta INDN | |
95 inca | |
96 sta OUTDN | |
97 LDX <PC | |
98 leay ,x | |
99 OBJMP JMP OBJECT,u | |
100 | |
101 | |
102 start ldy #-2 17 xx xx | |
103 sty modofs | |
104 clr <stdin | |
89 stx <parmptr save parameter pointer | 105 stx <parmptr save parameter pointer |
90 stu <work save parameter pointer | 106 stu <work save parameter pointer |
91 lda #READ. read access mode | 107 lda #READ. read access mode |
92 os9 I$Open open file | 108 os9 I$Open open file |
93 lbcs ferr branch if error | 109 lbcs ferr branch if error |
297 BNE SS3 | 313 BNE SS3 |
298 BSR STPOUT | 314 BSR STPOUT |
299 WORD1 LBRA WORD | 315 WORD1 LBRA WORD |
300 ** | 316 ** |
301 STPOUT LBSR PUTHSL | 317 STPOUT LBSR PUTHSL |
302 FCB 3,$7E | 318 FCB 3,$16 |
303 FDB exit | 319 FDB exit |
304 RTS | 320 RTS |
305 ** | 321 ** |
306 * RETURN | 322 * RETURN |
307 ** | 323 ** |
547 LBRA CHECK | 563 LBRA CHECK |
548 ** write command argument | 564 ** write command argument |
549 WTERM CMPA #$6C string | 565 WTERM CMPA #$6C string |
550 BNE WR1 | 566 BNE WR1 |
551 LBSR PUTHSL | 567 LBSR PUTHSL |
552 FDB $03BD | 568 FDB $0317 |
553 FDB PUTSTR | 569 FDB PUTSTR |
554 LDA CH | 570 LDA CH |
555 WR01 CMPA #'"' copy until '"' | 571 WR01 CMPA #'"' copy until '"' |
556 BEQ WR02 | 572 BEQ WR02 |
557 LBSR PUTA | 573 LBSR PUTA |
566 BNE WR3 | 582 BNE WR3 |
567 LBSR WORD | 583 LBSR WORD |
568 CMPA #$37 | 584 CMPA #$37 |
569 BEQ WR2 | 585 BEQ WR2 |
570 LBSR PUTHSL | 586 LBSR PUTHSL |
571 FDB $03BD | 587 FDB $0317 |
572 FDB CRLF | 588 FDB CRLF |
573 RTS | 589 RTS |
574 ** | 590 ** |
575 WR2 LBSR WEXPR | 591 WR2 LBSR WEXPR |
576 BSR WTEN | 592 BSR WTEN |
577 LBSR PUTHSL | 593 LBSR PUTHSL |
578 FDB $03BD | 594 FDB $0317 |
579 FDB CRLFA | 595 FDB CRLFA |
580 RTS | 596 RTS |
581 ** | 597 ** |
582 WR3 CMPA #$6A | 598 WR3 CMPA #$6A |
583 BNE WR4 | 599 BNE WR4 |
584 LBSR SUBSC | 600 LBSR SUBSC |
585 LBSR PUTHSL | 601 LBSR PUTHSL |
586 FDB $03BD | 602 FDB $0317 |
587 FDB SPACEA | 603 FDB SPACEA |
588 RTS | 604 RTS |
589 ** | 605 ** |
590 WR4 CMPA #$A9 | 606 WR4 CMPA #$A9 |
591 BNE WR5 | 607 BNE WR5 |
592 LBSR SUBSC | 608 LBSR SUBSC |
593 LBSR PUTHSL | 609 LBSR PUTHSL |
594 FDB $03BD | 610 FDB $0317 |
595 FDB PUTCA | 611 FDB PUTCA |
596 RTS | 612 RTS |
597 ** | 613 ** |
598 WR5 CMPA #$26 | 614 WR5 CMPA #$26 |
599 BNE WR6 | 615 BNE WR6 |
600 LBSR DSUBSC | 616 LBSR DSUBSC |
601 LBSR PUTPLB | 617 LBSR PUTPLB |
602 LBSR PUTHSL | 618 LBSR PUTHSL |
603 FDB $03BD | 619 FDB $0317 |
604 FDB PUTDA+1 | 620 FDB PUTDA+1 |
605 BRA WR66 | 621 BRA WR66 |
606 ** | 622 ** |
607 WR6 LBSR EXPR | 623 WR6 LBSR EXPR |
608 LBSR PUTHSL | 624 LBSR PUTHSL |
609 FDB $03BD | 625 FDB $0317 |
610 FDB PUTDA | 626 FDB PUTDA |
611 WR66 | 627 WR66 |
612 RTS11 RTS | 628 RTS11 RTS |
613 ** | 629 ** |
614 * use X for LB, OR use Y for GB BY | 630 * use X for LB, OR use Y for GB BY |
985 PULS A | 1001 PULS A |
986 CMPA #$8E | 1002 CMPA #$8E |
987 BHS ME4 | 1003 BHS ME4 |
988 LBSR PUTHSL | 1004 LBSR PUTHSL |
989 FCB 3 | 1005 FCB 3 |
990 FCB $BD | 1006 FCB $17 |
991 FDB MULT | 1007 FDB MULT |
992 BRA ME1 | 1008 BRA ME1 |
993 ME4 LBSR PUTHSL | 1009 ME4 LBSR PUTHSL |
994 FCB 3 | 1010 FCB 3 |
995 FCB $BD | 1011 FCB $17 |
996 FDB DIV | 1012 FDB DIV |
997 BRA ME1 | 1013 BRA ME1 |
998 ** | 1014 ** |
999 * TERM | 1015 * TERM |
1000 ** | 1016 ** |
1087 SUBA #$C0 | 1103 SUBA #$C0 |
1088 PFC3 BEQ PFC4 | 1104 PFC3 BEQ PFC4 |
1089 LEAX 2,X | 1105 LEAX 2,X |
1090 DECA | 1106 DECA |
1091 BRA PFC3 | 1107 BRA PFC3 |
1092 PFC4 LDA #$BD | 1108 PFC4 LDA #$17 |
1093 LBSR PUTA | 1109 LBSR PUTA |
1094 LDD ,X | 1110 LDD ,X |
1095 LBRA PUTAB | 1111 LBRA PUTAB |
1096 ** | 1112 ** |
1097 OLP LBSR OLOAD | 1113 OLP LBSR OLOAD |
1104 ** FUNCTION RND | 1120 ** FUNCTION RND |
1105 TM6 CMPA #$70 | 1121 TM6 CMPA #$70 |
1106 BNE TM61 | 1122 BNE TM61 |
1107 BSR SUBSC | 1123 BSR SUBSC |
1108 LBSR PUTHSL | 1124 LBSR PUTHSL |
1109 FCB $03BD | 1125 FCB $0317 |
1110 FDB RND | 1126 FDB RND |
1111 RTS | 1127 RTS |
1112 * FUNTION GET | 1128 * FUNTION GET |
1113 TM61 CMPA #$71 | 1129 TM61 CMPA #$71 |
1114 BNE TM62 | 1130 BNE TM62 |
1115 BSR SUBSC | 1131 BSR SUBSC |
1116 LBSR PUTHS | 1132 LBSR PUTHS |
1117 FDB $0297 | 1133 FDB $0297 |
1118 FCB INDN | 1134 FCB INDN |
1119 LBSR PUTHSL | 1135 LBSR PUTHSL |
1120 FCB $03BD | 1136 FCB $0317 |
1121 FDB getchar | 1137 FDB getchar |
1122 RTS | 1138 RTS |
1123 * FUNCTION READ | 1139 * FUNCTION READ |
1124 TM62 CMPA #$72 | 1140 TM62 CMPA #$72 |
1125 BNE TM7 | 1141 BNE TM7 |
1226 COM ,X | 1242 COM ,X |
1227 LDX 1,X | 1243 LDX 1,X |
1228 STX YR | 1244 STX YR |
1229 LDX XR | 1245 LDX XR |
1230 LEAX 1,X | 1246 LEAX 1,X |
1231 BSR PCST | 1247 BSR RPCST |
1232 LDX YR | 1248 LDX YR |
1233 DP1 BEQ RT10 | 1249 DP1 BEQ RT10 |
1234 LDX ,X | 1250 LDX ,X |
1235 STX ZR | 1251 STX ZR |
1236 LDX YR | 1252 LDX YR |
1237 BSR PCST | 1253 BSR RPCST |
1238 LDX ZR | 1254 LDX ZR |
1239 STX YR | 1255 STX YR |
1240 BRA DP1 | 1256 BRA DP1 |
1257 RPCST LDD PC | |
1258 pshs x | |
1259 subd ,s++ | |
1260 subd #2 | |
1261 STD ,X | |
1262 RTS | |
1241 ** | 1263 ** |
1242 * CALL PORC-FUNC | 1264 * CALL PORC-FUNC |
1243 ** | 1265 ** |
1244 CALPF BSR SETPFT | 1266 CALPF BSR SETPFT |
1245 INCA | 1267 INCA |
1246 CMPA PFMAX | 1268 CMPA PFMAX |
1247 BCS *+4 | 1269 BCS *+4 |
1248 STA PFMAX | 1270 STA PFMAX |
1249 LDA #$BD | 1271 LDA #$17 |
1250 BSR AOUT | 1272 BSR AOUT |
1251 LDX XR | 1273 LDX XR |
1252 LDD 1,X | 1274 LDD 1,X |
1253 LDX PC | 1275 LDX PC |
1254 BSR STAABX | 1276 BSR STAABX |
1272 PULDEF BSR PULSTK | 1294 PULDEF BSR PULSTK |
1273 PCST LDD PC | 1295 PCST LDD PC |
1274 STAABX STD ,X | 1296 STAABX STD ,X |
1275 RT10 RTS | 1297 RT10 RTS |
1276 ** | 1298 ** |
1277 JMPOUT LDA #$7E | 1299 JMPOUT LDA #$16 |
1278 AOUT LDX PC | 1300 AOUT LDX PC |
1279 STA ,X | 1301 STA ,X |
1280 BRA INCPC1 | 1302 BRA INCPC1 |
1281 ** | 1303 ** |
1282 PULSTK LDX SP | 1304 PULSTK LDX SP |
1289 * PUL STACK & Jump | 1311 * PUL STACK & Jump |
1290 ** | 1312 ** |
1291 PULJMP BSR JMPOUT | 1313 PULJMP BSR JMPOUT |
1292 BSR PULSTK | 1314 BSR PULSTK |
1293 PCST2 LDX PC | 1315 PCST2 LDX PC |
1294 BSR STAABX | 1316 pshs x |
1317 subd ,s++ | |
1318 std ,x | |
1295 INCPC LEAX 1,X | 1319 INCPC LEAX 1,X |
1296 INCPC1 LEAX 1,X | 1320 INCPC1 LEAX 1,X |
1297 SETPC STX PC | 1321 SETPC STX PC |
1298 RTS | 1322 RTS |
1299 ** | 1323 ** |
1337 STD 4,S | 1361 STD 4,S |
1338 STX 2,S | 1362 STX 2,S |
1339 RTS | 1363 RTS |
1340 ** | 1364 ** |
1341 * PUTHSL output with address calculation | 1365 * PUTHSL output with address calculation |
1342 * only working on 3 byte 7E/BD (JMP/JSR) | 1366 * only working on 3 byte 16/17 (LBRA/LBSR) |
1343 ** | 1367 ** |
1344 PUTHSL LDX ,S++ | 1368 PUTHSL LDX ,S++ |
1345 LDB ,X+ | 1369 LDB ,X+ |
1346 LDA ,X+ | 1370 LDA ,X+ |
1347 LBSR PUTA | 1371 LBSR PUTA |
1348 LDD ,X++ | 1372 LDD ,X++ |
1349 leay 0,pcr | 1373 leay 0,pcr |
1350 leay d,y | 1374 leay d,y |
1351 exg d,y | 1375 exg d,y |
1376 addd modofs | |
1377 subd pc | |
1352 ldy pc | 1378 ldy pc |
1353 std ,y++ | 1379 std ,y++ |
1354 sty pc | 1380 sty pc |
1355 JMP ,X | 1381 JMP ,X |
1356 ** | 1382 ** |
1361 LDA PFMAX | 1387 LDA PFMAX |
1362 EL1 BEQ EL | 1388 EL1 BEQ EL |
1363 TST ,X | 1389 TST ,X |
1364 BEQ UDERR | 1390 BEQ UDERR |
1365 EL2 LEAX 3,X | 1391 EL2 LEAX 3,X |
1366 DECA | 1392 DECA |
1367 BRA EL1 | 1393 BRA EL1 |
1368 UDERR PSHS A | 1394 UDERR PSHS A |
1369 STA ZR | 1395 STA ZR |
1370 SUBA PFMAX | 1396 SUBA PFMAX |
1371 NEGA | 1397 NEGA |
1378 PULS A | 1404 PULS A |
1379 LDX ZR | 1405 LDX ZR |
1380 BRA EL2 | 1406 BRA EL2 |
1381 EL LDX PC | 1407 EL LDX PC |
1382 LBRA C | 1408 LBRA C |
1383 | |
1384 ** OBJECT START | |
1385 ****** | |
1386 C leas OBJECT,u | |
1387 VARPTR lda INDN | |
1388 lbsr close | |
1389 clra os9 stdin | |
1390 sta INDN | |
1391 inca | |
1392 sta OUTDN | |
1393 LDX <PC | |
1394 leay ,x | |
1395 OBJMP JMP OBJECT,u | |
1396 | 1409 |
1397 ********************** | 1410 ********************** |
1398 * ADVANCE WORD | 1411 * ADVANCE WORD |
1399 ** | 1412 ** |
1400 WTABLE FCB 0 END MARK | 1413 WTABLE FCB 0 END MARK |