; ; ALTERED: ; EDWIN H. MARISON 11 MAY 76 15:39 ; ARTHUR P. GAUGHAN, JR. 9-FEB-1978 ; ARTHUR P. GAUGHAN, JR. 28-JUL-1978 ; ARTHUR P. GAUGHAN, JR. 28-AUG-1978 ; RICHARD L. MICHAUD 2-NOV-78 (ADD NVS,NVC,RVS,RVC .MCALL TO SMCALL) ; ARTHUR P. GAUGHAN, JR. 5-DEC-78 ; ARTHUR P. GAUGHAN, JR. 27-JUN-79 IMPROVE SYMMETRY AND CLEAN UP ; ARTHUR P. GAUGHAN, JR. 19-MAR-80 ADD BEGINMODULE,ENDMODULE ; ARTHUR P. GAUGHAN, JR. 24-MAR-80 REMOVE ENDMODULE ; ARTHUR P. GAUGHAN, JR. 26-MAR-80 PUT BACK WHILEB IN SMCALL ;STRUCTURED PROGRAMMING MACROS ; ; ** SUPMAC ** ; ;;;;; V0051 ; .MACRO SMACIT .MCALL SMCALL $SUPMC=51 $DIDDO=0 $EF$=0 $L$=0 $T=0 $L=0 $R=-1 IIII=-1 $.$.$.=0 SMCALL ; DEFINE SUPMAC .ENDM SMACIT ; .MACRO SMCALL .MCALL ..PUSH,..POP,..GET,..TAG,..BRAN,.EMIT,.EMITL,.EMITR,.IFOPR,.IS,.GENBR .MCALL .OPADD,.OPSUB,ENTRYPOINT,PROBE,PROBEB,BEGINMODULE,IF,OR,AND,WHILEB .MCALL RNE,REQ,RLT,RGE,RGT,RLE,RPL,RMI,RHI,RLOS,RHIS,RLO,RCS,RCC,RVC,RVS .MCALL NNE,NEQ,NLT,NGE,NGT,NLE,NPL,NMI,NHI,NLOS,NHIS,NLO,NCS,NCC,NVC,NVS .MCALL .OR,.LEAVE,.GOTO,$SET$K$,DO,THEN,ELSE,WHILE,CASE,CASEB,FOR,TO,DOWNTO .MCALL FOR.ABS,REPEAT,UNTIL,THRU,END,BEGIN,$$END,LEAVE,JUMPTO,GOTO,PUSH,POP .MCALL $CALL,$RETURN,LET,LETB,.SIMPLE,.ARITH,BRANCH,.SOB,PROCEDURE,CALLG .MCALL PUSHB,POPB,ORB,ANDB,IFB,UNTILB,ON.ERROR,ON.NOERROR,FI .MACRO SMCALL .ENDM .ENDM SMCALL ; ; .MACRO ..PUSH AA1,AA2 IIII=IIII+1 .IRP TT,\IIII TYPS'TT = AA1 LBLS'TT = AA2 .ENDM .ENDM .MACRO ..POP AA1,AA2 .IF LT IIII .LIST .ERROR ;STACK UNDERFLOW; $Y$=IIII .NLIST .MEXIT .IFF .IRP TT,\IIII AA1 = TYPS'TT AA2 = LBLS'TT .ENDM .ENDC IIII=IIII-1 .ENDM ; .MACRO ..GET PPP,AA1,AA2 .IRP TT,\PPP AA1=TYPS'TT AA2=LBLS'TT .ENDM .ENDM ..GET ; .MACRO ..TAG TG,WH .EMITL .ENDM ; .MACRO ..BRAN BRA,TG,WH .EMIT .ENDM ..BRAN ; .MACRO .SOB A,B .EMIT ..BRAN BEQ,\$.$.$.,T BRANCH B ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .SOB ; .MACRO BRANCH TARGET .IF DF TARGET .IF GT .-TARGET-376 .EMIT .IFF .IF GE .-TARGET .EMIT
.IFF .EMIT .ENDC .ENDC .IFF .EMIT .ENDC .ENDM BRANCH ; .MACRO .EMIT VAL $E$=1 .IIF DF LST$$ .LIST MEB VAL .IIF DF LST$$ .NLIST MEB .ENDM ; .MACRO .EMITL VAL .IIF DF LST$$ .LIST VAL .IIF DF LST$$ .NLIST .ENDM ; .MACRO .EMITR S1,S2 .EMIT .IIF GT S2-1 .EMITR ,\S2-1 .ENDM .MACRO .IFOPR OPRA,RELA,TTG .EMIT OPRA .IF GT $R .IIF EQ $L$ N'RELA L'TTG .IIF EQ $L$-1 N'RELA B'TTG .IIF EQ $L$-2 N'RELA E'TTG .IIF EQ $L$-3 N'RELA TTG .IFF .IIF EQ $L$ R'RELA L'TTG .IIF EQ $L$-1 R'RELA B'TTG .IIF EQ $L$-2 R'RELA E'TTG .IIF EQ $L$-3 R'RELA TTG .ENDC ..PUSH 0,$T $I$=1 .ENDM .MACRO .IS Q1,Q2,QB,QT .IIF DIF ,,.ERROR ; IF SYNTAX ERROR Q1 IS; .IIF IDN ,,.IFOPR <<.=.>>,Q2,QT .ENDM ; .MACRO .GENBR A1,B1,C1,D1,E1 $I$=0 .IIF IDN .IFOPR <>,NE,E1 .IIF IDN .IFOPR <>,NE,E1 .IIF IDN .IFOPR <>,EQ,E1 .IIF IDN .IFOPR <>,EQ,E1 .IIF IDN <#0> .IFOPR <>,B1,E1 .IIF IDN <#0> .IFOPR <>,B1,E1 .IIF IDN .IS A1,C1,D1,E1 .IIF EQ $I$ .IFOPR <>,B1,E1 .ENDM .MACRO .OPADD V1,V2,V3 .IIF IDN <#1> .EMIT .IIF NE $E$ .MEXIT .IIF IDN .EMIT .IIF NE $E$ .MEXIT .EMIT .ENDM ; ; .MACRO .OPSUB V1,V2,V3 .IIF IDN <#1> .EMIT .IIF NE $E$ .MEXIT .IIF IDN .EMIT .IIF NE $E$ .MEXIT .EMIT .ENDM .MACRO NNE LOC ..BRAN BEQ,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NEQ LOC ..BRAN BNE,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NLT LOC ..BRAN BGE,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NGE LOC ..BRAN BLT,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NGT LOC ..BRAN BLE,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NLE LOC ..BRAN BGT,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NPL LOC ..BRAN BMI,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NMI LOC ..BRAN BPL,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NHI LOC ..BRAN BLOS,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NLOS LOC ..BRAN BHI,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NHIS LOC ..BRAN BLO,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NLO LOC ..BRAN BHIS,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NCS LOC ..BRAN BCC,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NCC LOC ..BRAN BCS,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NVC LOC ..BRAN BVS,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO NVS LOC ..BRAN BVC,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RNE LOC ..BRAN BNE,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO REQ LOC ..BRAN BEQ,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RLT LOC ..BRAN BLT,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RGE LOC ..BRAN BGE,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RGT LOC ..BRAN BGT,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RLE LOC ..BRAN BLE,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RPL LOC ..BRAN BPL,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RMI LOC ..BRAN BMI,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RHI LOC ..BRAN BHI,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RLOS LOC ..BRAN BLOS,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RHIS LOC ..BRAN BHIS,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RLO LOC ..BRAN BLO,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RCS LOC ..BRAN BCS,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RCC LOC ..BRAN BCC,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RVC LOC ..BRAN BVC,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO RVS LOC ..BRAN BVS,\$.$.$.,T BRANCH LOC ..TAG \$.$.$.,T $.$.$.=$.$.$.+1 .ENDM .MACRO IF A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,BB .IIF B .MEXIT $O$=0 $I$=0 .IF IDN .IIF NB .LEAVE A,BE,C,BB,EE .ENDC .IIF NE $I$ .MEXIT .IF IDN .IIF NB .GOTO A,BE,C,BB,EE .ENDC .IIF NE $I$ .MEXIT .IIF IDN .OR A,BE,C,BB .IIF IDN .OR A,BE,C,BB .IF EQ $O$ .IIF EQ $L$-1 .GENBR A,BE,C,BB,\$T2 .IIF NE $L$-1 .GENBR A,BE,C,BB,\$T .ENDC $T=$T+1 .IIF B ,.MEXIT ; D EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z .IIF LE $DIDDO .MEXIT ..POP $$T,$$T ..TAG \$$T,L $DIDDO=$DIDDO-1 .ENDM .MACRO .OR OA,OB,OC,OD $R=-$R $O$=1 $SV$=$L$ $L$=0 .IIF NE $L$-1 .GENBR OA,OB,OC,OD,\$T .IIF EQ $L$-1 .GENBR OA,OB,OC,OD,\$T2 $L$=$SV$ $R=-$R .ENDM ; ; ; .MACRO .LEAVE LA,LB,LC,LD,LE $L$=2 .IIF IDN $SET$K$ IIII .IIF DIF $K$=LE $R=-$R .GENBR LA,LB,LC,LD,\$K$ ..POP $$TT,$$TT $R=-$R $L$=0 .ENDM ; ; .MACRO .GOTO GA,GB,GC,GD,GEE $R=-$R $L$=3 .GENBR GA,GB,GC,GD,GEE ..POP $$TT,$$TT $R=-$R $L$=0 .ENDM ; ; .MACRO $SET$K$ BBB $K$L=-1 $K$=-1 .IF LT BBB .ERROR ; NO LOOP BLOCK; .MEXIT .ENDC ..GET BBB,$K$T,$K$L $XXX$ = 0 .IIF EQ $K$T-1 $XXX$ = 1 ;WHILE .IIF EQ $K$T-2 $XXX$ = 1 ;FOR .IIF EQ $K$T-5 $XXX$ = 1 ;REPEAT .IIF EQ $K$T-6 $XXX$ = 1 ;THRU .IIF EQ $XXX$ $SET$K$ BBB-1 $K$=$K$L .ENDM $SET$K$ .MACRO OR EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,BB .IIF B .MEXIT .IIF IDN ..POP $T1,$T .IIF IDN ..POP $T1,$T IF'BB EE,F,G,H .IF DIF .IF DIF ..POP $$TT,$$TT ..POP $$T,$$T $$S=0 .IIF IDN ,,$$S=1 .IIF IDN ,,$$S=1 .IIF IDN ,,$$S=2 .IIF IDN ,,$$S=2 .IF NE $$S .IF EQ,$$S-1 ..PUSH 0,$$TT ..TAG \$$T,L .ERROR ; AND (ANDB) SEEN AFTER AN OR (ORB); .MEXIT .ENDC ..TAG \$$T,L THEN H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z .IFF ..TAG \$$T,L .IIF B ..PUSH 0,$$TT .IIF B .MEXIT H I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z .ENDC .IF LE $DIDDO ..PUSH 0,$$TT .IFF ..TAG \$$TT,L $DIDDO=0 .ENDC .MEXIT .ENDC .ENDC H I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z .ENDM ; ; .MACRO AND EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,BB .IIF B .MEXIT $$S=0 .IIF IDN ,,$$S=1 .IIF IDN ,,$$S=1 .IF GT $$S ..POP $$T,$$T IF'BB EE,F,G,H ..TAG \$$T,L H I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z .IFF ..POP $T,$T IF'BB EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z $$S=0 .IIF IDN ,,$$S=1 .IIF IDN ,,$$S=1 .IF NE $$S ..TAG \$T,L $T=$T+1 .ENDC .ENDC .ENDM ; ; .MACRO DO EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z .IIF B ,.MEXIT LET EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z $DIDDO=$DIDDO+1 .ENDM ; ; .MACRO THEN EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z .IIF B .MEXIT EE F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z $DIDDO=$DIDDO+1 .ENDM .MACRO ELSE ..POP $T1,$T2 .IF NE $T1 .ERROR ; $T1 ELSE SEEN IN OTHER THAN IF BLOCK; ..PUSH $T1,$T2 .MEXIT .ENDC ..BRAN BRANCH,\$T,L ..TAG \$T2,L ..PUSH $T1,$T $T=$T+1 .ENDM .MACRO WHILE A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,BB $DIDDO=-1 ..TAG \$L,B IF A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,BB .IF EQ $DIDDO ..BRAN BRANCH,\$L,B ..POP $$T,$$T ..TAG \$$T,L .IFF ..PUSH 1,$L .ENDC $DIDDO=0 $L=$L+1 .ENDM .MACRO CASE A,BBB,C .IIF DIF .EMIT .EMIT .IRP TT,\$T .EMIT .ENDM ..PUSH 4,$T $T=$T+1 .ENDM CASE ; .MACRO CASEB A,BBB,C .IIF DIF .EMIT .EMIT .EMIT .IRP TT,\$T .EMIT .ENDM ..PUSH 4,$T $T=$T+1 .ENDM CASEB .MACRO FOR A,BBB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,MG .IIF DIF ,,FOR A,BBB,C,D,EE,BY,#1,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,MG .IIF DIF ,,.MEXIT ; .SIMPLE A,BBB,C ..TAG \$L,B .IF B ..PUSH 2,$L .IRP TT,\<$L> .MACRO $.$'TT D A,EE,G,TT,MG .ENDM .ENDM .IFF $SDO=$DIDDO H I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z D A,EE,G,\$L .IIF GT $DIDDO-$SDO $DIDDO=$DIDDO-1 .ENDC $L=$L+1 .ENDM .MACRO TO A1,A2,A3,A4,MG $E$=0 .OPADD A1,A3 .EMIT .IF IDN .EMIT .IFF .EMIT .ENDC BRANCH B'A4 .EMITL .ENDM .MACRO DOWNTO A1,A2,A3,A4,MG $E$=0 .OPSUB A1,A3 .EMIT .IF IDN .EMIT .IFF .EMIT .ENDC BRANCH B'A4 .EMITL .ENDM .MACRO FOR.ABS A,BBB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z FOR A,BBB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,ABS .ENDM FOR.ABS .MACRO REPEAT A,BB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z ..TAG \$L,B ..PUSH 5,$L $L=$L+1 .IIF B .MEXIT .IF IDN UNTILB BB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z .MEXIT .ENDC .IF IDN UNTIL BB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z .MEXIT .ENDC LET A,BB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z .ENDM .MACRO UNTIL A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,BB $L$=1 ..POP $T1,$T2 .IF NE $T1-5 .ERROR ; UNTIL SEEN IN OTHER THAN REPEAT BLOCK; .MEXIT .ENDC IF A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,BB ..POP $$T,$$T ..TAG \$T2,E $L$=0 .ENDM .MACRO THRU A,BB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V .NTYPE A3,A .IF NE A3&70 .ERROR ; A MUST BE A REGISTER; .MEXIT .ENDC .IIF NB ,LET A,BB,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V ..TAG \$L,B ..PUSH 6,$L .IRP TT,\$L .MACRO $.$'TT .SOB A,B'TT .ENDM .ENDM $L=$L+1 .ENDM THRU .MACRO END COMM ..POP $T1,$T2 .IF EQ $T1 .IIF EQ $EF$-1 .PRINT ; MISSING END - IF; ..TAG \$T2,L ;-0- IF .MEXIT .ENDC ; .IF EQ $T1-3 .IIF EQ $EF$-1 .PRINT ; MISSING END - BEGIN; ..TAG \$T2,E ;-3- BEGIN/END .MEXIT .ENDC ; .IF EQ $T1-5 .IIF EQ $EF$-1 .PRINT ; MISSING END - REPEAT; ..BRAN BRANCH,\$T2,B ;-5- REPEAT ..TAG \$T2,E .MEXIT .ENDC ; .IF EQ $T1-1 ;-1- WHILE .IIF EQ $EF$-1 .PRINT ; MISSING END - WHILE; ..BRAN BRANCH,\$T2,B ..POP $$T,$$T ..TAG \$$T,L ..TAG \$T2,E .MEXIT .ENDC ; .IF EQ $T1-2 ;-2- FOR .IIF EQ $EF$-1 .PRINT ; MISSING END - FOR; .IRP TT,<\$T2> $.$'TT .ENDM .MEXIT .ENDC ; .IF EQ $T1-4 ;-4- CASE .IIF EQ $EF$-1 .PRINT ; MISSING END - CASE; ..TAG \$T2,L .EMIT .EMIT .EMIT .MEXIT .ENDC ; .IF EQ $T1-6 ; -6- THRU .IIF EQ $EF$-1 .PRINT ; MISSING END - THRU; .IRP TT,\$T2 $.$'TT ..TAG \$T2,E .ENDM .MEXIT .ENDC ; .ERROR ; $T STRANGE SUPER-MAC STACK VALUE; .ENDM ; .MACRO BEGIN BNAME .IIF NB BNAME=$L ..PUSH 3,$L ..TAG \$L,B $L=$L+1 .ENDM .MACRO $$END .IF GE IIII $EF$=1 END $EF$=0 $$END .ENDC .ENDM .MACRO LEAVE AAAA,A,BB,C,D,EE,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U .IIF B .MEXIT .IIF IDN ,,$SET$K$ IIII .IIF DIF ,,$K$=AAAA .IRP QQ,\$K$ BRANCH E'QQ .ENDM .ENDM ; ; .MACRO JUMPTO AAAA,A,B,C,D,E,F,H,G,I,J,K,L,M,N,O,P,Q,R,S,T,U BRANCH AAAA .ENDM ; .MACRO GOTO BBBB,A,BB,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U .IIF B .MEXIT BRANCH BBBB .ENDM ; .MACRO PUSH P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q22 .IF NB P0 .EMIT PUSH P1,P2,P3,P4,P5,P6,P7,P8,P9 .ENDC .ENDM PUSH ; .MACRO POP P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q22 .IF NB P0 .IF IDN .EMIT .IFF .EMIT .ENDC POP P1,P2,P3,P4,P5,P6,P7,P8,P9 .ENDC .ENDM POP ; .MACRO PUSHB P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q10,Q11,Q22 .IF NB P0 .EMIT .EMIT PUSHB P1,P2,P3,P4,P5,P6,P7,P8,P9 .ENDC .ENDM PUSHB ; .MACRO POPB P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,Q0,Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8,Q9,Q22 .IF NB P0 .EMIT POPB P1,P2,P3,P4,P5,P6,P7,P8,P9 .ENDC .ENDM POPB .MACRO $CALL NAME,ARGS,WHERE,TYPE,A,BB,C,D,E,F,G,H,I,J,K,LL,M,N,O,P,Q,RR,S ; NOTE: **** WHERE AND TYPE NOT IMPLEMENTED **** .IIF B .EMIT .IIF B .MEXIT .IF NB WHERE .ERROR ; WHERE .... ARG'S MUST BE WITHIN <>; .MEXIT .ENDC .$T=0 .MACRO $GENM BBT,BBP .IIF GT BBP-5 .ERROR ; 6 ARG MAX (R0-R5); .IIF GT BBP-5 .MEXIT .IIF DIF .EMIT .ENDM .IRP T, .IIF NB $GENM T,\.$T .$T=.$T+1 .ENDM .EMIT .ENDM .MACRO CALLG ENTRY,ARGS,CHECK .IF B ENTRY .ERROR ;.... PROCEDURE NAME NOT SPECIFIED .... .MEXIT .ENDC .IF NB CHECK .ERROR ; CHECK .... ARGUMENTS MUST BE WITHIN <> .... .MEXIT .ENDC .IF B .EMIT .EMIT .EMIT .EMIT .EMIT .EMIT .EMIT .MEXIT .ENDC .$ARGS=0 .$SIZE=0 .IRP X, .$ARGS=.$ARGS+1 .$SIZE=.$SIZE+2 .ENDM .IIF GT .$ARGS-16 .ERROR ;.... 16 ARGS MAX .... .EMIT .EMIT .EMIT .EMIT .EMIT .IRP X, .IIF B .EMIT .IIF NB .EMIT .ENDM .EMIT .EMIT .EMIT .EMIT .EMIT .EMIT .ENDM .MACRO $RETURN STA,REG,A,BE,C,D,E,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE .IF NB STA .IF DIF , .IF DIF , .IF DIF , .IF IDN , .EMIT .EMIT .IFF .EMIT .EMIT .ENDC .IFF .EMIT .ENDC .IFF .EMIT .ENDC .ENDC .ENDC .IIF B .EMIT .IIF NB .EMIT .ENDM .MACRO LET A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V .SIMPLE A,BE,C,D,EE .IIF B .MEXIT .IIF B .MEXIT .IIF B .MEXIT .IIF IDN LET EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V .IIF IDN .MEXIT .IIF IDN LET F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V .IIF IDN .MEXIT .IIF IDN LET G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V .IIF IDN .MEXIT .IF LT $Y$ LET A,BE,A,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V .MEXIT .ENDC LET A,BE,A,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V .ENDM .MACRO LETB A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V LET A,:B=,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V .ENDM LETB .MACRO .SIMPLE X1,X2,X3,X4,X5,X6 .IF DIF <:=> .IF DIF <:W=> .IF DIF <:==> .IF DIF <:B=> .ERROR ; X2 NOT A LEGAL ASSIGNMENT OPERATOR; .MEXIT .ENDC .ENDC .SIMPLE X1,:=,X3,X4,X5,B .MEXIT .ENDC .ENDC .IIF IDN .SIMPLE -(SP),X2,X3,X4,X5,X6 .IIF IDN .MEXIT .IIF IDN .SIMPLE @SP,X2,X3,X4,X5,X6 .IIF IDN .MEXIT $Y$=0 $Z$=0 .IIF IDN $Z$=-1 .IIF IDN $Z$=-1 .IIF IDN $Z$=-2 .IIF IDN $Y$=7 .IIF IDN $Y$=7 .IIF IDN $Y$=7 .IIF IDN <0> $Y$=7 .IIF IDN <#0> $Y$=7 .IIF IDN $Y$=4 .IIF IDN $Y$=4 .IIF IDN $Y$=4 .IF LT $Z$ .IIF EQ $Z$+$Y$-6 .EMIT .IIF EQ $Z$+$Y$-5 .EMIT .IIF EQ $Z$+$Y$-3 .EMIT .IIF EQ $Z$+$Y$-2 .EMIT .MEXIT .ENDC ; .IIF IDN $Y$=-1 .IIF IDN <-> $Y$=-2 .IIF IDN $Y$=5 .IIF IDN $Y$=6 .IIF IDN $Y$=10 .IF DIF .IIF EQ $Y$-7 .EMIT .IF DIF <@SP>, .IIF EQ $Y$-6 .EMIT .ENDC .IIF EQ $Y$-5 .EMIT .IIF EQ $Y$-4 .EMIT .IIF EQ $Y$ .EMIT .ENDC .IF DIF .IIF LT $Y$ .EMIT .ENDC .IIF IDN <+1> $Y$=-5 .IIF IDN <-1> $Y$=-6 .IF LT $Y$ .IIF EQ $Y$+1 .EMIT .IIF EQ $Y$+2 .EMIT .IIF EQ $Y$+3 .EMIT .IIF EQ $Y$+4 .EMIT .IIF EQ $Y$+5 .EMIT .IIF EQ $Y$+6 .EMIT .MEXIT .ENDC ; .IIF B .MEXIT .IIF IDN .MEXIT .IIF IDN .MEXIT $E$=0 .IIF IDN .ARITH X1,@SP,X6,X4 .IIF IDN .ARITH X1,(SP)+,X6,X4 .IIF EQ $E$ .ARITH X1,X5,X6,X4 .ENDM ; .MACRO .ARITH Y1,Y2,Y3,Y4 .IIF IDN <-(SP)> .ARITH @SP,Y2,Y3,Y4 .IIF IDN <-(SP)> .MEXIT .IIF IDN <+> .OPADD Y1,Y2,Y3 .IIF IDN <-> .OPSUB Y1,Y2,Y3 .IIF NE $E$ .MEXIT .IIF IDN .EMIT .IIF IDN .EMIT .IIF IDN .EMIT .IIF NE $E$ .MEXIT .IIF IDN .EMIT .IIF IDN .EMIT .IIF IDN .EMIT .IIF NE $E$ .MEXIT .IIF IDN .EMITR ,Y2 .IIF IDN .EMITR ,Y2 .IIF IDN .EMITR ,Y2 .IIF IDN .EMITR ,Y2 .IIF NE $E$ .MEXIT .IIF IDN <*> .EMIT .IIF IDN .EMIT
.IIF IDN .EMIT .IIF IDN .EMIT .IIF NE $E$ .MEXIT .IIF IDN .EMIT .IIF EQ $E$ .ERROR ; Y4 NOT A LEGAL OPERATOR; .ENDM ; ; ; .MACRO ORB EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z OR EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,B .ENDM ; .MACRO ANDB EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z AND EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,B .ENDM ; .MACRO IFB A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z IF A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,B .ENDM ; ; .MACRO UNTILB A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z UNTIL A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,B .ENDM ; .MACRO WHILEB A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z WHILE A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,B .ENDM ; .MACRO ON.NOERROR A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S IF RESULT IS,CC,A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S .ENDM ; .MACRO ON.ERROR A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S IF RESULT IS,CS,A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S .ENDM .MACRO FI COMM END .ENDM ; ; .MACRO PROCEDURE ENTRY,TYPE,SAVE .IF B ENTRY .ERROR ;.... PROCEDURE NAME NOT SPECIFIED .... .MEXIT .ENDC .IF B TYPE .EMITL .IFF .IF IDN .EMITL .IFF .IF IDN .EMITL .IFF .EMITL .PRINT ;.... UNRECOGNIZED TYPE KEYWORD - DEFAULT TO GLOBAL .... .ENDC .ENDC .ENDC .IF B SAVE .MEXIT .IFF .IF IDN .EMIT .IFF .PRINT ;.... UNRECOGNIZED SAVE KEYWORD - REGISTERS NOT SAVED .... .ENDC .ENDC .ENDM PROCEDURE ; .MACRO ENTRYPOINT ENTRY,TYPE .IF B ENTRY .ERROR ;.... ENTRY POINT NAME NOT SPECIFIED .... .MEXIT .ENDC .IF B TYPE .EMITL .IFF .IF IDN .EMITL .IFF .IF IDN .EMITL .IFF .EMITL .PRINT ;.... UNRECOGNIZED TYPE KEYWORD - DEFAULT TO GLOBAL .... .ENDC .ENDC .ENDC .ENDM ENTRYPOINT ; .MACRO BEGINMODULE NAME,IDENT,DATE .IF NB .EMIT <.TITLE NAME> .ENDC .IF NB .EMIT <.IDENT /IDENT/> .ENDC .EMIT <.NLIST CND> .LIST ME ; ; ; ;BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON ;B B ;R R ;I COPYRIGHT (C) 1980 I ;D BRIDGEPORT-TEXTRON D ;G CONTROLS MFG. PLANT G ;E HORSHAM, PA 19044 E ;P P ;O THIS SOFTWARE IS FURNISHED TO THE USER FOR USE WITH A SINGLE O ;R COMPUTER/CONTROL SYSTEM. THE INFORMATION CONTAINED IN THIS DOC- R ;T UMENT IS PROPRIETARY TO BRIDGEPORT-TEXTRON AND IS MADE AVAILABLE T ;! FOR THE USE AND MAINTENANCE OF OUR PRODUCTS. REPRODUCTION OR ! ;T DISSEMINATION OF THIS INFORMATION FOR ANY OTHER PURPOSE IS PRO- T ;E HIBITED WITHOUT WRITTEN PERMISSION. TITLE TO AND OWNERSHIP OF E ;X THIS SOFTWARE SHALL AT ALL TIMES REMAIN IN BRIDGEPORT-TEXTRON. X ;T T ;R THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT R ;O NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY BRIDGE- O ;N PORT-TEXTRON. N ;! ! .IF NB ; MODULE: NAME .IFF ; .ENDC .IF NB ; VERSION: IDENT .IFF ; .ENDC .IF NB ; NOTES: LAST EDIT -> DATE .IFF ; NOTES: .ENDC ;! ! ;H H ;O O ;R R ;S S ;H H ;A A ;M M ;BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON BRIDGEPORT-TEXTRON ; ; ; .NLIST ME .ENDM BEGINMODULE .MACRO PROBE A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,BYTE .IF NB BE .ERROR ;.....'PROBE' ACCEPTS ONLY ONE ARGUMENT..... .MEXIT .ENDC .IF NB C .ERROR ;.....'PROBE' ACCEPTS ONLY ONE ARGUMENT..... .MEXIT .ENDC .IF NB D .ERROR ;.....'PROBE' ACCEPTS ONLY ONE ARGUMENT..... .MEXIT .ENDC .IF NB EE .ERROR ;.....'PROBE' ACCEPTS ONLY ONE ARGUMENT..... .MEXIT .ENDC .IF B BYTE .EMIT .IFF .IF IDN .EMIT .IFF .ERROR ;.....'PROBE' ACCEPTS ONLY ONE ARGUMENT..... .ENDC .ENDC .ENDM PROBE .MACRO PROBEB A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z PROBE A,BE,C,D,EE,F,G,H,I,J,K,LL,M,N,O,P,Q,R,S,TE,U,V,W,X,Y,Z,B .ENDM PROBEB