.TITLE SYSMAC ;ERROR PRINT MACRO DEFINITIONS .IDENT 'V001A' ; ; ; PRINT A USER-SUPPLIED ERROR MESSAGE NUMBER .MACRO USRERR MSGNO,RETADR .IF NB,MSGNO MOV MSGNO,-(SP) ;PUSH MESSAGE NO. .IFF MOV #128.,-(SP) ;DEFAULT MESAGE NO. = 128. .ENDC JSR PC,USRERR ;USER ERROR .IF NB,RETADR .WORD RETADR-. ;RETURN ADDRESS OFFSET .IFF .WORD 2 ;RETURN TO NEXT LOCATION .ENDC .ENDM ; ; CHECK FOR DIRECTIVE ERROR, PRINT MESSAGE AND BRANCH IF FOUND .MACRO DSWERR RETADR JSR PC,DSWERR ;DIRECTIVE STATUS WORD ERROR CHECK .IF NB,RETADR .WORD RETADR-. ;RETURN ADDRESS OFFSET .IFF .WORD 2 ;RETURN TO NEXT LOCATION .ENDC .ENDM ; CHECK FOR DIRECTIVE OR I/O ERROR IN AN I/O STATUS BLOCK .MACRO QIOERR IOSB,RETADR MOV IOSB,-(SP) ;PUSH I/O STATUS BLOCK ADDRESS JSR PC,QIOERR ;QIO ERROR CHECK .IF NB,RETADR .WORD RETADR-. ;RETURN ADDRESS OFFSET .IFF .WORD 2 ;RETURN TO NEXT LOCATION .ENDC .ENDM ; ; CHECK FOR DIRECTIVE, I/O, OR FCS ERROR IN A FILE DESCRIPTOR BLOCK .MACRO FDBERR FDBADR,RETADR .IF NB,FDBADR MOV FDBADR,-(SP) ;PUSH FILE DESCRIPTOR BLOCK ADDRESS .IFF MOV R0,-(SP) ;ASSUME R0=FDB ADDR. (SET BY FCS MACROS) .ENDC JSR PC,FDBERR ;FILE DESCRIPTOR BLOCK ERROR CHECK .IF NB,RETADR .WORD RETADR-. ;RETURN ADDRESS OFFSET .IFF .WORD 2 ;RETURN TO NEXT LOCATION .ENDC .ENDM