.NLIST ; 00006 .IF EQ ..PASS-1 .MACRO $CODE .PSECT C$TEXT .ENDM $CODE .MACRO $PDATA .PSECT C$DATA .ENDM $PDATA .MACRO $IDATA .PSECT C$DATA .ENDM $IDATA .MACRO $ASCII .PSECT C$DATA .ENDM $ASCII .MACRO $VBOT .ENDM $VBOT .MACRO $VIRT .ENDM $VIRT .MACRO $VTOP .ENDM $VTOP .MACRO C$ARG, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10 .IF NB, C$ARG , , , , , , , , C$1ST = 1 C$BYTE = 0 .IRP C$TMP1, .IF IDN 'C$TMP1', B C$BYTE = 1 .IFF .IF NE, C$1ST .IF EQ, C$BYTE PUSH 'C$TMP1' .IFF PUSH #0 BISB 'C$TMP1', (SP) .ENDC .IFF ADD 'C$TMP1', (SP) .ENDC C$1ST = 0 .ENDC .ENDM C$A$L = C$A$L + 2 .ENDC .ENDM C$ARG .MACRO C$CALL, FUNC, X1, X2, X3, X4, X5, X6, X7, X8, X9, X10 C$A$L = 0 C$ARG , , , , , , , , , CALL FUNC .IF EQ, C$A$L-2 TST (SP)+ .IFF .IF EQ, C$A$L-4 BIT (SP)+, (SP)+ .IFF .IF NE, C$A$L ADD #C$A$L, SP .ENDC .ENDC .ENDC .ENDM C$CALL .MACRO C$CS ?A BCC A .WORD 210 A: .ENDM C$CS .MACRO C$RS ?A TST R0 BEQ A .WORD 210 A: .ENDM C$RS .MACRO C$RET .IF NE C$$SHT JMP C$RETS .IFF JMP C$RET .ENDC .ENDM C$RET .MACRO C$SAV A .IF NB, A C$$SHT = 1 PUSH R5 MOV SP, R5 .IFF C$$SHT = 0 JSR R5, C$SAV .ENDC .ENDM C$SAV .MACRO SC$RET JMP C$RETS .ENDM SC$RET .MACRO SC$SAV PUSH R5 MOV SP, R5 .ENDM SC$SAV ; .MACRO RESREG, X ; .IF LT, $L ; .ERROR ; .MEXIT ; .ENDC ; RREG \$L ; .IF B, X ; $L = $L -1 ; .ENDC ; .ENDM RESREG ; .MACRO RREG, L ; .IRP $A, <5, 4, 3, 2, 1, 0> ; .IF NE, $R'L''$A ; MOV (SP)+, R'$A ; .ENDC ; .ENDM ; .ENDM RREG ; .MACRO SAVREG, X, Y ; .IF NDF, $L ; .MCALL SREG, RREG ; $L = -1 ; .ENDC ; $L = $L + 1 ; SREG \$L, , Y ; .ENDM SAVREG ; .MACRO SREG, L, P1, P2 ; .IRP $A, <0, 1, 2, 3, 4, 5> ; $R'L''$A = 0 ; .ENDM ; .IF NB, ; .IF B, P2 ; $B = 0 ; .IRP $A, ; .IF LT, $A-$B ; .ERROR ; .ENDC ; $B = $A ; $R'L''$A = 1 ; MOV R'$A, -(SP) ; .ENDM ; .MEXIT ; .IFF ; $HI = P2 ; $LO = P1 ; .ENDC ; .IFF ; $HI = 5 ; $LO = 0 ; .ENDC ; .IF LT, $HI - $LO ; .ERROR ; .ENDC ; .IRP $A, <0, 1, 2, 3, 4, 5> ; .IF LE, $A-$HI ; .IF GE, $A-$LO ; $R'L''$A = 1 ; MOV R'$A, -(SP) ; .ENDC ; .ENDC ; .ENDM ; .ENDM SAVREG ; .MACRO CONJMP ; .MACRO JMPEQ, A ; BNE .+6 ; JMP A ; .ENDM JMPEQ ; .MACRO JMPNE, A ; BEQ .+6 ; JMP A ; .ENDM JMPNE ; .MACRO JMPCS, A ; BCC .+6 ; JMP A ; .ENDM JMPCS ; .MACRO JMPCC, A ; BCS .+6 ; JMP A ; .ENDM JMPCC ; .MACRO JMPLT, A ; BGE .+6 ; JMP A ; .ENDM JMPLT ; .MACRO JMPLE, A ; BGT .+6 ; JMP A ; .ENDM JMPLE ; .MACRO JMPGT, A ; BLE .+6 ; JMP A ; .ENDM JMPGT ; .MACRO JMPGE, A ; BLT .+6 ; JMP A ; .ENDM JMPGE ; .MACRO JMPHI, A ; BLOS .+6 ; JMP A ; .ENDM JMPHI ; .MACRO JMPHIS, A ; BLO .+6 ; JMP A ; .ENDM JMPHIS ; .MACRO JMPLO, A ; BHIS .+6 ; JMP A ; .ENDM JMPLO ; .MACRO JMPLOS, A ; BHI .+6 ; JMP A ; .ENDM JMPLOS ; .ENDM CONJMP ; .MACRO CMPD S, D ; .NTYPE $$SYM1, S ; .NTYPE $$SYM2, D ; .IF EQ, <$$SYM1&70-10>!<$$SYM2&70-10> ; CMP S, D ; BNE .+8. ; CMP 2S, 2D ; .MEXIT ; .ENDC ; .IF EQ, $$SYM1&70-10 ; .IF NE, $$SYM2&70-10 ; CMP S, D ; BNE .+8. ; CMP 2S, 2+D ; .MEXIT ; .ENDC ; .ENDC ; .IF EQ, $$SYM2&70-10 ; .IF NE, $$SYM1&70-10 ; CMP S, D ; BNE .+8. ; CMP 2+S, 2D ; .MEXIT ; .ENDC ; .ENDC ; .IF EQ, <$$SYM1&70-60>!<$$SYM2&70-60> ; CMP S, D ; BNE .+8. ; CMP 2+S, 2+D ; .MEXIT ; .ENDC ; .ERROR ; .ENDM CMPD ; .MACRO MOVD S, D ; .NTYPE $$SYM1, S ; .NTYPE $$SYM2, D ; .IF EQ, <$$SYM1&70-10>!<$$SYM2&70-10> ; MOV S, D ; MOV 2S, 2D ; .MEXIT ; .ENDC ; .IF EQ, $$SYM1&70-10 ; .IF NE, $$SYM2&70-10 ; MOV S, D ; MOV 2S, 2+D ; .MEXIT ; .ENDC ; .ENDC ; .IF EQ, $$SYM2&70-10 ; .IF NE, $$SYM1&70-10 ; MOV S, D ; MOV 2+S, 2D ; .MEXIT ; .ENDC ; .ENDC ; .IF EQ, <$$SYM1&70-60>!<$$SYM2&70-60> ; MOV S, D ; MOV 2+S, 2+D ; .MEXIT ; .ENDC ; .ERROR ; .ENDM MOVD ; .MACRO MSTR, A, B, C, ?D ; CLR R'C' ; BISB (R'A')+, R'C' ; MOVB R'C', (R'B')+ ;D: ; MOVB (R'A')+, (R'B')+ ; SOB R'C', D ; .ENDM MSTR ; .MACRO MVC, A, B, C, ?D ;D: ; MOVB (R'A)+, (R'B)+ ; SOB R'C, D ; .ENDM MVC ; .MACRO MVW, A, B, C, ?D ;D: ; MOV (R'A')+, (R'B')+ ; SOB R'C', D ; .ENDM MVW ; .MACRO STRING, S ; .NCHR $LS, ^/S/ ; .BYTE $LS ; .ASCII %S% ; .EVEN ; .ENDM STRING .ENDC .LIST