.TITLE LATDIS .IDENT /041989/ ; Version: ; File:[22,320]LATDIS.MAC ; Author: Peter Stadick ; History: ; ; Last Edit: 19-APR-1989 09:57:27 ; .REM | Procedure LATCON(LUN:Integer; EFN:Event_Flag );EXTERNAL; {*USER* Pascal-3 procedure to dissconnect a session and detach the lun. The lun must first be assigned and attached before you exicute the routine. This procedure will perform the following operation. - exicute a IO.HNG - exicute a IO.DET 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 LATDIS PARAM LUN, INTEGER PARAM EFN, SCALAR SAVE BEGIN MOV SP,R0 ;PRESERVE SP ; HANG UP LUN MOV #IO.HNG,R1 ;HANG UP 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> TST $DSW BMI XT ; DETACH LUN MOV #IO.DET,R1 ;DETACH FUNCTION CODE IN R1 QIOW$S R1,LUN(0),R2,,,,<,,#0> XT: ENDPR .END