; P004 JBC TITLE P004 EXTERN ALPHO.,ALPHI.,EXIT,INTO.,INTI.,IFIX,DATE ; 1-BTX ENTRY ZSAC,ZRAC ENTRY BTX Y=1 N=2 M=3 X=4 Y1=5 S=6 Q=16 BTX: 0 JSA Q,ZSAC EXP BTXS EXP 6 MOVE Y,@(Q) MOVE N,@1(Q) MOVE M,@2(Q) MOVE X,@3(Q) MOVEI S,^D35 ADD S,N SUB S,M LSH X,(S) MOVN S,N LSH X,(S) SETO Y1, MOVEI S,^D35 ADD S,N SUB S,M LSH Y1,(S) MOVN S,N LSH Y1,(S) TDZ Y,Y1 ADD Y,X MOVEM Y,@(Q) JSA Q,ZRAC EXP BTXS EXP 6 JRA Q,4(Q) BTXS: BLOCK 7 ;2-BXT ENTRY BXT Y=1 N=2 M=3 Q=16 BXT: 0 JSA Q,ZSAC EXP BTXS EXP 4 MOVE Y,@1(Q) MOVE N,@2(Q) MOVE M,@3(Q) MOVE 4,N LSH Y,(4) MOVEI 4,^D35 ADD 4,N SUB M,4 LSH Y,(M) MOVEM Y,@(Q) JSA Q,ZRAC EXP BTXS EXP 4 JRA Q,4(Q) ;3-CAI ENTRY CAI I1=1 I2=2 I3=3 CAI: 0 JSA 16,ZSAC EXP FSAC EXP 7 MOVEM 1,FTMP1 MOVE 1,@(16) MOVEM 1,FARGK MOVE 1,FTMP1 HRRZ 1,1(16) MOVEM 1,FARGX MOVE 1,FTMP1 MOVE 1,@2(16) MOVEM 1,FARGN MOVE 1,FTMP1 MOVE 1,@3(16) MOVEM 1,FARGM SKIPG 4,FARGN JRST F9 MOVE I1,FARGM CAMGE I1,4 JRST F11 JSA 16,ZBSET EXP 5 EXP I1 EXP FARGX SETZ 7, F2: LDB 6,5 MOVEI 7," " CAME 6,7 JRST F1 SOS I1 CAMGE I1,4 JRST F10 JSA 16,ZDPTR EXP 5 JRST F2 F1: MOVEI I2,0 MOVEI I3,1 CAIG 6,71 CAIGE 6,60 JRST F10 F5: SUBI 6,60 IMUL 6,I3 ADD I2,6 SOS I1 CAMGE I1,4 JRST F3 JSA 16,ZDPTR EXP 5 LDB 6,5 CAIG 6,71 CAIGE 6,60 JRST F4 IMULI I3,12 JRST F5 F4: MOVEI 7," " CAME 6,7 JRST F7 SOS I1 CAMGE I1,4 JRST F3 JRST F4 F7: MOVEI 7,"-" CAME 6,7 JRST F8 MOVN I2,I2 F6: SOS I1 CAMGE I1,4 JRST F3 JSA 16,ZDPTR EXP 5 LDB 6,5 MOVEI 7," " CAME 6,7 JRST F10 JRST F6 F3: MOVEM I2,@(16) JSA 16,ZRAC EXP FSAC EXP 7 JRA 16,4(16) F8: MOVEI 7,"+" CAME 6,7 JRST F10 JRST F6 F9: JSA 16,ERROR EXP [11611] JRST F3 F10: JSA 16,ERROR EXP [11614] JRST F3 F11: JSA 16,ERROR EXP [11615] JRST F3 FTMP1: 0 FARGK: 0 FARGX: 0 FARGN: 0 FARGM: 0 FSAC: BLOCK 10 ;4-CAM ENTRY CAM I1=1 I2=2 I3=4 CAM: 0 JSA 16,ZSAC EXP CSAC EXP 11 SKIPG I1,@2(16) JRST C6 SKIPG I2,@4(16) JRST C6 SKIPG I3,@5(16) JRST C6 ADD I3,I1 SOS I3 HRRZ 3,1(16) JSA 16,ZBSET EXP 10 EXP I1 EXP 3 HRRZ 3,3(16) JSA 16,ZBSET EXP 11 EXP I2 EXP 3 C1: LDB 6,10 LDB 7,11 CAME 6,7 JRST C2 CAML I1,I3 JRST C3 AOS I1 IBP 10 IBP 11 JRST C1 C2: CAML 6,7 JRST C5 MOVE 5,[-1] MOVEM 5,@(16) JRST C4 C5: MOVEI 5,1 MOVEM 5,@(16) C4: JSA 16,ZRAC EXP CSAC EXP 11 JRA 16,6(16) C3: MOVEI 5,0 MOVEM 5,@(16) JRST C4 C6: JSA 16,ERROR EXP [^D5011] JRST C4 CSAC: BLOCK 12 ;5-CAR ENTRY CAR CAR: 0 SETZM @(16) JRA 16,4(16) ;6-CAW ENTRY CAW A=1 N=2 M=3 K1=4 N1=5 PTR=6 Q=16 CAW: 0 JSA Q,ZSAC EXP BTXS EXP 6 HRRZ A,1(Q) MOVE N,@2(Q) MOVE M,@3(Q) SETZ K1, JSA Q,ZBSET EXP PTR EXP N EXP A Q2: CAMLE N,M JRST Q1 LDB N1,PTR ANDI N1,7 LSH K1,3 ADD K1,N1 IBP PTR AOS N JRST Q2 Q1: MOVEM K1,@(Q) JSA Q,ZRAC EXP BTXS EXP 6 JRA Q,4(Q) ;7-CIA, 8-CIAP ENTRY CIA,CIAP I1=1 I2=2 I3=3 I4=4 CIA: 0 MOVEM 1,ETMP1 MOVEI 1," " MOVEM 1,ETMP2 MOVE 1,ETMP1 E5: JSA 16,ZSAC EXP ESAC EXP 6 MOVEM 1,ETMP1 HRRZ 1,(16) MOVEM 1,EARGX MOVE 1,@1(16) MOVEM 1,EARGN MOVE 1,@2(16) MOVEM 1,EARGM MOVE 1,@3(16) MOVEM 1,EARGK MOVE I4,ETMP2 SKIPG 5,EARGN JRST E7 MOVE I1,EARGM CAMG I1,5 JRST E7 SKIPGE I2,EARGK MOVN I2,I2 JSA 16,ZBSET EXP 6 EXP I1 EXP EARGX SKIPE I2 JRST E3 MOVEI I2,60 JRST E1 E3: IDIVI I2,12 ADDI I3,60 DPB I3,6 SKIPN I2 JRST E2 SOS I1 CAMGE I1,5 JRST E6 JSA 16,ZDPTR EXP 6 JRST E3 E2: SKIPL EARGK JRST E4 SOS I1 CAMGE I1,5 JRST E6 JSA 16,ZDPTR EXP 6 MOVEI I2,"-" E1: DPB I2,6 E4: CAMG I1,5 JRST E8 SOS I1 JSA 16,ZDPTR EXP 6 DPB I4,6 JRST E4 E6: JSA 16,ERROR EXP [11621] JRST E8 E7: JSA 16,ERROR EXP [11624] E8: JSA 16,ZRAC EXP ESAC EXP 6 JRA 16,4(16) CIAP: 0 MOVEM 1,ETMP1 MOVEI 1,"0" MOVEM 1,ETMP2 MOVE 1,ETMP1 JRST E5 ESAC: BLOCK 7 ETMP1: 0 ETMP2: 0 EARGX: 0 EARGN: 0 EARGM: 0 EARGK: 0 ;9-CRA ENTRY CRA I1=1 I2=2 I3=3 CRA: 0 JSA 16,ZSAC EXP GSAC EXP 5 MOVEM 1,GTMP1 HRRZ 1,(16) MOVEM 1,GX1 MOVEM 1,GX2 MOVEM 1,GX3 MOVEM 1,GX4 MOVEM 1,GX5 MOVEM 1,GX6 MOVE 1,@1(16) MOVEM 1,GARGN MOVE 1,@2(16) MOVEM 1,GARGY MOVE 4,GARGN CAIGE 4,17 JRST GQ9 MOVM I3,GARGY MOVEI 5,GTENS ADDI 5,^D67 CAML I3,(5) JRST GQ10 SOS 5 MOVEI I1,74 GQ3: CAML I3,(5) JRST GQ1 SOS I1 SKIPG I1 JRST GQ2 SOS 5 JRST GQ3 GQ1: MOVE I2,GM30 ADD I2,I1 SUBI 5,7 FDV I3,(5) FAD I3,[0.99999] JSA 16,IFIX EXP I3 MOVEM 0,I3 GQ7: MOVE 4,GARGN SUBI 4,16 SKIPGE GARGY JRST GQ8 JSA 16,MOVE GX1: EXP 0 EXP 4 EXP [ASCII /+0./] EXP [1] EXP [3] JRST GQ4 GQ8: JSA 16,MOVE GX2: EXP 0 EXP 4 EXP [ASCII /-0./] EXP [1] EXP [3] GQ4: ADDI 4,3 MOVE 5,4 ADDI 5,7 JSA 16,CIAP GX3: EXP 0 EXP 4 EXP 5 EXP I3 SKIPGE I2 JRST GQ5 ADDI 4,10 JSA 16,MOVE GX4: EXP 0 EXP 4 EXP [ASCII /E+/] EXP [1] EXP [2] JRST GQ6 GQ5: ADDI 4,10 JSA 16,MOVE GX5: EXP 0 EXP 4 EXP [ASCII /E-/] EXP [1] EXP [2] GQ6: ADDI 4,2 MOVM I2,I2 JSA 16,CIAP GX6: EXP 0 EXP 4 EXP GARGN EXP I2 GQ11: JSA 16,ZRAC EXP GSAC EXP 5 JRA 16,3(16) GQ2: SETZ I2, SETZ I3, JRST GQ7 GQ9: JSA 16,ERROR EXP [^D5006] JRST GQ11 GQ10: JSA 16,ERROR EXP [^D5013] JRST GQ11 GTENS: REPEAT ^D68,<10.0E<.-GTENS-^D37>> GM30: 777777777743 GSAC: BLOCK 6 GTMP1: 0 GARGX: 0 GARGN: 0 GARGY: 0 ;10-CWA ENTRY CWA A=1 N=2 M=3 K=4 N1=5 PTR=6 Q=16 CWA: 0 JSA Q,ZSAC EXP BTXS EXP 6 HRRZ A,(Q) MOVE N,@1(Q) MOVE M,@2(Q) MOVE K,@3(Q) JSA Q,ZBSET EXP PTR EXP M EXP A CWAQ2: CAMGE M,N JRST CWAQ1 MOVE N1,K ANDI N1,7 LSH K,-3 ADDI N1,60 DPB N1,PTR JSA Q,ZDPTR EXP PTR SOS M JRST CWAQ2 CWAQ1: JRA Q,4(Q) ;11-ECSM ENTRY ECSM ECSM: 0 JRA 16,(16) ;12-EJECT ENTRY EJECT EJECT: 0 JSA 16,PUTL MOVEM 1,KTMP1 MOVE 1,RGI2 MOVEM 1,RGI5 MOVE 1,KTMP1 JRA 16,(16) KTMP1: 0 ;13-FRG ENTRY FRG FRG: 0 MOVEM 0,RTMP0 MOVEM 1,RTMP1 JSA 16,PUTL HRRZ 0,NDEV HRRM 0,.+2 MOVEI 1,RFMT4 OUT. 1,0 FIN. MOVE 0,RTMP0 MOVE 1,RTMP1 JRA 16,(16) RTMP0: 0 RTMP1: 0 RFMT4: ASCII "(1H1,10HEND OF JOB)" ;14-IRG ENTRY IRG IRG: 0 MOVEM 1,ITMP1 MOVEM 2,ITMP2 MOVE 1,@(16) MOVEM 1,RGI3 HRRZ 1,1(16) MOVEM 1,IT1 HRRZ 1,2(16) MOVEM 1,IT2 HRRZ 1,3(16) MOVEM 1,IARGD MOVEM 1,ID3 MOVE 1,@4(16) HRRZM 1,NDEV JSA 16,SETB EXP RGA1 EXP [1] EXP [^D120] JSA 16,SETB EXP RGA3 EXP [1] EXP [^D120] JSA 16,MOVE EXP RGA1 EXP [1] IT1: EXP 0 EXP [1] EXP [^D50] JSA 16,ZBSET EXP ITMP3 EXP [3] EXP IARGD SETZ 1, LDB 1,ITMP3 SETZ 2, MOVEI 2,"X" CAMN 1,2 JRST IQ1 MOVEI 2," " CAME 1,2 JRST IQ2 IQ1: HRRZI 2,IDATE MOVEM 2,ID2 MOVEM 2,ID3 JSA 16,DATE ID2: EXP 0 IQ2: JSA 16,MOVE EXP RGA1 EXP [^D90] ID3: EXP 0 EXP [1] EXP [^D8] JSA 16,MOVE EXP RGA1 EXP [^D113] EXP [ASCII /PAGE/] EXP [1] EXP [4] JSA 16,TITLE2 IT2: EXP 0 MOVE 1,RGI2 MOVEM 1,RGI5 SETZ 1, MOVEM 1,RGI6 MOVEM 1,RGI12 MOVE 1,ITMP1 MOVE 2,ITMP2 JRA 16,5(16) RGA1: REPEAT ^D24, RGA2: REPEAT ^D24, RGI1: EXP ^D119 RGI2: EXP ^D50 RGI3: EXP ^D50 RGI4: EXP ^D3 RGI5: EXP ^D50 RGI6: 0 IDATE: BLOCK 2 ITMP1: 0 ITMP2: 0 ITMP3: 0 IARGD: 0 ;15-LAND ENTRY LAND LAND: 0 MOVE 0,@1(16) ANDM 0,@(16) JRA 16,2(16) ;16-LCSM ENTRY LCSM LCSM: 0 JRA 16,(16) ;17-LNOT ENTRY LNOT LNOT: 0 SETCMM @(16) JRA 16,1(16) ;18-LOR ENTRY LOR LOR: 0 MOVE 0,@1(16) ORM 0,@(16) JRA 16,2(16) ;19-LXOR ENTRY LXOR LXOR: 0 MOVE 0,@1(16) XORM 0,@(16) JRA 16,2(16) ;20-MOVE ENTRY MOVE I1=1 I2=2 I3=4 MOVE: 0 JSA 16,ZSAC EXP BSAC EXP 7 SKIPG I1,@1(16) JRST B3 SKIPG I2,@3(16) JRST B3 SKIPG I3,@4(16) JRST B3 ADD I3,I1 SOS I3 HRRZ 3,(16) JSA 16,ZBSET EXP 5 EXP I1 EXP 3 HRRZ 3,2(16) JSA 16,ZBSET EXP 6 EXP I2 EXP 3 B1: LDB 7,6 DPB 7,5 CAML I1,I3 JRST B2 AOS I1 IBP 5 IBP 6 JRST B1 B2: JSA 16,ZRAC EXP BSAC EXP 7 JRA 16,5(16) B3: JSA 16,ERROR EXP [^D5010] JRST B2 BSAC: BLOCK 10 ;21-MSG ENTRY MSG MSG: 0 MOVEM 1,JTMP1 HRRZ 1,(16) MOVEM 1,JARGN MOVE 1,JTMP1 HRRZ 1,1(16) MOVEM 1,JARGX JSA 16,PUTL JSA 16,PUTA JARGX: EXP 0 JARGN: EXP 0 JSA 16,PUTL MOVE 1,JTMP1 JRA 16,2(16) JTMP1: 0 ;22-PUTA ENTRY PUTA PUTA: 0 MOVEM 1,MTMP1 HRRZ 0,(16) MOVEM 0,MARGX SKIPG 1,@1(16) JRST MQ2 MOVEM 1,MARGN HRRZI 1,1 MOVEM 1,RGI7 MQ1: JSA 16,MOVE EXP RGT EXP [1] MARGX: EXP 0 EXP RGI7 EXP [1] JSA 16,ZRGS2 MOVE 1,RGI7 ADDI 1,1 MOVEM 1,RGI7 CAMG 1,MARGN JRST MQ1 M1: MOVE 1,MTMP1 JRA 16,2(16) MQ2: JSA 16,ERROR EXP [4732] JRST M1 MTMP1: 0 RGT: EXP [ASCII / /] MARGN: 0 RGI7: 0 ;23-PUTB ENTRY PUTB PUTB: 0 MOVEM 1,PTMP1 SKIPG 1,@(16) JRST PQ2 MOVEM 1,PARGN JSA 16,MOVE EXP RGT EXP [1] EXP [ASCII / /] EXP [1] EXP [1] HRRZI 1,1 MOVEM 1,RGI7 PQ1: JSA 16,ZRGS2 ADDI 1,1 MOVEM 1,RGI7 CAMG 1,PARGN JRST PQ1 P1: MOVE 1,PTMP1 JRA 16,1(16) PQ2: JSA 16,ERROR EXP [3734] JRST P1 PARGN: 0 PTMP1: 0 ;24-PUTI ENTRY PUTI PUTI: 0 MOVEM 1,NTMP1 HRRZ 1,(16) MOVEM 1,NARGN JSA 16,CIA EXP RGU EXP [1] EXP [^D10] NARGN: EXP 0 HRRZI 1,1 MOVEM 1,RGI7 NQ2: JSA 16,CAM EXP RGI13 EXP RGU EXP RGI7 EXP [ASCII / /] EXP [1] EXP [1] SKIPE RGI13 JRST NQ1 MOVE 1,RGI7 ADDI 1,1 MOVEM 1,RGI7 SUBI 1,^D10 JUMPG 1,NQ3 JRST NQ2 NQ1: JSA 16,MOVE EXP RGT EXP [1] EXP RGU EXP RGI7 EXP [1] JSA 16,ZRGS2 MOVE 1,RGI7 ADDI 1,1 MOVEM 1,RGI7 CAIG 1,^D10 JRST NQ1 NN1: MOVE 1,NTMP1 JRA 16,1(16) NQ3: JSA 16,ERROR EXP [000000] JRST NN1 NTMP1: 0 RGI13: 0 RGU: REPEAT 3, ;25-PUTL ENTRY PUTL PUTL: 0 MOVEM 1,QTMP1 JSA 16,MOVE EXP RGT EXP [1] EXP [ASCII / /] EXP [1] EXP [1] QQ2: SKIPN 1,RGI12 JRST QQ1 JSA 16,ZRGS2 JRST QQ2 QQ1: MOVE 1,QTMP1 JRA 16,(16) QTMP1: 0 ;26-PUTR ENTRY PUTR PUTR: 0 MOVEM 1,OTMP1 HRRZ 1,(16) MOVEM 1,OARGX JSA 16,CRA EXP RGU EXP [^D15] OARGX: EXP 0 HRRZI 1,1 MOVEM 1,RGI7 OQ1: JSA 16,MOVE EXP RGT EXP [1] EXP RGU EXP RGI7 EXP [1] JSA 16,ZRGS2 MOVE 1,RGI7 ADDI 1,1 MOVEM 1,RGI7 CAIG 1,^D15 JRST OQ1 MOVE 1,OTMP1 JRA 16,1(16) OTMP1: 0 ;28-SETB ENTRY SETB I1=1 I2=2 SETB: 0 JSA 16,ZSAC EXP ASAC EXP 5 SKIPG I1,@1(16) JRST A3 SKIPG I2,@2(16) JRST A3 ADD I2,I1 SOS I2 HRRZ 3,(16) MOVEI 4," " JSA 16,ZBSET EXP 5 EXP I1 EXP 3 A1: DPB 4,5 CAML I1,I2 JRST A2 AOS I1 IBP 5 JRST A1 A2: JSA 16,ZRAC EXP ASAC EXP 5 JRA 16,3(16) A3: JSA 16,ERROR EXP [^D5000] JRST A2 ASAC: BLOCK 6 ;29-SPACE ENTRY SPACE SPACE: 0 MOVEM 0,LTMP0 MOVEM 1,LTMP1 SKIPG 1,@(16) JRST LQ2 MOVEM 1,LARGN HRRZI 1,1 MOVEM 1,LI1 LQ1: JSA 16,ZRGS1 JSA 16,PUTL JSA 16,PUTA EXP [ASCII / /] EXP 1 JSA 16,PUTL MOVE 1,LI1 ADDI 1,1 MOVEM 1,LI1 CAMG 1,LARGN JRST LQ1 LQ3: MOVE 0,LTMP0 MOVE 1,LTMP1 JRA 16,1(16) LTMP0: 0 LTMP1: 0 LFMT5: ASCII "(1H )" LARGN: 0 LQ2: JSA 16,ERROR EXP [^D2005] JRST LQ3 LI1: 0 ;30-TITLE2 ENTRY TITLE2 TITLE2: 0 MOVEM 1,UTMP1 HRRZ 1,(16) MOVEM 1,U1 JSA 16,MOVE EXP RGA3 EXP [1] U1: EXP 0 EXP [1] EXP [^D50] JSA 16,EJECT MOVE 1,UTMP1 JRA 16,1(16) UTMP1: 0 RGA3: REPEAT ^D24, ;S1 ZRGS1: 0 MOVEM 0,STMP0 MOVEM 1,STMP1 MOVEM 2,STMP2 AOS 1,RGI5 CAMG 1,RGI2 JRST SQ1 HRRZI 1,1 MOVEM 1,RGI5 MOVE 1,RGI6 AOS 1 CAMLE 1,RGI3 JRST SQ2 MOVEM 1,RGI6 MOVE 1,RGI1 SOS 1 MOVEM 1,STMP3 ADDI 1,2 MOVEM 1,STMP4 JSA 16,CIA EXP RGA1 EXP STMP3 EXP STMP4 EXP RGI6 HRRZ 0,NDEV HRRM 0,.+2 MOVEI 1,SFMT1 OUT. 1,0 SLIST. 2,RGA1 EXP 30 FIN. HRRZ 0,NDEV HRRM 0,.+2 MOVEI 1,SFMT3 OUT. 1,0 SLIST. 2,RGA3 EXP 30 FIN. SQ1: MOVE 1,STMP1 MOVE 2,STMP2 JRA 16,(16) SQ2: JSA 16,ERROR EXP [3733] JSA 16,EXIT SFMT1: ASCII "(1H124A5)" SFMT3: ASCII "(1X,24A5/2H )" STMP0: 0 STMP1: 0 STMP2: 0 STMP3: 0 STMP4: 0 NDEV: EXP 3 ;S2 ZRGS2: 0 MOVEM 1,TTMP1 MOVE 1,RGI12 ADDI 1,1 MOVEM 1,RGI12 JSA 16,MOVE EXP RGA2 EXP RGI12 EXP RGT EXP [1] EXP [1] CAMG 1,RGI1 JRST TQ1 JSA 16,ZRGS1 HRRZ 0,NDEV HRRM 0,.+2 MOVEI 1,TFMT2 OUT. 1,0 SLIST. 2,RGA2 EXP 30 FIN. SETZ 1, MOVEM 1,RGI12 TQ1: MOVE 1,TTMP1 JRA 16,(16) TFMT2: ASCII "(1H 24A5)" TTMP1: 0 RGI12: 0 ;ZBSET ZBSET: 0 MOVEM 1,DSAC1 MOVEM 2,DSAC2 PUSH 17,@1(16) MOVE 2,@2(16) POP 17,1 SOS 1 MOVEM 2,ZTMP1 SETZ 2, IDIVI 1,5 ADD 1,ZTMP1 MOVN 2,2 ADDI 2,4 IMULI 2,7 AOS 2 LSH 2,36 ADD 1,2 MOVSI 2,700 ADD 1,2 MOVEM 1,@(16) MOVE 1,DSAC1 MOVE 2,DSAC2 JRA 16,3(16) ZTMP1: 0 DSAC1: 0 DSAC2: 0 ;ZDPTR ZDPTR: 0 MOVEM 1,ZTMP3 MOVE 1,@(16) SOS 1 IBP 1 IBP 1 IBP 1 IBP 1 MOVEM 1,@(16) MOVE 1,ZTMP3 JRA 16,1(16) ZTMP3: 0 ;ZSAC ZSAC: 0 MOVEM 1,@(16) MOVE 1,(16) ADD 1,1(16) MOVEM 1,ZTMP2 SETZ 1, MOVE 1,(16) AOS 1 HRLI 1,1