Google
 

Trailing-Edge - PDP-10 Archives - BB-H348C-RM_1982 - swskit-v21/listings/mcb/posi.list
There are no other files named posi.list in the archive.
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13
TABLE OF CONTENTS

     3-  100	MACRO Definitions
     4-  100	Local Data Definitions
     5-  100	Message Segment
     6-  100	Main Program Section
     7-  100	Error Processing Routines
     7-  200	DSWERR - Print $DSW errors
     7- 1200	CRASH - Crashes the DN200 to get a dump
     7- 2700	STSERR - Prints the status block on an error
     8-  100	AST Service Routines
     8-  200	SPAAST - Network Mail Service
     9-  100	STRTCO and STRTNO - Start CTY Output
    10-  100	CTOAST - CTY Output AST Service
    11-  100	SETDFT - Set Default Parameters
    12-  100	Input Processing
    12-  200	CIPROC - Preprocess CTY input
    13-  100	CHRAST - Input Character AST
    14-  100	ECHO - Echo a Character From Input Processing
    15-  100	XMTLIN - Process Complete Input Line
    16-  100	CMDLNK - Try to establish command link
    17-  100	NETERR - Determine what network error message to issue
    18-  100	Network receive processing
    18-  200	NTPROC - Process Network Receive Functions
    19-  100	RECAST - REC$ AST service
    20-  100	HOLDIT - Add an entry to the Holding queue
    21-  100	HQEVAL - Evaluate holding queue entries
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 2


    100						.TITLE	POSI - PROVISIONAL OPERATOR SERVICES
    200						.IDENT	/X01.04/
    300						.ENABLE	LC		;LOWER CASE PLEASE!!
    400					;
    500					; COPYRIGHT (C) 1978, 1979
    600					; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
    700					;
    800					; THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A
    900					; SINGLE COMPUTER SYSTEM AND MAY  BE  COPIED   ONLY  WITH  THE
   1000					; INCLUSION OF THE ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE,  OR
   1100					; ANY OTHER COPIES THEREOF, MAY NOT BE PROVIDED  OR  OTHERWISE
   1200					; MADE AVAILABLE TO ANY OTHER PERSON   EXCEPT FOR  USE ON SUCH
   1300					; SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE  TERMS.  TITLE
   1400					; TO AND OWNERSHIP OF THE SOFTWARE SHALL AT ALL  TIMES  REMAIN
   1500					; IN DEC.
   1600					;
   1700					; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
   1800					; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
   1900					; EQUIPMENT CORPORATION.
   2000					;
   2100					; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF
   2200					; ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
   2300					;
   2400					;
   2500					;	Provisional Operator Services Interface for DN200
   2600					;
   2700					;	This hack was done July, 1978
   2800					;
   2900					;	Scott G. Robinson
   3000					;	LCG Comm/Nets Group
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 3
MACRO DEFINITIONS

    100						.SBTTL	MACRO Definitions
    200					;
    300					;	System Macro Calls
    400					;
    500						.MCALL	ALUN$S,WTSE$S,DSAR$S,ENAR$S,OPNW$S,GNDW$S,SPAW$S
    600						.MCALL	CALL,RETURN,GLNW$S,EXIT$S,CLEF$S,QIOW$S,CONB$$
    700						.MCALL	NETDF$,ACCW$S,REJW$S,ASTX$S
    800						.MCALL	CON$S,CONW$S,REC$S,RECW$S,SNDW$S,DSCW$S
    900						.MCALL	QIO$S,SETF$S,IHAR$S,ENAR$S,MRKT$S
   1000					;
   1100					;	System Symbol Definitions
   1200					;
   1300	000000					NETDF$
   1400					;
   1500					;	Local Macro Definitions
   1600					;
   1700
   1800
   1900					; EDIOUT is used to format and output a message on the CTY lun.
   2000					; This would normally be an error message because the macro uses
   2100					; a IO.WBT (break-thru write).
   2200					;
   2300					;	use:	EDIOUT	input string,argument list,output buffer
   2400					;
   2500					;	Refer to the IAS/RSX System Library Routines Reference
   2600					;		Manual for a description of the support routine.
   2700					;
   2800						.MACRO	EDIOUT	STRING,ARGBLK,OUTBUF
   2900					.IIF NB,OUTBUF, MOV	OUTBUF,R0	;Output Block Buffer
   3000					.IIF NB,STRING, MOV	STRING,R1	;Input Editing String
   3100					.IIF NB,ARGBLK, MOV	ARGBLK,R2	;Argument Block
   3200						CALL	$EDMSG		;Generate Message
   3300						SUB	R1,R0		;Get Buffer Address
   3400						CTYWBT	R0,R1		;Output Message to CTY
   3500						.ENDM	EDIOUT
   3600
   3700					; CTYWBT is used to write a message to the CTY breaking through
   3800					; all conditions. Used primarily to write error messages.
   3900					;
   4000					;	use:	CTYWBT	start of message, length of message
   4100					;
   4200						.MACRO	CTYWBT	START,LEN
   4300					;	QIOW$S	#IO.WBT,#LUNCTY,#CTYEFN,,#WBTSB,,<START,LEN,#0>
   4400						QIOW$S	#IO.WLB,#LUNCTY,#CTYEFN,,#WBTSB,,<START,LEN,#0>
   4500						ERCALL	DSWERR
   4600						.ENDM	CTYWBT
   4700
   4800					; IOCHK is a macro that checks for IS.SUC on the status block
   4900					; named and calls the error parameter if an error occurs.
   5000					;
   5100						.MACRO	IOCHK	SB,ERRROU
   5200						PUSH	#SB		;Push address of the status block
   5300						CMPB	#IS.SUC,@(SP)	;Check for success
   5400						BEQ	.+6
   5500						CALL	ERRROU
   5600						TST	(SP)+		;Remove address of SB
   5700						.ENDM	IOCHK
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 3-1
MACRO DEFINITIONS

   5800
   5900					; ERJUMP and ERCALL are used to handle carry condition code errors
   6000					; in a more reasonable manner than straight coding.
   6100					;
   6200						.MACRO	ERJUMP	ADDR
   6300						BCC	.+6
   6400						JMP	ADDR
   6500						.ENDM	ERJUMP
   6600
   6700						.MACRO	ERCALL	ADDR
   6800						BCC	.+6
   6900						CALL	ADDR
   7000						.ENDM	ERCALL
   7100
   7200					; PUSH and POP macros are used to manipulate elements onto and
   7300					; from the stack.
   7400					;
   7500						.MACRO	PUSH	ARG
   7600						.IRP	A,<ARG>
   7700						.IF NB A
   7800						MOV	A,-(SP)		;Push A onto stack
   7900						.IFF
   8000						CLR	-(SP)		;Allocate a 0 word
   8100						.ENDC
   8200						.ENDM
   8300						.ENDM	PUSH
   8400
   8500						.MACRO	POP	ARG
   8600						.IRP	A,<ARG>
   8700						.IF NB A
   8800						MOV	(SP)+,A		;Pop A off stack
   8900						.IFF
   9000						TST	(SP)+		;Remove word from stack
   9100						.ENDC
   9200						.ENDM
   9300						.ENDM	POP
   9400
   9500					; STRTCI is used to begin input from the CTY.
   9600					;
   9700						.MACRO	STRTCI	?A
   9800						QIOW$S	#IO.ATA,#LUNCTY,#CTYEFN,,#CTYSB,,<#CHRAST>
   9900						ERCALL	DSWERR
  10000						MOV	#CTYSB,R0
  10100						CMPB	#IS.SUC,(R0)
  10200						BEQ	A
  10300						CALL	STSERR
  10400						CALL	CRASH
  10500					A:	CALL	PROMPT
  10600						.ENDM	STRTCI
  10700
  10800					; CHROUT is used to issue a single character from CHRBUF to
  10900					; the CTY. Used for the Echo stream and not the Output Link stream.
  11000					;
  11100						.MACRO	CHROUT
  11200						QIO$S	#IO.WLB,#LUNCTY,,,#CTYSB,#CTOAST,<#CHRBUF,#1,#0>
  11300						ERCALL	DSWERR
  11400						.ENDM	CHROUT
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 3-2
MACRO DEFINITIONS

  11500
  11600					; NCHROT is used to output a character to the CTY from the Output Link
  11700					; stream.
  11800						.MACRO	NCHROT
  11900						QIO$S	#IO.WLB,#LUNCTY,,,#NTOSB,#CTOAST,<#NCHRBF,#1,#0>
  12000						ERCALL	DSWERR
  12100						.ENDM	NCHROT
  12200
  12300					; Queue Processing Macros
  12400					;
  12500
  12600					; CIRQUE is used to build the circular queue data structures
  12700					; used by subsequent macros.
  12800					;
  12900					; A buffer is allocated and a Queue Pointer Block is defined.
  13000					;
  13100					;	QPB:	FIRST:	.WORD	address of first location in buffer
  13200					;		IN:	.WORD	pointer to next location to insert an
  13300					;				element
  13400					;		OUT:	.WORD	pointer to next location to remove an
  13500					;				element
  13600					;		LIMIT:	.WORD	address of last location in buffer
  13700					;
  13800					;
  13900					;	Use:	CIRQUE	2-Character identifier,length,"B" or "W"
  14000					;					for Bytes or Words (Bytes are default)
  14100					;
  14200						.MACRO	CIRQUE	NAM,LEN,TYPE
  14300						.LIST	MEB
  14400					'NAM'.BUF:
  14500					.IF NB,TYPE
  14600						.BLK'TYPE'	LEN
  14700					.IIF IDN,TYPE,B, 'NAM'.TYP=0	;Byte queue
  14800					.IIF IDN,TYPE,W, 'NAM'.TYP=1	;Word queue
  14900					.IFF
  15000						.BLKB	LEN
  15100					'NAM'.TYP=0			;Byte queue
  15200					.ENDC
  15300					.IIF	NDF,'NAM'.TYP,	.ERROR	Please specify 'B' or 'W' for queue type
  15400						.EVEN
  15500					'NAM'.FST: .WORD	'NAM'.BUF
  15600					'NAM'.IN:  .WORD	'NAM'.BUF
  15700					'NAM'.OUT: .WORD	'NAM'.BUF
  15800					$$=LEN
  15900					.IF EQ 'NAM'.TYP-1
  16000					$$$=$$+$$-2
  16100					.IFF
  16200					$$$=$$-1
  16300					.ENDC
  16400					'NAM'.LMT: .WORD	'NAM'.BUF+$$$
  16500						.NLIST	MEB
  16600						.ENDM	CIRQUE
  16700
  16800					; INSRTQ inserts a single element into a circular queue
  16900					; defined by the CIRQUE macro.
  17000					;
  17100						.MACRO	INSRTQ	CHR,Q,QR,QR0,?A,?B,?C
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 3-3
MACRO DEFINITIONS

  17200						.LIST	MEB
  17300						MOV	'Q'.IN,QR0		;Get IN pointer
  17400						MOV	QR0,QR			;Make copy of it
  17500						INCTYP	Q,QR			;Update pointer for validity check
  17600						CMP	QR,'Q'.LMT		;IN+1 <= LIMIT ?
  17700						BLE	A			;Yes, no wrap around
  17800						MOV	'Q'.FST,QR		;No, wrap around to FIRST
  17900					A:	CMP	QR,'Q'.OUT		;New IN \= OUT ?
  18000						BNE	B			;Yes, Queue not full
  18100						SEC				;Queue Full, Set carry
  18200						BR	C			;Exit with carry set
  18300					B:	SETELE	Q,(QR0),CHR		;Insert character in queue
  18400						MOV	QR,'Q'.IN		;Update IN
  18500						CLC				;Show success
  18600					C:
  18700						.NLIST	MEB
  18800						.ENDM	INSRTQ
  18900
  19000					; REMOVQ removes a single element from a circular queue
  19100					; defined by the CIRQUE macro
  19200					;
  19300						.MACRO	REMOVQ	CHR,Q,QR0,?A,?B,?C
  19400						.LIST	MEB
  19500						CMP	'Q'.OUT,'Q'.IN		;IN = OUT ?
  19600						BNE	A			;No, Data In Queue
  19700						SEC				;Yes, no data available, set carry
  19800						BR	C			;Exit
  19900					A:	MOV	'Q'.OUT,QR0		;Get OUT pointer
  20000						GETELE	Q,(QR0)+,CHR		;Store character
  20100						CMP	QR0,'Q'.LMT		;New OUT <= LIMIT
  20200						BLE	B			;Yes, no wrap around
  20300						MOV	'Q'.FST,QR0		;No, wraparound to FIRST
  20400					B:	MOV	QR0,'Q'.OUT		;Store new OUT pointer
  20500						CLC				;Clear carry
  20600					C:
  20700						.NLIST	MEB
  20800						.ENDM	REMOVQ
  20900
  21000					; INCTYP is a utility macro used with the INSRTQ and REMOVQ macros
  21100					; It determines the type of instruction to use when incrementing
  21200					; the queue pointer.
  21300						.MACRO	INCTYP	Q,QR
  21400					.IIF	EQ,'Q'.TYP-0	INC	QR	;Byte queue
  21500					.IIF	EQ,'Q'.TYP-1	TST	(QR)+	;Word queue
  21600						.ENDM	INCTYP
  21700
  21800					; GETELE is a utility macro used with the REMOVQ macro to determine
  21900					; the instruction to generate based upon queue type.
  22000						.MACRO	GETELE	Q,QR,D
  22100					.IIF	EQ,'Q'.TYP-0	MOVB	QR,D	;Byte queue
  22200					.IIF	EQ,'Q'.TYP-1	MOV	QR,D	;Word queue
  22300						.ENDM	GETELE
  22400
  22500					; SETELE is a utility macro used with the INSRTQ macro to determine
  22600					; the instruction to generate based upon queue type.
  22700						.MACRO	SETELE	Q,QR,D
  22800					.IIF	EQ,'Q'.TYP-0	MOVB	D,QR	;Byte queue
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 3-4
MACRO DEFINITIONS

  22900					.IIF	EQ,'Q'.TYP-1	MOV	D,QR	;Word queue
  23000						.ENDM	SETELE
  23100
  23200					; EMPTYQ is used to determine how much space is left in a queue.
  23300					; The algorithm is :
  23400					;	IF OUT <= IN THEN Amount = LIMIT-IN + OUT-FIRST
  23500					;	ELSE Amount = OUT - IN - QSIZE (1 for bytes, 2 for words);
  23600					;
  23700					;
  23800						.MACRO	EMPTYQ,AMOUNT,Q,?A,?B
  23900						.LIST	MEB
  24000						CMP	'Q'.OUT,'Q'.IN		;IN <= OUT?
  24100						BLE	A			;Yes calculate amount
  24200						MOV	'Q'.OUT,AMOUNT		;Calculate OUT-IN
  24300						SUB	'Q'.IN,AMOUNT		;
  24400					.IIF	EQ,'Q'.TYP-0 DEC  AMOUNT		;Byte queue
  24500					.IIF	EQ,'Q'.TYP-1 SUB  #2,AMOUNT		;Word queue
  24600						BR	B			;continue
  24700					A:	MOV	'Q'.LMT,AMOUNT		;Calculate LIMIT-IN
  24800						SUB	'Q'.IN,AMOUNT		;
  24900						ADD	'Q'.OUT,AMOUNT		;add in OUT-FIRST
  25000						SUB	'Q'.FST,AMOUNT		;
  25100					B:
  25200					.IIF EQ,'Q'.TYP-1 ASR	AMOUNT		;Word queue
  25300						.NLIST	MEB
  25400						.ENDM	EMPTYQ
  25500					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 4
