.TITLE QIOATT .IDENT /100487/ ; Version: ; File:[22,320]QIOATT.MAC ; Author: Peter Stadick (Third Author) ; History: 20-Nov-83 -- convert to Pascal-3 ; 13-Feb-85 -- Randy Baldwin ; fix iosb address pass in call, ; change DETACH function to DETCH to ; remove conflict with PASCALS DETACH ; function call. ; 04-Nov-86 -- Derived from Jim Bostwick ; (from Pascal-1 by Frank Stevens) ; Peter Stadick converted to write pass all. ; Last Edit: 4-OCT-1987 12:55:06 ; .REM | Procedure QIOATT(LUN:Integer; EFN:Event_Flag );EXTERNAL; {*USER* Pascal-3 Procedure to execute QIO ATT function. This procedure will use Executive Queue I/O Request and Wait (QIOW$C) Call. LUN is the logical unit number to be assigned to the appropriate device. EFN is the event flag to be set when the I/O is completed. f0 may not be specified. Directive status is available in $DSW on return. } | ; ; Assemble with PASMAC.MAC as prefix file. ; ; Thanks to Frank S. for the idea and the Pascal-1 version, which I ; brazenly plagiarized. Same here - P. Stadick. ; .MCALL QIOW$S PROC QIOATT PARAM LUN, INTEGER PARAM EFN, SCALAR SAVE BEGIN MOV SP,R0 ;PRESERVE SP MOV #IO.ATT,R1 ;ATTACH FUNCTION CODE IN R1 MOVB EFN(0),R2 ;EFN PARAM IS A BYTE, MUST CLEAN IT UP BIC #^C^O377,R2 ;MAKE IT AN UNSIGNED WORD BNE 3$ MOV #IE.IEF, $DSW ;MUST SUPPLY EVENT FLAG BR XT ;BRANCH IF ERROR 3$: QIOW$S R1,LUN(0),R2,,,,<,,#0> XT: ENDPR .END