./ ADD NAME=AAAA,LEVEL=01,SOURCE=0 e33.26 macros (February 4, 1971) ./ ADD NAME=ACOMP,LEVEL=01,SOURCE=0 MACRO &LOC ACOMP &CL1,&CL2,&LOC1,&LOC2,&LOC3 &LOC L 1,&CL1 C 1,&CL2 AIF ('&LOC1' NE '&LOC2').NOT12 AIF ('&LOC1' NE '').K1 BL &LOC3 MEXIT .K1 BNL &LOC1 AIF ('&LOC3' EQ '').DONE BL &LOC3 MEXIT .NOT12 AIF ('&LOC2' NE '&LOC3').NOT23 AIF ('&LOC2' NE '').K2 BH &LOC1 MEXIT .K2 BNH &LOC2 AIF ('&LOC1' EQ '').DONE BH &LOC1 MEXIT .NOT23 AIF ('&LOC1' NE '&LOC3').NOT13 AIF ('&LOC3' NE '').K3 BE &LOC2 MEXIT .K3 BNE &LOC1 AIF ('&LOC2' EQ '').DONE BE &LOC2 MEXIT .NOT13 AIF ('&LOC1' EQ '').N1 BH &LOC1 .N1 AIF ('&LOC2' EQ '').N2 BE &LOC2 .N2 AIF ('&LOC3' EQ '').DONE BL &LOC3 .DONE MEND ACOMP ./ ADD NAME=ACOMPC,LEVEL=01,SOURCE=0 MACRO &LOC ACOMPC &CL,&N,&LOC1,&LOC2,&LOC3 AIF ('&N' NE '0').A &LOC C 0,&CL AGO .B .A ANOP &LOC LA 1,&N C 1,&CL .B ANOP AIF ('&LOC1' NE '&LOC2').NOT12 AIF ('&LOC1' NE '').K1 BH &LOC3 MEXIT .K1 BNH &LOC1 AIF ('&LOC3' EQ '').DONE BH &LOC3 MEXIT .NOT12 AIF ('&LOC2' NE '&LOC3').NOT23 AIF ('&LOC2' NE '').K2 BL &LOC1 MEXIT .K2 BNL &LOC2 AIF ('&LOC1' EQ '').DONE BL &LOC1 MEXIT .NOT23 AIF ('&LOC1' NE '&LOC3').NOT13 AIF ('&LOC3' NE '').K3 BE &LOC2 MEXIT .K3 BNE &LOC1 AIF ('&LOC2' EQ '').DONE BE &LOC2 MEXIT .NOT13 AIF ('&LOC1' EQ '').N1 BL &LOC1 .N1 AIF ('&LOC2' EQ '').N2 BE &LOC2 .N2 AIF ('&LOC3' EQ '').DONE BH &LOC3 .DONE MEND ACOMPC ./ ADD NAME=ADDI,LEVEL=01,SOURCE=0 MACRO &LOC ADDI &CL1,&CL2,&CL3,&FLOC,&SLOC AIF ('&CL1' EQ '&CL2').K &LOC LM 1,2,&CL2 A 1,&CL3 STM 1,2,&CL1 AGO .L .K ANOP &LOC L 1,&CL2 A 1,&CL3 ST 1,&CL1 .L ANOP AIF (T'&FLOC EQ 'O').A BO &FLOC .A AIF (T'&SLOC EQ 'O').B BNO &SLOC .B MEND ADDI ./ ADD NAME=ADDLG,LEVEL=01,SOURCE=0 MACRO &LOC ADDLG &SP,&CL &LOC L 1,&SP A 1,&CL ST 1,&SP MEND ADDLG ./ ADD NAME=ADDR,LEVEL=01,SOURCE=0 MACRO &LOC ADDR &CL1,&CL2,&CL3,&FLOC,&SLOC &LOC LD 2,&CL2 AE 2,&CL3 STD 2,&CL1 AIF (T'&SLOC EQ 'O').M B &SLOC .M MEND ADDR ./ ADD NAME=ADDSIB,LEVEL=01,SOURCE=0 MACRO &LOC ADDSIB &ND1,&ND2 &LOC L 1,&ND1 LM 2,3,&ND2 L 5,FATHER(1) L 4,CODE+4(5) LA 4,1(4) STH 4,CODE+6(5) LM 5,6,FATHER(1) STM 5,6,FATHER(2) LM 5,6,RSIB(1) STM 5,6,RSIB(2) STM 2,3,RSIB(1) MEND ADDSIB ./ ADD NAME=ADDSON,LEVEL=01,SOURCE=0 MACRO &LOC ADDSON &ND1,&ND2 &LOC LM 1,2,&ND1 L 4,CODE+4(1) LA 4,1(4) STH 4,CODE+6(1) LM 4,5,&ND2 STM 1,2,FATHER(4) LM 2,3,LSON(1) STM 2,3,RSIB(4) STM 4,5,LSON(1) MEND ADDSON ./ ADD NAME=ADJUST,LEVEL=01,SOURCE=0 MACRO &LOC ADJUST &PTR,&CL,&OFFSET &LOC L 1,&CL L 1,0(1) A 1,&OFFSET ST 1,&PTR MEND ADJUST ./ ADD NAME=AEQL,LEVEL=01,SOURCE=0 MACRO &LOC AEQL &CL1,&CL2,&LOC1,&LOC2 &LOC L 1,&CL1 C 1,&CL2 AIF (T'&LOC1 EQ 'O').A BNE &LOC1 .A AIF (T'&LOC2 EQ 'O').B BE &LOC2 .B MEND AEQL ./ ADD NAME=AEQLC,LEVEL=01,SOURCE=0 MACRO &LOC AEQLC &CL1,&N,&LOC1,&LOC2 AIF ('&N' EQ '0').C &LOC LA 6,&N C 6,&CL1 AGO .D .C ANOP &LOC C 0,&CL1 .D AIF (T'&LOC1 EQ 'O').A BNE &LOC1 .A AIF (T'&LOC2 EQ 'O').B BE &LOC2 .B MEND AEQLC ./ ADD NAME=AEQLIC,LEVEL=01,SOURCE=0 MACRO &LOC AEQLIC &CL1,&CL2,&N,&FLOC,&SLOC &LOC L 1,&CL1 AIF ('&N' EQ '0').A LA 6,&N C 6,&CL2.(1) AGO .B .A C 0,&CL2.(1) .B AIF (T'&FLOC EQ 'O').C BNE &FLOC .C AIF (T'&SLOC EQ 'O').M BE &SLOC .M MEND AEQLIC ./ ADD NAME=AFIELD,LEVEL=01,SOURCE=0 MACRO &LOC AFIELD &A &LOC DESCR &A,0,0 MEND AFIELD ./ ADD NAME=APDSP,LEVEL=01,SOURCE=0 MACRO &LOC APDSP &SP1,&SP2 &LOC L 15,=A(APDSP) LA 2,&SP1 LM 3,5,&SP2 BALR 14,15 MEND APDSP ./ ADD NAME=ARRAY,LEVEL=01,SOURCE=0 MACRO &LOC ARRAY &N DS 0D &LOC DC (2*&N)F'0' MEND ARRAY ./ ADD NAME=BKSIZE,LEVEL=01,SOURCE=0 MACRO &LOC BKSIZE &CL,&PTR &LOC L 1,&PTR L 15,4(1) LA 15,0(15) TM 4(1),STTL BNO A&SYSNDX LA 15,7+BCDFLD-8(15) SRL 15,3 SLA 15,3 A&SYSNDX AR 15,8 STM 15,0,&CL .M MEND BKSIZE ./ ADD NAME=BKSPCE,LEVEL=01,SOURCE=0 MACRO &LOC BKSPCE &UNIT &LOC L 15,=A(IBCOM#) CNOP 0,4 BAL 14,40(15) DC X'01',AL3(&UNIT) MEND BKSPCE ./ ADD NAME=BRANCH,LEVEL=01,SOURCE=0 MACRO &LOC1 BRANCH &LOC2,&LOC3 AIF (T'&LOC3 NE 'O').A &LOC1 B &LOC2 MEXIT .A ANOP &LOC1 L 11,=A(&LOC2) BR 11 MEND BRANCH ./ ADD NAME=BRANIC,LEVEL=01,SOURCE=0 MACRO &LOC BRANIC &CL,&N &LOC L 15,&CL L 11,&N.(15) BR 11 MEND BRANIC ./ ADD NAME=BUFFER,LEVEL=01,SOURCE=0 MACRO &LOC BUFFER &N &LOC DC (&N)C' ' MEND BUFFER ./ ADD NAME=CHECK,LEVEL=01,SOURCE=0 MACRO &LOC CHECK &FLOC,&SLOC &LOC C 12,=A(STACK-12*8+STSIZE*8) BH &FLOC MEND CHECK ./ ADD NAME=CHKVAL,LEVEL=01,SOURCE=0 MACRO &LOC CHKVAL &CL1,&CL2,&SP,&LOC1,&LOC2,&LOC3 &LOC L 6,&SP A 6,&CL2 C 6,&CL1 AIF (T'&LOC1 EQ 'O').A BH &LOC1 .A AIF (T'&LOC2 EQ 'O').B BE &LOC2 .B AIF (T'&LOC3 EQ 'O').C BL &LOC3 .C MEND CHKVAL ./ ADD NAME=CLERTB,LEVEL=01,SOURCE=0 MACRO &LOC CLERTB &TB,&CHAR AIF ('&CHAR' EQ 'CONTIN').A AIF ('&CHAR' EQ 'STOP').B AIF ('&CHAR' EQ 'STOPSH').C &LOC L 1,HEX0C4 AGO .D .A ANOP &LOC LR 1,0 AGO .D .B ANOP &LOC L 1,HEX044 AGO .D .C ANOP &LOC L 1,HEX084 .D L 3,=A(&TB) LR 5,0 LA 6,4 LA 7,252 A&SYSNDX ST 1,0(3,5) BXLE 5,6,A&SYSNDX MEND CLERTB ./ ADD NAME=CPYPAT,LEVEL=01,SOURCE=0 MACRO &LOC CPYPAT &CL1,&CL2,&CL3,&CL4,&CL5,&CL6 &LOC L 15,=A(COPL) LA 2,&CL1 L 3,&CL2 L 4,&CL3 L 5,&CL4 L 6,&CL5 L 7,&CL6 BALR 14,15 MEND CPYPAT ./ ADD NAME=DATE,LEVEL=01,SOURCE=0 MACRO &LOC DATE &SP &LOC STM 13,1,AISAVE LA 13,SAVESAVE TIME TU ST 1,PACKEDDT+4 LM 13,1,AISAVE CVB 7,PACKEDDT ST 7,INTEDAT SR 6,6 D 6,ONETHOU ST 7,YEAR MVC LYD(1),YEAR+3 NI LYD,X'03' LA 3,SYTABLE BC 7,DETMONTH LA 3,LYTABLE DETMONTH M 6,ONETHOU S 7,INTEDAT LPR 7,7 LR 2,7 D 6,THIRTY LR 4,7 M 6,TWO S 3,TWO CH 2,0(7,3) BC 2,INCRMONT S 3,TWO B COMPDAY INCRMONT A 4,ONE COMPDAY SH 2,0(7,3) CVD 4,PRESULT UNPK ZRESULT(2),PRESULT(8) OI ZRESULT+1,C'0' MVC DBUF(2),ZRESULT CVD 2,PRESULT UNPK ZRESULT(2),PRESULT(8) OI ZRESULT+1,C'0' MVC DBUF+3(2),ZRESULT L 5,YEAR CVD 5,PRESULT UNPK ZRESULT(2),PRESULT(8) OI ZRESULT+1,C'0' MVC DBUF+6(2),ZRESULT LA 2,8 LA 3,0 LA 4,DBUF LA 5,0 STM 2,5,&SP MEND DATE ./ ADD NAME=DECRC,LEVEL=01,SOURCE=0 MACRO &LOC DECRC &CL,&N &LOC L 1,&CL AIF ('&N' EQ '1').A AIF ('&N' EQ 'DWDTH').C AIF ('&N' EQ '2*DWDTH').D AIF ('&N' EQ 'SWDTH').D S 1,=A(&N) AGO .B .A BCTR 1,0 AGO .B .C SR 1,8 AGO .B .D SR 1,8 SR 1,8 .B ANOP ST 1,&CL MEND DECRC ./ ADD NAME=DEQL,LEVEL=01,SOURCE=0 MACRO &LOC DEQL &CL1,&CL2,&LOC1,&LOC2 &LOC CLC &CL1.(8),&CL2 AIF (T'&LOC1 EQ 'O').A BNE &LOC1 .A AIF (T'&LOC2 EQ 'O').B BE &LOC2 .B MEND DEQL ./ ADD NAME=DESCR,LEVEL=01,SOURCE=0 MACRO &LOC DESCR &A,&F,&V CNOP 0,8 &LOC DC A(&A) DC AL1(&F) DC AL1(0) DC AL2(&V) MEND DESCR ./ ADD NAME=DIVC,LEVEL=01,SOURCE=0 MACRO &LOC DIVC &CL1,&CL2,&N AIF ('&N' EQ '2*DWDTH').A L 14,&CL2 SRDA 14,32 LA 1,&N DR 14,1 STM 15,0,&CL1 MEXIT .A L 15,&CL2 SLA 15,3 STM 15,0,&CL1 MEND DIVC ./ ADD NAME=DIVI,LEVEL=01,SOURCE=0 MACRO &LOC DIVI &CL1,&CL2,&CL3,&FLOC,&SLOC &LOC LM 3,4,&CL3 CR 3,0 AIF (T'&FLOC NE 'O').A BE A&SYSNDX AGO .B .A BE &FLOC .B L 2,&CL2 SRDA 2,32 D 2,&CL3 STM 3,4,&CL1 AIF (T'&SLOC EQ 'O').M B &SLOC .M ANOP A&SYSNDX EQU * MEND DIVI ./ ADD NAME=DIVR,LEVEL=01,SOURCE=0 MACRO &LOC DIVR &CL1,&CL2,&CL3,&FLOC,&SLOC &LOC LE 4,&CL3 CE 4,ZEROCL AIF (T'&FLOC NE 'O').A BE A&SYSNDX AGO .B .A BE &FLOC .B LD 2,&CL2 DER 2,4 STD 2,&CL1 AIF (T'&SLOC NE 'O').C AGO .D .C B &SLOC .D AIF (T'&FLOC NE 'O').M A&SYSNDX EQU * .M MEND DIVR ./ ADD NAME=ENDEX,LEVEL=01,SOURCE=0 MACRO &LOC ENDEX &CL &LOC L 1,=A(SPIECUTF) C 0,0(1) BE U&SYSNDX LA 1,16 ST 1,RETCOD U&SYSNDX C 0,&CL BE V&SYSNDX NC &CL.(4),=F'4095' MVC A&SYSNDX+1(2),&CL+2 CNOP 0,4 B *+8 DC AL1(128) A&SYSNDX DC AL3(0) L 1,*-4 SVC 13 V&SYSNDX L 15,=A(FINIS) BR 15 MEND ENDEX ./ ADD NAME=ENFILE,LEVEL=01,SOURCE=0 MACRO &LOC ENFILE &UNIT &LOC L 15,=A(IBCOM#) CNOP 0,4 BAL 14,48(15) DC X'01',AL3(&UNIT) MEND ENFILE ./ ADD NAME=EXPI,LEVEL=01,SOURCE=0 MACRO &LOC EXPI &CL1,&CL2,&CL3,&FLOC,&SLOC &LOC C 0,&CL2 BNE A&SYSNDX C 0,&CL3 AIF (T'&FLOC NE 'O').A BNL F&SYSNDX AGO .B .A BNL &FLOC .B ANOP Z&SYSNDX LR 3,0 B R&SYSNDX A&SYSNDX C 0,&CL3 BNE B&SYSNDX LA 3,1 B R&SYSNDX B&SYSNDX BL C&SYSNDX L 3,&CL2 LPR 3,3 C 3,=F'1' BNE Z&SYSNDX L 3,&CL2 B D&SYSNDX C&SYSNDX LA 3,1 D&SYSNDX L 4,&CL3 LPR 4,4 E&SYSNDX LR 2,3 M 2,&CL2 SLDA 2,32 AIF (T'&FLOC EQ 'O').C BO &FLOC AGO .D .C BO F&SYSNDX .D SRDA 2,32 BCT 4,E&SYSNDX R&SYSNDX L 4,&CL2+4 STM 3,4,&CL1 AIF (T'&SLOC EQ 'O').M B &SLOC F&SYSNDX EQU * .M MEND EXPI ./ ADD NAME=EXPR,LEVEL=01,SOURCE=0 MACRO &LOC EXPR &CL1,&CL2,&CL3,&FLOC,&SLOC &LOC LE 0,&CL2 LE 2,&CL3 L 15,=A(EXREAL) BALR 14,15 AIF (T'&FLOC EQ 'O').A B &FLOC AGO .B .A B A&SYSNDX .B STE 0,&CL1 L 2,&CL2+4 ST 2,&CL1+4 AIF (T'&SLOC EQ 'O').C B &SLOC .C ANOP A&SYSNDX EQU * MEND EXPR ./ ADD NAME=FSHRTN,LEVEL=01,SOURCE=0 MACRO &LOC FSHRTN &SP,&N &LOC LM 1,2,&SP AIF ('&N' EQ '1').A S 1,=F'&N' AGO .B .A BCTR 1,0 .B ANOP LA 2,&N.(2) STM 1,2,&SP MEND FSHRTN ./ ADD NAME=GETA,LEVEL=01,SOURCE=0 MACRO &LOC GETA &CL1,&CL2,&CL3 &LOC L 1,&CL3 L 2,&CL2 L 1,0(1,2) ST 1,&CL1 MEND GETA ./ ADD NAME=GETAC,LEVEL=01,SOURCE=0 MACRO &LOC GETAC &CL1,&CL2,&N &LOC L 1,&CL2 AIF ('&N' EQ '-2*DWDTH').A L 1,&N.(1) ST 1,&CL1 MEXIT .A SR 1,8 SR 1,8 L 1,0(1) ST 1,&CL1 MEND GETAC ./ ADD NAME=GETBAL,LEVEL=01,SOURCE=0 MACRO &LOC GETBAL &TXSP,&LEN,&FLOC,&SLOC &LOC LA 1,&TXSP L 3,&LEN L 4,0(1) LR 5,4 A 5,4(1) A 5,8(1) LA 4,1(4) CLI 0(5),C')' BE &FLOC CLI 0(5),C'(' BNE GBALS LA 6,1 GBAL1 BCT 3,GBAL2 B &FLOC GBAL2 LA 4,1(4) LA 5,1(5) CLI 0(5),C')' BE GBAL3 CLI 0(5),C'(' BNE GBAL1 LA 6,1(6) B GBAL1 GBAL3 BCT 6,GBAL1 GBALS ST 4,0(1) .B AIF (T'&SLOC EQ 'O').C B &SLOC .C MEND GETBAL ./ ADD NAME=GETD,LEVEL=01,SOURCE=0 MACRO &LOC GETD &CL1,&CL2,&OFFSET &LOC L 1,&OFFSET L 2,&CL2 LD 0,0(1,2) STD 0,&CL1 MEND GETD ./ ADD NAME=GETDC,LEVEL=01,SOURCE=0 MACRO &LOC GETDC &CL1,&CL2,&N &LOC L 1,&CL2 LD 0,&N.(1) STD 0,&CL1 MEND GETDC ./ ADD NAME=GETLG,LEVEL=01,SOURCE=0 MACRO &LOC GETLG &CL,&SP &LOC L 15,&SP STM 15,0,&CL MEND GETLG ./ ADD NAME=GETLTH,LEVEL=01,SOURCE=0 MACRO &LOC GETLTH &CL,&CL2 &LOC L 15,&CL2 LA 15,7+BCDFLD-8(15) SRL 15,3 SLA 15,3 STM 15,0,&CL MEND GETLTH ./ ADD NAME=GETSIZ,LEVEL=01,SOURCE=0 MACRO &LOC GETSIZ &CL,&PTR &LOC L 15,&PTR L 15,4(15) LA 15,0(15) STM 15,0,&CL MEND GETSIZ ./ ADD NAME=GETSPC,LEVEL=01,SOURCE=0 MACRO &LOC GETSPC &SP,&CL,&N &LOC L 1,&CL LM 1,4,&N.(1) STM 1,4,&SP MEND GETSPC ./ ADD NAME=INCRC,LEVEL=01,SOURCE=0 MACRO &LOC INCRC &CL,&N &LOC L 1,&CL AIF ('&N' EQ 'DWDTH').A LA 1,&N.(1) AGO .C .A AR 1,8 AGO .C .C ANOP ST 1,&CL MEND INCRC ./ ADD NAME=INCRL,LEVEL=01,SOURCE=0 MACRO &LOC INCRL &SP,&L &LOC INCRC &SP,&L MEND INCRL ./ ADD NAME=INCRV,LEVEL=01,SOURCE=0 MACRO &LOC INCRV &PTR,&N &LOC L 6,&PTR+4 LA 6,&N.(6) STH 6,&PTR+6 MEND INCRV ./ ADD NAME=INIT,LEVEL=01,SOURCE=0 MACRO &LOC INIT USING *,15 SAVE (14,12),,SNOBOL4 BALR 11,0 USING *,11 &LOC B W&SYSNDX+8 W&SYSNDX DC A(COMMON,COMMON+4096) LM 9,10,W&SYSNDX USING COMMON,9,10 ST 13,SAVE13 LA 4,SAVESAVE ST 13,4(4) ST 4,8(13) L 15,=A(IBCOM#) BAL 14,64(15) LR 2,1 L 2,0(2) LH 3,0(2) LA 2,2(2) SR 0,0 CR 0,3 BE GET AR 3,2 KEY CLI 0(2),C'L' BE LOW CLI 0(2),C'H' BE HIGH CLI 0(2),C'R' BNE GET BAL 8,CONVERT ST 5,RESERVE B DTEST LOW BAL 8,CONVERT ST 5,MEMREQ B DTEST HIGH BAL 8,CONVERT ST 5,MEMTOP DTEST CLI DONE,C'D' BNE KEY GET L 2,RESERVE L 3,MEMREQ AR 3,2 ST 3,MEMREQ L 3,MEMTOP AR 3,2 ST 3,MEMTOP LA 13,SAVESAVE GETMAIN VU,LA=MEMREQ,A=MEMGIV LM 1,2,MEMGIV L 3,RESERVE SR 2,3 STM 1,2,MEMREQ AR 2,1 STM 2,3,MEMGIV FREEMAIN V,A=MEMGIV L 2,MEMREQ ST 2,HDSGPT ST 2,FRSGPT A 2,MEMTOP ST 2,TLSGPT B A&SYSNDX CONVERT CLI 1(2),C'=' BNE GET LA 2,2(2) CR 2,3 BNL GET SR 5,5 CLOOP CLI 0(2),C'0' BL GET CLI 0(2),C'9' BH GET MVC CHOR(1),0(2) NI CHOR,X'0F' M 4,=F'10' A 5,DOGIT LA 2,1(2) CR 2,3 BL MORE MVI DONE,C'D' BR 8 MORE CLI 0(2),C',' BNE CLOOP LA 2,1(2) BR 8 A&SYSNDX EQU * LA 13,SAVESAVE SPIE SPIECUT,((1,15)) L 3,SIGRESET SPM 3 STIMER TASK,TUINTVL=MAXTIM LA 0,0 LA 8,8 MEND INIT ./ ADD NAME=INSERT,LEVEL=01,SOURCE=0 MACRO &LOC INSERT &ND1,&ND2 &LOC LM 1,2,&ND1 LM 3,4,FATHER(1) LM 3,4,LSON(3) LM 5,6,&ND2 L 7,CODE+4(5) LA 7,1(7) STH 7,CODE+6(5) STM 5,6,RSIB(3) LM 3,4,FATHER(1) STM 3,4,FATHER(5) STM 5,6,FATHER(1) STM 1,2,LSON(5) MEND INSERT ./ ADD NAME=INTRL,LEVEL=01,SOURCE=0 MACRO &LOC INTRL &CL1,&CL2 &LOC L 2,&CL2 AL 2,BIG2+4 ST 2,REALBB+4 LD 2,REALBB SD 2,BIG2 STE 2,&CL1 LA 2,R ST 2,&CL1+4 MEND INTRL ./ ADD NAME=INTSPC,LEVEL=01,SOURCE=0 MACRO &LOC INTSPC &SP,&CL &LOC L 15,=A(BDSPEC) LA 1,&SP LA 2,&CL BALR 14,15 MEND INTSPC ./ ADD NAME=ISTACK,LEVEL=01,SOURCE=0 MACRO &LOC ISTACK &LOC L 12,=A(STACK-12*8) LR 13,0 MEND ISTACK ./ ADD NAME=LCOMP,LEVEL=01,SOURCE=0 MACRO &LOC LCOMP &SP1,&SP2,&LOC1,&LOC2,&LOC3 &LOC ACOMP &SP1,&SP2,&LOC1,&LOC2,&LOC3 .DONE MEND LCOMP ./ ADD NAME=LEQLC,LEVEL=01,SOURCE=0 MACRO &LOC LEQLC &CL1,&N,&LOC1,&LOC2 &LOC AEQLC &CL1,&N,&LOC1,&LOC2 .B MEND LEQLC ./ ADD NAME=LEXCMP,LEVEL=01,SOURCE=0 MACRO &LOC LEXCMP &SP1,&SP2,&GLOC,&ELOC,&LLOC &LOC LM 2,4,&SP1 LM 5,7,&SP2 AIF ('&GLOC' EQ '&LLOC').S L 15,=A(COMPLG) BALR 14,15 AIF (T'&GLOC EQ 'O').A B &GLOC AIF (T'&ELOC EQ 'O').B B &ELOC AIF (T'&LLOC EQ 'O').M B &LLOC MEXIT .A AIF (T'&LLOC NE 'O').D B *+8 AGO .E .D B *+12 .E AIF (T'&ELOC EQ 'O').F B &ELOC AGO .G .F B *+8 .G AIF (T'&LLOC EQ 'O').M B &LLOC MEXIT .B AIF (T'&LLOC EQ 'O').H B *+8 B &LLOC MEXIT .H B *+4 MEXIT .S CR 2,5 AIF (T'&LLOC EQ 'O').CS BNE &LLOC AGO .DS .CS BNE A&SYSNDX .DS L 15,=A(SPECEQ) BALR 14,15 AIF (T'&LLOC EQ 'O').AS B &LLOC AGO .BS .AS B *+8 .BS AIF (T'&ELOC EQ 'O').M B &ELOC A&SYSNDX EQU * .M MEND LEXCMP ./ ADD NAME=LHERE,LEVEL=01,SOURCE=0 MACRO &LOC LHERE CNOP 0,4 &LOC EQU * MEND LHERE ./ ADD NAME=LINK,LEVEL=01,SOURCE=0 MACRO &LOC LINK &CL1,&CL2,&CL3,&CL4,&FLOC,&SLOC &LOC L 1,&CL2 L 2,&CL3 LA 3,&CL1 L 4,&CL4 L 15,=A(LINKER) BALR 14,15 AIF (T'&FLOC EQ 'O').A B &FLOC AGO .B .A B A&SYSNDX .B AIF (T'&SLOC EQ 'O').C B &SLOC .C ANOP A&SYSNDX EQU * MEND LINK ./ ADD NAME=LINKOR,LEVEL=01,SOURCE=0 MACRO &LOC LINKOR &NPTR,&LPTR &LOC L 1,&NPTR LR 2,1 L&SYSNDX L 3,16(2) CR 3,0 BE I&SYSNDX AR 3,1 LR 2,3 B L&SYSNDX I&SYSNDX L 1,&LPTR ST 1,16(2) MEND LINKOR ./ ADD NAME=LOAD,LEVEL=01,SOURCE=0 MACRO &LOC LOAD &CL1,&SP1,&SP2 &LOC L 15,=A(LOADER) LA 1,&SP1 LA 2,&SP2 BALR 14,15 ST 2,&CL1 ST 0,&CL1+4 MEND LOAD ./ ADD NAME=LOCAPT,LEVEL=01,SOURCE=0 MACRO &LOC LOCAPT &PTR1,&PTR2,&CL,&FLOC,&SLOC LCLA &M &LOC L 15,&PTR2 AIF (T'&FLOC EQ 'O').A &M SETA &M+1 .A L 5,4(15) LA 5,0(5,15) LR 4,8 SR 5,4 AR 4,8 C&SYSNDX CLC 8(8,15),&CL BE D&SYSNDX BXLE 15,4,C&SYSNDX AIF (&M EQ 0).C B &FLOC AGO .D .C B A&SYSNDX .D ANOP D&SYSNDX STM 15,0,&PTR1 AIF (T'&SLOC EQ 'O').M B &SLOC AIF (&M NE 0).M A&SYSNDX EQU * .M MEND LOCAPT ./ ADD NAME=LOCAPV,LEVEL=01,SOURCE=0 MACRO &LOC LOCAPV &PTR1,&PTR2,&CL,&FLOC,&SLOC LCLA &M &LOC L 15,&PTR2 AIF (T'&FLOC EQ 'O').A &M SETA &M+1 .A L 5,4(15) LA 5,0(5,15) LR 4,8 SR 5,4 AR 4,8 C&SYSNDX CLC 16(8,15),&CL BE D&SYSNDX BXLE 15,4,C&SYSNDX AIF (&M EQ 0).C B &FLOC AGO .D .C B A&SYSNDX .D ANOP D&SYSNDX STM 15,0,&PTR1 AIF (T'&SLOC EQ 'O').M B &SLOC AIF (&M NE 0).M A&SYSNDX EQU * .M MEND LOCAPV ./ ADD NAME=LOCSP,LEVEL=01,SOURCE=0 MACRO &LOC LOCSP &SP,&PTR &LOC LM 3,4,&PTR CR 0,3 BNE B&SYSNDX ST 0,&SP B A&SYSNDX B&SYSNDX L 1,4(3) LA 1,0(1) LA 2,BCDFLD STM 1,4,&SP A&SYSNDX EQU * MEND LOCSP ./ ADD NAME=LVALUE,LEVEL=01,SOURCE=0 MACRO &LOC LVALUE &RETVAL,&NODPTR &LOC L 15,=A(LVAL) LA 1,&RETVAL L 2,&NODPTR BALR 14,15 MEND LVALUE ./ ADD NAME=MAKNOD,LEVEL=01,SOURCE=0 MACRO &LOC MAKNOD &PTR,&BLK,&VAL,&OR,&PROC,&ARGL &LOC LM 1,2,&BLK LM 3,4,&PROC L 5,&OR LR 6,0 L 7,&VAL STM 3,7,8(1) AIF (T'&ARGL EQ 'O').C LM 3,4,&ARGL STM 3,4,4*8(1) .C STM 1,2,&PTR MEND MAKNOD ./ ADD NAME=MDATA,LEVEL=01,SOURCE=0 DS 0F MAXTIM DC X'7FFFFFFF' SIGRESET DC X'36000000' HEX0C4 DC X'0C0C0C0C' HEX044 DC X'04040404' HEX084 DC X'08080808' HEX04 DC X'00000004' HEX08 DC X'00000008' HEX0C DC X'0000000C' AISAVE DC 5F'0' DS 0D PACKEDDT DC PL8'0' PRESULT DC PL8'0' INTEDAT DC F'0' ONE DC F'1' TWO DC F'2' THIRTY DC F'30' ONETHOU DC F'1000' YEAR DC F'0' DC H'0' SYTABLE DC H'31,59,90,120,151,181,212,243,273,304,334,365' DC H'0' LYTABLE DC H'31,60,91,121,151,182,213,244,274,305,335,366' LYD DC X'00' ZRESULT DC CL2' ' DBUF DC C' / / ' DS 0D REALB DC X'4E00000000000000' REALBB DC X'4E00000000000000' BIG2 DC X'4E00000080000000' BIGZIP DC X'4E00000000000000' MAXINT DC X'487FFFFFFF000000' TRTBL DC 256C' ' STRING CSECT ALPHA DC X'000102030405060708090A0B0C0D0E0F' DC X'101112131415161718191A1B1C1D1E1F' DC X'202122232425262728292A2B2C2D2E2F' DC X'303132333435363738393A3B3C3D3E3F' DC X'404142434445464748494A4B4C4D4E4F' DC X'505152535455565758595A5B5C5D5E5F' DC X'606162636465666768696A6B6C6D6E6F' DC X'707172737475767778797A7B7C7D7E7F' DC X'808182838485868788898A8B8C8D8E8F' DC X'909192939495969798999A9B9C9D9E9F' DC X'A0A1A2A3A4A5A6A7A8A9AAABACADAEAF' DC X'B0B1B2B3B4B5B6B7B8B9BABBBCBDBEBF' DC X'C0C1C2C3C4C5C6C7C8C9CACBCCCDCECF' DC X'D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF' DC X'E0E1E2E3E4E5E6E7E8E9EAEBECEDEEEF' DC X'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF' ALPHAR DC X'FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0' DC X'EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0' DC X'DFDEDDDCDBDAD9D8D7D6D5D4D3D2D1D0' DC X'CFCECDCCCBCAC9C8C7C6C5C4C3C2C1C0' DC X'BFBEBDBCBBBAB9B8B7B6B5B4B3B2B1B0' DC X'AFAEADACABAAA9A8A7A6A5A4A3A2A1A0' DC X'9F9E9D9C9B9A99989796959493929190' DC X'8F8E8D8C8B8A89888786858483828180' DC X'7F7E7D7C7B7A79787776757473727170' DC X'6F6E6D6C6B6A69686766656463626160' DC X'5F5E5D5C5B5A59585756555453525150' DC X'4F4E4D4C4B4A49484746454443424140' DC X'3F3E3D3C3B3A39383736353433323130' DC X'2F2E2D2C2B2A29282726252423222120' DC X'1F1E1D1C1B1A19181716151413121110' DC X'0F0E0D0C0B0A09080706050403020100' AMPST DC C'&&' QTSTR DC C'''' S4 CSECT SAVESAVE DC 18F'0' SAVE13 DC F'0' MEMREQ DC A(MEMMIN*DWDTH) MEMTOP DC A(MEMMAX*DWDTH) MEMGIV DC A(0) MEMLEN DC A(0) RESERVE DC A(MEMLEV) DOGIT DC F'0' CHOR EQU DOGIT+3 DONE DC C' ' LTORG ./ ADD NAME=MLINK,LEVEL=01,SOURCE=0 S4 CSECT ENTRY ADDFN ENTRY AROWFN ENTRY ATFN ENTRY BARFN ENTRY BIAMFN ENTRY BIATFN ENTRY BINGFN ENTRY BIPDFN ENTRY BIPRFN ENTRY BIQSFN ENTRY COMMON ENTRY DATA ENTRY DIVFN ENTRY DOLFN ENTRY DOTFN ENTRY EXPFN EXTRN EXREAL ENTRY INDFN ENTRY INTR10 ENTRY KEYFN ENTRY MNSFN ENTRY MPYFN ENTRY NAMFN ENTRY NEGFN ENTRY OBLIST ENTRY ORFN ENTRY PDFN ENTRY PLSFN ENTRY PRFN ENTRY QUESFN ENTRY RETCOD ENTRY SAVESAVE ENTRY SAVE13 ENTRY SLHFN ENTRY STRFN ENTRY STYPE ENTRY SUBFN ENTRY SYSCUT EXTRN APDSP EXTRN BDSPEC EXTRN BIOPTB EXTRN CARDTB EXTRN COMPLG EXTRN COPL EXTRN DECBIN EXTRN ELEMTB EXTRN EOSTB EXTRN FINIS EXTRN FRWDTB EXTRN GOTOTB EXTRN IBCOM# EXTRN IBLKTB EXTRN LVAL EXTRN LBLTB EXTRN LBLXTB EXTRN LINKER EXTRN LOADER EXTRN MOVTST EXTRN NUMBTB EXTRN REALST EXTRN SNABTB EXTRN SPECEQ EXTRN SPIECUT EXTRN SPIECUTF EXTRN SPREAL EXTRN STPRNT EXTRN STREAD EXTRN STREAM EXTRN UNLOADER EXTRN UNOPTB EXTRN VARATB ./ ADD NAME=MNREAL,LEVEL=01,SOURCE=0 MACRO &LOC MNREAL &CL1,&CL2 &LOC LD 2,&CL2 LCER 2,2 STD 2,&CL1 MEND MNREAL ./ ADD NAME=MNSINT,LEVEL=01,SOURCE=0 MACRO &LOC MNSINT &CL1,&CL2,&FLOC,&SLOC &LOC LM 2,3,&CL2 LCR 2,2 BO &FLOC STM 2,3,&CL1 B &SLOC MEND MNSINT ./ ADD NAME=MOVA,LEVEL=01,SOURCE=0 MACRO &LOC MOVA &CL1,&CL2 &LOC L 1,&CL2 ST 1,&CL1 MEND MOVA ./ ADD NAME=MOVAV,LEVEL=01,SOURCE=0 MACRO &LOC MOVAV &CL1,&CL2 &LOC L 15,&CL2+4 LA 15,0(15) STM 15,0,&CL1 MEND MOVAV ./ ADD NAME=MOVBLK,LEVEL=01,SOURCE=0 MACRO &LOC MOVBLK &PTR1,&PTR2,&CL &LOC L 6,&PTR1 L 4,&PTR2 AR 4,8 AR 6,8 L 3,&CL L 15,=A(MOVTST) BALR 14,15 MEND MOVBLK ./ ADD NAME=MOVD,LEVEL=01,SOURCE=0 MACRO &LOC MOVD &CL1,&CL2 &LOC LD 0,&CL2 STD 0,&CL1 MEND MOVD ./ ADD NAME=MOVV,LEVEL=01,SOURCE=0 MACRO &LOC MOVV &CL1,&CL2 &LOC MVC &CL1+5(3),&CL2+5 MEND MOVV ./ ADD NAME=MOVVA,LEVEL=01,SOURCE=0 MACRO &LOC MOVVA &CL1,&CL2 &LOC MVC &CL1+5(3),&CL2+1 MEND MOVVA ./ ADD NAME=MPYC,LEVEL=01,SOURCE=0 MACRO &LOC MPYC &CL1,&CL2,&N AIF ('&N' EQ 'DWDTH').A &LOC LA 15,&N AGO .B .A ANOP &LOC LR 15,8 .B ANOP M 14,&CL2 STM 15,0,&CL1 MEND MPYC ./ ADD NAME=MPYI,LEVEL=01,SOURCE=0 MACRO &LOC MPYI &CL1,&CL2,&CL3,&FLOC,&SLOC AIF ('&CL1' EQ '&CL2').K &LOC LM 3,4,&CL2 M 2,&CL3 STM 3,4,&CL1 AGO .L .K ANOP &LOC L 3,&CL2 M 2,&CL3 ST 3,&CL1 .L AIF (T'&FLOC EQ 'O').A AGO .C .A AIF (T'&SLOC EQ 'O').M .C SLDA 2,32 AIF (T'&FLOC EQ 'O').D BO &FLOC AIF (T'&SLOC EQ 'O').M B &SLOC AGO .M .D BNO &SLOC .M MEND MPYI ./ ADD NAME=MPYR,LEVEL=01,SOURCE=0 MACRO &LOC MPYR &CL1,&CL2,&CL3,&FLOC,&SLOC &LOC LE 2,&CL2 ME 2,&CL3 STE 2,&CL1 L 1,&CL2+4 ST 1,&CL1+4 AIF (T'&SLOC EQ 'O').M B &SLOC .M MEND MPYR ./ ADD NAME=MSTIME,LEVEL=01,SOURCE=0 MACRO &LOC MSTIME &CL &LOC STM 13,1,AISAVE LA 13,SAVESAVE TTIMER L 3,MAXTIM SR 3,0 M 2,=F'26' D 2,=F'1000' ST 3,&CL LM 13,1,AISAVE ST 0,&CL+4 MEND MSTIME ./ ADD NAME=PARMS,LEVEL=01,SOURCE=0 ALPHSZ EQU 256 FNC EQU B'00000100' FNC@ EQU B'11111011' MARK EQU B'00001000' MARK@ EQU B'11110111' PTR EQU B'00010000' PTR@ EQU B'11101111' STTL EQU B'00000010' STTL@ EQU B'11111101' TTL EQU B'00000001' TTL@ EQU B'11111110' AWDTH EQU 8 DWDTH EQU 8 SWDTH EQU 16 CPA EQU 1 MEMLEV EQU 10000 MEMMIN EQU 4400 MEMMAX EQU 25000 CARDSZ EQU 80 SEQSIZ EQU 8 STNOSZ EQU 8 OBSIZ EQU 256 SIZLIM EQU 16777215 UNITI EQU 5 UNITO EQU 6 UNITP EQU 7 ./ ADD NAME=PLUGTB,LEVEL=01,SOURCE=0 MACRO &LOC PLUGTB &TB,&CHAR,&SP &LOC LM 1,2,&SP+4 AR 1,2 LR 3,0 L 4,=A(&TB) LR 5,0 LA 6,1 L 7,&SP SR 1,6 AIF ('&CHAR' EQ 'CONTIN').A AIF ('&CHAR' EQ 'STOP').B AIF ('&CHAR' EQ 'STOPSH').C L 2,HEX0C AGO .D .A LR 2,0 AGO .D .B L 2,HEX04 AGO .D .C L 2,HEX08 .D ANOP A&SYSNDX BXH 5,6,B&SYSNDX IC 3,0(1,5) STC 2,0(3,4) B A&SYSNDX B&SYSNDX EQU * MEND PLUGTB ./ ADD NAME=POPA,LEVEL=01,SOURCE=0 MACRO &LOC POPA &CL &LOC POPD &CL MEND POPA ./ ADD NAME=POPD,LEVEL=01,SOURCE=0 MACRO &LOC POPD &CL LCLA &NO,&N,&K &NO SETA N'&CL &K SETA &NO AIF ('&LOC' EQ '').A &LOC EQU * .A AIF (&NO EQ 0).DONE &N SETA &N+1 LD 0,13*8-&N*8(12) STD 0,&CL(&N) &NO SETA &NO-1 AGO .A .DONE AIF (&K EQ 1).DONI AIF (&K EQ 2).DONK S 12,=A(&K*8) MEXIT .DONI SR 12,8 MEXIT .DONK SR 12,8 SR 12,8 MEND POPD ./ ADD NAME=POPS,LEVEL=01,SOURCE=0 MACRO &LOC POPS &SP LCLA &N AIF ('&LOC' EQ '').A CNOP 0,4 &LOC EQU * .A ANOP &N SETA &N+1 LM 1,4,13*8-16*&N.(12) STM 1,4,&SP(&N) AIF (&N LT N'&SP).A AIF (&N EQ 1).SR S 12,=A(16*&N) AGO .SRR .SR SR 12,8 SR 12,8 .SRR ANOP MEND POPS ./ ADD NAME=PROC,LEVEL=01,SOURCE=0 MACRO &LOC PROC &ADD AIF (T'&ADD EQ 'O').A USING *,11 &LOC L 11,=A(&ADD) USING &ADD,11 AGO .B .A ANOP USING *,11 &LOC EQU * .B ANOP MEND PROC ./ ADD NAME=PSTACK,LEVEL=01,SOURCE=0 MACRO &LOC PSTACK &CL &LOC LA 15,11*8(12) STM 15,0,&CL MEND PSTACK ./ ADD NAME=PUSHA,LEVEL=01,SOURCE=0 MACRO &LOC PUSHA &CL &LOC PUSHD &CL MEND PUSHA ./ ADD NAME=PUSHD,LEVEL=01,SOURCE=0 MACRO &LOC PUSHD &CL LCLA &NO,&N,&K &N SETA 1 &NO SETA N'&CL &K SETA &NO AIF ('&LOC' EQ '').A &LOC EQU * .A AIF (&NO EQ 0).DONE LD 0,&CL(&N) STD 0,12*8+8*&N.(12) &NO SETA &NO-1 &N SETA &N+1 AGO .A .DONE AIF (&K EQ 1).DONI LA 12,8*&K.(12) MEXIT .DONI AR 12,8 MEND PUSHD ./ ADD NAME=PUSHS,LEVEL=01,SOURCE=0 MACRO &LOC PUSHS &SP LCLA &N AIF (T'&LOC EQ 'O').A CNOP 0,4 &LOC EQU * .A ANOP &N SETA &N+1 LM 1,4,&SP(&N) STM 1,4,11*8+16*&N.(12) AIF (&N LT N'&SP).A AIF (&N EQ 1).AR LA 12,16*&N.(12) MEXIT .AR LA 12,16(12) MEND PUSHS ./ ADD NAME=PUTAC,LEVEL=01,SOURCE=0 MACRO &LOC PUTAC &CL1,&N,&CL2 &LOC L 1,&CL1 AIF ('&CL2' EQ 'ZEROCL').A L 2,&CL2 ST 2,&N.(1) MEXIT .A ST 0,&N.(1) MEND PUTAC ./ ADD NAME=PUTD,LEVEL=01,SOURCE=0 MACRO &LOC PUTD &CL1,&OFFSET,&CL2 &LOC L 1,&OFFSET L 2,&CL1 LD 0,&CL2 STD 0,0(1,2) MEND PUTD ./ ADD NAME=PUTDC,LEVEL=01,SOURCE=0 MACRO &LOC PUTDC &CL1,&N,&CL2 &LOC L 1,&CL1 LD 0,&CL2 STD 0,&N.(1) MEND PUTDC ./ ADD NAME=PUTLG,LEVEL=01,SOURCE=0 MACRO &LOC PUTLG &SP,&CL2 &LOC L 1,&CL2 ST 1,&SP MEND PUTLG ./ ADD NAME=PUTSPC,LEVEL=01,SOURCE=0 MACRO &LOC PUTSPC &CL,&N,&SP &LOC L 1,&CL LM 2,5,&SP STM 2,5,&N.(1) MEND PUTSPC ./ ADD NAME=PUTVC,LEVEL=01,SOURCE=0 MACRO &LOC PUTVC &CL1,&N,&CL2 &LOC L 1,&CL1 L 2,&CL2+4 ST 2,4+&N.(1) MEND PUTVC ./ ADD NAME=RCALL,LEVEL=01,SOURCE=0 MACRO &LOC RCALL &CL,&PROC,&ARGLIST,&LOCS LCLA &K,&L,&N,&M,&NO &NO SETA N'&ARGLIST &N SETA 1 &K SETA &NO &LOC LA 14,U&SYSNDX STM 11,14,13*8(12) LR 13,12 .A AIF (&NO EQ 0).DONE LD 0,&ARGLIST(&N) STD 0,14*8+&NO*8(12) &NO SETA &NO-1 &N SETA &N+1 AGO .A .DONE LA 12,16+&K*8(12) L 11,=A(&PROC) BR 11 AIF ('&CL' EQ '').C U&SYSNDX STD 0,&CL AGO .D .C ANOP U&SYSNDX SR 0,0 SR 0,0 .D AIF ('&LOCS' EQ '').M &K SETA 0 .H ANOP &L SETA &L+1 AIF (T'&LOCS(&L) EQ 'O').F B &LOCS(&L) AGO .G .F B V&SYSNDX &K SETA &K+1 .G AIF (&L LT N'&LOCS).H AIF (&K EQ 0).M V&SYSNDX EQU * .M MEND RCALL ./ ADD NAME=RCOMP,LEVEL=01,SOURCE=0 MACRO &LOC RCOMP &CL1,&CL2,&GLOC,&ELOC,&LLOC &LOC LE 0,&CL1 CE 0,&CL2 BH &GLOC BE &ELOC B &LLOC MEND RCOMP ./ ADD NAME=REALST,LEVEL=01,SOURCE=0 MACRO &LOC REALST &SP,&CL &LOC L 15,=A(REALST) LA 5,&SP LE 2,&CL BALR 14,15 MEND REALST ./ ADD NAME=REMSP,LEVEL=01,SOURCE=0 MACRO &LOC REMSP &SP1,&SP2,&SP3 &LOC LM 1,4,&SP2 L 5,&SP3 AR 2,5 SR 1,5 STM 1,4,&SP1 MEND REMSP ./ ADD NAME=RESETF,LEVEL=01,SOURCE=0 MACRO &LOC RESETF &PTR,&FLAG &LOC NI &PTR+4,&FLAG.@ MEND RESETF ./ ADD NAME=REWIND,LEVEL=01,SOURCE=0 MACRO &LOC REWIND &UNIT &LOC L 15,=A(IBCOM#) CNOP 0,4 BAL 14,44(15) DC X'01',AL3(&UNIT) MEND REWIND ./ ADD NAME=RLINT,LEVEL=01,SOURCE=0 MACRO &LOC RLINT &YCL,&XCL,&LOC1,&LOC2 &LOC SDR 2,2 LE 2,&XCL TM &XCL,X'40' BNO C&SYSNDX LTDR 2,2 BNZ F&SYSNDX C&SYSNDX ST 0,&YCL B D&SYSNDX F&SYSNDX CE 2,MAXINT AIF (T'&LOC1 EQ 'O').A BH &LOC1 AGO .C .A BH E&SYSNDX .C ANOP LPDR 4,2 AW 4,BIGZIP STD 4,REALB L 2,REALB+4 LTDR 2,2 BNM X&SYSNDX LNR 2,2 X&SYSNDX ST 2,&YCL D&SYSNDX LA 2,I ST 2,&YCL+4 AIF (T'&LOC2 EQ 'O').B B &LOC2 .B ANOP E&SYSNDX EQU * MEND RLINT ./ ADD NAME=RPLACE,LEVEL=01,SOURCE=0 MACRO &LOC RPLACE &SP1,&SP2,&SP3 &LOC LM 3,5,&SP3 CR 3,0 BE A&SYSNDX L 1,=A(ALPHA) MVC TRTBL(256),0(1) BCTR 3,0 AR 4,5 LM 5,6,&SP2+4 AR 5,6 LR 7,5 AR 7,3 LA 6,1 RPLC1 SR 3,3 IC 3,0(5) A 3,=A(TRTBL) MVC 0(1,3),0(4) LA 4,1(4) BXLE 5,6,RPLC1 LM 2,4,&SP1 LTR 2,2 BNH A&SYSNDX AR 3,4 RPTEST C 2,=F'256' BNH RPSHORT TR 0(256,3),TRTBL LA 3,256(3) S 2,=F'256' B RPTEST RPSHORT BCTR 2,0 EX 2,RPEX B A&SYSNDX RPEX TR 0(0,3),TRTBL A&SYSNDX EQU * MEND RPLACE ./ ADD NAME=RRTURN,LEVEL=01,SOURCE=0 MACRO &LOC RRTURN &CL,&N AIF (T'&LOC EQ 'O').C &LOC EQU * .C AIF (T'&CL EQ 'O').A LD 0,&CL .A LM 11,14,13*8(13) AIF (T'&CL EQ 'O').B EX 0,0(14) .B ANOP B 4*&N.(14) MEND RRTURN ./ ADD NAME=RSETFI,LEVEL=01,SOURCE=0 MACRO &LOC RSETFI &CL,&FLAG &LOC L 1,&CL NI 4(1),&FLAG.@ MEND RSETFI ./ ADD NAME=SELBRA,LEVEL=01,SOURCE=0 MACRO &LOC SELBRA &CL,&LOCS LCLA &N LCLA &M &LOC L 1,&CL SLA 1,2 B *+0(1) .A ANOP &N SETA &N+1 AIF (T'&LOCS(&N) EQ 'O').B B &LOCS(&N) AGO .C .B B A&SYSNDX &M SETA &M+1 .C AIF (&N LT N'&LOCS).A AIF (&M EQ 0).D A&SYSNDX EQU * .D MEND SELBRA ./ ADD NAME=SETAC,LEVEL=01,SOURCE=0 MACRO &LOC SETAC &CL,&V AIF ('&V' EQ '0').A &LOC LA 1,&V ST 1,&CL MEXIT .A ANOP &LOC ST 0,&CL MEND SETAC ./ ADD NAME=SETF,LEVEL=01,SOURCE=0 MACRO &LOC SETF &PTR,&F &LOC OI &PTR+4,&F MEND SETF ./ ADD NAME=SETFI,LEVEL=01,SOURCE=0 MACRO &LOC SETFI &PTR,&F &LOC L 1,&PTR OI 4(1),&F MEND SETFI ./ ADD NAME=SETLC,LEVEL=01,SOURCE=0 MACRO &LOC SETLC &CL,&V &LOC SETAC &CL,&V MEND SETLC ./ ADD NAME=SETSIZ,LEVEL=01,SOURCE=0 MACRO &LOC SETSIZ &CL1,&CL2 &LOC L 1,&CL1 MVC 5(3,1),&CL2+1 MEND SETSIZ ./ ADD NAME=SETSP,LEVEL=01,SOURCE=0 MACRO &LOC SETSP &SP1,&SP2 &LOC LM 1,4,&SP2 STM 1,4,&SP1 MEND SETSP ./ ADD NAME=SETVC,LEVEL=01,SOURCE=0 MACRO &LOC SETVC &CL1,&N &LOC MVC &CL1+5(3),=AL3(&N) MEND SETVC ./ ADD NAME=SHORTN,LEVEL=01,SOURCE=0 MACRO &LOC SHORTN &SP,&CC &LOC DECRC &SP,&CC MEND SHORTN ./ ADD NAME=SPCINT,LEVEL=01,SOURCE=0 MACRO &LOC SPCINT &CL,&SP,&FLOC,&SLOC &LOC L 15,=A(DECBIN) LA 1,&CL LA 2,&SP BALR 14,15 AIF (T'&FLOC EQ 'O').A B &FLOC AGO .B .A B *+8 .B AIF (T'&SLOC EQ 'O').C B &SLOC .C MEND SPCINT ./ ADD NAME=SPEC,LEVEL=01,SOURCE=0 MACRO &LOC SPEC &A,&F,&V,&O,&L CNOP 0,8 &LOC DC A(&L) DC A(&O) DC A(&A) DC AL1(&F) DC AL1(0) DC AL2(&V) MEND SPEC ./ ADD NAME=SPREAL,LEVEL=01,SOURCE=0 MACRO &LOC SPREAL &CL,&SP,&FLOC,&SLOC &LOC L 15,=A(SPREAL) LA 1,&CL LM 2,4,&SP BALR 14,15 AIF (T'&FLOC NE 'O').A B U&SYSNDX AGO .B .A B &FLOC .B LA 2,R ST 2,&CL+4 AIF (T'&SLOC EQ 'O').C B &SLOC .C AIF (T'&FLOC NE 'O').M U&SYSNDX EQU * .M MEND SPREAL ./ ADD NAME=STPRNT,LEVEL=01,SOURCE=0 MACRO &LOC STPRNT &CL,&UNIT,&SP &LOC L 15,=A(STPRNT) LA 1,&CL LA 2,&UNIT LA 3,&SP BALR 14,15 MEND STPRNT ./ ADD NAME=STREAD,LEVEL=01,SOURCE=0 MACRO &LOC STREAD &SP,&UNIT,&ELOC,&FLOC,&NLOC &LOC L 15,=A(STREAD) LA 1,&SP LA 2,&UNIT BALR 14,15 AIF (T'&ELOC EQ 'O').A B &ELOC AIF (T'&FLOC EQ 'O').B B &FLOC AIF (T'&NLOC EQ 'O').M B &NLOC MEXIT .A AIF (T'&NLOC NE 'O').D B *+8 AGO .E .D B *+12 .E AIF (T'&FLOC EQ 'O').F B &FLOC AGO .G .F B *+8 .G AIF (T'&NLOC EQ 'O').M B &NLOC MEXIT .B AIF (T'&NLOC EQ 'O').H B *+8 B &NLOC MEXIT .H B *+4 MEXIT .M MEND STREAD ./ ADD NAME=STREAM,LEVEL=01,SOURCE=0 MACRO &LOC STREAM &SP1,&SP2,&TB,&ELOC,&RLOC,&NLOC &LOC L 15,=A(STREAM) LA 1,&SP1 LA 2,&SP2 L 3,=A(&TB) BALR 14,15 AIF (T'&ELOC EQ 'O').A B &ELOC AIF (T'&RLOC EQ 'O').B B &RLOC AIF (T'&NLOC EQ 'O').M B &NLOC MEXIT .A AIF (T'&NLOC NE 'O').D B *+8 AGO .E .D B *+12 .E AIF (T'&RLOC EQ 'O').F B &RLOC AGO .G .F B *+8 .G AIF (T'&NLOC EQ 'O').M B &NLOC MEXIT .B AIF (T'&NLOC EQ 'O').H B *+8 B &NLOC MEXIT .H B *+4 MEXIT .M MEND STREAM ./ ADD NAME=STRING,LEVEL=01,SOURCE=0 MACRO &LOC STRING &TEXT LCLA &N &N SETA K'&TEXT-2 CNOP 0,8 &LOC DC A(&N) DC A(0) DC A(U&SYSNDX) DC A(0) STRING CSECT U&SYSNDX DC C&TEXT S4 CSECT MEND STRING ./ ADD NAME=SUBI,LEVEL=01,SOURCE=0 MACRO &LOC SUBI &CL1,&CL2,&CL3,&FLOC,&SLOC AIF ('&CL1' EQ '&CL2').K &LOC LM 1,2,&CL2 S 1,&CL3 STM 1,2,&CL1 AGO .L .K ANOP &LOC L 1,&CL2 S 1,&CL3 ST 1,&CL1 .L ANOP AIF (T'&FLOC EQ 'O').A BO &FLOC .A AIF (T'&SLOC EQ 'O').B BNO &SLOC .B MEND SUBI ./ ADD NAME=SUBR,LEVEL=01,SOURCE=0 MACRO &LOC SUBR &CL1,&CL2,&CL3,&FLOC,&SLOC &LOC LD 2,&CL2 SE 2,&CL3 STD 2,&CL1 AIF (T'&SLOC EQ 'O').M B &SLOC .M MEND SUBR ./ ADD NAME=SUBSP,LEVEL=01,SOURCE=0 MACRO &LOC SUBSP &SP1,&SP2,&SP3,&FLOC,&SLOC &LOC LM 1,4,&SP3 C 1,&SP2 AIF (T'&FLOC NE 'O').A BL A&SYSNDX AGO .B .A BL &FLOC .B L 1,&SP2 STM 1,4,&SP1 AIF (T'&SLOC EQ 'O').C B &SLOC .C AIF (T'&FLOC NE 'O').M A&SYSNDX EQU * .M MEND SUBSP ./ ADD NAME=SUML,LEVEL=01,SOURCE=0 MACRO &LOC SUML &SP1,&SP2,&SP3 &LOC L 1,&SP2 A 1,&SP3 ST 1,&SP1 MEND SUML ./ ADD NAME=TESTF,LEVEL=01,SOURCE=0 MACRO &LOC TESTF &PTR,&F,&FLOC,&SLOC &LOC TM &PTR+4,&F AIF (T'&FLOC EQ 'O').A BNO &FLOC .A AIF (T'&SLOC EQ 'O').M BO &SLOC .M MEND TESTF ./ ADD NAME=TESTFI,LEVEL=01,SOURCE=0 MACRO &LOC TESTFI &PTR,&F,&FLOC,&SLOC &LOC L 1,&PTR TM 4(1),&F AIF (T'&FLOC EQ 'O').A BNO &FLOC .A AIF (T'&SLOC EQ 'O').M BO &SLOC .M MEND TESTFI ./ ADD NAME=TOP,LEVEL=01,SOURCE=0 MACRO &LOC TOP &PTR1,&OFFSET,&PTR2 &LOC LR 6,0 LM 1,2,&PTR2 A&SYSNDX TM 4(1),TTL BO B&SYSNDX SR 1,8 AR 6,8 B A&SYSNDX B&SYSNDX ST 6,&OFFSET STM 1,2,&PTR1 MEND TOP ./ ADD NAME=TRANDC,LEVEL=01,SOURCE=0 MACRO &LOC TRANDC &PTR1,&N1,&PTR2,&N2 &LOC L 1,&PTR1 L 2,&PTR2 LD 0,&N2.(2) STD 0,&N1.(1) MEND TRANDC ./ ADD NAME=TRIMSP,LEVEL=01,SOURCE=0 MACRO &LOC TRIMSP &SP1,&SP2 &LOC LM 1,4,&SP2 LA 5,0(2,3) LA 6,0(1,5) A&SYSNDX BCTR 6,0 CR 6,5 BL B&SYSNDX CLI 0(6),C' ' BE A&SYSNDX B&SYSNDX SR 6,5 LA 1,1(6) STM 1,4,&SP1 MEND TRIMSP ./ ADD NAME=UNLOAD,LEVEL=01,SOURCE=0 MACRO &LOC UNLOAD &SP &LOC LA 1,&SP L 15,=A(UNLOADER) BALR 14,15 MEND UNLOAD ./ ADD NAME=VARID,LEVEL=01,SOURCE=0 MACRO &LOC VARID &CL1,&SP &LOC LA 1,&CL1 LR 6,1 LM 2,4,&SP LR 7,2 LA 4,0(3,4) C 7,=F'4' BH A&SYSNDX ST 0,4(6) LR 2,6 SR 2,7 BCTR 7,0 EX 7,B&SYSNDX L 5,4(6) B C&SYSNDX B&SYSNDX MVC 8(0,2),0(4) D&SYSNDX TRT 0(0,4),0(2) E&SYSNDX MVC 0(0,6),0(1) A&SYSNDX CR 7,8 BH G&SYSNDX LA 2,0(7,4) S 2,=F'4' MVC 4(4,6),0(2) MVC 0(4,6),0(4) L 5,0(6) B C&SYSNDX G&SYSNDX S 7,=A(8+1) LR 1,4 L 2,=A(FRWDTB) EX 7,D&SYSNDX MVC 0(8,6),0(1) L 5,0(6) IC 5,8(4,7) C&SYSNDX LR 4,5 SRDL 4,19 M 4,4(6) SLDL 4,11 SLL 7,24 ALR 5,7 SRL 5,24 SLL 5,3 ST 5,0(6) ST 4,4(6) MEND VARID ./ ADD NAME=VCMPIC,LEVEL=01,SOURCE=0 MACRO &LOC VCMPIC &PTR1,&PTR2,&CL,&LOC1,&LOC2,&LOC3 &LOC L 1,&PTR1 L 6,4+&PTR2.(1) C 6,&CL+4 AIF (T'&LOC1 EQ 'O').A BH &LOC1 .A AIF (T'&LOC2 EQ 'O').B BE &LOC2 .B AIF (T'&LOC3 EQ 'O').C BL &LOC3 .C MEND VCMPIC ./ ADD NAME=VEQL,LEVEL=01,SOURCE=0 MACRO &LOC VEQL &CL1,&CL2,&LOC1,&LOC2 &LOC CLC &CL1+5(3),&CL2+5 AIF (T'&LOC1 EQ 'O').A BNE &LOC1 .A AIF (T'&LOC2 EQ 'O').B BE &LOC2 .B MEND VEQL ./ ADD NAME=VEQLC,LEVEL=01,SOURCE=0 MACRO &LOC VEQLC &CL1,&N,&LOC1,&LOC2 &LOC CLC &CL1+5(3),=AL3(&N) AIF (T'&LOC1 EQ 'O').A BNE &LOC1 .A AIF (T'&LOC2 EQ 'O').B BE &LOC2 .B MEND VEQLC ./ ADD NAME=ZERBLK,LEVEL=01,SOURCE=0 MACRO &LOC ZERBLK &PTR,&CL &LOC L 1,&PTR L 5,&CL LR 4,8 LR 3,0 LD 0,=D'0' A&SYSNDX STD 0,0(3,1) BXLE 3,4,A&SYSNDX MEND ZERBLK ./ ENDUP