; DBIOM.MAC MACRO LIBRARY FOR USER DOUBLE BUFFER I/O MACROS ; for RT11 ; SORT package, DECUS, July 1983 .MACRO $DBIO .GLOBL INBUF$,OUTBU$,RESET$,PURGE$,IN$,OUT$,CLOSE$ .ENDM .MACRO $RESET JSR %7.,RESET$ .ENDM .MACRO $PURGE .CHAN MOV .CHAN,%0 JSR %7.,PURGE$ .ENDM .MACRO $INBUF .PRA,.CHAN,.IBUF,.SIZE,.BUFBEG MOV .PRA,%0 MOV .CHAN,(0) MOV .IBUF,2.(0) .IF NB .SIZE MOV .SIZE,4.(0) .IFF MOV #256.,4.(0) .ENDC .IF NB .BUFBEG MOV .BUFBEG,6.(0) .IFF MOV @#^O50,6.(0) .ENDC JSR %7.,INBUF$ .ENDM .MACRO $OUTBUF .PRA,.CHAN,.OBUF,.SIZE,.BUFBEG MOV .PRA,%0 MOV .CHAN,(0) MOV .OBUF,2.(0) .IF NB .SIZE MOV .SIZE,4.(0) .IFF MOV #256.,4.(0) .ENDC .IF NB .BUFBEG MOV .BUFBEG,6.(0) .IFF MOV @#^O50,6.(0) .ENDC JSR %7.,OUTBU$ .ENDM .MACRO $IN .PRA,.CHAN,.BLK MOV .PRA,%0 MOV .CHAN,(0) .IF NB .BLK MOV .BLK,2.(0) .IFF MOV #-1,2.(0) .ENDC JSR %7.,IN$ .ENDM .MACRO $OUT .PRA,.CHAN,.BLK MOV .PRA,%0 MOV .CHAN,(0) .IF NB .BLK MOV .BLK,2.(0) .IFF MOV #-1,2.(0) .ENDC JSR %7.,OUT$ .ENDM .MACRO $CLOSE .CHAN .IIF NB <.CHAN>, MOV .CHAN,%0 JSR %7.,CLOSE$ .ENDM