LOCAL DATA DEFINITIONS

    100						.SBTTL	Local Data Definitions
    200	000000					.PSECT	DATA,D,GBL
    300					;
    400					;	Logical Unit Numbers
    500					;
    600		000001 			LUNNT==1			;Network LUN
    700		000002 			LUNCTY==2			;CTY LUN
    800		000003 			LUNCL==3			;Command Link LUN
    900		000004 			LUNOL1==4			;Output Link #1
   1000		000005 			LUNOL2==5			;Output Link #2
   1100					;
   1200		000002 			NOLNKS==2			;Number of Output Links
   1300					;
   1400					;	Event Flag Numbers
   1500					;
   1600		000010 			NETEFN==10			;Network LUN event flag
   1700		000011 			CTYEFN==11			;CTY normal event flag
   1800		000012 			WBTEFN==12			;CTY special event flag
   1900		000013 			MAIEFN==13			;Main Loop Coroutine event flag
   2000		000014 			GNDEFN==14			;Network data event flag
   2100		000015 			INPEFN==15			;Input Character event flag
   2200		000016 			HLPEFN==16			;Help processing event flag
   2300		000017 			MKTEFN==17			;Mark time event flag
   2400					;
   2500					;	Local Symbolic Constants
   2600					;
   2700		000006 			NNMLEN==6			;Length of Node Name
   2800		000575 			OLBLEN=381.			;Length of Output Link Buffers
   2900		000002 			RESSET=2			;Set reserve of CTY
   3000		000003 			RESCLR=3			;Clear reserve of CTY
   3100					;
   3200					;	Status Blocks
   3300					;
   3400	000000				NETSB:	.BLKW	2		;Network status block
   3500	000004				GNDSB:	.BLKW	2		;Network data
   3600	000010				WBTSB::	.BLKW	2		;Break-thru Write
   3700	000014				CTYSB:	.BLKW	2		;CTY normal
   3800	000020				NTOSB:	.BLKW	2		;Output link to CTY stream
   3900					;
   4000					;	Output link specific data structures:
   4100					;		SB.STC	.BLKW	2	;Status Block for CTY Operations
   4200					;		SB.NNM	.BLKW	NNMLEN/2 ;Node Name
   4300					;		SB.LUN	.BLKW	1	;LUN number
   4400					;		SB.STL	.BLKW	2	;Status Block for Logical Link transfers
   4500					;		SB.BUF	.BLKW	1	;Pointer to Buffer for this OL
   4600					;		SB.BFL	.BLKW	1	;Buffer Length for this OL
   4700					;
   4800		000000 			SB.STC=0
   4900		000004 			SB.NNM=SB.STC+4
   5000		000012 			SB.LUN=SB.NNM+NNMLEN
   5100		000014 			SB.STL=SB.LUN+2
   5200		000020 			SB.BUF=SB.STL+4
   5300		000022 			SB.BFL=SB.BUF+2
   5400		000024 			SBLEN=SB.BFL+2
   5500		000012 			$$$=SBLEN/2
   5600	000024				OL1SB:	.BLKW	$$$		;Output Link #1
   5700	000050				OL2SB:	.BLKW	$$$		;Output Link #2
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 4-1
LOCAL DATA DEFINITIONS

   5800	000074				CLSB:	.BLKW	$$$		;Command Link (Output side)
   5900					;
   6000					;
   6100					;	Control Structures
   6200					;
   6300	000120	000000 			OL1ASN:	.WORD	0		;Output Link #1 assignment flag
   6400	000122	000000 			OL2ASN:	.WORD	0		;Output Link #2 assignment flag
   6500					;
   6600	000124	000000 			CTYRES:	.WORD	0		;CTY reserved flag
   6700	000126	000000 			CNTRLR:: .WORD	0		;Non-zero if ^R requested from received
   6800									; message processing. (See Main loop)
   6900									; or to synchronize prompt after sending
   7000									; a OPR command.
   7100	000130	000000 			HOLDQ:	.WORD	0		;CTY holding queue
   7200	000132					.BLKW	20.		;20. should be more than enough
   7300	000202	177731 				.WORD	-47		;End marker
   7400	000204	000000 			CLVLID:	.WORD	0		;Command Link is Valid if 1
   7500	000206	000000 			OUTIP:	.WORD	0		;Output in progress flag
   7600	000210	000000 			NTOIP:	.WORD	0		;Output in progress from Output Link
   7700					;
   7800					;	Argument Blocks for EDIOUT usage
   7900					;
   8000	000212	000006 			ARGGRE:	.WORD	NNMLEN		;Length of name
   8100	000214	000614'				.WORD	CB1+N.RND	;Local Node Name
   8200	000216	000006 			ARGCON:	.WORD	NNMLEN		;Length of name
   8300	000220	000504'				.WORD	CB0+N.RND	;Remote Node Name
   8400					;
   8500	000222				ARGDUM:				;Dummy Argument
   8600	000222	000000 			ARGDSW:	.WORD	0		;Setup from DSWERR
   8700	000224	000000 			PCERR:	.WORD	0		;Setup from DSWERR
   8800					;
   8900	000226	000000 			ARGSTS:	.WORD	0		;Setup from STSERR
   9000	000230					.BLKW	4		;Setup from STSERR
   9100	000240	000000 			ARGNRJ:	.WORD	0		;Network error number
   9200					;
   9300	000242	   000 			CHRBUF:	.BYTE	0		;Storage for single characters during output
   9400	000243	   000 			NCHRBF:	.BYTE	0		;Storage for single characters from output link
   9500					;
   9600					;	Output block used to build error messages.
   9700					;
   9800	000244				OUTBLK:: .BLKB	160.	;Maximum of 160 characters
   9900					;
  10000					;	Connect Block for Command Link
  10100					;
  10200	000504				CB0::	CONB$$	TOPS20,47.,0
  10300		000110 			CBLEN==.-CB0
  10400					;
  10500	000614				CB1:	CONB$$	SYS880,23,0	;Connect Block to NICE process
  10600		000110 			CB1LEN=.-CB1
  10700					;
  10800					; Network Mail Buffer
  10900					;
  11000	000724				GNDBUF:	.BLKB	N.CBL		;Mail Buffer
  11100		000142 			GNDLEN=.-GNDBUF
  11200					;
  11300					; Output Link Buffers
  11400					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 4-2
LOCAL DATA DEFINITIONS

  11500	001066				OL1BUF:	.BLKB	OLBLEN
  11600						.EVEN
  11700	001664				OL2BUF:	.BLKB	OLBLEN
  11800						.EVEN
  11900	002462				CLBUF:	.BLKB	OLBLEN
  12000						.EVEN
  12100					;
  12200					;
  12300					; Nice Message READ INFORMATION about LOCAL NODE STATUS
  12400					;
  12500	003260	   010 	   001 		GETINF:	.BYTE	8.,1.
  12600		000002 			INFLEN=.-GETINF
  12700					;
  12800					;
  12900					;	Circular Queues for CTY input and output.
  13000					;
  13100	003262					CIRQUE	CI,80.			;Input Character Queue
	003402	003262'			CI.FST: .WORD	CI.BUF
	003404	003262'			CI.IN:  .WORD	CI.BUF
	003406	003262'			CI.OUT: .WORD	CI.BUF
	003410	003401'			CI.LMT: .WORD	CI.BUF+$$$
  13200	003412					CIRQUE	CO,OLBLEN		;Output Queue for echoing
	004210	003412'			CO.FST: .WORD	CO.BUF
	004212	003412'			CO.IN:  .WORD	CO.BUF
	004214	003412'			CO.OUT: .WORD	CO.BUF
	004216	004206'			CO.LMT: .WORD	CO.BUF+$$$
  13300	004220					CIRQUE	NT,NOLNKS+10.,W		;Network Receive Queue
	004250	004220'			NT.FST: .WORD	NT.BUF
	004252	004220'			NT.IN:  .WORD	NT.BUF
	004254	004220'			NT.OUT: .WORD	NT.BUF
	004256	004246'			NT.LMT: .WORD	NT.BUF+$$$
  13400	004260					CIRQUE	NO,4.*OLBLEN		;Output link to CTY Queue
	007244	004260'			NO.FST: .WORD	NO.BUF
	007246	004260'			NO.IN:  .WORD	NO.BUF
	007250	004260'			NO.OUT: .WORD	NO.BUF
	007252	007243'			NO.LMT: .WORD	NO.BUF+$$$
  13500					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 5
MESSAGE SEGMENT

    100						.SBTTL	Message Segment
    200	000000					.PSECT	MESS,D,RO
    300						.NLIST	BEX
    400					;
    500					;	Messages issued to the operator
    600					;
    700		000015 			CR=15
    800		000012 			LF=12
    900		000007 			BEL=7
   1000	000000	   015 	   012 	   104 	GREETS:	.ASCII	<CR><LF>/DN200 Operator Services X01.04 for node %VE./
   1100	000056	   015 	   012 	   104 		.ASCIZ	<CR><LF>/Default host is node %VE./<CR><LF>
   1200					;
   1300	000114	   015 	   012 	   077 	DSWERM:	.ASCII	<CR><LF>/?DN200 - $DSW error code %D. detected at/
   1400	000166	   040 	   141 	   144 		.ASCIZ	/ address %P/
   1500					;
   1600	000202	   015 	   007 	   012 	CSHERM:	.ASCII <CR><BEL><LF><BEL>/?DN200 - Crash from address %P/
   1700	000244	   007 	   015 	   007 		.ASCIZ	<BEL><CR><BEL><LF><BEL>
   1800					;
   1900	000252	   015 	   012 	   104 	STSERM:	.ASCII	<CR><LF>/DN200 - Status Error Detected around address %P/
   2000	000333	   015 	   012 	   045 		.ASCIZ	<CR><LF>/%8SStatus block was %O,%O %O,%O /
   2100					;
   2200	000376	   015 	   012 	   045 	URJERM:	.ASCIZ	<CR><LF>/%8SOPR has rejected the link./
   2300					;
   2400	000436	   015 	   012 	   104 	CANERM:	.ASCIZ	<CR><LF>/DN200 - Could not send command line to remote OPR./
   2500					;
   2600	000523	   015 	   012 	   111 	NNMERM:: .ASCII	<CR><LF>/Invalid host-name! Host-name must contain/
   2700	000576	   040 	   157 	   156 		.ASCIZ	/ only alpha-numerics./
   2800					;
   2900	000624	   072 	   072 	   117 	PSTRNG:: .ASCII	/::OPR>/
   3000		000006 			PSTLEN==.-PSTRNG
   3100					;
   3200	000632	   104 	   116 	   062 	NSTRNG:: .ASCII	/DN200>/
   3300		000006 			NSTLEN==.-NSTRNG
   3400					;
   3500	000640	   015 	   012 	   125 	ILLCMD:	.ASCIZ	<CR><LF>/Unrecognized command! Type HELP for help./
   3600					;
   3700	000714	   015 	   012 	   124 	HLPMSG::.ASCII	<CR><LF>/Type one of the following commands:/<CR><LF>
   3800	000763	   123 	   105 	   124 		.ASCII  /SET HOST host-name/<CR><LF>
   3900	001007	   040 	   040 	   040 		.ASCII	/    Define the host where OPR commands will be sent./<CR><LF>
   4000	001075	   015 	   012 	   110 		.ASCII	<CR><LF>/HELP/<CR><LF>
   4100	001105	   040 	   040 	   040 		.ASCII	/    Prints this text./<CR><LF>
   4200	001134	   015 	   012 	   105 		.ASCII	<CR><LF>/EXIT/<CR><LF>
   4300	001144	   040 	   040 	   040 		.ASCII	/    Leave DN200 local-command mode and return to OPR./<CR><LF>
   4400		000317 			HLPLEN==.-HLPMSG
   4500					;
   4600	001233	   015 	   012 	   104 	CONERM:	.ASCII	<CR><LF>/DN200 - Could not communicate with OPR on/
   4700	001306	   040 	   150 	   157 		.ASCIZ	/ host %VE because/
   4800					;
   4900						.MACRO	NRJERR	CODE,MSG,?A
   5000						.PSECT	MESS
   5100					A:	.ASCII	<CR><LF>/%8S/
   5200					.ASCIZ	/'MSG'/
   5300						.PSECT	NRJ
   5400						.WORD	CODE
   5500						.WORD	A
   5600						.ENDM	NRJERR
   5700						.ENABL	LSB
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 5-1
MESSAGE SEGMENT

   5800	000000					.PSECT	NRJ,D			;Setup NRJ Error messages
   5900	000000				NRJTAB:					;Node Reject error table
   6000	000000					NRJERR	NE$NOD,<the node doesn't exist.>
   6100	000004					NRJERR	NE$NSD,<the node is shutting down.>
   6200	000010					NRJERR	NE$UOB,<the OPR process doesn't exist.>
   6300	000014					NRJERR	NE$TCN,<of too many connects to node.>
   6400	000020					NRJERR	NE$TCO,<of too many connects to OPR.>
   6500	000024					NRJERR	NE$COM,<no path exists to node.>
   6600	000030					NRJERR	NE$SSR,<the node doesn't currently exist.>
   6700	000034					NRJERR	NE$ABT,<the OPR process disallowed access.>
   6800	000040					NRJERR	NE$ABO,<the OPR process went away.>
   6900	000044					NRJERR	-1,<of unexpected error type %D.>
   7000						.DSABL	LSB
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 6
MAIN PROGRAM SECTION

    100						.SBTTL	Main Program Section
    200	000000					.PSECT	MAIN,I
    300					;
    400					; POSI starts by initializing all LUNS, the NETWORK, and the CTY.
    500					; It then waits on the input event flag and processes an input line
    600					; when the event flag is set at interrupt level.
    700					;
    800					;
    900	000000				POSI::	ALUN$S	#LUNCTY,#"TT,#0		;Assign the CTY LUN
   1000	000020					ALUN$S	#LUNNT,#"NS,#0		;Assign all the Network LUNs
   1100	000040					ALUN$S	#LUNCL,#"NS,#0
   1200	000060					ALUN$S	#LUNOL1,#"NS,#0
   1300	000100					ALUN$S	#LUNOL2,#"NS,#0
   1400	000120					OPNW$S	#LUNNT,#NETEFN,#NETSB,,<#NOLNKS> ;Open the Network
   1500	000170					ERCALL	DSWERR
   1600	000176					IOCHK	NETSB,CRASH		;Process any error here by crashing
   1700	000220					CALL	SETDFT			;Set Default Parameters
   1800	000224					SPAW$S	#LUNNT,#NETEFN,#NETSB,#SPDAST,<#SPAAST> ;Start Processing
   1900	000276					ERCALL	DSWERR
   2000	000304					CALL	CMDLNK			;Try to fire up command link
   2100	000310					STRTCI				;Start CTY input
   2200					;
   2300					;	Main processing CoRoutine
   2400					;
   2500	000414				MAIN:	WTSE$S	#MAIEFN			;Wait for Main Event Flag
   2600	000426					ERCALL	DSWERR			;???
   2700	000434					CLEF$S	#MAIEFN			;Clear Event Flag
   2800	000446					ERCALL	DSWERR			;??
   2900	000454				10$:	CALL	CIPROC			;Process any input
   3000	000460					REMOVQ	R0,NT,R1		;Any received messages?
	000460	026767 	004254'	004252'		CMP	NT.OUT,NT.IN		;IN = OUT ?
	000466	001002 				BNE	64$			;NO, DATA IN QUEUE
	000470	000261 				SEC				;YES, NO DATA AVAILABLE, SET CARRY
	000472	000413 				BR	66$			;EXIT
	000474	016701 	004254'		64$:	MOV	NT.OUT,R1		;GET OUT POINTER
	000500	012100 			.IIF	EQ,NT.TYP-1	MOV	(R1)+,R0	;WORD QUEUE
	000502	020167 	004256'			CMP	R1,NT.LMT		;NEW OUT <= LIMIT
	000506	003402 				BLE	65$			;YES, NO WRAP AROUND
	000510	016701 	004250'			MOV	NT.FST,R1		;NO, WRAPAROUND TO FIRST
	000514	010167 	004254'		65$:	MOV	R1,NT.OUT		;STORE NEW OUT POINTER
	000520	000241 				CLC				;CLEAR CARRY
   3100	000522	103403 				BCS	20$			;No, Wait again
   3200	000524					CALL	NTPROC			;Process input
   3300	000530	000751 				BR	10$			;Interleave input with receive processing
   3400					;
   3500	000532	005767 	000126'		20$:	TST	CNTRLR			;^R requested by another routine
   3600	000536	001726 				BEQ	MAIN			;No, so wait some more
   3700	000540	005767 	000124'			TST	CTYRES			;CTY reserved?
   3800	000544	001343 				BNE	10$			;Yes, so don't do it now
   3900	000546	005767 	000210'			TST	NTOIP			;Any output in progress?
   4000	000552	001340 				BNE	10$			;Yes, so don't do it now
   4100	000554	026767 	004252'	004254'		CMP	NT.IN,NT.OUT		;Any messages pending?
   4200	000562	001334 				BNE	10$			;Yes, so don't do it now
   4300	000564	005767 	000130'			TST	HOLDQ			;Any in holding queue?
   4400	000570	001331 				BNE	10$			;Yes, so don't do it now
   4500	000572	005067 	000126'			CLR	CNTRLR			;Clear flag
   4600	000576	005067 	000000G			CLR	NTCCO			;Clear ^O flag also
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 6-1
MAIN PROGRAM SECTION

   4700	000602	012700 	000022 			MOV	#22,R0			;Fake user typed ^R
   4800	000606					CALL	INPSRV			;That should do it...
   4900	000612					CALL	CIPROC			;Process any input
   5000	000616	000676 				BR	MAIN			;Reloop
   5100					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 7
