	.NLIST
;
; PREFIX FILE FOR RSX-11 TECOIO ASSEMBLY
;
; VERSION R0210
;
; COPYRIGHT (C) 1976 BY DIGITAL EQUIPMENT CORPORATION,
; MAYNARD, MASSACHUSETTS
;
; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
; SINGLE  COMPUTER  SYSTEM AND MAY BE COPIED ONLY WITH THE IN-
; CLUSION OF THE ABOVE COPYRIGHT NOTICE.   THIS  SOFTWARE,  OR
; ANY  OTHER  COPIES THEREOF, MAY NOT BE PROVIDED OR OTHERWISE
; MADE AVAILABLE TO ANY OTHER PERSON EXCEPT FOR  USE  ON  SUCH
; SYSTEM  AND TO ONE WHO AGREES TO THESE LICENSE TERMS.  TITLE
; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL  TIMES  REMAIN
; IN DIGITAL.
;
; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE  WITH-
; OUT  NOTICE  AND  SHOULD NOT BE CONSTRUED AS A COMMITMENT BY
; DIGITAL EQUIPMENT CORPORATION.
;
; DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY  FOR
; THE USE OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT WHICH IS
; NOT SUPPLIED BY DIGITAL.
;
; ANDREW C. GOLDSTEIN  28-JUN-77  21:28
;
; BOB DENNY -- UNOFFICIAL CHANGE  JUNE 1979:  ELIMINATE SOB MACRO FOR "VUE"
;
	.ENABL	LC
;-------------------------------------------------------------------------
;
;	The modifications to this TECO/RSX-11M I/O module were
;	made by:
;
;		Bob Denny
;		Gould, Inc.  NavCom Systems Division
;		4323 N. Arden Drive.
;		El Monte, Ca.  91731
;		(213) 442-0123 Ext. 587
;
;	If you have any questions about the mods, or find (and maybe fix)
;	a problem, feel free to contact me.
;
;-------------------------------------------------------------------------



R$$11M	= 1		; 0 FOR RSX11D,  1 FOR RSX11M
;
	.IF	EQ,R$$11M
$DSW	= 0		; DIRECTIVE STATUS WORD ADDRESS FOR RSX11D
RNEPAL	= 1		; READ NO ECHO PASS ALL IS AVAILABLE IN RSX11D
R$$DYM	= 0		; RSX11D HAS NO DYNAMIC MEMORY FEATURE YET
TECTTY	= 0		; NO TECO MODE
	.IFF
RNEPAL	= 1		; NOT AVAILABLE IN RSX11M - REDEFINE WHEN IT IS
R$$DYM	= 1		; RSX11M HAS DYNAMIC MEMORY LOGIC
TECTTY	= 1		; TECO MODE
	.ENDC

	.ENABL	LC

;
; MACRO TO SIGNAL AN ERROR EXIT. IT CAUSES TECOIO TO MAKE AN
; ERROR RETURN WITH THE C BIT SET, A 3 CHARACTER RAD-50 ERROR
; CODE IN R1, AND A POINTER TO AN ERROR TEXT STRING IN R2.
; THE STRING AND POINTER ARE SUPPRESSED IF THE SYMBOL "ERRTXT"
; IS DEFINED AS ZERO. THE MACRO OPTIMIZES OUT REDUNDANT ERROR
; STRINGS.
;
.MACRO	ERROR	ERCOD,TEXT

	.IF	NDF,$E$'ERCOD
$E$'ERCOD:
	.IFF
	.IF	EQ,.-$E$'ERCOD
$E$'ERCOD:
	.ENDC
	.ENDC

	.IF	GE,.-$E$'ERCOD-400
	JMP	$E$'ERCOD
	.MEXIT
	.ENDC

	.IF	NE,.-$E$'ERCOD
	BR	$E$'ERCOD
	.MEXIT
	.ENDC

	JSR	R4,ERRORX
	.RAD50	"ERCOD"

	.PSECT	ER$TXT,RO,D,GBL
	$$$TXT = .
	.ASCIZ	TEXT
	.PSECT	CODE
	.WORD	$$$TXT

