	.TITLE ATTESQ
	.IDENT /250883/

; Version: V3.0
; File:[22,310]ATTESQ.MAC
; Last edit: 17-JUL-1989 09:57:45 
; Author: Jim Bostwick 25-Aug-83
; History: Cloned from V2.0
;
;          17-Jul-89.  Philip Hannay.  Changed QIO to use EFN 24, which is
;            reserved for P3UTIL.
;
.REM |

PROCEDURE ATTESQ(LUN:Integer; VAR IOSB:Integer ; VAR IDS:Integer);External;

{

*USER*

Pascal-2 procedure to attach LUN with the TF.ESQ subfunction which enables
escape sequence recognition. LUN is first detached (ignoring possible
'was not attached' error), then (re-)attached with TF.ESQ.

WARNING! Make sure that LUN is assigned to a TT: device!! Many terminal
functions are potentially catastrophic if issued to a disk!

This routine uses local efn 24 which is reserved for use by P3UTIL routines.

}

|

; Assemble with PASMAC.MAC as prefix file.
;

	.MCALL QIOW$S

	PROC ATTESQ
	PARAM LUN, INTEGER
	PARAM ISB, ADDRESS
	PARAM IDS, ADDRESS
	VAR STAT, 2*INTEGER	;LOCAL FULL IO STATUS BLOCK
	SAVE <R0, R1 >
	BEGIN
	MOV SP,R0		;PRESERVE SP
	MOV SP,R1
	ADD #STAT,R1		;R1->IOSB
	QIOW$S #IO.DET,LUN(0),#24.,,R1
	BCS 15$			;DIRECTIVE ERROR-SKIP ATTACH
	CMPB STAT(0),#IS.SUC	;SUCCESS
	BEQ 1$			;BR IF SO
	CMP STAT(0),#IE.DNA	;NOT ATTACHED ERROR IS OK
	BNE 14$			;OTHER ERROR - QUIT
1$:	QIOW$S #IO.ATT!TF.ESQ,LUN(0),#24.,,R1
14$:	TSTB (R1)		;CHECK FOR ERRORS   
	BPL 16$ 		; NO ERROR - BRANCH 
	MOVB #-1, 1(R1)		; SIGN-EXTEND THE ERROR 
16$:	MOV (R1),@ISB(0)	;RETURN IO STATUS BLOCK WORD 1  
15$:	MOV $DSW,@IDS(SP)	;RETURN DIRECTIVE STATUS        
	ENDPR
	.END