ERROR PROCESSING ROUTINES

    100						.SBTTL	Error Processing Routines
    200						.SBTTL	DSWERR - Print $DSW errors
    300					;
    400					; DSWERR prints the error associated with a bad RSX11M system call.
    500					;
    600	000620	011667 	000224'		DSWERR:: MOV	(SP),PCERR		;Store Address of detected error
    700	000624	162767 	000006 	000224'		SUB	#6,PCERR		;Real Address
    800	000632	016767 	000000G	000222'		MOV	$DSW,ARGDSW		;Store contents of $DSW
    900	000640					EDIOUT	#DSWERM,#ARGDSW,#OUTBLK	;Issue error message
   1000	000736					CALL	CRASH			;Crash the DN200
   1100					;
   1200						.SBTTL	CRASH - Crashes the DN200 to get a dump
   1300					;
   1400					; CRASH is called to crash the DN200 system so that we get a
   1500					; dump and reload.
   1600					;
   1700	000742	012700 	000244'		CRASH::	MOV	#OUTBLK,R0		;Build Message there
   1800	000746	012701 	000202'			MOV	#CSHERM,R1		;From here
   1900	000752	012702 	000222'			MOV	#ARGDSW,R2		;Using this
   2000	000756	011667 	000222'			MOV	(SP),ARGDSW		;Show Crash location
   2100	000762	162767 	000004 	000222'		SUB	#4,ARGDSW		;really.
   2200	000770					CALL	$EDMSG			;Edit the Message
   2300	000774	160100 				SUB	R1,R0			;Form buffer address
   2400	000776					QIOW$S	#IO.WBT,#LUNCTY,#CTYEFN,,#WBTSB,,<R0,R1,#0> ;Write message
   2500	001044	000000 				HALT				;BANG!!!
   2600					;
   2700						.SBTTL	STSERR - Prints the status block on an error
   2800					;
   2900					; STSERR is used to issue a message reflecting an unexpected error
   3000					; during network processing.
   3100					;
   3200					;	R0 contains the pointer to the status block.
   3300					;
   3400	001046				STSERR:	PUSH	<R1,R2,R3>			;Save destroyed registers
   3500	001054	012701 	000226'			MOV	#ARGSTS,R1		;Where to put info
   3600	001060	016611 	000006 			MOV	6(SP),(R1)		;From where we were called
   3700	001064	162721 	000004 			SUB	#4,(R1)+		;rebias
   3800	001070	012702 	000004 			MOV	#4,R2			;#of bytes
   3900	001074	005003 			10$:	CLR	R3			;Don't Sign Extend
   4000	001076	152003 				BISB	(R0)+,R3		;
   4100	001100	010321 				MOV	R3,(R1)+		;Move into argument block
   4200	001102	077204 				SOB	R2,10$			;Loop around
   4300	001104					EDIOUT	#STSERM,#ARGSTS,#OUTBLK	;Issue message
   4400	001202					POP	<R3,R2,R1>		;Restore registers
   4500	001210					RETURN
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 8
AST SERVICE ROUTINES

    100						.SBTTL	AST Service Routines
    200						.SBTTL	SPAAST - Network Mail Service
    300					;
    400					; SPAAST is broken into two segments; 1) SPDAST processes completion
    500					; of SPA$; 2) SPAAST processes the Network Mail ASTs.
    600					;
    700						.ENABLE	LSB
    800	001212				SPDAST:					;Entry for SPA$ completion
    900	001212					PUSH	R0			;Save R0
   1000	001214	016600 	000002 			MOV	2(SP),R0		;Get IO Status Block Addr
   1100	001220	122710 	000000G			CMPB	#IS.SUC,(R0)		;Success?
   1200	001224	001005 				BNE	5$			;No, issue message and getout
   1300	001226	012616 				MOV	(SP)+,(SP)		;Move R0 over IOSB address
   1400	001230	016000 	000002 			MOV	2(R0),R0		;Get number of entries in Mail
   1500	001234	001013 				BNE	10$			;Got some, go process
   1600	001236	000453 				BR	95$			;Exit normally
   1700	001240	016600 	000002 		5$:	MOV	2(SP),R0		;Status Block Address
   1800	001244					CALL	STSERR			;Issue Status Error
   1900	001250					POP	R0			;Restore R0
   2000	001252					CALL	CRASH			;Crash us
   2100					;
   2200	001256				SPAAST:					;Entry for Network AST
   2300	001256					PUSH	R0			;Save R0
   2400	001260	012700 	000001 			MOV	#1,R0			;Only one item per AST
   2500	001264				10$:	GNDW$S	#LUNNT,#GNDEFN,#GNDSB,,<#GNDBUF,#GNDLEN> ;Get the Mail
   2600	001336					ERCALL	DSWERR			;OOPs!
   2700	001344	122767 	000000G	000004'		CMPB	#IS.SUC,GNDSB		;Success?
   2800	001352	001411 				BEQ	20$			;Yes, process Mail
   2900	001354	122767 	000000G	000004'		CMPB	#IE.DAO,GNDSB		;Almost Success?
   3000	001362	001405 				BEQ	20$			;Yes, process Mail
   3100	001364	077041 			90$:	SOB	R0,10$			;Process another
   3200	001366				95$:	POP	R0			;Restore R0
   3300	001370					ASTX$S				;and exit
   3400					;
   3500	001376	122767 	000001 	000005'	20$:	CMPB	#NT.CON,GNDSB+1		;Connect?
   3600	001404	001416 				BEQ	30$			;Yes, Process the connect
   3700	001406	122767 	000003 	000005'		CMPB	#NT.DSC,GNDSB+1		;Disconnect?
   3800	001414	001410 				BEQ	40$			;Yes, Process removal of LUN
   3900	001416	122767 	000004 	000005'		CMPB	#NT.ABT,GNDSB+1		;User Abort?
   4000	001424	001404 				BEQ	40$			;Yes, same as NT.DSC
   4100	001426	122767 	000005 	000005'		CMPB	#NT.ABO,GNDSB+1		;Network Abort?
   4200	001434	001353 				BNE	90$			;Ignore the Mail
   4300	001436	000167 	000426 		40$:	JMP	50$			;Process Disconnects
   4400					;
   4500	001442				30$:					;Process Connect Mail
   4600	001442					PUSH	<R1,R2,R3>		;Save a few registers
   4700	001450	012701 	000754'			MOV	#GNDBUF+N.SND,R1		;Address of senders node name
   4800	001454	012703 	000006 			MOV	#NNMLEN,R3		;Length to Move
   4900	001460	005767 	000120'			TST	OL1ASN			;Is OL #1 Assigned?
   5000	001464	001461 				BEQ	32$			;No, Assign it
   5100	001466	005767 	000122'			TST	OL2ASN			;Is OL #2 Assigned?
   5200	001472	001467 				BEQ	33$			;No, Then Assign it
   5300	001474					REJW$S	#LUNNT,#GNDEFN,#GNDSB,,<#GNDBUF,,> ;No links available
   5400	001546					ERCALL	DSWERR
   5500	001554	122767 	000000G	000004'		CMPB	#IS.SUC,GNDSB		;Success?
   5600	001562	001416 				BEQ	31$			;Yes, exit
   5700	001564	122767 	000000G	000004'		CMPB	#IE.ABO,GNDSB		;Almost Success?
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 8-1
SPAAST - NETWORK MAIL SERVICE

   5800	001572	001412 				BEQ	31$			;Yes, exit
   5900	001574				27$:	POP	<R3,R2,R1>		;Restore registers
   6000	001602	012700 	000004'			MOV	#GNDSB,R0		;Point to Status Block
   6100	001606					CALL	STSERR			;Issue Error message
   6200	001612					POP	R0
   6300	001614					CALL	CRASH			;Crash us
   6400	001620				31$:	POP	<R3,R2,R1>		;Restore registers
   6500	001626	000656 				BR	90$			;Exit
   6600					;
   6700	001630				32$:	PUSH	<#OL1SB+SB.STL,#LUNOL1>	;Save LUN information
   6800	001640	011667 	000120'			MOV	(SP),OL1ASN		;Show OL #1 Assigned
   6900	001644	012702 	000030'			MOV	#OL1SB+SB.NNM,R2	;Point at NNM area
   7000	001650	000410 				BR	34$			;Join common code
   7100					;
   7200	001652				33$:	PUSH	<#OL2SB+SB.STL,#LUNOL2>	;Show LUN of OL #2
   7300	001662	011667 	000122'			MOV	(SP),OL2ASN		;Show OL #2 Assigned
   7400	001666	012702 	000054'			MOV	#OL2SB+SB.NNM,R2	;Point at NNM area
   7500					;	BR	34$			;Join common code
   7600					;
   7700	001672	112122 			34$:	MOVB	(R1)+,(R2)+		;Move Node name
   7800	001674	077302 				SOB	R3,34$			;R3 # of bytes
   7900					; NOTE: for the following instruction to work NNMLEN must be an even number
   8000					;       and SB.LUN must follow SB.NNM!
   8100	001676	011612 				MOV	(SP),(R2)		;Show LUN number assigned
   8200	001700					POP	<R1,R2>			;Move LUN to R1, SB to R2
   8300	001704					ACCW$S	R1,#GNDEFN,#GNDSB,,<#GNDBUF> ;Accept the connection
   8400	001754					ERCALL	DSWERR
   8500	001762	122767 	000000G	000004'		CMPB	#IS.SUC,GNDSB		;Success?
   8600	001770	001026 				BNE	35$			;No, I guess we lose
   8700	001772					REC$S	R1,,R2,#RECAST,<SB.BUF-SB.STL(R2),SB.BFL-SB.STL(R2)>
   8800								;Get some data
   8900	002036					ERCALL	DSWERR
   9000	002044	000665 				BR	31$			;Exit
   9100	002046	020167 	000120'		35$:	CMP	R1,OL1ASN		;No, clear assignment
   9200	002052	001003 				BNE	36$			;not OL #1
   9300	002054	005067 	000120'			CLR	OL1ASN			;clear assignment of OL #1
   9400	002060	000657 				BR	31$			;Exit
   9500	002062	005067 	000122'		36$:	CLR	OL2ASN			;clear assignment of OL #2
   9600	002066	000654 				BR	31$			;Exit
   9700					;
   9800					;
   9900					;
  10000	002070				50$:					;Disconnect Processing
  10100	002070					PUSH	<R1,R2,R3>		;Save a few
  10200	002076	116701 	000007'			MOVB	GNDSB+3,R1		;Get LUN # to R1
  10300	002102	122701 	000003 			CMPB	#LUNCL,R1		;Could be Command Link
  10400	002106	001443 				BEQ	60$			;Yes, process it
  10500	002110	126701 	000120'			CMPB	OL1ASN,R1		;Could be OL #1
  10600	002114	001407 				BEQ	52$			;Yes, process it
  10700	002116	126701 	000122'			CMPB	OL2ASN,R1		;Could be OL #2
  10800	002122	001404 				BEQ	53$			;Yes, process it
  10900	002124	122701 	000001 			CMPB	#LUNNT,R1		;Could be Network LUN
  11000	002130	001233 				BNE	31$			;Guess we don't know about LUN
  11100					; Who is kidding who about aborting the network LUN????
  11200	002132	000620 				BR	27$			;Crash us
  11300					;
  11400	002134				52$:					;Disconnect of OL # 1
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 8-2
SPAAST - NETWORK MAIL SERVICE

  11500	002134				53$:					;Disconnect of OL # 2
  11600	002134					INSRTQ	R1,NT,R2,R3		;Insert Lun number for processing
	002134	016703 	004252'			MOV	NT.IN,R3		;GET IN POINTER
	002140	010302 				MOV	R3,R2			;MAKE COPY OF IT
	002142	005722 			.IIF	EQ,NT.TYP-1	TST	(R2)+	;WORD QUEUE
	002144	020267 	004256'			CMP	R2,NT.LMT		;IN+1 <= LIMIT ?
	002150	003402 				BLE	64$			;YES, NO WRAP AROUND
	002152	016702 	004250'			MOV	NT.FST,R2		;NO, WRAP AROUND TO FIRST
	002156	020267 	004254'		64$:	CMP	R2,NT.OUT		;NEW IN \= OUT ?
	002162	001002 				BNE	65$			;YES, QUEUE NOT FULL
	002164	000261 				SEC				;QUEUE FULL, SET CARRY
	002166	000404 				BR	66$			;EXIT WITH CARRY SET
	002170	010113 			.IIF	EQ,NT.TYP-1	MOV	R1,(R3)	;WORD QUEUE
	002172	010267 	004252'			MOV	R2,NT.IN		;UPDATE IN
	002176	000241 				CLC				;SHOW SUCCESS
  11700	002200					SETF$S	#MAIEFN			;Process disconnect now
  11800	002212	000167 	177402 			JMP	31$			;Exit
  11900					;
  12000	002216				60$:					;Disconnect of command link
  12100	002216	005067 	000204'			CLR	CLVLID			;Show invalid link
  12200	002222	000167 	177372 			JMP	31$			;Exit
  12300					;
  12400						.DSABL	LSB
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 9
STRTCO AND STRTNO - START CTY OUTPUT

    100						.SBTTL	STRTCO and STRTNO - Start CTY Output
    200					;
    300					; STRTCO - Start CTY output from echo link if not already going.
    400					; STRTNO - Start CTY output from output link if not already going.
    500					;
    600					;	Called after characters have been put in the CO or NO queue.
    700					;
    800	002226	005767 	000206'		STRTCO:	TST	OUTIP			;Output In Progress?
    900	002232	001063 				BNE	20$			;Yes, ignore
   1000	002234	005767 	000210'			TST	NTOIP			;OPR output in progress?
   1100	002240	001404 				BEQ	10$			;No, Ok to type characters
   1200	002242	016767 	004212'	004214'		MOV	CO.IN,CO.OUT		;Yes, Flush echo or prompt
   1300	002250	000454 				BR	20$			; and exit
   1400	002252				10$:	REMOVQ	CHRBUF,CO,R3		;Get a character
	002252	026767 	004214'	004212'		CMP	CO.OUT,CO.IN		;IN = OUT ?
	002260	001002 				BNE	64$			;NO, DATA IN QUEUE
	002262	000261 				SEC				;YES, NO DATA AVAILABLE, SET CARRY
	002264	000414 				BR	66$			;EXIT
	002266	016703 	004214'		64$:	MOV	CO.OUT,R3		;GET OUT POINTER
	002272	112367 	000242'		.IIF	EQ,CO.TYP-0	MOVB	(R3)+,CHRBUF	;BYTE QUEUE
	002276	020367 	004216'			CMP	R3,CO.LMT		;NEW OUT <= LIMIT
	002302	003402 				BLE	65$			;YES, NO WRAP AROUND
	002304	016703 	004210'			MOV	CO.FST,R3		;NO, WRAPAROUND TO FIRST
	002310	010367 	004214'		65$:	MOV	R3,CO.OUT		;STORE NEW OUT POINTER
	002314	000241 				CLC				;CLEAR CARRY
   1500	002316	103431 				BCS	20$			;If none, ignore
   1600	002320	005267 	000206'			INC	OUTIP			;Set Output in Progress
   1700	002324					CHROUT				;Output a Character
   1800	002402				20$:	RETURN				;Exit
   1900					;
   2000					;
   2100	002404	005767 	000210'		STRTNO:	TST	NTOIP			;Output in Progress?
   2200	002410	001063 				BNE	20$			;Yes, ignore
   2300	002412	005767 	000000G			TST	NTCCO			;Control O in progress?
   2400	002416	001055 				BNE	15$			;Yes, ignore after flush
   2500	002420					REMOVQ	NCHRBF,NO,R3		;Get a character
	002420	026767 	007250'	007246'		CMP	NO.OUT,NO.IN		;IN = OUT ?
	002426	001002 				BNE	64$			;NO, DATA IN QUEUE
	002430	000261 				SEC				;YES, NO DATA AVAILABLE, SET CARRY
	002432	000414 				BR	66$			;EXIT
	002434	016703 	007250'		64$:	MOV	NO.OUT,R3		;GET OUT POINTER
	002440	112367 	000243'		.IIF	EQ,NO.TYP-0	MOVB	(R3)+,NCHRBF	;BYTE QUEUE
	002444	020367 	007252'			CMP	R3,NO.LMT		;NEW OUT <= LIMIT
	002450	003402 				BLE	65$			;YES, NO WRAP AROUND
	002452	016703 	007244'			MOV	NO.FST,R3		;NO, WRAPAROUND TO FIRST
	002456	010367 	007250'		65$:	MOV	R3,NO.OUT		;STORE NEW OUT POINTER
	002462	000241 				CLC				;CLEAR CARRY
   2600	002464	103435 				BCS	20$			;If none, exit
   2700	002466	005267 	000210'			INC	NTOIP			;Show output link in progress
   2800	002472					NCHROT				;Output the character
   2900	002550	000403 				BR	20$			;Exit
   3000	002552	016767 	007246'	007250'	15$:	MOV	NO.IN,NO.OUT		;Show Buffer empty
   3100										;This esssentially flushes the buffer
   3200	002560				20$:	RETURN				;Exit
   3300					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 10
