.TITLE SCCA TEST .MCALL .SCCA,.PRINT,.TWAIT,.EXIT .ENABL LC .NLIST BEX .MACRO PUTDGT BIN,LOC MOVB BIN,LOC BISB #'0,LOC .ENDM .MACRO PRINT MESSG,?M .ENABL LSB .PRINT #M .PSECT MESSAG M: .ASCIZ \MESSG\ .DSABL LSB .PSECT .ENDM .MACRO CHKERR MESSG,?NOERR,?N,?M .ENABL LSB BCC NOERR PUTDGT ERRBYT,N .PRINT #M .EXIT NOERR: .PSECT MESSAG M: .ASCII \MESSG \ N: .ASCIZ \0\ .DSABL LSB .PSECT .ENDM .MACRO SHOBIT BITMSK,SETMSG,CLRMSG,?A,?B,?S,?C .ENABL LSB BIT #BITMSK,SCCAST BEQ A .PRINT #S .IF NB, BR B A: .PRINT #C B: .IFF A: .IFTF .PSECT MESSAG S: .ASCIZ \SETMSG\ .IFT C: .ASCIZ \CLRMSG\ .ENDC .DSABL LSB .PSECT .ENDM START: PRINT PRINT .TWAIT #AREA,#FIVES .SCCA #AREA,#SCCAST CHKERR <.SCCA failed> PRINT <^C should now just set flag> PRINT .TWAIT #AREA,#FIVES SHOBIT 100000,, CLR SCCAST PRINT .TWAIT #AREA,#FIVES SHOBIT 100000,, .SCCA #AREA,#0 CHKERR <.SCCA failed> PRINT <^C ABO will now abort> .TWAIT #AREA,#FIVES .EXIT AREA: .BLKW 4 SCCAST: .WORD 0 FIVES: .WORD 0,5*50. .PSECT MESSAG .EVEN .END START