.TITLE .DIRDL -- EXECUTE DIRECTIVE .IDENT -000000- .MCALL DIR$,WSIG$S .GLOBL $DSW ;+ ; ABSTRACT: .DIRDL ; ; THIS SUBROUTINE IS MEANT TO BE CALLED BY ASSEMBLER ROUTINES ; TO EXECUTE DIRECTIVES WHICH MIGHT FAIL BECAUSE OF ; INSUFFICIENT NODES. IT WILL ONLY WORK CORRECTLY ON QIO AND ; MARK TIME DIRECTIVES, AND THE VARIOUS TASK EXECUTION DIRECTIVES. ; IT WILL NOT WORK CORRECTLY ON THE VARIOUS SEND DATA DIRECTIVES. ; ; CALLING SEQUENCE: ; ; MOV #DPB,-(SP) ;SAVE DPB ADDRESS ; CALL .DIRDL ;DO THE I/O ; ;DPB ADDRESS POPPED OFF BY .DIRDL ; ; WRITTEN: 25-JUL-78, -0.0.0-, BRUCE C. WRIGHT ; MODIFIED: ; VERIFIED: ;- LOOP: WSIG$S ;WAIT A BIT. .DIRDL:: DIR$ 2(SP) ;EXECUTE THE DIRECTIVE BCC LEAVE ;LEAVE IF OK CMP @#$DSW,#-1 ;NO NODES? BEQ LOOP ;YES -- TRY AGAIN. SEC ;SET CARRY - ERROR. LEAVE: MOV (SP)+,(SP) ;POP STACK RETURN ;AND RETURN. .END