CTOAST - CTY OUTPUT AST SERVICE

    100						.SBTTL	CTOAST - CTY Output AST Service
    200					;
    300					; CTOAST is entered whenever the current character output is complete.
    400					; Try to get another character and output it.
    500					;
    600	002562				CTOAST:	PUSH	<R0,R1,R2,R3>		;Save a few registers
    700	002572	016600 	000010 			MOV	8.(SP),R0		;Get Status Block Address
    800	002576	122710 	000000G			CMPB	#IS.SUC,(R0)		;Success?
    900	002602	001413 				BEQ	10$			;Yes, process it
   1000	002604	122710 	000000G			CMPB	#IE.DNR,(R0)		;Not ready?
   1100	002610	001404 				BEQ	5$			;Yes, process it
   1200	002612					CALL	STSERR			;Issue Status Error
   1300	002616					CALL	CRASH			;Crash us
   1400					;
   1500	002622	022700 	000020'		5$:	CMP	#NTOSB,R0		;NT or CT?
   1600	002626	001546 				BEQ	55$			;If NT
   1700	002630	000437 				BR	15$			;If CT
   1800					;
   1900	002632	022700 	000020'		10$:	CMP	#NTOSB,R0		;Output link request?
   2000	002636	001473 				BEQ	40$			;Yes, process it
   2100	002640	005767 	000210'			TST	NTOIP			;OPR Output in progress?
   2200	002644	001403 				BEQ	12$			;No, Ok to continue typing
   2300	002646	016767 	004212'	004214'		MOV	CO.IN,CO.OUT		;Yes, Flush echo or prompt
   2400	002654				12$:	REMOVQ	CHRBUF,CO,R1		;Get a character from buffer
	002654	026767 	004214'	004212'		CMP	CO.OUT,CO.IN		;IN = OUT ?
	002662	001002 				BNE	64$			;NO, DATA IN QUEUE
	002664	000261 				SEC				;YES, NO DATA AVAILABLE, SET CARRY
	002666	000414 				BR	66$			;EXIT
	002670	016701 	004214'		64$:	MOV	CO.OUT,R1		;GET OUT POINTER
	002674	112167 	000242'		.IIF	EQ,CO.TYP-0	MOVB	(R1)+,CHRBUF	;BYTE QUEUE
	002700	020167 	004216'			CMP	R1,CO.LMT		;NEW OUT <= LIMIT
	002704	003402 				BLE	65$			;YES, NO WRAP AROUND
	002706	016701 	004210'			MOV	CO.FST,R1		;NO, WRAPAROUND TO FIRST
	002712	010167 	004214'		65$:	MOV	R1,CO.OUT		;STORE NEW OUT POINTER
	002716	000241 				CLC				;CLEAR CARRY
   2500	002720	103003 				BCC	15$			;Got one if CC
   2600	002722	005067 	000206'			CLR	OUTIP			;Clear Output In Progress
   2700	002726	000427 				BR	20$			;Exit
   2800	002730				15$:	CHROUT				;Output the chracter
   2900	003006				20$:	POP	<R3,R2,R1,R0>		;Restore Registers
   3000	003016	005726 				TST	(SP)+			;Remove Status Block Address
   3100	003020					ASTX$S				;Exit AST
   3200					;
   3300	003026	005767 	000000G		40$:	TST	NTCCO			;Control O in progress?
   3400	003032	001404 				BEQ	50$			;No, so try to output a character
   3500	003034	016767 	007246'	007250'		MOV	NO.IN,NO.OUT		;Yes, so flush queue and
   3600	003042	000423 				BR	53$			;On to clear NTOIP
   3700	003044				50$:	REMOVQ	NCHRBF,NO,R1		;Get character
	003044	026767 	007250'	007246'		CMP	NO.OUT,NO.IN		;IN = OUT ?
	003052	001002 				BNE	67$			;NO, DATA IN QUEUE
	003054	000261 				SEC				;YES, NO DATA AVAILABLE, SET CARRY
	003056	000414 				BR	69$			;EXIT
	003060	016701 	007250'		67$:	MOV	NO.OUT,R1		;GET OUT POINTER
	003064	112167 	000243'		.IIF	EQ,NO.TYP-0	MOVB	(R1)+,NCHRBF	;BYTE QUEUE
	003070	020167 	007252'			CMP	R1,NO.LMT		;NEW OUT <= LIMIT
	003074	003402 				BLE	68$			;YES, NO WRAP AROUND
	003076	016701 	007244'			MOV	NO.FST,R1		;NO, WRAPAROUND TO FIRST
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 10-1
CTOAST - CTY OUTPUT AST SERVICE

	003102	010167 	007250'		68$:	MOV	R1,NO.OUT		;STORE NEW OUT POINTER
	003106	000241 				CLC				;CLEAR CARRY
   3800	003110	103015 				BCC	55$			;if successful, then output it
   3900	003112	005067 	000210'		53$:	CLR	NTOIP			;No output in progress
   4000	003116	005767 	000124'			TST	CTYRES			;CTY reserved?
   4100	003122	001331 				BNE	20$			;Yes, don't issue ^R
   4200	003124	005267 	000126'			INC	CNTRLR			;Flag ^R needed
   4300	003130					SETF$S	#MAIEFN			;to Main CoRoutine
   4400	003142	000721 				BR	20$			;Exit
   4500	003144				55$:	NCHROT				;Output character
   4600	003222	000671 				BR	20$			;Exit
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 11
SETDFT - SET DEFAULT PARAMETERS

    100						.SBTTL	SETDFT - Set Default Parameters
    200					;
    300					; SETDFT initializes the various data structures used in the
    400					; program.
    500					;
    600	003224				SETDFT:	GLNW$S	#LUNNT,#NETEFN,#NETSB,,<#CB1+N.RND,#NNMLEN> ;Get local node name
    700	003276					ERCALL	DSWERR
    800	003304					CONW$S	#LUNCL,#NETEFN,#NETSB,,<#CB1,#CB1LEN> ;Connect to Nice
    900	003356					ERCALL	DSWERR
   1000	003364	122767 	000000G	000000'		CMPB	#IS.SUC,NETSB		;Success?
   1100	003372	001402 				BEQ	1$
   1200	003374	000167 	000424 			JMP	10$			;Nope
   1300	003400				1$:	SNDW$S	#LUNCL,#NETEFN,#NETSB,,<#GETINF,#INFLEN> ;Request Info
   1400	003452					ERCALL	DSWERR
   1500	003460	122767 	000000G	000000'		CMPB	#IS.SUC,NETSB		;Success?
   1600	003466	001130 				BNE	7$			;No, ignore
   1700	003470					RECW$S	#LUNCL,#NETEFN,#NETSB,,<#CLBUF,#OLBLEN> ;Read in Status
   1800	003542					ERCALL	DSWERR
   1900	003550	122767 	000000G	000000'		CMPB	#IS.SUC,NETSB		;Success?
   2000	003556	001074 				BNE	7$			;No, ignore
   2100	003560	122767 	000001 	002462'		CMPB	#1,CLBUF		;Was NICE nice?
   2200	003566	001070 				BNE	7$			;Not really.
   2300	003570					RECW$S	#LUNCL,#NETEFN,#NETSB,,<#CLBUF,#OLBLEN> ;Read real info
   2400	003642					ERCALL	DSWERR
   2500	003650	122767 	000000G	000000'		CMPB	#IS.SUC,NETSB		;Success?
   2600	003656	001034 				BNE	7$			;No, ignore
   2700	003660	012700 	002462'			MOV	#CLBUF,R0		;Get the Default Host Node Name
   2800	003664	012701 	000504'			MOV	#CB0+N.RND,R1		;Put it here
   2900	003670	005200 				INC	R0			;Skip NICE data type
   3000	003672	005003 				CLR	R3			;Move in count
   3100	003674	152003 				BISB	(R0)+,R3
   3200	003676	060300 				ADD	R3,R0			;Skip over data bytes
   3300	003700	105720 			3$:	TSTB	(R0)+			;Skip Extensible Field
   3400	003702	100776 				BMI	3$
   3500	003704	062700 	000003 			ADD	#3,R0			;Move pointer to REMOTE NODE
   3600										;byte count field.
   3700	003710	112003 				MOVB	(R0)+,R3		;Get count
   3800	003712	003416 				BLE	7$			;If <=0 Bad count
   3900	003714	022703 	000006 			CMP	#NNMLEN,R3		;Range check
   4000	003720	002413 				BLT	7$			;If > NNMLEN Bad count
   4100	003722					PUSH	R3			;save count
   4200	003724	112021 			4$:	MOVB	(R0)+,(R1)+		;Move node name
   4300	003726	077302 				SOB	R3,4$
   4400	003730					POP	R3			;Restore count
   4500	003732	012704 	000006 			MOV	#NNMLEN,R4		;Get Max Length
   4600	003736	160304 				SUB	R3,R4			;Form new count
   4700	003740	003403 				BLE	7$			;Enough moved
   4800	003742	112721 	000040 		5$:	MOVB	#' ,(R1)+		;Fill with blanks
   4900	003746	077403 				SOB	R4,5$			;
   5000	003750				7$:	DSCW$S	#LUNCL,#NETEFN,#NETSB,,	;Disconnect NICE link
   5100	004016					ERCALL	DSWERR
   5200	004024	012767 	001066'	000044'	10$:	MOV	#OL1BUF,OL1SB+SB.BUF	;Setup data structure pointers
   5300	004032	012767 	001664'	000070'		MOV	#OL2BUF,OL2SB+SB.BUF
   5400	004040	012767 	002462'	000114'		MOV	#CLBUF,CLSB+SB.BUF
   5500	004046	012700 	000575 			MOV	#OLBLEN,R0		;Setup data structure lengths
   5600	004052	010067 	000046'			MOV	R0,OL1SB+SB.BFL
   5700	004056	010067 	000072'			MOV	R0,OL2SB+SB.BFL
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 11-1
SETDFT - SET DEFAULT PARAMETERS

   5800	004062	010067 	000116'			MOV	R0,CLSB+SB.BFL
   5900	004066					EDIOUT	#GREETS,#ARGGRE,#OUTBLK	;Greet the Operator
   6000					;
   6100					;	Initialize Output Link Assignments and
   6200					;	CTY Reservation.
   6300					;
   6400	004164	005067 	000120'			CLR	OL1ASN			;Clear OL #1 assignment
   6500	004170	005067 	000122'			CLR	OL2ASN			;Clear OL #2 assignment
   6600	004174	005067 	000124'			CLR	CTYRES			;Clear CTY reservation
   6700	004200	005067 	000130'			CLR	HOLDQ			;Show holding queue empty
   6800	004204					RETURN				;Exit
   6900					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 12
INPUT PROCESSING

    100						.SBTTL	Input Processing
    200						.SBTTL	CIPROC - Preprocess CTY input
    300					;
    400					; CIPROC determines if there is any characters to be processed
    500					; by INPSRV.
    600					;
    700	004206				CIPROC:	CALL	$SAVAL			;Save all registers
    800	004212				5$:	REMOVQ	R0,CI,R1		;Get any character
	004212	026767 	003406'	003404'		CMP	CI.OUT,CI.IN		;IN = OUT ?
	004220	001002 				BNE	64$			;NO, DATA IN QUEUE
	004222	000261 				SEC				;YES, NO DATA AVAILABLE, SET CARRY
	004224	000413 				BR	66$			;EXIT
	004226	016701 	003406'		64$:	MOV	CI.OUT,R1		;GET OUT POINTER
	004232	112100 			.IIF	EQ,CI.TYP-0	MOVB	(R1)+,R0	;BYTE QUEUE
	004234	020167 	003410'			CMP	R1,CI.LMT		;NEW OUT <= LIMIT
	004240	003402 				BLE	65$			;YES, NO WRAP AROUND
	004242	016701 	003402'			MOV	CI.FST,R1		;NO, WRAPAROUND TO FIRST
	004246	010167 	003406'		65$:	MOV	R1,CI.OUT		;STORE NEW OUT POINTER
	004252	000241 				CLC				;CLEAR CARRY
    900	004254	103403 				BCS	10$			;None if CS
   1000	004256					CALL	INPSRV			;Process it
   1100	004262	000753 				BR	5$			;Process all characters typed
   1200	004264				10$:	RETURN				;Exit
   1300					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 13
CHRAST - INPUT CHARACTER AST

    100						.SBTTL	CHRAST - Input Character AST
    200					;
    300					; CHRAST is entered whenever the operator has entered a character at
    400					; the CTY on the DN200.
    500					;
    600					; The character just input is placed in a circular queue for removal at
    700					; CoRoutine level.
    800					;
    900	004266				CHRAST:	PUSH	<R0,R1,R2>			;Save a few
   1000	004274	016600 	000006 			MOV	6(SP),R0		;Character to R0
   1100	004300					INSRTQ	R0,CI,R1,R2		;Pass character to CoRoutine
	004300	016702 	003404'			MOV	CI.IN,R2		;GET IN POINTER
	004304	010201 				MOV	R2,R1			;MAKE COPY OF IT
	004306	005201 			.IIF	EQ,CI.TYP-0	INC	R1	;BYTE QUEUE
	004310	020167 	003410'			CMP	R1,CI.LMT		;IN+1 <= LIMIT ?
	004314	003402 				BLE	64$			;YES, NO WRAP AROUND
	004316	016701 	003402'			MOV	CI.FST,R1		;NO, WRAP AROUND TO FIRST
	004322	020167 	003406'		64$:	CMP	R1,CI.OUT		;NEW IN \= OUT ?
	004326	001002 				BNE	65$			;YES, QUEUE NOT FULL
	004330	000261 				SEC				;QUEUE FULL, SET CARRY
	004332	000404 				BR	66$			;EXIT WITH CARRY SET
	004334	110012 			.IIF	EQ,CI.TYP-0	MOVB	R0,(R2)	;BYTE QUEUE
	004336	010167 	003404'			MOV	R1,CI.IN		;UPDATE IN
	004342	000241 				CLC				;SHOW SUCCESS
   1200	004344					ERCALL	CRASH			;If queue was full, Crash us
   1300	004352					SETF$S	#MAIEFN			;Flag CoRoutine
   1400	004364					ERCALL	DSWERR			;OOPS!
   1500	004372					POP	<R2,R1,R0>		;Restore Registers
   1600	004400	005726 				TST	(SP)+			;Remove character from stack
   1700	004402					ASTX$S				;Exit AST
   1800					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 14
ECHO - ECHO A CHARACTER FROM INPUT PROCESSING

    100						.SBTTL	ECHO - Echo a Character From Input Processing
    200					;
    300					; ECHO trys to send a character to the terminal.
    400					;
    500	004410				ECHO::	INSRTQ	R0,CO,R3,R4		;Put a character in the output queue
	004410	016704 	004212'			MOV	CO.IN,R4		;GET IN POINTER
	004414	010403 				MOV	R4,R3			;MAKE COPY OF IT
	004416	005203 			.IIF	EQ,CO.TYP-0	INC	R3	;BYTE QUEUE
	004420	020367 	004216'			CMP	R3,CO.LMT		;IN+1 <= LIMIT ?
	004424	003402 				BLE	64$			;YES, NO WRAP AROUND
	004426	016703 	004210'			MOV	CO.FST,R3		;NO, WRAP AROUND TO FIRST
	004432	020367 	004214'		64$:	CMP	R3,CO.OUT		;NEW IN \= OUT ?
	004436	001002 				BNE	65$			;YES, QUEUE NOT FULL
	004440	000261 				SEC				;QUEUE FULL, SET CARRY
	004442	000404 				BR	66$			;EXIT WITH CARRY SET
	004444	110014 			.IIF	EQ,CO.TYP-0	MOVB	R0,(R4)	;BYTE QUEUE
	004446	010367 	004212'			MOV	R3,CO.IN		;UPDATE IN
	004452	000241 				CLC				;SHOW SUCCESS
    600	004454					ERCALL	CRASH			;Can't !!!! just crash
    700	004462					CALL	STRTCO			;Try to start output
    800	004466					RETURN				;Exit
    900					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 15
