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