.ENDM	ERROR

;
; MACRO TO CALL GENERAL REGISTER SAVE ROUTINE. SAVE DOES A COROUTINE
; RETURN SO THAT AN RTS PC WILL DO A PROPER RESTORE AND RETURN.
;
.MACRO	SAVE
	JSR	R4,SAVREG
.ENDM	SAVE

;
; MACRO TO DO SOB INSTRUCTION WHEN RUNNING ON A MACHINE WITHOUT EIS.
;
;.MACRO	SOB	RX,TAG
;	DEC	RX
;	BNE	TAG
;.ENDM


;
; SPECIAL CHARACTERS RECOGNIZED.
;
CTRLC	= 3		; CONTROL C
BELL	= 07		; DING
BS	= 10		; BACKSPACE
TAB	= 11		; HORIZONTAL TAB
LF	= 12		; LINE FEED
VT	= 13		; VERTICAL TAB
FF	= 14		; FORM FEED
CR	= 15		; CARRIAGE RETURN
CTRLZ	= 32		; CONTROL Z
AM	= 33		; ALT MODE
SPACE	= 40		; SPACE
RUB	= 177		; RUBOUT
;
; OFFSETS TO CALLER'S REGISTERS SAVED ON STACK.
; NOTE THAT THESE ARE SENSITIVE TO THE OPERATION OF THE
; SAVREG ROUTINE!
;
SR0	= 2		; R0
SR1	= 4		; R1
SR2	= 6		; R2
SR3	= 10		; R3
SR4	= 12		; R4
SR5	= 14		; R5
;
; INTERFACES WITH TECO.
;
;
; RAD-50 CODE TO SIGNAL FILE NOT FOUND
;
FNFERR	= <<'F-100>*50*50>+<<'N-100>*50>+<'F-100>
;
; SIZE OF FILE NAME BUFFER
;
FILSIZ	= 100
;
; NAMES FOR CONTROL BITS IN THE ET FLAG
;
ET.IMG	= 1			; IMAGE MODE TYPEOUT
ET.CRT	= 2			; USE CRT TYPE RUBOUTS
ET.LOC	= 4			; ACCEPT LOWER CASE INPUT
ET.NCH	= 10			; NO ECHO ON ^T TYPE IN
ET.CCO	= 20			; CANCEL CONTROL O BEFORE OUTPUT
ET.CKE	= 40			; RETURN -1 ON ^T IF NO INPUT READY
ET.DET	= 100			; SET TO DETACH TERMINAL
ET.EXI	= 200			; EXIT ON ERRORS - NO MESSAGES
ET.TRN	= 400			; TRUNCATE LINES ON OUTPUT
ET.VT52	= 1000			; SCOPE ROUTINE AND VT52 AVAILABLE
ET.VT11	= 2000			; SCOPE ROUTINE AND VT11 AVAILABLE
ET.CC	= 100000		; CONTROL C TRAP FLAG
;
; LUN USAGE.
;
CMDLUN	= 1		; INDIRECT COMMAND FILE INPUT
TTYLUN	= 2		; CONSOLE TTY
OUTLUN	= 3		; OUTPUT FILE
INLUN	= 4		; INPUT FILE
MOLUN	= 5		; MO FOR I/O ERROR INTERPRETATION
TDRLUN	= 6		; LUN FOR TEMP DIRECTORY
ENLUN	= 7		; LUN FOR "EN" OPERATIONS

TTYEFN	= 4		; EFN FOR TTY I/O

;
; MACRO TO DO TASK EXPANSION. KEEP THIS UNTIL THE RSX-11M PEOPLE
; MANAGE TO GET IT INTO THE MACRO LIBRARY.
;
	.MACRO	EXRG$S	SIZE
	.MCALL	DIR$
	CLR	-(SP)
	MOV	SIZE,-(SP)
	MOV	#<3*400!89.>,-(SP)
	DIR$
	.ENDM	EXRG$S


	.LIST