XMTLIN - PROCESS COMPLETE INPUT LINE

    100						.SBTTL	XMTLIN - Process Complete Input Line
    200					;
    300					; XMTLIN does what is necessary to cause an input line to
    400					; be sent to a host node or to be processed on the DN200.
    500					;
    600	004470	022767 	000000G	000000G	XMTLIN:: CMP	#MOD.H,INPMOD		;What mode is input in?
    700	004476	001453 				BEQ	100$			;Try host
    800					;
    900					; DN200 local-command processing.
   1000					;
   1100	004500	016700 	000000G			MOV	IL.IN,R0		;Get number of characters in buffer
   1200	004504	162700 	000002 			SUB	#2,R0			;Reduce input character count
   1300										; thus removing terminating
   1400										; characters.
   1500	004510	003561 				BLE	190$			;Nothing, just ignore command
   1600	004512	010002 				MOV	R0,R2			;Setup for call to command processor
   1700	004514	012701 	000000G			MOV	#CTYBUF,R1		;Address of buffer
   1800	004520					CALL	COMAND			;Process command
   1900	004524	103153 				BCC	190$			;Then exit
   2000	004526					EDIOUT	#ILLCMD,#ARGDUM,#OUTBLK	;Tell user he blew it
   2100	004624	000513 				BR	190$			;Then exit
   2200					;
   2300					; DN200 OPR-command processing
   2400					;
   2500	004626				100$:					;Try to send input line
   2600	004626	005767 	000204'			TST	CLVLID			;Command link ok?
   2700	004632	001045 				BNE	110$			;Must be
   2800	004634					CALL	CONLNK			;Try to connect anyway
   2900	004640	005767 	000204'			TST	CLVLID			;Now is it ok?
   3000	004644	001040 				BNE	110$			;Yes, so try to send
   3100	004646				105$:	EDIOUT	#CANERM,#ARGNRJ,#OUTBLK	;Tell operator we can't
   3200										;send his message.
   3300	004744	000443 				BR	190$			;Exit
   3400	004746				110$:	SNDW$S	#LUNCL,#NETEFN,#NETSB,,<#CTYBUF,IL.IN> ;Send input line
   3500	005020					ERCALL	DSWERR
   3600	005026	122767 	000000G	000000'		CMPB	#IS.SUC,NETSB		;Success?
   3700	005034	001407 				BEQ	190$			;Yes, exit
   3800	005036	122767 	000000G	000000'		CMPB	#IE.ABO,NETSB		;User Disconnect?
   3900	005044	001700 				BEQ	105$			;Tell operator
   4000	005046	012700 	000000'			MOV	#NETSB,R0		;Show status
   4100	005052	000675 				BR	105$			;Make sure user knows
   4200					;
   4300	005054				190$:	RETURN				;Exit from routine
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 16
CMDLNK - TRY TO ESTABLISH COMMAND LINK

    100						.SBTTL	CMDLNK - Try to establish command link
    200					;
    300					; CMDLNK is called to try establishing a new command link to a
    400					; host specified in CB0.
    500					;
    600					; CONLNK is called to establish a command link before transmission of
    700					; an input line.
    800					;
    900	005056	005767 	000204'		CMDLNK:: TST	CLVLID			;Link Valid already?
   1000	005062	001427 				BEQ	CONLNK			;No, so don't do disconnect
   1100	005064					DSCW$S	#LUNCL,#NETEFN,,,	;Disconnect link
   1200	005130					ERCALL	DSWERR
   1300	005136	005067 	000204'			CLR	CLVLID			;Ensure CL invalid
   1400	005142				CONLNK:	CONW$S	#LUNCL,#NETEFN,#NETSB,,<#CB0,#CBLEN> ;Try connecting
   1500	005214					ERCALL	DSWERR
   1600	005222	012700 	000000'			MOV	#NETSB,R0		;Get status block
   1700	005226	122710 	000000G			CMPB	#IS.SUC,(R0)		;Success?
   1800	005232	001523 				BEQ	20$			;Yes, process it
   1900	005234	122710 	000002 			CMPB	#IS.DAO,(R0)		;Almost Success?
   2000	005240	001520 				BEQ	20$			;Yes, ok to process
   2100	005242					PUSH	R0			;Save Status Block Address
   2200	005244					EDIOUT	#CONERM,#ARGCON,#OUTBLK	;Output error message
   2300	005342					POP	R0			;Restore status block address
   2400	005344	122710 	177667 			CMPB	#IE.URJ,(R0)		;User Rejects?
   2500	005350	001414 				BEQ	15$			;Yes, inform operator
   2600	005352	122710 	000000G			CMPB	#IE.DAO,(R0)		;User Reject with overrun?
   2700	005356	001411 				BEQ	15$			;Yes, same as IE.URJ
   2800	005360	122710 	177666 			CMPB	#IE.NRJ,(R0)		;Network Reject?
   2900	005364	001403 				BEQ	12$			;Yes, process them
   3000	005366					CALL	STSERR			;I give up
   3100	005372	000447 				BR	70$			;Exit
   3200	005374				12$:	CALL	NETERR			;Show network error
   3300	005400	000444 				BR	70$			;Exit
   3400	005402				15$:	EDIOUT	#URJERM,#ARGCON,#OUTBLK	;Issue error message
   3500	005500	000404 				BR	70$			;Exit
   3600	005502	005267 	000204'		20$:	INC	CLVLID			;Show CL valid
   3700	005506	000241 				CLC				;Clear carry
   3800	005510	000401 				BR	90$			; and exit
   3900	005512	000261 			70$:	SEC				;Set carry
   4000	005514				90$:	RETURN				;Exit
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 17
NETERR - DETERMINE WHAT NETWORK ERROR MESSAGE TO ISSUE

    100						.SBTTL	NETERR - Determine what network error message to issue
    200					;
    300					; NETERR is called with the status block address for the network error
    400					; in R0. An appropriate error message is issued from the table NRJTAB.
    500					;
    600	005516	016001 	000002 		NETERR:	MOV	2(R0),R1		;Error Number
    700	005522	012702 	000000'			MOV	#NRJTAB,R2		;Look here
    800	005526	022712 	177777 		10$:	CMP	#-1,(R2)		;End of table?
    900	005532	001443 				BEQ	30$			;Yes, use default message
   1000	005534	022201 				CMP	(R2)+,R1		;Find error number?
   1100	005536	001402 				BEQ	20$			;Yes, issue appropriate message
   1200	005540	005722 				TST	(R2)+			;Skip message address
   1300	005542	000771 				BR	10$			;Check for another
   1400	005544				20$:	EDIOUT	@R2,#ARGNRJ,#OUTBLK	;Output message
   1500	005640					RETURN				;Exit
   1600	005642	005722 			30$:	TST	(R2)+			;Point to default message
   1700	005644	010167 	000240'			MOV	R1,ARGNRJ		;Store error number
   1800	005650	000735 				BR	20$			;Issue and exit
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 18
NETWORK RECEIVE PROCESSING

    100						.SBTTL	Network receive processing
    200						.SBTTL	NTPROC - Process Network Receive Functions
    300					;
    400					; NTPROC is called with R0 set to the REC$ status block data
    500					; structure for an output link or R0 set to a LUN number that
    600					; has just been disconnected.
    700					;
    800	005652				NTPROC:					;Here to process received message
    900	005652					CALL	$SAVAL			;Save all registers
   1000	005656	005767 	000124'			TST	CTYRES			;Is CTY reserved?
   1100	005662	001416 				BEQ	100$			;No, normal processing
   1200										;Yes, Special processing follows
   1300					; Special reserved CTY processing
   1400	005664	022700 	000005 			CMP	#LUNOL2,R0		;Is this a LUN?
   1500	005670	002407 				BLT	20$			;No, is status block
   1600	005672	020067 	000124'			CMP	R0,CTYRES		;Reserved by this clod?
   1700	005676	001410 				BEQ	100$			;Yes, process as not reserved
   1800	005700				10$:	CALL	HOLDIT			;Hold the queue entry
   1900	005704	000167 	000436 			JMP	240$			;Exit
   2000	005710	026067 	177776 	000124'	20$:	CMP	SB.LUN-SB.STL(R0),CTYRES ;Reserved by this character?
   2100	005716	001370 				BNE	10$			;No, holdit
   2200										;Yes, process as not reserved
   2300					; Normal receive processing
   2400	005720	022700 	000005 		100$:	CMP	#LUNOL2,R0		;Is this a LUN?
   2500	005724	002420 				BLT	110$			;No, is status block
   2600	005726	020067 	000120'			CMP	R0,OL1ASN		;OL #1?
   2700	005732	001406 				BEQ	101$			;Yes, clear assignment
   2800	005734	020067 	000122'			CMP	R0,OL2ASN		;OL #2?
   2900	005740	001010 				BNE	104$			;No, i give up
   3000	005742	005067 	000122'			CLR	OL2ASN			;Clear assignment
   3100	005746	000402 				BR	102$			;Continue
   3200	005750	005067 	000120'		101$:	CLR	OL1ASN			;Clear assignment
   3300	005754	020067 	000124'		102$:	CMP	R0,CTYRES		;Reserved also?
   3400	005760	001564 				BEQ	200$			;Yes, so clear reservation
   3500										;No, so exit
   3600	005762	000167 	000360 		104$:	JMP	240$			;Exit
   3700					;
   3800	005766	016001 	000004 		110$:	MOV	SB.BUF-SB.STL(R0),R1	;R1 = Buffer address
   3900	005772	016002 	000002 			MOV	2(R0),R2		;R2 = Number of characters
   4000	005776	003516 				BLE	190$			;If funny number of characters, exit
   4100					;
   4200					; Determine whether we can fit this message into the output buffer
   4300					; if we can't (we are in deep sneekers) then block the processing,
   4400					; else move the data buffer to the output buffer.
   4500					;
   4600	006000				115$:	IHAR$S				;Ensure we get good results
   4700	006006					EMPTYQ	R5,NO			;Get amount empty in NO queue
	006006	026767 	007250'	007246'		CMP	NO.OUT,NO.IN		;IN <= OUT?
	006014	003406 				BLE	64$			;YES CALCULATE R5
	006016	016705 	007250'			MOV	NO.OUT,R5		;CALCULATE OUT-IN
	006022	166705 	007246'			SUB	NO.IN,R5		;
	006026	005305 			.IIF	EQ,NO.TYP-0 DEC  R5		;BYTE QUEUE
	006030	000410 				BR	65$			;CONTINUE
	006032	016705 	007252'		64$:	MOV	NO.LMT,R5		;CALCULATE LIMIT-IN
	006036	166705 	007246'			SUB	NO.IN,R5		;
	006042	066705 	007250'			ADD	NO.OUT,R5		;ADD IN OUT-FIRST
	006046	166705 	007244'			SUB	NO.FST,R5		;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 18-1
NTPROC - PROCESS NETWORK RECEIVE FUNCTIONS

   4800	006052					ENAR$S				;Let them ASTs go!
   4900	006060	005205 				INC	R5			;Account for extra flag byte on
   5000										; received message.
   5100	006062	160205 				SUB	R2,R5			;Do we fit?
   5200	006064	002022 				BGE	120$			;Yes, so put it in buffer
   5300										;No, we are blocked (darn it!)
   5400	006066					CALL	CIPROC			;Still give snappy input response
   5500	006072					MRKT$S	#MKTEFN,#10.,#1		;Delay about 10 ticks
   5600	006116					WTSE$S	#MKTEFN			;wait for timer to go
   5700	006130	000723 				BR	115$			;try again
   5800					;
   5900	006132	112105 			120$:	MOVB	(R1)+,R5		;Get flag byte
   6000	006134	122705 	000002 			CMPB	#RESSET,R5		;Set reservation?
   6100	006140	001003 				BNE	140$			;No, skip it
   6200	006142	016067 	177776 	000124'		MOV	SB.LUN-SB.STL(R0),CTYRES ;Show reserved to LUN #
   6300	006150	005302 			140$:	DEC	R2			;Any characters left?
   6400	006152	003430 				BLE	190$			;No, exit
   6500	006154				150$:	INSRTQ	(R1)+,NO,R3,R4		;Insert character in NO queue
	006154	016704 	007246'			MOV	NO.IN,R4		;GET IN POINTER
	006160	010403 				MOV	R4,R3			;MAKE COPY OF IT
	006162	005203 			.IIF	EQ,NO.TYP-0	INC	R3	;BYTE QUEUE
	006164	020367 	007252'			CMP	R3,NO.LMT		;IN+1 <= LIMIT ?
	006170	003402 				BLE	66$			;YES, NO WRAP AROUND
	006172	016703 	007244'			MOV	NO.FST,R3		;NO, WRAP AROUND TO FIRST
	006176	020367 	007250'		66$:	CMP	R3,NO.OUT		;NEW IN \= OUT ?
	006202	001002 				BNE	67$			;YES, QUEUE NOT FULL
	006204	000261 				SEC				;QUEUE FULL, SET CARRY
	006206	000404 				BR	68$			;EXIT WITH CARRY SET
	006210	112114 			.IIF	EQ,NO.TYP-0	MOVB	(R1)+,(R4)	;BYTE QUEUE
	006212	010367 	007246'			MOV	R3,NO.IN		;UPDATE IN
	006216	000241 				CLC				;SHOW SUCCESS
   6600	006220					ERCALL	CRASH			;Crash if can't
   6700	006226	077226 				SOB	R2,150$			;Loop for all characters
   6800	006230					CALL	STRTNO			;Try to start Output Link to CTY
   6900	006234	016001 	000004 		190$:	MOV	SB.BUF-SB.STL(R0),R1	;R1 = Buffer address
   7000	006240	016002 	000006 			MOV	SB.BFL-SB.STL(R0),R2	;R2 = Size of buffer
   7100	006244	016003 	177776 			MOV	SB.LUN-SB.STL(R0),R3	;R3 = LUN number
   7200	006250					REC$S	R3,,R0,#RECAST,<R1,R2>	;Get another buffer
   7300	006310					ERCALL	DSWERR			;Hmmm!
   7400	006316	020367 	000124'			CMP	R3,CTYRES		;Did this character have it reserved?
   7500	006322	001011 				BNE	240$			;No, so don't look at RESCLR
   7600	006324	122705 	000003 			CMPB	#RESCLR,R5		;Clear reservation?
   7700	006330	001006 				BNE	240$			;No, exit
   7800	006332	005067 	000124'		200$:	CLR	CTYRES			;Clear reservation
   7900	006336	005067 	000000G			CLR	NTCCO			;Clear ^O
   8000	006342					CALL	HQEVAL			;Evaluate Holding queue
   8100	006346				240$:	RETURN				;Exit
   8200					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 19
RECAST - REC$ AST SERVICE

    100						.SBTTL	RECAST - REC$ AST service
    200					;
    300					; RECAST is entered when a message has arrived over an output
    400					; link. It issues the message status address to the NT queue for
    500					; processing by the main loop.
    600					;
    700	006350				RECAST:	PUSH	<R0,R1,R2,R3,R4>	;Save registers
    800	006362	016600 	000012 			MOV	10.(SP),R0		;Address of Status Block to R0
    900	006366	122710 	000000G			CMPB	#IS.SUC,(R0)		;Success?
   1000	006372	001414 				BEQ	10$			;Yes, Send to CTY
   1100	006374	122710 	000000G			CMPB	#IE.DAO,(R0)		;Almost Success?
   1200	006400	001411 				BEQ	10$			;Yes, Send to CTY
   1300	006402				5$:	POP	<R4,R3,R2,R1,R0>	;Restore Registers
   1400	006414	005726 				TST	(SP)+			;Remove IO Status Block Address
   1500	006416					ASTX$S				;Exit AST
   1600					;
   1700	006424				10$:	INSRTQ	R0,NT,R1,R2		;Issue status block to Main loop
	006424	016702 	004252'			MOV	NT.IN,R2		;GET IN POINTER
	006430	010201 				MOV	R2,R1			;MAKE COPY OF IT
	006432	005721 			.IIF	EQ,NT.TYP-1	TST	(R1)+	;WORD QUEUE
	006434	020167 	004256'			CMP	R1,NT.LMT		;IN+1 <= LIMIT ?
	006440	003402 				BLE	64$			;YES, NO WRAP AROUND
	006442	016701 	004250'			MOV	NT.FST,R1		;NO, WRAP AROUND TO FIRST
	006446	020167 	004254'		64$:	CMP	R1,NT.OUT		;NEW IN \= OUT ?
	006452	001002 				BNE	65$			;YES, QUEUE NOT FULL
	006454	000261 				SEC				;QUEUE FULL, SET CARRY
	006456	000404 				BR	66$			;EXIT WITH CARRY SET
	006460	010012 			.IIF	EQ,NT.TYP-1	MOV	R0,(R2)	;WORD QUEUE
	006462	010167 	004252'			MOV	R1,NT.IN		;UPDATE IN
	006466	000241 				CLC				;SHOW SUCCESS
   1800	006470					ERCALL	CRASH			;Something is really fishy here!
   1900	006476					SETF$S	#MAIEFN			;Flag main loop
   2000	006510					ERCALL	DSWERR			;Hmmm!
   2100	006516	000731 				BR	5$			;Exit
   2200					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 20
HOLDIT - ADD AN ENTRY TO THE HOLDING QUEUE

    100						.SBTTL	HOLDIT - Add an entry to the Holding queue
    200					;
    300					; HOLDIT is entered with R0 set to whatever is to be added to
    400					; the queue.
    500					;
    600	006520	012701 	000130'		HOLDIT:	MOV	#HOLDQ,R1		;Address of holding queuee
    700	006524	005711 			10$:	TST	(R1)			;Queue entry empty?
    800	006526	001405 				BEQ	20$			;Yes, add to queue
    900	006530	022127 	177731 			CMP	(R1)+,#-47		;End of queue?
   1000	006534	001373 				BNE	10$			;No, loop on
   1100	006536					CALL	CRASH			;Yes, shouldn't ever happen
   1200					;
   1300	006542	010021 			20$:	MOV	R0,(R1)+		;Add to queue
   1400	006544	021127 	177731 			CMP	(R1),#-47		;Queue full?
   1500	006550	001401 				BEQ	25$			;Yes, so don't clear entry
   1600	006552	005011 				CLR	(R1)			;Show end of queue
   1700	006554				25$:	RETURN				;Exit
   1800					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 21
HQEVAL - EVALUATE HOLDING QUEUE ENTRIES

    100						.SBTTL	HQEVAL - Evaluate holding queue entries
    200					;
    300					; HQEVAL is used to reevaluate holding queue entries whenever a
    400					; reserved CTY becomes unreserved. This may entail a rather time
    500					; consuming recursion over the holding queue.
    600					;
    700	006556	005001 			HQEVAL:	CLR	R1			;Zero count of items removed
    800	006560	012702 	000130'			MOV	#HOLDQ,R2		;R2 is pointer into queue
    900	006564	005712 			10$:	TST	(R2)			;End of queue?
   1000	006566	001406 				BEQ	20$			;Yes, process entries
   1100	006570	021227 	177731 			CMP	(R2),#-47		;End of queue marker?
   1200	006574	001403 				BEQ	20$			;Yes, process entries
   1300	006576					PUSH	(R2)+			;Add entry to stack
   1400	006600	005201 				INC	R1			;Count entries
   1500	006602	000770 				BR	10$			;Get all entries
   1600					;
   1700	006604	005067 	000130'		20$:	CLR	HOLDQ			;Show empty queue
   1800	006610	005701 				TST	R1			;Any entries?
   1900	006612	001404 				BEQ	35$			;No, just exit
   2000	006614				30$:	POP	R0			;Entry to R0
   2100	006616					CALL	NTPROC			;Process entry
   2200	006622	077104 				SOB	R1,30$			;Loop on all entries
   2300	006624				35$:	RETURN				;Exit, done processing
   2400					;
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 22
HQEVAL - EVALUATE HOLDING QUEUE ENTRIES

    100					;
    200		000000'				.END	POSI
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 22-1
SYMBOL TABLE

