.TITLE .GCML .IDENT /M15.06/ ; MODIFIED: ; 10/15/80 -- DANIEL STEINBERG -- USE IO.RPR FOR TERMINAL I/O .GLOBL A.DFUI .GLOBL FD.CCL .GLOBL FD.REC .GLOBL FD.TTY .GLOBL FO.RD .GLOBL F.BDB .GLOBL F.DFNB .GLOBL F.DSPT .GLOBL F.ERR .GLOBL F.FACC .GLOBL F.FNB .GLOBL F.NRBD .GLOBL F.RCTL .GLOBL F.URBD .GLOBL IE.EOF .GLOBL IE.RBG .GLOBL IO.ATT .GLOBL IO.DET .GLOBL IO.WVB .GLOBL $DSW .GLOBL .CLOSE .GLOBL .CSI1 .GLOBL .CSI2 .GLOBL .FINIT .GLOBL .FSRPT .GLOBL .GETSQ .GLOBL .MARK .GLOBL .OPFNB .GLOBL .PARSE .GLOBL .POINT .GLOBL .SAVR1 .GLOBL .XQIO .PSECT ......: ; .PSECT .ENABL LSB .GCML1:: JSR R5,.SAVR1 4$: MOV R0,R5 6$: CLR 146(R5) 12$: MOV 156(R5),150(R5) 20$: TSTB 152(R5) 24$: BEQ 62$ 26$: BGT 76$ 30$: JSR PC,1574$ 34$: BCS 44$ 36$: MOV R1,150(R5) 42$: BR 350$ 44$: MOV F.DSPT(R5),R2 50$: JSR PC,1520$ 54$: BCC 62$ 56$: JMP 662$ 62$: BITB #200,141(R5) 70$: BEQ 76$ 72$: JMP 552$ 76$: TST F.BDB(R5) 102$: BNE 110$ 104$: JSR PC,1256$ 110$: CMPB #IE.EOF,@F.BDB(R5) 116$: BNE 124$ 120$: JMP 520$ 124$: MOV #120,R4 ;SET DEFAULT SIZE OF INPUT BUFFER BITB #40,141(R5) ;IF GE.SIZ SET, USE SIZE FROM GCML BLOCK BEQ 125$ ; NOT SET...USE DEFAULT MOV 224(R5),R4 ;USE SIZE WORD 125$: SUB 146(R5),R1 BITB #FD.TTY,F.RCTL(R5) BEQ 255$ MOV 144(R5),R1 MOV 142(R5),R2 BNE 201$ MOV R5,R1 ADD #160,R1 MOV #6,R2 201$: CLR -(SP) ;VFC MOV R2,-(SP) ;PROMPT SIZE MOV R1,-(SP) ;PROMPT ADDR CLR -(SP) ;TMO MOV R4,-(SP) ;INPUT BUFFER SIZE MOV 156(R5),-(SP) ;INPUT BUFFER ADDR MOV SP,R3 MOV #6,R2 ;6 PARAMETERS MOV #IO.RPR,R1 JSR PC,.XQIO MOV (SP),R2 ;GET DEST ADDR MOV R2,F.NRBD+2(R5) ;SET ADDR IN FDB MOV F.BDB(R5),R1 ;GET ADDR OF I/O STATUS BLOCK MOV 2(R1),F.NRBD(R5) ;AND SET I/O SIZE IN FDB ADD #12.,SP ;POP 6 PARAMETERS BR 277$ 255$: MOV R5,R0 MOV 156(R5),F.URBD+2(R0) MOV R4,F.URBD(R0) JSR PC,.GETSQ 277$: MOV F.ERR(R5),R3 334$: TSTB R3 336$: BMI 476$ 340$: MOV F.NRBD+2(R5),R1 344$: MOV F.NRBD(R5),R2 350$: ADD R2,146(R5) 354$: TST R2 356$: BEQ 614$ 360$: BITB #10,141(R5) 366$: BNE 422$ 370$: MOV R2,-(SP) 372$: ADD R2,R1 374$: CMPB -(R1),#141 400$: BLT 414$ 402$: CMPB (R1),#172 406$: BGT 414$ 410$: BICB #40,(R1) 414$: DEC R2 416$: BNE 374$ 420$: MOV (SP)+,R2 422$: BITB #200,141(R5) 430$: BEQ 440$ 432$: TSTB 152(R5) 436$: BEQ 754$ 440$: CMP 156(R5),150(R5) 446$: BEQ 454$ 450$: JMP 1162$ 454$: CMPB #73,(R1) 460$: BNE 754$ 462$: BITB #1,141(R5) 470$: BEQ 614$ 472$: JMP 6$ 476$: CMPB R3,#IE.RBG 502$: BNE 512$ 504$: MOV #177730,-(SP) 510$: BR 616$ 512$: CMPB #IE.EOF,R3 516$: BNE 654$ 520$: MOVB 152(R5),R0 524$: BEQ 552$ 526$: DEC R0 530$: BNE 542$ 532$: BITB #200,141(R5) 540$: BNE 552$ 542$: JSR PC,1250$ 546$: JMP 76$ 552$: MOV R5,R0 554$: JSR PC,.CLOSE 560$: BICB #200,141(R5) 566$: DECB 152(R5) 572$: MOV #44524,220(R5) 600$: MOVB #!FD.CCL,F.RCTL(R5) 606$: MOV #177766,-(SP) 612$: BR 616$ 614$: CLR -(SP) 616$: BITB #4,141(R5) 624$: BEQ 642$ 626$: MOV F.ERR(R5),-(SP) 632$: JSR PC,1424$ 636$: MOV (SP)+,F.ERR(R5) 642$: MOVB (SP),140(R5) 646$: ROL (SP)+ 650$: MOV R5,R0 652$: RTS PC 654$: MOV #177777,-(SP) 660$: BR 616$ 662$: MOV #177776,-(SP) 666$: BR 616$ 670$: ADD #54,SP 674$: MOV #177775,-(SP) 700$: BR 616$ 702$: MOV #177774,-(SP) 706$: BR 616$ .GCML2:: 710$: JSR R5,.SAVR1 714$: MOV R0,R5 716$: TSTB 152(R5) 722$: BLE 614$ 724$: DECB 152(R5) 730$: BEQ 742$ 732$: SUB #20,154(R5) 740$: BR 724$ 742$: INCB 152(R5) 746$: JSR PC,1250$ 752$: BR 614$ 754$: CMPB #100,(R1) 760$: BNE 1162$ 762$: BITB #2,141(R5) 770$: BEQ 614$ 772$: CMPB 152(R5),153(R5) 1000$: BGE 702$ 1002$: SUB #54,SP 1006$: CMPB (R1)+,-(R2) 1010$: MOV SP,R0 1012$: MOV R1,4(R0) 1016$: MOV R2,2(R0) 1022$: JSR PC,.CSI1 1026$: MOV 2(R0),146(R5) 1034$: INC 146(R5) 1040$: BCS 670$ 1042$: BITB #40,1(R0) 1050$: BNE 670$ 1052$: MOVB #2,(R0) 1056$: JSR PC,.CSI2 1062$: BCS 670$ 1064$: BITB #30,1(R0) 1072$: BNE 670$ 1074$: BITB #5,1(R0) 1102$: BEQ 670$ 1104$: JSR PC,1432$ 1110$: MOV SP,R2 1112$: ADD #6,R2 1116$: MOV #54523,220(R5) 1124$: JSR PC,1520$ 1130$: BCS 1154$ 1132$: ADD #54,SP 1136$: CLR 146(R5) 1142$: MOV 156(R5),150(R5) 1150$: JMP 76$ 1154$: ADD #54,SP 1160$: BR 662$ 1162$: BITB #20,141(R5) 1170$: BEQ 1244$ 1172$: TSTB 152(R5) 1176$: BNE 1210$ 1200$: BITB #200,141(R5) 1206$: BNE 1244$ 1210$: ADD R2,R1 1212$: CMPB -(R1),#55 1216$: BNE 1236$ 1220$: DEC R2 1222$: DEC 146(R5) 1226$: ADD R2,156(R5) 1232$: JMP 20$ 1236$: MOV 150(R5),156(R5) 1244$: JMP 614$ 1250$: MOV R5,R0 1252$: JSR PC,.CLOSE 1256$: MOV 154(R5),R4 1262$: SUB #20,154(R5) 1270$: DECB 152(R5) 1274$: BNE 1306$ 1276$: BITB #200,141(R5) 1304$: BNE 1410$ 1306$: MOV R5,R3 1310$: ADD #F.FNB+6,R3 1314$: MOV -(R4),-(R3) 1316$: MOV -(R4),-(R3) 1320$: MOV -(R4),-(R3) 1322$: MOV -(R4),32(R3) 1326$: MOVB -(R4),34(R3) 1332$: MOV R5,R0 1334$: MOVB #FO.RD,F.FACC(R0) 1342$: JSR PC,.OPFNB 1346$: BCS 1402$ 1350$: MOVB -(R4),-(SP) 1352$: MOV -(R4),R3 1354$: MOV -(R4),R2 1356$: MOV -(R4),R1 1360$: JSR PC,.POINT 1364$: MOVB (SP)+,@F.BDB(R5) 1370$: BCC 1414$ 1372$: CMPB #IE.EOF,F.ERR(R5) 1400$: BEQ 1414$ 1402$: MOV #......+662,(SP) 1406$: BR 1414$ 1410$: MOV #......+606,(SP) 1414$: RTS PC .GCML3:: 1416$: JSR R5,.SAVR1 1422$: MOV R0,R5 1424$: TST F.BDB(R5) 1430$: BEQ 1516$ 1432$: INCB 152(R5) 1436$: MOV 154(R5),R4 1442$: MOV R5,R0 1444$: JSR PC,.MARK 1450$: MOV R1,(R4)+ 1452$: MOV R2,(R4)+ 1454$: MOV R3,(R4)+ 1456$: ADD #F.FNB,R0 1462$: MOVB @F.BDB(R5),(R4)+ 1466$: MOVB 34(R0),(R4)+ 1472$: MOV 32(R0),(R4)+ 1476$: MOV (R0)+,(R4)+ 1500$: MOV (R0)+,(R4)+ 1502$: MOV (R0)+,(R4)+ 1504$: MOV R4,154(R5) 1510$: MOV R5,R0 1512$: JSR PC,.CLOSE 1516$: RTS PC 1520$: MOV R5,R0 1522$: MOV @#.FSRPT,R1 1526$: TST A.DFUI(R1) 1532$: BNE 1540$ 1534$: JSR PC,.FINIT 1540$: MOV R0,R1 1542$: ADD #F.FNB,R1 1546$: MOV F.DFNB(R0),R3 1552$: JSR PC,.PARSE 1556$: BCS 1572$ 1560$: MOVB #FO.RD,F.FACC(R0) 1566$: JSR PC,.OPFNB 1572$: RTS PC 1574$: MOV 156(R5),R1 1600$: CLRB 152(R5) 1604$: MOV #24577,(R1) 1610$: MOV R1,-(SP) 1612$: EMT 377 1614$: BCS 1710$ 1616$: TST (R1)+ 1620$: MOV @#$DSW,R2 1624$: JSR PC,1712$ 1630$: BCS 1710$ 1632$: CMPB R0,#57 1636$: BEQ 1676$ 1640$: CMPB R0,#11 1644$: BEQ 1654$ 1646$: CMPB R0,#40 1652$: BNE 1624$ 1654$: JSR PC,1712$ 1660$: BCS 1710$ 1662$: CMPB R0,#11 1666$: BEQ 1654$ 1670$: CMPB R0,#40 1674$: BEQ 1654$ 1676$: CMPB -(R1),(R2)+ 1700$: BISB #200,141(R5) 1706$: CLC 1710$: RTS PC 1712$: SUB #1,R2 1716$: MOVB (R1)+,R0 1720$: RTS PC .DSABL LSB .END