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