ARGCON  000216R     002	GNDEFN= 000014 G 	NE$FCF= 000050   	NT.IN   004252R     002	N.SNMC  000044
ARGDSW  000222R     002	GNDLEN= 000142   	NE$FMT= 000005   	NT.INT= 000002   	N.SOT   000037
ARGDUM  000222R     002	GNDSB   000004R     002	NE$GEN= 000007   	NT.LMT  004256R     002	N.SUS   000042
ARGGRE  000212R     002	GREETS  000000R     003	NE$ILS= 000043   	NT.LOG= 000011   	OLBLEN= 000575
ARGNRJ  000240R     002	HLPEFN= 000016 G 	NE$IMG= 000053   	NT.MOP= 000010   	OL1ASN  000120R     002
ARGSTS  000226R     002	HLPLEN= 000317 G 	NE$MLB= 000006   	NT.OUT  004254R     002	OL1BUF  001066R     002
BEL   = 000007   	HLPMSG  000714RG    003	NE$NOD= 000002   	NT.TYP= 000001   	OL1SB   000024R     002
CANERM  000436R     003	HOLDIT  006520R     005	NE$NSD= 000003   	N.CAC   000120   	OL2ASN  000122R     002
CBLEN = 000110 G 	HOLDQ   000130R     002	NE$RES= 000001   	N.CACC  000116   	OL2BUF  001664R     002
CB0     000504RG    002	HQEVAL  006556R     005	NE$SSR= 000000   	N.CBL = 000142   	OL2SB   000050R     002
CB1     000614R     002	IE.ABO= ****** GX	NE$SSS= 000045   	N.CDA   000142   	OUTBLK  000244RG    002
CB1LEN= 000110   	IE.DAO= ****** GX	NE$STA= 000051   	N.CDAC  000140   	OUTIP   000206R     002
CHRAST  004266R     005	IE.DNR= ****** GX	NE$TCN= 000040   	N.CID   000064   	PCERR   000224R     002
CHRBUF  000242R     002	IE.NDA= 177662   	NE$TCO= 000041   	N.CIDC  000062   	POSI    000000RG    005
CIPROC  004206R     005	IE.NNT= 177660   	NE$TPA= 000010   	N.CPS   000106   	PROMPT= ****** GX
CI.BUF  003262R     002	IE.NRJ= 177666   	NE$UOB= 000004   	N.CPSC  000104   	PSTLEN= 000006 G
CI.FST  003402R     002	IE.URJ= 177667   	NNMERM  000523RG    003	N.CTL   000000   	PSTRNG  000624RG    003
CI.IN   003404R     002	ILLCMD  000640R     003	NNMLEN= 000006 G 	N.DDE   000010   	RECAST  006350R     005
CI.LMT  003410R     002	IL.IN = ****** GX	NOLNKS= 000002 G 	N.DDEC  000006   	RESCLR= 000003
CI.OUT  003406R     002	INFLEN= 000002   	NO.BUF  004260R     002	N.DFM   000004   	RESSET= 000002
CI.TYP= 000000   	INPEFN= 000015 G 	NO.DTR= 000077   	N.DGP   000006   	SBLEN = 000024
CLBUF   002462R     002	INPMOD= ****** GX	NO.FAL= 000021   	N.DNM   000014   	SB.BFL= 000022
CLSB    000074R     002	INPSRV= ****** GX	NO.FA1= 000001   	N.DNMC  000012   	SB.BUF= 000020
CLVLID  000204R     002	IO.ATA= ****** GX	NO.FST  007244R     002	N.DOT   000005   	SB.LUN= 000012
CMDLNK  005056RG    005	IO.WBT= ****** GX	NO.IN   007246R     002	N.DUS   000010   	SB.NNM= 000004
CNTRLR  000126RG    002	IO.WLB= ****** GX	NO.LMT  007252R     002	N.RAC   000070   	SB.STC= 000000
COMAND= ****** GX	IS.DAO= 000002   	NO.NCU= 000023   	N.RACC  000066   	SB.STL= 000014
CONERM  001233R     003	IS.SUC= ****** GX	NO.OUT  007250R     002	N.RDE   000012   	SETDFT  003224R     005
CONLNK  005142R     005	LF    = 000012   	NO.RTL= 000022   	N.RDEC  000010   	SPAAST  001256R     005
CO.BUF  003412R     002	LUNCL = 000003 G 	NO.TAS= 000000   	N.RFM   000006   	SPDAST  001212R     005
CO.FST  004210R     002	LUNCTY= 000002 G 	NO.TCL= 000017   	N.RGP   000010   	STRTCO  002226R     005
CO.IN   004212R     002	LUNNT = 000001 G 	NO.TC1= 000005   	N.RID   000034   	STRTNO  002404R     005
CO.LMT  004216R     002	LUNOL1= 000004 G 	NO.TLK= 000020   	N.RIDC  000032   	STSERM  000252R     003
CO.OUT  004214R     002	LUNOL2= 000005 G 	NO.TYP= 000000   	N.RND   000000   	STSERR  001046R     005
CO.TYP= 000000   	MAIEFN= 000013 G 	NRJTAB  000000R     004	N.RNM   000016   	URJERM  000376R     003
CR    = 000015   	MAIN    000414R     005	NR$IFC= 000030   	N.RNMC  000014   	WBTEFN= 000012 G
CRASH   000742RG    005	MKTEFN= 000017 G 	NSTLEN= 000006 G 	N.ROT   000007   	WBTSB   000010RG    002
CSHERM  000202R     003	MOD.H = ****** GX	NSTRNG  000632RG    003	N.RPS   000056   	XMTLIN  004470RG    005
CTOAST  002562R     005	NCHRBF  000243R     002	NTCCO = ****** GX	N.RPSC  000054   	$DSW  = ****** GX
CTYBUF= ****** GX	NETEFN= 000010 G 	NTOIP   000210R     002	N.RQL = 000110   	$EDMSG= ****** GX
CTYEFN= 000011 G 	NETERR  005516R     005	NTOSB   000020R     002	N.RUS   000012   	$SAVAL= ****** GX
CTYRES  000124R     002	NETSB   000000R     002	NTPROC  005652R     005	N.SDE   000042   	$$    = 002764
CTYSB   000014R     002	NE$ABO= 000046   	NT.ABO= 000005   	N.SDEC  000040   	$$$   = 002763
DSWERM  000114R     003	NE$ABT= 000011   	NT.ABT= 000004   	N.SEGZ  000002   	$$$ARG= 000002
DSWERR  000620RG    005	NE$ACC= 000042   	NT.BUF  004220R     002	N.SFM   000036   	$$$FLG= 016630
ECHO    004410RG    005	NE$ACT= 000044   	NT.CON= 000001   	N.SGP   000040   	$$$FMT= 000000
GETINF  003260R     002	NE$CDI= 000052   	NT.DSC= 000003   	N.SND   000030   	$$$LOC= 000614R     002
GNDBUF  000724R     002	NE$COM= 000047   	NT.FST  004250R     002	N.SNM   000046

. ABS.	000142	   000
      	000000	   001
DATA  	007254	   002
MESS  	002054	   003
NRJ   	000050	   004
MAIN  	006626	   005
ERRORS DETECTED:  0

VIRTUAL MEMORY USED:  7644 WORDS  ( 30 PAGES)
POSI - PROVISIONAL OPERATOR SER	MACRO M1110  13-OCT-79 13:13  PAGE 22-2
SYMBOL TABLE

DYNAMIC MEMORY:  9004 WORDS  ( 34 PAGES)
ELAPSED TIME:  00:02:51
POSI,[135,30]POSI/CR/-SP=[130,10]NETLIB/ML,[135,10]POSI
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 1

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

ARGCON	  000216 R	#4-8200     16-2200    16-3400   
ARGDSW	  000222 R	#4-8600    *7-800      7-900      7-1900    *7-2000    *7-2100    
ARGDUM	  000222 R	#4-8500     15-2000   
ARGGRE	  000212 R	#4-8000     11-5900   
ARGNRJ	  000240 R	#4-9100     15-3100    17-1400   *17-1700   
ARGSTS	  000226 R	#4-8900     7-3500     7-4300    
BEL   	= 000007	#5-900      5-1600     5-1600     5-1700     5-1700     5-1700    
CANERM	  000436 R	#5-2400     15-3100   
CBLEN 	= 000110  G	#4-10300    16-1400   
CB0   	  000504 RG	 4-8300    #4-10200    4-10300    11-2800    16-1400   
CB1   	  000614 R	 4-8100    #4-10500    4-10600    11-600     11-800    
CB1LEN	= 000110	#4-10600    11-800    
CHRAST	  004266 R	 6-2100    #13-900    
CHRBUF	  000242 R	#4-9300    *9-1400     9-1700    *10-2400    10-2800   
CIPROC	  004206 R	 6-2900     6-4900    #12-700     18-5400   
CI.BUF	  003262 R	#4-13100    4-13100    4-13100    4-13100    4-13100   
CI.FST	  003402 R	#4-13100    12-800     13-1100   
CI.IN 	  003404 R	#4-13100    12-800     13-1100   *13-1100   
CI.LMT	  003410 R	#4-13100    12-800     13-1100   
CI.OUT	  003406 R	#4-13100    12-800     12-800    *12-800     13-1100   
CI.TYP	= 000000	#4-13100    4-13100    4-13100    12-800     12-800     13-1100    13-1100    13-1100    13-1100   
CLBUF 	  002462 R	#4-11900    11-1700    11-2100    11-2300    11-2700    11-5400   
CLSB  	  000074 R	#4-5800    *11-5400   *11-5800   
CLVLID	  000204 R	#4-7400    *8-12100    15-2600    15-2900    16-900    *16-1300   *16-3600   
CMDLNK	  005056 RG	 6-2000    #16-900    
CNTRLR	  000126 RG	#4-6700     6-3500    *6-4500    *10-4200   
COMAND	= ******  GX	 15-1800   
CONERM	  001233 R	#5-4600     16-2200   
CONLNK	  005142 R	 15-2800    16-1000   #16-1400   
CO.BUF	  003412 R	#4-13200    4-13200    4-13200    4-13200    4-13200   
CO.FST	  004210 R	#4-13200    9-1400     10-2400    14-500    
CO.IN 	  004212 R	#4-13200    9-1200     9-1400     10-2300    10-2400    14-500    *14-500    
CO.LMT	  004216 R	#4-13200    9-1400     10-2400    14-500    
CO.OUT	  004214 R	#4-13200   *9-1200     9-1400     9-1400    *9-1400    *10-2300    10-2400    10-2400   *10-2400   
                         14-500    
CO.TYP	= 000000	#4-13200    4-13200    4-13200    9-1400     9-1400     10-2400    10-2400    14-500     14-500    
                         14-500     14-500    
CR    	= 000015	#5-700      5-1000     5-1100     5-1100     5-1300     5-1600     5-1700     5-1900     5-2000    
                         5-2200     5-2400     5-2600     5-3500     5-3700     5-3700     5-3800     5-3900     5-4000    
                         5-4000     5-4100     5-4200     5-4200     5-4300     5-4600     5-6000     5-6100     5-6200    
                         5-6300     5-6400     5-6500     5-6600     5-6700     5-6800     5-6900    
CRASH 	  000742 RG	 6-1600     6-2100     7-1000    #7-1700     8-2000     8-6300     10-1300    13-1200    14-600    
                         18-6600    19-1800    20-1100   
CSHERM	  000202 R	#5-1600     7-1800    
CTOAST	  002562 R	 9-1700     9-2800    #10-600     10-2800    10-4500   
CTYBUF	= ******  GX	 15-1700    15-3400   
CTYEFN	= 000011  G	#4-1700     6-2100     7-900      7-2400     7-4300     11-5900    15-2000    15-3100    16-2200   
                         16-3400    17-1400   
CTYRES	  000124 R	#4-6600     6-3700     10-4000   *11-6600    18-1000    18-1600    18-2000    18-3300   *18-6200   
                         18-7400   *18-7800   
CTYSB 	  000014 R	#4-3700     6-2100     6-2100     9-1700     10-2800   
DSWERM	  000114 R	#5-1300     7-900     
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 2

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

DSWERR	  000620 RG	 6-1500     6-1900     6-2100     6-2600     6-2800    #7-600      7-900      7-4300     8-2600    
                         8-5400     8-8400     8-8900     9-1700     9-2800     10-2800    10-4500    11-700     11-900    
                         11-1400    11-1800    11-2400    11-5100    11-5900    13-1400    15-2000    15-3100    15-3500   
                         16-1200    16-1500    16-2200    16-3400    17-1400    18-7300    19-2000   
ECHO  	  004410 RG	#14-500    
GETINF	  003260 R	#4-12500    4-12600    11-1300   
GNDBUF	  000724 R	#4-11000    4-11100    8-2500     8-4700     8-5300     8-8300    
GNDEFN	= 000014  G	#4-2000     8-2500     8-5300     8-8300    
GNDLEN	= 000142	#4-11100    8-2500    
GNDSB 	  000004 R	#4-3500     8-2500     8-2700     8-2900     8-3500     8-3700     8-3900     8-4100     8-5300    
                         8-5500     8-5700     8-6000     8-8300     8-8500     8-10200   
GREETS	  000000 R	#5-1000     11-5900   
HLPEFN	= 000016  G	#4-2200    
HLPLEN	= 000317  G	#5-4400    
HLPMSG	  000714 RG	#5-3700     5-4400    
HOLDIT	  006520 R	 18-1800   #20-600    
HOLDQ 	  000130 R	#4-7100     6-4300    *11-6700    20-600     21-800    *21-1700   
HQEVAL	  006556 R	 18-8000   #21-700    
IE.ABO	= ******  GX	 8-5700     15-3800   
IE.DAO	= ******  GX	 8-2900     16-2600    19-1100   
IE.DNR	= ******  GX	 10-1000   
IE.NRJ	= 177666	 16-2800   
IE.URJ	= 177667	 16-2400   
ILLCMD	  000640 R	#5-3500     15-2000   
IL.IN 	= ******  GX	 15-1100    15-3400   
INFLEN	= 000002	#4-12600    11-1300   
INPEFN	= 000015  G	#4-2100    
INPMOD	= ******  GX	 15-600    
INPSRV	= ******  GX	 6-4800     12-1000   
IO.ATA	= ******  GX	 6-2100    
IO.WBT	= ******  GX	 7-2400    
IO.WLB	= ******  GX	 7-900      7-4300     9-1700     9-2800     10-2800    10-4500    11-5900    15-2000    15-3100   
                         16-2200    16-3400    17-1400   
IS.DAO	= 000002	 16-1900   
IS.SUC	= ******  GX	 6-1600     6-2100     8-1100     8-2700     8-5500     8-8500     10-800     11-1000    11-1500   
                         11-1900    11-2500    15-3600    16-1700    19-900    
LF    	= 000012	#5-800      5-1000     5-1100     5-1100     5-1300     5-1600     5-1700     5-1900     5-2000    
                         5-2200     5-2400     5-2600     5-3500     5-3700     5-3700     5-3800     5-3900     5-4000    
                         5-4000     5-4100     5-4200     5-4200     5-4300     5-4600     5-6000     5-6100     5-6200    
                         5-6300     5-6400     5-6500     5-6600     5-6700     5-6800     5-6900    
LUNCL 	= 000003  G	#4-800      6-1100     8-10300    11-800     11-1300    11-1700    11-2300    11-5000    15-3400   
                         16-1100    16-1400   
LUNCTY	= 000002  G	#4-700      6-900      6-2100     7-900      7-2400     7-4300     9-1700     9-2800     10-2800   
                         10-4500    11-5900    15-2000    15-3100    16-2200    16-3400    17-1400   
LUNNT 	= 000001  G	#4-600      6-1000     6-1400     6-1800     8-2500     8-5300     8-10900    11-600    
LUNOL1	= 000004  G	#4-900      6-1200     8-6700    
LUNOL2	= 000005  G	#4-1000     6-1300     8-7200     18-1400    18-2400   
MAIEFN	= 000013  G	#4-1900     6-2500     6-2700     8-11700    10-4300    13-1300    19-1900   
MAIN  	  000414 R	#6-2500     6-3600     6-5000    
MKTEFN	= 000017  G	#4-2300     18-5500    18-5600   
MOD.H 	= ******  GX	 15-600    
NCHRBF	  000243 R	#4-9400    *9-2500     9-2800    *10-3700    10-4500   
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 3

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

NETEFN	= 000010  G	#4-1600     6-1400     6-1800     11-600     11-800     11-1300    11-1700    11-2300    11-5000   
                         15-3400    16-1100    16-1400   
NETERR	  005516 R	 16-3200   #17-600    
NETSB 	  000000 R	#4-3400     6-1400     6-1600     6-1800     11-600     11-800     11-1000    11-1300    11-1500   
                         11-1700    11-1900    11-2300    11-2500    11-5000    15-3400    15-3600    15-3800    15-4000   
                         16-1400    16-1600   
NE$ABO	= 000046	 5-6800    
NE$ABT	= 000011	 5-6700    
NE$COM	= 000047	 5-6500    
NE$NOD	= 000002	 5-6000    
NE$NSD	= 000003	 5-6100    
NE$SSR	= 000000	 5-6600    
NE$TCN	= 000040	 5-6300    
NE$TCO	= 000041	 5-6400    
NE$UOB	= 000004	 5-6200    
NNMERM	  000523 RG	#5-2600    
NNMLEN	= 000006  G	#4-2700     4-5000     4-8000     4-8200     8-4800     11-600     11-3900    11-4500   
NOLNKS	= 000002  G	#4-1200     4-13300    4-13300    6-1400    
NO.BUF	  004260 R	#4-13400    4-13400    4-13400    4-13400    4-13400   
NO.FST	  007244 R	#4-13400    9-2500     10-3700    18-4700    18-6500   
NO.IN 	  007246 R	#4-13400    9-2500     9-3000     10-3500    10-3700    18-4700    18-4700    18-4700    18-6500   
                        *18-6500   
NO.LMT	  007252 R	#4-13400    9-2500     10-3700    18-4700    18-6500   
NO.OUT	  007250 R	#4-13400    9-2500     9-2500    *9-2500    *9-3000    *10-3500    10-3700    10-3700   *10-3700   
                         18-4700    18-4700    18-4700    18-6500   
NO.TYP	= 000000	#4-13400    4-13400    4-13400    9-2500     9-2500     10-3700    10-3700    18-4700    18-4700   
                         18-4700    18-6500    18-6500    18-6500    18-6500   
NRJTAB	  000000 R	#5-5900     17-700    
NSTLEN	= 000006  G	#5-3300    
NSTRNG	  000632 RG	#5-3200     5-3300    
NTCCO 	= ******  GX	*6-4600     9-2300     10-3300   *18-7900   
NTOIP 	  000210 R	#4-7600     6-3900     9-1000     9-2100    *9-2700     10-2100   *10-3900   
NTOSB 	  000020 R	#4-3800     9-2800     10-1500    10-1900    10-4500   
NTPROC	  005652 R	 6-3200    #18-800     21-2100   
NT.ABO	= 000005	 8-4100    
NT.ABT	= 000004	 8-3900    
NT.BUF	  004220 R	#4-13300    4-13300    4-13300    4-13300    4-13300   
NT.CON	= 000001	 8-3500    
NT.DSC	= 000003	 8-3700    
NT.FST	  004250 R	#4-13300    6-3000     8-11600    19-1700   
NT.IN 	  004252 R	#4-13300    6-3000     6-4100     8-11600   *8-11600    19-1700   *19-1700   
NT.LMT	  004256 R	#4-13300    6-3000     8-11600    19-1700   
NT.OUT	  004254 R	#4-13300    6-3000     6-3000    *6-3000     6-4100     8-11600    19-1700   
NT.TYP	= 000001	#4-13300    4-13300    4-13300    6-3000     6-3000     8-11600    8-11600    8-11600    8-11600   
                         19-1700    19-1700    19-1700    19-1700   
N.CBL 	= 000142	 4-11000   
N.RND 	  000000	 4-8100     4-8300     11-600     11-2800   
N.SND 	  000030	 8-4700    
OLBLEN	= 000575	#4-2800     4-11500    4-11700    4-11900    4-13200    4-13200    4-13400    4-13400    11-1700   
                         11-2300    11-5500   
OL1ASN	  000120 R	#4-6300     8-4900    *8-6800     8-9100    *8-9300     8-10500   *11-6400    18-2600   *18-3200   
OL1BUF	  001066 R	#4-11500    11-5200   
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 4

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

OL1SB 	  000024 R	#4-5600     8-6700     8-6900    *11-5200   *11-5600   
OL2ASN	  000122 R	#4-6400     8-5100    *8-7300    *8-9500     8-10700   *11-6500    18-2800   *18-3000   
OL2BUF	  001664 R	#4-11700    11-5300   
OL2SB 	  000050 R	#4-5700     8-7200     8-7400    *11-5300   *11-5700   
OUTBLK	  000244 RG	#4-9800     7-900      7-1700     7-4300     11-5900    15-2000    15-3100    16-2200    16-3400   
                         17-1400   
OUTIP 	  000206 R	#4-7500     9-800     *9-1600    *10-2600   
PCERR 	  000224 R	#4-8700    *7-600     *7-700     
POSI  	  000000 RG	#6-900      22-200    
PROMPT	= ******  GX	 6-2100    
PSTLEN	= 000006  G	#5-3000    
PSTRNG	  000624 RG	#5-2900     5-3000    
RECAST	  006350 R	 8-8700     18-7200   #19-700    
RESCLR	= 000003	#4-3000     18-7600   
RESSET	= 000002	#4-2900     18-6000   
SBLEN 	= 000024	#4-5400     4-5500    
SB.BFL	= 000022	#4-5300     4-5400     8-8700    *11-5600   *11-5700   *11-5800    18-7000   
SB.BUF	= 000020	#4-5200     4-5300     8-8700    *11-5200   *11-5300   *11-5400    18-3800    18-6900   
SB.LUN	= 000012	#4-5000     4-5100     18-2000    18-6200    18-7100   
SB.NNM	= 000004	#4-4900     4-5000     8-6900     8-7400    
SB.STC	= 000000	#4-4800     4-4900    
SB.STL	= 000014	#4-5100     4-5200     8-6700     8-7200     8-8700     8-8700     18-2000    18-3800    18-6200   
                         18-6900    18-7000    18-7100   
SETDFT	  003224 R	 6-1700    #11-600    
SPAAST	  001256 R	 6-1800    #8-2200    
SPDAST	  001212 R	 6-1800    #8-800     
STRTCO	  002226 R	#9-800      14-700    
STRTNO	  002404 R	#9-2100     18-6800   
STSERM	  000252 R	#5-1900     7-4300    
STSERR	  001046 R	 6-2100    #7-3400     8-1800     8-6100     10-1200    16-3000   
URJERM	  000376 R	#5-2200     16-3400   
WBTEFN	= 000012  G	#4-1800    
WBTSB 	  000010 RG	#4-3600     7-900      7-2400     7-4300     11-5900    15-2000    15-3100    16-2200    16-3400   
                         17-1400   
XMTLIN	  004470 RG	#15-600    
$DSW  	= ******  GX	 7-800     
$EDMSG	= ******  GX	 7-900      7-2200     7-4300     11-5900    15-2000    15-3100    16-2200    16-3400    17-1400   
$SAVAL	= ******  GX	 12-700     18-900    
$$    	= 002764	#4-13100    4-13100   #4-13200    4-13200   #4-13300    4-13300    4-13300   #4-13400    4-13400   
$$$   	= 002763	#4-5500     4-5600     4-5700     4-5800    #4-10200    4-10200    4-10200   #4-10500    4-10500   
                         4-10500   #4-13100    4-13100   #4-13200    4-13200   #4-13300    4-13300   #4-13400    4-13400   
$$$ARG	= 000002	#6-1400     6-1400    #6-1400     6-1400     6-1400    #6-1400     6-1400     6-1400     6-1400    
                         6-1400     6-1400     6-1400     6-1400     6-1400     6-1400     6-1400    #6-1400     6-1400    
                         6-1400     6-1400     6-1400     6-1400     6-1400     6-1400     6-1400     6-1400     6-1400    
                        #6-1400     6-1400     6-1400     6-1400     6-1400     6-1400     6-1400     6-1400     6-1400    
                         6-1400     6-1400    #6-1800     6-1800    #6-1800     6-1800     6-1800    #6-1800     6-1800    
                         6-1800     6-1800     6-1800     6-1800     6-1800     6-1800     6-1800     6-1800     6-1800    
                        #6-1800     6-1800     6-1800     6-1800     6-1800     6-1800     6-1800     6-1800     6-1800    
                         6-1800     6-1800    #6-1800     6-1800     6-1800     6-1800     6-1800     6-1800     6-1800    
                         6-1800     6-1800     6-1800     6-1800    #6-2100     6-2100    #6-2100     6-2100     6-2100    
                        #6-2100     6-2100     6-2100     6-2100     6-2100     6-2100     6-2100     6-2100     6-2100    
                         6-2100     6-2100    #6-2100     6-2100     6-2100     6-2100     6-2100     6-2100     6-2100    
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 5

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         6-2100     6-2100     6-2100     6-2100    #6-2100     6-2100     6-2100     6-2100     6-2100    
                         6-2100     6-2100     6-2100     6-2100     6-2100     6-2100    #7-900      7-900     #7-900     
                         7-900     #7-900      7-900     #7-900      7-900      7-900     #7-900      7-900      7-900     
                         7-900      7-900      7-900      7-900      7-900      7-900      7-900      7-900     #7-900     
                         7-900      7-900      7-900      7-900      7-900      7-900      7-900      7-900      7-900     
                         7-900     #7-900      7-900      7-900      7-900      7-900      7-900      7-900      7-900     
                         7-900      7-900      7-900     #7-2400     7-2400    #7-2400     7-2400    #7-2400     7-2400    
                        #7-2400     7-2400     7-2400    #7-2400     7-2400     7-2400     7-2400     7-2400     7-2400    
                         7-2400     7-2400     7-2400     7-2400     7-2400    #7-2400     7-2400     7-2400     7-2400    
                         7-2400     7-2400     7-2400     7-2400     7-2400     7-2400     7-2400    #7-2400     7-2400    
                         7-2400     7-2400     7-2400     7-2400     7-2400     7-2400     7-2400     7-2400     7-2400    
                        #7-4300     7-4300    #7-4300     7-4300    #7-4300     7-4300    #7-4300     7-4300     7-4300    
                        #7-4300     7-4300     7-4300     7-4300     7-4300     7-4300     7-4300     7-4300     7-4300    
                         7-4300     7-4300    #7-4300     7-4300     7-4300     7-4300     7-4300     7-4300     7-4300    
                         7-4300     7-4300     7-4300     7-4300    #7-4300     7-4300     7-4300     7-4300     7-4300    
                         7-4300     7-4300     7-4300     7-4300     7-4300     7-4300    #8-2500     8-2500    #8-2500    
                         8-2500    #8-2500     8-2500     8-2500    #8-2500     8-2500     8-2500     8-2500     8-2500    
                         8-2500     8-2500     8-2500     8-2500     8-2500     8-2500    #8-2500     8-2500     8-2500    
                         8-2500     8-2500     8-2500     8-2500     8-2500     8-2500     8-2500     8-2500    #8-2500    
                         8-2500     8-2500     8-2500     8-2500     8-2500     8-2500     8-2500     8-2500     8-2500    
                         8-2500    #8-5300     8-5300    #8-5300     8-5300    #8-5300     8-5300    #8-5300     8-5300    
                        #8-5300     8-5300    #8-5300     8-5300    #8-5300     8-5300    #8-5300     8-5300     8-5300    
                         8-5300     8-5300     8-5300     8-5300     8-5300     8-5300     8-5300     8-5300    #8-5300    
                         8-5300     8-5300     8-5300     8-5300     8-5300     8-5300     8-5300     8-5300     8-5300    
                         8-5300    #8-5300     8-5300     8-5300     8-5300     8-5300     8-5300     8-5300     8-5300    
                         8-5300     8-5300     8-5300    #8-8300     8-8300    #8-8300     8-8300    #8-8300     8-8300    
                        #8-8300     8-8300    #8-8300     8-8300    #8-8300     8-8300    #8-8300     8-8300    #8-8300    
                         8-8300     8-8300     8-8300     8-8300     8-8300     8-8300     8-8300     8-8300     8-8300    
                         8-8300    #8-8300     8-8300     8-8300     8-8300     8-8300     8-8300     8-8300     8-8300    
                         8-8300     8-8300     8-8300    #8-8300     8-8300     8-8300     8-8300     8-8300     8-8300    
                         8-8300     8-8300     8-8300     8-8300     8-8300    #8-8700     8-8700    #8-8700     8-8700    
                        #8-8700     8-8700     8-8700    #8-8700     8-8700     8-8700     8-8700     8-8700     8-8700    
                         8-8700     8-8700     8-8700     8-8700     8-8700    #8-8700     8-8700     8-8700     8-8700    
                         8-8700     8-8700     8-8700     8-8700     8-8700     8-8700     8-8700    #8-8700     8-8700    
                         8-8700     8-8700     8-8700     8-8700     8-8700     8-8700     8-8700     8-8700     8-8700    
                        #9-1700     9-1700    #9-1700     9-1700    #9-1700     9-1700    #9-1700     9-1700     9-1700    
                        #9-1700     9-1700     9-1700     9-1700     9-1700     9-1700     9-1700     9-1700     9-1700    
                         9-1700     9-1700    #9-1700     9-1700     9-1700     9-1700     9-1700     9-1700     9-1700    
                         9-1700     9-1700     9-1700     9-1700    #9-1700     9-1700     9-1700     9-1700     9-1700    
                         9-1700     9-1700     9-1700     9-1700     9-1700     9-1700    #9-2800     9-2800    #9-2800    
                         9-2800    #9-2800     9-2800    #9-2800     9-2800     9-2800    #9-2800     9-2800     9-2800    
                         9-2800     9-2800     9-2800     9-2800     9-2800     9-2800     9-2800     9-2800    #9-2800    
                         9-2800     9-2800     9-2800     9-2800     9-2800     9-2800     9-2800     9-2800     9-2800    
                         9-2800    #9-2800     9-2800     9-2800     9-2800     9-2800     9-2800     9-2800     9-2800    
                         9-2800     9-2800     9-2800    #10-2800    10-2800   #10-2800    10-2800   #10-2800    10-2800   
                        #10-2800    10-2800    10-2800   #10-2800    10-2800    10-2800    10-2800    10-2800    10-2800   
                         10-2800    10-2800    10-2800    10-2800    10-2800   #10-2800    10-2800    10-2800    10-2800   
                         10-2800    10-2800    10-2800    10-2800    10-2800    10-2800    10-2800   #10-2800    10-2800   
                         10-2800    10-2800    10-2800    10-2800    10-2800    10-2800    10-2800    10-2800    10-2800   
                        #10-4500    10-4500   #10-4500    10-4500   #10-4500    10-4500   #10-4500    10-4500    10-4500   
                        #10-4500    10-4500    10-4500    10-4500    10-4500    10-4500    10-4500    10-4500    10-4500   
                         10-4500    10-4500   #10-4500    10-4500    10-4500    10-4500    10-4500    10-4500    10-4500   
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 6

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         10-4500    10-4500    10-4500    10-4500   #10-4500    10-4500    10-4500    10-4500    10-4500   
                         10-4500    10-4500    10-4500    10-4500    10-4500    10-4500   #11-600     11-600    #11-600    
                         11-600    #11-600     11-600     11-600    #11-600     11-600     11-600     11-600     11-600    
                         11-600     11-600     11-600     11-600     11-600     11-600    #11-600     11-600     11-600    
                         11-600     11-600     11-600     11-600     11-600     11-600     11-600     11-600    #11-600    
                         11-600     11-600     11-600     11-600     11-600     11-600     11-600     11-600     11-600    
                         11-600    #11-800     11-800    #11-800     11-800    #11-800     11-800    #11-800     11-800    
                        #11-800     11-800    #11-800     11-800    #11-800     11-800    #11-800     11-800     11-800    
                         11-800     11-800     11-800     11-800     11-800     11-800     11-800     11-800    #11-800    
                         11-800     11-800     11-800     11-800     11-800     11-800     11-800     11-800     11-800    
                         11-800    #11-800     11-800     11-800     11-800     11-800     11-800     11-800     11-800    
                         11-800     11-800     11-800    #11-1300    11-1300   #11-1300    11-1300   #11-1300    11-1300   
                         11-1300   #11-1300    11-1300    11-1300    11-1300    11-1300    11-1300    11-1300    11-1300   
                         11-1300    11-1300    11-1300   #11-1300    11-1300    11-1300    11-1300    11-1300    11-1300   
                         11-1300    11-1300    11-1300    11-1300    11-1300   #11-1300    11-1300    11-1300    11-1300   
                         11-1300    11-1300    11-1300    11-1300    11-1300    11-1300    11-1300   #11-1700    11-1700   
                        #11-1700    11-1700   #11-1700    11-1700    11-1700   #11-1700    11-1700    11-1700    11-1700   
                         11-1700    11-1700    11-1700    11-1700    11-1700    11-1700    11-1700   #11-1700    11-1700   
                         11-1700    11-1700    11-1700    11-1700    11-1700    11-1700    11-1700    11-1700    11-1700   
                        #11-1700    11-1700    11-1700    11-1700    11-1700    11-1700    11-1700    11-1700    11-1700   
                         11-1700    11-1700   #11-2300    11-2300   #11-2300    11-2300   #11-2300    11-2300    11-2300   
                        #11-2300    11-2300    11-2300    11-2300    11-2300    11-2300    11-2300    11-2300    11-2300   
                         11-2300    11-2300   #11-2300    11-2300    11-2300    11-2300    11-2300    11-2300    11-2300   
                         11-2300    11-2300    11-2300    11-2300   #11-2300    11-2300    11-2300    11-2300    11-2300   
                         11-2300    11-2300    11-2300    11-2300    11-2300    11-2300   #11-5000    11-5000    11-5000   
                        #11-5000    11-5000    11-5000    11-5000    11-5000    11-5000    11-5000    11-5000    11-5000   
                         11-5000    11-5000   #11-5000    11-5000    11-5000    11-5000    11-5000    11-5000    11-5000   
                         11-5000    11-5000    11-5000    11-5000   #11-5900    11-5900   #11-5900    11-5900   #11-5900   
                         11-5900   #11-5900    11-5900    11-5900   #11-5900    11-5900    11-5900    11-5900    11-5900   
                         11-5900    11-5900    11-5900    11-5900    11-5900    11-5900   #11-5900    11-5900    11-5900   
                         11-5900    11-5900    11-5900    11-5900    11-5900    11-5900    11-5900    11-5900   #11-5900   
                         11-5900    11-5900    11-5900    11-5900    11-5900    11-5900    11-5900    11-5900    11-5900   
                         11-5900   #15-2000    15-2000   #15-2000    15-2000   #15-2000    15-2000   #15-2000    15-2000   
                         15-2000   #15-2000    15-2000    15-2000    15-2000    15-2000    15-2000    15-2000    15-2000   
                         15-2000    15-2000    15-2000   #15-2000    15-2000    15-2000    15-2000    15-2000    15-2000   
                         15-2000    15-2000    15-2000    15-2000    15-2000   #15-2000    15-2000    15-2000    15-2000   
                         15-2000    15-2000    15-2000    15-2000    15-2000    15-2000    15-2000   #15-3100    15-3100   
                        #15-3100    15-3100   #15-3100    15-3100   #15-3100    15-3100    15-3100   #15-3100    15-3100   
                         15-3100    15-3100    15-3100    15-3100    15-3100    15-3100    15-3100    15-3100    15-3100   
                        #15-3100    15-3100    15-3100    15-3100    15-3100    15-3100    15-3100    15-3100    15-3100   
                         15-3100    15-3100   #15-3100    15-3100    15-3100    15-3100    15-3100    15-3100    15-3100   
                         15-3100    15-3100    15-3100    15-3100   #15-3400    15-3400   #15-3400    15-3400   #15-3400   
                         15-3400    15-3400   #15-3400    15-3400    15-3400    15-3400    15-3400    15-3400    15-3400   
                         15-3400    15-3400    15-3400    15-3400   #15-3400    15-3400    15-3400    15-3400    15-3400   
                         15-3400    15-3400    15-3400    15-3400    15-3400    15-3400   #15-3400    15-3400    15-3400   
                         15-3400    15-3400    15-3400    15-3400    15-3400    15-3400    15-3400    15-3400   #16-1100   
                         16-1100    16-1100   #16-1100    16-1100    16-1100    16-1100    16-1100    16-1100    16-1100   
                         16-1100    16-1100    16-1100    16-1100   #16-1100    16-1100    16-1100    16-1100    16-1100   
                         16-1100    16-1100    16-1100    16-1100    16-1100    16-1100   #16-1400    16-1400   #16-1400   
                         16-1400   #16-1400    16-1400   #16-1400    16-1400   #16-1400    16-1400   #16-1400    16-1400   
                        #16-1400    16-1400   #16-1400    16-1400    16-1400    16-1400    16-1400    16-1400    16-1400   
                         16-1400    16-1400    16-1400    16-1400   #16-1400    16-1400    16-1400    16-1400    16-1400   
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 7

SYMBOL CROSS REFERENCE                                  CREF         

SYMBOL	VALUE		REFERENCES

                         16-1400    16-1400    16-1400    16-1400    16-1400    16-1400   #16-1400    16-1400    16-1400   
                         16-1400    16-1400    16-1400    16-1400    16-1400    16-1400    16-1400    16-1400   #16-2200   
                         16-2200   #16-2200    16-2200   #16-2200    16-2200   #16-2200    16-2200    16-2200   #16-2200   
                         16-2200    16-2200    16-2200    16-2200    16-2200    16-2200    16-2200    16-2200    16-2200   
                         16-2200   #16-2200    16-2200    16-2200    16-2200    16-2200    16-2200    16-2200    16-2200   
                         16-2200    16-2200    16-2200   #16-2200    16-2200    16-2200    16-2200    16-2200    16-2200   
                         16-2200    16-2200    16-2200    16-2200    16-2200   #16-3400    16-3400   #16-3400    16-3400   
                        #16-3400    16-3400   #16-3400    16-3400    16-3400   #16-3400    16-3400    16-3400    16-3400   
                         16-3400    16-3400    16-3400    16-3400    16-3400    16-3400    16-3400   #16-3400    16-3400   
                         16-3400    16-3400    16-3400    16-3400    16-3400    16-3400    16-3400    16-3400    16-3400   
                        #16-3400    16-3400    16-3400    16-3400    16-3400    16-3400    16-3400    16-3400    16-3400   
                         16-3400    16-3400   #17-1400    17-1400   #17-1400    17-1400   #17-1400    17-1400   #17-1400   
                         17-1400    17-1400   #17-1400    17-1400    17-1400    17-1400    17-1400    17-1400    17-1400   
                         17-1400    17-1400    17-1400    17-1400   #17-1400    17-1400    17-1400    17-1400    17-1400   
                         17-1400    17-1400    17-1400    17-1400    17-1400    17-1400   #17-1400    17-1400    17-1400   
                         17-1400    17-1400    17-1400    17-1400    17-1400    17-1400    17-1400    17-1400   #18-5500   
                         18-5500    18-5500    18-5500    18-5500    18-5500    18-5500    18-5500    18-5500    18-5500   
                         18-5500   #18-7200    18-7200   #18-7200    18-7200   #18-7200    18-7200    18-7200   #18-7200   
                         18-7200    18-7200    18-7200    18-7200    18-7200    18-7200    18-7200    18-7200    18-7200   
                         18-7200   #18-7200    18-7200    18-7200    18-7200    18-7200    18-7200    18-7200    18-7200   
                         18-7200    18-7200    18-7200   #18-7200    18-7200    18-7200    18-7200    18-7200    18-7200   
                         18-7200    18-7200    18-7200    18-7200    18-7200   
$$$FLG	= 016630	#8-2500     8-2500    
$$$FMT	= 000000	#4-10200    4-10200   #4-10500    4-10500   
$$$LOC	= 000614 R	#4-10200   #4-10500   
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 8

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

ACCW$S		#3-700     #8-8300    
ALUN$S		#3-500     #6-900     #6-1000    #6-1100    #6-1200    #6-1300    
ASTX$S		#3-700     #8-3300    #10-3100   #13-1700   #19-1500   
CALL  		#3-600      6-1500     6-1600     6-1700     6-1900     6-2000     6-2100     6-2100     6-2100     6-2100    
                 6-2600     6-2800     6-2900     6-3200     6-4800     6-4900     7-900      7-900      7-1000     7-2200    
                 7-4300     7-4300     8-1800     8-2000     8-2600     8-5400     8-6100     8-6300     8-8400     8-8900    
                 9-1700     9-2800     10-1200    10-1300    10-2800    10-4500    11-700     11-900     11-1400    11-1800   
                 11-2400    11-5100    11-5900    11-5900    12-700     12-1000    13-1200    13-1400    14-600     14-700    
                 15-1800    15-2000    15-2000    15-2800    15-3100    15-3100    15-3500    16-1200    16-1500    16-2200   
                 16-2200    16-3000    16-3200    16-3400    16-3400    17-1400    17-1400    18-900     18-1800    18-5400   
                 18-6600    18-6800    18-7300    18-8000    19-1800    19-2000    20-1100    21-2100   
CHROUT		#3-11100   #9-1700    #10-2800   
CIRQUE		#3-14200   #4-13100   #4-13200   #4-13300   #4-13400   
CLEF$S		#3-600      6-2700    
CONB$$		#3-600      4-10200    4-10500   
CONW$S		#3-800      11-800     16-1400   
CON$S 		#3-800     
CTYWBT		#3-4200     7-900      7-4300     11-5900    15-2000    15-3100    16-2200    16-3400    17-1400   
DIR$  		#6-900      6-900     #6-1000     6-1000    #6-1100     6-1100    #6-1200     6-1200    #6-1300     6-1300    
                #6-1400     6-1400    #6-1800     6-1800    #6-2100     6-2100    #6-2500     6-2500    #6-2700     6-2700    
                #7-900      7-900     #7-2400     7-2400    #7-4300     7-4300    #8-2500     8-2500    #8-3300     8-3300    
                #8-5300     8-5300    #8-8300     8-8300    #8-8700     8-8700    #8-11700    8-11700   #9-1700     9-1700    
                #9-2800     9-2800    #10-2800    10-2800   #10-3100    10-3100   #10-4300    10-4300   #10-4500    10-4500   
                #11-600     11-600    #11-800     11-800    #11-1300    11-1300   #11-1700    11-1700   #11-2300    11-2300   
                #11-5000    11-5000   #11-5900    11-5900   #13-1300    13-1300   #13-1700    13-1700   #15-2000    15-2000   
                #15-3100    15-3100   #15-3400    15-3400   #16-1100    16-1100   #16-1400    16-1400   #16-2200    16-2200   
                #16-3400    16-3400   #17-1400    17-1400   #18-4600    18-4600   #18-4800    18-4800   #18-5500    18-5500   
                #18-5600    18-5600   #18-7200    18-7200   #19-1500    19-1500   #19-1900    19-1900   
DSAR$S		#3-500     #18-4600   #18-4600   
DSCW$S		#3-800     #11-5000   #16-1100   
EDIOUT		#3-2800     7-900      7-4300     11-5900    15-2000    15-3100    16-2200    16-3400    17-1400   
EMPTYQ		#3-23800    18-4700   
ENAR$S		#3-500     #3-900     #18-4800   
ERCALL		#3-6700    #6-1500    #6-1900    #6-2100    #6-2600    #6-2800    #7-900     #7-4300    #8-2600    #8-5400    
                #8-8400    #8-8900    #9-1700    #9-2800    #10-2800   #10-4500   #11-700    #11-900    #11-1400   #11-1800   
                #11-2400   #11-5100   #11-5900   #13-1200   #13-1400   #14-600    #15-2000   #15-3100   #15-3500   #16-1200   
                #16-1500   #16-2200   #16-3400   #17-1400   #18-6600   #18-7300   #19-1800   #19-2000   
ERJUMP		#3-6200    
EXIT$S		#3-600     
GETELE		#3-22000   #6-3000    #9-1400    #9-2500    #10-2400   #10-3700   #12-800    
GLNW$S		#3-600     #11-600    
GNDW$S		#3-500      8-2500    
IHAR$S		#3-900      18-4600   
INCTYP		#3-21300   #8-11600   #13-1100   #14-500    #18-6500   #19-1700   
INSRTQ		#3-17100   #8-11600   #13-1100   #14-500    #18-6500   #19-1700   
IOCHK 		#3-5100    #6-1600    
MOV$  		#6-900      6-900      6-900      6-900     #6-1000     6-1000     6-1000     6-1000    #6-1100     6-1100    
                 6-1100     6-1100    #6-1200     6-1200     6-1200     6-1200    #6-1300     6-1300     6-1300     6-1300    
                #6-1400     6-1400    #6-1400     6-1400     6-1400    #6-1400     6-1400     6-1400    #6-1800     6-1800    
                #6-1800     6-1800     6-1800    #6-1800     6-1800     6-1800    #6-2100     6-2100    #6-2100     6-2100    
                 6-2100    #6-2100     6-2100     6-2100    #6-2500     6-2500    #6-2700     6-2700    #7-900      7-900     
                 7-900      7-900     #7-900      7-900      7-900     #7-900      7-900      7-900     #7-2400     7-2400    
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 9

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

                 7-2400     7-2400    #7-2400     7-2400     7-2400    #7-2400     7-2400     7-2400    #7-4300     7-4300    
                 7-4300     7-4300    #7-4300     7-4300     7-4300    #7-4300     7-4300     7-4300    #8-2500     8-2500    
                 8-2500    #8-2500     8-2500     8-2500    #8-2500     8-2500     8-2500    #8-5300     8-5300     8-5300    
                 8-5300     8-5300     8-5300     8-5300    #8-5300     8-5300     8-5300    #8-5300     8-5300     8-5300    
                #8-8300     8-8300     8-8300     8-8300     8-8300     8-8300     8-8300    #8-8300     8-8300     8-8300    
                #8-8300     8-8300     8-8300    #8-8700     8-8700     8-8700    #8-8700     8-8700     8-8700    #8-8700    
                 8-8700     8-8700    #8-11700    8-11700   #9-1700     9-1700     9-1700     9-1700    #9-1700     9-1700    
                 9-1700    #9-1700     9-1700     9-1700    #9-2800     9-2800     9-2800     9-2800    #9-2800     9-2800    
                 9-2800    #9-2800     9-2800     9-2800    #10-2800    10-2800    10-2800    10-2800   #10-2800    10-2800   
                 10-2800   #10-2800    10-2800    10-2800   #10-4300    10-4300   #10-4500    10-4500    10-4500    10-4500   
                #10-4500    10-4500    10-4500   #10-4500    10-4500    10-4500   #11-600     11-600     11-600    #11-600    
                 11-600     11-600    #11-600     11-600     11-600    #11-800     11-800     11-800     11-800     11-800    
                 11-800     11-800    #11-800     11-800     11-800    #11-800     11-800     11-800    #11-1300    11-1300   
                 11-1300   #11-1300    11-1300    11-1300   #11-1300    11-1300    11-1300   #11-1700    11-1700    11-1700   
                #11-1700    11-1700    11-1700   #11-1700    11-1700    11-1700   #11-2300    11-2300    11-2300   #11-2300   
                 11-2300    11-2300   #11-2300    11-2300    11-2300   #11-5000    11-5000    11-5000   #11-5000    11-5000   
                 11-5000   #11-5900    11-5900    11-5900    11-5900   #11-5900    11-5900    11-5900   #11-5900    11-5900   
                 11-5900   #13-1300    13-1300   #15-2000    15-2000    15-2000    15-2000   #15-2000    15-2000    15-2000   
                #15-2000    15-2000    15-2000   #15-3100    15-3100    15-3100    15-3100   #15-3100    15-3100    15-3100   
                #15-3100    15-3100    15-3100   #15-3400    15-3400    15-3400   #15-3400    15-3400    15-3400   #15-3400   
                 15-3400    15-3400   #16-1100    16-1100    16-1100   #16-1100    16-1100    16-1100   #16-1400    16-1400   
                 16-1400    16-1400    16-1400    16-1400    16-1400   #16-1400    16-1400    16-1400   #16-1400    16-1400   
                 16-1400   #16-2200    16-2200    16-2200    16-2200   #16-2200    16-2200    16-2200   #16-2200    16-2200   
                 16-2200   #16-3400    16-3400    16-3400    16-3400   #16-3400    16-3400    16-3400   #16-3400    16-3400   
                 16-3400   #17-1400    17-1400    17-1400    17-1400   #17-1400    17-1400    17-1400   #17-1400    17-1400   
                 17-1400   #18-5500    18-5500    18-5500    18-5500    18-5500   #18-5600    18-5600   #18-7200    18-7200   
                 18-7200   #18-7200    18-7200    18-7200   #18-7200    18-7200    18-7200   #19-1900    19-1900   
MRKT$S		#3-900      18-5500   
MVB$  		#6-1400     6-1400    #6-1800     6-1800    #6-2100     6-2100    #7-900      7-900     #7-2400     7-2400    
                #7-4300     7-4300    #8-2500     8-2500    #8-5300     8-5300    #8-8300     8-8300    #8-8700     8-8700    
                #9-1700     9-1700    #9-2800     9-2800    #10-2800    10-2800   #10-4500    10-4500   #11-600     11-600    
                #11-800     11-800    #11-1300    11-1300   #11-1700    11-1700   #11-2300    11-2300   #11-5000    11-5000   
                #11-5900    11-5900   #15-2000    15-2000   #15-3100    15-3100   #15-3400    15-3400   #16-1100    16-1100   
                #16-1400    16-1400   #16-2200    16-2200   #16-3400    16-3400   #17-1400    17-1400   #18-7200    18-7200   
NCHROT		#3-11800    9-2800     10-4500   
NETDF$		#3-700     #3-1300    
NRJERR		#5-4900     5-6000     5-6100     5-6200     5-6300     5-6400     5-6500     5-6600     5-6700     5-6800    
                 5-6900    
OPNW$S		#3-500     #6-1400    
POP   		#3-8500     7-4400     8-1900     8-3200     8-5900     8-6200     8-6400     8-8200     10-2900    11-4400   
                 13-1500    16-2300    19-1300    21-2000   
PUSH  		#3-7500     6-1600     7-3400     8-900      8-2300     8-4600     8-6700     8-7200     8-10100    10-600    
                 11-4100    13-900     16-2100    19-700     21-1300   
QDPB$S		#6-1400     6-1400    #6-1800     6-1800    #6-2100     6-2100    #7-900      7-900     #7-2400     7-2400    
                #7-4300     7-4300    #8-2500     8-2500    #8-5300     8-5300    #8-8300     8-8300    #8-8700     8-8700    
                #9-1700     9-1700    #9-2800     9-2800    #10-2800    10-2800   #10-4500    10-4500   #11-600     11-600    
                #11-800     11-800    #11-1300    11-1300   #11-1700    11-1700   #11-2300    11-2300   #11-5000    11-5000   
                #11-5900    11-5900   #15-2000    15-2000   #15-3100    15-3100   #15-3400    15-3400   #16-1100    16-1100   
                #16-1400    16-1400   #16-2200    16-2200   #16-3400    16-3400   #17-1400    17-1400   #18-7200    18-7200   
QIOW$S		#3-600     #6-2100    #7-900     #7-2400    #7-4300    #11-5900   #15-2000   #15-3100   #16-2200   #16-3400   
                #17-1400   
QIO$S 		#3-900     #9-1700    #9-2800    #10-2800   #10-4500   
POSI       CREATED BY  MACRO  ON 13-OCT-79 AT 13:14	PAGE 10

MACRO CROSS REFERENCE                                   CREF         

MACRO NAME	REFERENCES

RECW$S		#3-800     #11-1700   #11-2300   
REC$S 		#3-800     #8-8700    #18-7200   
REJW$S		#3-700     #8-5300    
REMOVQ		#3-19300    6-3000     9-1400     9-2500     10-2400    10-3700    12-800    
RETURN		#3-600     #7-4500    #9-1800    #9-3200    #11-6800   #12-1200   #14-800    #15-4300   #16-4000   #17-1500   
                #18-8100   #20-1700   #21-2300   
RVP$  		#6-1400    #6-1400    #6-1400    #6-1400    #6-1800    #6-1800    #6-1800    #6-1800    #6-2100    #6-2100    
                #6-2100    #6-2100    #7-900     #7-900     #7-900     #7-900     #7-2400    #7-2400    #7-2400    #7-2400    
                #7-4300    #7-4300    #7-4300    #7-4300    #8-2500    #8-2500    #8-2500    #8-2500    #8-5300    #8-5300    
                #8-5300    #8-5300    #8-8300    #8-8300    #8-8300    #8-8300    #8-8700    #8-8700    #8-8700    #8-8700    
                #9-1700    #9-1700    #9-1700    #9-1700    #9-2800    #9-2800    #9-2800    #9-2800    #10-2800   #10-2800   
                #10-2800   #10-2800   #10-4500   #10-4500   #10-4500   #10-4500   #11-600    #11-600    #11-600    #11-600    
                #11-800    #11-800    #11-800    #11-800    #11-1300   #11-1300   #11-1300   #11-1300   #11-1700   #11-1700   
                #11-1700   #11-1700   #11-2300   #11-2300   #11-2300   #11-2300   #11-5000   #11-5000   #11-5000   #11-5900   
                #11-5900   #11-5900   #11-5900   #15-2000   #15-2000   #15-2000   #15-2000   #15-3100   #15-3100   #15-3100   
                #15-3100   #15-3400   #15-3400   #15-3400   #15-3400   #16-1100   #16-1100   #16-1100   #16-1400   #16-1400   
                #16-1400   #16-1400   #16-2200   #16-2200   #16-2200   #16-2200   #16-3400   #16-3400   #16-3400   #16-3400   
                #17-1400   #17-1400   #17-1400   #17-1400   #18-5500   #18-5500   #18-7200   #18-7200   #18-7200   #18-7200   
SETELE		#3-22700    8-11600    13-1100    14-500     18-6500    19-1700   
SETF$S		#3-900     #8-11700   #10-4300   #13-1300   #19-1900   
SNDW$S		#3-800      11-1300    15-3400   
SPAW$S		#3-500      6-1800    
STRTCI		#3-9700    #6-2100    
WTSE$S		#3-500      6-2500     18-5600   
$CON$S		#8-5300    #8-5300    #8-8300    #8-8300    #11-800    #11-800    #16-1400   #16-1400   
$GNDF$		#8-2500     8-2500