Trailing-Edge
-
PDP-10 Archives
-
bb-m403a-bk
-
vb1445.lst
There are no other files named vb1445.lst in the archive.
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13
TABLE OF CONTENTS
8- 316 LOW CORE -- TRAP VECTORS
9- 430 LOW CORE -- COMMON GLOBAL DATA
10- 550 LOW CORE -- KLINIK DATA BASE
11- 584 LOW CORE -- COMMIUNICATIONS REGION DATA BASE
12- 619 LOW CORE -- QUEUED PROTOCOL DATA BASE
13- 725 LOW CORE -- KEEP-ALIVE DATA BASE
14- 739 LOW CORE -- CORE MANAGER DATA BASE
15- 775 LOW CORE -- CLOCK REQUEST LIST
17- 816 LOW CORE -- TERMINAL SERVICE DATA BASE
18- 874 LOW CORE -- PDP-11 CTY SERVICE DATA BASE
19- 889 LOW CORE -- TERMINAL DRIVER DATA BASE
20- 909 LOW CORE -- DATA LINE SCANNER DATA BASE
21- 939 LOW CORE -- DH-11 DATA BASE
31- 1012 LOW CORE -- FLOPPY DRIVER DATA BASE
32- 1028 LOW CORE -- DISC DRIVER DATA BASE
33- 1047 LOW CORE -- FE DRIVER DATA BASE
34- 1086 LOW CORE -- CD-11 DRIVER DATA BASE
35- 1131 LOW CORE -- LP-20 DRIVER DATA BASE
36- 1218 LOW CORE -- STD (SYSTEM TASK DIRECTORY)
37- 1340 LOW CORE -- ATL (ACTIVE TASK LIST)
38- 1403 LOW CORE -- TPD (TASK PARTITION DIRECTORY)
39- 1464 LOW CORE -- DEVICE QUEUE POINTERS
40- 1517 LOW CORE -- LOGICAL UNIT TABLES
41- 1631 LOW CORE -- KL10 HARDWARE ENVIRONMENT DATA
42- 1659 LOW CORE -- INITLM (INITIALIZATION)
43- 1688 LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS
44- 1808 LOW CORE -- CRASH ROUTINE
45- 1895 LOW CORE -- I/O PAGE SNAPSHOT
46- 1945 EXEC MODULE ONE -- TITLE PAGE
47- 2002 EXEC MODULE ONE -- SYSTEM NOTES
48- 2057 EXEC MODULE ONE -- GLOSSARY
48- 2082 MACRO CALLS (MCALL)
49- 2094 EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
65- 2676 EXEC MODULE ONE -- NUL TASK
67- 2765 EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
68- 3031 EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
75- 3422 EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
80- 3833 SECONDARY PROTOCOL -- COPYRIGHT STATEMENT
81- 3896 SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
82- 4138 POWERFAIL HANDLER -- COPYRIGHT STATEMENT
83- 4189 POWERFAIL -- POWER DOWN
84- 4274 POWERFAIL -- POWER UP ENTRY
85- 4323 POWERFAIL -- POWER FAIL RESTART
86- 4391 DTE DIRECTIVES -- COPYRIGHT STATEMENT
87- 4447 DTE20 EMT DISPATCH DECODER
88- 4526 $DORBL -- RING THE KL-10 DOORBELL
89- 4557 $DTEOF -- TURN THE DTE20 OFF
90- 4593 $DTEON -- TURN THE DTE20 ON
91- 4720 $DPMYG -- DEPOSIT INTO MY GENERAL SECTION
92- 4767 $EXMYG -- EXAMINE MY GENERAL SECTION
93- 4803 $EXMYN -- EXAMINE MY SECTION FOR PROCESSOR N
94- 4837 $DPMYN -- DEPOSIT INTO MY SECTION FOR COMM WITH PROCESSOR N
95- 4871 $EXHSG -- EXAMINE HIS GENERAL COMMUNICATION SECTION
96- 4906 $EXHSM -- EXAMINE HIS SECTION FOR COMMUNICATING WITH ME
97- 4940 $KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION
98- 5037 $PRVDP -- PRIVILEDGED DEPOSIT
99- 5068 $PRVEX -- PRIVILEDGED EXAMINE
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13
TABLE OF CONTENTS
100- 5107 $RWDRG -- READ/WRITE DIAGNOSTIC REGISTER
101- 5146 CESCHK -- CHECK FOR CLOCK ERROR STOP
102- 5167 ASIGN LUN -- COPYRIGHT STATEMENT
103- 5204 DIRECTIVE -- ASSIGN LUN
104- 5309 GET LUN INFO -- COPYRIGHT STATEMENT
105- 5345 DIRECTIVE -- GET LUN INFORMATION
106- 5412 GET TIME PARAMETERS -- COPYRIGHT STATEMENT
107- 5448 DIRECTIVE -- GET TIME PARAMETERS
108- 5519 SIGNIFICANT EVENT DIRECTIVES -- COPYRIGHT STATEMENT
109- 5561 DIRECTIVE -- CLEAR EVENT FLAG
110- 5611 DIRECTIVE -- SET EVENT FLAG
111- 5661 DIRECTIVE -- DECLARE SIGNIFICANT EVENT
112- 5722 DIRECTIVE -- READ EVENT FLAG
113- 5770 DIRECTIVE -- READ ALL EVENT FLAGS
114- 5813 DIRECTIVE -- WAITFOR SINGLE EVENT FLAG
115- 5876 DIRECTIVE -- WAITFOR LOGICAL 'OR' OF FLAGS
116- 5968 DIRECTIVE -- WAITFOR NEXT SIGNIFICANT EVENT
117- 6004 MARK TIME -- COPYRIGHT STATEMENT
118- 6040 DIRECTIVE -- MARK TIME
119- 6139 CANCEL MARK TIME -- COPYRIGHT STATEMENT
120- 6176 DIRECTIVE -- CANCEL MARK-TIME REQUESTS
121- 6236 EXIT -- COPYRIGHT STATEMENT
122- 6273 DIRECTIVE -- TASK EXIT
123- 6316 QUEUE I/O -- COPYRIGHT STATEMENT
124- 6354 DIRECTIVE -- QUEUE I/O
125- 6681 SEND AND RECEIVE -- COPYRIGT STATEMENT
126- 6722 DIRECTIVE -- SEND DATA
127- 6778 DIRECTIVE -- SEND AND REQUEST OR RESUME
129- 6999 DIRECTIVE -- RECEIVE DATA
130- 7036 DIRECTIVE -- RECEIVE DATA OR EXIT
131- 7077 DIRECTIVE -- RECEIVE DATA OR SUSPEND
132- 7218 SPECIFY SST TABLE -- COPYRIGHT STATEMENT
133- 7254 DIRECTIVE -- SPECIFY SST VECTOR TABLE FOR TASK
134- 7307 SPECIFY AST SERVICE -- COPYRIGHT STATEMENT
135- 7343 DIRECTIVE -- SPECIFY POWER FAIL AST
136- 7399 REQUEST AND EXECUTE -- COPYRIGHT STATEMENT
137- 7435 DIRECTIVE -- TASK SCHEDULING -- REQUEST
138- 7559 GET TASK PARAMETERS -- COPYRIGHT STATEMENT
139- 7595 DIRECTIVE -- GET TASK PARAMETERS
140- 7683 GET PARTITION PARAMETERS -- COPYRIGHT STATEMENT
141- 7720 DIRECTIVE -- GET PARTITION PARAMETERS
142- 7819 CLOCK HANDLER -- COPYRIGHT STATEMENT
143- 7861 CLOCK TICK RECOGNITION
144- 7925 QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT
147- 8120 QUEUED PROTOCOL DRIVER -- PROTOCOL PACKET SERVICE DISPATCH
148- 8159 QUEUED PROTOCOL DRIVER -- DISPATCH TABLE
149- 8196 QUEUED PROTOCOL DRIVER -- UNRECOGNIZED FUNCTION
150- 8206 QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE REMOTE TERMINALS
151- 8217 QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALL AND XOFF PROCESSING
152- 8230 QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALLS
153- 8251 QUEUED PROTOCOL DRIVER -- HANGUP
154- 8297 QUEUED PROTOCOL DRIVER -- ACKNOWLEDGE DEVICE
155- 8309 QUEUED PROTOCOL DRIVER -- SET LINE ALLOCATION
156- 8323 QUEUED PROTOCOL DRIVER -- SET LINE SPEED
157- 8379 QUEUED PROTOCOL DRIVER -- STOP LINE INPUT
158- 8410 QUEUED PROTOCOL DRIVER -- BREAK-THROUGH WRITE
159- 8427 QUEUED PROTOCOL DRIVER -- XOFF
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13
TABLE OF CONTENTS
160- 8455 QUEUED PROTOCOL DRIVER -- XON
161- 8487 QUEUED PROTOCOL DRIVER -- HERE IS INITIAL STATUS
162- 8528 QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
163- 8543 QUEUED PROTOCOL DRIVER -- STRING DATA
164- 8576 QUEUED PROTOCOL DRIVER -- LINE NUMBER - CHARACTER
165- 8621 QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
166- 8645 QUEUED PROTOCOL DRIVER -- FLUSH DEVICE OUTPUT QUEUE
167- 8664 QUEUED PROTOCOL DRIVER -- RECIEVE KLINIK PARAMETERS
168- 8684 QUEUED PROTOCOL DRIVER -- SET/CLEAR HOST DEBUG MODE
169- 8699 QUEUED PROTOCOL DRIVER -- SENDALL
170- 8848 QUEUED PROTOCOL DRIVER -- COPY BUFFER
171- 8892 QUEUED PROTOCOL DRIVER -- MAP DH-11 TO DM-11
172- 8921 QUEUED PROTOCOL DRIVER -- FIND LINE SPEED
173- 8954 QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
174- 8989 QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
175- 9078 DTE-20 DRIVER -- COPYRIGHT STATEMENT
176- 9122 DTE-20 DRIVER -- DTE-20 INTERRUPT HEAD
177- 9198 DTE-20 DRIVER -- TO-10 DONE SERVICE
178- 9302 DTE-20 DRIVER -- TO-11 DONE SERVICE
179- 9418 DTE-20 DRIVER -- DOORBELL SERVICE
180- 9555 DTE-20 DRIVER -- START TO ELEVEN DIRECT TRANSFER
181- 9623 DTE-20 DRIVER -- START TO ELEVEN INDIRECT TRANSFER
182- 9693 DTE-20 DRIVER -- UPDATE AND TRANSMIT FRONT-END KEEP-ALIVE COUNT
183- 9728 DTE-20 DRIVER -- START TO TEN QUEUE
184- 9789 DTE-20 DRIVER -- SEND STATUS TO TEN
185- 9824 DTE-20 DRIVER -- GET A BUFFER FOR INCOMING TRANSFER
186- 9875 DTE-20 DRIVER -- START BYTE TRANSFER
187- 9901 DTE-20 DRIVER -- LOAD TO-11 QUEUE NODE
188- 9927 TERMINAL DRIVER -- COPYRIGHT STATEMENT
189-10051 TERMINAL DRIVER -- DEFINITIONS
192-10270 TERMINAL DRIVER -- TTINI (TTY QUEUE SERVICE)
193-10310 TERMINAL DRIVER -- TIMEOUT SERVICE
194-10329 TERMINAL DRIVER -- ACK ALL SERVICE
195-10346 TERMINAL DRIVER -- QUEUED PROTOCOL KEEP-ALIVE SERVICE
196-10436 TERMINAL DRIVER -- GENERAL ERROR LOGGING
197-10449 TERMINAL DRIVER -- CTY SERVICE
198-10497 TERMINAL DRIVER -- CTY I/O DONE SERVICE
199-10511 TERMINAL DRIVER -- CTY INPUT SERVICE
200-10528 TERMINAL DRIVER -- CTY OUTPUT SERVICE
201-10557 TERMINAL DRIVER -- $DHOUT (DH-11 OUTPUT INTERRUPT)
202-10600 TERMINAL DRIVER -- STTYDN (REMOVE PROCESSED OUTPUT NODE)
204-10671 TERMINAL DRIVER -- STNXT (START NEXT OUTPUT OPERATION)
205-10718 TERMINAL DRIVER -- .DHSTO (START DH-11 OUTPUT)
206-10747 TERMINAL DRIVER -- $TTOUT (DL11 OUTPUT INTERRUPT)
207-10778 TERMINAL DRIVER -- .DLSTO (START DL-11 OUTPUT)
208-10805 TERMINAL DRIVER -- .TTACK (ACKNOWLEDGE A TTY LINE)
209-10852 TERMINAL DRIVER -- OUTPT3 (PDP-11 CTY OUTPUT ROUTINES)
210-10930 TERMINAL DRIVER -- INPTT (PDP-11 CTY INPUT ROUTINES)
211-10965 TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)
212-11081 TERMINAL DRIVER -- .KW11S (KW11 LINE CLOCK INTERRUPT)
213-11143 TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)
215-11315 TERMINAL DRIVER -- $TTINP (DL-11 INPUT INTERRUPT)
216-11348 TERMINAL DRIVER -- TTSTCH (STORE CHARACTER IN TO10Q)
217-11449 TERMINAL DRIVER -- .DLINT (DL-11E DATASET INTERRUPT SERVICE)
218-11504 TERMINAL DRIVER -- TTCTY (CTY SERVICE)
219-11651 TERMINAL DRIVER -- DHSAV (DH-11 REGISTER SAVE/RESTORE CO-ROUTINE)
220-11710 TERMINAL DRIVER -- .STDHL (SET UP DH-11 LINE NUMBER IN CONTROLLER)
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13
TABLE OF CONTENTS
221-11744 TERMINAL DRIVER -- .DHSPR (RESET TO DEFAULT AUTO-BAUD SPEED)
222-11775 TERMINAL DRIVER -- .DHSPF (FLAG AUTO-BAUD REPORT)
223-11804 TERMINAL DRIVER -- .DHSPD (SET LINE SPEED)
224-11846 TERMINAL DRIVER -- $DMINT (DM-11/BB MODEM CONTROL INTERRUPT)
225-11953 TERMINAL DRIVER -- .STTYD (DIALUP/HANGUP SERVICE)
226-11997 TERMINAL DRIVER -- .DMHUP (DM-11/BB HANGUP)
227-12026 TERMINAL DRIVER -- .STPDM (STOP DM-11/BB SCAN)
228-12055 TERMINAL DRIVER -- .DLHUP (DL-11E HANGUP)
229-12107 TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)
230-12243 TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)
231-12416 TERMINAL DRIVER -- .DMTMO (DM-11/BB MODEM CONTROL TIMEOUT)
232-12512 TERMINAL DRIVER -- .TTFDI (INPUT CONTROL SERVICE)
233-12550 TERMINAL DRIVER -- .TTERL (TERMINAL ERROR LOGGING)
234-12607 TERMINAL DRIVER -- .TTXOF (DEVICE DEPENDENT XOFF PROCESSING)
235-12659 TERMINAL DRIVER -- .TTSTP (STOP TERMINAL OUTPUT)
236-12684 TERMINAL DRIVER -- .TTXON (DEVICE DEPENDENT XON PROCESSING)
237-12751 TERMINAL DRIVER -- .TTRST (RESET A TERMINAL LINE)
238-12794 TERMINAL DRIVER -- CHECK INPUT XOFF DELAY
239-12822 TERMINAL DRIVER -- .TTICK (INPUT BUFFER CHECKS)
240-12857 TERMINAL DRIVER -- .TTQDS (QUEUED PROTOCOL INPUT DISABLE SERVICE)
241-12902 TERMINAL DRIVER -- .TTIXC (INPUT CONTROL CHECKS)
242-12935 TERMINAL DRIVER -- .TTDIS (DISABLE INPUT FROM LINE)
243-13015 TERMINAL DRIVER -- .TTENB (ENABLE INPUT FOR LINE)
244-13082 TERMINAL DRIVER -- .TTBTW (BREAK-THROUGH WRITE FUNCTION)
245-13138 TERMINAL DRIVER -- BLDPKT (BUILD A TERMINAL PACKET)
246-13174 TERMINAL DRIVER -- .TTSW2 (FIND OFFSET INTO "STSW2" TABLE)
247-13196 TERMINAL DRIVER -- .TFXON (FORCE AN XON FOR A LINE)
249-13238 SYSTEM COMMON SUBROUTINES -- COPYRIGHT STATEMENT
251-13324 SCOMM MODULE -- BITTBL (ASH/BIC/BIS SIMULATION)
252-13344 SCOMM MODULE -- .CEFN (CONVERT EFN)
253-13415 SCOMM MODULE -- .CKDEL (CLOCK DELETE)
255-13497 SCOMM MODULE -- ..ERLG (ERROR LOGGING)
256-13551 SCOMM MODULE -- ..IODN (SUBROUTINE TO COMPLETE I/O)
257-13607 SCOMM MODULE -- ..DQRN (DEQUEUE A NORMAL REQUEST)
258-13725 SCOMM MODULE -- ..SEFN (SET EVENT FLAG)
259-13766 SCOMM MODULE -- ..DSEV (DECLARE SIGNIFICANT EVENT)
260-13784 SCOMM MODULE -- DIV216 (DIV R2 BY 16)
261-13812 SCOMM MODULE -- ..NDEL (NODE DELETE)
262-13839 SCOMM MODULE -- ..IPRI (INSERT NODE BY PRIORITY)
263-13878 SCOMM MODULE -- ..NADD (NODE ADD)
264-13907 SCOMM MODULE -- ..PICK (PICK A NODE)
265-13952 SCOMM MODULE -- ..ENB0 (ENABLE TASK SWITCHING)
266-13995 SCOMM MODULE -- ..FSTD (FIND STD ENTRY)
267-14046 SCOMM MODULE -- ..ALCB/..ALC2 (ALLOCATE CORE)
268-14138 SCOMM MODULE -- ..DECB/..DECN/..DEC2 (DEALLOCATE CORE)
269-14235 SCOMM MODULE -- ..ALOW (ALLOCATE OR WAIT)
270-14256 SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)
271-14387 SCOMM MODULE -- ..STPT (STOP TTY)
272-14465 SCOMM MODULE -- ..STCH (STORE CHARACTER IN TO 10 QUEUE)
273-14506 SCOMM MODULE -- ..SACK (SEND ACKNOWLEDGEMENT)
274-14553 SCOMM MODULE -- ..STFC (STORE FUNCTION)
275-14609 SCOMM MODULE -- ..STIN (START INDIRECT FUNCTION)
276-14690 SCOMM MODULE -- ..STQ (STORE IN TO 10 QUEUE)
277-14756 SCOMM MODULE -- ..WFED (WAIT FOR EXAMINE/DEPOSIT)
279-14993 SCOMM MODULE -- ..SWED (START AND WAIT FOR EXAMINE/DEPOSIT)
280-15046 SCOMM MODULE -- ..DTSP (STOP DTE PROTOCOLS)
281-15071 SCOMM MODULE -- ..DTP2 (START SECONDARY PROTOCOL)
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13
TABLE OF CONTENTS
282-15098 SCOMM MODULE -- ..DTP1 (START PRIMARY PROTOCOL)
283-15124 SCOMM MODULE -- ..VXFR (VALADATE TRANSFER)
284-15278 SCOMM MODULE -- ..BLXO (BLOCK OUTPUT) ..BLXI (BLOCK INPUT)
285-15375 SCOMM MODULE -- ..VTOL (MAP VIRTUAL TO LOGICAL BLOCK, EXTERNAL)
286-15460 SCOMM MODULE -- ..VVLL (MAP VIRTUAL TO LOGICAL BLOCK, INTERNAL)
288-15561 END
RSXFC -- RSX20F PARAMETER FIL MACRO M1113 11-NOV-81 11:13 PAGE 1
1 .TITLE RSXFC -- RSX20F PARAMETER FILE (TOPS-20 SYSTEM DEFINITION)
2 .IDENT /013100/
3 ;
4 ; COPYRIGHT (C) 1977, 1978 BY
5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6 ;
7 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
8 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
9 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
10 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
11 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
12 ;
13 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
14 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
15 ; CORPORATION.
16 ;
17 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
18 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
19 ;
20 ; VERSION 13-10
21 ;
22 ; ALAN D. PECKHAM 19-APR-77
23 ;
24 ; MODIFIED BY:
25 ;
26 ; R. BELANGER -- ELIMINATE 1090T "ARPA" CONFIGURATTION
27 ; R. BELANGER -- ADD 1091 CONFIGURATION
28 ;
29 ; FUNCTION: THIS MODULE PROVIDES THE PARAMETERS FOR ASSEMBLY OF RSX20F FOR
30 ; THE TOPS-20 SYSTEM.
31 ;
32 ; EQUATED SYMBOLS
33 ;
34 000001 $TOP20 =1 ; DEFINE TOPS-20 OPTION
35
36 000001 $LP20 =1 ; INCLUDE LP20 DRIVER
37 000002 L$$P20 =2 ; INCLUDE 2 LP-20'S
38 000001 $CD11 =1 ; INCLUDE CD11 CARD READER DRIVER
39 000001 $RP04 =1 ; INCLUDE RP04 DISK DRIVER
40 000001 $FE =1 ; INCLUDE FE PSEUDO-DEVICE DRIVER
41 000001 $F11 =1 ; INCLUDE FILES-11 ACP
42 000001 $DH11 =1 ; INCLUDE DH11 DRIVER
43 000010 D$$H11 =8. ; INCLUDE 8 DH-11'S
44 000001 $DBDTE =1 ; INCLUDE DTE20 DEBUGGING CODE
45 000001 $DTE =1 ; INCLUDE DTE20 DTE DRIVER
46 000001 R$$11D =1 ; RSX-11D BASE
47
48 .IF DF $T1091
49 $TOP10 =1 ; DEFINE TOPS-10 BASE FOR 1091
50 .ENDC ; $T1091
51
52 .IF DF $TOP10
53 .IF NDF $T1091
54 $DTA =1 ; INCLUDE DECTAPE DRIVER FOR TOPS-10
55 .IFF
56 $RX11 =1 ; INCLUDE FLOPPY DRIVER FOR TOPS-10/1091
57 .ENDC ; $T1091
RSXFC -- RSX20F PARAMETER FIL MACRO M1113 11-NOV-81 11:13 PAGE 1-1
58 .ENDC ; $TOP10
59
60 .IF DF $TOP20
61 000001 $RX11 =1 ; INCLUDE FLOPPY DRIVER
62 .ENDC ; $TOP20
RSX20F -- RESIDENT EXECUTIVE ( MACRO M1113 11-NOV-81 11:13 PAGE 2
64 .TITLE RSX20F -- RESIDENT EXECUTIVE (SYSTEM DEFINITION)
65 .IDENT /014450/
66 .ENABL AMA
67 .LIST MEB
68 .NLIST CND
69 ;
70 ; COPYRIGHT (C) 1975, 1978 BY
71 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
72 ;
73 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
74 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
75 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
76 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
77 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
78 ;
79 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
80 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
81 ; CORPORATION.
82 ;
83 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
84 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
85 ;
86 ; R. MCLEAN 19-MAR-75
87 ;
88 ; VERSION 14-45
89 ;
90 ; MODIFIED BY:
91 ;
RSX20F -- RESIDENT EXECUTIVE ( MACRO M1113 11-NOV-81 11:13 PAGE 3
93 ;
94 ; SET VERSION OF RSX20F EXEC HERE
95 ;
96 000014 RSX$$V = 14 ; VERSION 14
97 000045 RSX$$E = 45 ; EDIT 45
98 ;
99 ; RELEASE VERSION
100 ;
101 000126 RSX$$K = 'V ; KEY FOR RELEASE-TYPE
102 ; "V" -- RELEASE
103 ; "X" -- EXPERIMENTAL
104 ; "Y" -- FIELD/LOAD TEST
105 000000 RSX$$F = 0 ; DEFINE FORM AS NULL
114 000102 RSX$$F = 'B ; TOPS-20 FORM OF THE EXEC.
119 ;
120 ; DTE-20 REGISTER OFFSETS
121 ;
122 000036 DAG3 =36
123 000034 STATD =34
124 000032 DAG2 =32
125 000030 DAG1 =30
126 000022 T11AD =22
127 000020 T10AD =20
128 000016 T11BC =16
129 000010 TNAD1 =10
130 000012 TNAD2 =12
131 000006 DXWD1 =6
132 000004 DXWD2 =4
133 000002 DXWD3 =2
RSX20F -- RESIDENT EXECUTIVE ( MACRO M1113 11-NOV-81 11:13 PAGE 4
135 ;+
136 ; MACRO TO SET IDENT FOR EXEC MODULES.
137 ; FORMAT OF CALL IS:
138 ; IDENT$ VERSION,EDIT
139 ; OR
140 ; IDENT$ VERSION,EDIT,RSX$$F
141 ; IF MODULE CODING CHANGES WITH DIFFERENT FORMS
142 ;-
143
144 .MACRO IDENT$ VER,EDT,FRM,NUM
145 .IF B,NUM
146 .IF B,FRM
147 IDENT$ \VER,\EDT,0,0
148 .IFF
149 .IF EQ,<FRM-'A>
150 IDENT$ \VER,\EDT,A,0
151 .IFF
152 .IF EQ,<FRM-'B>
153 IDENT$ \VER,\EDT,B,0
154 .IFF
155 IDENT$ \VER,\EDT,E,0
156 .ENDC
157 .ENDC
158 .ENDC
159 .MEXIT
160 .IFF
161 .IF GE,VER-10
162 .IF GE,EDT-10
163 .LIST
164 .IDENT /'FRM'VER'EDT'0/
165 .NLIST
166 .IFF
167 .LIST
168 .IDENT /'FRM'VER'0'EDT'0/
169 .NLIST
170 .ENDC
171 .IFF
172 .IF GE,EDT-10
173 .LIST
174 .IDENT /'FRM'0'VER'EDT'0/
175 .NLIST
176 .IFF
177 .LIST
178 .IDENT /'FRM'0'VER'0'EDT'0/
179 .NLIST
180 .ENDC
181 .ENDC
182 .ENDC
183 .ENDM IDENT$
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 6
186 .TITLE LC -- LOW CORE FOR RSX20F
187 000000 IDENT$ RSX$$V,RSX$$E,RSX$$F
.IDENT /B14450/
188 ;
189 ;
190 ; COPYRIGHT (C) 1975, 1978 BY
191 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
192 ;
193 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
194 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
195 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
196 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
197 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
198 ;
199 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
200 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
201 ; CORPORATION.
202 ;
203 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
204 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
205 ;
206 ; MODULE: LOW CORE
207 ;
208 ; VERSION: 14-36
209 ;
210 ; AUTHOR: R. MCLEAN
211 ;
212 ; DATE: 19 JUL 75
213 ;
214 ;
215 ; THIS MODULE CONTAINS:
216 ;
217 ; 1 -- CODE TO SERVICE LOW CORE TRAPS AND ERRORS
218 ; 2 -- TRAP VECTORS
219 ; 3 -- SYSTEM COMMON DATABASE
220 ; 4 -- INITIALIZATION CODE
221 ; 5 -- PATCH SPACE
222 ;
223 ; MODIFICATIONS:
224 ;
225 ; NO. DATE PROGRAMMER PURPOSE
226 ; --- ---- ---------- -------
227 ; 001 03-FEB-77 R. BELANGER ADD DL11E INTERRUPT VECTORS
228 ; 002 15-MAR-77 R. BELANGER LIMIT SIZE OF PATCH SPACE
229 ; TO 40 BYTES AND DEFINE SYMBOL .PAT..
230 ; 003 18-AUG-77 R. BELANGER DIFFERENTIATE BETWEEN DTE-20
231 ; BUS TIMEOUTS AND OTHERS
232 ; 004 28-AUG-77 R. BELANGER LOAD CRASH CODE INTO 0 AND 2
233 ; TCO 4.2212 08-MAR-79 R. BELANGER INTEGRATE SYTEM COMMON DATABASE
234 ; TCO 4.2217 19-MAR-79 R. BELANGER SNAPSHOT EBUS PARITY ERRORS
235 ; TCO 4.2245 10-APR-79 R. BELANGER ADD FRAMING ERROR LOGGING
236 ; TCO 4.2263 29-MAY-79 R. BELANGER PAD DECTAPE DRIVER DATABASE
237 ; TCO 4.2309 25-JUN-79 R. BELANGER ADD BELL 212A MODEM SUPPORT
238 ; TCO 4.2314 29-JUN-79 R. BELANGER SNAPSHOT I/O PAGE ON CRASH
239 ; TCO 4.2333 16-JUL-79 R. BELANGER ADD KL10 HARDWARE DATA
240 ; TCO 5.1004 12-SEP-79 R. BELANGER ADD NON-CONTIGUOUS DEVICE SUPPORT
241 ; TCO 5.1008 11-OCT-79 R. BELANGER ADD EBUS PARITY ERROR AND DEX ERROR LOGGING
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 6-1
242 ; TCO 5.1009 15-0CT-79 R. BELANGER ADD RH-11 ERROR LOGGING
243 ; TCO 5.1015 25-OCT-79 R. BELANGER ADD TERMINAL INPUT CONTROL TABLE
244 ; TCO 4.1.1035 16-NOV-79 R. BELANGER ADD QUEUE ARBITRATION
245 ; TCO 4.1.1066 10-JAN-80 R. BELANGER ROUND-ROBIN DEFERRED ACKS
246 ; TCO 4.1.1091 12-FEB-80 R. BELANGER FIX MISSING DM-11/BB'S
247 ; TCO 4.1.1092 25-FEB-80 R. BELANGER LOCAL INPUT CONTROL
248 ; TCO 4.1.1104 05-MAR-80 R. BELANGER CHANGE KEEP-ALIVE
249 ; TCO 4.1.1121 19-MAR-80 R. BELANGER SUPPORT BLOCKED DTE-20
250 ; TCO 4.1.1137 -5-APR-80 R. BELANGER REDEFINE PATCH SPACE TO UNUSED VECTORS
251 ; REMOVE DEFERRED ACK SUPPORT
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 7
253 ;
254 ;
255 ; MACRO LIBRARY CALLS
256 ;
257 .MCALL .CRASH,MFPS,CALL
258 .MCALL .PUDEN,.STDEN,.ATLEN
259 .MCALL $DEF,F11DF$
260 .MCALL .TPDEN,.PUDEN,.DQPEN
261
262 000000 $DEF
263 000000 F11DF$
264
265 .MACRO RSXVR$ KEY,FRM,VER,EDT,NUM
266 .IF B,NUM
267 .IF NB,FRM
268 RSXVR$ \KEY,\FRM,\VER,\EDT,0
269 .IFF
270 RSXVR$ \KEY,200,\VER,\EDT,0
271 .ENDC
272 .MEXIT
273 .IFF
274 .IF GE,VER-10
275 .IF GE,EDT-10
276 .ASCIZ <KEY><FRM>\'VER'-'EDT'\<200>
277 .IFF
278 .ASCIZ <KEY><FRM>\'VER'-0'EDT'\<200>
279 .ENDC
280 .IFF
281 .IF GE,EDT-10
282 .ASCIZ <KEY><FRM>\0'VER'-'EDT'\<200>
283 .IFF
284 .ASCIZ <KEY><FRM>\0'VER'-0'EDT'\<200>
285 .ENDC
286 .ENDC
287 .ENDC
288 .ENDM RSXVR$
289 ;
290 ; MACRO FOR GENERATING LOW CORE
291 ;
292 .MACRO PSW PRI,TRPADR,UNIT
293 .IF B,<TRPADR>
294 .WORD .-LOWCOD+1
295 .IFF
296 .WORD TRPADR
297 .ENDC ; IFB <TRPADR>
298 .IF B,<UNIT>
299 .WORD 0+<40*PRI>+4000
300 .IFF
301 .WORD UNIT+<40*PRI>+4000
302 .ENDC ; IFB <UNIT>
303 .ENDM ; PSW
304 ;
305 .MACRO DHPSW U
306 .WORD $DMINT ; DM-11/BB #'U INTERRUPT
307 .WORD U+<40*6>+4000
308 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
309 .WORD <40*6>+4000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 7-1
310 .WORD $DHINP ; DH-11 #'U INPUT INTERRUPT
311 .WORD U+<40*6>+4000
312 .WORD $DHOUT ; DH-11 #'U OUTPUT INTERRUPT
313 .WORD U+<40*6>+4000
314 .ENDM
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 8
LOW CORE -- TRAP VECTORS
316 .SBTTL LOW CORE -- TRAP VECTORS
317
318 000000' LOWCOD==.
319 000000 PSW 6 ; ILLEGAL INTERRUPT
000000 000001 .WORD .-LOWCOD+1
000002 004300 .WORD 0+<40*6>+4000
320 ;
321 000004 PSW 7,COMTRP,0 ; TRAP TO 4 (TIMEOUT)
000004 011426' .WORD COMTRP
000006 004340 .WORD 0+<40*7>+4000
322 ;
323 000010 PSW 7,COMTRP,2 ; RESERVED INSTRUCTION
000010 011426' .WORD COMTRP
000012 004342 .WORD 2+<40*7>+4000
324 ;
325 000014 PSW 6,COMTRP,4 ; T BIT OR BPT TRAP
000014 011426' .WORD COMTRP
000016 004304 .WORD 4+<40*6>+4000
326 ;
327 000020 PSW 6,COMTRP,6 ; IOT TRAP
000020 011426' .WORD COMTRP
000022 004306 .WORD 6+<40*6>+4000
328 ;
329 000024 PSW 7,.PWRDN ; POWER FAIL (POWER DOWN)
000024 017574' .WORD .PWRDN
000026 004340 .WORD 0+<40*7>+4000
330 ;
331 000030 PSW 7,EMTTRP,STXDX ; EMT TRAP
000030 013036' .WORD EMTTRP
000032 004340 .WORD STXDX+<40*7>+4000
332 ;
333 000034 PSW 6,.DRSRN ; TRAP TRAP
000034 013352' .WORD .DRSRN
000036 004300 .WORD 0+<40*6>+4000
334 ;
335 000040 .PAT1.:: ; [4.1.1137] PATCH SPACE -- 20 BYTES
336 000004 .REPT 4
337 PSW 6 ; ILLEGAL INTERRUPTS
338 .ENDR
000040 000041 .WORD .-LOWCOD+1
000042 004300 .WORD 0+<40*6>+4000
000044 000045 .WORD .-LOWCOD+1
000046 004300 .WORD 0+<40*6>+4000
000050 000051 .WORD .-LOWCOD+1
000052 004300 .WORD 0+<40*6>+4000
000054 000055 .WORD .-LOWCOD+1
000056 004300 .WORD 0+<40*6>+4000
339 ;
340 000060 PSW 6,$TTINP,0 ; TTY LINE 0 INPUT (CTY)
000060 036166' .WORD $TTINP
000062 004300 .WORD 0+<40*6>+4000
341 000064 PSW 6,$TTOUT,0 ; TTY LINE 0 OUTPUT (CTY)
000064 034224' .WORD $TTOUT
000066 004300 .WORD 0+<40*6>+4000
342 ;
343 000002 .REPT 2.
344 PSW 6 ; ILLEGAL TRAPS
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 8-1
LOW CORE -- TRAP VECTORS
345 .ENDR
000070 000071 .WORD .-LOWCOD+1
000072 004300 .WORD 0+<40*6>+4000
000074 000075 .WORD .-LOWCOD+1
000076 004300 .WORD 0+<40*6>+4000
346 ;
347 000100 PSW 6,.KW11S ; CLOCK INTERRUPT
000100 035366' .WORD .KW11S
000102 004300 .WORD 0+<40*6>+4000
348 ;
349 000002 .REPT 2
350 PSW 6 ; ILLEGAL INTERRUPT
351 .ENDR
000104 000105 .WORD .-LOWCOD+1
000106 004300 .WORD 0+<40*6>+4000
000110 000111 .WORD .-LOWCOD+1
000112 004300 .WORD 0+<40*6>+4000
352 ;
353 000114 PSW 7,.PARER ; PARITY ERROR
000114 011702' .WORD .PARER
000116 004340 .WORD 0+<40*7>+4000
354 ;
355 000120 .PAT2.:: ; [4.1.1137] PATCH SPACE -- 74 BYTES
356 000017 .REPT 15.
357 PSW 6 ; ILLEGAL INTERRUPT
358 .ENDR
000120 000121 .WORD .-LOWCOD+1
000122 004300 .WORD 0+<40*6>+4000
000124 000125 .WORD .-LOWCOD+1
000126 004300 .WORD 0+<40*6>+4000
000130 000131 .WORD .-LOWCOD+1
000132 004300 .WORD 0+<40*6>+4000
000134 000135 .WORD .-LOWCOD+1
000136 004300 .WORD 0+<40*6>+4000
000140 000141 .WORD .-LOWCOD+1
000142 004300 .WORD 0+<40*6>+4000
000144 000145 .WORD .-LOWCOD+1
000146 004300 .WORD 0+<40*6>+4000
000150 000151 .WORD .-LOWCOD+1
000152 004300 .WORD 0+<40*6>+4000
000154 000155 .WORD .-LOWCOD+1
000156 004300 .WORD 0+<40*6>+4000
000160 000161 .WORD .-LOWCOD+1
000162 004300 .WORD 0+<40*6>+4000
000164 000165 .WORD .-LOWCOD+1
000166 004300 .WORD 0+<40*6>+4000
000170 000171 .WORD .-LOWCOD+1
000172 004300 .WORD 0+<40*6>+4000
000174 000175 .WORD .-LOWCOD+1
000176 004300 .WORD 0+<40*6>+4000
000200 000201 .WORD .-LOWCOD+1
000202 004300 .WORD 0+<40*6>+4000
000204 000205 .WORD .-LOWCOD+1
000206 004300 .WORD 0+<40*6>+4000
000210 000211 .WORD .-LOWCOD+1
000212 004300 .WORD 0+<40*6>+4000
359 ;
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 8-2
LOW CORE -- TRAP VECTORS
363 000214 PSW 6 ; DECTAPE INTERRUPT
000214 000215 .WORD .-LOWCOD+1
000216 004300 .WORD 0+<40*6>+4000
365 ;
366 000002 .REPT 2.
367 PSW 6 ; ILLEGAL INTERRUPT
368 .ENDR
000220 000221 .WORD .-LOWCOD+1
000222 004300 .WORD 0+<40*6>+4000
000224 000225 .WORD .-LOWCOD+1
000226 004300 .WORD 0+<40*6>+4000
369 ;
370 000230 PSW 4,$CDINT ; CARD READER INTERRUPT
000230 000000G .WORD $CDINT
000232 004200 .WORD 0+<40*4>+4000
371 ;
372 000234 .PAT3.:: ; [4.1.1137] PATCH SPACE -- 20 BYTES
373 000004 .REPT 4.
374 PSW 6 ; ILLEGAL INTERRUPT
375 .ENDR
000234 000235 .WORD .-LOWCOD+1
000236 004300 .WORD 0+<40*6>+4000
000240 000241 .WORD .-LOWCOD+1
000242 004300 .WORD 0+<40*6>+4000
000244 000245 .WORD .-LOWCOD+1
000246 004300 .WORD 0+<40*6>+4000
000250 000251 .WORD .-LOWCOD+1
000252 004300 .WORD 0+<40*6>+4000
376 ;
377 000254 PSW 4,.DBINT ; RH-11 (RP04/RP06) INTERRUPT
000254 000000G .WORD .DBINT
000256 004200 .WORD 0+<40*4>+4000
378 ;
379 000260 PSW 6 ; ILLEGAL INTERRUPT
000260 000261 .WORD .-LOWCOD+1
000262 004300 .WORD 0+<40*6>+4000
380 ;
382 000264 PSW 6,$DXINT ; RX-11 INTERRUPT
000264 000000G .WORD $DXINT
000266 004300 .WORD 0+<40*6>+4000
386 ;
387 000270 PSW 6 ; ILLEGAL INTERRUPT
000270 000271 .WORD .-LOWCOD+1
000272 004300 .WORD 0+<40*6>+4000
388 000274 PSW 6 ; ILLEGAL INTERRUPT
000274 000275 .WORD .-LOWCOD+1
000276 004300 .WORD 0+<40*6>+4000
389 ;
390 000300 PSW 6,$TTINP,1 ; DL-11E # 0 INPUT (KLINIK) INTERRUPT
000300 036166' .WORD $TTINP
000302 004301 .WORD 1+<40*6>+4000
391 000304 PSW 6,$TTOUT,1 ; DL-11E # 0 OUTPUT (KLINIK) INTERRUPT
000304 034224' .WORD $TTOUT
000306 004301 .WORD 1+<40*6>+4000
392 ;
393 000310 PSW 6 ; ILLEGAL INTERRUPT
000310 000311 .WORD .-LOWCOD+1
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 8-3
LOW CORE -- TRAP VECTORS
000312 004300 .WORD 0+<40*6>+4000
394 000314 PSW 6 ; ILLEGAL INTERRUPT
000314 000315 .WORD .-LOWCOD+1
000316 004300 .WORD 0+<40*6>+4000
395 ;
396 000000 U=0
397 .IRP U,<0,1,2,3,4,5,6,7>
398 DHPSW U
399 ;
400 .ENDR
000320 037626' .WORD $DMINT ; DM-11/BB #0 INTERRUPT
000322 004300 .WORD 0+<40*6>+4000
000324 000325 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
000326 004300 .WORD <40*6>+4000
000330 035534' .WORD $DHINP ; DH-11 #0 INPUT INTERRUPT
000332 004300 .WORD 0+<40*6>+4000
000334 033552' .WORD $DHOUT ; DH-11 #0 OUTPUT INTERRUPT
000336 004300 .WORD 0+<40*6>+4000
000340 037626' .WORD $DMINT ; DM-11/BB #1 INTERRUPT
000342 004301 .WORD 1+<40*6>+4000
000344 000345 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
000346 004300 .WORD <40*6>+4000
000350 035534' .WORD $DHINP ; DH-11 #1 INPUT INTERRUPT
000352 004301 .WORD 1+<40*6>+4000
000354 033552' .WORD $DHOUT ; DH-11 #1 OUTPUT INTERRUPT
000356 004301 .WORD 1+<40*6>+4000
000360 037626' .WORD $DMINT ; DM-11/BB #2 INTERRUPT
000362 004302 .WORD 2+<40*6>+4000
000364 000365 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
000366 004300 .WORD <40*6>+4000
000370 035534' .WORD $DHINP ; DH-11 #2 INPUT INTERRUPT
000372 004302 .WORD 2+<40*6>+4000
000374 033552' .WORD $DHOUT ; DH-11 #2 OUTPUT INTERRUPT
000376 004302 .WORD 2+<40*6>+4000
000400 037626' .WORD $DMINT ; DM-11/BB #3 INTERRUPT
000402 004303 .WORD 3+<40*6>+4000
000404 000405 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
000406 004300 .WORD <40*6>+4000
000410 035534' .WORD $DHINP ; DH-11 #3 INPUT INTERRUPT
000412 004303 .WORD 3+<40*6>+4000
000414 033552' .WORD $DHOUT ; DH-11 #3 OUTPUT INTERRUPT
000416 004303 .WORD 3+<40*6>+4000
000420 037626' .WORD $DMINT ; DM-11/BB #4 INTERRUPT
000422 004304 .WORD 4+<40*6>+4000
000424 000425 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
000426 004300 .WORD <40*6>+4000
000430 035534' .WORD $DHINP ; DH-11 #4 INPUT INTERRUPT
000432 004304 .WORD 4+<40*6>+4000
000434 033552' .WORD $DHOUT ; DH-11 #4 OUTPUT INTERRUPT
000436 004304 .WORD 4+<40*6>+4000
000440 037626' .WORD $DMINT ; DM-11/BB #5 INTERRUPT
000442 004305 .WORD 5+<40*6>+4000
000444 000445 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
000446 004300 .WORD <40*6>+4000
000450 035534' .WORD $DHINP ; DH-11 #5 INPUT INTERRUPT
000452 004305 .WORD 5+<40*6>+4000
000454 033552' .WORD $DHOUT ; DH-11 #5 OUTPUT INTERRUPT
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 8-4
LOW CORE -- TRAP VECTORS
000456 004305 .WORD 5+<40*6>+4000
000460 037626' .WORD $DMINT ; DM-11/BB #6 INTERRUPT
000462 004306 .WORD 6+<40*6>+4000
000464 000465 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
000466 004300 .WORD <40*6>+4000
000470 035534' .WORD $DHINP ; DH-11 #6 INPUT INTERRUPT
000472 004306 .WORD 6+<40*6>+4000
000474 033552' .WORD $DHOUT ; DH-11 #6 OUTPUT INTERRUPT
000476 004306 .WORD 6+<40*6>+4000
000500 037626' .WORD $DMINT ; DM-11/BB #7 INTERRUPT
000502 004307 .WORD 7+<40*6>+4000
000504 000505 .WORD .-LOWCOD+1 ; ILLEGAL INTERRUPT
000506 004300 .WORD <40*6>+4000
000510 035534' .WORD $DHINP ; DH-11 #7 INPUT INTERRUPT
000512 004307 .WORD 7+<40*6>+4000
000514 033552' .WORD $DHOUT ; DH-11 #7 OUTPUT INTERRUPT
000516 004307 .WORD 7+<40*6>+4000
401 000040 U=<20-D$$H11>*4
402 ;
403 000520 .PAT4.:: ; [4.1.1137] PATCH SPACE -- 200 BYTES
404 000040 .REPT U
405 PSW 6 ; ILLEGAL INTERRUPT
406 .ENDR
000520 000521 .WORD .-LOWCOD+1
000522 004300 .WORD 0+<40*6>+4000
000524 000525 .WORD .-LOWCOD+1
000526 004300 .WORD 0+<40*6>+4000
000530 000531 .WORD .-LOWCOD+1
000532 004300 .WORD 0+<40*6>+4000
000534 000535 .WORD .-LOWCOD+1
000536 004300 .WORD 0+<40*6>+4000
000540 000541 .WORD .-LOWCOD+1
000542 004300 .WORD 0+<40*6>+4000
000544 000545 .WORD .-LOWCOD+1
000546 004300 .WORD 0+<40*6>+4000
000550 000551 .WORD .-LOWCOD+1
000552 004300 .WORD 0+<40*6>+4000
000554 000555 .WORD .-LOWCOD+1
000556 004300 .WORD 0+<40*6>+4000
000560 000561 .WORD .-LOWCOD+1
000562 004300 .WORD 0+<40*6>+4000
000564 000565 .WORD .-LOWCOD+1
000566 004300 .WORD 0+<40*6>+4000
000570 000571 .WORD .-LOWCOD+1
000572 004300 .WORD 0+<40*6>+4000
000574 000575 .WORD .-LOWCOD+1
000576 004300 .WORD 0+<40*6>+4000
000600 000601 .WORD .-LOWCOD+1
000602 004300 .WORD 0+<40*6>+4000
000604 000605 .WORD .-LOWCOD+1
000606 004300 .WORD 0+<40*6>+4000
000610 000611 .WORD .-LOWCOD+1
000612 004300 .WORD 0+<40*6>+4000
000614 000615 .WORD .-LOWCOD+1
000616 004300 .WORD 0+<40*6>+4000
000620 000621 .WORD .-LOWCOD+1
000622 004300 .WORD 0+<40*6>+4000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 8-5
LOW CORE -- TRAP VECTORS
000624 000625 .WORD .-LOWCOD+1
000626 004300 .WORD 0+<40*6>+4000
000630 000631 .WORD .-LOWCOD+1
000632 004300 .WORD 0+<40*6>+4000
000634 000635 .WORD .-LOWCOD+1
000636 004300 .WORD 0+<40*6>+4000
000640 000641 .WORD .-LOWCOD+1
000642 004300 .WORD 0+<40*6>+4000
000644 000645 .WORD .-LOWCOD+1
000646 004300 .WORD 0+<40*6>+4000
000650 000651 .WORD .-LOWCOD+1
000652 004300 .WORD 0+<40*6>+4000
000654 000655 .WORD .-LOWCOD+1
000656 004300 .WORD 0+<40*6>+4000
000660 000661 .WORD .-LOWCOD+1
000662 004300 .WORD 0+<40*6>+4000
000664 000665 .WORD .-LOWCOD+1
000666 004300 .WORD 0+<40*6>+4000
000670 000671 .WORD .-LOWCOD+1
000672 004300 .WORD 0+<40*6>+4000
000674 000675 .WORD .-LOWCOD+1
000676 004300 .WORD 0+<40*6>+4000
000700 000701 .WORD .-LOWCOD+1
000702 004300 .WORD 0+<40*6>+4000
000704 000705 .WORD .-LOWCOD+1
000706 004300 .WORD 0+<40*6>+4000
000710 000711 .WORD .-LOWCOD+1
000712 004300 .WORD 0+<40*6>+4000
000714 000715 .WORD .-LOWCOD+1
000716 004300 .WORD 0+<40*6>+4000
407 ;
408 000720 PSW 6,$TTINP,4 ; DL-11E # 3 INPUT (DN20 #2)
000720 036166' .WORD $TTINP
000722 004304 .WORD 4+<40*6>+4000
409 000724 PSW 6,$TTOUT,4 ; DL-11E # 3 OUTPUT (DN20 #2)
000724 034224' .WORD $TTOUT
000726 004304 .WORD 4+<40*6>+4000
410 ;
411 000730 PSW 6,$TTINP,3 ; DL-11E # 2 INPUT (DN20 #1)
000730 036166' .WORD $TTINP
000732 004303 .WORD 3+<40*6>+4000
412 000734 PSW 6,$TTOUT,3 ; DL-11E # 2 OUTPUT (DN20 #1)
000734 034224' .WORD $TTOUT
000736 004303 .WORD 3+<40*6>+4000
413 ;
414 000740 PSW 6,$TTINP,2 ; DL-11E # 1 INPUT (DN20 #0)
000740 036166' .WORD $TTINP
000742 004302 .WORD 2+<40*6>+4000
415 000744 PSW 6,$TTOUT,2 ; DL-11E # 1 OUTPUT (DN20 #0)
000744 034224' .WORD $TTOUT
000746 004302 .WORD 2+<40*6>+4000
416 ;
418 000750 PSW 4,$LPINT,1 ; LP-20 #1 INTERRUPT
000750 000000G .WORD $LPINT
000752 004201 .WORD 1+<40*4>+4000
419 000754 PSW 4,$LPINT,0 ; LP-20 #0 INTERRUPT
000754 000000G .WORD $LPINT
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 8-6
LOW CORE -- TRAP VECTORS
000756 004200 .WORD 0+<40*4>+4000
424 ;
425 000004 .REPT 4
426 PSW 7,.DTINT ; DTE-20 # 0 INTERRUPT VECTORS
427 .ENDR
000760 027624' .WORD .DTINT
000762 004340 .WORD 0+<40*7>+4000
000764 027624' .WORD .DTINT
000766 004340 .WORD 0+<40*7>+4000
000770 027624' .WORD .DTINT
000772 004340 .WORD 0+<40*7>+4000
000774 027624' .WORD .DTINT
000776 004340 .WORD 0+<40*7>+4000
428 ;
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 9
LOW CORE -- COMMON GLOBAL DATA
430 .SBTTL LOW CORE -- COMMON GLOBAL DATA
431
432 001000 .FESTB::
433 001000 004150 .WORD <.LCEND-.FESTB>/2 ; [4.2333] WORD SIZE OF THIS STATUS BLOCK
434 001002 .EXEND::
435 001002 000000 000000 .LIMIT ; DEFINE LIMITS OF THE FRONT-END
436 ; FIRST WORD LOW LIMIT
437 ; SECOND WORD IS HIGH LIMIT
438 ;
439 ; CURRENT TASK POINTER (POINTS TO ACTIVE TASK LIST NODE OF CURRENT TASK
440 ;
441
442 001006 .CRTSK::
443 001006 000000 .WORD 0
444
445 001010 .COMEF::
446 001010 000000 000000 .WORD 0,0 ; COMMON EVENT FLAGS
447
448 001014 .SERFG::
449 001014 000000 .WORD 0 ; SIG EVENT FLAG
450 001016 .SEWFL::
451 001016 000000 .WORD 0 ; SIG EVENT WAIT FLAG
452 001020 SPSAV::
453 001020 000000 .WORD 0 ; SAVE AREA FOR STACK
454 ;
455 001022 PARSAV::
456 001022 .BLKW 2 ; SAVE AREA FOR PARITY ERROR REGISTERS
457 ; (USED BY LC)
458 ;
459 ; .PFAIL INDICATES POWER FAIL IN PROGRESS
460 ; IT IS USED ONLY TO INDICATE TO PRI7 TASKS THAT
461 ; POWER FAIL UNDERWAY AND A RETURN TO THE PROGRAM
462 ; SHOULD NOT OCCUR
463 ;
464 001026 .PFAIL::
465 001026 000000 .WORD 0
466 001030 .PFIOW::
467 001030 000000 .WORD 0 ; POWER FAIL RECOVERY FLAG
468 001032 PWRXSP::
469 001032 000000 .WORD 0 ; BUFFER FOR STACK POINTER
470 001034 CROBAR::
471 001034 000000 .WORD 0 ; POWER-UP CROBAR TIMER
472 001036 .VERNO::
473 001036 RSXVR$ RSX$$K,RSX$$F,RSX$$V,RSX$$E ; RSX20F VERSION NUMBER.
001036 126 102 061 .ASCIZ <126><102>\14-45\<200>
001041 064 055 064
001044 065 200 000
474 .EVEN
475 001050 .CKASS::
476 001050 000000 .WORD 0 ; AST ADDRESS FOR CURRENT TASK (CLOCK)
477 001052 .PFASS::
478 001052 000000 .WORD 0 ; AST ADDRESS FOR CURRENT TASK (POWER FAIL)
479
480 001054 .BLKW 20
481 ;
482 001114 .MSIZE::
483 001114 001600 .WORD 1600 ; MEMORY SIZE
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 9-1
LOW CORE -- COMMON GLOBAL DATA
484 001116 EMTSTK::
485 001116 000000 .WORD 0 ; EMT SAVED DURING EMT STACK
486 001120 TRPASV::
487 001120 000000 .WORD 0 ; SAVED PS OF EMT/TRAP
488
489 ;
490 ; THE NEXT TWO BYTES MUST BE KEPT TOGETHER IN THEIR CURRENT ORDER !!!!
491 ;
492
493 001122 .NOERR::
494 001122 000401 .WORD 401 ; DO NOT RECOGNIZE KL ERROR IF NON-ZERO
495 001123' .NOHLT == .NOERR+1 ; DO NOT PANIC IF KL HALTS IF NON-ZERO
496
497 001124 .TKTN::
498 001124 000000 .WORD 0 ; NON ZERO IF TKTN REQUIRED
499 001126 .KLITK::
500 001126 000000 .WORD 0 ; KL ATTENTION REQUEST
501
502 001130 .KLERQ::
503 001130 000000 .WORD 0 ; KLERR SNAPSHOT INTERLOCK
504
505 001132 .KLIWD::
506 001132 000000 .WORD 0 ; KL WORD TO DETERMINE BOOT PARAMETERS
507
508 001134 .TICKS::
509 001134 000000 .WORD 0 ; CLOCK TICK COUNTER
510 001136 .CLKSW::
511 001136 000000 .WORD 0 ; CLOCK OVERFLOW SWITCH
512 001140 .DATE::
513 001140 .DATE3::
514 001140 000000 .WORD 0 ; FRONT-END DATE VALID FLAG
515 ; FRONT-END DATE IS VALID IF .NE. 0
516 001142 .YEAR::
517 001142 003673 .WORD 1979. ; DECIMAL YEAR
518 001144 .DAY::
519 001144 000 .BYTE 0. ; DAY OF MONTH
520 001145 .MON::
521 001145 000 .BYTE 0. ; MONTH OF YEAR
522 001146 .DST::
523 001146 000 .BYTE 0 ; DAYLIGHT SAVING TIME FLAG
524 001147 .DOW::
525 001147 000 .BYTE 0 ; DAY OF WEEK INDEX
526 001150 .SSM::
527 001150 000000 000400 .WORD 0,400 ; ELAPSED TIME IN SECONDS SINCE MIDNIGHT
528 001154 .TKPS::
529 001154 000074 .WORD .CYLTM ; CLOCK RATE IN JIFFIES
530
531 001156 .SYUIC::
532 001156 002405 .WORD 5.*400+5. ; SYSTEM UIC [5,5]
533 001160 .BTPRM::
534 001160 000000 .WORD 0 ; BOOT PARAMETER
535 001162 .BTSCH::
536 001162 000000 .WORD 0 ; CHARACTER SAVED -- FOR SECONDARY PROTOCOL
537 001164 .ACKAL::
538 001164 000001 .WORD 1 ; ACK ALL SWITCH
539 001166 .KLERW::
540 001166 000000 .WORD 0 ; KL WORD FOR ERROR REPORTING BY SETSPD
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 9-2
LOW CORE -- COMMON GLOBAL DATA
541 001170 .FEMOD::
542 001170 000001 .WORD 1 ; FRONT END CONSOLE MODE FLAG
543 001172 .KLRLD::
544 001172 000 .BYTE 0 ;KL RELOAD FLAG
545 001173 .KLFCF::
546 001173 001 .BYTE 1 ;KL FAULT CONTINUATION FLAG
547 001174 .KLFLG::
548 001174 000000 .WORD 0 ; FLAG FOR PARSER TO INDICATE STATE OF KL10
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 10
LOW CORE -- KLINIK DATA BASE
550 .SBTTL LOW CORE -- KLINIK DATA BASE
551 ;
552 ; NOTE --
553 ; THE NEXT 32 BYTES MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
554 ;
555
556 001176 .KLNPB::
557 001176 000026 .WORD KLNPLN ; KLINIK PARAMETER BLOCK LENGTH
558 ; BUFFER FOR PARAMETER SAVE STARTS HERE
559 001200 .KLNLB:: ;
560 001200 .KLNBC::
561 001200 000024 .WORD KLNPLN-2 ; BYTE COUNT FOR TRANSFER
562 001202 .KLNFT::
563 001202 000000 .WORD 0 ; KLINIK ENABLE START TIME --
564 ; SECONDS SINCE MIDNIGHT
565 001204 .KLNFD::
566 001204 000 000 000 .BYTE 0,0,0,0 ; KLINIK ENABLE START DATE
001207 000
567 001210 .KLNTT::
568 001210 000000 .WORD 0 ; KLINIK ENABLE END TIME --
569 ; SECONDS SINCE MIDNIGHT
570 001212 .KLNTD::
571 001212 000 000 000 .BYTE 0,0,0,0 ; KLINIK ENABLE END DATE
001215 000
572 001216 .KLNMD::
573 001216 000 000 .BYTE 0,0 ; KLINIK MODE FLAGS
574 .EVEN ;
575 000016 KLNLGL==.-.KLNFT ; KLINIK EVENT LOG BUFFER LENGTH IN BYTES
576 001220' .KLNPE==.
577 001220 .KLNPW::
578 001220 000000 000000 000000 .WORD 0,0,0 ; ASCII PASSWORD FOR KLINIK
579 .EVEN
580 000026 KLNPLN==.-.KLNBC ; SAVE BUFFER LENGTH IN BYTES
581 001226 .KLNSW::
582 001226 000 000 .BYTE 0,0 ; KLINIK LINE STATUS BYTES
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 11
LOW CORE -- COMMIUNICATIONS REGION DATA BASE
584 .SBTTL LOW CORE -- COMMIUNICATIONS REGION DATA BASE
585
586 ;
587 ; POINTERS TO COMMUNICATIONS AREA
588 ;
589 001230 COMBSE::
590 001230 000000 .WORD 0 ; BASE OF COMMUNICATION AREA
591 001232 PRMEMN::
592 001232 000000 .WORD 0 ; MY PROCESSOR NUMBER
593 001234 DEPOF::
594 001234 000000 .WORD 0 ; DEPOSIT OFFSET FROM EXAMINE
595 ;
596 ;
597 ; PROCESSOR IDENTIFICATION TABLE
598 ;
599 ; PROTBL FORMAT:
600 ;
601 ; DTENM -- ADDRESS OF DTE-20 TO ACCESS THIS PROCESSOR
602 000000 DTENM=0
603 ; EMYN -- ADDRESS TO COMMUNICATE TO PROCESSOR 0
604 000002 EMYN==2
605 ; DMYN -- ADDRESS TO COMMUNICATE TO PROCESSOR 0 (WRITE)
606 000004 DMYN==4
607 ; EHSG -- ADDRESS FROM GENERAL
608 000006 EHSG==6
609 ; EHSM -- ADDRESS FROM SPECIFIC
610 000010 EHSM==10
611
612 001236 PROTBL::
613 001236 174400 .WORD 174400 ; DTENM
614 001240 000000 .WORD 0 ; EMYN
615 001242 000000 .WORD 0 ; DMYN
616 001244 000000 .WORD 0 ; EHSG
617 001246 000000 .WORD 0 ; EHSM
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 12
LOW CORE -- QUEUED PROTOCOL DATA BASE
619 .SBTTL LOW CORE -- QUEUED PROTOCOL DATA BASE
620
621 001250 .CRQZ::
622 001250 000000 .WORD 0 ; CURRENT QUEUE SIZE
623 001252 .CPFN::
624 001252 000000 .WORD 0 ; CURRENT FUNCTION IN TO 10 QUEUE
625 001254 .CPDV::
626 001254 000000 .WORD 0 ; CURRENT DEVICE IN TO 10 QUEUE
627 001256 .CRSZ::
628 001256 000000 .WORD 0 ; CURRENT SIZE OF TO10 QUEUE
629 001260 .CRPB::
630 001260 000000 .WORD 0 ; CURRENT BUFFER POINTER IN TO10 QUEUE
631 001262 .CRHD::
632 001262 000000 .WORD 0 ; HEAD OF CURRENT TO10 QUEUE
633 001264 .CRSB::
634 001264 000000 .WORD 0 ; POINTER TO CURRENT FUNCTION SIZE
635
636 001266 DTEMSK::
637 001266 000000 .WORD 0 ; DTE DEVICE EVENT FLAG MASK
638 001270 DTEADR::
639 001270 000000 .WORD 0 ; DTE DEVICE INDIRECT FLAG ADDRESS
640
641 001272 TO11NP::
642 001272 000000 .WORD 0 ; NODE POINTER FOR NODE
643 001274 TO11HD::
644 001274 000000 .WORD 0 ; COUNT OF BYTES IN THIS QUEUE
645 001276 TO11FN::
646 001276 000000 .WORD 0 ; TO ELEVEN FUNCTION CODE
647 001300 TO11DV::
648 001300 000000 .WORD 0 ; TO ELEVEN DEVICE NUMBER
649 001302 TO11SP::
650 001302 000000 .WORD 0 ; SPACE
651 001304 TO11FW::
652 001304 000000 .WORD 0 ; FIRST WORD OF FUNCTION
654 001306 TO11GW::
655 001306 177777 .WORD -1 ; GUARD WORD FOR DTE20
656 001310 TO11AS::
657 001310 000000 .WORD 0 ; ADDRESS SAVE
658 001312 TO11BS::
659 001312 000000 .WORD 0 ; BYTE COUNT SAVE
660 001314 TO10SZ::
661 001314 000000 .WORD 0 ; BYTE COUNT OF XFER
662 001316 TO10AS::
663 001316 000000 .WORD 0
665
666 001320 STSTT::
667 001320 000001 000000 000000 .WORD 1,0,0 ; TO 10 STATUS
668
669 001324' TO10QC==STSTT+4 ; TO 10 QUEUE COUNT
670 001325' TO11QC==STSTT+5 ; TO 11 QUEUE COUNT
671
672 001326 001326' TO10Q:: .WORD . ; LISTHEAD FOR TO 10 QUEUE
673 001330 001326' .WORD .-2
674
675 001332 EQSZ::
676 001332 000000 .WORD 0 ; ELEVEN QUEUE SIZE
677
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 12-1
LOW CORE -- QUEUED PROTOCOL DATA BASE
678 001334 TO11Q::
679 001334 000000 .WORD 0 ; TO 11 QUEUE
680 001336 STATI::
681 001336 .BLKW 3 ; STATUS/SCRATCH WORD FOR EXAMINES/DEPOSITS
682 001344 DEXST::
683 001344 000000 .WORD 0 ; DEXDONE TIMEOUT
684 001346 DEXTM3::
685 001346 000000 .WORD 0 ; EXAMINE WORD 3 (TEMP STORAGE) TO BE
686 001350 DEXTM2::
687 001350 000000 .WORD 0 ; EXAMINE WORD 2 -USED ONLY BECAUSE EXAMINE
688 001352 DEXTM1::
689 001352 000000 .WORD 0 ; EXAMINE WORD 1 - OR DEPOSIT MAY FAIL AND MUST BE REDONE
690 001354 .PRADR::
691 001354 000000 .WORD 0 ; ADDRESS OF PRIV OFFSET TABLE ENTRY
692 001356 .PRSTA::
693 001356 174434 .WORD 174434 ; PRIVILEDGED DTE20 STATUS WORD
694 001360 .PRDTE::
695 001360 174400 .WORD 174400 ; FIRST DTE ADDRESS OF PRIVILEDGED DTE20
696 001362 .PRDCT::
697 001362 000000 .WORD 0 ; DOORBELL COUNTER FOR KLINIT.
698 ;
699 ; THE NEXT TWO BYTES MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
700 ;
701 001364 .DXRTY::
702 001364 001 .BYTE 1 ; [5.1008] DEX ERROR PROCESSING FLAG (SEE BELOW)
703 001365 .EBRTY::
704 001365 001 .BYTE 1 ; [5.1008] EBUS PARITY ERROR PROCESSING FLAG
705 ; +1 -- NO EBUS PARITY ERROR
706 ; 0 -- RETRY SUCCEEDED
707 ; -1 -- RETRY FAILED
708 ;
709 ; THE NEXT TWO WORDS MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
710 ;
711 001366 .EBPEQ::
712 001366 000000 .WORD 0 ; [4.2217] CONTAINS POINTER TO DTE-20 EBUS PARITY
713 ; SNAPSHOT IF ALLOCATION WAS SUCCESSFUL
714 001370 .EBPEC::
715 001370 000000 .WORD 0 ; [5.1008] COUNT OF NODES IN THIS QUEUE (MAX = 2)
716
717 001372 .PRPSE::
718 001372 000 .BYTE 0 ; PROTOCOL PAUSE FLAG
719 001373 TOXQIP::
720 001373 000 .BYTE 0 ; [4.1.1035] TO 10 QUEUE IN PROGRESS FLAG
721 .EVEN
722 001374 .DTBLK::
723 001374 000000 .WORD 0 ; [4.1.1121] HOLDS RE-ENTRY POINT TO START BLOCKED TRANSFER
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 13
LOW CORE -- KEEP-ALIVE DATA BASE
725 .SBTTL LOW CORE -- KEEP-ALIVE DATA BASE
726
727 001376 KPAL0::
728 001376 000000 000000 000000 .WORD 0,0,0 ; 10 KEEP ALIVE
729 001404 OKPAL0::
730 001404 000000 .WORD 0 ; SAVED KEEP ALIVE
731 001406 KPAL1::
732 001406 000000 .WORD 0 ; [4.1.1104] 11 KEEP ALIVE
733 001410 .KPAC::
734 001410 000005 .WORD 5 ; COUNTER FOR KEEP-ALIVE.
735 001412 .KACFL::
736 001412 000001 .WORD 1 ; [4.2107] FLAG TO ALLOW XCT 71
737 ; [4.2107] OR DUMP/RELOAD ON KEEP-ALIVE CEASE
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 14
LOW CORE -- CORE MANAGER DATA BASE
739 .SBTTL LOW CORE -- CORE MANAGER DATA BASE
740
741 076000 .BGBST==76000 ; START OF BIG BUFFER
742 002000 .BGLEN==2000 ; LENGTH OF BIG BUFFER
743
744 ;
745 ; POOL FREE CORE AREA
746 ;
747 001414 .BGBUF::
748 001414 076000 .WORD .BGBST ; BIG BUFFER SPACE (1000 EACH)
749 001416 002000 .WORD .BGLEN
750
751 001420 .FREPL::
752 001420 000000 .WORD 0 ; FREE POOL BASE ADDRESS
753 001422 000000 .WORD 0 ; FREE POOL SIZE IN BYTES
754
755 001424 .POLLH::
756 001424 001430' .WORD .POLST ; HEAD OF POOL
757 001426 002330' .WORD .POLND ; END OF POOL
758
759 001430 .POLST::
760 001430 001470' .WORD .+40
761 001432 001424' .WORD .POLLH
762 001434 .BLKW 14.
763
764 000015 .REPT 15
765 .WORD .+40
766 .WORD .-40
767 .BLKW 14.
768 .ENDR
001470 001530' .WORD .+40
001472 001432' .WORD .-40
001530 001570' .WORD .+40
001532 001472' .WORD .-40
001570 001630' .WORD .+40
001572 001532' .WORD .-40
001630 001670' .WORD .+40
001632 001572' .WORD .-40
001670 001730' .WORD .+40
001672 001632' .WORD .-40
001730 001770' .WORD .+40
001732 001672' .WORD .-40
001770 002030' .WORD .+40
001772 001732' .WORD .-40
002030 002070' .WORD .+40
002032 001772' .WORD .-40
002070 002130' .WORD .+40
002072 002032' .WORD .-40
002130 002170' .WORD .+40
002132 002072' .WORD .-40
002170 002230' .WORD .+40
002172 002132' .WORD .-40
002230 002270' .WORD .+40
002232 002172' .WORD .-40
002270 002330' .WORD .+40
002272 002232' .WORD .-40
769
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 14-1
LOW CORE -- CORE MANAGER DATA BASE
770 002330 .POLND::
771 002330 001424' .WORD .POLLH
772 002332 002272' .WORD .-40
773 002334 .BLKW 14.
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 15
LOW CORE -- CLOCK REQUEST LIST
775 .SBTTL LOW CORE -- CLOCK REQUEST LIST
776
777 ;
778 ; CLOCK LIST (LIST OF ENTRIES IN THE CLOCK QUEUE TO RECEIVE
779 ; EVENT FLAGS SET ON COMPLETION OF CLOCK TIMER
780 ;
781 000007 .CLKSZ==7. ; CLOCK QUEUE SIZE
782 000014 C.SZ=14 ; CLOCK ENTRY SIZE LOCAL DEFINITION (NOTE: IS A GLOBAL VAR.)
783
784 002370 .CLKBA::
785 002370 007152' .WORD TTYTSK
786 002372 000000 .WORD 0
787 002374 000074 .WORD .CYLTM
788 002376 000074 .WORD .CYLTM
789 002400 000100 .WORD EF.TMO
790 002402 007172' .WORD TTYTSK+A.EF
791 000074 .REPT .CLKSZ-2*C.SZ
792 .WORD 0
793 .ENDR
002404 000000 .WORD 0
002406 000000 .WORD 0
002410 000000 .WORD 0
002412 000000 .WORD 0
002414 000000 .WORD 0
002416 000000 .WORD 0
002420 000000 .WORD 0
002422 000000 .WORD 0
002424 000000 .WORD 0
002426 000000 .WORD 0
002430 000000 .WORD 0
002432 000000 .WORD 0
002434 000000 .WORD 0
002436 000000 .WORD 0
002440 000000 .WORD 0
002442 000000 .WORD 0
002444 000000 .WORD 0
002446 000000 .WORD 0
002450 000000 .WORD 0
002452 000000 .WORD 0
002454 000000 .WORD 0
002456 000000 .WORD 0
002460 000000 .WORD 0
002462 000000 .WORD 0
002464 000000 .WORD 0
002466 000000 .WORD 0
002470 000000 .WORD 0
002472 000000 .WORD 0
002474 000000 .WORD 0
002476 000000 .WORD 0
002500 000000 .WORD 0
002502 000000 .WORD 0
002504 000000 .WORD 0
002506 000000 .WORD 0
002510 000000 .WORD 0
002512 000000 .WORD 0
002514 000000 .WORD 0
002516 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 15-1
LOW CORE -- CLOCK REQUEST LIST
002520 000000 .WORD 0
002522 000000 .WORD 0
002524 000000 .WORD 0
002526 000000 .WORD 0
002530 000000 .WORD 0
002532 000000 .WORD 0
002534 000000 .WORD 0
002536 000000 .WORD 0
002540 000000 .WORD 0
002542 000000 .WORD 0
002544 000000 .WORD 0
002546 000000 .WORD 0
002550 000000 .WORD 0
002552 000000 .WORD 0
002554 000000 .WORD 0
002556 000000 .WORD 0
002560 000000 .WORD 0
002562 000000 .WORD 0
002564 000000 .WORD 0
002566 000000 .WORD 0
002570 000000 .WORD 0
002572 000000 .WORD 0
794 002574 .CLKEA::
795 002574 000000 .WORD 0 ; END OF CLOCK LIST
796
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 17
LOW CORE -- TERMINAL SERVICE DATA BASE
816 .SBTTL LOW CORE -- TERMINAL SERVICE DATA BASE
817
818 002576 .INHDM::
819 002576 000001 .WORD 1 ; INBIBIT/ENABLE REMOTE LINES (0)=ENABLE
820 002600 .ABCNT::
821 002600 000000 .WORD 0 ; COUNT OF AUTO BAUDED LINES
822 002602 .ABFLG::
823 002602 000000 .WORD 0 ; FLAG FOR "SETSPD"
824 ;
825 ; SENDALL MESSAGE POINTERS
826 ;
827 002604 .SNDLP::
828 002604 000000 .WORD 0 ; POINTER TO SENDALL BUFFER IN USE
829 002606 .SNDBF::
830 002606 000000 000000 000000 .WORD 0,0,0,0 ; SENDALL BUFFER RING
002614 000000
831 002616 .SNDCN::
832 002616 000000 000000 000000 .WORD 0,0,0,0 ; SENDALL TTY COUNT (THIS AND ABOVE MUST BE TOGETHER)
002624 000000
833 002626 .CRSND::
834 002626 000000 .WORD 0 ; CURRENT SENDALL NODE POINTER -- USED BY ..STTY
835 002630 .BRKCH::
836 002630 000034 .WORD '\-100 ; BREAK CHARACTER (^\)
837 002632 .TTP11::
838 002632 000000 .WORD 0 ; TTY PDP11 INPUT IN PROGRESS
839 002634 .CTYPT::
840 002634 CTYPTR::
841 002634 002776' .WORD DLTBL ; CONSOLE TTY TABLE POINTER
842 002636 .KLNPT::
843 002636 KLNPTR::
844 002636 003006' .WORD DLETBL ; KLINIK LINE POINTER
845 002640 $UNIT::
846 002640 000000 .WORD 0 ; DH-11 UNIT NUMBER IF CTY
847 002642 $BTMSK::
848 002642 000000 .WORD 0 ; MASK TO START CONSOLE TTY (DH-11)
849 002644 DMTMP::
850 002644 000000 .WORD 0 ; TEMPORARY STORAGE FOR DM-11/BB CONTROLLER NUMBER
851 002646 DHTMP::
852 002646 000000 .WORD 0 ; TEMPORARY STORAGE FOR DH-11 CONTROLLER NUMBER
853 002650 DLTMP::
854 002650 000000 .WORD 0 ; TEMPORARY STORAGE FOR DL-11 CONTROLLER NUMBER
855 002652 DHSTSV::
856 002652 000000 .WORD 0 ; DH-11 TABLE POINTER SAVE
857 002654 .TTELQ::
858 002654 000000 .WORD 0 ; [4.2245] TERMINAL ERROR LOGGING QUEUE POINTER
859 ;
860 ; THE NEXT TWO WORDS MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
861 ;
862 002656 .TTELC::
863 002656 000000 .WORD 0 ; [5.1008] COUNT OF NODES IN THIS QUEUE
864 002660 .TTELB::
865 002660 000000 .WORD 0 ; [4.2245] TEMPORARY BUFFER FOR ERROR LOGGING
866 ;
867 ; THE NEXT TWO BYTES MUST REMAIN CONTIGUOUS AND IN THE SAME ORDER
868 ;
869 002662 TMOCNT::
870 002662 012 .BYTE ^D10 ; [4.2309] TERMINAL TIMEOUT COUNTER
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 17-1
LOW CORE -- TERMINAL SERVICE DATA BASE
871 002663 026 .BYTE ^D22 ; [4.2309] MODEM TIMEOUT COUNTER
872 .EVEN
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 18
LOW CORE -- PDP-11 CTY SERVICE DATA BASE
874 .SBTTL LOW CORE -- PDP-11 CTY SERVICE DATA BASE
875
876 002664 CTYSTS::
877 000020 .REPT 16. ; CONSOLE TTY STATUS BLOCK
878 .WORD 0
879 .ENDR
002664 000000 .WORD 0
002666 000000 .WORD 0
002670 000000 .WORD 0
002672 000000 .WORD 0
002674 000000 .WORD 0
002676 000000 .WORD 0
002700 000000 .WORD 0
002702 000000 .WORD 0
002704 000000 .WORD 0
002706 000000 .WORD 0
002710 000000 .WORD 0
002712 000000 .WORD 0
002714 000000 .WORD 0
002716 000000 .WORD 0
002720 000000 .WORD 0
002722 000000 .WORD 0
880 002724 CNT::
881 002724 000000 .WORD 0
882 002726 BYCNT::
883 002726 000000 .WORD 0
884 002730 CRADR::
885 002730 000000 .WORD 0
886 002732 TTPKT::
887 002732 000000 .WORD 0 ; I/O PACKET ADDRESS
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 19
LOW CORE -- TERMINAL DRIVER DATA BASE
889 .SBTTL LOW CORE -- TERMINAL DRIVER DATA BASE
890
891 ;
892 ; TTY TABLES
893 ;
894 ; CONTROLLER IMPURE DATA TABLES (INDEXED BY CONTROLLER (UNIT) NUMBER)
895 ;
896
897 002734 DMTBL::
898 002734 170500 003046' .WORD 170500,DHTBL ; DM11BB TABLE
899 002740 170510 003246' .WORD 170510,16.*8.+DHTBL
900 002744 170520 003446' .WORD 170520,16.*8.*2.+DHTBL
901 002750 170530 003646' .WORD 170530,16.*8.*3.+DHTBL
902 002754 170540 004046' .WORD 170540,16.*8.*4.+DHTBL
903 002760 170550 004246' .WORD 170550,16.*8.*5.+DHTBL
904 002764 170560 004446' .WORD 170560,16.*8.*6.+DHTBL
905 002770 170570 004646' .WORD 170570,16.*8.*7.+DHTBL
906 002774 000000 .WORD 0 ; [5.1004] END OF TABLE MARKER
907 002776' DMTBE==.
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 20
LOW CORE -- DATA LINE SCANNER DATA BASE
909 .SBTTL LOW CORE -- DATA LINE SCANNER DATA BASE
910
911 ; THE DATA LINE SCANNER TABLE IS ORGANIZED AS FOLLOWS:
912 ; THE DL-11'S ARE FIRST IN THE TABLE AND THE DL-11C (CTY) IS UNIT 0,
913 ; THE DL-11E(S) FOLLOW AND BEGIN AT UNIT 1. THE DH-11'S FOLLOW THE
914 ; DL-11E'S
915 ;
916 ; ALL TERMINALS HAVE A FOUR WORD ENTRY IN THE FOLLOWING FORMAT:
917 ;
918 ; +----------------------------------+
919 ; ! OUTPUT THREAD LIST POINTER !
920 ; +----------------------------------+
921 ; ! EXTERNAL PAGE POINTER !
922 ; +----------------------------------+
923 ; ! TERMINAL SPEED WORD !
924 ; +----------------------------------+
925 ; ! TERMINAL STATUS WORD !
926 ; +----------------------------------+
927
928 002776 TTTBL:: ; START OF DATA LINE SCANNER TABLE
929 002776 DLTBL::
930 002776 000000 177560 000000 .WORD 0,177560,0,TT.CTY ; TERMINAL STATUS FOR DL-11C
003004 000002
931 003006 DLETBL:: ; DL-11E TABLE
932 003006 000000 175610 000000 .WORD 0,175610,0,TT.RMT ; DL-11E # 0 (KLINIK)
003014 000100
933 003016 000000 175630 000000 .WORD 0,175630,0,TT.RMT ; DL-11E # 1
003024 000100
934 003026 000000 175640 000000 .WORD 0,175640,0,TT.RMT ; DL-11E # 2
003034 000100
935 003036 000000 175650 000000 .WORD 0,175650,0,TT.RMT ; DL-11E # 3
003044 000100
936 000005 DLCNT ==.-DLTBL/8. ; NUMBER OF DL-11'S
937 000004 DLECNT ==.-DLETBL/8. ; NUMBER OF DL-11E'S
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 21
LOW CORE -- DH-11 DATA BASE
939 .SBTTL LOW CORE -- DH-11 DATA BASE
940
941 003046 DHTBL::
942 000020 .REPT 16.
943 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
944 .ENDR
003046 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003054 000000
003056 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003064 000000
003066 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003074 000000
003076 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003104 000000
003106 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003114 000000
003116 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003124 000000
003126 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003134 000000
003136 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003144 000000
003146 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003154 000000
003156 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003164 000000
003166 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003174 000000
003176 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003204 000000
003206 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003214 000000
003216 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003224 000000
003226 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003234 000000
003236 000000 160020 016003 .WORD 0,160020,16003,0 ; DH-11 MUX CONRTOLLER 0
003244 000000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 22
LOW CORE -- DH-11 DATA BASE
946 000020 .REPT 16.
947 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
948 .ENDR
003246 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003254 000000
003256 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003264 000000
003266 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003274 000000
003276 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003304 000000
003306 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003314 000000
003316 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003324 000000
003326 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003334 000000
003336 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003344 000000
003346 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003354 000000
003356 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003364 000000
003366 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003374 000000
003376 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003404 000000
003406 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003414 000000
003416 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003424 000000
003426 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003434 000000
003436 000000 160040 016003 .WORD 0,160040,16003,0 ; DH-11 MUX CONTROLLER 1
003444 000000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 23
LOW CORE -- DH-11 DATA BASE
950 000020 .REPT 16.
951 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
952 .ENDR
003446 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003454 000000
003456 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003464 000000
003466 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003474 000000
003476 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003504 000000
003506 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003514 000000
003516 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003524 000000
003526 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003534 000000
003536 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003544 000000
003546 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003554 000000
003556 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003564 000000
003566 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003574 000000
003576 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003604 000000
003606 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003614 000000
003616 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003624 000000
003626 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003634 000000
003636 000000 160060 016003 .WORD 0,160060,16003,0 ; DH-11 MUX CONTROLLER 2
003644 000000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 24
LOW CORE -- DH-11 DATA BASE
954 000020 .REPT 16.
955 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
956 .ENDR
003646 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003654 000000
003656 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003664 000000
003666 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003674 000000
003676 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003704 000000
003706 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003714 000000
003716 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003724 000000
003726 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003734 000000
003736 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003744 000000
003746 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003754 000000
003756 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003764 000000
003766 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
003774 000000
003776 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
004004 000000
004006 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
004014 000000
004016 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
004024 000000
004026 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
004034 000000
004036 000000 160100 016003 .WORD 0,160100,16003,0 ; DH-11 MUX CONTROLLER 3
004044 000000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 25
LOW CORE -- DH-11 DATA BASE
958 000020 .REPT 16.
959 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
960 .ENDR
004046 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004054 000000
004056 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004064 000000
004066 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004074 000000
004076 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004104 000000
004106 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004114 000000
004116 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004124 000000
004126 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004134 000000
004136 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004144 000000
004146 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004154 000000
004156 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004164 000000
004166 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004174 000000
004176 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004204 000000
004206 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004214 000000
004216 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004224 000000
004226 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004234 000000
004236 000000 160120 016003 .WORD 0,160120,16003,0 ; DH-11 MUX CONTROLLER 4
004244 000000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 26
LOW CORE -- DH-11 DATA BASE
962 000020 .REPT 16.
963 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
964 .ENDR
004246 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004254 000000
004256 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004264 000000
004266 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004274 000000
004276 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004304 000000
004306 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004314 000000
004316 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004324 000000
004326 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004334 000000
004336 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004344 000000
004346 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004354 000000
004356 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004364 000000
004366 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004374 000000
004376 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004404 000000
004406 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004414 000000
004416 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004424 000000
004426 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004434 000000
004436 000000 160140 016003 .WORD 0,160140,16003,0 ; DH-11 MUX CONTROLLER 5
004444 000000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 27
LOW CORE -- DH-11 DATA BASE
966 000020 .REPT 16.
967 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
968 .ENDR
004446 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004454 000000
004456 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004464 000000
004466 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004474 000000
004476 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004504 000000
004506 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004514 000000
004516 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004524 000000
004526 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004534 000000
004536 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004544 000000
004546 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004554 000000
004556 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004564 000000
004566 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004574 000000
004576 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004604 000000
004606 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004614 000000
004616 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004624 000000
004626 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004634 000000
004636 000000 160160 016003 .WORD 0,160160,16003,0 ; DH-11 MUX CONTROLLER 6
004644 000000
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 28
LOW CORE -- DH-11 DATA BASE
970 000020 .REPT 16.
971 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
972 .ENDR
004646 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004654 000000
004656 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004664 000000
004666 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004674 000000
004676 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004704 000000
004706 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004714 000000
004716 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004724 000000
004726 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004734 000000
004736 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004744 000000
004746 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004754 000000
004756 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004764 000000
004766 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
004774 000000
004776 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
005004 000000
005006 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
005014 000000
005016 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
005024 000000
005026 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
005034 000000
005036 000000 160200 016003 .WORD 0,160200,16003,0 ; DH-11 MUX CONTROLLER 7
005044 000000
973
974 000200 DHCNT ==.-DHTBL/8. ; COUNT OF DH-11'S
975 000205 TTCNT ==.-TTTBL/8. ; NUMBER OF ENTRIES OF DATA LINE SCANNER TABLE
976 005046' TTYEND==.
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 29
LOW CORE -- DH-11 DATA BASE
978 ;
979 ; TERMINAL INPUT CONTROL TABLE, ONE WORD PER LINE
980 ;
981 005046 .TTS2F::
982 005046 000000 .WORD 0 ; [5.1015] FLAG FOR CLOCK SERVICE
983 005050 .S2IDC::
984 005050 000000 .WORD 0 ; [4.1.1092] CURRENT COUNT OF LOCALLY DISABLED LINES
985 005052 .S2ITP::
986 005052 002776' .WORD TTTBL ; [4.1.1092] TABLE POSITION OF LAST LOCALLY ENABLED LINE
987 005054 .IBFLO::
988 005054 001600 .WORD 1600 ; [4.1.1092] INPUT BUFFER LOW THRESHOLD
989 005056 .IBFOK::
990 005056 002000 .WORD 2000 ; [4.1.1092] INPUT BUFFER OK THRESHOLD
991 005060 STSW2::
992 005060 .BLKW TTCNT ; [5.1015] STATUS BLOCK FOR EACH LINE
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 31
LOW CORE -- FLOPPY DRIVER DATA BASE
1012 .SBTTL LOW CORE -- FLOPPY DRIVER DATA BASE
1013
1014 005472 DXRTC::
1015 005472 000000 .WORD 0 ; ERROR RETRY COUNT FOR CURRENT UNIT
1016 005474 DXCNT::
1017 005474 000000 .WORD 0 ; BYTE COUNT
1018 005476 DXBUF::
1019 005476 000000 .WORD 0 ; CURRENT ADDRESS POINTER
1020 005500 DXVCB::
1021 005500 .BLKW 6
1022 005514 DXUNIT::
1023 005514 000000 .WORD 0 ; CURRENT UNIT
1024 005516 DXPKT::
1025 005516 000000 .WORD 0 ; I/O PACKET ADDRESS
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 32
LOW CORE -- DISC DRIVER DATA BASE
1028 .SBTTL LOW CORE -- DISC DRIVER DATA BASE
1029
1030 005520 RPRTC::
1031 005520 000000 .WORD 0 ; RETRY COUNT FOR CURRENT OPERATION
1032 005522 RPRNA::
1033 005522 000000 .WORD 0 ; ADDRESS OF RNA
1034 005524 RPBUF::
1035 005524 000000 000000 .WORD 0,0 ; BUFFER ADDRESS
1036 005530 RPCNT::
1037 005530 000000 .WORD 0 ; SIZE
1038 005532 RPUNIT::
1039 005532 000000 .WORD 0 ; CURRENT UNIT
1040 005534 RPCW2::
1041 005534 000000 .WORD 0
1042 005536 .RPELQ::
1043 005536 000000 .WORD 0 ; [5.1009] RH-11 ERROR LOGGING QUEUE LISTHEAD
1044 005540 .RPELC::
1045 005540 000000 .WORD 0 ; [5.1009] RH-11 ERROR LOGGING QUEUE COUNT
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 33
LOW CORE -- FE DRIVER DATA BASE
1047 .SBTTL LOW CORE -- FE DRIVER DATA BASE
1048
1049 005542 FETBL::
1050 005542 000000 .WORD 0 ; ENTRY FOR FE0:
1051 005544 000000 .WORD 0 ; ENTRY FOR FE1:
1052 005546 000000 .WORD 0 ; ENTRY FOR FE2:
1053 005550 000000 .WORD 0 ; ENTRY FOR FE3:
1054 005552 NODADR::
1055 005552 000000 .WORD 0
1056 005554 ADRSAV::
1057 005554 000000 .WORD 0 ; ADDRESS SAVED
1058 005556 BYTESA::
1059 005556 000000 .WORD 0 ; COUNT
1060 005560 STSWD::
1061 005560 000000 000000 .WORD 0,0 ; STATUS WORDS
1062 005564 TO10PK::
1063 005564 000000 .WORD 0 ; -11 REQUEST TO -10
1064 005566 .BLKB 20
1065 005606 DNBLK::
1066 005606 000000 .WORD 0 ; RESPONSE TO -10 REQUEST
1067 005610 DNFCN::
1068 005610 000000 .WORD 0
1069 005612 000000 000000 .WORD 0,0
1070 005616 DNSTS::
1071 005616 000000 000000 .WORD 0,0
1072 005622 000000 .WORD 0
1073 005624 BLKTT::
1074 005624 .BLKW 20
1075 005664 .RPUNT::
1076 005664 000000 .WORD 0 ; RP UNIT NUMBER FOR RPADR ETC.
1077 005666 .FEACT::
1078 005666 000000 .WORD 0 ; FE DEVICE AVAILABLE FOR DB ACCESS WHEN .NE. 0
1079 005670 .RPADR::
1080 005670 000000 000000 .WORD 0,0 ; !!!!RPADR AND RPSIZ MUST BE IN THIS ORDER
1081 005674 .RPSIZ::
1082 005674 000000 000000 .WORD 0,0 ; !!!
1083
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 34
LOW CORE -- CD-11 DRIVER DATA BASE
1086 .SBTTL LOW CORE -- CD-11 DRIVER DATA BASE
1087
1088 177160 CDST==177160 ; CONTROL AND STATUS REGISTER ADDRESS
1089 177162 CDCC==177162 ; COLUMN COUNT REGISTER ADDRESS
1090 177164 CDBA==177164 ; BUS ADDRESS REGISTER ADDRESS
1091 177166 CDDB==177166 ; DATA BUFFER REGISTER ADDRESS
1092
1093 005700 CREVFG::
1094 005700 005702' .WORD CRCEVF ; ADDRESS OF CR TASK'S EVENT FLAGS
1095 005702 CRCEVF::
1096 005702 .BLKW 1 ; CURRENT EVENT FLAGS
1097 005704 CRHUNG::
1098 005704 000000 .WORD 0 ; # TIMES CR WAS CAUGHT SNOOZING
1099 005706 .CRPFL::
1100 005706 000000 .WORD 0 ; POWER FAIL FLAG FOR CARD READER
1101 ;
1102 005710 CRSTBH::
1103 005710 .BLKW 1 ; HEADER WORD (UNIT/BYTE COUNT) OF STATUS BLOCK
1104 005712 CRSTBK::
1105 005712 .BLKW 2+1+<<CDDB+2-CDST>/2> ; STATUS RETURN BLOCK TO -10
1106 000016 CRSTLN==.-CRSTBK
1107 ;
1108 005730 CRBUFH::
1109 005730 .BLKW 1 ; HEADER WORD (UNIT/BYTE COUNT) OF DATA BUFFER
1110 005732 CRBUFF::
1111 005732 .BLKW 80. ; DATA BUFFER FROM CD-11
1112 000240 CRBFLN==.-CRBUFF
1113 006172 000000 .WORD 0 ; FOR OVERRUN
1114 ;
1115 ; CR DEVICE STATUS TABLE
1116 ;
1117 006174 CRTBL::
1118 006174' CRTHD==. ; THREADED LIST POINTER (FOR ..STCR)
1119 006174 000000 .WORD 0
1120 006176' CREXP==. ; EXTERNAL PAGE ADDR OF CD-11
1121 006176 177160 .WORD CDST
1122 006200' CRSTS==. ; STATUS BITS
1123 006200 000000 .WORD 0
1124 006202 000000 .WORD 0 ; (NOT USED)
1125 ;
1126 000010 CRSIZE==.-CRTBL
1127
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 35
LOW CORE -- LP-20 DRIVER DATA BASE
1131 .SBTTL LOW CORE -- LP-20 DRIVER DATA BASE
1132
1133 175400 LPEXPA==175400 ; EXTERNAL PAGE ADDRESS OF LPCSRA
1134 000020 LPEXPZ==20 ; SIZE OF EXTERNAL PAGE ADDRESSES IN BYTES
1135
1136 ;
1137 ; MISCELLANEOUS VARIABLES
1138 ;
1139 006204 LPUNIT::
1140 006204 .BLKW 1 ; LP UNIT # FROM PS ON INTERRUPT
1141 ;
1142 006206 LPEVFG::
1143 006206 006210' .WORD LPCEVF ; ADDRESS OF WHERE TO SET EVENT FLAGS FOR LP TASK
1144 ;
1145 006210 LPCEVF::
1146 006210 .BLKW 1 ; CURRENT EVENT FLAGS
1147 ;
1148 006212 LPHUNG::
1149 006212 000000 .WORD 0 ; COUNT OF # TIMES LP WAS HUNG
1150 ;
1151 006214 .LPPFL::
1152 006214 000000 .WORD 0 ; POWER FAIL FLAG
1153 ;
1154 006216 LPSTBH::
1155 006216 .BLKW 1 ; HEADER WORD (UNIT/BYTE COUNT)
1156 006220 LPSTBK::
1157 006220 .BLKB 4+2+2+LPEXPZ ; STATUS RETURN BLOCK TO -10
1158 .EVEN
1159 000030 LPSTLN==.-LPSTBK
1160 ;
1161 ;
1162 ; LP DEVICE STATUS TABLE
1163 ; ONE ENTRY FOR EVERY LP, SIZE= LPSIZE
1164 ;
1165 006250 LPTBL::
1166 000000 $$$UNI=0 ; START WITH UNIT 0
1167 000002 .REPT L$$P20 ; MAKE ONE FOR EACH LP
1168 ;
1169 LPSTS== 0 ; MISC STATUS BITS: *** MUST BE ZERO ***
1170 .WORD $$$UNI
1171 LPCSA== 2 ; EXTERNAL PAGE ADDRESS FOR THIS LP
1172 .WORD LPEXPA+<20*$$$UNI>
1173 LPTHD== 4 ; POINTER TO THREADED OUTPUT QUEUE
1174 ; ZERO IF NO QUEUE
1175 .WORD 0
1176 LPITH== 6 ; INTERRUPT-LEVEL THREAD POINTER
1177 ; POINTS TO CURRENT BUFFER BEING
1178 ; OUTPUT AT INTERRUPT LEVEL
1179 .WORD 0
1180 ;
1181 $$$UNI=$$$UNI+1
1182 .ENDR
006250 000000 .WORD $$$UNI
006252 175400 .WORD LPEXPA+<20*$$$UNI>
006254 000000 .WORD 0
006256 000000 .WORD 0
006260 000001 .WORD $$$UNI
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 35-1
LOW CORE -- LP-20 DRIVER DATA BASE
006262 175420 .WORD LPEXPA+<20*$$$UNI>
006264 000000 .WORD 0
006266 000000 .WORD 0
1183 000010 LPSIZE==<.-LPTBL>/L$$P20 ; SIZE OF EACH ENTRY
1184 ;
1185 ; SECOND (PARALLEL) LP TABLE-- INDEXES ARE FROM LPTBL
1186 ;
1187 006270 LPTBL2::
1188 000010 .REPT LPSIZE*L$$P20/2 ; MAKE SPACE
1189 .WORD 0
1190 .ENDR
006270 000000 .WORD 0
006272 000000 .WORD 0
006274 000000 .WORD 0
006276 000000 .WORD 0
006300 000000 .WORD 0
006302 000000 .WORD 0
006304 000000 .WORD 0
006306 000000 .WORD 0
1191 ;
1192 000020 LPMCB== 0+LPTBL2-LPTBL ; MULTI-CHARACTER BUFFER (TWO BYTES)
1193 000022 LPCSM== 2+LPTBL2-LPTBL ; ACCUMULATED CHECKSUM (LOW BYTE IS TRASH)
1194 000024 LPRTY== 4+LPTBL2-LPTBL ; RETRY COUNTER
1195 ;
1196 ; THIRD (PARALLEL) LP TABLE-- INDEXES ARE ALSO FROM LPTBL
1197 ;
1198 006310 LPTBL3::
1199 000010 .REPT LPSIZE*L$$P20/2 ; MAKE SPACE
1200 .WORD 0
1201 .ENDR
006310 000000 .WORD 0
006312 000000 .WORD 0
006314 000000 .WORD 0
006316 000000 .WORD 0
006320 000000 .WORD 0
006322 000000 .WORD 0
006324 000000 .WORD 0
006326 000000 .WORD 0
1202 ;
1203 000040 LPRMA== 0+LPTBL3-LPTBL ; RAM/VFU DATA ADDRESS
1204 000042 LPRMZ== 2+LPTBL3-LPTBL ; RAM/VFU DATA BUFFER SIZE
1205 000044 LPRMC== 4+LPTBL3-LPTBL ; CURRENT POINTER INTO RAM/VFU DATA
1206 ;
1207 ; POINTERS TO LPTBL BY UNIT NUMBER
1208 ;
1209 006330 LPUTBL::
1210 000000 $$$UNI=0
1211 000002 .REPT L$$P20 ; ONE PER LP
1212 .WORD LPTBL+<$$$UNI*LPSIZE>
1213 $$$UNI=$$$UNI+1
1214 .ENDR
006330 006250' .WORD LPTBL+<$$$UNI*LPSIZE>
006332 006260' .WORD LPTBL+<$$$UNI*LPSIZE>
1215
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 36
LOW CORE -- STD (SYSTEM TASK DIRECTORY)
1218 .SBTTL LOW CORE -- STD (SYSTEM TASK DIRECTORY)
1219
1220 ;
1221 ; SYSTEM TASK DIRECTORY
1222 ;
1223 006334 .STDTA::
1224 006334 006342' .WORD .STDTB ; STD ALPHA TABLE ADDRESS
1225 006336 .STDTC::
1226 006336 000044 .WORD 36. ; STD ALPHA TABLE MAX SIZE *2
1227 006340 .STDTZ::
1228 006340 000024 .WORD 24 ; STD "SIZE" (2N-2)
1229 ;
1230 006342 .STDTB::
1232 006342 006746' .WORD STDCDR ; CARD READER ENTRY
1234 006344 006406' .WORD STDDTE ; DTE CLOCK ENTRY
1239 006346 006446' .WORD STDFED ; FE DRIVER
1242 006350 006506' .WORD STDDX ; FLOPPY DRIVER
1245 006352 006546' .WORD STDF11 ; F11ACP
1248 006354 006706' .WORD STDLPT ; LP20
1250 006356 007046' .WORD STDQPR ; QUEUE'D PROTOCOL
1252 006360 006606' .WORD STDRPT ; RP04 ENTRY
1254 006362 007006' .WORD STDTTY ; TTY ENTRY
1256 006364 006646' .WORD STDINS ; INSTALL
1258 006366 000000 000000 000000 .WORD 0,0,0,0,0,0,0
006374 000000 000000 000000
006402 000000
1278 006404 000000 .WORD 0
1280 ;
1281 ;
1282 ;
1283 006406 STDDTE::
1284 006406 .STDEN DTE20,DTETPD,SF.TA!SF.FX!SF.ST,200,0,DTEHD,0,0,0,0,0,0
006406 016045 146260 .RAD50 "DTE20"
006412 007572' .WORD DTETPD
006414 100003 .WORD SF.TA!SF.FX!SF.ST
006416 200 000 .BYTE 200,0
006420 024652' .WORD DTEHD
006422 000000 .WORD 0
006424 000000 .WORD 0
006426 000000 .WORD 0
006430 000000 .WORD 0
006432 006432' .WORD .
006434 006432' .WORD .-2
006436 000000 .WORD 0
006440 000000 .WORD 0
006442 000000 .WORD 0
006444 000000 .WORD 0
1286 ;
1287 006446 STDFED::
1288 006446 .STDEN FE....,FETPD,SF.TA!SF.FX!SF.ST,176,0,FEHD,0,0,0,0,0,0
006446 023144 131574 .RAD50 "FE...."
006452 007612' .WORD FETPD
006454 100003 .WORD SF.TA!SF.FX!SF.ST
006456 176 000 .BYTE 176,0
006460 000000G .WORD FEHD
006462 000000 .WORD 0
006464 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 36-1
LOW CORE -- STD (SYSTEM TASK DIRECTORY)
006466 000000 .WORD 0
006470 000000 .WORD 0
006472 006472' .WORD .
006474 006472' .WORD .-2
006476 000000 .WORD 0
006500 000000 .WORD 0
006502 000000 .WORD 0
006504 000000 .WORD 0
1296 ;
1297 006506 STDDX::
1298 006506 .STDEN DX....,DXTPD,SF.TA!SF.FX!SF.ST,176,0,DXHD,0,0,0,0,0,0
006506 016334 131574 .RAD50 "DX...."
006512 007732' .WORD DXTPD
006514 100003 .WORD SF.TA!SF.FX!SF.ST
006516 176 000 .BYTE 176,0
006520 000000G .WORD DXHD
006522 000000 .WORD 0
006524 000000 .WORD 0
006526 000000 .WORD 0
006530 000000 .WORD 0
006532 006532' .WORD .
006534 006532' .WORD .-2
006536 000000 .WORD 0
006540 000000 .WORD 0
006542 000000 .WORD 0
006544 000000 .WORD 0
1301 ;
1302 006546 STDF11::
1304 006546 .STDEN F11ACP,F11TPD,SF.ST,220,<<DX0PEN-.PUDBA>/U.SZ>,145400,7700,0,145400,145400,0,5
006546 025167 003310 .RAD50 "F11ACP"
006552 007772' .WORD F11TPD
006554 100000 .WORD SF.ST
006556 220 011 .BYTE 220,<DX0PEN-.PUDBA>/U.SZ
006560 145400 .WORD 145400
006562 007700 .WORD 7700
006564 000000 .WORD 0
006566 145400 .WORD 145400
006570 145400 .WORD 145400
006572 006572' .WORD .
006574 006572' .WORD .-2
006576 000000 .WORD 0
006600 000000 .WORD 0
006602 000005 .WORD 5
006604 000000 .WORD 0
1314 ;
1315 006606 STDRPT::
1316 006606 .STDEN RP....,RPTPD,SF.TA!SF.FX!SF.ST,176,0,RPHD,0,0,0,0,0,0
006606 071434 131574 .RAD50 "RP...."
006612 007752' .WORD RPTPD
006614 100003 .WORD SF.TA!SF.FX!SF.ST
006616 176 000 .BYTE 176,0
006620 000000G .WORD RPHD
006622 000000 .WORD 0
006624 000000 .WORD 0
006626 000000 .WORD 0
006630 000000 .WORD 0
006632 006632' .WORD .
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 36-2
LOW CORE -- STD (SYSTEM TASK DIRECTORY)
006634 006632' .WORD .-2
006636 000000 .WORD 0
006640 000000 .WORD 0
006642 000000 .WORD 0
006644 000000 .WORD 0
1319 ;
1320 006646 STDINS::
1321 006646 .STDEN .INST.,INSTPD,SF.FX!SF.ST,200,0,INSHD,0,0,INSTAL,INSTK-16,0,0
006646 130166 074774 .RAD50 ".INST."
006652 007552' .WORD INSTPD
006654 100002 .WORD SF.FX!SF.ST
006656 200 000 .BYTE 200,0
006660 000000G .WORD INSHD
006662 000000 .WORD 0
006664 000000 .WORD 0
006666 000000G .WORD INSTAL
006670 177762G .WORD INSTK-16
006672 006672' .WORD .
006674 006672' .WORD .-2
006676 000000 .WORD 0
006700 000000 .WORD 0
006702 000000 .WORD 0
006704 000000 .WORD 0
1324 ;
1325 006706 STDLPT::
1326 006706 .STDEN LPDRV,LPTPD,SF.TA!SF.FX!SF.ST,176,0,LPHD,0,0,0,0,0,0
006706 046604 071760 .RAD50 "LPDRV"
006712 007652' .WORD LPTPD
006714 100003 .WORD SF.TA!SF.FX!SF.ST
006716 176 000 .BYTE 176,0
006720 000000G .WORD LPHD
006722 000000 .WORD 0
006724 000000 .WORD 0
006726 000000 .WORD 0
006730 000000 .WORD 0
006732 006732' .WORD .
006734 006732' .WORD .-2
006736 000000 .WORD 0
006740 000000 .WORD 0
006742 000000 .WORD 0
006744 000000 .WORD 0
1329 ;
1330 006746 STDCDR::
1331 006746 .STDEN CDDRV,CDRTPD,SF.TA!SF.FX!SF.ST,210,0,CRHD,0,0,57252,55130-16,0,0
006746 011544 071760 .RAD50 "CDDRV"
006752 007672' .WORD CDRTPD
006754 100003 .WORD SF.TA!SF.FX!SF.ST
006756 210 000 .BYTE 210,0
006760 000000G .WORD CRHD
006762 000000 .WORD 0
006764 000000 .WORD 0
006766 057252 .WORD 57252
006770 055112 .WORD 55130-16
006772 006772' .WORD .
006774 006772' .WORD .-2
006776 000000 .WORD 0
007000 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 36-3
LOW CORE -- STD (SYSTEM TASK DIRECTORY)
007002 000000 .WORD 0
007004 000000 .WORD 0
1333 ;
1334 007006 STDTTY::
1335 007006 .STDEN TTYDRV,TTYTPD,SF.TA!SF.FX!SF.ST,177,0,TTYHD,0,0,0,0,0,0
007006 100071 015746 .RAD50 "TTYDRV"
007012 007632' .WORD TTYTPD
007014 100003 .WORD SF.TA!SF.FX!SF.ST
007016 177 000 .BYTE 177,0
007020 031736' .WORD TTYHD
007022 000000 .WORD 0
007024 000000 .WORD 0
007026 000000 .WORD 0
007030 000000 .WORD 0
007032 007032' .WORD .
007034 007032' .WORD .-2
007036 000000 .WORD 0
007040 000000 .WORD 0
007042 000000 .WORD 0
007044 000000 .WORD 0
1336 ;
1337 007046 STDQPR::
1338 007046 .STDEN QDPROT,QPRTPD,SF.TA!SF.FX!SF.ST,176,0,BTPHD,0,0,0,0,0,0
007046 065360 071354 .RAD50 "QDPROT"
007052 007712' .WORD QPRTPD
007054 100003 .WORD SF.TA!SF.FX!SF.ST
007056 176 000 .BYTE 176,0
007060 016032' .WORD BTPHD
007062 000000 .WORD 0
007064 000000 .WORD 0
007066 000000 .WORD 0
007070 000000 .WORD 0
007072 007072' .WORD .
007074 007072' .WORD .-2
007076 000000 .WORD 0
007100 000000 .WORD 0
007102 000000 .WORD 0
007104 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 37
LOW CORE -- ATL (ACTIVE TASK LIST)
1340 .SBTTL LOW CORE -- ATL (ACTIVE TASK LIST)
1341
1342 ;
1343 ; ACTIVE TASK LISTHEAD
1344 ;
1345 007106 .ATLLH::
1346 007106 007112' .WORD DTETSK ; FORWARD POINTER IN ACTIVE TASK LIST
1347 007110 007512' .WORD NULTSK ; NULL TASK
1348 ;
1349 ;
1350 007112 DTETSK::
1351 007112 .ATLEN TTYTSK,.ATLLH,DTESP,0,200,DTEHD,TS.RUN,0,STDDTE,0,0,0,0,0,0,0
007112 007152' .WORD TTYTSK
007114 007106' .WORD .ATLLH
007116 025132' .WORD DTESP
007120 000000 .WORD 0
007122 000200 .WORD 200
007124 024652' .WORD DTEHD
007126 010 000 .BYTE TS.RUN,0
007130 006406' .WORD STDDTE
007132 000000 000000 .WORD 0,0
007136 000000 000000 000000 .WORD 0,0,0,0
007144 000000
007146 000000 .WORD 0
007150 000000 .WORD 0
1352 ;
1353 007152 TTYTSK::
1354 007152 .ATLEN RPTSK,DTETSK,TTYSP,0,177,TTYHD,TS.RUN,0,STDTTY,0,0,0,0,0,0,0
007152 007212' .WORD RPTSK
007154 007112' .WORD DTETSK
007156 032216' .WORD TTYSP
007160 000000 .WORD 0
007162 000177 .WORD 177
007164 031736' .WORD TTYHD
007166 010 000 .BYTE TS.RUN,0
007170 007006' .WORD STDTTY
007172 000000 000000 .WORD 0,0
007176 000000 000000 000000 .WORD 0,0,0,0
007204 000000
007206 000000 .WORD 0
007210 000000 .WORD 0
1355 ;
1357 007212 RPTSK::
1358 007212 .ATLEN LPTSK,TTYTSK,RPSTK,0,176,RPHD,TS.RUN,0,STDRPT,0,0,0,0,0,0,0
007212 007252' .WORD LPTSK
007214 007152' .WORD TTYTSK
007216 000000G .WORD RPSTK
007220 000000 .WORD 0
007222 000176 .WORD 176
007224 000000G .WORD RPHD
007226 010 000 .BYTE TS.RUN,0
007230 006606' .WORD STDRPT
007232 000000 000000 .WORD 0,0
007236 000000 000000 000000 .WORD 0,0,0,0
007244 000000
007246 000000 .WORD 0
007250 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 37-1
LOW CORE -- ATL (ACTIVE TASK LIST)
1362 ;
1364 007252 LPTSK::
1365 007252 .ATLEN CDTSK,RPTSK,LPSTK,0,176,LPHD,TS.RUN,0,STDLPT,0,0,0,0,0,0,0
007252 007312' .WORD CDTSK
007254 007212' .WORD RPTSK
007256 000000G .WORD LPSTK
007260 000000 .WORD 0
007262 000176 .WORD 176
007264 000000G .WORD LPHD
007266 010 000 .BYTE TS.RUN,0
007270 006706' .WORD STDLPT
007272 000000 000000 .WORD 0,0
007276 000000 000000 000000 .WORD 0,0,0,0
007304 000000
007306 000000 .WORD 0
007310 000000 .WORD 0
1370 007312 CDTSK::
1371 007312 .ATLEN DTTSK,LPTSK,CRSTK,CDRTPD,176,CRHD,TS.RUN,0,STDCDR,0,0,0,0,0,0,0
007312 007352' .WORD DTTSK
007314 007252' .WORD LPTSK
007316 000000G .WORD CRSTK
007320 007672' .WORD CDRTPD
007322 000176 .WORD 176
007324 000000G .WORD CRHD
007326 010 000 .BYTE TS.RUN,0
007330 006746' .WORD STDCDR
007332 000000 000000 .WORD 0,0
007336 000000 000000 000000 .WORD 0,0,0,0
007344 000000
007346 000000 .WORD 0
007350 000000 .WORD 0
1375 ;
1380 007352 DTTSK::
1382 ;
1384 007352 FETSK::
1385 007352 .ATLEN DXTSK,DTTSK,FESTK,0,176,FEHD,TS.RUN,0,STDFED,0,0,0,0,0,0,0
007352 007412' .WORD DXTSK
007354 007352' .WORD DTTSK
007356 000000G .WORD FESTK
007360 000000 .WORD 0
007362 000176 .WORD 176
007364 000000G .WORD FEHD
007366 010 000 .BYTE TS.RUN,0
007370 006446' .WORD STDFED
007372 000000 000000 .WORD 0,0
007376 000000 000000 000000 .WORD 0,0,0,0
007404 000000
007406 000000 .WORD 0
007410 000000 .WORD 0
1389 ;
1391 007412 DXTSK::
1392 007412 .ATLEN QPRTSK,FETSK,DXSTK,0,176,DXHD,TS.RUN,0,STDDX,0,0,0,0,0,0,0
007412 007452' .WORD QPRTSK
007414 007352' .WORD FETSK
007416 000000G .WORD DXSTK
007420 000000 .WORD 0
007422 000176 .WORD 176
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 37-2
LOW CORE -- ATL (ACTIVE TASK LIST)
007424 000000G .WORD DXHD
007426 010 000 .BYTE TS.RUN,0
007430 006506' .WORD STDDX
007432 000000 000000 .WORD 0,0
007436 000000 000000 000000 .WORD 0,0,0,0
007444 000000
007446 000000 .WORD 0
007450 000000 .WORD 0
1396 ;
1397 007452 QPRTSK::
1398 007452 .ATLEN NULTSK,DXTSK,.BTSTK,0,1,BTPHD,TS.RUN,0,STDQPR,0,0,0,0,0,0,0
007452 007512' .WORD NULTSK
007454 007412' .WORD DXTSK
007456 016312' .WORD .BTSTK
007460 000000 .WORD 0
007462 000001 .WORD 1
007464 016032' .WORD BTPHD
007466 010 000 .BYTE TS.RUN,0
007470 007046' .WORD STDQPR
007472 000000 000000 .WORD 0,0
007476 000000 000000 000000 .WORD 0,0,0,0
007504 000000
007506 000000 .WORD 0
007510 000000 .WORD 0
1399 ;
1400 007512 NULTSK::
1401 007512 .ATLEN .ATLLH,QPRTSK,NTKXSP,0,0,NULHD,TS.RUN,0,0,0,0,0,0,0,0,0
007512 007106' .WORD .ATLLH
007514 007452' .WORD QPRTSK
007516 012522' .WORD NTKXSP
007520 000000 .WORD 0
007522 000000 .WORD 0
007524 012242' .WORD NULHD
007526 010 000 .BYTE TS.RUN,0
007530 000000 .WORD 0
007532 000000 000000 .WORD 0,0
007536 000000 000000 000000 .WORD 0,0,0,0
007544 000000
007546 000000 .WORD 0
007550 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 38
LOW CORE -- TPD (TASK PARTITION DIRECTORY)
1403 .SBTTL LOW CORE -- TPD (TASK PARTITION DIRECTORY)
1404
1405 ;
1406 ; TASK PARTITION DIRECTORY
1407 ;
1408 007552 .TPDBA::
1410 ;
1411 007552 INSTPD::
1412 007552 .TPDEN INSTPD,INSHD,0,0,TF.OU
007552 000000 000000 .WORD 0,0
007552 035203 077604 .RAD50 "INSTPD"
007556 000000G .WORD INSHD
007560 000000 .WORD 0
007562 000000 .WORD 0
007564 000002 .WORD TF.OU
007566 007566' .WORD .
007570 007566' .WORD .-2
1414 ;
1415 007572 DTETPD::
1416 007572 .TPDEN DTETPD,DTEHD,0,0,TF.OU
007572 000000 000000 .WORD 0,0
007572 016045 077604 .RAD50 "DTETPD"
007576 024652' .WORD DTEHD
007600 000000 .WORD 0
007602 000000 .WORD 0
007604 000002 .WORD TF.OU
007606 007606' .WORD .
007610 007606' .WORD .-2
1418 ;
1419 007612 FETPD::
1420 007612 .TPDEN FETPD,FEHD,0,0,TF.OU
007612 000000 000000 .WORD 0,0
007612 023134 062240 .RAD50 "FETPD"
007616 000000G .WORD FEHD
007620 000000 .WORD 0
007622 000000 .WORD 0
007624 000002 .WORD TF.OU
007626 007626' .WORD .
007630 007626' .WORD .-2
1422 ;
1423 007632 TTYTPD::
1424 007632 .TPDEN TTYTPD,TTYHD,0,0,TF.OU
007632 000000 000000 .WORD 0,0
007632 100071 077604 .RAD50 "TTYTPD"
007636 031736' .WORD TTYHD
007640 000000 .WORD 0
007642 000000 .WORD 0
007644 000002 .WORD TF.OU
007646 007646' .WORD .
007650 007646' .WORD .-2
1426 ;
1427 007652 LPTPD::
1428 007652 .TPDEN LPTPD,LPHD,0,0,TF.OU
007652 000000 000000 .WORD 0,0
007652 046624 062240 .RAD50 "LPTPD"
007656 000000G .WORD LPHD
007660 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 38-1
LOW CORE -- TPD (TASK PARTITION DIRECTORY)
007662 000000 .WORD 0
007664 000002 .WORD TF.OU
007666 007666' .WORD .
007670 007666' .WORD .-2
1431 ;
1432 007672 CDRTPD::
1433 007672 .TPDEN CDRTPD,CRHD,0,0,TF.OU
007672 000000 000000 .WORD 0,0
007672 011562 077604 .RAD50 "CDRTPD"
007676 000000G .WORD CRHD
007700 000000 .WORD 0
007702 000000 .WORD 0
007704 000002 .WORD TF.OU
007706 007706' .WORD .
007710 007706' .WORD .-2
1435 ;
1436 007712 QPRTPD::
1437 007712 .TPDEN QPRTPD,BTPHD,0,0,TF.OU
007712 000000 000000 .WORD 0,0
007712 066322 077604 .RAD50 "QPRTPD"
007716 016032' .WORD BTPHD
007720 000000 .WORD 0
007722 000000 .WORD 0
007724 000002 .WORD TF.OU
007726 007726' .WORD .
007730 007726' .WORD .-2
1444 ;
1445 007732 DXTPD::
1446 007732 .TPDEN DXTPD,DXHD,0,0,TF.OU
007732 000000 000000 .WORD 0,0
007732 016324 062240 .RAD50 "DXTPD"
007736 000000G .WORD DXHD
007740 000000 .WORD 0
007742 000000 .WORD 0
007744 000002 .WORD TF.OU
007746 007746' .WORD .
007750 007746' .WORD .-2
1449 ;
1450 007752 RPTPD::
1451 007752 .TPDEN RPTPD,RPHD,0,0,TF.OU
007752 000000 000000 .WORD 0,0
007752 071424 062240 .RAD50 "RPTPD"
007756 000000G .WORD RPHD
007760 000000 .WORD 0
007762 000000 .WORD 0
007764 000002 .WORD TF.OU
007766 007766' .WORD .
007770 007766' .WORD .-2
1454 ;
1455 007772 F11TPD::
1456 007772 .TPDEN F11TPD,145400,12400,0,0
007772 000000 000000 .WORD 0,0
007772 025167 077604 .RAD50 "F11TPD"
007776 145400 .WORD 145400
010000 012400 .WORD 12400
010002 000000 .WORD 0
010004 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 38-2
LOW CORE -- TPD (TASK PARTITION DIRECTORY)
010006 010006' .WORD .
010010 010006' .WORD .-2
1458 ;
1459 010012 GENTPD::
1460 010012 .TPDEN GEN,100000,45400,0,0
010012 000000 000000 .WORD 0,0
010012 026226 .RAD50 "GEN"
010016 100000 .WORD 100000
010020 045400 .WORD 45400
010022 000000 .WORD 0
010024 000000 .WORD 0
010026 010026' .WORD .
010030 010026' .WORD .-2
1461 ;
1462 010032 .TPDEA:: ;END OF TPD
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 39
LOW CORE -- DEVICE QUEUE POINTERS
1464 .SBTTL LOW CORE -- DEVICE QUEUE POINTERS
1465
1466 ;
1467 ; DEVICE QUEUE POINTERS
1468 ;
1469 000020 Q.SZ=20 ; QUEUE ENTRY SIZE (NOTE:IS A GLOBAL VAR.)
1470
1471 000001 D.CCTY==1 ; DEVICE CODE FOR CTY
1472 010032 .DQPBA::
1473 010032 .DQPEN TTTBL,8.,..STTY,..STPT,IGNO,IGNO,0,TTCNT
010032 002776' .WORD TTTBL
010034 000010 .WORD 8.
010036 044726' .WORD ..STTY
010040 045142' .WORD ..STPT
010042 012140' .WORD IGNO
010044 012140' .WORD IGNO
010046 000000 .WORD 0
010050 000205 .WORD TTCNT
1474
1475 000002 D.CDL1==2 ; DEVICE CODE FOR DL-11
1476 010052 .DQDL1::
1477 010052 .DQPEN DLTBL,8.,..STTY,..STPT,IGNO,IGNO,0,DLCNT
010052 002776' .WORD DLTBL
010054 000010 .WORD 8.
010056 044726' .WORD ..STTY
010060 045142' .WORD ..STPT
010062 012140' .WORD IGNO
010064 012140' .WORD IGNO
010066 000000 .WORD 0
010070 000005 .WORD DLCNT
1478
1479 000003 D.CDH1==3 ; DEVICE CODE FOR DH-11 (1)
1480 010072 .DQDH0::
1481 010072 .DQPEN DHTBL,8.,..STTY,..STPT,IGNO,IGNO,0,DHCNT
010072 003046' .WORD DHTBL
010074 000010 .WORD 8.
010076 044726' .WORD ..STTY
010100 045142' .WORD ..STPT
010102 012140' .WORD IGNO
010104 012140' .WORD IGNO
010106 000000 .WORD 0
010110 000200 .WORD DHCNT
1482
1483 000004 D.CDLS==4 ; DEVICE CODE FOR DATA LINE SCANNER (1)
1484 010112 .DQDLS::
1485 010112 .DQPEN TTTBL,8.,..STTY,..STPT,IGNO,IGNO,0,TTCNT
010112 002776' .WORD TTTBL
010114 000010 .WORD 8.
010116 044726' .WORD ..STTY
010120 045142' .WORD ..STPT
010122 012140' .WORD IGNO
010124 012140' .WORD IGNO
010126 000000 .WORD 0
010130 000205 .WORD TTCNT
1486
1487 000005 D.CLPT==5 ; DEVICE CODE FOR LPT
1488 010132 .DQLPT::
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 39-1
LOW CORE -- DEVICE QUEUE POINTERS
1489 010132 .DQPEN LPTBL,8.,..STLP,..SPLP,IGNO,..AKLP,0,2
010132 006250' .WORD LPTBL
010134 000010 .WORD 8.
010136 000000G .WORD ..STLP
010140 000000G .WORD ..SPLP
010142 012140' .WORD IGNO
010144 000000G .WORD ..AKLP
010146 000000 .WORD 0
010150 000002 .WORD 2
1490
1491 000006 D.CCDR==6 ; DEVICE CODE FOR CDR
1492 010152 .DQCDR::
1493 010152 .DQPEN CRTBL,8.,..STCR,IGNO,IGNO,..AKCR,0,1
010152 006174' .WORD CRTBL
010154 000010 .WORD 8.
010156 000000G .WORD ..STCR
010160 012140' .WORD IGNO
010162 012140' .WORD IGNO
010164 000000G .WORD ..AKCR
010166 000000 .WORD 0
010170 000001 .WORD 1
1494
1495 000007 D.CCLK==7 ; DEVICE CODE FOR CLOCK
1496 010172 .DQPEN 0,0,IGNO,IGNO,IGNO,IGNO,0,1
010172 000000 .WORD 0
010174 000000 .WORD 0
010176 012140' .WORD IGNO
010200 012140' .WORD IGNO
010202 012140' .WORD IGNO
010204 012140' .WORD IGNO
010206 000000 .WORD 0
010210 000001 .WORD 1
1497
1498 000010 D.FEPD==10 ; PSEUDO DEVICE FOR FE
1499 010212 .DQPEN FETBL,2.,.FEST,IGNO,IGNO,.FEACK,0,4
010212 005542' .WORD FETBL
010214 000002 .WORD 2.
010216 000000G .WORD .FEST
010220 012140' .WORD IGNO
010222 012140' .WORD IGNO
010224 000000G .WORD .FEACK
010226 000000 .WORD 0
010230 000004 .WORD 4
1500
1501
1502 010232 .DQPEA:: ; END OF DEVICE QUEUE POINTER TABLE
1503 000010 .DQPSZ==.DQPEA-.DQPBA/Q.SZ ; SIZE OF DEVICE QUEUE POINTER TABLE
1504
1505 ;
1506 ; NOTE -- THESE PSUEDO-DEVICES ARE OUTPUT-ONLY AND
1507 ; ARE ASSOCIATED WITH ERROR LOGGING
1508 ;
1509 000200 D.CCPU==200 ; PSEUDO DEVICE PDP10 CPU
1510 000201 D.CKLE==201 ; KL ERROR PSEUDO DEVICE
1511 000202 D.CDTE==202 ; [5.1008] DTE-20 PSEUDO DEVICE CODE
1512 000203 D.CRJP==203 ; [5.1009] RH-11/RJP-04/06 PSEUDO DEVICE CODE
1513 000204 D.CDMB==204 ; [4.1.1091] DM-11/BB CONFIGURATION CODE
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 39-2
LOW CORE -- DEVICE QUEUE POINTERS
1514 000205 D.CLOG==205 ; ASCII 'PARSER.LOG'
1515 000210 D.CKLN==210 ; KLINIK PSEUDO-DEVICE
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 40
LOW CORE -- LOGICAL UNIT TABLES
1517 .SBTTL LOW CORE -- LOGICAL UNIT TABLES
1518
1519 ;
1520 ; LOGICAL UNIT TABLE
1521 ;
1522 010232 .PUDBA:: ; START OF LOGICAL UNIT TABLE
1523 ;
1524 000001 L.TTY==1 ; LOGICAL UNIT 1
1525 010232 TTPEN::
1526 010232 .PUDEN TT,0,0,UC.REC!UC.CCL!UC.TTY,0,0,80.,TTPEN,TTYTSK,0,0,0
010232 124 124 .ASCII "TT"
010234 000 .BYTE 0
010235 000 .BYTE 0
010236 000007 .WORD UC.REC!UC.CCL!UC.TTY
010240 000000 .WORD 0
010242 000000 .WORD 0
010244 000120 .WORD 80.
010246 000000 .WORD 0
010250 010232' .WORD TTPEN
010252 007152' .WORD TTYTSK
010254 010254' .WORD .
010256 010254' .WORD .-2
010260 000000 .WORD 0
010262 005 005 .BYTE 5,5
010264 000000 .WORD 0
010266 177777 .WORD -1
010270 135600 .RAD50 /0/
010272 000000 .WORD 0
010274 000000 .WORD 0
010276 000000 .WORD 0
010300 000000 .WORD 0
1527 ;
1528 000002 L.RP4==2
1529 ;DVCH=CH.OFF+CH.NAT*400+CH.OFF+CH.NAT
1530 110220 DVCH=110220
1531 ;FW=UF.TL!UF.RH
1532 000300 FW=300
1533 ;C1=UC.MNT!UC.F11!UC.DIR
1534 140010 C1=140010
1535 ;C1DB=UC.MNT!UC.F11!UC.DIR!UC.ETB
1536 140110 C1DB=140110
1537 ;
1539 010302 RPPEN::
1540 010302 .PUDEN DB,0,FW,C1DB,0,0,512.,RPPEN,RPTSK,DVCH,F11,0
010302 104 102 .ASCII "DB"
010304 000 .BYTE 0
010305 300 .BYTE FW
010306 140110 .WORD C1DB
010310 000000 .WORD 0
010312 000000 .WORD 0
010314 001000 .WORD 512.
010316 000000 .WORD 0
010320 010302' .WORD RPPEN
010322 007212' .WORD RPTSK
010324 010324' .WORD .
010326 010324' .WORD .-2
010330 000000 .WORD 0
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 40-1
LOW CORE -- LOGICAL UNIT TABLES
010332 005 005 .BYTE 5,5
010334 110220 .WORD DVCH
010336 177777 .WORD -1
010340 025167 .RAD50 /F11/
010342 000000 .WORD 0
010344 000000 .WORD 0
010346 000000 .WORD 0
010350 000000 .WORD 0
1541 ; THIS IS DONE TO KEEP .PUDEN MACROS SHORTER THAN 80 CHARS
1542 010346' .=.-4
1543 010346 000002 .WORD 2
1544 010350 050700 .WORD 50700 ; RP SIZE IS 140000. BLOCKS
1545 010352 .RP1PE::
1546 010352 .PUDEN DB,1,FW,C1DB,0,0,512.,.RP1PE,RPTSK,DVCH,F11,0
010352 104 102 .ASCII "DB"
010354 001 .BYTE 1
010355 300 .BYTE FW
010356 140110 .WORD C1DB
010360 000000 .WORD 0
010362 000000 .WORD 0
010364 001000 .WORD 512.
010366 000000 .WORD 0
010370 010352' .WORD .RP1PE
010372 007212' .WORD RPTSK
010374 010374' .WORD .
010376 010374' .WORD .-2
010400 000000 .WORD 0
010402 005 005 .BYTE 5,5
010404 110220 .WORD DVCH
010406 177777 .WORD -1
010410 025167 .RAD50 /F11/
010412 000000 .WORD 0
010414 000000 .WORD 0
010416 000000 .WORD 0
010420 000000 .WORD 0
1547 010416' .=.-4
1548 010416 000002 .WORD 2
1549 010420 050700 .WORD 50700
1550 010422 .RP2PE::
1551 010422 .PUDEN DB,2,FW,C1DB,0,0,512.,.RP2PE,RPTSK,DVCH,F11,0
010422 104 102 .ASCII "DB"
010424 002 .BYTE 2
010425 300 .BYTE FW
010426 140110 .WORD C1DB
010430 000000 .WORD 0
010432 000000 .WORD 0
010434 001000 .WORD 512.
010436 000000 .WORD 0
010440 010422' .WORD .RP2PE
010442 007212' .WORD RPTSK
010444 010444' .WORD .
010446 010444' .WORD .-2
010450 000000 .WORD 0
010452 005 005 .BYTE 5,5
010454 110220 .WORD DVCH
010456 177777 .WORD -1
010460 025167 .RAD50 /F11/
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 40-2
LOW CORE -- LOGICAL UNIT TABLES
010462 000000 .WORD 0
010464 000000 .WORD 0
010466 000000 .WORD 0
010470 000000 .WORD 0
1552 010466' .=.-4
1553 010466 000002 .WORD 2
1554 010470 050700 .WORD 50700
1555 010472 .RP3PE::
1556 010472 .PUDEN DB,3,FW,C1DB,0,0,512.,.RP3PE,RPTSK,DVCH,F11,0
010472 104 102 .ASCII "DB"
010474 003 .BYTE 3
010475 300 .BYTE FW
010476 140110 .WORD C1DB
010500 000000 .WORD 0
010502 000000 .WORD 0
010504 001000 .WORD 512.
010506 000000 .WORD 0
010510 010472' .WORD .RP3PE
010512 007212' .WORD RPTSK
010514 010514' .WORD .
010516 010514' .WORD .-2
010520 000000 .WORD 0
010522 005 005 .BYTE 5,5
010524 110220 .WORD DVCH
010526 177777 .WORD -1
010530 025167 .RAD50 /F11/
010532 000000 .WORD 0
010534 000000 .WORD 0
010536 000000 .WORD 0
010540 000000 .WORD 0
1557 010536' .=.-4
1558 010536 000002 .WORD 2
1559 010540 050700 .WORD 50700
1560 010542 .RP4PE::
1561 010542 .PUDEN DB,4,FW,C1DB,0,0,512.,.RP4PE,RPTSK,DVCH,F11,0
010542 104 102 .ASCII "DB"
010544 004 .BYTE 4
010545 300 .BYTE FW
010546 140110 .WORD C1DB
010550 000000 .WORD 0
010552 000000 .WORD 0
010554 001000 .WORD 512.
010556 000000 .WORD 0
010560 010542' .WORD .RP4PE
010562 007212' .WORD RPTSK
010564 010564' .WORD .
010566 010564' .WORD .-2
010570 000000 .WORD 0
010572 005 005 .BYTE 5,5
010574 110220 .WORD DVCH
010576 177777 .WORD -1
010600 025167 .RAD50 /F11/
010602 000000 .WORD 0
010604 000000 .WORD 0
010606 000000 .WORD 0
010610 000000 .WORD 0
1562 010606' .=.-4
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 40-3
LOW CORE -- LOGICAL UNIT TABLES
1563 010606 000002 .WORD 2
1564 010610 050700 .WORD 50700
1565 010612 .RP5PE::
1566 010612 .PUDEN DB,5,FW,C1DB,0,0,512.,.RP5PE,RPTSK,DVCH,F11,0
010612 104 102 .ASCII "DB"
010614 005 .BYTE 5
010615 300 .BYTE FW
010616 140110 .WORD C1DB
010620 000000 .WORD 0
010622 000000 .WORD 0
010624 001000 .WORD 512.
010626 000000 .WORD 0
010630 010612' .WORD .RP5PE
010632 007212' .WORD RPTSK
010634 010634' .WORD .
010636 010634' .WORD .-2
010640 000000 .WORD 0
010642 005 005 .BYTE 5,5
010644 110220 .WORD DVCH
010646 177777 .WORD -1
010650 025167 .RAD50 /F11/
010652 000000 .WORD 0
010654 000000 .WORD 0
010656 000000 .WORD 0
010660 000000 .WORD 0
1567 010656' .=.-4
1568 010656 000002 .WORD 2
1569 010660 050700 .WORD 50700
1570 010662 .RP6PE::
1571 010662 .PUDEN DB,6,FW,C1DB,0,0,512.,.RP6PE,RPTSK,DVCH,F11,0
010662 104 102 .ASCII "DB"
010664 006 .BYTE 6
010665 300 .BYTE FW
010666 140110 .WORD C1DB
010670 000000 .WORD 0
010672 000000 .WORD 0
010674 001000 .WORD 512.
010676 000000 .WORD 0
010700 010662' .WORD .RP6PE
010702 007212' .WORD RPTSK
010704 010704' .WORD .
010706 010704' .WORD .-2
010710 000000 .WORD 0
010712 005 005 .BYTE 5,5
010714 110220 .WORD DVCH
010716 177777 .WORD -1
010720 025167 .RAD50 /F11/
010722 000000 .WORD 0
010724 000000 .WORD 0
010726 000000 .WORD 0
010730 000000 .WORD 0
1572 010726' .=.-4
1573 010726 000002 .WORD 2
1574 010730 050700 .WORD 50700
1575 010732 .RP7PE::
1576 010732 .PUDEN DB,7,FW,C1DB,0,0,512.,.RP7PE,RPTSK,DVCH,F11,0
010732 104 102 .ASCII "DB"
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 40-4
LOW CORE -- LOGICAL UNIT TABLES
010734 007 .BYTE 7
010735 300 .BYTE FW
010736 140110 .WORD C1DB
010740 000000 .WORD 0
010742 000000 .WORD 0
010744 001000 .WORD 512.
010746 000000 .WORD 0
010750 010732' .WORD .RP7PE
010752 007212' .WORD RPTSK
010754 010754' .WORD .
010756 010754' .WORD .-2
010760 000000 .WORD 0
010762 005 005 .BYTE 5,5
010764 110220 .WORD DVCH
010766 177777 .WORD -1
010770 025167 .RAD50 /F11/
010772 000000 .WORD 0
010774 000000 .WORD 0
010776 000000 .WORD 0
011000 000000 .WORD 0
1577 010776' .=.-4
1578 010776 000002 .WORD 2
1579 011000 050700 .WORD 50700
1581 000003 L.DT0==3
1593 ;
1594 000005 L.DX0==5
1595 011002 DX0PEN::
1596 011002 .PUDEN DX,0,FW,C1,0,0,512.,DX0PEN,DXTSK,DVCH,F11,0
011002 104 130 .ASCII "DX"
011004 000 .BYTE 0
011005 300 .BYTE FW
011006 140010 .WORD C1
011010 000000 .WORD 0
011012 000000 .WORD 0
011014 001000 .WORD 512.
011016 000000 .WORD 0
011020 011002' .WORD DX0PEN
011022 007412' .WORD DXTSK
011024 011024' .WORD .
011026 011024' .WORD .-2
011030 000000 .WORD 0
011032 005 005 .BYTE 5,5
011034 110220 .WORD DVCH
011036 177777 .WORD -1
011040 025167 .RAD50 /F11/
011042 000000 .WORD 0
011044 000000 .WORD 0
011046 000000 .WORD 0
011050 000000 .WORD 0
1597 011050' .=.-2
1598 011050 000756 .WORD 494.
1599 000006 L.DX1==6
1600 011052 DX1PEN::
1601 011052 .PUDEN DX,1,FW,C1,0,0,512.,DX1PEN,DXTSK,DVCH,F11,0
011052 104 130 .ASCII "DX"
011054 001 .BYTE 1
011055 300 .BYTE FW
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 40-5
LOW CORE -- LOGICAL UNIT TABLES
011056 140010 .WORD C1
011060 000000 .WORD 0
011062 000000 .WORD 0
011064 001000 .WORD 512.
011066 000000 .WORD 0
011070 011052' .WORD DX1PEN
011072 007412' .WORD DXTSK
011074 011074' .WORD .
011076 011074' .WORD .-2
011100 000000 .WORD 0
011102 005 005 .BYTE 5,5
011104 110220 .WORD DVCH
011106 177777 .WORD -1
011110 025167 .RAD50 /F11/
011112 000000 .WORD 0
011114 000000 .WORD 0
011116 000000 .WORD 0
011120 000000 .WORD 0
1602 011120' .=.-2
1603 011120 000756 .WORD 494.
1606 ;
1607 011122 LP0PUD::
1608 011122 .PUDEN LP,0,0,UC.REC!UC.CCL,0,0,132.,LP0PUD,LPTSK,0,0,0
011122 114 120 .ASCII "LP"
011124 000 .BYTE 0
011125 000 .BYTE 0
011126 000003 .WORD UC.REC!UC.CCL
011130 000000 .WORD 0
011132 000000 .WORD 0
011134 000204 .WORD 132.
011136 000000 .WORD 0
011140 011122' .WORD LP0PUD
011142 007252' .WORD LPTSK
011144 011144' .WORD .
011146 011144' .WORD .-2
011150 000000 .WORD 0
011152 005 005 .BYTE 5,5
011154 000000 .WORD 0
011156 177777 .WORD -1
011160 135600 .RAD50 /0/
011162 000000 .WORD 0
011164 000000 .WORD 0
011166 000000 .WORD 0
011170 000000 .WORD 0
1611 ;
1612 011172 FE0PUD::
1613 011172 .PUDEN FE,0,UF.RH,C1,0,0,512.,FE0PUD,FETSK,DVCH,T20,0
011172 106 105 .ASCII "FE"
011174 000 .BYTE 0
011175 200 .BYTE UF.RH
011176 140010 .WORD C1
011200 000000 .WORD 0
011202 000000 .WORD 0
011204 001000 .WORD 512.
011206 000000 .WORD 0
011210 011172' .WORD FE0PUD
011212 007352' .WORD FETSK
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 40-6
LOW CORE -- LOGICAL UNIT TABLES
011214 011214' .WORD .
011216 011214' .WORD .-2
011220 000000 .WORD 0
011222 005 005 .BYTE 5,5
011224 110220 .WORD DVCH
011226 177777 .WORD -1
011230 101036 .RAD50 /T20/
011232 000000 .WORD 0
011234 000000 .WORD 0
011236 000000 .WORD 0
011240 000000 .WORD 0
1615 ;
1616 011242 SY0PUD::
1618 011242 .PUDEN SY,0,0,0,0,0,0,DX0PEN,0,0,0,0
011242 123 131 .ASCII "SY"
011244 000 .BYTE 0
011245 000 .BYTE 0
011246 000000 .WORD 0
011250 000000 .WORD 0
011252 000000 .WORD 0
011254 000000 .WORD 0
011256 000000 .WORD 0
011260 011002' .WORD DX0PEN
011262 000000 .WORD 0
011264 011264' .WORD .
011266 011264' .WORD .-2
011270 000000 .WORD 0
011272 005 005 .BYTE 5,5
011274 000000 .WORD 0
011276 177777 .WORD -1
011300 135600 .RAD50 /0/
011302 000000 .WORD 0
011304 000000 .WORD 0
011306 000000 .WORD 0
011310 000000 .WORD 0
1620
1628 011312 .PUDEA::
1629 ; END OF LOGICAL UNIT ABLE
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 41
LOW CORE -- KL10 HARDWARE ENVIRONMENT DATA
1631 .SBTTL LOW CORE -- KL10 HARDWARE ENVIRONMENT DATA
1632
1633
1634 011312 .CPUSN::
1635 011312 000000 .WORD 0 ; [4.2333] KL10 CPU SERIAL NUMBER
1636 ; [4.2333] .EQ. 0 ==> MUST BE READ
1637 ; [4.2333] .LT. 0 ==> CAN'T BE READ
1638 ; [4.2333] .GT. 0 ==> ALREADY READ
1639 011314 .HRDWR::
1640 011314 000000 .WORD 0 ; [4.2333] HARDWARE OPTION BIT MASK
1641
1642 000001 H.KUDF==BIT0 ; [4.2333] UNDEFINED
1643 000002 H.KMOS==BIT1 ; [4.2333] MOS MASTER OSCILLATOR
1644 000004 H.KEXT==BIT2 ; [4.2333] EXTENDED ADDRESING
1645 000010 H.KCHN==BIT3 ; [4.2333] INTERNAL CHANNELS
1646 000020 H.KCAC==BIT4 ; [4.2333] CACHE
1647 000040 H.KPWR==BIT5 ; [4.2333] LINE FREQUENCY
1648 ; [4.2333] .EQ. 0 ==> 60 HZ.
1649 ; [4.2333] .NE. 0 ==> 50 HZ.
1650 011316 .MISC::
1651 011316 000 .BYTE 0 ; MISC. , SEE BELOW FOR BIT DEFINETIONS
1652
1653 000001 M.TAKP==BIT0 ; USED IN KLEDEF TO SEE IF TAKE SHOULD BE DONE
1654 000002 M.PARQ==BIT1 ; USED IN TTYDRR WHEN PARSER IS REQUESTED
1655 011317 .ATOTAK::
1656 011317 001 .BYTE 1 ; THE AUTO-TAKE FLAG - DEFAULT OFF
1657 011320' .LCEND==. ; [4.2333] DEFINE THE END OF THE STATUS BLOCK
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 42
LOW CORE -- INITLM (INITIALIZATION)
1659 .SBTTL LOW CORE -- INITLM (INITIALIZATION)
1660
1661 ;
1662 ; INITIALIZATION CODE ALSO DOUBLES AS
1663 ; EMERGENCY STACK AREA FOR CRASH
1664 ;
1665 011320 INITLM::
1666 011320 013700 001004' MOV .EXEND+2,R0 ; GET ABSOLUTE EXEC LIMIT
1667 011324 062700 000003 ADD #3,R0 ; ROUND UP TO NEXT 4 BYTES
1668 011330 042700 000003 BIC #3,R0 ; SO
1669 011334 010037 001420' MOV R0,.FREPL ; SET BASE OF FREE POOL
1670 011340 012701 075774 MOV #.BGBST-4,R1 ; END OF FREE POOL MINUS 10 BYTES
1671 011344 160001 SUB R0,R1 ; COMPUTE SIZE OF FREE POOL
1672 011346 005020 CLR (R0)+ ; INDICATE NO LINKS
1673 011350 010110 MOV R1,@R0 ; SET FREE POOL SIZE
1674 011352 010137 001422' MOV R1,.FREPL+2 ; HERE TOO
1675 011356 013700 001414' MOV .BGBUF,R0
1676 011362 005020 CLR (R0)+
1677 011364 012710 002000 MOV #.BGLEN,@R0
1678 011370 105237 001123' INCB .NOERR+1 ; SET FORCED STOP
1679 011374 010706 MOV PC,SP ; SET UP THE STACK
1680 011376 012737 000200 001014' MOV #EV.PF,.SERFG+0 ; SET POWER FAIL
1681 011404 012737 004000 177776 MOV #4000,@#PS ; ENABLE INTERRUPTS
1682 011412 012746 013610' MOV #ASXE1,-(SP)
1683 011416 162706 000006 SUB #6,SP ; SET UP INITIAL TO TEN Q
1684 011422 000137 046130' JMP INIAN ; GO DO IT
1685 ;
1686 011426 EMGSTK:: ; EMERGENCY STACK AREA
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 43
LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS
1688 .SBTTL LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS
1689 ;
1690 ; TRAPS HANDLED HERE ARE:
1691 ;
1692 ; TRAP TO 4 (DEVICE OR MEMORY TIMEOUT AND 11 CATCH ALL)
1693 ; TRAP TO 10 (ILLEGAL INSTRUCTION)
1694 ; T-BIT AND BPT TRAPS
1695 ; IOT INSTRUCTION
1696 ; TRAP INSTRUCTION
1697 ;
1698 ; ILLEGAL INTERRUPTS TRAP HERE. THEY ARE DETERMINED
1699 ; BY PLACING AN ODD ADDRESS IN UNUSED TRAP VECTORS
1700 ; WHEN THE PROCESSOR TRAPS TO AN ILLEGAL TRAP VECTOR IT WIL
1701 ; PUT THE ILLEGAL (ODD) ADDRESS IN THE PC AND TRAP TO 4
1702 ; THIS WILL THEN ALLOW THE FIELD SERVICE PEOPLE TO
1703 ; DETERMINE WHAT LOCATION THE PROCESSOR HAS PICKED
1704 ; TO DO AN ILLEGAL TRAP
1705 ;
1706 ;
1707 ; GENERALLY THESE TRAPS LIKE THE OTHERS THAT TRAP TO UN ATTACHED
1708 ; TRAP VECTORS ARE FATAL. THESE HAVE BEEN SEPARATED OUT
1709 ; BECAUSE THEY ARE PROBABLY PROGRAM ERRORS AND NOT
1710 ; HARDWARE ERRORS. IT IS POSSIBLE THAT IF THESE ARE
1711 ; SEPARATED FROM HARDWARE TRAPS THAT IT WILL BE POSSIBLE
1712 ; TO PROVIDE SOME PROGRAM DEBUGGING BY IDENTIFICATION OF
1713 ; THESE SPECIFIC TYPES.
1714 ;
1715 ; HARDWARE/SOFTWARE ERROR TRAPS HANDLED HERE ARE:
1716 ;
1717 ; 1. TRAP TO UNASSIGNED TRAP VECTOR
1718 ; 2. PARITY ERROR
1719 ; 3. RESERVED INSTRUCTION TRAP
1720 ; 4. IOT TRAP
1721 ;
1722 ; STACK SUMMARY:
1723 ; 0(SP) -- TRAP PC
1724 ; 2(SP) -- TRAP PS
1725 ;
1726 .ENABL LSB
1727 011426 COMTRP:
1728 011426 013737 177776 001120' MOV PS,TRPASV ; SAVE THE COMTRP PS
1729 011434 042737 177760 001120' BIC #177760,TRPASV ; MASK OFF PRIORITY BITS
1730 011442 022706 001000 CMP #1000,SP ; LEGAL STACK?
1731 011446 103403 BLO 10$ ; YES -- NOT RED VIOLATION
1732 011450 012706 011426' MOV #EMGSTK,SP ; NO -- BETTER RESCUE STACK
1733 011454 000450 BR 30$ ; THEN CRASH SYSTEM
1734 ;
1735 011456 10$:
1736 011456 010546 MOV R5,-(SP)
1737 011460 032766 000340 000004 BIT #340,4(SP) ; EXEC?
1738 011466 001043 BNE 30$ ; YES -- CRASH
1739 ; FIND THE TRAP VECTOR
1740 011470 013705 001006' MOV .CRTSK,R5 ; FIND THE CURRENT TASK
1741 011474 016505 000016 MOV A.TD(R5),R5 ; FIND STD POINTER
1742 011500 016505 000030 MOV S.SS(R5),R5 ; FIND THE SST VECTOR
1743 011504 001410 BEQ CMNABO ; NONE -- CRASH
1744 011506 063705 001120' ADD TRPASV,R5 ; FIND WHICH VECTOR
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 43-1
LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS
1745 011512 MFPS @R5,R5 ; FIND THE ADDRESS
011512 011505 MOV @R5,R5
1746 011514 001404 BEQ CMNABO ; NONE FOUND -QUIT
1747 011516 012637 001116' MOV (SP)+,EMTSTK ; SAVE R5 FOR COMMON TRAP
1748 011522 000137 013326' JMP .SSTCO
1749 ;
1750 011526 CMNABO::
1751 011526 013705 001006' MOV .CRTSK,R5 ; FIND THE CURRENT TASK
1752 011532 013765 001120' 000024 MOV TRPASV,A.FM+0(R5) ;SET THE REASON FOR ABORT
1753 011540 112765 000004 000014 MOVB #TS.TKN,A.TS(R5) ;SET TASK STATUS TO ABORT
1754 011546 005237 001124' INC .TKTN ; SET TKTN FLAG
1755 011552 026527 000006 007772' CMP A.PD(R5),#F11TPD ;FILES 11 TPD?
1756 011560 001003 BNE 20$ ; NO -- TKTN WILL WORK
1757 011562 .CRASH FTA ; YES -- CAN'T GET TKTN IN
011562 000004 IOT
011564 106 124 101 .ASCIZ /FTA/
011567 000
1758 ;
1759 011570 TRPXIT:
1760 011570 20$:
1761 011570 012605 MOV (SP)+,R5 ; RESTORE R5
1762 011572 000137 014632' JMP ..INTX ; RETURN
1763 ;
1764 011576 30$:
1765 011576 013705 001120' MOV TRPASV,R5 ; DO COMMON CRASH PROCEDURE
1766 011602 000175 011606' JMP @CRSTB(R5) ; CRASH
1767 .DSABL LSB
1768 ;
1769 011606 CRSTB:
1770 011606 011616' .WORD TRP4
1771 011610 011666' .WORD RESERV
1772 011612 011674' .WORD BPTTRP
1773 011614 011732' .WORD IOTTRP
1774 ;
1775 011616 TRP4:
1776 011616 012705 000004 MOV #4,R5 ; POINT TO TRAP VECTOR
1777 011622 011546 MOV (R5),-(SP) ; SAVE IT
1778 011624 012715 011644' MOV #10$,(R5) ; SET UP TEMPORARY VECTOR
1779 011630 005777 167522 TST @.PRSTA ; WAS IT THE DTE20??
1780 011634 012615 MOV (SP)+,(R5) ; NO -- OTHER BUS TIMEOUT
1781 011636 .CRASH T04
011636 000004 IOT
011640 124 060 064 .ASCIZ /T04/
011643 000
1782 ;
1783 011644 10$: ; HERE ON DTE-20 BUS TIMEOUT
1784 011644 022626 CMP (SP)+,(SP)+ ; GET RID OF SECOND TRAP PS, PC
1785 011646 012615 MOV (SP)+,(R5) ; RESTORE TRAP VECTOR
1786 011650 032737 004000 001012' BIT #EF.PFR,.COMEF+2 ; POWERFAIL IN PROGRESS??
1787 011656 001344 BNE TRPXIT ; YES -- IGNORE TRAP
1788 011660 .CRASH DTD ; NO -- DTE20 IS DEAD
011660 000004 IOT
011662 104 124 104 .ASCIZ /DTD/
011665 000
1789 ;
1790 011666 RESERV:
1791 011666 .CRASH RES
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 43-2
LOW CORE -- TRAP SERVICE FOR COMMON PROGRAM TRAPS
011666 000004 IOT
011670 122 105 123 .ASCIZ /RES/
011673 000
1792 ;
1793 011674 BPTTRP:
1794 011674 .CRASH TBT
011674 000004 IOT
011676 124 102 124 .ASCIZ /TBT/
011701 000
1795 ;
1796 011702 .PARER:
1797 011702 012700 172100 MOV #.PARRG,R0 ; SET UP POINTER TO REGISTERS
1798 011706 012737 011724' 000004 MOV #20$,@#4 ; SET UP TO POINT TO CRASH MESSAGE ON NXM
1799 011714 012701 001022' MOV #PARSAV,R1 ; SET UP SAVE AREA POINTER
1800 011720 10$:
1801 011720 012021 MOV (R0)+,(R1)+
1802 011722 000776 BR 10$
1803 ;
1804 011724 20$:
1805 011724 .CRASH MPE ; MEMORY PARITY ERROR
011724 000004 IOT
011726 115 120 105 .ASCIZ /MPE/
011731 000
1806 ;
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 44
LOW CORE -- CRASH ROUTINE
1808 .SBTTL LOW CORE -- CRASH ROUTINE
1809 ;
1810 ; CRASH -- SUBROUTINE THAT WILL NOT RETURN TO SAVE THE
1811 ; INFORMATION NECESSARY WHEN THE MACHINE ENTERS AN UNRECOVERABLE
1812 ; STATE THAT REQUIRES RE-LOAD. CRASH ATTEMPTS TO SAVE ALL THE
1813 ; VOLATILE REGISTERS THAT MIGHT BE NECESSARY TO DEBUG
1814 ; THE SOFTWARE OR HARDWARE WHEN THE PDP-11 SYSTEM CRASHES.
1815 ;
1816 ; STACK SUMMARY:
1817 ;
1818 ; 0(SP) -- IOT TRAP PC
1819 ; 2(SP) -- IOT TRAP PS
1820 ;
1821 011732 IOTTRP:
1822 011732 016605 000002 MOV 2(SP),R5 ; TRAP PC POINTS TO THE CRASH CODE TEXT
1823 011736 010637 001020' MOV SP,SPSAV ; SAVE SP
1824 011742 012706 011426' MOV #EMGSTK,SP ; SET UP THE EMERGENCY STACK POINTER
1825 011746 CALL .IOSNP ; [4.2314] SNAPSHOT THE I/O PAGE
011746 004737 012156' JSR PC,.IOSNP
1826 011752 010546 MOV R5,-(SP)
1827 011754 012705 012142' MOV #CMSG,R5 ; SET UP THE CRASH MESSAGE POINTER
1828 011760 CALL 20$ ; PRINT THE MESSAGE
011760 004737 012074' JSR PC,20$
1829 011764 011605 MOV (SP),R5 ; CRASH CODE POINTER TO R5
1830 011766 010446 MOV R4,-(SP) ; SAVE R4
1831 011770 005004 CLR R4 ; CLEAR R4
1832 011772 012524 MOV (R5)+,(R4)+ ; SAVE THE CRASH CODE
1833 011774 011524 MOV (R5),(R4)+ ;
1834 011776 013705 001022' MOV PARSAV,R5 ; GET PARITY ERROR DATA
1835 012002 006205 ASR R5 ; POSITION IT
1836 012004 006205 ASR R5 ;
1837 012006 006205 ASR R5 ;
1838 012010 006205 ASR R5 ;
1839 012012 006205 ASR R5 ;
1840 012014 150544 BISB R5,-(R4) ; SAVE IT IN HIGH BYTE
1841 012016 012604 MOV (SP)+,R4 ; RESTORE REGISTERS
1842 012020 012605 MOV (SP)+,R5 ; CRASH CODE POINTER TO R5
1843 012022 CALL 20$ ; PRINT THE CRASH CODE
012022 004737 012074' JSR PC,20$
1844 ;
1845 ; CLOSED LOOP TO RING THE KL DOORBELL AND REQUEST A RELOAD. IN RESPONSE TO
1846 ; THIS REQUEST, THE KL10 WILL "PUSH THE ELECTRONIC SWITCH" IN THE BM873 ROM.
1847 ; THIS WILL:
1848 ;
1849 ; 1. FORCE A "POWERFAIL" TRAP
1850 ; 2. DUMP AN RELOAD THE FRONT-END
1851 ;
1852 ; NOTE THAT THE FRONT-END CPU MUST BE RUNNING FOR THE CONTEXT SAVE OF THE
1853 ; POWERFAIL TRAP TO COMPLETE PROPERLY.
1854 ;
1855 012026 10$:
1856 012026 012737 000006 000004 MOV #6,@#4 ; FORCE AN EARLY HALT IF NXM
1857 012034 005037 000006 CLR @#6
1858 012040 013705 001360' MOV .PRDTE,R5 ; FIND DTE20
1859 012044 062705 000006 ADD #6,R5 ; POINT TO DEXWD1
1860 012050 012725 000004 MOV #LOAD11,(R5)+
1861 012054 012725 010000 MOV #DEP,(R5)+
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 44-1
LOW CORE -- CRASH ROUTINE
1862 012060 012725 000022 MOV #22,(R5)+ ; REQUEST RELOAD
1863 012064 012777 000400 167264 MOV #TO10DB,@.PRSTA ; RING BELL
1864 012072 000755 BR 10$
1865 ;
1866 012074 20$: ;
1867 012074 105737 001226' TSTB .KLNSW+0 ; IS KLINIK ACTIVE??
1868 012100 003402 BLE 30$ ; NOT THAT WE CARE...
1869 012102 111537 175616 MOVB (R5),@#PRB1 ; YES -- PRINT A CHARACTER ON KLINIK LINE
1870 012106 30$: ;
1871 012106 112537 177566 MOVB (R5)+,@#PRB0 ; PRINT THE SAME CHARACTER ON THE CTY
1872 012112 40$: ;
1873 012112 105737 177564 TSTB @#PRS0 ; IS THE CTY DONE???
1874 012116 100375 BPL 40$ ; NO -- WAIT SOME MORE
1875 012120 105737 001226' TSTB .KLNSW+0 ; YES -- IS KLINIK ACTIVE??
1876 012124 003403 BLE 50$ ; NO -- NOT THAT WE CARE...
1877 012126 105737 175614 TSTB @#PRS1 ; YES -- IS THE KLINIK LINE FINISHED??
1878 012132 100367 BPL 40$ ; NO -- WAIT SOME MORE
1879 012134 50$: ;
1880 012134 105715 TSTB (R5) ; MESSAGE DONE??
1881 012136 001356 BNE 20$ ; NO -- CONTINUE THE MESSAGE
1882 012140 IGNO::
1883 012140 RETURN ; YES -- RETURN TO CALLER
012140 000207 RTS PC
1884 ;
1885 ;
1886 ;
1887 ; AFTER THE SYSTEM HALTS THE PDP-10 WILL EVENTUALLY REALIZE
1888 ; THAT THE PDP11 HAS CRASHED AND ATTEMPT TO
1889 ; RELOAD IT.
1890 ;
1891 012142 CMSG:
1892 012142 015 012 061 .ASCIZ <15><12>"11-HALT"<15><12>
012145 061 055 110
012150 101 114 124
012153 015 012 000
1893 .EVEN
LC -- LOW CORE FOR RSX20F MACRO M1113 11-NOV-81 11:13 PAGE 45
LOW CORE -- I/O PAGE SNAPSHOT
1895 .SBTTL LOW CORE -- I/O PAGE SNAPSHOT
1896
1897 ;+
1898 ; .IOSNP -- SNAPHOT THE I/O PAGE INTO THE GEN PARTITION
1899 ;
1900 ; THIS SUBROUTINE IS INVOKED WHENEVER RSX-20F REQUESTS A RELOAD.
1901 ; THE CONTENT OF ALL REGISTERS IN THE I/O PAGE (160000 - 177776) ARE
1902 ; LOADED INTO THE GEN PARTITION (100000 - 107776). NON-EXISTENT REGISTERS
1903 ; CONTAIN "123456" IN THE DUMP.
1904 ;
1905 ; INPUTS:
1906 ;
1907 ; NONE.
1908 ;
1909 ; OUTPUTS:
1910 ;
1911 ; THE I/O PAGE IS LOADED INTO 100000 THRU 107776.
1912 ;
1913 ; NOTE:
1914 ;
1915 ; THIS ROUTINE MUST BE CALLED AT BR6, OR HIGHER.
1916 ;-
1917
1918 007777 IOPSIZ = <177776-160000>/2
1919
1920 012156 .IOSNP:
1921 012156 010046 MOV R0,-(SP) ;;; [4.2314] SAVE REGISTERS
1922 012160 010146 MOV R1,-(SP)
1923 012162 010246 MOV R2,-(SP)
1924 012164 013746 000004 MOV @#4,-(SP) ;;; [4.2314] SAVE TRAP-AT-4 VECTOR
1925 012170 012737 012232' 000004 MOV #30$,@#4 ;;; [4.2314] SET ALTERNATE VECTOR
1926 012176 012700 160000 MOV #160000,R0 ;;; [4.2314] BASE OF I/O PAGE
1927 012202 012701 100000 MOV #100000,R1 ;;; [4.2314] BASE OF GEN PARTITION
1928 012206 012702 007777 MOV #IOPSIZ,R2 ;;; [4.2314] I/O PAGE SIZE
1929 012212 10$:
1930 012212 012021 MOV (R0)+,(R1)+ ;;; [4.2314] SAVE THE I/O PAGE
1931 012214 20$:
1932 012214 077202 SOB R2,10$ ;;; [4.2314] LOOP TILL DONE
1933 012216 012637 000004 MOV (SP)+,@#4 ;;; [4.2314] RESTORE VECTOR
1934 012222 012602 MOV (SP)+,R2 ;;; [4.2314] AND REGISTERS
1935 012224 012601 MOV (SP)+,R1
1936 012226 012600 MOV (SP)+,R0
1937 012230 RETURN ;;; [4.2314] TO CALLER
012230 000207 RTS PC
1938 012232 30$:
1939 012232 012721 123456 MOV #123456,(R1)+ ;;; [4.2314] MARK NON-EXISTENT REGISTER
1940 012236 032626 BIT (SP)+,(SP)+ ;;; [4.2314] RESET STACK
1941 012240 000765 BR 20$ ;;; [4.2314] AND CONTINUE
1942 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 46
LOW CORE -- I/O PAGE SNAPSHOT
1944 .TITLE SCH - TASK SCHEDULER & GLOBAL DEFS
1945 .SBTTL EXEC MODULE ONE -- TITLE PAGE
1946 012242 IDENT$ 14,42,RSX$$F
.IDENT /B14420/
1947 ;
1948 ; COPYRIGHT (C) 1975, 1978 BY
1949 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
1950 ;
1951 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
1952 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
1953 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
1954 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
1955 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
1956 ;
1957 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
1958 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
1959 ; CORPORATION.
1960 ;
1961 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
1962 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
1963 ;
1964 ;
1965 ; MODULE: EXEC MODULE ONE
1966 ;
1967 ; VERSION: 14-42
1968 ;
1969 ; AUTHOR: R. MCLEAN
1970 ;
1971 ; DATE: 19 MAR 75
1972 ;
1973 ;
1974 ; THIS MODULE CONTAINS:
1975 ;
1976 ; 1 -- SYSTEM NOTES,
1977 ; 2 -- GLOSSARY,
1978 ; 3 -- SYMBOLIC DEFINITIONS,
1979 ; 4 -- NUL TASK.
1980 ;
1981 ; MODIFICATIONS:
1982 ;
1983 ; NO. DATE PROGRAMMER PURPOSE
1984 ; --- ---- ---------- -------
1985 ; 001 18-OCT-76 A. PECKHAM ADDITIONAL .KLIWD FLAGS
1986 ; 002 20-OCT-76 A. PECKHAM FIX FOR F11 PARTITION
1987 ; LOAD REQUEST FAILURE.
1988 ; 003 03-FEB-77 R. BELANGER CHANGED KLR EVENT FLAG
1989 ; ADDED KLD EVENT FLAG
1990 ; 004 04-MAR-77 R. BELANGER ADDED CODE IN NULL TASK
1991 ; TO INVOKE TIME OF DAY TASK
1992 ; 005 07-MAR-77 A. PECKHAM REMOVE BUG FROM DOWN MESSAGE CODE.
1993 ; 006 01-JUL-77 R. BELANGER ADD KLINIK EVENT LOGGING CODES.
1994 ; 007 18-AUG-77 R. BELANGER ADD POWER RESTART IN PROGRESS FLAG
1995 ; 008 05-OCT-77 R. BELANGER ADD COMM REGION INVALID FLAG
1996 ; 009 27-MAY-78 R. BELANGER DEFINE PROTOCOL TIMEOUT FLAG FOR "TKTN"
1997 ; TCO 4.1.1035 16-NOV-79 R. BELANGER CHANGES TO SUPPORT QUEUE ARBITRATION
1998 ; TCO 4.1.1105 11-MAR-80 R. BELANGER CHANGE "EF.PR1" RECOGNITION
1999 ; TCO 5.1127 08-AUG-80 S. LEAPLINE MAKE SNDMSG GLOBAL FOR HOST DEBUG
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 46-1
EXEC MODULE ONE -- TITLE PAGE
2000 ; 010 27-MAR-81 S. LEAPLINE REMOVE "RSUM" AND "SPND"
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 47
EXEC MODULE ONE -- SYSTEM NOTES
2002 .SBTTL EXEC MODULE ONE -- SYSTEM NOTES
2003 ;+
2004 ; PROCESSOR PRIORITIES
2005 ;
2006 ; PERIPHERIAL DEVICE INTERRUPT SERVICE ROUTINES RUN AT PROCESSOR PRIORITY
2007 ; LEVELS FOUR THRU SEVEN (4-7). ALSO, PARTS OF THE SOFTWARE THAT CANNOT BE
2008 ; INTERRUPTED ARE ALSO RUN AT PRIORITY SEVEN (PRI=7). THESE UNINTERRUPTABLE
2009 ; PERIODS ARE AS SHORT AS POSSIBLE.
2010 ;
2011 ; PRIORITY LEVELS ZERO THRU THREE (0-3) ARE USED BY THE SYSTEM AS OPERATION
2012 ; INDICATORS. I.E., THERE ARE NO "SOFTWARE INTERRUPTS", AND THEREFORE, THERE
2013 ; IS NO PRECEDENCE IMPLIED (OR ENVOKED) BY LEVELS ZERO THRU THREE.
2014 ;
2015 ; LEVEL ZERO (PRI=0) IS USED EXCLUSIVELY FOR TASK EXECUTION.
2016 ;
2017 ; LEVELS ONE, TWO, AND THREE ARE USED FOR "SYSTEM LEVEL" EXECUTION.
2018 ;
2019 ; LEVEL TWO (PRI=2) IS USED FOR THE RECOGNITION OF "SYSTEM EVENTS".
2020 ; THESE EVENTS ARE INDICATED IN THE "SYSTEM EVENT RECOGNITION" FLAG
2021 ; '.SERFG' AND ARE RECOGNIZED (SERVICED) ONLY WHEN RETURNING TO
2022 ; TASK EXECUTION (VIZ., FROM AN INTERRUPT, OR FROM A DIRECTIVE).
2023 ; SYSTEM EVENTS ARE (1) SIGNIFICANT EVENT DECLARATIONS, (2) CLOCK
2024 ; TICKS, AND (3) POWER FAILURE RECOVERIES.
2025 ;
2026 ; LEVEL THREE (PRI=3) IS USED FOR EXECUTION OF ROUTINES WHICH CANNOT BE
2027 ; INTERRUPTED BY SIGNIFICANT-EVENT OR CLOCK-TICK RECOGNITION, BUT CAN BE
2028 ; INTERRUPTED BY PERIPHERIAL DEVICE INTERRUPTS
2029 ; IN THESE CASES, THE LEVEL
2030 ; MAY BE SET TO THREE BY ANY MEANS, BUT MUST BE LOWERED TO ZERO BY
2031 ; TRANSFERRING CONTROL TO '..INTX' TO ALLOW RECOGNITION OF "SYSTEM
2032 ; EVENTS THAT MIGHT HAVE OCCURED WHILE RUNNING AT PRI=3.
2033 ; THE SYSTEM TRACE (DEBUGGING) ROUTINE RUNS AT PRI=7.
2034 ;
2035 ;
2036 ;
2037 ; FORMAT OF PROCESSOR STATUS (PS) WORD
2038 ;
2039 ; C CPP RXX XLL LTN ZVC
2040 ;
2041 ; CC CURRENT MODE (00:KERNEL, 11:USER)
2042 ; PP PREVIOUS MODE (00:KERNEL, 11:USER)
2043 ; R REGISTER CLEAR (BIT ALWAYS CLEAR)
2044 ; XXX UNUSED BITS
2045 ; LLL PROCESSOR PRIORITY LEVEL
2046 ; T TRACE BIT
2047 ; N CONDITION CODE -- NEGATIVE
2048 ; Z CONDITION CODE -- ZERO
2049 ; V CONDITION CODE -- OVERFLOW
2050 ; C CONDITION CODE -- CARRY
2051 ;
2052 ; KEY TEXT IN THIS LISTING IS DELIMITED BY LINES CONATINING A ";+" AND A ";-"
2053 ; AS THE FIRST TWO CHARACTERS OF A SOURCE LINE. A ";+" LINE DEFINES THE
2054 ; BEGINNING OF A BLOCK OF KEY TEXT, AND A ";-" LINE DEFINES THE END.
2055 ;-
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 48
EXEC MODULE ONE -- GLOSSARY
2057 .SBTTL EXEC MODULE ONE -- GLOSSARY
2058 ;+
2059 ;
2060 ;
2061 ; ATL -- ACTIVE TASK LIST
2062 ;
2063 ; CKL -- CLOCK LIST
2064 ;
2065 ; DTL -- DTE20 LIST
2066 ;
2067 ; MRL -- MEMORY REQUEST LIST
2068 ;
2069 ; PUD -- PHYSICAL UNIT DEVICE TABLE
2070 ;
2071 ; DEQUE -- DOUBLE ENDED QUEUE. FORWARD AND BACKWARD CIRCULAR LINKAGES.
2072 ;
2073 ; EXTERNAL PAGE -- 4K PAGE OF REAL MEMORY SPACE (760000-777776) CONTAINING
2074 ; CPU & PERIPHERIAL DEVICE CONTROL & STATUS REGISTERS (THE DEVICE PAGE).
2075 ;
2076 ; ISR -- INTERRUPT SERVICE ROUTINE
2077 ;
2078 ;
2079 ; STD -- SYSTEM TASK DIRECTORY
2080 ;-
2081
2082 .SBTTL MACRO CALLS (MCALL)
2083
2087 .MCALL .ENB0,.INH0,.ENB6,.INH6,.INH,.ENB,.INH5,.ENB5,.CRASH,RQST$
2088 .MCALL DIR$,CLEF$S,QIOW$,WTSE$,WTSE$S,.STKM,$DEF
2089 .MCALL CALL,RETURN,DTON$S,MFPS,MTPS,MTPI,MFPI,.DQPEN,DECL$S,CMKT$S
2090 .MCALL MRKT$,WTLO$,WSIG$S,WTLO$C,CLEF$C,QIOSY$,MRKT$S
2091 012242 QIOSY$
2092 012242 $DEF
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 49
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2094 .SBTTL EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2095 ;
2096 ; EXTERNAL PAGE DEFINITIONS
2097 ;
2098 177776 PS==177776 ;PROCESSOR STATUS WORD
2099 177546 LKS==177546 ;KW11L CLOCK
2100 177560 KBS0==177560 ;CTY TTY
2101 177562 KBB0==177562 ;CTY BUFFER (INPUT)
2102 177564 PRS0==177564 ;CTY OUTPUT STATUS
2103 177566 PRB0==177566 ;CTY OUTPUT BUFFER
2104 175610 KBS1==175610
2105 175612 KBB1==175612
2106 175614 PRS1==175614
2107 175616 PRB1==175616
2108 173000 .BM873==173000 ;START OF BOOTSTRAP
2109 172100 .PARRG==172100 ;PARITY ERROR REGISTER 0
2110 ;
2111 000340 PR7==340 ;PRIORITY 7
2112 000340 PRI7==340
2113 000100 .INTEN==000100 ;INTERRUPT ENABLE BIT
2114 ;
2115 172360 KPAR0=172360 ;KERNEL PAGE ADDRESS REG 0
2116 172362 KPAR1=172362 ;REG 1
2117 172364 KPAR2=172364 ;REG 2
2118 172366 KPAR3=172366 ;REG 3
2119 172370 KPAR4=172370 ;REG 4
2120 172372 KPAR5=172372 ;REG 5
2121 172374 KPAR6=172374 ;REG 6
2122 172376 KPAR7=172376 ;REG 7
2123 ;
2124 172300 KPDR0=172300 ;KERNEL PAGE DESCRIPTOR REGISTER 0
2125 172302 KPDR1=172302 ;REG 1
2126 172304 KPDR2=172304 ;REG 2
2127 172306 KPDR3=172306 ;REG 6
2128 172310 KPDR4=172310 ;REG 4
2129 172312 KPDR5=172312 ;REG 5
2130 172314 KPDR6=172314 ;REG 6
2131 172316 KPDR7=172316 ;REG 7
2132 ;
2133 177640 UPAR0=177640 ;USER PAGE ADDRESS REG 0
2134 177642 UPAR1=177642 ;REG 1
2135 177644 UPAR2=177644 ;REG 2
2136 177646 UPAR3=177646 ;REG 3
2137 177650 UPAR4=177650 ;REG 4
2138 177652 UPAR5=177652 ;RRG 5
2139 177654 UPAR6=177654 ;REG 6
2140 177656 UPAR7=177656 ;REG 7
2141 ;
2142 177600 UPDR0=177600 ;USER PAGE DESCRIPTOR REG 0
2143 177602 UPDR1=177602 ;REG 1
2144 177604 UPDR2=177604 ;REG 2
2145 177606 UPDR3=177606 ;REG 3
2146 177610 UPDR4=177610 ;REG 4
2147 177612 UPDR5=177612 ;REG 5
2148 177614 UPDR6=177614 ;REG 6
2149 177616 UPDR7=177616 ;REG 7
2150 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 49-1
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2151 000046 $DSW==46 ;DIRECTIVE STATUS WORD
2152 000050 .FSRPT==50 ;FCS POINTER
2153 000054 N.OVPT==54 ;FCP OVERLAY POINTER
2154 ;
2155 ;
2156 ; SYSTEM TRACE (T-BIT) DEBUGGING AID CONDITIONAL DEFINITIONS
2157 ;
2158 000020 TBIT==20 ;TRACE BIT IN PS
2159 ;
2160 000000 STXAS==0 ;SIGNIFICANT EVENT RECOGNITION (ATL SCAN) TRACE SWITCH
2161 000000 STXCS==0 ;CLOCK TICK RECOGNITION TRACE SWITCH
2162 000000 STXDX==0 ;DIRECTIVE EXECUTION TRACE SWITCH
2163 ;
2164 ; PRIVLEDGED TASK EVENT FLAG BIT MASKS
2165 ;
2166 000001 EF.DTE==1 ;EVENT FLAG FOR DTE20 DOORBELL (UNUSED)
2167 000001 E.DTE==1.
2168 000002 EF.CLK==2 ;EVENT FLAG FOR CLOCK (UNUSED)
2169 000002 E.CLK==2.
2170 000004 EF.TTY==4 ;EVENT FLAG FOR TTY INPUT COMPLETE (UNUSED)
2171 000003 E.TTY==3.
2172 000010 EF.NIR==10 ;EVENT FLAG TO SIGNAL QIO REQUEST ENTERED (DRIVERS)
2173 000004 E.NIR==4.
2174 000020 EF.IOD==20 ;EVENT FLAG TO SIGNAL QIO REQUEST DONE (DRIVERS)
2175 000005 E.IOD==5.
2176 000040 EF.BOV==40 ;EVENT FLAG TO SIGNAL NOT ENOUGH NODE SPACE (UNUSED)
2177 000006 E.BOV==6.
2178 000100 EF.TMO==100 ;EVENT FLAG TO SIGNAL TIMOUT REQUEST FOR TTY (TTYDRR & SCOMM)
2179 000007 E.TMO==7.
2180 000200 EF.RQM==200 ;REQUEST MCR (TTYDRR)
2181 000010 E.RQM==8.
2182 000400 EF.WFM==400 ;WAIT FOR MARK TIME (UNUSED)
2183 000011 E.WFM==9.
2184 001000 EF.RKR==1000 ; +++003 REQUEST KLINIK RING SERVICE (TTYDRR)
2185 000012 E.RKR==10. ; +++003
2186 002000 EF.RKH==2000 ; +++003 REQUEST KLINIK HANG-UP SERVICE (TTYDRR)
2187 000013 E.RKH==11. ; +++003
2188 004000 EF.RSS==4000 ; +++009 REQUEST SETSPD FOR AUTOBAUD (TTYDRR)
2189 000014 E.RSS==12. ; +++009
2190 ;
2191 ; RESERVED LOCAL EVENT FLAG BIT MASKS (25. - 32.)
2192 ;
2193 100000 EF.SND==100000 ;SEND ALL FINISHED
2194 000040 E.FSND==32.
2195 ;
2196 ; RESERVED GLOBAL EVENT FLAG BIT MASKS (57. - 64.)
2197 ;
2198 100000 EF.PR1==100000 ; [4.1.1105] PRIMARY PROTOCOL RUNNING FLAG
2199 000100 E.FPR1==64.
2200 040000 EF.CTC==040000 ; [4.1.1105] ^C FLAG
2201 000077 E.FCTC==63.
2202 020000 EF.PR2==020000 ;SECONDARY PROTOCOL RUNNING FLAG
2203 000076 E.FPR2==62.
2204 010000 EF.RKP==010000 ; +++003 KLINIK PARAMETERS RECIEVED (QPRDTE, SAVE)
2205 000075 E.FRKP==61.
2206 004000 EF.PFR==004000 ; +++007 POWER FAIL RESTART IN PROGRESS (SCOMM, KLINIT)
2207 000074 E.FPFR==60.
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 49-2
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2208 002000 EF.CRI==002000 ; +++008 COMM REGION IS INVALID (BOOT, TKTN)
2209 000073 E.FCRI==59.
2210 001000 EF.FCP==001000 ; FAULT CONTINUATION IN PROGRESS (BOOT)
2211 000072 E.FFCP==58.
2212 ;
2213 ; COMMON NODE DEFINITONS
2214 ;
2215 000000 N.FP==0 ;FORWARD POINTER
2216 000002 N.BP==2 ;BACKWARD POINTER
2217 000010 N.PR==10 ;PRIORITY BYTE
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 50
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2219 ; TPD -- TASK PARTITION DIRECTORY
2220 ;
2221 ; THE "TPD" IS A FIXED LIST OF ENTRIES DESCRIBING EACH PARTITION IN A
2222 ; SYSTEM.
2223 ; CONSISTING OF ENTRIES OF THE FOLLOWING FORMAT:
2224 ;
2225 000000 T.PN==00 ; WD. 00 (B 00) -- PARTITION NAME (FIRST HALF)
2226 ; WD. 01 (B 02) -- PARTITION NAME (SECOND HALF)
2227 000004 T.BA==04 ; WD. 02 (B 04) -- BASE ADDRESS OF PARTITION (IN BYTES)
2228 000006 T.PZ==06 ; WD. 03 (B 06) -- SIZE OF PARTITION (IN BYTES)
2229 000010 T.FW==10 ; WD. 04 (B 10) -- PARTITION FLAGS WORD
2230 000012 T.HP==12 ; WD. 05 (B 12) -- 1/64 TH OF BASE ADR OF FIRST HOLE, OR ZERO IF NO HOLES.
2231 000014 T.RF==14 ; WD. 06 (B 14) -- MRL LISTHEAD (FORWARD LINKAGE)
2232 000016 T.RB==16 ; WD. 07 (B 16) -- MRL LISTHEAD (BACKWARD LINKAGE)
2233 ;
2234 000020 T.SZ==20 ;SIZE (IN BYTES) OF TPD ENTRIES
2235 ;
2236 ;
2237 ; FLAGS WORD BIT DEFINITIONS:
2238 ;
2239 000002 TF.OU==000002 ;[01] SET IF OCCUPIED USER CONTROLLED PARTITION.
2240 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 51
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2242 ;
2243 ; TASK HEADER DEFINITIONS
2244 ;
2245 000000 H.CSP==0 ;CURRENT STACK POINTER (UNUSED)
2246 000002 H.HSZ==2 ;LENGTH OF HEADER
2247 000046 H.DSW==46 ;DIRECTIVE STATUS WORD SAVE AREA
2248 000050 H.FCP==50 ;FCP SAVE AREA
2249 000052 H.FOR==52 ;FORTRAN SAVE AREA
2250 000054 H.OVL==54 ;OVERLAY SAVE AREA
2251 000074 H.IPS==74 ;INITIAL PS
2252 000076 H.IPC==76 ;INITIAL PC
2253 000100 H.ISP==100 ;INITIAL SP
2254 000106 H.TKVA==106 ;TASK SST VECTOR ADDRESS
2255 000130 H.LUT==130 ;LOGICAL UNIT TABLE SIZE
2256 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 52
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2258 ;
2259 ; STD -- SYSTEM TASK DIRECTORY
2260 ;
2261 ; THE SYSTEM TASK DIRECTORY IS A MEMORY RESIDENT DIRECTORY OF ALL TASKS
2262 ; THAT HAVE BEEN INSTALLED INTO A SYSTEM THAT ARE NOT PREMANENTLY RESIDENT.
2263 ; THIS DIRECTORY CONSISTS OF TWO
2264 ; PARTS: (1) A FIXED SIZE AREA OF ONE WORD FOR EACH TASK THAT COULD
2265 ; BE INSTALLED AT ANY TIME, AND (2) AN STD ENTRY FOR EACH TASK THAT IS
2266 ; INSTALLED. THE FIXED SIZED AREA IS CALLED THE "ALPHA TABLE AREA", AND
2267 ; PROVIDES SPACE FOR AN ALPHABETICALLY ORDERED CONTIGUOUS LIST POINTERS
2268 ; TO STD ENTRIES (TO FACILLATE BINARY SEARCH FOR STD ENTRY BY TASK NAME).
2269 ; EACH STD ENTRY IS OF THE FOLLOWING FORMAT:
2270 ;
2271 000000 S.TN==00 ; WD. 00 (B 00) -- TASK NAME (6 CHAR IN RADIX-50, 2 WORDS)
2272 ; WD. 01 (B 02) -- (SECOND HALF OF TASK NAME)
2273 000004 S.TD==04 ; WD. 02 (B 04) -- DEFAULT TASK PARTITION (TPD ADDRESS)
2274 000006 S.FW==06 ; WD. 03 (B 06) -- FLAGS WORD
2275 000010 S.DP==10 ; WD. 04 (B 10) -- DEFAULT PRIORITY (BYTE)
2276 000011 S.DI==11 ; (B 11) -- SYSTEM DISK INDICATOR (BYTE)
2277 000012 S.BA==12 ; WD. 05 (B 12) -- 1/64 TH OF BASE ADDRESS OF LOAD IMAGE
2278 000014 S.LZ==14 ; WD. 06 (B 14) -- SIZE OF LOAD IMAGE
2279 000016 S.TZ==16 ; WD. 07 (B 16) -- MAX TASK SIZE
2280 000020 S.PC==20 ; WD. 10 (B 20) -- INITIAL PC OF TASK
2281 000022 S.SP==22 ; WD. 11 (B 22) -- INITIAL SP OF TASK
2282 000024 S.RF==24 ; WD. 12 (B 24) -- SEND AND REQUEST QUEUE FORWARD PTR
2283 000026 S.RB==26 ; WD. 13 (B 26) -- SEND AND REQUEST QUEUE BACKWARD PTR
2284 000030 S.SS==30 ; WD. 14 (B 30) -- SST VECTOR TABLE ADDRESS
2285 000032 S.DL==32 ; WD. 15 (B 32) -- LOAD IMAGE FIRST BLOCK NUMBER (32-BITS)
2286 ; WD. 16 (B 34) (SECOND HALF OF DISK ADDRESS)
2287 ;
2288 000036 S.SZ==36 ;SIZE OF STD ENTRY
2289 ;
2290 ;
2291 ;
2292 ; FLAGS WORD BIT DEFINITIONS:
2293 ;
2294 000001 SF.TA==000001 ;[00] SET WHEN TASK IS ACTIVE
2295 000001 SF.PT==000001 ;[00] SET WHEN TASK IS PRIVILEDGED (ACTIVE FOR NOW)
2296 000002 SF.FX==000002 ;[01] SET WHEN TASK IS FIXED IN MEMORY
2297 000004 SF.EX==000004 ;[02] SET WHEN TASK IS TO BE REMOVED ON EXIT
2298 040000 SF.IR==040000 ;[14] SET WHEN INSTALL IS REQUESTED
2299 100000 SF.ST==100000 ;[15] SET WHEN TASK IS SYSTEM TASK
2300 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 53
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2302 ;
2303 ; ATL -- ACTIVE TASK LIST
2304 ;
2305 ; THE "ATL" IS A PRIORITY ORDERED DEQUE OF "ATL" NODES FOR ACTIVE TASKS
2306 ; THAT HAVE MEMORY ALLOCATED FOR THEIR EXECUTION. THE TASKS REPRESENTED
2307 ; BY ENTRIES IN THE ATL ARE EITHER MEMORY RESIDENT, OR A REQUEST FOR THEIR
2308 ; LOADING HAS BEEN QUEUED. THE LISTHEAD FOR THIS DEQUE IS IN THE SYSTEM
2309 ; COMMUNICATIONS AREA (SCOM), AND THE NODES ARE OF THE FOLLOWING FORMAT:
2310 ;
2311 ; WD. 00 (B 00) -- FORWARD LINKAGE
2312 ; WD. 01 (B 02) -- BACKWARD LINKAGE
2313 000004 A.SP==04 ; WD. 02 (B 04) -- STACK POINTER (R6) OF RUNNING TASK
2314 ; WHEN TASK IS NOT CURRENT TASK
2315 000006 A.PD==06 ; WD. 03 (B 06) -- TASK'S RUN PARTITION (TPD ADDRESS)
2316 000010 A.RP==10 ; WD. 04 (B 10) -- TASK'S RUN PRIORITY (BYTE)
2317 000012 A.HA==12 ; WD. 05 (B 12) -- 1/64TH REAL ADR OF LOAD IMAGE
2318 000014 A.TS==14 ; WD. 06 (B 14) -- TASK STATUS (BYTE)
2319 000015 A.FB==15 ; WD. 06 (B 15) -- TASK FLAGS BYTE
2320 000016 A.TD==16 ; WD. 07 (B 16) -- SYSTEM TASK DIRECTORY (STD) ENTRY ADDRESS
2321 000020 A.EF==20 ; WD. 10 (B 20) -- TASK'S EVENT FLAGS (1-32)
2322 ; WD. 11 (B 22) -- (SECOND HALF OF TASK'S EVENT FLAGS)
2323 000024 A.FM==24 ; WD. 12 (B 24) -- TASK'S EVENT FLAGS MASKS (64-BITS)
2324 ; WD. 13 (B 26) -- (SECOND WORD OF FLAGS MASK)
2325 ; WD. 14 (B 30) -- (THIRD WORD OF FLAGS MASK)
2326 ; WD. 15 (B 32) -- (FOURTH WORD OF FLAGS MASK)
2327 000034 A.PF==34 ; WD. 16 (B 34) -- POWER FAIL AST TRAP ADDRESS
2328 ;
2329 000036 A.SZ==36 ;SIZE OF ATL
2330 ;
2331 ; TASK STATUS VALUES ARE DESCRIBED AT 'ASXDT'
2332 ;
2333 ; BEFORE EXECUTION , THE FIRST THREE
2334 ; FLAGS MASK WORDS ARE USED AS FOLLOWS:
2335 ;
2336 ; A.FM+0 -- ADDRESS OF TASK LOAD I/O REQUEST DEQUE LISTHEAD,
2337 ; A.FM+2 -- ADDRESS OF TASK LOAD I/O REQUEST NODE,
2338 ;
2339 ; MRL -- MEMORY REQUIRED LIST
2340 ;
2341 ; THE "MRL" IS A PRIORITY ORDERED DEQUE OF "ATL" NODES FOR ACTIVE TASKS
2342 ; THAT REQUIRE MEMORY IN A PARTITION. EACH PARTITION HAS ITS OWN MRL.
2343 ; WHENEVER A NON-FIXED TASK RUNNING IN A PARTITION EXITS, AN
2344 ; ATTEMPT IS MADE TO ASSIGN MEMORY TO THE FIRST (HIGHEST PRIORITY)
2345 ; TASK IN THE LIST. IF MEMORY IS FOUND, THE TASK'S NODE IS
2346 ; MOVED FROM THE "MRL" TO THE "ATL" DEQUE. THE MRL LISTHEAD IS IN
2347 ; THE TPD ENTRY FOR THE CORRESPONDING PARTITION.
2348 ;
2349 ;
2350 ; FLAGS BYTE BIT DEFINITIONS
2351 ;
2352 000200 AF.PP==200 ;[07] SET WHEN TASK IS PRIMARY PROTOCOL TASK
2353 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 54
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2355 ;
2356 ; CKL -- CLOCK TABLE
2357 ;
2358 ; THE CLOCK LIST IS A TABLE CONSISTING OF ONE ENTRY FOR EACH OPERATION
2359 ; SCHEDULED TO BE PERFORMED AT SOME FUTURE TIME. A "SCHEDULE DELTA-
2360 ; TIME" EACH ENTRY (IF ANY) OF THE CLOCK QUEUE IS DECREMENTED
2361 ; AT EACH CLOCK TICK UNTIL THE ENTRY "COMES DUE", AT WHICH TIME THE
2362 ; INDICATED OPERATION IS PERFORMED. CLOCK TABLE ENTRIES ARE OF
2363 ; FOLLOWING FORMAT.
2364 ;
2365 000000 C.AT==00 ; WD. 00 -- ATL NODE ADDRESS OF REQUESTOR
2366 000002 C.AS==02 ; WD. 02 -- AST TRAP ADDRESS OF REQUESTOR
2367 000004 C.SD==04 ; WD. 02 -- SCHEDULE DELTA IN TICKS (16-BITS)
2368 000006 C.RS==06 ; WD. 03 -- RESCHEDULE DELTA IN TICKS (16-BITS)
2369 000010 C.FM==10 ; WD. 04 -- FLAG MASK (BIS SRC)
2370 000012 C.FA==12 ; WD. 05 -- FLAGS WORD ADR (BIS DST ADR)
2371 ;
2372 000014 C.SZ==14 ; SIZE OF CLOCK TABLE ENTRY
2373 ;
2374 ;
2375 000074 .CYLTM==60. ;CYCLE TIME OF CLOCK
2376 ;
2377 000005 .KALSC==5 ;TIMEOUT INTERVAL FOR KL10
2378 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 55
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2380 ;
2381 ; DTE -- DTE TABLE
2382 ;
2383 ; THE DTE LIST IS A TABLE CONSISTING OF ONE ENTRY FOR EACH OPERATION
2384 ; SCHEDULED TO BE PERFORMED AT SOME FUTURE TIME WHEN THE DTE20
2385 ; INTERRUPTS. THE DTE20 TABLE ENTRIES ARE OF THE FOLLOWING
2386 ; FORMAT.
2387 ;
2388 000000 D.AT==00 ; WD. 00 -- ATL NODE ADDRESS OF REQUESTOR
2389 000002 D.FM==02 ; WD. 01 -- FLAG MASK (BIS SRC)
2390 000004 D.FA==04 ; WD. 02 -- FLAGS WORD ADR (BIS DIST ADR)
2391 ;
2392 000006 D.SZ==06 ; SIZE OF DTE20 TABLE ENTRY
2393 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 56
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2395 ;
2396 ; KLI PARAMETER WORD DEFINITIONS (.KLIWD)
2397 ;
2398 000001 KL.LRM==1 ;LOAD RAMS
2399 000002 KL.CFM==2 ;CONFIGURE MEMORY
2400 000004 KL.LVB==4 ;LOAD VBOOT
2401 000010 KL.VBN==10 ;VBOOT START AT START+1
2402 000020 KL.VBD==20 ;DUMP MONITOR
2403 000040 KL.SPF==40 ;START AT LOC 70 (AFTER POWER FAIL)
2404 000100 KL.LCA==100 ; +001 LOAD CACHE
2408 000400 KL.CFL==400 ; +001 IF = 0, CONFIGURE FROM FILE
2409 001000 KL.KAC==1000 ; [4.2107] KEEP-ALIVE-CEASED ERROR
2410 002000 KL.DEF==2000 ; OPERATOR ACTUATED REBOOT
2411 004000 KL.REQ==4000 ; KLINIT REQUESTED
2412 010000 KL.ABO==10000 ; KLINIT CANCELED
2413 ;
2414 ; ALL BITS 0 IMPLIES ASK QUESTIONS TO CONTROL LOADING
2415 ;
2416 ;
2417 ; PARAMETER DEFINITIONS FOR KL ERROR WORD
2418 ;
2419 000001 KS.TSP==1 ;TEN STOPPED (HALTED)
2420 000002 KS.CES==2 ;CLOCK ERROR STOP
2421 000004 KS.EPE==4 ;E BOX PARITY ERROR
2422 000010 KS.DEX==10 ;DEPOSIT EXAMINE ERROR
2423 000020 KS.CST==20 ;KEEP ALIVE STOPPED
2424 000040 KS.TRR==40 ;TEN REQUEST'S RE-BOOT
2425 000100 KS.PFT==100 ;POWER FAIL RESTART
2426 000200 KS.PTO==200 ; +++012 PROTOCOL TIMEOUT
2427 000400 KS.FME==400 ;FAST MEMORY PARITY ERROR
2428 001000 KS.CPE==1000 ;CRAM PARITY ERROR
2429 002000 KS.DPE==2000 ;DRAM PARITY ERROR
2430 004000 KS.FCF==4000 ;FAULT-CONTNUATION FAILED
2431 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 57
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2433 ;
2434 ; PUD -- PHYSICAL UNIT DEVICE TABLE
2435 ;
2436 ; THE "PUD" IS A FIXED LIST OF ENTRIES DESCRIBING EACH PHYSICAL DEVICE-
2437 ; UNIT IN A SYSTEM.
2438 ; CONSISTS OF ENTRIES OF THE FOLLOWING FORMAT:
2439 ;
2440 000000 U.DN==00 ; WD. 00 (B 00) -- DEVICE NAME (2 ASCII CHARS)
2441 000002 U.UN==02 ; WD. 01 (B 02) -- UNIT NUMBER (BYTE)
2442 000003 U.FB==03 ; (B 03) -- FLAGS (BYTE)
2443 000004 U.C1==04 ; WD. 02 (B 04) -- CHARACTERISTICS WORD ONE (DEVICE INDEPENDENT INDICATORS)
2444 000006 U.C2==06 ; WD. 03 (B 06) -- CHARACTERISTICS WORD TWO (DEVICE DEPENDENT INDICATORS
2445 000010 U.C3==10 ; WD. 04 (B 10) -- CHARACTERISTICS WORD THREE (DEVICE DEPENDENT INDICATORS)
2446 000012 U.C4==12 ; WD. 05 (B 12) -- CHARACTERISTICS WORD FOUR (SIZE OF BLOCK, BUFFER, LINE)
2447 000014 U.AF==14 ; WD. 06 (B 14) -- ATTACH FLAG (ATL NODE ADDRESS OF ATTAC HING TASK
2448 000016 U.RP==16 ; WD. 07 (B 16) -- REDIRECT POINTER
2449 000020 U.HA==20 ; WD. 10 (B 20) -- HANDLER TASK ATL NODE ADDRESS
2450 000022 U.RF==22 ; WD. 11 (B 22) -- UNIT REQUEST DEQUE LISTHEAD (FWD PNTR)
2451 000024 U.RB==24 ; WD. 12 (B 24) -- UNIT REQUEST DEQUE LISTHEAD (BKG PNTR)
2452 ;
2453 ; PHYSICAL UITS ARE CONSIDERED "VOLUMES" BY THE FILES SYSTEM, AND THE
2454 ; REMAINDER OF THE PUD ENTRY IS A "VOLUME CONTROL BLOCK".
2455 ;
2456 000026 U.VA==26 ; WD. 13 (B 26) -- ADDRESS OF VOLUME CONTROL BLOCK EXTENSION
2457 000030 U.UI==30 ; WD. 14 (B 30) -- USER IDENTIFICATION CODE (UIC)
2458 000030 U.PC==30 ; (B 30) -- UIC PROGRAMMER CODE
2459 000031 U.GC==31 ; (B 31) -- UIC GROUP CODE
2460 000032 U.VP==32 ; WD. 15 (B 32) -- VOLUME PROTECTION WORD
2461 000032 U.CH==32 ; (B 32) -- CHARACTERISTICS FLAGS
2462 ; (B 33) -- RESERVED BYTE
2463 000034 U.AR==34 ; WD. 16 (B 34) -- ACCESS RIGHTS FLAGS WORD
2464 000036 U.DACP==36;WD. 20 (B 36) -- DEFAULT ACP NAME, RAD50 (FIRST WORD)
2465 000040 U.ACP==40 ; WD. 20 (B 40) -- STD ENTRY ADDRESS OF CURRENT ACP
2466 000042 U.TF==42 ; WD. 21 (B 42) -- TERMINAL FLAGS WORD
2467 000042 U.PR==42 ; (B 42) -- TERMINAL PRIVILEDGE WORD
2468 000043 U.FO==43 ; (B 43) -- TERMINAL FORMS BYTE
2469 000044 U.LBH==44 ; WD. 22 (B 44) -- HIGH ORDER - TOTAL # OF BLOCKS FOR DEVICE
2470 000046 U.LBN==46 ; WD. 24 (B46) -- LOW ORDER TOTAL # OF BLOCKS FOR DEVICE
2471 000050 U.SZ==50 ;SIZE (IN BYTES OF PUD ENTRIES
2472 ;
2473 ; FLAGS BYTE DEFINITIONS
2474 ;
2475 000040 UF.RD==040 ; **************TEMP*********
2476 000200 UF.RH==200 ; [7] SET WHEN HANDLER TASK IS DECLARED RESIDENT
2477 000100 UF.TL==100 ; [6] SET WHEN HANDLER TASK RECOGNIZES LOAD AND RECORD
2478 000040 UF.OFL==040 ; [5] SET WHEN DEVICE IS OFFLINE
2479 ;
2480 ; BIT DEFINITIONS FOR CHARACTERISTICS WORD ONE
2481 ;
2482 000001 UC.REC==000001 ;[00] SET IF RECORD ORIENTED DEVICE (VIZ., TT,LP, CR)
2483 000002 UC.CCL==000002 ;[01] SET IF CARRIAGE CONTROL DEVICE (VIZ., TT LP)
2484 000004 UC.TTY==000004 ;[02] SET IF TTY DEVICE (VIZ., KSR, LA30)
2485 000010 UC.DIR==000010 ;[03] SET IF DEVICE IS A DIRECTORY DEVICE
2486 000020 UC.SDI==000020 ;[04] SET IF DEVICE IS A SINGLE DIRECTORY DEVICE
2487 000040 UC.SQD==000040 ;[05] SET IF DEVICE IS A SEQUENTIAL DEVICE
2488 000100 UC.ETB==000100 ;[06] SET IF DEVICE IS EIGHTEEN BIT MODE
2489 000400 UC.INB==000400 ;+003 [08] SET IF THE DEVICE IS INTERMEDIATE BUFFERED
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 57-1
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2490 001000 UC.SWL==001000 ;[09] SET IF THE DEVICE IS SOFTWARE WRITE LOCKED
2491 002000 UC.ISP==002000 ;[10] SET IF DEVICE IS INPUT SPOOLED
2492 004000 UC.0SP==004000 ;[11] SET IF DEVICE IS OUTPUT SPOOLED
2493 010000 UC.PSE==010000 ;[12] SET IF DEVICE IS PSEUDO DEVICE
2494 020000 UC.COM==020000 ;[13] SET IF DEVICE IS COMMUNICATIONS CHANNEL
2495 040000 UC.F11==040000 ;[14] SET IF DEVICE IS FILES-11
2496 100000 UC.MNT==100000 ;[15] SET IF DEVICE IS MOUNTABLE
2497 ;
2498 ; BIT DEFINITIONS FOR CHARACTERISTICS WORD TWO
2499 ;
2500 000200 CH.OFF==200 ;VOLUME IS OFF-LINE
2501 000100 CH.FOR==100 ;VOLUME IS FOREIGN
2502 000040 CH.UNL==40 ;DISMOUNT PENDING
2503 000020 CH.NAT==20 ;ATTACH/DETACH NOT PERMITTED
2504 000010 CH.NDC==10 ;DEVICE CONTROL FUNCTIONS NOT PERMITTED
2505 000001 CH.LAB==1 ;VOLUME IS LABELED TAPE
2506 ;
2507 ; BIT DEFINITIONS FOR TERMINAL PRIVILEDGE BYTE
2508 ;
2509 000001 UT.PR==1 ;SET IF TY ID PRIVILEDGED
2510 000002 UT.SL==2 ;SET IF TTY IS SLAVED
2511 000004 UT.LG==4 ;SET IF TERMINAL IS LOGGED ON
2512 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 58
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2514 ;
2515 ; TASK TERMINATION NOTICE ERROR CODES FOR A.FM+0
2516 ;
2517 000012 TN.EMT==12 ;NON-RSX EMT
2518 000014 TN.TRP==14 ;TRAP INSTRUCTION
2519 000040 TN.LRF==40 ;LOAD FAILURE
2520 ;
2521 ; SEND AND REQUEST QUEUE ENTRY
2522 ;
2523 000004 Q.SI==04 ; WD. 02 (B 04) -- SYSTEM TASK LIST ADDRESS
2524 000006 Q.D1==06 ; WD. 03 (B 06) -- FIRST DATA WORD
2525 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 59
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2527 ;
2528 ; DEVICE QUEUE POINTER TABLE (TO 11 QUEUE ENTRIES)
2529 ;
2530 000000 Q.DA==0 ; WD. 00 (B 00) -- ADDRESS OF DEVICE TABLE LIST
2531 000002 Q.TS==02 ; WD. 01 (B 02) -- SIZE OF AN ENTRY IN THE DEVICE TABLE LIST
2532 000004 Q.ST==04 ; WD. 02 (B 04) -- ADDRESS OF DEVICE START SUBROUTINE
2533 000006 Q.SP==06 ; WD. 03 (B 06) -- ADDRESS OF DEVICE STOP SUBROUTINE
2534 ; WD. 04 (B 10) -- SPARE
2535 000012 Q.AK==12 ; WD. 05 (B 12) -- ACKNOWLEDGE ROUTINE
2536 ; WD. 06 (B 14) -- SPARE
2537 000016 Q.DZ==16 ; WD. 07 (B 16) -- DEVICE COUNT
2538 000020 Q.SZ==20 ; SIZE OF TABLE ENTRY
2539 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 60
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2541 ;
2542 ; DEVICE ERROR LOGGING INFORMATION AND STATUS BLOCK DEFINITONS
2543 ;
2544 ; WORD 0 -- STANDARD STATUS BITS (DV.XXX)
2545 ;
2546 ; 1 DEVICE-DEPENDENT BITS
2547 ; 2 ...........
2548 ; N
2549 ;
2550 ; DEVICE ERROR LOGGING BITS (FIRST WORD BITS ONLY)
2551 ;
2552 000001 DV.NXD==1 ;NON-EX DEVICE
2553 000002 DV.OFL==2 ;OFF-LINE
2554 000004 DV.OIR==4 ;HARDWARE ERROR. OPERATOR INTERVENTION REQ'D
2555 000010 DV.SCN==10 ;SOFTWARE CONDITION. ACKNOWLEDGE REQUIRED
2556 000020 DV.IOP==20 ;I/O IN PROGRESS
2557 000040 DV.EOF==40 ;END-OF-FILE ENCOUNTERED
2558 000100 DV.LOG==100 ;ERROR LOGGING REQUIRED
2559 000200 DV.URE==200 ;UN-RECOVERABLE ERROR
2560 000400 DV.F11==400 ;ERROR ON FROM -11 REQUEST
2561 001000 DV.HNG==1000 ;DEVICE HUNG
2562 002000 DV.LIN==2000 ;DEVICE LOST INTERRUPT ENABLE
2563 004000 DV.CFG==4000 ; CONFIGURATION INFORMATION
2564 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 61
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2566 ;
2567 ; KLINIK EVENT LOGGING CODES
2568 ;
2569
2570 000000 K.LUND==0 ; UNDEFINED CODE
2571
2572 000001 K.LSCK==1 ; SET/CLEAR KLINIK COMMAND
2573 000001 K.LSKL==1 ; SET KLINIK
2574 177777 K.LCKL==-1 ; CLEAR KLINIK
2575
2576 000002 K.LRNG==2 ; KLINIK RING
2577 000001 K.LRAC==1 ; ACCEPTED (WINDOW OPEN)
2578 177777 K.LRRJ==-1 ; REJECTED (WINDOW CLOSED)
2579
2580 000003 K.LDSC==3 ; KLINIK LINE DISCONNECT
2581 000001 K.LDCM==1 ; DIRECTED DISCONNECT (COMMAND)
2582 177777 K.LDRP==-1 ; CARRIER DROP
2583
2584 000004 K.LCON==4 ; KLINIK LINE CONNECT
2585 000001 K.LROP==1 ; REMOTE -- OPERATOR MODE
2586 000002 K.LRPR==2 ; REMOTE -- PROGRAMMER MODE
2587 000003 K.LRMN==3 ; REMOTE -- MAINTENANCE MODE
2588 177777 K.LUSR==-1 ; USER MODE
2589
2590 000005 K.LBPW==5 ; BAD PASSWORD
2591
2592 000006 K.LLTO==6 ; LOGON TIMEOUT
2593
2594 000007 K.LRBA==7 ; KLINIK ACTIVE ON REBOOT
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 62
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2596 ;
2597 ; OFFSETS FOR SST TRAPS TABLE IN USER'S AREA
2598 ;
2599 000000 T.RAP4==0 ;TRAP AT 4
2600 000002 T.RAPM==2 ;MEMORY PROTECT VIOLATOION
2601 000004 T.RAPB==4 ;T BIT OR BPT TRAP
2602 000006 T.RAPI==6 ;IOT TRAP
2603 000010 T.RAPR==10 ;RESERVED INSTRUCTION TRAP
2604 000012 T.RAPE==12 ;EMT TRAP (NON RSX)
2605 000014 T.RAPT==14 ;TRAP TRAP
2606 000016 T.RAPF==16 ;FLOATING POINT TRAP
2607 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 63
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2609 ;
2610 ; IRQ -- I/O REQUEST QUEUE
2611 ;
2612 ; THE "IRQ" IS A PRIORITY ORDERED DEQUE OF I/O REQUEST NODES WITH ITS
2613 ; LISTHEAD IN THE PUD ENTRY OF THE PHYSICAL UNIT FOR WHICH THE I/O
2614 ; REQUEST WAS QUEUED. EACH PHYSICAL UNIT HAS ITS OWN I/O REQUEST QUEUE.
2615 ; I/O REQUEST NODES ARE CREATED AND QUEUED PRIMARILY BY THE "QUEUE I/O"
2616 ; DIRECTIVE. HOWEVER, THE EXEC ALSO CREATES I/O REQUESTS TO:
2617 ; (1) LOAD A TASK IMAGE,
2618 ; I/O REQUEST NODES ARE
2619 ; THE FOLLOWING FORMAT.
2620 ;
2621 ; WD. 00 (B 00) -- FORWARD LINKAGE
2622 ; WD. 01 (B 02) -- BACKWARD LINKAGE
2623 000004 R.TD==04 ; WD. 02 (B 04) -- STD NODE OF REQUESTOR
2624 000006 R.AT==06 ; WD. 03 (B 06) -- ATL NODE OF REQUESTOR ***
2625 000010 R.PR==10 ; WD. 04 (B 10) -- PRIORITY (BYTE)
2626 000011 R.DP==11 ; (B 11) -- DPB SIZE (BYTE) ***
2627 000012 R.LU==12 ; WD. 05 (B 12) -- LOGICAL UNIT NUMBER (BYTE)
2628 000013 R.FN==13 ; (B 13) -- EVENT FLAG NUMBER (BYTE)
2629 000014 R.FC==14 ; WD. 06 (B 14) -- I/O FUNCTION CODE
2630 000016 R.SB==16 ; WD. 07 (B 16) -- ADDRESS OF STATUS BLOCK
2631 000020 R.AS==20 ; WD. 10 (B 20) -- AST ADDRESS
2632 000022 R.UI==22 ; WD. 11 (B 22) -- UIC (UNUSED)
2633 000024 R.PB==24 ; WD. 12 (B 24) -- PARAMETER #1
2634 ; WD. 13 (B 26) -- PARAMETER #2
2635 ; WD. 14 (B 30) -- PARAMETER #3
2636 ; WD. 15 (B 32) -- PARAMETER #4
2637 ; WD. 16 (B 34) -- PARAMETER #5
2638 ; WD. 17 (B 36) -- PARAMETER #6
2639 ;
2640 ; THE LOW ORDER THREE-BITS OF THE I/O FUNCTION CODE ARE USED BY THE SYSTEM
2641 ; AS FOLLOWS:
2642 ;
2643 ;[0] -- RESERVED FOR FUTURE USE
2644 000002 RF.XR==000002 ;RESERVED
2645 ;[2] -- RESERVED FOR FUTURE USE
2646 ;
2647 ; *** WHENEVER AN I/O REQUEST IS QUEUED BY THE "QUEUE I/O" DIRECTIVE, THE
2648 ; DPB SIZE AND THE REQUESTOR'S ATL NODE ADDRESS ARE RECORDED IN THE I/O
2649 ; REQUEST NODE. WHENEVER AN I/O REQUEST IS QUEUED AS A RESULT OF ANOTHER
2650 ; DIRECTIVE (VIZ., "REQUEST" CAUSING A TASK IMAGE TO BE LOADED), THE DPB
2651 ; SIZE AND THE REQUESTOR'S ATL NODE ADDRESS ARE SET TO ZERO. THUS, BOTH
2652 ; BOTH THE DPB SIZE AND THE ATL NODE ADDRESS ARE ALSO "EXEC REQUEST"
2653 ; INDICATORS.
2654 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 64
EXEC MODULE ONE -- SYMBOLIC DEFINITIONS
2656 ;+
2657 ; SIGNIFICANT EVENT FLAG DEFINITIONS
2658 ;
2659 ;
2660 ; THE HIGH-ORDER BYTE '.SERFG+1' IS INCREMENTED WHENEVER A CLOCK
2661 ; TICK OCCURS (WHENEVER THE CLOCK INTERRUPT SERVICE ROUTINE RUNS).
2662 ; HENCE, '.SERFG+1' IS A BYTE CONTAINING A COUNT OF UNRECOGNIZED
2663 ; CLOCK TICKS.
2664 ;
2665 ; THE BITS OF THE LOW-ORDER BYTE '.SERFG+0' ARE USED TO FLAG THE
2666 ; FOLLOWING EVENTS:
2667 ;
2668 000001 EV.SE==001 ; [0] SET WHENEVER A SIGNIFICANT EVENT IS TO BE
2669 ; RECOGNIZED,
2670 ;
2671 000002 EV.AS==002 ; [1] SET WHEN POWER FAIL IS REQUIRED
2672 000200 EV.PF==200 ; [7] SET WHEN POWER DOWN HAS OCCURRED AND MUST BE RECOGNIZED
2673 ; ** MUST BE SIGN BIT **
2674 ;-
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 65
EXEC MODULE ONE -- NUL TASK
2676 .SBTTL EXEC MODULE ONE -- NUL TASK
2677 ;
2678 ; THE NUL TASK EXISTS TO ELIMINATE EXCEPTION TESTING WHEN SCANNING THE
2679 ; ACTIVE TASK LIST, AND WHEN PROCESSING DIRECTIVES THAT CAUSE AN
2680 ; ATL SCAN TO CONTINUE FROM THE NEXT TASK OF LOWER PRIORITY THAN THE
2681 ; DIRECTIVE ISSUING TASK.
2682 ;
2683 ; THE NUL TASK IS THE LOWEST PRIORITY TASK IN A SYSTEM.
2684 ;
2685 ; THE NUL TASK HAS AN ATL NODE WITH STATUS OF "RUNNING", BUT HAS NO STD
2686 ; ENTRY.
2687 ;
2688 ; THE NUL TASK DOES NOT RESIDE IN A PARTITION.
2689 ;
2690 ; THE NUL TASK EXECUTION CONSISTS OF "WAIT" INSTRUCTIONS (TO INCREASE
2691 ; UNIBUS THROUGHPUT). HOWEVER, THE NUL TASK DOES HAVE CONTEXT, AND CAN
2692 ; EXECUTE PDP-11 INSTRUCTIONS
2693 ;
2694 ;
2695 012242 NULHD:: .STKM 170017,0,0,0,0,0,0,NTKXEP,174000,NTKXSP
012310 000000 000000 000000 .WORD 0,0,0,0
012316 000000
012336 174000 012546' 012522' .WORD 174000,NTKXEP,NTKXSP
012372 000005 .WORD 5
012374 010232' .WORD TTPEN
012376 000000 .WORD 0
012400 000000 .WORD 0
012402 000000 .WORD 0
012404 000000 .WORD 0
012406 000000 .WORD 0
012410 000000 .WORD 0
012412 000000 .WORD 0
012414 000000 .WORD 0
012416 000000 .WORD 0
012420 000000 .WORD 0
012522 170017 .WORD 170017
012524 000000 .WORD 0
012526 000000 .WORD 0
012530 000000 .WORD 0
012532 000000 .WORD 0
012534 000000 .WORD 0
012536 012546' .WORD NTKXEP
012540 174000 .WORD 174000
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 66
EXEC MODULE ONE -- NUL TASK
2697 012542 NTKXEN:
2698 012542 .ENB6 ; ENABLE INTERRUPTS
012542 012637 177776 MOV (SP)+,@#PS
2699 012546 NTKXEP:
2700 012546 000001 WAIT
2701 012550 000001 WAIT
2702 012552 005200 INC R0
2703 012554 .INH6 ; [4.1.1035] DISALLOW INTERRUPTS
012554 013746 177776 MOV @#PS,-(SP)
012560 112737 000300 177776 MOVB #300,@#PS
2704 012566 005737 001012' TST .COMEF+2 ;;; [4.1.1105] IF PRIMARY PROTOCOL IS DEAD
2705 012572 100033 BPL 40$ ;;; [4.1.1105] THEN SEND DOWN MESSAGE
2706 012574 005737 001164' TST .ACKAL ;;; IF ACKAL HAS NOT BEEN SENT
2707 012600 001002 BNE 20$ ;;; THEN KL MAY STILL BE SHAKY
2708 012602 105037 013034' CLRB SNDMSG ;;; OTHERWISE RESET MSG FLAG
2709 012606 20$:
2710 012606 005737 001124' TST .TKTN ;;; CHECK FOR TASK TERMINATION REQUIRED
2711 012612 001410 BEQ 30$ ;;; NO -- LOOK AT TIME OF DAY FLAG
2712 012614 005037 001124' CLR .TKTN ;;; CLEAR REQUEST FOR TASK TERMINTATION
2714 012620 .ENB6 ;;; ENABLE INTERRUPTS
012620 012637 177776 MOV (SP)+,@#PS
2715 012624 DIR$ #.TKTN. ; REQUEST TASK TERMINATION
012624 012746 012740' MOV #.TKTN.,-(SP)
012630 104375 EMT 375
2716 012632 000745 BR NTKXEP ; AND CONTINUE
2717 ;
2721 012634 30$:
2722 012634 005737 001136' TST .CLKSW ;;; NEED TIME CHANGE?
2723 012640 100340 BPL NTKXEN ;;; [4.1.1035] NO -- JUST GO ON
2724 012642 005037 001136' CLR .CLKSW ;;; YES -- RESET CLOCK SWITCH
2725 012646 .ENB6 ;;; ENABLE INTERRUPTS
012646 012637 177776 MOV (SP)+,@#PS
2726 012652 DIR$ #.TOD. ; REQUEST TIME OF DAY TASK
012652 012746 012722' MOV #.TOD.,-(SP)
012656 104375 EMT 375
2727 012660 000732 BR NTKXEP ; AND CONTINUE IDLE LOOP
2728 ;
2729 012662 40$:
2730 012662 105737 001372' TSTB .PRPSE ;;; ARE WE JUST PAUSING??
2731 012666 001347 BNE 20$ ;;; YES -- BACK TO MAIN LOOP
2732 012670 005737 013034' TST SNDMSG ;;; HAVE WE INFORMED THE TTYS ?
2733 012674 001344 BNE 20$ ;;; YES -- DON'T RE-SEND
2734 012676 012704 012756' MOV #DWNMSG,R4 ;;; SEND DOWN MESSAGE
2735 012702 CALL COPBUF ;;; COPY BUFFER TO FREE SPACE
012702 004737 027312' JSR PC,COPBUF
2736 012706 010004 MOV R0,R4 ;;; SET UP TO SEND IT
2737 012710 CALL .SNDAL ;;; SEND MESSAGE
012710 004737 027006' JSR PC,.SNDAL
2738 012714 105237 013034' INCB SNDMSG ;;; SYSTEM DOWN MESSAGE HAS BEEN SENT.
2739 012720 000732 BR 20$ ;;; CHECK FOR TERMINATION NOTIFICATION
2740 ;
2741 012722 .TOD.:
2742 012722 RQST$ MIDNIT
012722 013 007 .BYTE 11.,7
012724 051254 054374 .RAD50 /MIDNIT/
012730 000000 000000 .WORD 0,0
012734 000000 .WORD
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 66-1
EXEC MODULE ONE -- NUL TASK
012736 000 000 .BYTE ,
2743
2745 012740 .TKTN.:
2746 012740 RQST$ TKTN
012740 013 007 .BYTE 11.,7
012742 077314 053600 .RAD50 /TKTN/
012746 000000 000000 .WORD 0,0
012752 000000 .WORD
012754 000 000 .BYTE ,
2748
2749 012756 DWNMSG:
2750 012756 000000 000060 012770' .WORD 0,60,DWNMS,DWNMSZ,DWNMSZ*400
012764 000043 021400
2751
2753 012770 DWNMS:
2754 012770 015 012 007 .ASCII <15><12><7><7><7>/%DECSYSTEM-20 NOT RUNNING/<15><12><7><7><7>
012773 007 007 045
012776 104 105 103
013001 123 131 123
013004 124 105 115
013007 055 062 060
013012 040 116 117
013015 124 040 122
013020 125 116 116
013023 111 116 107
013026 015 012 007
013031 007 007
2759 000043 DWNMSZ=.-DWNMS
2760 .EVEN
2761 013034 SNDMSG::
2762 013034 001 .BYTE 1 ; +++005 A SYSTEM DOWN MSG HAS BEEN SENT
2763 013035 000 .BYTE 0 ; [5.1127] HOST DEBUG NO MESSAGE FLAG
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 67
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
2765 .SBTTL EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
2766 ;
2767 ;
2768 ; EMT INSTRUCTIONS ARE ONLY EXECUTED BY NON-INTERRUPT SERVICE ROUTINES
2769 ;
2770 ; DIRECTIVE DISPATCH -- CONTROL IS TRANSFERRED TO A DIRECTIVE SERVICE
2771 ; ROUTINE PER DIRECTIVE IDENTIFICATION CODE (DIC)
2772 ;
2773 ; REGISTER DEFINITIONS ON EXIT:
2774 ; R0 -- PC OF EMT INSTRUCTION
2775 ; R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
2776 ; R2 -- DPB SIZE
2777 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
2778 ; R5 -- CURRENT TASK POINTER
2779 ;
2780 000020 EM.DRO==20 ;OFFSET TO DPB OR DPB POINTER ON STACK
2781 ;
2782 ;
2783 ;
2784 013036 010546 EMTTRP::MOV R5,-(SP) ;SAVE R5 INCASE OF TRAP(SST)
2785 013040 016605 000002 MOV 2(SP),R5 ;=PC+2 OF EMT INSTRUCTION
2786 013044 024527 CMP -(R5),(PC)+ ;WAS IT A
2787 013046 104375 EMT 375 ; DIRECTIVE ?
2788 013050 001421 BEQ 10$ ;YES -- LEGAL DIRECTIVE REQUEST
2789 013052 011637 001116' MOV @SP,EMTSTK ;SAVE R5
2790 013056 111516 MOVB @R5,@SP ;NO -- MUST SET IT UP FOR SST
2791 013060 013705 001006' MOV .CRTSK,R5 ;FIND THE CURRENT TASK POINTER
2792 013064 016505 000016 MOV A.TD(R5),R5 ;FIND STD ADDRESS
2793 013070 016505 000030 MOV S.SS(R5),R5 ;FIND THE SST TABLE
2794 013074 001403 BEQ 5$ ;NONE -- FORGET IT
2795 013076 MFPS T.RAPE(R5),R5 ;IS THERE AN ENTRY IN THE TABLE?
013076 016505 000012 MOV T.RAPE(R5),R5
2796 013102 001106 BNE .SSTET ;DO SST SERVICE
2797
2798 013104 012737 000012 001120' 5$: MOV #TN.EMT,TRPASV ;SAVE THE TERMINATION TYPE
2799 013112 000513 BR CMNABT ;AND GO TO COMMON ABORT
2800
2801 013114 10$: ;REMOVE THE SAVED R0 -- NOT NEEDED NOW
2802 ;SAVE REGISTERS
2803 013114 010446 MOV R4,-(SP)
2804 013116 010346 MOV R3,-(SP)
2805 013120 010246 MOV R2,-(SP)
2806 013122 010146 MOV R1,-(SP)
2807 013124 010046 MOV R0,-(SP)
2808 013126 010637 001116' MOV SP,EMTSTK ;SAVE EMT STACK POINTER
2810 013132 016601 000020 MOV EM.DRO(SP),R1 ;FIND THE DIRECTIVE OR DIRECTIVE POINTER
2816 ;
2817 ; IF R1 IS EVEN, IT IS ASSUMED TO BE A DPB POINTER
2818 ; IF R1 IS ODD, IT IS ASSUMED TO BE THE FIRST WORD OF A DPB THAT
2819 ; HAS BEEN PUSHED ONTO THE STACK.
2820 ;
2821 ;
2822 ; TEST FOR ODD OR EVEN
2823 ;
2824 013136 032701 000001 BIT #1,R1
2825 013142 001003 BNE 20$
2826 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 67-1
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
2827 ; EVEN -- R1 CONTAINS A DPB POINTER (ADDRESS).
2828 ;
2829 013144 MFPS @R1,R2 ;FIND THE FIRST DPB WORD
013144 011102 MOV @R1,R2
2830 013146 010203 MOV R2,R3 ;FIND THE DIRECTIVE IDENTIFICATION CODE
2831 013150 000405 BR 30$ ;EXECUTE DIRECTIVE
2832 ;
2833 ; ODD WORD ON STACK -- DPB IS ON THE ISSUING
2834 ; TASK'S STACK, AND R1 CONTAINS THE FIRST DPB WORD.
2835 ;
2836 ; SET R1 TO THE DPB ADDRESS, R2 TO THE DPB SIZE (IN WORDS),
2837 ; R3 TO THE DIRECTIVE IDENTIFICATION CODE.
2838 ;
2839 013152 010102 20$: MOV R1,R2 ;SET DPB SIZE IN R2
2840 013154 010103 MOV R1,R3 ;SET DIRECTIVE CODE
2841 013156 010601 MOV SP,R1 ;FIND THE ADDRESS OF THE DPB
2842 013160 062701 000020 ADD #EM.DRO,R1 ;POINT PAST SAVED STACK
2843 013164 042703 177400 30$: BIC #177400,R3
2844 013170 105002 CLRB R2
2845 013172 000302 SWAB R2 ;SET SIZE IN LOW ORDER
2846 ;
2847 ; R3 CONTAINS THE DIRECTIVE IDENTIFICATION CODE.
2848 ; THE DIC IS AN ODD QUANTITY AND SHOULD BE IN THE RANGE
2849 ; 001-127.(MAX RANGE)
2850 ;
2851 013174 005721 TST (R1)+ ;ADVANCE R1 TO POINT TO THE WORD FOLLOWING
2852 ;THE FIRST WORD DPB WORD.
2853 013176 013705 001006' MOV .CRTSK,R5 ;SET UP CURRENT TASK POINTER
2854 013202 022703 000102 CMP #DIRMAX,R3 ;CHECK TO SEE IF LEGAL DIRECTIVE
2855 013206 103001 BHIS DIROK ;OK -- LEGAL RANGE
2856 013210 104635 DS.99: TRAP DE.99 ;ILLEGAL DIRECTIVE
2857 013212 000173 013215' DIROK: JMP @DIRDPT-1(R3) ;DISPATCH TO APPROPRIATE DIRECTIVE SERVICE CODE.
2858 ;
2859 013216 022542' DIRDPT: .WORD .D.QIO ;001. -- QIO
2860 013220 022542' .WORD .D.QIO ;003. -- QIO AND WAIT
2861 013222 021670' .WORD .D.GLI ;005. -- GET LUN INFORMATION
2862 013224 021564' .WORD .D.ASS ;007. -- ASSIGN LUN
2863 013226 020344' .WORD .D.DTE ;009. -- DTE20 FUNCTIONS
2864 013230 023662' .WORD .D.REQ ;011. -- REQUEST
2865 013232 023212' .WORD .D.SEN ;013. -- SEND
2866 013234 023226' .WORD .D.SAR ;015. -- SEND AND REQUEST
2867 013236 023460' .WORD .D.REC ;017. -- RECEIVE
2868 013240 023460' .WORD .D.ROE ;019. -- RECEIVE OR EXIT
2869 013242 023460' .WORD .D.ROS ;021. -- RECEIVE OR SUSPEND
2870 013244 022350' .WORD .D.MKT ;023. -- MARK TIME
2871 013246 023640' .WORD .D.PUT ;025. -- POWER UP AST
2872 013250 022452' .WORD .D.CMT ;027. -- CANCEL MARK TIME REQUESTS
2873 013252 013210' .WORD DS.99 ; 029. -- ILLEGAL DIRECTIVE
2874 013254 022034' .WORD .D.CEF ;031. -- CLEAR EVENT FLAG
2875 013256 022052' .WORD .D.SEF ;033. -- SET EVENT FLAG
2876 013260 022070' .WORD .D.DSE ;035. -- DECLARE SIGNIFICANT EVENT
2877 013262 022112' .WORD .D.REF ;037. -- READ EVENT FLAG
2878 013264 022126' .WORD .D.RAF ;039. -- READ ALL EVENT FLAGS
2879 013266 022152' .WORD .D.WFS ;041. -- WAIT FOR SINGLE EVENT FLAG
2880 013270 022230' .WORD .D.WFL ;043. -- WAIT FOR LOGICAL "OR" OF EVENT FLAGS
2881 013272 013210' .WORD DS.99 ;045. -- SUSPEND EXECUTION -- 010 REMOVED -- ILLEGAL
2882 013274 013210' .WORD DS.99 ;047. -- RESUME TASK EXECUTION -- 010 REMOVED -- ILLEGAL
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 67-2
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
2883 013276 022336' .WORD .D.WSE ;049. -- WAIT FOR NEXT SIGNIFICANT EVENT
2884 013300 022520' .WORD .D.EXT ;051. -- TASK EXIT
2889 013302 013210' .WORD DS.99 ; 053. -- ILLEGAL DIRECTIVE
2890 013304 013210' .WORD DS.99 ; 055. -- ILLEGAL DIRECTIVE
2892 013306 023626' .WORD .D.STV ;057. -- SPECIFY SST VECTOR
2893 013310 021720' .WORD .D.GTP ;059. -- GET TIME PARAMETERS
2894 013312 013210' .WORD DS.99 ;061. -- ILLEGAL
2895 013314 024110' .WORD .D.GPP ;063. -- GET TASK PARAMETERS
2896 013316 024232' .WORD .D.GMP ;065. -- GET PARTITION PARAMETERS
2897 000102 DIRMAX=.-DIRDPT ;LEGAL NUMBER OF DIRECTIVES
2898 ;
2899 ; .SSTET -- SST FOR TRAP AND EMT'S
2900 ;
2901 013320 .SSTET::
2902 013320 105066 000001 CLRB 1(SP) ;CLEAR HIGH BYTE
2903 013324 006316 ASL @SP ;MULTIPLY BY 2
2904 013326 .SSTCO::
2906 013326 012746 004000 MOV #004000,-(SP) ;SET PS
2910 013332 010546 MOV R5,-(SP) ;SET TRAP ADDRESS
2911 013334 013705 001116' MOV EMTSTK,R5 ;RESTORE R5
2912 013340 000002 RTI ;RETURN TO USER
2913 ;
2914 013342 013705 001116' CMNABT: MOV EMTSTK,R5 ;RESTORE R5
2915 013346 000137 011526' JMP CMNABO ;AND GO TO COMMON ABORT
2916 ;
2917 ; CONTROL IS RETUNRED TO ".DR.NS" TO EXIT DIRECTIVE SERVICE WITHOUT ALTERING
2918 ; AN ISSUING TASK'S DIRECTIVE STATUS OR CONDITION CODES.
2919 ;
2920 ; DIRECTIVE RETURN STATUSES
2921 ;
2922 000000 DR.00==0 ;DIRECTIVE RETURN 00
2923 000001 DR.01==1 ;DIRECTIVE RETURN 01
2924 000002 DR.02==2 ;DIRECTIVE RETURN 02
2925 000003 DR.03==3 ;DIRECTIVE RETURN 03
2926 ;
2927 ; DIRECTIVE ERROR RETURNS
2928 ;
2929 000377 DE.01==-1&377 ;ERR 01
2930 000376 DE.02==-2&377 ;ERR 02
2931 000375 DE.03==-3&377 ;ERR 03
2932 000374 DE.04==-4&377 ;ERR 04
2933 000373 DE.05==-5&377 ;ERR 05
2934 000372 DE.06==-6&377 ;ERR 06
2935 000371 DE.07==-7&377 ;ERR 07
2936 000370 DE.08==-8.&377 ;ERR 08
2937 000367 DE.09==-9.&377 ;ERR 09
2938 000366 DE.10==-10.&377 ;ERR 10
2939 000365 DE.11==-11.&377 ;ERR 11
2940 000260 DE.80==-80.&377 ;ERR 80
2941 000257 DE.81==-81.&377 ;ERR 81
2942 000246 DE.90==-90.&377 ;ERR 90
2943 000245 DE.91==-91.&377 ;ERR 91
2944 000244 DE.92==-92.&377 ;ERR 92
2945 000243 DE.93==-93.&377 ;ERR 93
2946 000242 DE.94==-94.&377 ;ERR 94
2947 000241 DE.95==-95.&377 ;ERR 95
2948 000240 DE.96==-96.&377 ;ERR 96
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 67-3
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
2949 000237 DE.97==-97.&377 ;ERR 97
2950 000236 DE.98==-98.&377 ;ERR 98
2951 000235 DE.99==-99.&377 ;ERR 99
2952 ;
2953 013352 132766 000340 000002 .DRSRN::BITB #340,2(SP) ;FROM EXEC?
2954 013360 001025 BNE 20$ ;YES -- CONTIUE
2955 013362 011646 MOV @SP,-(SP) ;PUT IT ON STACK TWICE
2956 013364 162716 000002 SUB #2,@SP
2957 013370 117616 000000 MOVB @(SP),@SP
2958 013374 010537 001116' MOV R5,EMTSTK
2959 013400 013705 001006' MOV .CRTSK,R5 ;FIND THE CURRENT TASK
2960 013404 016505 000016 MOV A.TD(R5),R5 ;FIND STD ADDRESS
2961 013410 016505 000030 MOV S.SS(R5),R5 ;IS THERE AN SST VECTOR?
2962 013414 001403 BEQ 10$ ;NO -- CRASH
2963 013416 MFPS T.RAPT(R5),R5 ;FIND THE ADDRESS
013416 016505 000014 MOV T.RAPT(R5),R5
2964 013422 001336 BNE .SSTET ;NONE -- CRASH
2965 013424 012737 000014 001120' 10$: MOV #TN.TRP,TRPASV ;SET TRAP TYPE
2966 013432 000743 BR CMNABT ;AND GO TO COMMON ABORT
2967 ;
2968 ;
2969 013434 162716 000002 20$: SUB #2,@SP ;FIND THE TRAP VALUE
2970 013440 113600 MOVB @(SP)+,R0
2971 013442 100006 BPL DRXCOM ;BRANCH IF THE DIRECTIVE SUCCEEDED
2972 013444 013706 001116' DEXCOM: MOV EMTSTK,SP ;RESTORE STACK FOR REGISTER SAVE
2973 013450 052766 000001 000016 BIS #1,EM.DRO-2(SP) ;SET CC-C -2(ISSUING TASK'S PS)
2974 013456 000405 BR DRXRR ;---
2975 ;
2976 013460 .DR.NS:: ;RETURN NO STATUS
2977 013460 013706 001116' DRXCOM: MOV EMTSTK,SP ;RESTORE STACK FOR REGISTER SAVE
2978 013464 042766 000001 000016 BIC #1,EM.DRO-2(SP) ;CLEAR CC-C -2(ISSUING TASK'S PS)
2979 013472 DRXRR: ;-----
2980 013472 010037 000046 MOV R0,$DSW ;SAVE THE DSW
2981 013476 012600 MOV (SP)+,R0 ;POP (RESORE) R0
2982 013500 012601 MOV (SP)+,R1 ;POP (RESTORE) R1
2983 013502 012602 MOV (SP)+,R2 ;POP (RESTORE) R2
2984 013504 012603 MOV (SP)+,R3 ;POP (RESTORE) R3
2986 013506 016604 000010 MOV 10(SP),R4 ;FIND DPB OR DPB ADDRESS
2991 013512 106004 RORB R4 ;ADDRESS OR DPB?
2992 013514 103402 BCS 10$ ;DPB -- FOUND SIZE REQ'D
2993 013516 012704 000400 MOV #400,R4 ;SET UP TO POP ONLY 1 WORD
2994 013522 105004 10$: CLRB R4
2995 013524 000304 SWAB R4 ;PUT SIZE IN LOW ORDER
2996 013526 006304 ASL R4 ;MAKE +2 FOR COUNT
2998 013530 062704 000020 ADD #EM.DRO,R4 ;POINT TO USER STACK LOCATION
2999 013534 063704 001116' ADD EMTSTK,R4
3005 013540 016644 000006 MOV 6(SP),-(R4) ;RESET STACK
3006 013544 016644 000004 MOV 4(SP),-(R4)
3007 013550 016644 000002 MOV 2(SP),-(R4)
3008 013554 011644 MOV @SP,-(R4)
3009 013556 010406 MOV R4,SP ;SET STACK POINTER
3010 ;
3011 ; A DIRECTIVE HAS BEEN PROCESSED -- IF A TASK IS CURRENT (THE ISSUING
3012 ; TASK) ITS PS, PC, R5, & R4 ARE ON THE KERNEL STACK, AND '.CRTSK' POINTS
3013 ; TO THE ATL NODE OF THAT TASK. IF A TASK IS NOT CURRENT (ISSUING
3014 ; TASK EXIT'ED), '.CRTSK' IS SET TO ZERO.
3015 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 67-4
EXEC MODULE TWO -- SERVICE FOR "EMT" & "TRAP" INSTRUCTIONS
3016 ; R0 CONTAINS THE ADDRESS OF THE NEXT ATL NODE TO BE EXAMINED.
3017 ;
3018 013560 032766 000340 000006 BIT #PRI7,+6(SP) ;IS PROCESSOR PRIORITY OF DIRECTIVE ISSUING TASK ZERO?
3019 013566 001403 BEQ 20$ ;YES -- SCAN ATL FROM ENTRY POINTED TO BY R5.
3020 013570 012604 MOV (SP)+,R4 ;NO -- TASK SWITCHING HAS BEEN INHIBITED BY ISSUING TASK,
3021 013572 012605 MOV (SP)+,R5 ;RESTORE R4, R5, PC, & PS, AND RETURN TO ISSUING TASK.
3022 013574 000002 RTI ;(PRIORITY IS ZEROED IF TASK EXIT'ED.)
3023 ;
3024 ; TRANSFER CONTROL TO THE SCAN ATL ROUTINE AT PRIORITY TWO,
3025 ; PREVIOUS MODE: USER, CURRENT MODE: KERNEL, AND CC'S ZERO.
3026 ;
3027 013576 012746 034100 20$: MOV #034100+STXAS,-(SP)
3028 013602 012746 013624' MOV #ASXE2,-(SP)
3029 013606 000002 RTI
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 68
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3031 .SBTTL EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3032 ;+
3033 ; THE ACTIVE TASK LIST (ATL) IS A PRIORITY ORDERED LIST OF TASKS THAT
3034 ; HAVE BEEN ASSIGNED MEMORY SPACE FOR EXECUTION, AND HAVE NOT EXIT'ED.
3035 ;
3036 ; THE SYSTEM IS DRIVEN BY SCANNING THE ATL FROM THE TOP (HIGH PRIORITY)
3037 ; WHETHER A TASK IS CAPABLE OF EXECUTION IS INDICATED BY THE 'A.TS'TH
3038 ; BYTE OF EACH ATL NODE (ENTRY).
3039 ;
3040 ; THE ATL IS SCANNED DOWNWARD FROM A TASK WHENEVER THAT TASK VOLUNTARILY
3041 ; STOPS EXECUTION (VIZ., WAITFOR, EXIT) AND A SIGNIFICANT
3042 ; EVENT HAS NOT BEEN DECLARED.
3043 ;
3044 ; SIGNIFICANT EVENTS ARE DECLARED BY TASKS (PRI=0) VIA SYSTEM DIRECTIVES,
3045 ; AND BY INTERRUPT SERVICE ROUTINES (PRI 4,5,6,7) VIA SYSTEM SUBROUTINES.
3046 ; A DECLARATION OF A SIGNIFICANT EVENT IS INDICATED BY THE SOFTWARE FLAG
3047 ; (BYTE) '.SERFG+0'.
3048 ;
3049 ; CONTROL IS TRANSFERRED TO THE ATL SCAN ROUTINE UNDER TWO CONDITIONS:
3050 ; (1) WHEN CONTROL IS RETURNED TO A TASK (PRI 0) VIA THE "COMMON RETURN TO
3051 ; INTERRUPTED PROGRAM" AND A SIGNIFICANT EVENT HAS BEEN DECLARED (NON-ZERO
3052 ; '.SERFG+0'), AND (2) WHEN CONTROL IS RETURNED FROM A DIRECTIVE SERVICE
3053 ; ROUTINE.
3054 ;
3055 ; THERE ARE TWO ENTRY POINTS TO THE ATL SCAN ROUTINE:
3056 ; ASXE1 -- TO SCAN THE ATL DOWNWARD FROM THE TOP. I.E., TO EFFECT A
3057 ; DECLARATION OF A SIGNIFICANT EVENT.
3058 ;
3059 ; CONTROL IS TRANSFERRED TO 'ASXE1' FROM THE 'COMMON RETURN TO INTERRUPTED
3060 ; PROGRAM', OR FROM ATL SCAN TASK STATUS SERVICE, WHENEVER A SIGNIFICANT
3061 ; EVENT DECLARATION IS TO BE EFFECTED.
3062 ;
3063 ; ASXE2 -- TO SERVICE THE STATUS OF THE TASK WHOSE ATL NODE ADDRESS
3064 ; IS IN R5, AND THEN TO EITHER: (1) RETURN CONTROL TO THAT TASK,
3065 ; (2) SCAN THE ATL FROM THAT TASK THRU LOWER PRIORITY TASKS, OR
3066 ; (3) TO SCAN THE ATL FROM THE TOP.
3067 ;
3068 ; CONTROL IS TRANSFERRED TO 'ASXE2' FROM THE COMMON EXIT FOR DIRECTIVE
3069 ; (EMT 375) SERVICE CODE.
3070 ;
3071 ; IF A SIGNIFICANT EVENT HAS BEEN DECLARED (EITHER COINCIDENTLY OR AS
3072 ; A RESULT OF DIRECTIVE EXECUTION) CONTROL IS TRANSFERRED TO 'ASXE1'.
3073 ; HOWEVER, THE DECISION TO TRANSFER TO 'ASXE1' IS NOT MADE UNTIL THE
3074 ; "TASK STATUS SERVICE" FOR THE DIRECTIVE ISSUING TASK HAS BEEN PERFORMED.
3075 ;
3076 ; WHENEVER CONTROL IS TRANSFERRED TO THE ATL SCAN ROUTINE AND A TASK IS
3077 ; CURRENT, THE PS, PC, R5, & R4 OF THE CURRENT TASK HAVE BEEN PUSHED
3078 ; ONTO THE STACK.
3079 ;-
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 69
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3081 013610 142737 000001 001014' ASXE1:: BICB #EV.SE,.SERFG+0 ;CLEAR SIGNIFICANT EVENT FLAG, AND SET
3082 013616 012705 007106' MOV #.ATLLH,R5 ;R5 TO THE ADDRESS OF THE FIRST ATL NODE.
3083 ;DISPATCH PER TASK STATUS
3084 ;
3085 ; SCAN LOOP -- AFTER PROCESSING AN ATL ENTRY, CONTROL IS TRANSFERRED EITHER:
3086 ; (1) TO 'ASXSCN' TO PROCESS THE NEXT ATL NODE, OR (2) TO 'ASXTE' TO
3087 ; TERMINATE THE ATL SCAN (A RUNABLE TASK HAS BEEN FOUND).
3088 ;
3089 ; CONTROL IS TRANSFERRED HERE FROM A ATL SCAN SERVICE ROUTINE, WITH THE
3090 ; STACK AND R5 UNCHANGED FROM THE DISPATCH TO THAT SERVICE ROUTINE.
3091 ;
3092 013622 011505 ASXSCN: MOV @R5,R5 ;ADVANCE R5 TO THE NEXT ATL NODE,
3093 013624 116504 000014 ASXE2: MOVB A.TS(R5),R4 ;DISPATCH PER ACTIVE TASK STATUS, WITH
3094 013630 000174 013632' JMP @ASXDT-02(R4) ;R0 = ATL NODE ADR & R4 = STATUS.
3095 ;
3096 013634 ASXDT: ;STATUS DEFINITIONS & DISPATCH ADDRESS TABLE.
3097 ;
3098 ;THE DISPATCH ROUTINE AT 'ASXE2' EXPECTS THE DISPATCH TABLE
3099 ;TO BEGIN WITH STATUS "02" AND INCREASE SEQUENTIALLY BY TWOS.
3100 ;
3101 ;
3102 000002 TS.LRQ==02 ;TASK LOAD REQEUST QUEUED
3103 013634 014032' ASXLRQ
3104 000004 TS.TKN==04 ;TASK WAITING FOR TERMINATION NOTICE
3105 013636 013622' ASXSCN
3106 000006 TS.LRF==06 ;TASK LOAD REQUEST FAILED
3107 013640 013774' ASXLRF
3108 000010 TS.RUN==10 ;** TASK IS RUNNING
3109 013642 014442' ASXTE
3110 000012 TS.SUS==12 ;** TASK IS SUSPENDED
3111 013644 013622' ASXSCN
3112 000014 TS.WF0==14 ;** TASK WAITING FOR AN EVENT FLAG 1-14
3113 ;** ('TS.WF0'-'TS.WS4' ARE EXPECTED IN SEQUENCE
3114 ;** BY THE WAITFOR DIRECTIVES.)
3115 013646 013662' ASXWR0
3116 000016 TS.WF1==16 ;** TASK WAITING FOR AN EVENT FLAG 17-32
3117 013650 013672' ASXWR1
3118 000020 TS.WF2==20 ;** TASK WAITING FOR AN EVENT FLAG 33-48
3119 013652 013702' ASXWR2
3120 000022 TS.WF3==22 ;** TASK WAITING FOR AN EVENT FLAG 49-64
3121 013654 013712' ASXWR3
3122 000024 TS.WF4==24 ;** TASK WAITING FOR AN EVENT FLAG 1-64
3123 013656 013722' ASXWR4
3124 000026 TS.EXT==26 ;TASK EXITED
3125 013660 014150' ASXEXT
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 70
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3127 ;
3128 ; SERVICE FOR "WAITFOR" TASK STATUSES
3129 ;
3130 ; A TASK (THE TASK WHOSE ATL NODE IS POINTED TO BY R5) HAS ISSUED A
3131 ; WAITFOR DIRECTIVE. IF ANY INDICATED EVENT FLAG IS SET, CHANGE TASK'S
3132 ; TO "RUNNING", AND TERMINATE ATL SCAN TO RUN THE TASK.
3133 ;
3134 ; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE ZERO (FLAGS 1-16)
3135 ;
3136 013662 036565 000024 000020 ASXWR0: BIT A.FM+0(R5),A.EF+0(R5)
3137 013670 000433 BR ASXCMN
3138 ;
3139 ; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE ONE (FLAGS 17-32)
3140 ;
3141 013672 036565 000024 000022 ASXWR1: BIT A.FM+0(R5),A.EF+2(R5)
3142 013700 000427 BR ASXCMN
3143 ;
3144 ; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE TWO (FLAGS 33-48)
3145 ;
3146 013702 036537 000024 001010' ASXWR2: BIT A.FM+0(R5),.COMEF+0
3147 013710 000423 BR ASXCMN
3148 ;
3149 ; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE THREE (FLAGS 49-64)
3150 ;
3151 013712 036537 000024 001012' ASXWR3: BIT A.FM+0(R5),.COMEF+2
3152 013720 000417 BR ASXCMN
3153 ;
3154 ; TASK IS WAITING FOR INDICATED FLAG(S) IN RANGE FOUR (FLAGS 1-64)
3155 ;
3156 013722 036565 000024 000020 ASXWR4: BIT A.FM+0(R5),A.EF+0(R5)
3157 013730 001014 BNE WFXSET
3158 013732 036565 000026 000022 BIT A.FM+2(R5),A.EF+2(R5)
3159 013740 001010 BNE WFXSET
3160 013742 036537 000030 001010' BIT A.FM+4(R5),.COMEF+0
3161 013750 001004 BNE WFXSET
3162 013752 036537 000032 001012' BIT A.FM+6(R5),.COMEF+2
3163 013760 001720 ASXCMN: BEQ ASXSCN
3164 013762 WFXSET:
3165 013762 112765 000010 000014 MOVB #TS.RUN,A.TS(R5)
3166 013770 000137 014442' JMP ASXTE
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 71
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3168 ;
3169 ; SERVICE FOR TASK STATUS: LOAD REQUEST FAILED
3170 ;
3171 013774 012765 000040 000024 ASXLRF: MOV #TN.LRF,A.FM+0(R5) ;SET LOAD REQUEST FAILURE
3172 014002 112765 000004 000014 MOVB #TS.TKN,A.TS(R5) ;SET TERMINATION NOTICE REQUESTED
3173 014010 005237 001124' INC .TKTN ;REQUEST TASK TERMINATION
3174 014014 026527 000006 007772' CMP A.PD(R5),#F11TPD ;F11 TPD PARTITION?
3175 014022 001300 BNE ASXE2 ;NO -- CONTINUE
3176 014024 .CRASH LRF ;LOAD REQUEST FAILURE
014024 000004 IOT
014026 114 122 106 .ASCIZ /LRF/
014031 000
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 72
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3178 ;
3179 ; SERVICE FOR TASK REQUEST QUEUE'D SERVICE
3180 ;
3181 014032 006265 000020 ASXLRQ: ASR A.EF+0(R5) ;CHECK FOR REQUEST TO LOAD DONE
3182 014036 103271 BCC ASXSCN ;NO -- CONTINUE TO WAIT
3183 014040 105765 000030 TSTB A.FM+4(R5) ;DID THE I/O SUCCEED?
3184 014044 100753 BMI ASXLRF ;NO -- COMPLAIN
3185 014046 112765 000010 000014 MOVB #TS.RUN,A.TS(R5) ;SET THE TASK STATUS TO RUNNING
3186 014054 016504 000012 MOV A.HA(R5),R4 ;FIND THE HEADER ADDRESS
3193 014060 016446 000106 MOV H.TKVA(R4),-(SP) ;SAVE THE SST ADDRESS
3194 014064 016446 000076 MOV H.IPC(R4),-(SP) ;SAVE INITIAL PC
3195 014070 016446 000074 MOV H.IPS(R4),-(SP) ;SAVE INITIAL PS
3196 014074 016446 000130 MOV H.LUT(R4),-(SP) ;FIND OVERLAY LUN
3197 014100 006316 ASL @SP ;MAKE OFFSET
3198 014102 006316 ASL @SP
3199 014104 062716 000126 ADD #H.LUT-2,@SP ;POINT TO START OF LUT
3200 014110 060416 ADD R4,@SP ;POINT TO CORRECT LUT
3201 014112 016536 000022 MOV A.EF+2(R5),@(SP)+ ;SET LUT
3202 014116 016404 000100 MOV H.ISP(R4),R4 ;FIND INITIAL STACK
3203 014122 012644 MOV (SP)+,-(R4) ;STORE THE PS
3204 014124 012644 MOV (SP)+,-(R4) ;STORE THE PC
3205 014126 162704 000014 SUB #14,R4 ;INCLUDE REGISTER SAVE
3206 014132 010465 000004 MOV R4,A.SP(R5) ;SET STACK VALUE
3207 014136 016504 000016 MOV A.TD(R5),R4 ;FIND THE STD ADDRESS
3208 014142 012664 000030 MOV (SP)+,S.SS(R4) ;SET SST ADDRESS
3209 014146 000535 BR ASXTE ;GO TO START THE TASK
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 73
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3211 ;
3212 ; SERVICE FOR TASK STATUS: EXIT
3213 ;
3214 014150 010446 ASXEXT: MOV R4,-(SP)
3215 014152 010346 MOV R3,-(SP)
3216 014154 010246 MOV R2,-(SP)
3217 014156 010146 MOV R1,-(SP)
3218 014160 010046 MOV R0,-(SP)
3219 014162 016502 000016 MOV A.TD(R5),R2 ;FIND THE STD ADDRESS
3220 014166 016500 000006 MOV A.PD(R5),R0 ;FIND THE TPD ADDRESS
3221 014172 042762 000001 000006 BIC #SF.TA,S.FW(R2) ;CLEAR ACTIVE FLAG IN STD
3222 014200 10$:
3223 014200 032762 000002 000006 BIT #SF.FX,S.FW(R2) ;CHECK TO SEE IF TASK FIXED
3224 014206 001003 BNE 20$ ;YES -- DON'T FREE CORE
3225 ;
3226 ;
3227 ; FREE MEMORY (AND POSSIBLY START TASK WAITING FOR MEMORY) AND RETURN
3228 ; ATL NODE TO POOL.
3229 ;
3230 014210 042760 000002 000010 BIC #TF.OU,T.FW(R0) ;RELEASE PARTITION
3231 ;
3232 ;
3233 014216 010504 20$: MOV R5,R4 ;POINT R5 TO THE NEXT LOWEST PRIORITY TASK'S
3234 014220 010501 MOV R5,R1 ;ATL NODE, DELETE NODE FROM ATL, AND RETURN
3235 014222 011505 MOV @R5,R5 ;IT TO THE POOL.
3236 014224 CALL ..NDEL
014224 004737 044062' JSR PC,..NDEL
3237 014230 012704 001424' MOV #.POLLH,R4 ;RETURN THE NODE TO THE POOL
3238 014234 CALL ..NADD
014234 004737 044176' JSR PC,..NADD
3239 014240 032762 000004 000006 BIT #SF.EX,S.FW(R2) ;HAS THE TASK BEEN REQUESTED TO EXIT?
3240 014246 001426 BEQ 50$ ;NO -- JUST CONTINUE
3241 014250 010046 MOV R0,-(SP) ;SAVE R0 (TPD ADDRESS)
3242 014252 013700 006334' MOV .STDTA,R0 ;FIND THE HEAD OF THE STD LIST
3243 014256 013703 006340' MOV .STDTZ,R3 ;FIND THE SIZE OF THE LIST
3244 014262 162737 000002 006340' SUB #2,.STDTZ ;RESET THE SIZE FOR NOW IT IS SMALLER
3245 014270 006203 ASR R3 ;DIVIDE BY 2
3246 014272 005203 INC R3 ;MAKE 1 LARGER BECAUSE IT IS 2*N-2
3247 014274 020210 30$: CMP R2,@R0 ;THE CORRECT ENTRY?
3248 014276 001403 BEQ 40$ ;YES -- FOUND IT
3249 014300 005720 TST (R0)+ ;NO -- CONTINUE SEARCH
3250 014302 005303 DEC R3 ;CONTINUE SCAN
3251 014304 000773 BR 30$
3252 ;
3253 014306 016020 000002 40$: MOV 2(R0),(R0)+ ;MOVE ENTRIES BACK
3254 014312 077303 SOB R3,40$ ;UNTIL DONE
3255 014314 010201 MOV R2,R1 ;RETURN NODE TO POOL
3256 ;NOTE -- R4 STILL POINTS TO .POLLH
3257 ;FROM ABOVE RETURN OF ATL!!!!!
3258 014316 CALL ..NADD ;RETURN NODE
014316 004737 044176' JSR PC,..NADD
3259 014322 012600 MOV (SP)+,R0 ;RESTORE R0
3260 014324 032760 000002 000010 50$: BIT #TF.OU,T.FW(R0) ;CHECK FOR PARTITION OCCUPIED
3261 014332 001025 BNE 60$ ;YES -- DON'T TRY TO START TASK
3262 014334 010004 MOV R0,R4 ;SET UP TO PICL A NODE FROM MRL
3263 014336 062704 000014 ADD #T.RF,R4 ;POINT TO MRL
3264 014342 CALL ..PICK ;PICK NODE
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 73-1
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
014342 004737 044240' JSR PC,..PICK
3265 014346 103417 BCS 60$ ;NONE FOUND -- DON'T ATTEMPT TO START
3266 014350 010401 MOV R4,R1 ;SAVE THE NODE ADDRESS FOUND
3267 014352 022424 CMP (R4)+,(R4)+ ;POINT TO THE ENTRIES IN THE NDOE
3268 014354 012402 MOV (R4)+,R2 ;SET UP TO CALL .REQS
3269 014356 012403 MOV (R4)+,R3
3270 014360 012446 MOV (R4)+,-(SP) ;PUSH PRI
3271 014362 012704 001424' MOV #.POLLH,R4 ;RETURN THE NODE TO THE POOL
3272 014366 CALL ..NADD ;RETURN NODE
014366 004737 044176' JSR PC,..NADD
3273 014372 012604 MOV (SP)+,R4 ;GET THE PRIORITY
3274 014374 042762 000001 000006 BIC #SF.TA,S.FW(R2) ;CLEAR TASK ACTIVE FLAGS
3275 014402 CALL .REQS ;REQUEST THE TASK
014402 004737 015046' JSR PC,.REQS
3276 ;
3277 014406 012600 60$: MOV (SP)+,R0 ;POP (RESTORE) R0,R2,R1
3278 014410 012601 MOV (SP)+,R1
3279 014412 012602 MOV (SP)+,R2
3280 014414 012603 MOV (SP)+,R3
3281 014416 012604 MOV (SP)+,R4
3282 ;
3283 ; IF EXITING TASK IS NOT "CURRENT", ITS CONTEXT IS STORED IN ITS STACK.
3284 ; IF EXITING TASK IS "CURRENT", ITS PS, PC, R5, & R4 ARE STORED ON THE
3285 ; STACK AND THE REMAINDER OF ITS CONTEXT IS LOADED.
3286 ;
3287 ; R1 CONTAINS THE ADDRESS OF THE ATL NODE (WHICH HAS BEEN RETURNED TO THE
3288 ; POOL) OF THE EXITING TASK.
3289 ;
3290 014420 020537 001006' CMP R5,.CRTSK ;IF EXITING TASK IS "CURRENT", REMOVE (POP)
3291 014424 001004 BNE 70$ ;ITS R4, R5, PC, & PS FROM THE STACK
3292 014426 062706 000010 ADD #8.,SP ;(POP)
3293 014432 005037 001006' CLR .CRTSK
3294 014436 70$:
3295 014436 000137 013624' JMP ASXE2 ;DISPATCH PER STATUS OF TASK POINTED TO BY R5.
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 74
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3297 ;
3298 ; TERMINATION OF ATL SCAN -- A TASK THAT CAN BE RUN HAS BEEN FOUND
3299 ;
3300 ; CONTROL IS TRANSFERRED HERE WITH THE PS, PC, R5, & R4 OF THE CURRENT
3301 ; TASK PUSHED ONTO THE STACK.
3302 ;
3303 ; CONTROL IS TRANSFERRED HERE EITHER BY DIRECT DISPATCH, OR FROM AN ATL
3304 ; SCAN SERVICE ROUTINE. IN EITHER CASE, THE STACK AND R5 ARE
3305 ; UNCHANGED FROM THE LAST ATL SCAN DISPATCH.
3306 014442 020537 001006' ASXTE: CMP R5,.CRTSK ;IS CONTROL RETURNING TO CURRENT TASK?
3307 014446 001461 BEQ CSDONE ;YES -- RESTORE R5, R4, PS, & PC FROM STACK
3308 014450 132737 000001 001014' BITB #EV.SE,.SERFG+0 ;NO -- HAS A SIGNIFICANT EVENT OCCURRED?
3309 014456 001402 BEQ 10$
3310 014460 000137 013610' JMP ASXE1 ;YES -- RESTART ATL SCAN
3311
3312 014464 112737 000340 177776 10$: MOVB #340,@#PS ;INHIBIT INTERRUPTS WHILE CONTEXT SWITCHING
3313 014472 013704 001006' MOV .CRTSK,R4 ;NO -- IS THERE A CURRENT TASK?
3314 014476 001420 BEQ 40$ ;NO -- (CURRENT TASK EXITED) NO CONTEXT TO SAVE
3315 ;YES -- SAVE CONTEXT OF OLD CURRENT TASK, AND
3316 ;LOAD CONTEXT OF NEW CURRENT TASK.
3317
3319 014500 010346 MOV R3,-(SP) ;PUSH R3
3320 014502 010246 MOV R2,-(SP) ;PUSH R2
3321 014504 010146 MOV R1,-(SP) ;PUSH R1
3322 014506 010046 MOV R0,-(SP) ;PUSH R0
3323 014510 016400 000012 MOV A.HA(R4),R0 ;FIND THE HEADER ADDRESS
3330 014514 062700 000046 ADD #H.DSW,R0 ;POINT TO DSW
3331 014520 012701 000046 MOV #$DSW,R1 ;POINT TO DSW
3332 014524 012120 MOV (R1)+,(R0)+ ;SAVE THE CONTEXT OF LOW CORE
3333 014526 012120 MOV (R1)+,(R0)+
3334 014530 012120 MOV (R1)+,(R0)+
3335 014532 011110 MOV @R1,@R0
3336 014534 010664 000004 MOV SP,A.SP(R4) ;SAVE OLD PS
3337 014540 016506 000004 40$: MOV A.SP(R5),SP ;SET UP NEW STACK
3338 014544 016500 000012 MOV A.HA(R5),R0 ;RESTORE CONTEXT
3345 014550 062700 000054 ADD #H.DSW+6,R0 ;POINT TO DSW SAVE
3346 014554 012701 000054 MOV #$DSW+6,R1
3347 014560 011011 MOV @R0,@R1
3348 014562 014041 MOV -(R0),-(R1)
3349 014564 014041 MOV -(R0),-(R1)
3350 014566 014041 MOV -(R0),-(R1)
3351 014570 012600 MOV (SP)+,R0 ;RESTORE REGISTERS FROM THE IS TASK
3352 014572 012601 MOV (SP)+,R1
3353 014574 012602 MOV (SP)+,R2
3354 014576 012603 MOV (SP)+,R3
3356
3393
3394 014600 010537 001006' MOV R5,.CRTSK ;SET NEW '.CRTSK' (ATL NODE ADR OF CURRENT TASK).
3395 014604 142737 000300 177776 BICB #300,@#PS ;LOWER TO PRI 1 AFTER CONTEXT SWITCH
3396
3397 014612 CSDONE: ;CONTEXT SWITCH (IF REQUIRED) IS DONE.
3399 014612 052766 004000 000006 BIS #4000,6(SP) ;SET REG SET 1
3400 014620 042766 170000 000006 BIC #170000,6(SP) ;CLEAR OFF MODE BITS
3402 ;
3403 ; A TASK'S PS, PC, R5, & R4 ARE ON THE STACK, AND THE TASK'S ATL
3404 ; NODE ADDRESS IS IN R5. I.E., CONDITIONS ARE CORRECT FOR AN ATL SCAN
3405 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 74-1
EXEC MODULE THREE -- SCAN OF ACTIVE TASK LIST
3406 ;
3407 ; IF THE TASK'S STATUS IS "RUNNING", CONTROL IS RETURNED TO THE TASK
3408 ; (UNLESS A SIGNIFICANT EVENT HAS BEEN DECLARED, IN WHICH CASE, CONTROL
3409 ; WILL BE RETURNED LATER).
3410 ;
3411 ;
3412 014626 012604 MOV (SP)+,R4 ;POP (RESTORE) R4
3413 014630 012605 MOV (SP)+,R5 ;POP (RESTORE) R5
3414 ;
3415 ; TRANSFER CONTROL TO TASK VIA COMMON "RETURN TO INTERRUPTED PROGRAM"
3416 ; ROUTINE (CLOCK AND/OR EVENT RECOGNITION MAY CAUSE ACTUAL TRANSFER TO
3417 ; OCCUR LATER IN REAL TIME).
3418 ;
3419 ; BR ..INTX
3420 ;
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 75
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3422 .SBTTL EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3423 ;
3424 ; MOST INTERRUPT SERVICE ROUTINES ARE CONTAINED WITHIN I/O HANDLER TASKS
3425 ; CONTROL IS TRANSFERRED TO A TASK CONTAINED INTERRUPT SERVICE ROUTINE,
3426 ; WHEN THE INTERRUPT SERVICE ROUTINE WAS "CONNECTED" TO THE INTERRUPT.
3427 ;
3428 ; CONTROL IS TRANSFERRED TO A TASK CONTAINED INTERRUPT SERVICE ROUTINE
3429 ; WITH THE INTERRUPTED PROGRAM'S PS & PC,
3430 ;
3431 ; ALL TASK CONTAINED INTERRUPT SERVICE ROUTINES EXIT VIA "JMP ..INTX" WITH
3432 ; PS & PC OF THE INTERRUPTED PROGRAM
3433 ;
3434 ; THE '..INTX' ROUTINE EFFECTS A RETURN OF CONTROL
3435 ; TO THE INTERRUPTED PROGRAM.
3436 ;
3437 ; WITH THE PS & PC OF THE INTERRUPTED PROGRAM ON THE STACK.
3438 ;
3439 ; THE 'EXINTX' ROUTINE EFFECTS A RETURN TO THE INTERRUPTED PROGRAM.
3440 ;
3441 ; WHENEVER CONTROL IS RETURNED TO OTHER THAN A TASK (NON-ZERO PRI),
3442 ; CONTROL IS TRANSFERRED DIRECTLY TO THE INTERRUPTED PROGRAM. HOWEVER,
3443 ; WHEN CONTROL IS BEING RETURNED TO A TASK (PRI=0), THE "SYSTEM
3444 ; EVENT RECOGNITION FLAG" IN THE SYSTEM COMMUNICANTIONS AREA (SCOM) IS
3445 ; EXAMINED, AND IF FOUND NON-ZERO, THE INDICATED EVENTS ARE RECOGNIZED
3446 ; BEFORE CONTROL IS RETURNED TO THE INTERRUPTED TASK.
3447 ;
3448
3449 014632 ..INTX:: ;NORMAL ISR EXIT
3450 014632 052737 000340 177776 BIS #000340,@#PS ;;;INHIBIT INTERRUPTS (RAISE PRIORITY TO 7)
3451 014640 032766 000340 000002 BIT #000340,+2(SP) ;;;IS CONTROL RETURNING TO A TASK (PRI=0)?
3452 014646 001010 BNE CRTNXA ;;;YES -- EXAMINE SYSTEM EVENT RECOGNITION FLAG
3453
3454 014650 005737 001026' TST .PFAIL ;;;POWER FAIL SERVICE?
3455 014654 001402 BEQ CRTNX1 ;;;NO -- JUST RETURN
3456 014656 000137 017574' JMP .PWRDN ;;;YES -- POWER DOWN
3457
3458 014662 005737 001014' CRTNX1: TST .SERFG ;;;** ANY UNRECOGNIZED "SYSTEM EVENTS"?
3459 014666 001001 BNE CRTNX3 ;;;** YES -- TRANSFER CONTROL TO APPROPRIATE
3460 ;;;** EVENT RECOGNITON ROUTINE.
3461 014670 CRTNXA:
3462 ; CMP .DBRTT,SP ;;;** ## NO -- IS CONTROL RETURNING FROM SYSTEM
3463 ; BNE 10$ ;;;** ## TRACE DEBUGGING ROUTINE?
3464 ; CLR .DBRTT ;;;** ## YES -- RETURN VIA "RTT" INSTEAD OF "RTI"
3465 ; RTT ;;;** ##
3466 014670 10$: ;;;** ##
3467 014670 000002 CRTNX2: RTI ;;;** NO -- RETURN CONTROL TO TASK
3468
3469 ;** A RACE CONDITION EXISTS WHENEVER A
3470 ;POWER FAILURE OCCURS WHILE EXECUTING
3471 ;BETWEEN 'CRTNX1' AND 'CRTNX2'. TO
3472 ;AVOID THIS CONDITION, THE POWER FAIL
3473 ;TRAP SERVICE ROUTINE SETS THE PC TO
3474 ;'CRTNX1' WHENEVER IT INTERRUPTS EXECUTION
3475 ;IN THE RANGE 'CRTNX1' THRU 'CRTNX2'.
3476 ;
3477 ; A SYSTEM EVENT IS TO BE RECOGNIZED (NON-ZERO '.SERFG'), CONTROL IS
3478 ; TRANSFERRED TO SERVICE ROUTINE PER '.SERFG'
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 75-1
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3479 ; PRI=2, CONDITION CODES CLEARED, AND THE
3480 ; INTERRUPTED TASK'S PS, PC, R5 & R4 PUSHED ONTO THE STACK.
3481 ;
3482 014672 010546 CRTNX3: MOV R5,-(SP) ;;;PUSH R5
3483 014674 010446 MOV R4,-(SP) ;;;PUSH R4
3484
3485 014676 012746 034100 MOV #034100,-(SP)
3486 014702 105737 001015' TSTB .SERFG+1 ;;;UN-RECOGNIZED CLOCK TICK(S)?
3487 014706 001403 BEQ 10$ ;;;
3488 ;;;YES -- RECOGNIZE CLOCK TICKS (NORMALLY
3489 014710 012746 024364' MOV #.TICK,-(SP) ;;;ONLY ONE)
3490 014714 000002 RTI ;;;
3491 014716 132737 000201 001014' 10$: BITB #EV.SE!EV.PF,.SERFG+0 ;;;NO -- SIGNIFICANT EVENT RECOGNITION?
3492 014724 100437 BMI 60$ ;;;OR POWER FAIL
3493 014726 001403 BEQ 30$ ;;;
3494 ;;;YES -- SCAN ATL FROM THE TOP
3495 014730 012746 013610' 20$: MOV #ASXE1,-(SP) ;;;
3496 014734 000002 RTI ;;;
3497
3498 014736 132737 000002 001014' 30$: BITB #EV.AS,.SERFG+0 ;;;AST?
3499 014744 001435 BEQ 70$ ;;;YIPES -- GOOFED AND SYSTEM BROKEN
3500 014746 010316 MOV R3,@SP ;;;SAVE CONTEXT
3501 014750 010246 MOV R2,-(SP)
3502 014752 010146 MOV R1,-(SP)
3503 014754 010046 MOV R0,-(SP)
3507 014756 012746 004000 MOV #004000,-(SP)
3509 014762 013746 001050' MOV .CKASS,-(SP) ;;;SET AST ADDRESS
3510 014766 001411 BEQ 50$ ;;;NOT THIS TYPE
3511 014770 005037 001050' CLR .CKASS ;;;CLEAR THIS FOR NEXT TIME
3512 014774 005737 001052' TST .PFASS ;;;POWER FAIL ALSO?
3513 015000 001334 BNE CRTNX3 ;;;YES -- BETTER DO IT TOO
3514 015002 142737 000002 001014' 40$: BICB #EV.AS,.SERFG+0 ;;;CLEAR THIS FLAG
3515 015010 000002 RTI ;;;RETURN TO USER
3516
3517 015012 013716 001052' 50$: MOV .PFASS,@SP ;;;SET UP POWER FAIL AST
3518 015016 005037 001052' CLR .PFASS ;;;CLEAR POWER FAIL AST ADDRESS
3519 015022 000767 BR 40$ ;;;AND RETURN TO USER
3520
3521 015024 142737 000200 001014' 60$: BICB #EV.PF,.SERFG+0 ;;;CLEAR POWER FAIL FLAG
3522 015032 CALL .PFRST ;;;POWER FAIL RESTART
015032 004737 020126' JSR PC,.PFRST
3523 015036 000734 BR 20$ ;;;RETURN
3524
3525 015040 70$: .CRASH IAS ;;;CRASH SYSTEM UNKNOWN SIG EVENT
015040 000004 IOT
015042 111 101 123 .ASCIZ /IAS/
015045 000
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 76
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3527 ;
3528 ; .REQS -- SUBROUTINE TO ATTEMPT TO MAKE A TASK ACTIVE
3529 ;
3530 ; ENTRY CONDITIONS:
3531 ;
3532 ; R2 -- STD ENTRY ADDRESS (TASK ID ) OF REQUESTED TASK
3533 ; R3 -- TPD ENTRY ADDRESS, OR ZERO (DEFAULT PARTITION) , FOR REQUESTED TASK
3534 ; R4 -- RUN PRIORITY, OR ZERO (DEFAULT PRIORITY), FOR REQUESTED TASK
3535 ;
3536 ; CALLING SEQUENCE:
3537 ;
3538 ; CALL .REQS
3539 ;
3540 ; EXIT CONDITIONS:
3541 ;
3542 ; R2=00 -- TASK MADE ACTIVE
3543 ; R2=02 -- TASK NOT MADE ACTIVE, TASK ALREADY ACTIVE
3544 ; R2=06 -- TASK NOT MADE ACTIVE, INSUFFICIENT POOL NODE(S)
3545 ;
3546 ; REGISTERS ALTERED:
3547 ; R0,R1,R2,R3,R4
3548 ;
3549 ;
3550 015046 032762 000001 000006 .REQS:: BIT #SF.TA,S.FW(R2) ;IS TASK ACTIVE?
3551 015054 001403 BEQ 10$ ;NO -- IT IS LEGAL TO ACTIVATE IT
3552 015056 012702 000002 MOV #2,R2 ;YES -- RETURN +2
3553 015062 RETURN
015062 000207 RTS PC
3554
3555 015064 005703 10$: TST R3 ;CHECK THE PARTITION
3556 015066 001002 BNE 20$ ;PARTITION SPECIFIED
3557 015070 016203 000004 MOV S.TD(R2),R3 ;PARTITION NOT SPECIFIED -- USE DEFAULT
3558 015074 005704 20$: TST R4 ;PRIORITY?
3559 015076 001002 BNE 30$ ;YES -- DON'T USE DEFAULT
3560 015100 156204 000010 BISB S.DP(R2),R4 ;FIND THE DEFAULT PRIORITY
3561 015104 010446 30$: MOV R4,-(SP) ;SAVE PRI
3562 015106 010346 MOV R3,-(SP) ;SAVE TPD
3563 015110 012704 001424' MOV #.POLLH,R4 ;PICK AN ATL NODE
3564 015114 CALL ..PICK
015114 004737 044240' JSR PC,..PICK
3565 015120 103004 BCC 50$ ;GOT NODE
3566 015122 022626 40$: CMP (SP)+,(SP)+ ;REMOVE SAVED TPD AND PRI
3567 015124 012702 000006 MOV #6,R2 ;COMPLAIN NO NODES AVAILABLE
3568 015130 RETURN ;RETURN TO CALLER
015130 000207 RTS PC
3569
3570 015132 032762 000002 000006 50$: BIT #SF.FX,S.FW(R2) ;FIXED IN CORE?
3571 015140 001436 BEQ 70$ ;NO -- MUST READ THE TASK IN
3572 015142 010401 MOV R4,R1 ;SAVE NODE ADDRESS
3573 015144 016204 000022 MOV S.SP(R2),R4 ;SET UP STACK
3574 015150 062704 000014 ADD #14,R4 ;SET POINTER TO PC
3575 015154 016224 000020 MOV S.PC(R2),(R4)+ ;SET PC
3576 015160 012724 174000 MOV #174000,(R4)+ ;SET UP PS
3577 015164 012703 000010 MOV #TS.RUN,R3 ;SET UP TO START TASK
3578 015170 010104 60$: MOV R1,R4 ;SAVE THE ATL NODE ADDRESS
3579 015172 022424 CMP (R4)+,(R4)+ ;MOVE OVER LISTHEAD
3580 015174 016224 000022 MOV S.SP(R2),(R4)+ ;SET INITIAL STACK POINTER
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 76-1
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3581 015200 012624 MOV (SP)+,(R4)+ ;SET UP TPD AND PRI
3582 015202 012624 MOV (SP)+,(R4)+
3583 015204 016224 000012 MOV S.BA(R2),(R4)+ ;SET BASE ADDRESS
3584 015210 010324 MOV R3,(R4)+ ;SET RUN STATE
3585 015212 010224 MOV R2,(R4)+ ;SET STD NODE ADDRESS
3586 015214 005024 CLR (R4)+
3587 015216 005064 000012 CLR A.PF-A.EF-2(R4) ;CLEAR POWER FAIL AST ADDRESS
3588 015222 052762 000001 000006 BIS #SF.TA,S.FW(R2) ;SET TASK ACTIVE
3589 015230 012702 007106' MOV #.ATLLH,R2 ;INSERT NODE INTO ATL
3590 015234 000535 BR 120$
3591
3592 015236 032763 000002 000010 70$: BIT #TF.OU,T.FW(R3) ;PARTITION BUSY?
3593 015244 001116 BNE 110$ ;YES -- BETER PUT IN MRL
3594 015246 010446 MOV R4,-(SP) ;SAVE NODE ADDRESS OF ATL NODE
3595 015250 012701 000040 MOV #32.,R1 ;PICK AN I/O NODE
3596 015254 CALL ..ALCB
015254 004737 044416' JSR PC,..ALCB
3597 015260 010004 MOV R0,R4 ;SET CORRECT NODE ADDRESS
3598 015262 103006 BCC 80$ ;GOT ONE
3599 015264 012601 MOV (SP)+,R1 ;NONE AVAILABLE -- RETURN ATL NODE
3600 015266 012704 001424' MOV #.POLLH,R4
3601 015272 CALL ..NADD ;ADD NODE BACK TO ATL
015272 004737 044176' JSR PC,..NADD
3602 015276 000711 BR 40$ ;RETURN +6
3603
3604 015300 010446 80$: MOV R4,-(SP) ;SAVE NODE ADDRESS
3605 015302 022424 CMP (R4)+,(R4)+ ;MOVE OVER LISTHEAD
3606 015304 010224 MOV R2,(R4)+ ;SET UP STD ADDRESS
3607 015306 016624 000002 MOV 2(SP),(R4)+ ;SET UP ATL NODE ADDRESS
3608 015312 012724 175014 MOV #250.*400+12.,(R4)+ ;SET UP PRI/DPB SIZE
3609 015316 012724 000400 MOV #400,(R4)+ ;SET EFN
3610 015322 012724 000050 MOV #IO.LTK,(R4)+ ;CLAIM THIS IS A READ
3611 015326 005024 CLR (R4)+ ;NO I/O STATUS
3612 015330 005024 CLR (R4)+ ;NO AST ADDRESS
3613 015332 022424 CMP (R4)+,(R4)+ ;ADDRESS IS NOT SPECIFIED HERE
3614 015334 016224 000014 MOV S.LZ(R2),(R4)+ ;SET UP INITIAL SIZE
3615 015340 005024 CLR (R4)+ ;SKIP THIS PARAMETER
3616 015342 016224 000032 MOV S.DL(R2),(R4)+ ;SET UP DISK ADDRESS
3617 015346 016224 000034 MOV S.DL+2(R2),(R4)+ ;LOW ORDER DISK ADDRESS
3618 015352 012601 MOV (SP)+,R1 ;RESTORE R1
3619 015354 016603 000002 MOV 2(SP),R3 ;RESTORE THE TPD ADDRESS
3620 015360 032763 000002 000010 BIT #TF.OU,T.FW(R3) ;PARTITON OCCUPIED?
3621 015366 001407 BEQ 90$ ;NO -- MUST BE OK TO LOAD
3622 015370 012603 MOV (SP)+,R3 ;YES -- BETTER ADD IT TO MRL
3623 015372 012601 MOV (SP)+,R1 ;RESTORE ATL ADDRESS
3624 015374 010361 000030 MOV R3,A.FM+4(R1) ;SET THE NODE ADDRESS IN FLAGS MASK WORD TO PRESERVE IT
3625 015400 012703 100002 MOV #TS.LRQ+100000,R3 ;SET LOAD REQUEST QUEUE'D AND PARTITION BUSY
3626 015404 000671 BR 60$ ;SET UP ATL
3627
3628 015406 010246 90$: MOV R2,-(SP) ;SAVE STD ADDRESS
3629 015410 052763 000002 000010 BIS #TF.OU,T.FW(R3) ;DECLARE THE PARTITION OCCUPIED
3630 015416 005003 CLR R3 ;FIND PUD ENTRY
3631 015420 156203 000011 BISB S.DI(R2),R3 ;SET DISK INDICATOR
3632 015424 012702 010232' MOV #.PUDBA,R2 ;SET UP FOR ..IPRI
3633 015430 062702 000050 100$: ADD #U.SZ,R2 ;POINT TO AN ENTRY
3634 015434 077303 SOB R3,100$ ;LOOP UNTIL CORRECT ENTRY FOUND
3635 015436 010203 MOV R2,R3 ;SAVE THE LOGICAL UNIT NUMBER
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 76-2
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3636 015440 062702 000022 ADD #U.RF,R2 ;POINT TO LISTHEAD
3637 015444 CALL ..IPRI ;ENTER IN LIST
015444 004737 044122' JSR PC,..IPRI
3638 015450 014202 MOV -(R2),R2 ;FIND ATL NODE ADDRESS OF HANDLER TASK
3639 015452 052762 000010 000020 BIS #EF.NIR,A.EF(R2) ;START HANDLER
3640 015460 CALL ..DSEV ;DECLARE SIG EVENT
015460 004737 044026' JSR PC,..DSEV
3641 015464 012602 MOV (SP)+,R2 ;RESTORE STD ADDRESS
3642 015466 012601 MOV (SP)+,R1 ;RESTORE R1 (ATL NODE ADDRESS)
3643 015470 010361 000022 MOV R3,A.EF+2(R1) ;SAVE THE OVERLAY PUD ADDRESS
3644 015474 012703 000002 MOV #TS.LRQ,R3 ;SET UP TO INDICATE LOAD REQUEST QUEUE'D
3645 015500 000633 BR 60$ ;AND START TASK
3646
3647 015502 010401 110$: MOV R4,R1 ;SAVE THE NODE ADDRESS
3648 015504 052762 000001 000006 BIS #SF.TA,S.FW(R2) ;SET TASK ACTIVE
3649 015512 022424 CMP (R4)+,(R4)+
3650 015514 010224 MOV R2,(R4)+ ;SAVE THE ATTRIBUTES OF THIS CALL
3651 015516 012624 MOV (SP)+,(R4)+
3652 015520 012624 MOV (SP)+,(R4)+
3653 015522 010302 MOV R3,R2 ;FIND THE MRL
3654 015524 062702 000014 ADD #T.RF,R2 ;POINT TO IT IN TPD
3655 015530 120$: CALL ..IPRI ;INSERT THIS NODE IN MRL BY PRI
015530 004737 044122' JSR PC,..IPRI
3656 015534 005002 CLR R2 ;DECLARE TASK ACTIVE
3657 015536 RETURN ;RETURN TO CALLER
015536 000207 RTS PC
3658
3659 015540 104401 .RQESD::TRAP DR.01 ;RETURN +1
3660 015542 104771 TRAP DE.07 ;RETURN -7
3661 015544 104401 TRAP DR.01 ;RETURN+1 (CURRENTLY UNUSED)
3662 015546 104777 TRAP DE.01 ;RETURN -1
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 77
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3664 ;
3665 ; .FEPPU -- SUBROUTINE TO FETCH PARTITION AND PRIORITY
3666 ;
3667 ; ENTRY CONDITIONS:
3668 ;
3669 ; R1 -- DPB PLUS SIX -- POINTING TO FOLLOWING DATA IN PREVIOUS SPACE
3670 ; [PARTITION NAME (FIRST HALF),
3671 ; [PARTITION NAME (SECOND HALF),
3672 ; [PRIORITY],
3673 ; [UNUSED].
3674 ;
3675 ; IT IS ASSUMED THAT THESE WORDS CAN BE FETCHED WITHOUT SEGMENT FAULT.
3676 ;
3677 ; R2 -- STD ENTRY OF TASK TO FIT IN PARTITION
3678 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK
3679 ;
3680 ; CALLING SEQUENCE:
3681 ;
3682 ; CALL .FEPPU
3683 ;
3684 ; EXIT CONDITIONS:
3685 ;
3686 ; R1 -- ADVANCED BY 8 (4 WORDS)
3687 ; R3 -- TPD ENTRY ADDRESS, OR ZERO (DEFAULT PARTITION)
3688 ; R4 -- RUN PRIORITY, OR ZERO (DEFAULT PRIORITY)
3689 ;
3690 ; REGISTERS ALTERED R1,R3,R4
3691 ;
3692 015550 .FEPPU::MFPI (R1)+ ;PUSH 2-WORD PARTITION NAME ONTO STACK
015550 012146 MOV (R1)+,-(SP)
3693 015552 MFPI (R1)+
015552 012146 MOV (R1)+,-(SP)
3694 015554 005003 CLR R3 ;CLEAR R3 (TPD ADDRESS
3695 015556 005766 000002 TST 2(SP) ;WAS A PARTITION NAME SPECIFIED?
3696 015562 001423 BEQ 20$ ;NO -- RETURN WITH ZERO IN R3
3697 015564 012703 007552' MOV #.TPDBA,R3 ;YES -- SET UP TO SCAN TPD FOR PARTITION
3698 015570 020327 007552' 10$: CMP R3,#.TPDBA ;END OF TPD?
3699 015574 001425 BEQ X.X94 ;YES -- RETURN STS=-94.
3700 015576 162703 000020 SUB #T.SZ,R3 ;NO -- SET UP R3 TO EXAMINE ENTRY
3701 015602 021366 000002 CMP @R3,2(SP) ;PARTITION NAME MATCH?
3702 015606 001370 BNE 10$ ;NO -- CHECK NEXT TPD
3703 015610 026316 000002 CMP 2(R3),@SP ;MAYBE -- CHECK SECOND HALF OF NAME
3704 015614 001365 BNE 10$ ;NO -- CHECK NEXT TPD
3705 015616 016204 000016 MOV S.TZ(R2),R4 ;SET R4 TO THE NUMBER OF 32-WORD BLOCKS
3706 ;REQUIRED FOR THE TASK INDICATED BY R2.
3707 015622 020463 000006 CMP R4,T.PZ(R3) ;IS PARTITION LARG ENOUGH FOR TASK?
3708 015626 101401 BLOS 20$ ;YES -- SET R4 PER PRIORITY SPECIFIED
3709 015630 104775 TRAP DE.03 ;NO -- RETURN STS=-03
3710
3711 015632 022626 20$: CMP (SP)+,(SP)+ ;REMOVE PARTITION NAME FROM STACK
3712 015634 MFPS (R1)+,R4 ;SET R4 TO PRIORITY INDICATOR
015634 012104 MOV (R1)+,R4
3713 015636 020427 000372 CMP R4,#250. ;IS PRIORITY GREATER THAN 250?
3714 015642 101003 BHI X.X95 ;YES -- RETURN STS=-95.
3715 015644 005721 TST (R1)+ ;MOVE OVER UNUSED WORD
3716 015646 RETURN ;RETURN TO CALLER
015646 000207 RTS PC
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 77-1
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3717
3718 015650 104642 X.X94: TRAP DE.94 ;RETURN STS=94.
3719 015652 104641 X.X95: TRAP DE.95 ;RETURN STS=95.
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 78
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3721 ;
3722 ; .VCLUN -- VERIFY & CONVER LOGICAL UNIT NUMBER
3723 ;
3724 ; ENTRY CONDITIONS:
3725 ;
3726 ; R5 -- ATL NODE ADR OF DIRECTIVE ISSUING TASK
3727 ; TOP OF STACK -- LOGICAL UNIT NUMBER
3728 ;
3729 ; CALLING SEQUENCE:
3730 ;
3731 ; CALL .VCLUN
3732 ;
3733 ; EXIT CONDITIONS:
3734 ;
3735 ; R4 -- POINTS TO FIRST LUT ENTRY
3736 ; CC-C SET IF TASK NOT FOUND
3737 ;
3738 ; IF LUN IS ASSIGNED TO A PHYSICAL UNIT, THE LUN (ON TOP OF
3739 ; STACK) IS REPLACED BY THE ADDRESS OF THE CORRESPONDING PUD
3740 ; ENTRY.
3741 ;
3742 ; IF AN INVALID LUN, RETURN STS-96.
3743 ;
3744 ; IF THE LUN IS NOT ASSIGNED, IT IS REPLACED BY A ZERO.
3745 ;
3746 ;
3747 ; REGISTERS ALTERED:
3748 ;
3749 ; NONE
3750 ;
3751 015654 010046 .VCLUN::MOV R0,-(SP) ;PUSH (SAVE) R0
3752 015656 016600 000004 MOV 4(SP),R0 ;LUN MINUS ONE TO R0
3753 015662 005300 DEC R0
3754
3759 015664 016504 000012 MOV A.HA(R5),R4 ;POINT TO HEADER ADDRESS
3766 015670 062704 000130 ADD #H.LUT,R4
3768
3769 015674 020024 CMP R0,(R4)+ ;IS LUN <1, OR >MAX FOR TASK?
3770 015676 103013 BHIS X9X96 ;YES -- RETURN STS=-96
3771 015700 006300 ASL R0 ;NO -- SET LUT CONTENTS (PER LUN) IN R0
3772 015702 006300 ASL R0
3773 015704 060400 ADD R4,R0
3774 015706 011000 MOV @R0,R0 ;(PUD ENT ADR OR ZERO IN R0)
3775 015710 001402 BEQ 10$ ;IF ASSIGNED, EFFECT REDIRECTION (IF ANY)
3776 015712 016000 000016 MOV U.RP(R0),R0
3777 015716 10$:
3778 015716 010066 000004 MOV R0,4(SP) ;REPLACE LUN (ON STACK) BY PUD
3779 ;ENTRY ADDRESS (OR ZERO).
3780
3781 015722 012600 MOV (SP)+,R0 ;POP (RESTORE) R0
3782 015724 RETURN ;EXIT SUBROUTINE
015724 000207 RTS PC
3783 ;
3784 ; COMMON JMP'S TO DIRECTIVE EXITS
3785 ;
3786 015726 104640 X9X96: TRAP DE.96
SCH - TASK SCHEDULER & GLOB MACRO M1113 11-NOV-81 11:13 PAGE 79
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3788 ;
3789 ; .STAST -- SUBROUTINE TO SET AN AST IN A TASK
3790 ;
3791 ; ENTRY CONDITONS:
3792 ;
3793 ; R5 -- ACTIVE TASK LIST POINTER
3794 ; R4 -- ENTRY ADDRESS
3795 ;
3796 ; CALLING SEQUENCE:
3797 ;
3798 ; CALL .STAST
3799 ;
3800 ; EXIT CONDITIONS:
3801 ;
3802 ; CC-C CLEAR -- AST SET AND ALL OK
3803 ; CC-C SET -- THE TASK IS CURRENT AND CAN'T SET AST
3804 ;
3805 015730 010246 .STAST::MOV R2,-(SP) ;SAVE REGISTERS
3806 015732 010346 MOV R3,-(SP)
3807 015734 CALL ..DSEV ;DECLARE A SIG EVENT
015734 004737 044026' JSR PC,..DSEV
3808 015740 012702 000006 MOV #6,R2 ;SET UP TO SAVE REGISTERS
3809 015744 000241 CLC ;ASSUME SUCCESS
3810 015746 .INH0 ;;INHIBIT INTERRUPTS
015746 013746 177776 MOV @#PS,-(SP)
015752 112737 000140 177776 MOVB #140,@#PS
3811 015760 020537 001006' CMP R5,.CRTSK ;;CURRENT TASK?
3812 015764 001415 BEQ 30$ ;;YES 0-- BETTER SET CARRY
3813 015766 016503 000004 MOV A.SP(R5),R3 ;;SET UP A POINTER TO THE TASK'S STACK
3814 015772 010443 MOV R4,-(R3) ;;SET UP NEW PC
3818 015774 012743 004000 MOV #004000,-(R3)
3820 016000 016343 000016 10$: MOV 16(R3),-(R3) ;SET UP NEW STACK SAVE
3821 016004 077203 SOB R2,10$ ;;CONTINUE TIL DONE
3822 016006 20$: .ENB0 ;ENABLE INTERRUPTS
016006 004737 044302' JSR PC,..ENB0
3823 016012 012603 MOV (SP)+,R3 ;RESTORE
3824 016014 012602 MOV (SP)+,R2
3825 016016 RETURN ;RETURN TO CALLER
016016 000207 RTS PC
3826
3827 016020 005216 30$: INC @SP ;ENABLE INTERRUPTS
3828 016022 152737 000002 001014' BISB #EV.AS,.SERFG+0 ;SET AST REQUIRED
3829 016030 000766 BR 20$ ;AND RETURN
3830 ;
BOOT -- BOOT PROTOCOL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 80
EXEC MODULE NINE -- COMMON RETURN TO INTERRUPTED PROGRAM
3832 .TITLE BOOT -- BOOT PROTOCOL HANDLER
3833 .SBTTL SECONDARY PROTOCOL -- COPYRIGHT STATEMENT
3834 016032 IDENT$ 14,37
.IDENT /014370/
3835
3836 ;
3837 ; COPYRIGHT (C) 1975, 1978 BY
3838 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
3839 ;
3840 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
3841 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
3842 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
3843 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
3844 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
3845 ;
3846 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
3847 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
3848 ; CORPORATION.
3849 ;
3850 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3851 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
3852 ;
3853 ; MODULE: "BOOT PROTOCOL HANDLER"
3854 ;
3855 ; VERSION: 14-37
3856 ;
3857 ; AUTHOR: R. MCLEAN
3858 ;
3859 ; DATE: 12 OCT 76
3860 ;
3861 ; THIS MODULE CONTAINS:
3862 ;
3863 ; 1 -- CODE TO SERVICE BOOT PROTOCOL ETC.
3864 ;
3865 ; MODIFIED:
3866 ; NO. DATE PROGRAMMER PURPOSE
3867 ; --- ---- ---------- -------
3868 ; 001 12-OCT-76 R. BELANGER CHANGED PHYSICAL EXAMINES &
3869 ; DEPOSITS TO EPT RELATIVE
3870 ; 002 21-OCT-76 A. PECKHAM ADDITION OF CODE TO COUNT
3871 ; DOORBELLS.
3872 ;
3873 ; 003 04-NOV-76 R. BELANGER ADDED CODE TO DELETE
3874 ; ENTRIES FROM TO10Q ON
3875 ; PRIMARY PROTOCOL RESTART.
3876 ; 004 29-NOV-76 A. PECKHAM CHANGES TOO NUMEROUS TO MENTION.
3877 ; 005 07-MAR-77 A. PECKHAM ADDED CHANGE TO AVOID RESETTING TO -10 Q.
3878 ; 006 21-MAR-77 A. PECKHAM FIXED BUG IN ACKNOWLEGE
3879 ; 007 28-AUG-77 R. BELANGER RESET POWERFAIL FLAG ON
3880 ; PRIMARY PROTOCOL START
3881 ; 008 07-OCT-77 R. BELANGER IGNORE COMM REGION IF SO DIRECTED BY "TKTN"
3882 ;
3883 ; 009 27-MAY-78 R. BELANGER ADD PROTOCOL TIMEOUT
3884 ; TCO 4.2207 08-MAR-79 R. BELANGER FIX BUG WHICH CAN CAUSE
3885 ; PROTOCOL PAUSE LOOPS
3886 ; TCO 4.1.1035 16-NOV-79 R. BELANGER ADD QUEUE ARBITRATION
3887 ; TCO 4.1.1121 19-MAR-80 R. BELANGER SUPPORT BLOCKED DTE-20
BOOT -- BOOT PROTOCOL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 80-1
SECONDARY PROTOCOL -- COPYRIGHT STATEMENT
3888 ; TCO 4.1.1137 05-APR-80 R. BELANGER REMOVE SUPPORT FOR RESTRICTED DTE-20
3889 ;
3890 ; MACRO CALLS
3891 ;
3892 .MCALL CALL,RETURN,.STKM,CLEF$S,WTSE$S,QIOW$,DTON$S,.CRASH
3893 .MCALL WSIG$S,.ENB0,.INH6,.ENB6,$DEF
3894 016032 $DEF
BOOT -- BOOT PROTOCOL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 81
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
3896 .SBTTL SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
3897 ;
3898 ; BTPRO -- ROUTINE TO HANDLE THE PROTOCOL TRANSITION INTO
3899 ; SECONDARY PROTOCOL.
3900 ; IT IS ASSUMED THAT THIS PROTOCOL WILL BE USED
3901 ; DURING INITALIZATION AND IN CASE OF MONITOR CRASHED ETC
3902 ; WHEN THE NORMAL MEANS OF COMMUNICATIONS THRU THE COMM REGION ARE DESTROYED
3903 ;
3904 ; "EF.CRI" INDICATES THAT THE FRONT-END BELEIVES THE COMM-REGION TO BE
3905 ; INVALID. THIS BIT IS SET ON POWERFAIL AND BY "KLI" ON A KL RELOAD.
3906 ; IF THE COMM REGION INVALID FLAG IS NOT SET, THE TRANSITION INTO SECONDARY
3907 ; PROTOCOL IS TIMED-OUT FOR 30 SECONDS. IF NO TRANSITION IS MADE WITHIN
3908 ; THAT PERIOD, THE KL IS RELOADED.
3909 ;
3910 ; NOTE -- IF THE COMM-REGION IS FOUND TO BE VALID DURING A NORMAL PROTOCOL
3911 ; TRANSITION, PRIMARY PROTOCOL IS IS IMMEDIATELY RE-ENTERED.
3912 ;
3913 ; IF SUCCESS IN COMMUNICATION WITH THE KL IT WILL ENTER SECONDARY
3914 ; PROTOCOL (OR RE-ENTER PRIMARY PROTOCOL)
3915 ;
3916
3917 016032 BTPHD::
3918 016032 .STKM 0,1,2,3,4,5,0,BTPRO,174000,.BTSTK
016100 000000 000000 000000 .WORD 0,0,0,0
016106 000000
016126 174000 016332' 016312' .WORD 174000,BTPRO,.BTSTK
016162 000005 .WORD 5
016164 010232' .WORD TTPEN
016166 000000 .WORD 0
016170 000000 .WORD 0
016172 000000 .WORD 0
016174 000000 .WORD 0
016176 000000 .WORD 0
016200 000000 .WORD 0
016202 000000 .WORD 0
016204 000000 .WORD 0
016206 000000 .WORD 0
016210 000000 .WORD 0
016312 000000 .WORD 0
016314 000001 .WORD 1
016316 000002 .WORD 2
016320 000003 .WORD 3
016322 000004 .WORD 4
016324 000005 .WORD 5
016326 016332' .WORD BTPRO
016330 174000 .WORD 174000
3919
3920 016332 BTPRO:
3921 016332 105037 001372' CLRB .PRPSE ; RESET THE PAUSE FLAG
3922 016336 WTSE$S #E.FPR2 ;WAIT FOR ACTIVATION.
016336 012746 000076 MOV #E.FPR2,-(SP)
016342 012746 MOV (PC)+,-(SP)
016344 051 002 .BYTE 41.,2
016346 104375 EMT 375
3923 016350 052737 100000 007372' BIS #BIT15,FETSK+A.EF ;SET SECONDARY PROTOCOL FLAG FOR FETSK
3924 016356 013700 001154' MOV .TKPS,R0 ; +++009 TICKS PER SECOND TO R0
3925 016362 012701 000036 MOV #^D30,R1 ; +++009 30. SECONDS
BOOT -- BOOT PROTOCOL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 81-1
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
3926 016366 5$:
3927 016366 CALL $MUL ; +++009 CALCULATE PAUSE PERIOD
016366 004737 000000G JSR PC,$MUL
3928 016372 010104 MOV R1,R4 ; +++009 SAVE IT IN R4
3929 016374 013700 001360' MOV .PRDTE,R0 ;FIND ADDRESS OF PRIVILEDGED DTE
3930 016400 013705 001356' MOV .PRSTA,R5
3931 016404 012715 000010 MOV #INTROF,@R5 ;CLEAR THE STATUS
3932 016410 000405 BR 20$ ;GO LOOK FOR CHANGE TO BOOT PROTOCOL
3933 ;
3934 016412 10$:
3935 016412 .ENB6 ;;;ENABLE INTERRUPTS
016412 012637 177776 MOV (SP)+,@#PS
3936 016416 WSIG$S ;WAIT FOR SIG EVENT
016416 012746 MOV (PC)+,-(SP)
016420 061 001 .BYTE 49.,1
016422 104375 EMT 375
3937 016424 20$:
3938 016424 .INH6 ;INHIBIT INTERRUPTS
016424 013746 177776 MOV @#PS,-(SP)
016430 112737 000300 177776 MOVB #300,@#PS
3939 016436 032737 002000 001012' BIT #EF.CRI,.COMEF+2 ;;; +++008 IS THE COMM REGION VALID??
3940 016444 001020 BNE 30$ ;;; +++008 NO -- GO ON
3941 016446 112737 177777 001372' MOVB #-1,.PRPSE ;;; +++009 MARK THAT WE ARE PAUSING
3942 016454 005060 000010 CLR TNAD1(R0) ;;; MAYBE -- LOOK FOR PROTOCOL CHANGE
3943 016460 005060 000012 CLR TNAD2(R0) ;;;BY TESTING RELATIVE ADDR WORD
3944 016464 CALL ..WFED ;;; [4.1.1121] WAIT FOR EXAMINE
016464 004737 046216' JSR PC,..WFED
3945 016470 103453 BCS 47$ ;;;KL HAS BEEN LOST..
3946 016472 005760 000002 TST DXWD3(R0) ;;;IF NON-ZERO
3947 016476 001403 BEQ 30$ ;;;THEN EXAMINE VALID, SO
3948 016500 010702 MOV PC,R2 ;;; +++006 SAY NO ACKNOWLEGE NEEDED
3949 016502 000137 017440' JMP 120$ ;;; +++005 RETURN TO PRIMARY PROTOCOL.
3950 ;
3951 016506 30$:
3952 016506 032760 004000 000030 BIT #DS04,DAG1(R0) ;;;CHECK FOR CLOCK ERROR STOP
3953 016514 001174 BNE 86$ ;;;STOP ALL PROTOCOLS IF SO
3954 016516 31$:
3955 016516 032715 004000 BIT #TO11DB,@R5 ;;;WAIT OR A DOORBELL INTERRUPT
3956 016522 001021 BNE 40$ ;;; +++009 GOT ONE -- PROCESS IT
3957 016524 032737 002000 001012' BIT #EF.CRI,.COMEF+2 ;;; +++009 IS THIS A PAUSE??
3958 016532 001327 BNE 10$ ;;; +++009 YES -- WAIT FOR SECONDARY PROTOCOL
3959 016534 077452 SOB R4,10$ ;;; +++009 NO -- DID WE TIME OUT??
3960 016536 105237 001124' INCB .TKTN ;;; +++009 YES -- SAY GOODNIGHT....
3961 016542 105237 001122' INCB .NOERR ;;; +++009 DON'T CARE ABOUT ERRORS NOW
3962 016546 052737 000200 001126' BIS #KS.PTO,.KLITK ;;; +++009 FLAG PROTOCOL TIMEOUT
3963 016554 CALL ..DTSP ;;; [4.2207] STOP ALL PROTOCOLS
016554 004737 046770' JSR PC,..DTSP
3964 016560 .ENB6 ;;; +++009 ALLOW INTERRUPTS
016560 012637 177776 MOV (SP)+,@#PS
3965 016564 000662 BR BTPRO ; +++009 AND GO BACK TO SLEEP
3966 ;
3967 016566 40$:
3968 016566 042737 001000 001012' BIC #EF.FCP,.COMEF+2 ;;;CLEAR FAULT CONTINUATION IN PROGRESS IN CASE
3969 016574 005237 001362' INC .PRDCT ;;; +002 ONE MORE DOORBELL....
3970 016600 012760 004000 000010 MOV #PRTOFF!EPTR,TNAD1(R0) ;;; +001 PROTECT OFF
3971 016606 012760 000451 000012 MOV #DTECMD,TNAD2(R0) ;;;READ THE COMMAND PASSED
3972 016614 CALL ..WFED ;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
BOOT -- BOOT PROTOCOL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 81-2
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
016614 004737 046216' JSR PC,..WFED
3973 016620 47$:
3974 016620 103534 BCS 87$
3975 016622 012715 002000 MOV #INT11C,@R5 ;;;ALLOW MORE DOORBEL INTERRUPTS
3976 016626 122760 000011 000003 CMPB #11,DXWD3+1(R0) ;;;LOOK AT THE COMMAND WORD
3977 016634 001266 BNE 10$ ;;;NOT WHAT WE WANT...
3978 ;
3979 ; CHANGE PROTOCOL TO SECONDARY (FUNCTION 11)
3980 ;
3981 016636 50$:
3982 016636 105037 001372' CLRB .PRPSE ;;; +++009 RESET PAUSE FLAG
3983 016642 012760 177777 000002 MOV #-1,DXWD3(R0) ;;;ACKNOWLEDGE THE COMMAND
3984 016650 052760 014000 000010 BIS #DEP!EPTR!PRTOFF,TNAD1(R0) ;;; +001 SET DEPOSIT IN TEN MEMORY FLAG
3985 016656 012760 000444 000012 MOV #DTEFLG,TNAD2(R0) ;;;START TRANSFER TO DTE FLAG WORD
3986 016664 CALL ..WFED ;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
016664 004737 046216' JSR PC,..WFED
3987 016670 103510 BCS 87$ ;;;TEN STOPPED
3988 016672 012715 000400 MOV #TO10DB,@R5 ;;;SET 10'S DOORBELL
3989 016676 005037 001162' CLR .BTSCH ;;;CLEAR ANY SAVED CHARACTERS
3990 ;
3991 ; AT THIS POINT WE ARE OFFICIALLY IN SECONDARY PROTOCOL
3992 ;
3993 ; THIS IS THE MAIN COMMAND LOOP WHICH PROCESSES THE SECONDARY
3994 ; PROTOCOL COMMANDS AND PASSES CTY CHARACTERS TO THE -10.
3995 ;
3996 016702 60$:
3997 016702 .ENB6 ;;;ENABLE INTERRUPTS
016702 012637 177776 MOV (SP)+,@#PS
3998 016706 WSIG$S ;WAIT FOR SIG EVENT
016706 012746 MOV (PC)+,-(SP)
016710 061 001 .BYTE 49.,1
016712 104375 EMT 375
3999 016714 .INH6 ;INHIBIT INTERRUPTS
016714 013746 177776 MOV @#PS,-(SP)
016720 112737 000300 177776 MOVB #300,@#PS
4000 016726 032715 004000 BIT #TO11DB,@R5 ;;;WAIT FOR ANOTHER DOORBELL
4001 016732 001073 BNE 90$ ;;;FOUND IT -- CHECK THE COMMAND
4002 016734 032760 004000 000030 BIT #DS04,DAG1(R0) ;;;CHECK FOR CLOCK ERROR STOP
4003 016742 001061 BNE 86$ ;;;YES -- STOP PROTOCOL
4004 016744 70$:
4005 016744 113701 001162' MOVB .BTSCH,R1 ;;;CHECK FOR CTY CHARACTER
4006 016750 001754 BEQ 60$
4007 ;
4008 ; TRANSFER CTY CHARACTER TO -10
4009 ;
4010 016752 80$:
4011 016752 012760 004000 000010 MOV #PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET PROTECT OFF
4012 016760 012760 000456 000012 MOV #DTEMTI,TNAD2(R0) ;;;PICK UP THE INPUT BUSY FLAG
4013 016766 81$:
4014 016766 CALL ..WFED ;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
016766 004737 046216' JSR PC,..WFED
4015 016772 103447 BCS 87$ ;;;TEN STOPPED
4016 016774 005760 000004 TST DXWD2(R0)
4017 017000 001340 BNE 60$ ;;;TEN CAN'T ACCEPT ANOTHER CHARACTER YET
4018 017002 042701 177600 BIC #^C177,R1 ;;;MASK OFF JUNK
4019 017006 010160 000002 MOV R1,DXWD3(R0) ;;;PUT THE WORD IN THE DTE
4020 017012 005060 000004 CLR DXWD2(R0)
BOOT -- BOOT PROTOCOL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 81-3
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
4021 017016 005060 000006 CLR DXWD1(R0)
4022 017022 012760 014000 000010 MOV #DEP!PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET DEP!PRTOFF!EPTR DEPOSIT FLAG
4023 017030 012760 000450 000012 MOV #DTEF11,TNAD2(R0) ;;;STORE THE CHARACTER IN THE 10
4024 017036 CALL ..WFED ;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
017036 004737 046216' JSR PC,..WFED
4025 017042 103423 BCS 87$ ;;;TEN STOPPED
4026 017044 105037 001162' CLRB .BTSCH ;;;CHARACTER HAS NOW BEEN SENT
4027 017050 012760 177777 000002 MOV #-1,DXWD3(R0) ;;;SET CHARACTER IN BUFFER FLAG
4028 017056 012760 014000 000010 MOV #DEP!PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET DEP!PRTOFF!EPTR DEPOSIT FLAG
4029 017064 012760 000456 000012 MOV #DTEMTI,TNAD2(R0) ;;;TRANSFER TO 10 MEMORY
4030 017072 CALL ..WFED ;;; [4.1.1121] WAIT FOR TRANSFER
017072 004737 046216' JSR PC,..WFED
4031 017076 103405 BCS 87$ ;;;TEN STOPPED
4032 017100 012715 000400 MOV #TO10DB,@R5 ;;;SET THE 10'S DOORBELL
4033 017104 000676 BR 60$ ;;;CONTINUE POLLING
4034 ;
4035 ; AN ERROR ON EXAMINE / DEPOSIT TURNS OFF BOOT PROTOCOL
4036 ;
4037 017106 86$:
4038 017106 CALL ..WFED ;;; [4.1.1121] RECOGNIZE ERROR, THEN
017106 004737 046216' JSR PC,..WFED
4039 017112 87$:
4040 017112 .ENB0 ;;; +++006 ENABLE INTERRUPTS
017112 004737 044302' JSR PC,..ENB0
4041 017116 000137 016332' JMP BTPRO ;AND GO TO WAIT FOR REACTIVATION.
4042 ;
4043 ; RECIEVE A COMMAND FROM THE -10
4044 ;
4045 017122 90$:
4046 017122 005237 001362' INC .PRDCT ;;; +002 ONE MORE DOORBELL...
4047 017126 012760 004000 000010 MOV #PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET PROTECT OFF
4048 017134 012760 000451 000012 MOV #DTECMD,TNAD2(R0) ;;;READ THE COMMAND WORD
4049 017142 CALL ..WFED ;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
017142 004737 046216' JSR PC,..WFED
4050 017146 012715 002000 MOV #INT11C,@R5 ;;;WARNING !!!!!DON'T MOVE THIS INSTRUCTION!!!!!!!
4051 ;;;DOORBELL MUST NOT BE CLEARED BEFORE THE
4052 ;;;10 FINISHES THE SET DOORBELL!!!!!!
4053 ;;;IT IS GUARANTEED TO BE SAFE AFTER ..WFED
4054 017152 103757 BCS 87$ ;;;TEN STOPPED
4055 017154 122760 000012 000003 CMPB #12,DXWD3+1(R0) ;;;MONITOR MODE CONTROL OFF?
4056 017162 001443 BEQ 100$ ;;;YES -- RE-ENTER RSX20F
4057 017164 122760 000011 000003 CMPB #11,DXWD3+1(R0) ;;;MONITOR MODE CONTROL ON?
4058 017172 001003 BNE 95$ ;;;NO -- MUST BE CTY CHARACTER
4059 017174 012715 002000 MOV #INT11C,@R5 ;;;ALLOW MORE DOORBELLS AND
4060 017200 000616 BR 50$ ;;;ACKNOWLEDGE THE COMMAND.
4061 ;
4062 ; OUTPUT A CHARACTER TO THE CTY (FUNCTION 10)
4063 ;
4064 017202 95$:
4065 017202 116037 000002 017572' MOVB DXWD3(R0),QPROAD ;;;OUTPUT A CHARACTER
4066 017210 .ENB6 ;;;ENABLE INTERRUPTS
017210 012637 177776 MOV (SP)+,@#PS
4067 017214 DIR$ #QPROMS ;OUTPUT CHARACTER
017214 012746 017550' MOV #QPROMS,-(SP)
017220 104375 EMT 375
4068 017222 .INH6 ;INHIBIT INTERRUPTS
017222 013746 177776 MOV @#PS,-(SP)
BOOT -- BOOT PROTOCOL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 81-4
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
017226 112737 000300 177776 MOVB #300,@#PS
4069 017234 012760 177777 000002 MOV #-1,DXWD3(R0) ;;;ACKNOWLEDGE CHARACTER OUTPUT
4070 017242 012760 014000 000010 MOV #DEP!PRTOFF!EPTR,TNAD1(R0) ;;; +001 SET DEPOSIT
4071 017250 012760 000455 000012 MOV #DTEMTD,TNAD2(R0) ;;;START TRANSFER TO INDICATE CHARACTER OUTPUT
4072 017256 CALL ..WFED ;;; [4.1.1121] WAIT FOR EXAMINE DEPOSIT
017256 004737 046216' JSR PC,..WFED
4073 017262 103713 BCS 87$ ;;;WHOOPS !
4074 017264 012715 000400 MOV #TO10DB,@R5 ;;;CLEAR THE 11 DOORBELL AND SET THE 10'S DOORBELL
4075 017270 000625 BR 70$ ;;;CONTINUE POLLING
4076 ;
4077 ; CHANGE PROTOCOL TO PRIMARY (FUNCTION 12)
4078 ;
4079 017272 100$:
4080 017272 005037 001374' CLR .DTBLK ;;; [4.1.1121] DTE-20 IS NO LONGER BLOCKED
4081 017276 005002 CLR R2 ;;; +++006 NEED ACKNOWLEGE
4082 017300 042737 006000 001012' BIC #EF.PFR!EF.CRI,.COMEF+2 ;;; +++007 GUARD AGAINST SPURIOUS POWERFAIL
4083 ;;; +++008 DECLARE COMM REGION VALID
4084 017306 032760 000001 000002 BIT #1,DXWD3(R0) ;;;CHECK FOR RE-INIT
4085 017314 001451 BEQ 120$ ;;; +++006 NO
4086 017316 110$:
4087 017316 010046 MOV R0,-(SP)
4088 017320 113$:
4089 017320 013704 001326' MOV TO10Q,R4 ;;; +003 Q LISTHEAD TO R4
4090 017324 022704 001326' CMP #TO10Q,R4 ;;; +003 DONE?
4091 017330 001416 BEQ 112$ ;;; +003 YES -- LEAVE
4092 017332 CALL ..NDEL ;;; +003 NO -- REMOVE THIS ENTRY FROM Q
017332 004737 044062' JSR PC,..NDEL
4093 017336 005764 000012 TST 12(R4) ;;; +003 TEST INDIRECT INDICATOR
4094 017342 003003 BGT 111$ ;;; +003 NOT INDIRECT -- GO ON
4095 017344 056474 000024 000026 BIS 24(R4),@26(R4) ;;; +003 INDIRECT -- DECLARE XFER COMPLETE
4096 017352 111$:
4097 017352 010400 MOV R4,R0 ;;; +003 SET UP TO
4098 017354 016001 000004 MOV 4(R0),R1 ;;; +003 RETURN CORE BLOCK
4099 017360 CALL ..DECB ;;; +003 RETURN IT
017360 004737 044552' JSR PC,..DECB
4100 017364 000755 BR 113$ ;;; +003 DO NEXT ENTRY IN Q
4101 ;
4102 017366 112$:
4103 017366 005037 001324' CLR TO10QC ;;; +003 DONE -- CLEAR CURRENT COUNTS
4104 017372 005037 001254' CLR .CPDV ;;; CLEAR CURRENT TO-10 DEVICE
4105 017376 013700 001262' MOV .CRHD,R0 ;;; GET CURRENT NODE
4106 017402 062700 000010 ADD #10,R0 ;;; POINT TO DATA AREA
4107 017406 010037 001260' MOV R0,.CRPB ;;; AND SET BUFFER POINTER.
4108 017412 005060 177776 CLR -2(R0) ;;; CLEAR ENTRY COUNT
4109 017416 016000 177774 MOV -4(R0),R0 ;;; GET LENGTH OF NODE
4110 017422 162700 000012 SUB #10.,R0 ;;; ADJUST,
4111 017426 010037 001256' MOV R0,.CRSZ ;;; AND SET BUFFER SIZE.
4112 017432 005037 001250' CLR .CRQZ ;;; NOTHING ENTERED YET.
4113 017436 012600 MOV (SP)+,R0
4114 017440 120$: ;;; +++005
4115 017440 105037 001373' CLRB TOXQIP ;;; [4.1.1035] RESET THE QUEUE INTERLOCK
4116 017444 CLEF$S #E.FPR2 ;;;TURN SECONDARY PROTOCOL OFF
017444 012746 000076 MOV #E.FPR2,-(SP)
017450 012746 MOV (PC)+,-(SP)
017452 037 002 .BYTE 31.,2
017454 104375 EMT 375
4117 017456 DTON$S ;;;ENABLE DTE20
BOOT -- BOOT PROTOCOL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 81-5
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
017456 012746 000003 MOV #DF.ON,-(SP)
017462 012746 001011 MOV #400*2.+DR.DTE,-(SP)
017466 104375 EMT 375
4118 017470 103610 BCS 87$ ;;; +++006 LOST COMM REGION
4119 017472 005702 TST R2 ;;; +++006 ACKNOWLEGE??
4120 017474 001013 BNE 130$ ;;; +++006 NO -- GO ON
4121 017476 012760 177777 000002 MOV #-1,DXWD3(R0) ;;; +++006 ACK THE COMMAND
4122 017504 012760 014000 000010 MOV #DEP!EPTR!PRTOFF,TNAD1(R0) ;;; +++001 SET DEPOSIT
4123 017512 012760 000444 000012 MOV #DTEFLG,TNAD2(R0) ;;; +++006 START IT
4124 017520 CALL ..WFED ;;; [4.1.1121] WAIT FOR IT
017520 004737 046216' JSR PC,..WFED
4125 017524 130$: ;;; +++006
4126 017524 012715 000440 MOV #INTRON!TO10DB,@R5 ;;;ENABLE INTERRUPTS
4127 017530 .ENB0 ;;;ENABLE INTERRUPTS
017530 004737 044302' JSR PC,..ENB0
4128 017534 005237 001164' INC .ACKAL ;SEND ACK ALL
4129 017540 005037 005666' CLR .FEACT ;FE IS NOW AVAILABLE
4130 017544 000137 016332' JMP BTPRO ;WAIT FOR PROTOCOL REACTIVICATION.
4131 ;
4132 017550 QPROMS:
4133 017550 QIOW$ IO.WLB,1,2,0,0,0,<QPROAD,1,0>
017550 003 011 .BYTE 3,$$$ARG
017552 000400 .WORD IO.WLB
017554 000001 .WORD 1
017556 002 000 .BYTE 2,0
017560 000000 .WORD 0
017562 000000 .WORD 0
017564 017572' .WORD QPROAD
017566 000001 .WORD 1
017570 000000 .WORD 0
4134 017572 QPROAD:
4135 017572 000000 .WORD 0
PF -- POWER FAIL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 82
SECONDARY PROTOCOL -- BOOT PROTOCOL SERVICE
4137 .TITLE PF -- POWER FAIL HANDLER
4138 .SBTTL POWERFAIL HANDLER -- COPYRIGHT STATEMENT
4139 017574 IDENT$ 14,05
.IDENT /014050/
4140 ;
4141 ; COPYRIGHT (C) 1975, 1978 BY
4142 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
4143 ;
4144 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
4145 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
4146 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
4147 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
4148 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
4149 ;
4150 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
4151 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
4152 ; CORPORATION.
4153 ;
4154 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4155 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
4156 ;
4157 ; MODULE: "POWER FAIL"
4158 ;
4159 ; VERSION: 14-05
4160 ;
4161 ; AUTHOR: R. MCLEAN
4162 ;
4163 ; DATE: 19 JUL 75
4164 ;
4165 ;
4166 ; THIS MODULE CONTAINS:
4167 ;
4168 ; 1 -- CODE TO SUPPORT POWER FAIL
4169 ;
4170 ; MODIFICATIONS:
4171 ;
4172 ; NO. DATE PROGRAMMER REASON
4173 ; --- ---- ---------- ------
4174 ; 001 10-AUG-77 R. BELANGER WAIT FOR KL CROBAR TO
4175 ; SETTLE ON POWER RESTART
4176 ; 002 18-AUG-77 R. BELANGER FLAG POWER RESTART
4177 ; TCO 4.2205 08-MAR-79 R. BELANGER RESET SENADALL DATABASE
4178 ; ON POWER UP
4179 ; TCO 4.2249 09-MAY-79 R. BELANGER ALLOW POWER FAIL RECOVERY
4180 ; TO COMPLETE BEFORE NOTIFYING KL10
4181 ; MODIFY PARITY REGISTER INITIALIZATION
4182 ; NOT NOT ALTER CPU PRIORITY ON TRAP
4183
4185 .MCALL CALL,$DEF,.CRASH
4186 017574 $DEF
PF -- POWER FAIL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 83
POWERFAIL -- POWER DOWN
4189 .SBTTL POWERFAIL -- POWER DOWN
4190
4191 ;+
4192 ; POWER FAILURE AND RECOVERY SERVICE
4193 ;
4194 ; WHEN A POWER FAILURE TRAP OCCURS, THE VOLATILE REGISTERS
4195 ; ARE SAVED AND THE TRAP VEECTOR FOR POWER UP IS SET.
4196 ;
4197 ; IF POWER FAIL INTERRUPTS A PRI 7 (I/O INITALIZE OR DTE
4198 ; EXAMINE/DEPOSIT) THEN .PFAIL IS SET AND RTI
4199 ; IS EXECUTED. ROUTINES WHICH BREAK DOWN FROM PRI7
4200 ; MUST CHECK TO SEE IF .PFAIL IS SET AND JUMP TO
4201 ; .PFRTN -- THIS WILL ALLOW THEM TO FINISH AND
4202 ; STILL PROTECT POWERFAIL FROM FAILING
4203 ;
4204 ;
4205 ; NOTE: POWERFAIL TRAP CANNOT BE INHIBITED.
4206 ; POWER FAIL TRAP SERVICE CAN NOT USE ROUTINES THAT INHIBIT
4207 ; INTERRUPTS TO AVOID RACE CONDITIONS
4208 ;
4209 ; NOTE: ALL MEMORY IS ASSUMED TO BE NON-VOLATILE (IT CANNOT BE
4210 ; SAVED IN THE TIME PERMITTED FOR POWER FAIL SAVE)
4211 ;
4212 ; NOTE: A KL10 INITIATED FRONT-END RELOAD SIMULATES A POWER-FAIL
4213 ; TRAP TO STOP THE FRONT-END
4214 ;
4215 ; POWER DOWN ENTRY -- CONTROL IS TRANSFERRED HERE (VIA POWER
4216 ; FAIL TRAP VECTOR) AT PRIORITY SEVEN.
4217 ;
4218 ; STACK SUMMARY:
4219 ;
4220 ; 0(SP) -- POWERFAIL TRAP PC
4221 ; 2(SP) -- POWERFAIL TRAP PS
4222 ; 4(SP) -- BEGINNING OF INTERRUPTED PROCESS STACK
4223 ;-
4224
4225 017574 .PWRDN::
4226 017574 052737 006000 001012' BIS #EF.PFR!EF.CRI,.COMEF+2 ; +++002 ALWAYS FLAG POWER FAIL (ALWAYS!)
4227 017602 016646 000002 MOV 2(SP),-(SP) ;FIND THE PS
4228 017606 042716 177437 BIC #177437,@SP ;MASK OFF ALL BUT PRI
4229 017612 022726 000340 CMP #340,(SP)+ ;IS IT PRI 7?
4230 017616 001005 BNE 10$ ;NO -- THEN ACCEPT POWER FAIL
4231 017620 005237 001026' INC .PFAIL ;SET POWER FAIL ERROR
4232 017624 105237 001014' INCB .SERFG+0 ; +++001 LEST WE FORGET...
4233 017630 000006 RTT ;RETURN TO CALLER
4234
4235 017632 013746 000006 10$: MOV @#6,-(SP) ;SAVE LOW CORE
4236 017636 013746 000004 MOV @#4,-(SP)
4237 017642 012737 017716' 000004 MOV #20$,@#4 ;SET UP TO HALT IF FAKE POWER FAIL
4238 017650 012737 000340 000006 MOV #340,@#6 ;SET PRIORITY 7 IN ODD ADDRESS TRAP ADDRESS
4239 ;
4240 ; STACK SUMMARY:
4241 ;
4242 ; 0(SP) -- SAVED ABSOLUTE 4
4243 ; 2(SP) -- SAVED ABSOLUTE 6
4244 ; 4(SP) -- POWERFAIL TRAP PC
4245 ; 6(SP) -- POWERFAIL TRAP PS
PF -- POWER FAIL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 83-1
POWERFAIL -- POWER DOWN
4246 ; 10(SP) -- INTERRUPTED PROCESS STACK
4247 ;
4248 017656 005737 173000 TST .BM873 ;IF NOT POWER FAIL THIS WILL TRAP TO 4
4249 ; AND IMMEDIATELY HALT AT "20$" BELOW,
4250 ; IN WHICH CASE THE TRAP PS/PC WILL BE ON STACK
4251 017662 010046 MOV R0,-(SP) ;SAVE REGISTERS
4252 017664 010146 MOV R1,-(SP)
4253 017666 010246 MOV R2,-(SP)
4254 017670 010346 MOV R3,-(SP)
4255 017672 010446 MOV R4,-(SP)
4256 017674 010546 MOV R5,-(SP)
4257 017676 010637 001032' MOV SP,PWRXSP ;SAVE STACK REGISTER
4258 017702 012737 017720' 000024 MOV #PWR.UP,@#24 ;SET UP POWER UP TRAP VECTOR ADDRESS
4259 017710 012737 000006 001034' MOV #6,CROBAR ; +++001 SET UP CROBAR COUNTER
4260 017716 000000 20$: HALT
4261 ;
4262 ; CRASH (NON-POWERFAIL) STACK SUMMARY:
4263 ;
4264 ; 0(SP) -- BM873 ROM TRAP PC
4265 ; 2(SP) -- BM873 ROM TRAP PS
4266 ; 4(SP) -- SAVED ABSOLUTE 4
4267 ; 6(SP) -- SAVED ABSOLUTE 6
4268 ; 10(SP) -- POWERFAIL TRAP PC
4269 ; 12(SP) -- POWERFAIL TRAP PS
4270 ; 14(SP) -- INTERRUPTED PROCESS STACK
4271 ;
4272 ; THE TOP OF THIS STACK IS POINTED TO BY LOCATION 54 IN THE CRASH DUMP
PF -- POWER FAIL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 84
POWERFAIL -- POWER UP ENTRY
4274 .SBTTL POWERFAIL -- POWER UP ENTRY
4275
4276 ;
4277 ;
4278 ; POWER UP ENTRY
4279 ;
4280 017720 PWR.UP::
4281 017720 013706 001032' MOV PWRXSP,SP ;RESTORE STACK POINTER
4282 017724 012737 017720' 000004 MOV #PWR.UP,@#4 ; +++001 MAKE BUS TIMEOUT TRAP TO "PWR.UP"
4283 017732 012737 004340 000006 MOV #4340,@#6
4284 017740 005337 001034' DEC CROBAR ; +++001 COUNT THIS ATTEMPT
4285 017744 003003 BGT 10$ ; +++001 ALL OK IF STILL .GT. 0
4286 017746 .CRASH CBR ; +++001 CRASH IF MORE THAN ONE MINUTE
017746 000004 IOT
017750 103 102 122 .ASCIZ /CBR/
017753 000
4287 ;
4288 017754 10$:
4289 017754 013701 001360' MOV .PRDTE,R1 ; +++001 ADDRESS OF DTE20 TO R1
4290 017760 CALL 20$ ; +++001 WAIT FOR KL CROBAR
017760 004737 020100' JSR PC,20$
4291 017764 CALL 20$ ; +++001 AND BE VERY SURE OF IT
017764 004737 020100' JSR PC,20$
4292 017770 012761 000100 000032 MOV #DRESET,DAG2(R1) ; +++001 RESET THE DTE20
4293 017776 005037 001026' CLR .PFAIL ;CLEAR POWER FAIL FLAG
4294 020002 012737 177777 001030' MOV #-1,.PFIOW ;SET POWER FAIL BITS TO INTERRUPT ROUTINES
4295 020010 012605 MOV (SP)+,R5 ;RESTORE REGISTERS
4296 020012 012604 MOV (SP)+,R4
4297 020014 012603 MOV (SP)+,R3
4298 020016 012602 MOV (SP)+,R2
4299 020020 012601 MOV (SP)+,R1
4300 020022 012600 MOV (SP)+,R0
4301 020024 012637 000004 MOV (SP)+,@#4 ;RESTORE LOW CORE
4302 020030 012637 000006 MOV (SP)+,@#6
4303 020034 012737 017574' 000024 MOV #.PWRDN,@#24 ;SET UP POWER DOWN TRAP AGAIN
4304 020042 052737 000100 001126' BIS #KS.PFT,.KLITK ;FORCE POWER RESTART
4305 020050 012737 000401 001122' MOV #401,.NOERR ;SET NO ERROR OR HALT
4306 020056 CALL ..DTSP ;TURN OFF PROTOCOL TASKS
020056 004737 046770' JSR PC,..DTSP
4307 020062 105237 001124' INCB .TKTN ;TASK TERMINATION REQUEST
4308 020066 152737 000200 001014' BISB #EV.PF,.SERFG+0 ;INDICATE POWER FAIL & SIG EVENT
4309 020074 000137 014632' JMP ..INTX ;RETURN TO INTERRUPTED ROUTINE
4310 ;
4311 020100 20$: ; +++001
4312 020100 012700 000454 MOV #^D<5*60>,R0 ; +++001 WAIT FOR CROWBAR TO SETTLE (5 SECONDS)
4313 020104 30$: ; +++001
4314 020104 105737 177546 TSTB @#LKS ; +++001 CHECK WITH CLOCK
4315 020110 100375 BPL 30$ ; +++001 WAIT FOR TICK
4316 020112 105037 177546 CLRB @#LKS ; +++001 CLEAR CLOCK FLAG
4317 020116 077006 SOB R0,30$ ; +++001 WAIT THE FULL COUNT
4318 020120 005777 161232 TST @.PRSTA ; +++001 LOOK AT DTE20 STATUS REGISTER
4319 ; +++001 IF NOT THERE (CROBAR TRUE) TRAP
4320 ; +++001 TO "PWR.UP", ELSE GO ON
4321 020124 RETURN ; +++001 MADE IT -- RETURN
020124 000207 RTS PC
PF -- POWER FAIL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 85
POWERFAIL -- POWER FAIL RESTART
4323 .SBTTL POWERFAIL -- POWER FAIL RESTART
4324
4325 ; .PFAIL INDICATES POWER FAIL IN PROGRESS
4326 ; .PFIOW IS BIT ENCODED TO INDICATE POWER FAIL
4327 ; OCCURED AND POWER UP RECOVERY IS NECESSARY
4328
4329 020126 .PFRST::
4330 020126 013746 000004 MOV @#4,-(SP) ; SAVE ABSOLUTE 4 (NEXM STOP)
4331 020132 010046 MOV R0,-(SP) ; SAVE REGISTERS
4332 020134 010146 MOV R1,-(SP)
4333 020136 010246 MOV R2,-(SP)
4334 020140 010346 MOV R3,-(SP)
4335 020142 010446 MOV R4,-(SP)
4336 020144 010546 MOV R5,-(SP)
4337 020146 012737 177777 001030' MOV #-1,.PFIOW ; INDICATE POWER/FAIL TTY ENABLE
4338 020154 012702 002604' MOV #.SNDLP,R2 ; [4.2205] INIT SENDALL POINTER
4339 020160 012703 000004 MOV #4,R3 ; [4.2205] INIT SENDALL COUNTER
4340 020164 005022 CLR (R2)+ ; [4.2205] CLEAR SENDALL INDEX
4341 020166 10$:
4342 020166 005062 000010 CLR 10(R2) ; [4.2205] CLEAR SENDALL COUNT
4343 020172 012200 MOV (R2)+,R0 ; [4.2205] GET BUFFER POINTER
4344 020174 001402 BEQ 20$ ; [4.2205] GO ON IF NULL
4345 020176 CALL ..DECN ; [4.2205] DEALLOCATE THE BUFFER
020176 004737 044546' JSR PC,..DECN
4346 020202 20$:
4347 020202 077307 SOB R3,10$ ; [4.2205] LOOP THROUGH ALL 4 NODES
4348 020204 CALL .DHTMO ; [4.2205] DO TIMEOUT
020204 004737 040646' JSR PC,.DHTMO
4349 020210 CALL .DLTMO
020210 004737 040336' JSR PC,.DLTMO
4350 020214 CALL .DMTMO
020214 004737 041126' JSR PC,.DMTMO
4351 020220 005237 006214' INC .LPPFL
4352 020224 005237 005706' INC .CRPFL
4353 020230 005037 002600' CLR .ABCNT
4354 020234 005037 002602' CLR .ABFLG
4355 020240 105037 001372' CLRB .PRPSE
4356 020244 005037 001030' CLR .PFIOW ; CLEAR POWER FAIL FLAG
4357 020250 012704 000020 MOV #16.,R4 ; SET UP TO RESTORE PARITY ERROR REGISTERS
4358 020254 012705 172100 MOV #.PARRG,R5 ; SET UP THE ADDRESS OF THE REGISTERS
4359 020260 012737 020340' 000004 MOV #PARLOT,@#4 ; [4.2249] SET UP 4 TO TRAP TO "PARLOT"
4360
4361 .ENABL LSB
4362
4363 020266 PARLOA:
4364 020266 012725 000001 MOV #1,(R5)+ ; [4.2249] ENABLE PARITY CHECKING
4365 020272 10$:
4366 020272 077403 SOB R4,PARLOA ; [4.2249] LOOP THROUGH ALL REGISTERS
4367 020274 012605 MOV (SP)+,R5 ; [4.2249] DONE -- RESTORE REGISTERS
4368 020276 012604 MOV (SP)+,R4
4369 020300 012603 MOV (SP)+,R3
4370 020302 012602 MOV (SP)+,R2
4371 020304 012601 MOV (SP)+,R1
4372 020306 012600 MOV (SP)+,R0
4373 020310 012637 000004 MOV (SP)+,@#4 ; [4.2249] RESTORE LOW CORE
4374 020314 042737 004000 001012' BIC #EF.PFR,.COMEF+2 ; [4.2249] CLEAR POWERFAIL IN PROGRESS FLAG
4375 020322 012737 000100 177546 MOV #.INTEN,@#LKS ; [4.2249] ENABLE CLOCK
PF -- POWER FAIL HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 85-1
POWERFAIL -- POWER FAIL RESTART
4377 020330 012777 000400 161020 MOV #TO10DB,@.PRSTA ; [4.2249] RING THE DOORBELL TO TELL 10 WE ARE HERE AND READY
4379 020336 RETURN ; [4.2249] RETURN TO CALLER
020336 000207 RTS PC
4380 ;
4381 ; HERE ON A TRAP FROM A NON-EXISTENT PARITY REGISTER
4382 ;
4383 020340 PARLOT:
4384 020340 032626 BIT (SP)+,(SP)+ ; [4.2249] FLUSH THE TRAP PS/PC
4385 020342 000753 BR 10$ ; [4.2249] AND CONTINUE THROUGH ALL REGISTERS
4386 ;
4387
4388 .DSABL LSB
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 86
POWERFAIL -- POWER FAIL RESTART
4390 .TITLE DMDTE - DTE DIRECTIVES MODULE
4391 .SBTTL DTE DIRECTIVES -- COPYRIGHT STATEMENT
4392 020344 IDENT$ 14,25
.IDENT /014250/
4393 ;
4394 ; COPYRIGHT (C) 1975, 1978 BY
4395 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
4396 ;
4397 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
4398 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
4399 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
4400 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
4401 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
4402 ;
4403 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
4404 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
4405 ; CORPORATION.
4406 ;
4407 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4408 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
4409 ;
4410 ; MODULE: "DTE20" DIRECTIVE
4411 ;
4412 ; VERSION: 14-25
4413 ;
4414 ; AUTHOR: R. MCLEAN
4415 ;
4416 ; DATE: 19 MAR 75
4417 ;
4418 ;
4419 ; THIS MODULE CONTAINS:
4420 ;
4421 ; 1 -- CODE TO SERVICE THE DTE20 EMT SERVICE
4422 ;
4423 ; MODIFICATIONS:
4424 ;
4425 ; NO. DATE PROGRAMMER PURPOSE
4426 ; --- ---- ---------- -------
4427 ; 001 14-MAR-77 R. BELANGER CONDITIONALLY REMOVE UNUSED
4428 ; DTE-20 EMT SERVICES
4429 ; 002 01-APR-77 A. PECKHAM FIX BUG IN "$DTEON"
4430 ; 003 18-AUG-77 R. BELANGER FIX "$DTEON" TO RETURN CORRECT STATUS
4431 ; AND NOT START PRIMARY PROTOCOL IF
4432 ; "..SWED" FAILS.
4433 ; 004 21-FEB-78 R. BELANGER FIX "$DTEON" TO SET UP
4434 ; "PROTBL" PROPERLY.
4435 ; TCO 4.2107 06-DEC-78 R. BELANGER INITIALIZE KEEP-ALIVE DATA-BASE
4436 ; IN "$DTEON".
4437 ; TCO 4.1.1105 11-MAR-80 R. BELANGER CHANGE "EF.PR1" RECOGNITION
4438 ; TCO 4.1.1121 19-MAR-80 R. BELANGER SUPPORT BLOCKED DTE-20
4439 ; TCO 4.1.1137 05-APR-80 R. BELANGER REMOVE RESTRICTED DTE-20 SUPPORT
4440 ;
4441 ; MACRO CALLS
4442
4443 .MCALL CALL,RETURN,MFPI,MTPI,MFPS,MTPS,.CRASH,.INH,.ENB,$DEF
4444
4445 020344 $DEF
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 87
DTE20 EMT DISPATCH DECODER
4447 .SBTTL DTE20 EMT DISPATCH DECODER
4448 ;
4449 ; CALLED BY EMT DISPATCH
4450 ; THIS ROUTINE DECODES THE SPECIFIC DTE FUNCTION CODE
4451 ; AND DISPATCHES TO THE CORRECT FUNCTION
4452 ;
4453 ; ENTRY CONDITIONS:
4454 ;
4455 ; R1 -- ADDRESS OF DPB
4456 ; R2 -- SIZE OF DPB
4457 ; R3 -- DIRECTIVE IDENTIFICATION CODE
4458 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
4459 ;
4460 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4461 ;
4462 ; R0,R1,R2,R3,R4,R5
4463 ;
4464 ; REGISTERS FOR USER AND DOES NOT REQUIRE EMT SERVICE
4465 ; ROUTINES TO SAVE EMT'S REGISTERS.
4466 ;
4467 ; EXIT TO DTE EMT SERVICE ROUTINE CONDITIONS:
4468 ;
4469 ; 3(SP) -- FUNCTION CODE PLUS HIGH ORDER BYTE OF SECOND WORD OF DPB
4470 ; R0 -- POINTER TO EXAMINE/DEPOSIT ADDRESSES
4471 ; R1 -- WORD 5 OF DPB
4472 ; R2 -- WORD 3 OF DPB
4473 ; R3 -- WORD 4 OF DPB
4474 ; R4 -- ADDRESS OF DPB
4475 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
4476 ;
4477 ;
4478 ;
4479 020344 .D.DTE::
4480 020344 005046 CLR -(SP)
4481 020346 005046 CLR -(SP)
4482 020350 010146 MOV R1,-(SP) ;SAVE POINTER TO DPB FOR R4
4483 020352 MFPS (R1)+,R0 ;PUT THE FUNCTION CODE IN R0
020352 012100 MOV (R1)+,R0
4484 020354 150066 000002 BISB R0,2(SP)
4485 020360 105000 CLRB R0
4486 020362 010066 000004 MOV R0,4(SP)
4487 020366 010204 MOV R2,R4 ;SAVE SIZE OF DPB
4488 020370 005046 CLR -(SP) ;SET DEFAULT PROCESSOR NUMBER
4489 020372 162704 000002 SUB #2,R4 ;CHECK COUNT OF PARAMETERS
4490 020376 001407 BEQ 10$ ;IF ZERO REGISTERS DON'T NEED BE SET UP (NO PARAMS)
4491 020400 MFPS (R1)+,R2 ;MOVE THE CPU ADDRESS
020400 012102 MOV (R1)+,R2
4492 020402 MFPS (R1)+,R3 ;MOVE IN OFFSET ADDRESS TO COMM AREA
020402 012103 MOV (R1)+,R3
4493 020404 162704 000002 SUB #2,R4 ;CHECK TO SEE IF CPU PARAMETER
4494 020410 001402 BEQ 10$ ;NO -- DON'T ATTEMPT TO SET REGISTER
4495 020412 MFPS (R1)+,@SP ;YES -- SET CPU NUMBER
020412 012116 MOV (R1)+,@SP
4496 020414 001031 BNE CPUERR ; [4.1.1137] ERROR IF NOT CPU 0
4497 020416 10$:
4498 020416 012601 MOV (SP)+,R1 ;SET CPU NUMBER
4499 020420 012604 MOV (SP)+,R4
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 87-1
DTE20 EMT DISPATCH DECODER
4500 020422 012700 001236' MOV #PROTBL,R0 ; [4.1.1137] FIND PROCESSOR BLOCK
4501 020426 006316 ASL @SP ;MULTIPLY FUNCTION CODE BY 2 TO FORM OFFSET
4502 020430 062716 020440' ADD #DTEDSP-2,@SP ;POINT INTO DISPATCH TABLE
4503 020434 017616 000000 MOV @(SP),@SP
4504 020440 000136 JMP @(SP)+ ;GO TO ROUTINE AND REMOVE ELEMENTFROM STACK
4505 ;
4506 020442 020502' DTEDSP: .WORD $DORBL ;RING DORBELL (FUNCTION CODE 1)
4507 020444 020504' .WORD $DTEOF ;TURN OFF DTE20 (FUNCTION CODE 2)
4508 020446 020512' .WORD $DTEON ;TURN ON DTE20 (FUNCTION CODE 3)
4509 020450 021110' .WORD $DPMYG ;DEPOSIT MY GENERAL SECTION (FUNCTION CODE 4)
4510 020452 021142' .WORD $EXMYG ;EXAMINE MY GENERAL SECTION (FUNCTION CODE 5)
4511 020454 021152' .WORD $EXMYN ;EXAMINE MY SECTION FOR CPU N (FUNCTION CODE 6)
4512 020456 021160' .WORD $DPMYN ;DEPOSIT MY SECTION FOR CPU N (FUNCTION CODE 7)
4513 020460 021166' .WORD $EXHSG ;EXAMINE HIS GENERAL COMM (FUNCTION CODE 10)
4514 020462 021174' .WORD $EXHSM ;EXAMINE HIS SECTION FOR ME (FUNCTION CODE 11)
4515 020464 021202' .WORD $KLDFR ;START KL10 DIAGNOSTIC FUNCTION READ
4516 020466 021342' .WORD $KLDFW ;START KL10 DIAGNOSTIC FUNCTION WRITE
4517 020470 021320' .WORD $KLDFX ;START KL10 DIAGNOSTIC FUNCTION (FUNCTION CODE 12)
4518 020472 021454' .WORD $PRVEX ;PRIVILEDGED EXAMINE (FUNCTION 13)
4519 020474 021440' .WORD $PRVDP ;PRIVILEDGED DEPOSIT (FUNCTION 14)
4520 020476 021510' .WORD $RWDRG ;READ/WRITE DIAGNOSTIC REGISTER (FUNCTION 15)
4521 ;
4522 020500 CPUERR:
4523 020500 104776 TRAP DE.02 ; ILLEGAL CPU
4524 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 88
$DORBL -- RING THE KL-10 DOORBELL
4526 .SBTTL $DORBL -- RING THE KL-10 DOORBELL
4527
4528 ;+
4529 ; $DORBL -- RING THE DOORBELL OF THE KL-10 SPECIFIED
4530 ;
4531 ; * * * U N S U P P O R T E D F U N C T I O N * * *
4532 ;
4533 ;-
4534
4535 020502 $DORBL::
4552
4553 020502 104635 TRAP DE.99 ; +++001 THIS ISN'T HERE
4554 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 89
$DTEOF -- TURN THE DTE20 OFF
4557 .SBTTL $DTEOF -- TURN THE DTE20 OFF
4558
4559 ;+
4560 ; $DTEOF -- TURN OFF THE DTE20
4561 ;
4562 ; CALLING SEQUENCE:
4563 ;
4564 ; JMP $DTEOF
4565 ;
4566 ; EXIT CONDITIONS:
4567 ;
4568 ; R0 --1 TO INDICATE SUCCESS
4569 ; CC-C CLEAR TO INDICATE SUCCESS
4570 ;
4571 ; ERROR CONDITIONS: NONE
4572 ;
4573 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4574 ;-
4575
4576 020504 $DTEOF::
4589 020504 CALL ..DTP2 ;+ START UP SECONDARY PROTOCOL.
020504 004737 047006' JSR PC,..DTP2
4590 020510 104401 TRAP DR.01 ;RETURN STATUS OK
4591 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 90
$DTEON -- TURN THE DTE20 ON
4593 .SBTTL $DTEON -- TURN THE DTE20 ON
4594
4595 ;+
4596 ; $DTEON -- TURN ON THE DTE20
4597 ; THIS ROUTINE WILL SET UP THE TABLES NECESSARY TO
4598 ; INITALIZE THE COMMUNICATON BETWEEN THE PDP10 AND PDP11'S
4599 ;
4600 ; CALLING SEQUENCE:
4601 ;
4602 ; JMP $DTEON
4603 ;
4604 ; EXIT CONDITIONS:
4605 ;
4606 ; R0 --1 TO INDICATE SUCCESS
4607 ; CC-C CLEAR TO INDICATE SUCCESS
4608 ;
4609 ; ERROR CONDITIONS:
4610 ;
4611 ; R0 -2 -- E BOX STOPPED
4612 ; CC-C SET
4613 ;
4614 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4615 ;-
4616
4617 020512 $DTEON::
4618 020512 010546 MOV R5,-(SP)
4619 020514 011000 MOV (R0),R0 ;;; [4.1.1137] FIND THE COMMON DTE20
4620 020516 005001 CLR R1 ;;;SET UP TO FIND PROCESSOR NUMBER
4621 020520 005002 CLR R2 ;;;START TRANSFER OF ABS WORD 0 OF EPT (MY PROCESSOR NUMBER
4622 020522 012703 001346' MOV #DEXTM3,R3 ;;;SET UP ADDRESS TO STORE WORDS
4623 020526 CALL ..SWED ;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
020526 004737 046670' JSR PC,..SWED
4624 020532 103417 BCS 1$ ;;;E BOX STOP
4625 020534 011304 MOV @R3,R4 ;;;YES --FIND OFFSET TO MY R/W AREA
4626 020536 113702 001351' MOVB @#DEXTM2+1,R2 ;;;FIND THE PROCESSOR NUMBER
4627 ;;; PROCESSOR NUMBER TO LOW ORDER BITS
4628 020542 042702 177740 BIC #^C37,R2 ;;;MASK OFF JUNK(0.-31. LEGAL)
4629 020546 010237 001232' MOV R2,PRMEMN ;;;SAVE PROCESSOR NUMBER
4630 020552 005202 INC R2 ;;;FIND COMMUNICATIONS VIRTUAL 2
4631 020554 010237 001230' MOV R2,COMBSE ;;;SAVE BASE OF COMMUNICATIONS AREA
4632 020560 060402 ADD R4,R2 ;;;ADD OFFSET TO BASE OF COMM AREA
4633 020562 010237 001234' MOV R2,DEPOF ;;;SET CORRECT OFFSETT
4634 020566 CALL ..SWED ;;; [4.1.1121] WAIT FOR TRANSFER
020566 004737 046670' JSR PC,..SWED
4635 020572 1$:
4636 020572 103543 BCS 80$ ;;; +++003
4637 020574 2$:
4638 020574 013705 001350' MOV @#DEXTM2,R5 ;;;PICK UP THE NUMBER OF 8 TM BLOCKS
4639 020600 042705 177770 BIC #177770,R5 ;;;FIND THE NUMBER OF 8 WORD BLOCKS IN MY AREA
4640 020604 162705 000002 SUB #2,R5 ;;;ACCOUNT FOR MY GENERAL SECTION
4641 020610 010246 MOV R2,-(SP)
4642 020612 010546 MOV R5,-(SP) ;;;SAVE COUNT OF BLOCKS
4643 020614 16$:
4644 ;;; +++002
4645 020614 062766 000020 000002 ADD #FORPRO,2(SP) ;;;LOOK AT A COMMUNICATIONS AREA TO ANOTHER PROCESSOR
4646 020622 016602 000002 MOV 2(SP),R2
4647 020626 CALL ..SWED ;;; [4.1.1121] WAIT FOR TRANSFER
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 90-1
$DTEON -- TURN THE DTE20 ON
020626 004737 046670' JSR PC,..SWED
4648 020632 103523 BCS 80$ ;;; +++003 E BOX STOPPED
4649 020634 011304 MOV @R3,R4 ;;;FIND PROCESSOR NUMBER
4650 020636 012705 001236' MOV #PROTBL,R5 ;SET INITIAL POINTER
4651 020642 042704 177770 BIC #177770,R4 ;;;MASK OFF JUNK
4652
4659
4660 020646 19$:
4661 020646 013704 001350' MOV @#DEXTM2,R4 ;;;FIND NUMBER OF 8 WORD BLOCS
4662 020652 042704 177770 BIC #177770,R4 ;;;MASK OFF POSSIBLE GARBAGE
4663 020656 160416 SUB R4,@SP ;;;UPDATE COUNT OF BLOCKS
4664 020660 005015 CLR @R5 ;;;SET UP TO CLEAR TABLE IF NO DTE
4665 020662 013704 001352' MOV @#DEXTM1,R4 ;;;PICK UP DTE NUMBER
4666 020666 032704 000004 BIT #4,R4 ;;;DTE HERE?
4667 020672 001422 BEQ 20$ ;;;NO -- DON'T ENTER IN TABLE
4668 020674 000304 SWAB R4 ;;;MAKE MOD 40 (8)
4669 020676 006004 ROR R4
4670 020700 006004 ROR R4
4671 020702 006004 ROR R4
4672 020704 042704 177637 BIC #177637,R4 ;;;MASKOFF JUNK
4673 020710 062704 174400 ADD #174400,R4 ;;;POINT TO FIRST BLOCK OF DTE'S
4674 020714 020437 001360' CMP R4,.PRDTE ;;;PRIMARY DTE?
4675 020720 001002 BNE 10$ ;;;NO -- DON'T SET TABLE POINTER
4676 020722 010537 001354' MOV R5,.PRADR ;;;SAVE TABLE OFFSET
4677 020726 10$:
4678 020726 010415 MOV R4,@R5 ;;;SET DTE ADDRESS IN TABLE
4679 020730 005014 CLR @R4 ;;; [4.1.1105] SET UP DELAY COUNTER
4680 020732 012764 000040 000034 MOV #INTRON,STATD(R4) ;;;YES -- ENABLE INTERRUPT ON IT
4681 020740 20$:
4682 020740 010265 000002 MOV R2,EMYN(R5) ;;;SET THE ADDRESS OF EXAMINE MY AREA FOR N
4683 ;;;MAKE ADDRESS OF THE ADDRESS OF DEPOSIT MY AREA FOR N
4684 020744 010265 000004 MOV R2,DMYN(R5) ;;;STORE IT
4685 020750 163765 001234' 000004 SUB DEPOF,DMYN(R5) ;;;RESTORE ADDRESS FOR EXAMINE OF THIS BLOCK
4686 020756 062702 000001 ADD #PROPNT-FORPRO,R2 ;;;READ POINTER TO HIS COMM AREA
4687 020762 CALL ..SWED ;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
020762 004737 046670' JSR PC,..SWED
4688 020766 103445 BCS 80$ ;;; +++003 E BOX STOPPED
4689 020770 011302 MOV @R3,R2 ;;;FIND THE EXAMINE ADDRESS
4690 020772 063702 001230' ADD COMBSE,R2 ;;;ADD OFFSET TO COMMON AREA
4691 020776 010265 000006 MOV R2,EHSG(R5) ;;;SET EHSG ADDRESS IN TABLE
4692 021002 062702 000020 ADD #FORPRO,R2 ;;;POINT TO HIS FIRST TABLE FOR OTHER PROCESSORS
4693 021006 50$:
4694 021006 CALL ..SWED ;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
021006 004737 046670' JSR PC,..SWED
4695 021012 103433 BCS 80$ ;;; +++003
4696 021014 123713 001232' CMPB PRMEMN,@R3 ;;;SAME PROCESSOR NUMBER?
4697 021020 001411 BEQ 60$ ;;;YES -- FOUND MY ENTRY
4698 021022 013704 001350' MOV @#DEXTM2,R4 ;;;NO -- FIND NEXT ENTRY IN LIST
4699 021026 042704 177770 BIC #177770,R4 ;;;IT IS IN 8 WORD INCREMENTS
4700 021032 006304 ASL R4 ;;;SO IT MUST BE SHIFTED LEFT 3 BITS
4701 021034 006304 ASL R4 ;;;
4702 021036 006304 ASL R4 ;;;
4703 021040 060402 ADD R4,R2 ;;;READ NEXT BLOCK
4704 021042 000761 BR 50$ ;;;AND TRY AGAIN
4705 ;
4706 021044 60$:
4707 021044 010265 000010 MOV R2,EHSM(R5) ;;;STORE EHSM ADDRESS
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 90-2
$DTEON -- TURN THE DTE20 ON
4708 021050 011605 MOV @SP,R5 ;;;DONE ALL BLOCKS??
4709 021052 101260 BHI 16$ ;;; +++002 NO -- TRY NEXT BLOCK
4710 021054 70$:
4711 021054 112737 000005 001410' MOVB #.KALSC,.KPAC+0 ;;; [4.2107] INIT KEEP-ALIVE TIMER
4712 021062 112737 000001 001411' MOVB #1,.KPAC+1 ;;; [4.2107] AND RETRY COUNTER
4713 021070 013737 001376' 001404' MOV KPAL0,OKPAL0 ;;; [4.2107] INIT LAST KEEP ALIVE COUNT
4714 021076 CALL ..DTP1 ;;;START THE PRIMARY PROTOCOL TASK
021076 004737 047036' JSR PC,..DTP1
4715 021102 80$: ;;; +++003
4716 021102 012605 MOV (SP)+,R5 ;;; +++003 RESTORE R5
4717 021104 000137 013460' JMP .DR.NS ;RETURN STATUS IN R0
4718 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 91
$DPMYG -- DEPOSIT INTO MY GENERAL SECTION
4720 .SBTTL $DPMYG -- DEPOSIT INTO MY GENERAL SECTION
4721
4722 ;+
4723 ; $DPMYG -- DEPOSIT INTO MY GENERAL SECTION WITH PROCESSOR N
4724 ;
4725 ; ENTRY CONDITIONS:
4726 ;
4727 ; R2 -- ADDRESS OF PDP-10 LOCATION TO TRANSFER RELATIVE TO MY GEN REGION
4728 ; R3 -- ADDRESS OF PDP-11 CORE ADDRESS TO WRITE FROM
4729 ; CALLING SEQUENCE:
4730 ;
4731 ; JMP $DPMYG
4732 ;
4733 ; EXIT CONDITIONS:
4734 ;
4735 ; R0 -- +1 TRANSFER COMPLETED
4736 ; CC-C CLEAR -- TRANSFER COMPLETED
4737 ;
4738 ; ERROR CONDITIONS:
4739 ;
4740 ; CC-C SET
4741 ;
4742 ; R0 -2 -- E BOX STOPPED
4743 ; R0 -3 -- SECONDARY PROTOCOL IN USE
4744 ;
4745 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4746 ;-
4747
4748 021110 $DPMYG::
4749 021110 005001 CLR R1
4750 021112 DPCMN:
4751 021112 052701 010000 BIS #DEP,R1 ;;;SET DEPOSIT BIT IN ADDRESS WORD
4752 021116 CMEDP:
4753 021116 005737 001012' TST .COMEF+2 ;;; [4.1.1105] PRIMARY PROTOCOL RUNNING?
4754 021122 100006 BPL DPMSEP ;;; [4.1.1105] NO -- ERROR
4755 021124 011000 MOV @R0,R0 ;;;FIND DTE20 ADDRESS
4756 021126 CALL ..SWED ;;; [4.1.1121] WAIT FOR EXAMINE/DEPOSIT
021126 004737 046670' JSR PC,..SWED
4757 021132 103401 BCS DPSEC ;;;ERROR -2
4758 021134 104401 TRAP DR.01
4759 ;
4760 021136 DPSEC:
4761 021136 104776 TRAP DE.02 ;E BOX STOPPED
4762 ;
4763 021140 DPMSEP:
4764 021140 104775 TRAP DE.03 ;SECONDARY PROTOCOL IN USE
4765 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 92
$EXMYG -- EXAMINE MY GENERAL SECTION
4767 .SBTTL $EXMYG -- EXAMINE MY GENERAL SECTION
4768
4769 ;+
4770 ; $EXMYG -- EXAMINE MY (PDP-11) GENERAL SECTION
4771 ;
4772 ; ENTRY CONDITIONS:
4773 ;
4774 ; R2 -- ADDRESS OF A PDP10 ADDRESS TO EXAMINE RELATIVE TO THE BASE OF MY GENERAL SECTION
4775 ; R3 -- ADDRESS OF THE THREE WORD BLOCK TO TRANSFER TO
4776 ;
4777 ; CALLING SEQUENCE:
4778 ;
4779 ; JMP $EXMYG
4780 ;
4781 ; EXIT CONDITIONS:
4782 ;
4783 ; R0 -- +1 SUCCESS
4784 ; CC-C CLEAR -- SUCCESS
4785 ;
4786 ; ERROR CONDITIONS:
4787 ;
4788 ; CC-C SET
4789 ;
4790 ; R0 -2 -- E BOX STOPPED
4791 ; R0 -3 -- SECONDARY PROTOCOL IN USE
4792 ;
4793 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4794 ;-
4795
4796 021142 $EXMYG::
4797 021142 063702 001234' ADD DEPOF,R2 ;ADD DEPOSIT OFFSET TO EXAMINE ADDRESS
4798 021146 EXCMN:
4799 021146 005001 CLR R1 ;;;CLEAR HIGH ORDER 10 ADDRESS (FORCES EXAMINE)
4800 021150 000762 BR CMEDP
4801 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 93
$EXMYN -- EXAMINE MY SECTION FOR PROCESSOR N
4803 .SBTTL $EXMYN -- EXAMINE MY SECTION FOR PROCESSOR N
4804
4805 ;+
4806 ; $EXMYN -- EXAMINE MY SECTION FOR COMMUNICATING WITH PROCESSOR N
4807 ;
4808 ; ENTRY CONDITIONS:
4809 ;
4810 ; R2 -- ADDRESS WORD WITHIN REGION TO EXAMINE
4811 ; R3 -- PDP-11 CORE ADDRESS
4812 ;
4813 ; CALLING SEQUENCE:
4814 ;
4815 ; JMP $EXMYN
4816 ;
4817 ; EXIT CONDITIONS:
4818 ;
4819 ; R0 -- +1 - SUCCESS
4820 ; CC-C CLEAR -- SUCCESS
4821 ;
4822 ; ERROR CONDITIONS:
4823 ;
4824 ; CC-C SET
4825 ; R0 -1 -- ILLEGAL CPU NUMBER
4826 ; R0 -2 -- E BOX STOPPED
4827 ; R0 -3 -- SECONDARY PROTOCOL IN USE
4828 ;
4829 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4830 ;-
4831
4832 021152 $EXMYN::
4833 021152 066002 000002 ADD EMYN(R0),R2 ;SET CALCULATED ADDRESS TO COMM AREA
4834 021156 000773 BR EXCMN ;GO TO COMMON AREA
4835 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 94
$DPMYN -- DEPOSIT INTO MY SECTION FOR COMM WITH PROCESSOR N
4837 .SBTTL $DPMYN -- DEPOSIT INTO MY SECTION FOR COMM WITH PROCESSOR N
4838
4839 ;+
4840 ; $DPMYN -- DEPOSIT INTO MY SECTION FOR COMMUNICATING WITH PROCESSOR N
4841 ;
4842 ; ENTRY CONDITIONS:
4843 ;
4844 ; R2 -- ADDRESS WORD WITHIN REGION TO DEPOSIT
4845 ; R3 -- ADDRESS IN PDP-11 TO TRANSFER FROM
4846 ;
4847 ; CALLING SEQUENCE:
4848 ;
4849 ; JMP $DPMYN
4850 ;
4851 ; EXIT CONDITIONS:
4852 ;
4853 ; R0 -- +1 -SUCCESS
4854 ; CC-C CLEAR - SUCCESS
4855 ;
4856 ; ERROR CONDITIONS:
4857 ;
4858 ; CC-C SET
4859 ; R0 -1 -- ILLEGAL CPU NUMBER
4860 ; R0 -2 -- E BOX STOPPED
4861 ; R0 -3 -- SECONDARY PROTOCOL IN USE
4862 ;
4863 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4864 ;-
4865
4866 021160 $DPMYN::
4867 021160 066002 000004 ADD DMYN(R0),R2 ;FIND CORRECT ADDRESS IN COMMON AREA
4868 021164 000752 BR DPCMN ;DEPOSIT IN COMMON AREA
4869 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 95
$EXHSG -- EXAMINE HIS GENERAL COMMUNICATION SECTION
4871 .SBTTL $EXHSG -- EXAMINE HIS GENERAL COMMUNICATION SECTION
4872
4873 ;+
4874 ; $EXHSG -- EXAMINE HIS GENERAL COMMUNICATION SECTION
4875 ;
4876 ; ENTRY CONDITIONS:
4877 ;
4878 ; R2 -- WORD NUMBER IN HIS GENERAL SECTION
4879 ; R3 -- ADDRESS TO STORE EXAMINE
4880 ;
4881 ; CALLING SEQUENCE:
4882 ;
4883 ; JMP $EXHSG
4884 ;
4885 ; EXIT CONDITIONS:
4886 ;
4887 ; R0 -- +1 - SUCCESS
4888 ; CC-C CLEAR - SUCCESS
4889 ;
4890 ; ERROR CONDITIONS:
4891 ;
4892 ; R0 -1 -- ILLEGAL CPU NUMBER
4893 ; R0 -2 -- EBOX STOPPED
4894 ; R0 -3 -- SECONDARY PROTOCOL IN USE
4895 ;
4896 ; CC-C SET
4897 ;
4898 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4899 ;-
4900
4901 021166 $EXHSG::
4902 021166 066002 000006 ADD EHSG(R0),R2 ;FIND OFFSET TO COMMUNICATIONS AREA
4903 021172 000765 BR EXCMN ;GO TO COMMON EXAMINE
4904 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 96
$EXHSM -- EXAMINE HIS SECTION FOR COMMUNICATING WITH ME
4906 .SBTTL $EXHSM -- EXAMINE HIS SECTION FOR COMMUNICATING WITH ME
4907
4908 ;+
4909 ; $EXHSM -- EXAMINE HIS SECTION FOR COMMUNICATING WITH ME
4910 ;
4911 ; ENTRY CONDITIONS:
4912 ;
4913 ; R2 -- ADDRESS OF WORD WITHIN REGION TO EXAMINE
4914 ; R3 -- ADDRESS TO STORE PDP-10 WORD
4915 ;
4916 ; CALLING SEQUENCE:
4917 ;
4918 ; JMP $EXHSM
4919 ;
4920 ; EXIT CONDITIONS:
4921 ;
4922 ; R0 -- +1 - SUCCESS
4923 ; CC-C CLEAR - SUCCESS
4924 ;
4925 ; ERROR CONDITIONS:
4926 ;
4927 ; CC-C SET
4928 ; R0 -1 -- ILLEGAL CPU NUMBER
4929 ; R0 -2 -- E BOX STOPPED
4930 ; R0 -3 -- SECONDARY PROTOCOL IN USE
4931 ;
4932 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4933 ;-
4934
4935 021174 $EXHSM::
4936 021174 066002 000010 ADD EHSM(R0),R2 ;FIND OFFSET INTO COMM AREA
4937 021200 000762 BR EXCMN ;GO TO EXAMINE
4938 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 97
$KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION
4940 .SBTTL $KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION
4941
4942 ;+
4943 ; $KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION
4944 ;
4945 ; THIS FUNCTION WILL LOAD AND READ THE EBUS.
4946 ; IT DOES A DATA SEND OPERATION IF IT IS A WRITE FUNCTION
4947 ; AND IT ALWAYS RETURNS THE STATUS OF THE DIAGNOSTIC REGISTERS
4948 ; AND EBUS (DEXWD1-3) AFTER EACH FUNCTION.
4949 ;
4950 ; ENTRY CONDITIONS:
4951 ;
4952 ; 00(SP) -- FUNCTION TO BE EXECUTED (BITS 15-9)
4953 ; R3 -- ADDRESS OF FOUR WORD BLOCK TO STORE DIAG1-3
4954 ; R2 -- PDP11 6 WORD BLOCK THE FIRST 3 WORDS ARE
4955 ; USED TO STORE THE CONTENTS IN THE E BUS THE SECOND 3 WORDS
4956 ; ARE USED TO STORE THE RESULTS OF THE DIAGNOSTIC FUNCTION E BUS
4957 ;
4958 ; CALL $KLDFX
4959 ;
4960 ; EXIT CONDITIONS:
4961 ;
4962 ; CC-C CLEAR
4963 ; R0 -- +1 -- SUCCESS
4964 ;
4965 ; ERROR CONDITIONS:
4966 ;
4967 ; -2 -- FUNCTION FAILED
4968 ;
4969 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
4970 ;
4971 ;-
4972
4973 021202 $KLDFR::
4974 021202 011001 MOV (R0),R1 ; [4.1.1137] POINT TO THE DTE-20
4975 021204 012600 MOV (SP)+,R0 ;RESTORE FUNCTION
4976 021206 CALL CESCHK ;RESET DTE-20 IF CLOCK ERROR STOP
021206 004737 021540' JSR PC,CESCHK
4977 021212 042700 000777 BIC #777,R0 ;MASK OFF FUNCTION CODE
4978 021216 052700 000211 BIS #DIKL10!DCOMST!DFUNC,R0 ;SET DIAGNOSTIC FUNCTION START BITS
4979 021222 062702 000006 ADD #6,R2 ;DON'T DO THE E BUS WRITE
4980 021226 KLCST:
4981 021226 010061 000030 MOV R0,DAG1(R1) ;START FUNCTION
4982 021232 012737 003000 001344' MOV #3000,DEXST ;TIME OUT FUNCTION
4983 021240 10$:
4984 021240 032761 000001 000030 BIT #DCOMST,DAG1(R1) ;WAIT FOR THE FUNCTION TO COMPLETE
4985 021246 001404 BEQ 22$
4986 021250 005337 001344' DEC DEXST ;COUNT DOWN
4987 021254 100371 BPL 10$
4988 021256 104776 TRAP DE.02 ;TRAP ERROR
4989 ;
4990 021260 22$:
4991 021260 MTPS DXWD3(R1),(R2)+ ;STORE THE FOUND WORD IN PDP11
021260 016122 000002 MOV DXWD3(R1),(R2)+
4992 021264 MTPS DXWD2(R1),(R2)+
021264 016122 000004 MOV DXWD2(R1),(R2)+
4993 021270 MTPS DXWD1(R1),(R2)+
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 97-1
$KLDFX -- EXECUTE A DIAGNOSTIC FUNCTION
021270 016122 000006 MOV DXWD1(R1),(R2)+
4994 021274 005703 TST R3 ;ANYWHERE TO STORE?
4995 021276 001407 BEQ 20$ ;NO -- FORGET IT
4996 021300 010104 MOV R1,R4 ; YES -- POINT TO THE DTE-20
4997 021302 062704 000030 ADD #DAG1,R4 ; DIAGNOSTIC REGISTERS
4998 021306 MTPS (R4)+,(R3)+ ;STORE DIAGNOSITC REGISTERS
021306 012423 MOV (R4)+,(R3)+
4999 021310 MTPS (R4)+,(R3)+
021310 012423 MOV (R4)+,(R3)+
5000 021312 MTPS (R4)+,(R3)+
021312 012423 MOV (R4)+,(R3)+
5001 021314 MTPS (R4)+,(R3)+
021314 012423 MOV (R4)+,(R3)+
5002 021316 20$:
5003 021316 104401 TRAP DR.01 ;SET OK RETURN TO CALLER
5004 ;
5005 021320 $KLDFX::
5006 021320 011001 MOV (R0),R1 ; [4.1.1137] POINT TO THE DTE-20
5007 021322 012600 MOV (SP)+,R0 ;FIND FUNCTION BITS
5008 021324 CALL CESCHK ;RESET DTE-20 IF CLOCK ERROR STOP
021324 004737 021540' JSR PC,CESCHK
5009 021330 042700 000777 BIC #777,R0 ;CLEAR OFF LOW ORDER FUNCTION CODE
5010 021334 052700 000201 BIS #DCOMST!DFUNC,R0 ;SET DIAG FUNCTION EXECUTE
5011 021340 000410 BR $KLDFC ;ENTER COMMON CODE
5012 ;
5013 021342 $KLDFW::
5014 021342 011001 MOV (R0),R1 ; [4.1.1137] POINT TO THE DTE-20
5015 021344 012600 MOV (SP)+,R0 ;FIND FUNCTION BITS
5016 021346 CALL CESCHK ;RESET DTE-20 IF CLOCK ERROR STOP
021346 004737 021540' JSR PC,CESCHK
5017 021352 042700 000777 BIC #777,R0 ;MASK OFF LOW ORDER FUNCTION CODE
5018 021356 052700 000215 BIS #DCOMST!DSEND!DIKL10!DFUNC,R0
5019 021362 $KLDFC::
5020 021362 MFPS (R2)+,DXWD3(R1) ;STORE THE OUTPUT FOR THE EBUS
021362 012261 000002 MOV (R2)+,DXWD3(R1)
5021 021366 MFPS (R2)+,DXWD2(R1)
021366 012261 000004 MOV (R2)+,DXWD2(R1)
5022 021372 MFPS (R2)+,DXWD1(R1)
021372 012261 000006 MOV (R2)+,DXWD1(R1)
5023 021376 032700 000004 BIT #DSEND,R0 ;DIAG WRITE?
5024 021402 001711 BEQ KLCST ;GO TO COMMON OUTPUT EQOUTINE
5025 021404 10$:
5026 021404 012761 000014 000030 MOV #DIKL10!DSEND,DAG1(R1) ;WRITE
5027 021412 012761 010000 000010 MOV #DEP,TNAD1(R1) ;SIMULATE DEPOSIT
5028 021420 005061 000012 CLR TNAD2(R1)
5029 021424 20$:
5030 021424 010046 MOV R0,-(SP) ;SAVE R0
5031 021426 010100 MOV R1,R0
5032 021430 CALL ..WFED ; [4.1.1121] WAIT FOR DEX DONE
021430 004737 046216' JSR PC,..WFED
5033 021434 012600 MOV (SP)+,R0
5034 021436 000673 BR KLCST
5035 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 98
$PRVDP -- PRIVILEDGED DEPOSIT
5037 .SBTTL $PRVDP -- PRIVILEDGED DEPOSIT
5038
5039 ;+
5040 ; $PRVDP -- PRIVILEDGED DEPOSIT OF THE KL10 MEMORY
5041 ;
5042 ;
5043 ; ENTRY CONDITIONS:
5044 ;
5045 ; R0 -- PROCESSOR TABLE POINTER
5046 ; R1 -- WORD 5 OF DPB
5047 ; R2 -- WORD 3 OF DPB
5048 ; R3 -- WORD 4 OF DPB
5049 ; R4 -- ADDRESS OF DPB
5050 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK
5051 ;
5052 ; CALLING SEQUENCE:
5053 ;
5054 ; JMP $PRVDP
5055 ;
5056 ; ERROR CONDITIONS:
5057 ;
5058 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
5059 ;-
5060
5061 021440 $PRVDP::
5062 021440 MFPS 2(R2),R1 ;SET UP THE INTERNAL ADDRESS 2(PDP11 ADDRESS
021440 016201 000002 MOV 2(R2),R1
5063 021444 052601 BIS (SP)+,R1 ;SET HIGH ORDER OF PRIVILEDGE
5064 021446 052701 010000 BIS #DEP,R1 ;SET PRIVILEDGED DEPOSIT
5065 021452 000405 BR PRVCM
5066 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 99
$PRVEX -- PRIVILEDGED EXAMINE
5068 .SBTTL $PRVEX -- PRIVILEDGED EXAMINE
5069
5070 ;+
5071 ; $PRVEX -- PRIVILEDGED EXAMINE OF THE KL10 MEMORY
5072 ;
5073 ; ENTRY CONDITIONS:
5074 ;
5075 ; R0 -- PROCESSOR TABLE POINTER
5076 ; R1 -- WORD 5 OF DPB
5077 ; R2 -- WORD 3 OF DPB
5078 ; R3 -- WORD 4 OF DPB
5079 ; R4 -- ADDRESS OF DPB
5080 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK
5081 ;
5082 ; CALLING SEQUENCE:
5083 ;
5084 ; JMP $PRVEX
5085 ;
5086 ; ERROR CONDITIONS:
5087 ;
5088 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
5089 ;-
5090
5091 021454 $PRVEX::
5092 021454 MFPS 2(R2),R1 ;SET UP THE INTERNAL ADDRESS 2(PDP11 ADDRESS
021454 016201 000002 MOV 2(R2),R1
5093 021460 052601 BIS (SP)+,R1 ;SET HIGH ORDER OF PRIVILEDGE
5094 021462 042701 010000 BIC #DEP,R1 ;INSURE THAT IT IS AN EXAMINE
5095 021466 PRVCM:
5096 021466 052701 004000 BIS #PRTOFF,R1 ;SET PRIVILEDGED EXAMINE/DEPOSIT
5097 021472 MFPS @R2,R2 ;LOWER ORDER HALF
021472 011202 MOV @R2,R2
5098 021474 011000 MOV (R0),R0 ; [4.1.1137] POINT TO THE DTE-20
5099 021476 CALL ..SWED ; [4.1.1121] START-WAIT FOR EXAMINE/DEPOSIT
021476 004737 046670' JSR PC,..SWED
5100 021502 103401 BCS 20$ ;E BOX STOPPED ERROR
5101 021504 104401 TRAP DR.01 ;MUST BE OK -- RETURN TO USER
5102 ;
5103 021506 20$:
5104 021506 104776 TRAP DE.02 ;RETURN EBOX STOPPED ERROR
5105 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 100
$RWDRG -- READ/WRITE DIAGNOSTIC REGISTER
5107 .SBTTL $RWDRG -- READ/WRITE DIAGNOSTIC REGISTER
5108
5109 ;+
5110 ;
5111 ; $RWDRG -- PRIVILEDGED READ/WRITE OF DIAGNOSTIC DTE20 REGISTERS
5112 ;
5113 ; ENTRY CONDITIONS:
5114 ;
5115 ; R0 -- PROCESSOR TABLE POINTER
5116 ; R1 -- WORD 5 OF DPB
5117 ; R2 -- WORD 3 OF DPB
5118 ; R3 -- WORD 4 OF DPB
5119 ; R4 -- ADDRESS OF DPB
5120 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK
5121 ;
5122 ; CALLING SEQUENCE:
5123 ;
5124 ; JMP $RWDRG
5125 ;
5126 ; ERROR CONDITIONS:
5127 ;
5128 ; REGISTERS SAVED AND RESTORED BY EMT SERVICE
5129 ;-
5130
5131 021510 $RWDRG::
5132 021510 011001 MOV (R0),R1 ; [4.1.1137] POINT TO THE DTE-20
5133 021512 000316 SWAB @SP ;FIND THE REGISTER NUMBER
5134 021514 062601 ADD (SP)+,R1 ;MAKE EXTERNAL PAGE OFFSET
5135 021516 005702 TST R2 ;IS IT WRITE?
5136 021520 001402 BEQ 10$ ;NO -- DON'T SET IT
5137 021522 MFPS @R2,DAG1(R1) ;YES -- SET REGISTER
021522 011261 000030 MOV @R2,DAG1(R1)
5138 021526 10$:
5139 021526 005703 TST R3 ;RETURN ADDRESS SPECIFIED?
5140 021530 001402 BEQ 20$ ;NO -- THEN RETURN ALL OK
5141 021532 MTPS DAG1(R1),@R3 ;SET IN USER SPACE
021532 016113 000030 MOV DAG1(R1),@R3
5142 021536 20$:
5143 021536 104401 TRAP DR.01 ;MUST BE OK -- RETURN TO USER
5144 ;
DMDTE - DTE DIRECTIVES MODULE MACRO M1113 11-NOV-81 11:13 PAGE 101
CESCHK -- CHECK FOR CLOCK ERROR STOP
5146 .SBTTL CESCHK -- CHECK FOR CLOCK ERROR STOP
5147
5148 ;+
5149 ; CESCHK -- CHECK FOR CLOCK ERROR STOP
5150 ;
5151 ; ENTRY CONDITIONS:
5152 ;
5153 ; R1 -- ADDRESS OF CURRENT DTE-20
5154 ;
5155 ; NO REGISTERS MODIFIED
5156 ;-
5157
5158 021540 CESCHK:
5159 021540 005061 000030 CLR DAG1(R1) ;CLEAR ALL FLAGS
5160 021544 032761 004000 000030 BIT #DS04,DAG1(R1) ;CLOCK ERROR STOP UP?
5161 021552 001403 BEQ 10$ ;NO-- JUST RETURN
5162 021554 012761 000100 000032 MOV #DRESET,DAG2(R1) ;YES-- RESET DTE-20
5163 021562 10$:
5164 021562 RETURN ;FROM CESCHK
021562 000207 RTS PC
DMASS - "ASSIGN LUN" DIRECTIV MACRO M1113 11-NOV-81 11:13 PAGE 102
CESCHK -- CHECK FOR CLOCK ERROR STOP
5166 .TITLE DMASS - "ASSIGN LUN" DIRECTIVE MODULE
5167 .SBTTL ASIGN LUN -- COPYRIGHT STATEMENT
5168 021564 IDENT$ 1,0
.IDENT /001000/
5169 ;
5170 ; COPYRIGHT (C) 1975, 1978 BY
5171 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
5172 ;
5173 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
5174 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
5175 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
5176 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
5177 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
5178 ;
5179 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
5180 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
5181 ; CORPORATION.
5182 ;
5183 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5184 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
5185 ;
5186 ; MODULE: "ASSIGN LUN" DIRECTIVE
5187 ;
5188 ; VERSION: 01-00
5189 ;
5190 ; AUTHOR: R. MCLEAN
5191 ;
5192 ; DATE: 19 JUL 75
5193 ;
5194 ;
5195 ; THIS MODULE CONTAINS:
5196 ;
5197 ; 1 -- CODE TO SERVICE THE "ASSIGN LUN" DIRECTIVE.
5198 ;
5199 ; MACRO DEFINITIONS
5200 ;
5201 .MCALL CALL,RETURN
5202 .MCALL MFPI,MFPS
DMASS - "ASSIGN LUN" DIRECTIV MACRO M1113 11-NOV-81 11:13 PAGE 103
DIRECTIVE -- ASSIGN LUN
5204 .SBTTL DIRECTIVE -- ASSIGN LUN
5205 ;+
5206 ; THE "ASSIGN LUN" DIRECTIVE
5207 ;
5208 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO ASSIGN A LOGICAL UNIT NUMBER (LUN)
5209 ; TO A PHYSICAL DEVICE-UNIT.
5210 ;
5211 ; A FOUR-WORD DPB OF THE FOLLOWING FORMAT IS USED TO ASSIGN A LUN
5212 ; TO A PHYSICAL DEVICE:
5213 ;
5214 ; WD. 00 -- DIC (07.) & DPB SIZE (4.),
5215 ; WD. 01 -- LOGICAL UNIT NUMBER,
5216 ; WD. 02 -- PHYSICAL DEVICE NAME,
5217 ; WD. 03 -- PHYSICAL DEVICE UNIT NUMBER.
5218 ;
5219 ; A TWO-WORD DPB OF THE FOLLOWING FORMAT IS USED TO DEASSIGN (ASSIGN
5220 ; TO "NONE") A LUN:
5221 ;
5222 ; WD. 00 -- DIC (07.) & DPB SIZE (2.),
5223 ; WD. 01 -- LOGICAL UNIT NUMBER.
5224 ;
5225 ; THE FOLLOWING STATUS IS RETURNED:
5226 ;
5227 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
5228 ; OF ONE (+1).
5229 ;
5230 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5231 ;
5232 ; -90 -- LUN USAGE INTERLOCKED (VIZ., FILE OPEN),
5233 ; -92 -- INVALID DEVICE AND/OR UNIT,
5234 ; -96 -- INVALID LOGICAL UNIT NUMBER,
5235 ; -98 -- PART OF DPB IS OUT OF ISSUING TASK'S ADDRESS SPACE,
5236 ; -99 -- DIC OR DPB SIZE IS INVALID.
5237 ;-
5238 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5239 ; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
5240 ; STACK, AND R0-R5 SET AS FOLLOWS:
5241 ; R0 -- PC OF EMT INSTRUCTION
5242 ; R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
5243 ; R2 -- DPB SIZE
5244 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
5245 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK')
5246 ;
5247 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
5248 ;
5249 ;
5250 ; LUN ASSIGNMENT -- CHECK FOR VALIDITY OF LUN & DEVICE-UNIT AND ASSIGN
5251 ; IF NOT INTERLOCKED.
5252 ;
5253 021564 .D.ASS::MFPI @R1 ;VALIDATE LUN, AND SETUP TO ACCESS TASK
021564 011146 MOV @R1,-(SP)
5254 ;HEADER, BY PUSHING LUN AND CALLING
5255 ;SUBROUTINE TO CONVERT & VERIFY.
5256 021566 CALL .VCLUN ;IF INVALID LUN, RETURN STS=-96.
021566 004737 015654' JSR PC,.VCLUN
5257 021572 010416 MOV R4,@SP ;PUD ENTRY ADR ON STACK REPLACED BY LUT ADDRESS
5258 ;
DMASS - "ASSIGN LUN" DIRECTIV MACRO M1113 11-NOV-81 11:13 PAGE 103-1
DIRECTIVE -- ASSIGN LUN
5259 021574 005003 CLR R3 ;SET UP INCASE OF DEASSIGNMENT
5260 021576 020227 000002 CMP R2,#2 ;IS THIS LUN DEASSIGNMENT?
5261 021602 001422 BEQ 60$ ;YES -- DEASSIGN LUN
5267 ;
5268 021604 45$: MFPI (R1)+ ;PUSH LUN, AND LEAVE R1 POINTING TO DEV NAME
021604 012146 MOV (R1)+,-(SP)
5269 ;
5270 021606 MFPS (R1)+,R4 ;SET R4 TO DEVICE NAME.
021606 012104 MOV (R1)+,R4
5271 ;R0 CONTAINS DEVICE UNIT NUMBER
5272 021610 MFPS @R1,R0
021610 011100 MOV @R1,R0
5273 ;
5274 ; SCAN PUD FOR DEVICE-UNIT IN R4-R0.
5275 ;
5276 021612 012703 010232' MOV #.PUDBA,R3 ;USE R3 TO SCAN PUD
5277 021616 20$:
5278 021616 020327 011312' CMP R3,#.PUDEA ;END OF PUD?
5279 021622 001001 BNE 30$
5280 021624 104644 TRAP DE.92 ;YES -- DEVICE-UNIT NOT FOUND
5281 021626 021304 30$: CMP @R3,R4 ;NO -- DEVICE NAME MATCH?
5282 021630 001003 BNE 40$ ;NO -- CHECK NEXT ENTRY
5283 021632 126300 000002 CMPB U.UN(R3),R0 ;YES -- UNIT NUMBER MATCH?
5284 021636 001403 BEQ 50$ ;YES -- DEVICE-UNIT FOUND
5285 ;NO -- CHECK NEXT ENTRY
5286 021640 40$:
5287 021640 062703 000050 ADD #U.SZ,R3 ;ADVANCE R3 TO NEXT PUD ENTRY (IF ANY), AND
5288 021644 000764 BR 20$ ;CHECK FOR DEVICE-UNIT MATCH.
5289 ;
5290 ; INDICATED DEVICE-UNIT FOUND IN PUD -- PUD ENTRY ADDRESS IS IN R3
5291 ;
5292 021646 012600 50$: MOV (SP)+,R0 ;SET R0 TO LUN
5293 ;
5294 ; R3 CONTAINS A VALUE (PUD ENTRY ADDRESS OR ZERO) TO BE SET IN THE
5295 ; THE FIRST WORD OF THE LUT PER LUN IN R0.
5296 ;
5297 021650 60$:
5298 021650 006300 ASL R0 ;SET R0 TO FOUR TIMES THE LUN
5299 021652 006300 ASL R0
5300 021654 062600 ADD (SP)+,R0 ;POINT TO LUT AS SAVED
5301 ;
5302 021656 005740 TST -(R0) ;IS LUN LOCKED IN USE?
5303 021660 001401 BEQ 70$
5304 021662 104646 TRAP DE.90 ;YES -- RETURN STS=-90.
5305 021664 010340 70$: MOV R3,-(R0) ;NO -- MAKE ASSIGNMENT, AND
5306 021666 104401 TRAP DR.01 ;RETURN STS=+1
DMGLI - "GET LUN INFO" DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 104
DIRECTIVE -- ASSIGN LUN
5308 .TITLE DMGLI - "GET LUN INFO" DIRECTIVE MODULE
5309 .SBTTL GET LUN INFO -- COPYRIGHT STATEMENT
5310 021670 IDENT$ 1,0
.IDENT /001000/
5311 ;
5312 ; COPYRIGHT (C) 1975, 1978 BY
5313 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
5314 ;
5315 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
5316 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
5317 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
5318 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
5319 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
5320 ;
5321 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
5322 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
5323 ; CORPORATION.
5324 ;
5325 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5326 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
5327 ;
5328 ; MODULE: "GET LUN INFO" DIRECTIVE
5329 ;
5330 ; VERSION: 01-00
5331 ;
5332 ; AUTHOR: R. MCLEAN
5333 ;
5334 ; DATE: 19 JUL 75
5335 ;
5336 ;
5337 ; THIS MODULE CONTAINS:
5338 ;
5339 ; 1 -- CODE TO SERVICE THE "GET LUN INFO" DIRECTIVE.
5340 ;
5341 ; MACROS
5342 ;
5343 .MCALL CALL,RETURN,MTPI,MFPI,MFPS
DMGLI - "GET LUN INFO" DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 105
DIRECTIVE -- GET LUN INFORMATION
5345 .SBTTL DIRECTIVE -- GET LUN INFORMATION
5346 ;+
5347 ; THE "GET LUN INFORMATION" DIRECTIVE
5348 ;
5349 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL A SIX WORD BUFFER
5350 ; WITH INFORMATION ABOUT A PHYSICAL UNIT TO WHICH IT IS ASSIGNED.
5351 ; IF REQUESTS TO THE PHYSICAL UNIT HAVE BEEN RE-DIRECTED TO ANOTHER
5352 ; UNIT, THE INFORMATION RETURNED WILL DESCRIBE THE EFFECTIVE ASSIGNMENT.
5353 ;
5354 ; A THREE WORD DPB OF THE FOLLOWING FORMAT IS USED:
5355 ;
5356 ; WD. 00 -- DIC (05.) & DPB SIZE (3.),
5357 ; WD. 01 -- LUN,
5358 ; WD. 02 -- ADDRESS OF SIX-WORD BUFFER.
5359 ;
5360 ;
5361 ; THE SIX WORD BUFFER IS FILLED WITH THE FIRST SIX WORDS OF THE
5362 ; CORRESPONDING PUD ENTRY AS FOLLOWS:
5363 ;
5364 ; WD. 00 -- NAME OF ASSIGNED DEVICE,
5365 ; WD. 01 -- UNIT NUMBER OF ASSIGNED DEVICE & FLAGS BYTE,
5366 ; WD. 02 -- DEVICE CHARACTERISTICS WD. #1,
5367 ; WD. 03 -- DEVICE CHARACTERISTICS WD. #2,
5368 ; WD. 04 -- DEVICE CHARACTERISTICS WD. #3,
5369 ; WD. 05 -- DEVICE CHARACTERISTICS WD. #4.
5370 ;
5371 ; THE FOLLOWING STATUS IS RETURNED:
5372 ;
5373 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
5374 ; OF ONE (+1).
5375 ;
5376 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5377 ;
5378 ; -05 -- UNASSIGNED LUN,
5379 ;
5380 ; -95 -- INVALID BUFFER SIZE ( 1> OR >U.SZ)
5381 ; -96 -- INVALID LOGICAL UNIT NUMBER,
5382 ; -98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
5383 ; -99 -- DIC OR DPB SIZE IS INVALID.
5384 ;-
5385 ;R0 CONTAINS BUFFER ADDRESS (LAST DPB WORD)
5386 ;
5387 021670 006302 .D.GLI::ASL R2 ;MULTIPLY THE DPB SIZE BY 2
5393 ;
5394 ;
5395 021672 10$: MFPI (R1)+ ;PUSH LUN, AND CONVERT TO PUD ENTRY ADR
021672 012146 MOV (R1)+,-(SP)
5396 021674 CALL .VCLUN ;IF INVALID LUN, RETURN STS=-96.
021674 004737 015654' JSR PC,.VCLUN
5397 021700 012604 MOV (SP)+,R4 ;SET R4 TO PUD ENTRY ADR IF LUN ASSIGNED
5398 021702 001001 BNE 20$ ;IF UN-ASSIGNED LUN, RETURN STS=-05.
5399 021704 104773 TRAP DE.05
5400 ;
5401 ; FILL BUFFER -- IF SEGMENT FAULT, RETURN STS=-98.
5402 ;
5403 021706 20$: MFPS (R1),R0
021706 011100 MOV (R1),R0
DMGLI - "GET LUN INFO" DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 105-1
DIRECTIVE -- GET LUN INFORMATION
5404 021710 012446 30$: MOV (R4)+,-(SP)
5405 021712 MTPI (R0)+
021712 012620 MOV (SP)+,(R0)+
5406 021714 077203 SOB R2,30$
5407 ;
5408 021716 104401 TRAP DR.01 ;RETURN STS=+1
5409 ;
DMGTP - "GET TIME PARAMETERS" MACRO M1113 11-NOV-81 11:13 PAGE 106
DIRECTIVE -- GET LUN INFORMATION
5411 .TITLE DMGTP - "GET TIME PARAMETERS" DIRECTIVE MODULE
5412 .SBTTL GET TIME PARAMETERS -- COPYRIGHT STATEMENT
5413 021720 IDENT$ 1,0
.IDENT /001000/
5414 ;
5415 ; COPYRIGHT (C) 1975, 1978 BY
5416 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
5417 ;
5418 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
5419 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
5420 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
5421 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
5422 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
5423 ;
5424 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
5425 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
5426 ; CORPORATION.
5427 ;
5428 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5429 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
5430 ;
5431 ; MODULE: "GET TIME PARAMETERS" DIRECTIVE
5432 ;
5433 ; VERSION: 01-00
5434 ;
5435 ; AUTHOR: R. MCLEAN
5436 ;
5437 ; DATE: 19 JUL 75
5438 ;
5439 ;
5440 ; THIS MODULE CONTAINS:
5441 ;
5442 ; 1 -- CODE TO SERVICE THE "GET TIME PARAMETERS" DIRECTIVE.
5443 ;
5444 ; MACROS
5445 ;
5446 .MCALL CALL,RETURN,MTPI,MFPS
DMGTP - "GET TIME PARAMETERS" MACRO M1113 11-NOV-81 11:13 PAGE 107
DIRECTIVE -- GET TIME PARAMETERS
5448 .SBTTL DIRECTIVE -- GET TIME PARAMETERS
5449 ;+
5450 ; THE "GET TIME PARAMETERS" DIRECTIVE
5451 ;
5452 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL AN INDICATED EIGHT WORD BUFFER
5453 ; WITH CURRENT TIME PARAMETERS.
5454 ;
5455 ; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
5456 ;
5457 ; WD. 00 -- DIC (59.) & DPB SIZE (2.),
5458 ; WD. 01 -- ADDRESS OF 8-WORD BUFFER.
5459 ;
5460 ; THE 8-WORD BUFFER IS FILLED AS FOLLOWS:
5461 ;
5462 ; WD. 0 -- YEAR (SINCE 1900),
5463 ; WD. 1 -- MONTH OF YEAR,
5464 ; WD. 2 -- DAY OF MONTH,
5465 ; WD. 3 -- HOUR OF DAY,
5466 ; WD. 4 -- MINUTE OF HOUR,
5467 ; WD. 5 -- SECOND OF MINUTE,
5468 ; WD, 6 -- TICK OF SECOND,
5469 ; WD. 7 -- TICKS PER SECOND.
5470 ;
5471 ; THE FOLLOWING STATUS IS RETURNED:
5472 ;
5473 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
5474 ; OF ONE (+1).
5475 ;
5476 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5477 ;
5478 ; -98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
5479 ; -99 -- DIC OR DPB SIZE IS INVALID.
5480 ;
5481 021720 013746 001154' .D.GTP::MOV .TKPS,-(SP) ;PUSH TICKS-PER-SECOND
5482 021724 010104 MOV R1,R4 ;SAVE DPB POINTER
5483 021726 013700 001150' MOV .SSM,R0 ;FIND HOURS
5484 021732 012701 003410 MOV #60.*30.,R1
5485 021736 CALL $DIV ;DIVIDE
021736 004737 000000G JSR PC,$DIV
5486 021742 010003 MOV R0,R3 ;SAVE ANSWER
5487 021744 010100 MOV R1,R0 ;SET UP REMAINDER FOR NEXT DIVIDE
5488 021746 012701 000036 MOV #30.,R1
5489 021752 CALL $DIV ;FIND MIN
021752 004737 000000G JSR PC,$DIV
5490 021756 005046 CLR -(SP) ;TICKS NOT RETURNED
5491 021760 006301 ASL R1
5492 021762 010146 MOV R1,-(SP) ;SAVE SECONDS
5493 021764 010046 MOV R0,-(SP)
5494 021766 010346 MOV R3,-(SP) ;HOURS
5495 021770 005046 CLR -(SP)
5496 021772 113716 001144' MOVB .DAY,@SP
5497 021776 005216 INC @SP
5498 022000 005046 CLR -(SP)
5499 022002 113716 001145' MOVB .MON,@SP
5500 022006 005216 INC @SP
5501 022010 013746 001142' MOV .YEAR,-(SP)
5502 022014 162716 003554 SUB #1900.,@SP
DMGTP - "GET TIME PARAMETERS" MACRO M1113 11-NOV-81 11:13 PAGE 107-1
DIRECTIVE -- GET TIME PARAMETERS
5503 ;
5504 ;
5505 ; MOVE TIME PARAMETERS FROM KERNEL STACK TO 8-WORD BUFFER IN USER SPACE
5506 ;
5507 ;
5508 022020 012703 000010 MOV #8.,R3
5509 ;
5510 022024 MFPS (R4),R4 ;FIND BUFFER ADDRESS
022024 011404 MOV (R4),R4
5511 022026 10$:
5512 022026 MTPI (R4)+ ;MOVE WORD
022026 012624 MOV (SP)+,(R4)+
5513 022030 077302 SOB R3,10$ ;LOOP 8 TIMES
5514 ;
5515 022032 104401 TRAP DR.01 ;RETURN STS=+1
5516 ;
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 108
DIRECTIVE -- GET TIME PARAMETERS
5518 .TITLE DMSED - SIGNIFICANT EVENT DIRECTIVES MODULE
5519 .SBTTL SIGNIFICANT EVENT DIRECTIVES -- COPYRIGHT STATEMENT
5520 022034 IDENT$ 1,0
.IDENT /001000/
5521 ;
5522 ; COPYRIGHT (C) 1975, 1978 BY
5523 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
5524 ;
5525 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
5526 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
5527 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
5528 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
5529 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
5530 ;
5531 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
5532 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
5533 ; CORPORATION.
5534 ;
5535 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5536 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
5537 ;
5538 ; MODULE: SIGNIFICANT EVENT DIRECTIVES
5539 ;
5540 ; VERSION: 01-00
5541 ;
5542 ; AUTHOR: R. MCLEAN
5543 ;
5544 ; DATE: 19 MAR 75
5545 ;
5546 ;
5547 ; THIS MODULE CONTAINS:
5548 ;
5549 ; 1 -- CODE TO SERVICE THE "WAITFOR SINGLE EVENT FLAG" DIRECTIVE,
5550 ; 2 -- CODE TO SERVICE THE "WAITFOR LOGICAL 'OR' OF FLAGS" DIRECTIVE,
5551 ; 3 -- CODE TO SERVICE THE "WAIT FOR NEXT SIGNIFICANT EVENT" DIRECTIVE.
5552 ; 4 -- CODE TO SERVICE THE "CLEAR EVENT FLAG" DIRECTIVE,
5553 ; 5 -- CODE TO SERVICE THE "SET EVENT FLAG" DIRECTIVE,
5554 ; 6 -- CODE TO SERVICE THE "DECLARE SIG EVENT" DIRECTIVE,
5555 ; 7 -- CODE TO SERVICE THE "READ EVENT FLAGS" DIRECTIVE
5556 ;
5557 ; MACROS
5558
5559 .MCALL CALL,RETURN,MTPS,MFPS,MFPI,MTPI
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 109
DIRECTIVE -- CLEAR EVENT FLAG
5561 .SBTTL DIRECTIVE -- CLEAR EVENT FLAG
5562 ;+
5563 ; THE "CLEAR EVENT FLAG" DIRECTIVE
5564 ;
5565 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO CLEAR AND INDICATE
5566 ; EVENT FLAG AND REPORT THE FLAG'S POLARITY BEFORE CLEARING.
5567 ;
5568 ; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED;
5569 ;
5570 ; WD. 00 -- DIC (31.) & DPB SIZE (2.)
5571 ; WD. 01 -- EVENT FLAG NUMBER (EFN)
5572 ;
5573 ; THE FOLLOWING STATUS IS RETURNED:
5574 ;
5575 ;
5576 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS OF:
5577 ;
5578 ; R0 -- +0 -- FLAG WAS ALREADY RESET,
5579 ; R0 -- +2 -- FLAG WAS SET.
5580 ;
5581 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5582 ;
5583 ; R0 -- -97 -- EFN>64 OR EFN<1,
5584 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
5585 ;-
5586 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5587 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
5588 ; STACK, AND R0-R5 SET AS FOLLOWS:
5589 ; R0 -- PC OF EMT INSTRUCTION
5590 ; R1 -- WORD FOLLOWING THE DIC & SIZE
5591 ; R2 -- SIZE OF DPB (IN WORDS),
5592 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE )
5593 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
5594 ;
5595 ;
5596 ;
5597 022034 .D.CEF::CALL .CEFN ;CONVERT EFN TO: (1) FLAG WORD ADDRESS
022034 004737 043062' JSR PC,.CEFN
5598 ;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
5599 ;POINTING TO EFN). IF EFN<0, OR EFN>64.,
5600 ;RETURN STS=-97. IF EFN=0 (NO EVENT FLAG
5601 ;SPECIFIED), RETURN WITH R2=R3=00.
5602 ;CONDITION CODES ARE SET PER "TST R3".
5603 ;
5604 ;EVENT FLAG SPECIFIED?
5605 022040 001443 BEQ SEX97 ;NO -- RETURN STS=-97
5606 022042 030312 BIT R3,@R2 ;YES -- IS FLAG CLEARED?
5607 022044 001410 BEQ SEXP0 ;YES -- RETURN STS=+0
5608 022046 040312 BIC R3,@R2 ;NO -- CLEAR FLAG & RETURN STS=+2
5609 022050 104402 SEXP2: TRAP DR.02 ;COMMON RETURN -- STS=+2
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 110
DIRECTIVE -- SET EVENT FLAG
5611 .SBTTL DIRECTIVE -- SET EVENT FLAG
5612 ;+
5613 ; THE "SET EVENT FLAG" DIRECTIVE
5614 ;
5615 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SET AND INDICATED EVENT FLAG
5616 ; AND REPORT THE FLAG'S POLARITY BEFORE SETTING.
5617 ;
5618 ; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
5619 ;
5620 ; WD. 00 -- DIC (33.) & DPB SIZE (2.),
5621 ; WD. 01 -- EVENT FLAG NUMBER (EFN).
5622 ;
5623 ; THE FOLLOWING STATUS IS RETURNED:
5624 ;
5625 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS OF:
5626 ;
5627 ; R0 -- +0 -- FLAG WAS CLEARED,
5628 ; R0 --+2 -- FLAG WAS SET.
5629 ;
5630 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5631 ;
5632 ; R0 -- -97 -- EFN>64 OR EFN<1,
5633 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
5634 ;-
5635 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5636 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
5637 ; STACK, AND R0-R5 SET AS FOLLOWS:
5638 ; R0 -- PC OF EMT INSTRUCTION
5639 ; R1 -- WORD FOLLOWING DIC % SIZE
5640 ; R2 -- DPB SIZE
5641 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
5642 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
5643 ;
5644 ;
5645 ;R1 IS POINTING TO EFN IN DPB
5646 ;
5647 022052 .D.SEF::CALL .CEFN ;CONVERT EFN TO: (1) FLAG WORD ADDRESS
022052 004737 043062' JSR PC,.CEFN
5648 ;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
5649 ;POINTING TO EFN). IF EFN<0, OR EFN>64.,
5650 ;RETURN STS=-97. IF EFN=0 (NO EVENT FLAG
5651 ;SPECIFIED), RETURN WITH R2=R3=00.
5652 ;CONDITION CODES ARE SET PER "TST R3".
5653 ;
5654 ;EVENT FLAG SPECIFIED?
5655 022056 001434 BEQ SEX97 ;NO -- RETURN STS=-97
5656 022060 030312 SEXCM: BIT R3,@R2 ;YES -- IS FLAG ALREADY SET?
5657 022062 001372 BNE SEXP2 ;YES -- RETURN STS=+2
5658 022064 050312 BIS R3,@R2 ;NO -- SET FLAG & RETURN STS=+0
5659 022066 104400 SEXP0: TRAP DR.00 ;COMMON RETURN -- STS=+0
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 111
DIRECTIVE -- DECLARE SIGNIFICANT EVENT
5661 .SBTTL DIRECTIVE -- DECLARE SIGNIFICANT EVENT
5662 ;+
5663 ; THE "DECLARE SIGNIFICANT EVENT" DIRECTIVE
5664 ;
5665 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO DECLARE A SIGNIFICANT EVENT
5666 ; AND OPTIONALLY SET AN EVENT FLAG & AND REPORT ITS POLARITY BEFORE
5667 ; IT WAS SET.
5668 ;
5669 ; A TWO WORD DBP OF THE FOLLOWING FORMAT IS USED TO (1) READ AN EVENT
5670 ; FLAG, (2) SET THE EVENT FLAG, (3) DECLARE A SIGNIFICANT EVENT, AND
5671 ; (4) REPORT THE PRE-EVENT FLAG POLARITY:
5672 ;
5673 ; WD. 00 -- DIC (35.) & DPB SIZE (2.),
5674 ; WD. 01 -- EVENT FLAG NUMBER (EFN).
5675 ;
5676 ; A ONE WORD DPB OF THE FOLLOWING FORMAT IS USED TO (1) DECLARE A
5677 ; SIGNIFICANT EVENT:
5678 ;
5679 ; WD. 00 -- DIC (07.) & DPB SIZE (2.).
5680 ; WD. 01 -- NO EVENT FLAG SPECIFIED
5681 ;
5682 ; THE FOLLOWING STATUS IS RETURNED:
5683 ;
5684 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS OF:
5685 ;
5686 ; R0 -- +1 -- NO EVENT FLAG SPECIFIED,
5687 ; R0 -- +0 -- SPECIFIED FLAG WAS CLEARED,
5688 ; R0 --+2 -- SPECIFIED FLAG WAS SET.
5689 ;
5690 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5691 ;
5692 ; R0 -- -97 -- EFN<1 OR EFN>64.,
5693 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
5694 ;-
5695 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5696 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
5697 ; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
5698 ; R0 -- PC OF EMT INSTRUCTION
5699 ; R1 -- WORD FOLLOWING DIC & SIZE
5700 ; R2 -- DPB SIZE
5701 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
5702 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
5703 ;
5704 ;
5705 ;
5706 022070 .D.DSE::CALL ..DSEV ;SET SIGNIFICANT EVENT FLAG
022070 004737 044026' JSR PC,..DSEV
5707 022074 005302 DEC R2
5708 022076 001401 BEQ 5$
5709 022100 104400 TRAP DR.00
5710 022102 5$: CALL .CEFN ;YES -- R1 IS POINTING TO EFN IN DPB.
022102 004737 043062' JSR PC,.CEFN
5711 ;CONVERT EFN TO: (1) FLAG WORD ADDRESS
5712 ;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
5713 ;POINTING TO EFN). IF EFN<0, OR EFN>64.,
5714 ;RETURN STS=-97. IF EFN=0 (NO EVENT FLAG
5715 ;SPECIFIED), RETURN WITH R2=R3=00.
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 111-1
DIRECTIVE -- DECLARE SIGNIFICANT EVENT
5716 ;CONDITION CODES ARE SET PER "TST R3".
5717 ;
5718 ;EVENT FLAG SPECIFIED?
5719 022106 001417 BEQ SEXP1 ;NO -- RETURN STS=1.
5720 022110 000763 BR SEXCM ;GO TO COMMON TEST
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 112
DIRECTIVE -- READ EVENT FLAG
5722 .SBTTL DIRECTIVE -- READ EVENT FLAG
5723 ;+
5724 ; THE "READ EVENT FLAG" DIRECTIVE
5725 ;
5726 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO READ AND INDICATED EVENT FLAG.
5727 ;
5728 ; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
5729 ;
5730 ; WD. 00 -- DIC (37.) & DPB SIZE (2.),
5731 ; WD. 01 -- EVENT FLAG NUMBER (EFN).
5732 ;
5733 ; THE FOLLOWING STATUS IS RETURNED:
5734 ;
5735 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS OF:
5736 ;
5737 ; R0 -- +0 -- FLAG WAS CLEARED,
5738 ; R0 -- +2 -- FLAG WAS SET.
5739 ;
5740 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5741 ;
5742 ; R0 -- -97 -- EFN>64 OR EFN<1,
5743 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
5744 ;-
5745 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5746 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
5747 ; STACK, AND R0-R5 SET AS FOLLOWS:
5748 ; R0 -- PC OF EMT INSTRUCTION
5749 ; R1 -- WORD FOLLOWING DIC & SIZE
5750 ; R2 -- DPB SIZE
5751 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
5752 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
5753 ;
5754 ;
5755 ;R1 IS POINTING TO EFN IN DPB.
5756 ;
5757 022112 .D.REF::CALL .CEFN ;CONVERT EFN TO: (1) FLAG WORD ADDRESS
022112 004737 043062' JSR PC,.CEFN
5758 ;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
5759 ;POINTING TO EFN). IF EFN<0, OR EFN>64.,
5760 ;RETURN STS=-97. IF EFN=0 (NO EVENT FLAG
5761 ;SPECIFIED), RETURN WITH R2=R3=00.
5762 ;CONDITION CODES ARE SET PER "TST R3".
5763 ;
5764 ;EVENT FLAG SPECIFIED?
5765 022116 001414 BEQ SEX97 ;NO -- RETURN STS=-97
5766 022120 030312 BIT R3,@R2 ;YES -- IS FLAG SET?
5767 022122 001352 BNE SEXP2 ;YES -- RETURN STS=+2
5768 022124 104400 TRAP DR.00 ;NO -- RETURN STS=+0
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 113
DIRECTIVE -- READ ALL EVENT FLAGS
5770 .SBTTL DIRECTIVE -- READ ALL EVENT FLAGS
5771 ;+
5772 ; THE "READ ALL FLAGS" DIRECTIVE
5773 ;
5774 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO READ ALL SIXTY-FOUR
5775 ; EVENT FLAGS FOR THE ISSUING TASK AND RECORD THEIR POLARITIES
5776 ; IN A SIXTY-FOUR BIT (4-WORD) BUFFER.
5777 ;
5778 ; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
5779 ;
5780 ; WD. 00 -- DIC (39.) & DPB SIZE (2.),
5781 ; WD. 01 -- ADDRESS OF 64-BIT BUFFER.
5782 ;
5783 ; THE FOLLOWING STATUS IS RETURNED:
5784 ;
5785 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
5786 ; OF ONE (+1).
5787 ;
5788 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5789 ;
5790 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
5791 ;-
5792 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5793 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
5794 ; STACK, AND R0-R5 SET AS FOLLOWS:
5795 ; R0 -- PC OF EMT INSTRUCTION
5796 ; R1 -- WORD FOLLOWING DIC & SIZE
5797 ; R2 -- DPB SIZE
5798 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
5799 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
5800 ;
5801 ;
5802 ; FILL FOUR WORD BUFFER
5803 ;
5804 022126 .D.RAF::MTPS A.EF+0(R5),(R1)+ ;FLAGS 1-16 TO BUF+0
022126 016521 000020 MOV A.EF+0(R5),(R1)+
5805 022132 MTPS A.EF+2(R5),(R1)+ ;FLAGS 17-32 TO BUF+2
022132 016521 000022 MOV A.EF+2(R5),(R1)+
5806 022136 MTPS .COMEF+0,(R1)+ ;FLAGS 33-48 TO BUF+4
022136 013721 001010' MOV .COMEF+0,(R1)+
5807 022142 MTPS .COMEF+2,(R1)+ ;FLAGS 49-64 TO BUF+6
022142 013721 001012' MOV .COMEF+2,(R1)+
5808 ;
5809 022146 104401 SEXP1: TRAP DR.01 ;RETURN STS=+1
5810 ;
5811 022150 104637 SEX97: TRAP DE.97
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 114
DIRECTIVE -- WAITFOR SINGLE EVENT FLAG
5813 .SBTTL DIRECTIVE -- WAITFOR SINGLE EVENT FLAG
5814 ;+
5815 ; THE "WAIT FOR SINGLE EVENT FLAG" DIRECTIVE
5816 ;
5817 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SUSPEND THE EXECUTION OF THE
5818 ; ISSUING TASK UNTIL AN INDICATED EVENT FLAG IS SET. IF THE FLAG IS SET
5819 ; AT ISSUANCE, TASK EXECUTION IS EFFECTIVELY NOT SUSPENDED. (ACTUALLY, THE
5820 ; TASK IS ALWAYS SUSPENDED, BUT R0 IS LEFT POINTING TO THE ISSUING TASK'S
5821 ; ATL NODE; AND THEREFORE, A CHECK IS ALWAYS MADE BY THE ATL SCAN ROUTINE.)
5822 ;
5823 ; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
5824 ;
5825 ; WD. 00 -- DIC (41.) & DPB SIZE (2.),
5826 ; WD. 01 -- EVENT FLAG NUMBER (EFN).
5827 ;
5828 ; THE FOLLOWING STATUS IS RETURNED:
5829 ;
5830 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
5831 ; OF ONE (+1).
5832 ;
5833 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5834 ;
5835 ; R0 -- -97 -- INVALID EVENT FLAG NUMBER (<1 OR >64.),
5836 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
5837 ;-
5838 ;
5839 ;
5840 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5841 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
5842 ; STACK, AND R0-R5 SET AS FOLLOWS:
5843 ; R0 -- PC OF EMT INSTRUCTION
5844 ; R1 -- WORD FOLLOWING DIC & SIZE
5845 ; R2 -- DPB SIZE
5846 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
5847 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
5848 ;
5849 ;
5850 022152 011103 .D.WFS::MOV @R1,R3 ;SET R3 TO EFN
5851 ;IS AN EVENT FLAG SPECIFIED (NON-ZERO EFN)?
5852 022154 .D.WFO:: ;SPECIAL ENTRY POINT FOR QIO AND WAIT
5853 022154 001775 BEQ SEX97 ;NO -- RETURN STS=-97.
5854 022156 020327 000100 CMP R3,#64. ;YES -- IS EFN IN RANGE: 0-64.?
5855 022162 101372 BHI SEX97 ;NO -- RETURN STS=-97.
5856 ;
5857 022164 005303 DEC R3 ;YES -- CONVERT EFN TO FLAG SET NUMBER (R2),
5858 022166 005002 CLR R2 ;AND FLAG MASK (R1)
5859 022170 CALL DIV216 ;DIVIDE R2 BY 16.
022170 004737 044036' JSR PC,DIV216
5860 022174 012701 000001 MOV #1,R1
5861 022200 005303 10$: DEC R3 ;DO AN ASH R3,R1
5862 022202 100402 BMI 20$
5863 022204 006301 ASL R1
5864 022206 000774 BR 10$
5865 022210 20$:
5866 ;
5867 ;
5868 022210 006302 ASL R2 ;CONVERT SET NUMBER (0,1,2,3) TO TASK
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 114-1
DIRECTIVE -- WAITFOR SINGLE EVENT FLAG
5869 022212 062702 000014 ADD #TS.WF0,R2 ;STATUS FOR ATL NODE.
5870 ;
5871 022216 010165 000024 MOV R1,A.FM+0(R5) ;SET MASK AND STATUS IN ATL NODE
5872 022222 110265 000014 MOVB R2,A.TS(R5)
5873 ;
5874 022226 104401 TRAP DR.01 ;RETURN STS=+1
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 115
DIRECTIVE -- WAITFOR LOGICAL 'OR' OF FLAGS
5876 .SBTTL DIRECTIVE -- WAITFOR LOGICAL 'OR' OF FLAGS
5877 ;+
5878 ; THE "WAITFOR LOGICAL 'OR' OF FLAGS" DIRECTIVE
5879 ;
5880 ;
5881 ; IF THE INDICATED CONDITION IS MET AT ISSUANCE, TASK EXECUTION IS
5882 ; EFFECTIVELY NOT SUSPENDED. (ACTUALLY, THE TASK IS ALWAYS SUSPENDED,
5883 ;
5884 ;
5885 ; A THREE WORD DPB OF THE FOLLOWING FORMAT IS USED TO WAIT FOR EVENT FLAGS OF A GIVEN SET
5886 ;
5887 ; WD. 00 -- DIC (43.) & DPB SIZE (3.)
5888 ; WD. 01 -- SET NUMBER
5889 ; WD. 02 -- FLAGS MASK FOR THIS SET
5890 ;
5891 ;
5892 ; A FIVE-WORD DPB OF THE FOLLOWING FORMAT IS USED TO WAITFOR EVENT FLAGS
5893 ; OF SET FOUR:
5894 ;
5895 ; WD. 00 -- DIC (15.) & DPB SIZE (5.),
5896 ; WD. 01 -- MASK WORD FOR FLAGS 1-16,
5897 ; WD. 02 -- MASK WORD FOR FLAGS 17-32,
5898 ; WD. 03 -- MASK WORD FOR FLAGS 33-48,
5899 ; WD. 04 -- MASK WORD FOR FLAGS 49-64.
5900 ;
5901 ; MASK WORD BITS FROM RIGHT-TO-LEFT REPRESENT INCREASING EVENT FLAG
5902 ; NUMBERS, AND A SET MASK WORD BIT INDICATES "WAITFOR THE CORRESPONDING
5903 ; EVENT FLAG".
5904 ;
5905 ; THE FOLLOWING STATUS IS RETURNED.
5906 ;
5907 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
5908 ; OF ONE (+1).
5909 ;
5910 ; CC-C SET TO INDICATE REJECTION, AND DIRECTIVE STATUS OF:
5911 ;
5912 ; R0 -- -97 -- NO EVENT FLAG SPECIFIED IN MASK WORD(S),
5913 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
5914 ;-
5915 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5916 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
5917 ; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
5918 ; R0 -- PC OF EMT INSTRUCTION
5919 ; R1 -- WORD FOLLOWING DIC & SIZE
5920 ; R2 -- DPB SIZE
5921 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
5922 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
5923 ;
5924 ;
5925 ;
5926 ; EVEN FLAG SET IS FOUR. I.E., WAIT FOR ANY OF SIXTY-FOUR EVENT FLAGS.
5927 ;
5928 ; SET 64-BIT FLAGS MASK IN ATL NODE AND ACCUMULATE 'OR' OF MASK WORDS
5929 ; IN R2. THE 64-BIT MASK IS SET BY MOVING FOUR WORDS FROM THE DPB TO
5930 ; THE ATL NODE.
5931 ;
5932 ; IF NO FLAG INDICATED (ALL 64 BITS ARE ZERO), RETURN STS=-97.
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 115-1
DIRECTIVE -- WAITFOR LOGICAL 'OR' OF FLAGS
5933 ;
5934 022230 022702 000005 .D.WFL::CMP #5,R2 ;THREE OR 5 WORD DPB?
5935 022234 001020 BNE 10$ ;THREE WORD DPB (WAIT FOR ONE SET)
5936 022236 010502 MOV R5,R2 ;SETUP R2 TO FILL ATL NODE
5937 022240 062702 000024 ADD #A.FM,R2
5938 022244 MFPS (R1)+,@R2 ;MASK FOR FLAGS 1-16
022244 012112 MOV (R1)+,@R2
5939 022246 012203 MOV (R2)+,R3
5940 ;MASK FOR FLAGS 17-32
5941 022250 MFPS (R1)+,@R2
022250 012112 MOV (R1)+,@R2
5942 022252 052203 BIS (R2)+,R3
5943 ;MASK FOR FLAGS 33-48
5944 022254 MFPS (R1)+,@R2
022254 012112 MOV (R1)+,@R2
5945 022256 052203 BIS (R2)+,R3
5946 022260 MFPS @R1,@R2 ;MASK FOR FLAGS 49-64 (LAST DPB WORD)
022260 011112 MOV @R1,@R2
5947 022262 051203 BIS @R2,R3
5948 022264 001731 BEQ SEX97 ;RETURN STS=-97 IF NO FLAG INDICATED
5949 ;
5950 022266 112765 000024 000014 MOVB #TS.WF4,A.TS(R5) ;SET WAITFOR-SET-FOUR TASK STATUS
5951 ;
5952 022274 104401 TRAP DR.01 ;RETURN DIRECTIVE STS=+1
5953 ;
5954 022276 10$: MFPS (R1)+,R2 ;FIND THE SET NUMBER
022276 012102 MOV (R1)+,R2
5955 022300 001415 BEQ 30$ ;ILLEGAL SET NUMBER
5956 022302 MFPS (R1)+,R3 ;FIND THE FLAGS TO WAIT FOR
022302 012103 MOV (R1)+,R3
5957 022304 020227 000004 CMP R2,#4 ;LEGAL SET NUMBER?
5958 022310 101011 BHI 30$ ;NO -- ILLEGAL SET TO WAIT FOR
5959 022312 005302 DEC R2 ;DECREMENT SO SET1 IS 0
5960 022314 006302 ASL R2 ;MULTIPLY BY 2
5961 022316 062702 000014 ADD #TS.WF0,R2 ;POINT TO THE CORRECT ATL STATUS
5962 022322 110265 000014 MOVB R2,A.TS(R5) ;SET THE CORRECT STATUS IN THE ATL NODE
5963 022326 010365 000024 MOV R3,A.FM(R5) ;SET UP THE FLAGS MASK WORD FOR THESE EVENT FLAGS
5964 022332 104401 TRAP DR.01 ;RETURN STS +1
5965 ;
5966 022334 104636 30$: TRAP DE.98 ;ILLEGAL SET NUMBER
DMSED - SIGNIFICANT EVENT DIR MACRO M1113 11-NOV-81 11:13 PAGE 116
DIRECTIVE -- WAITFOR NEXT SIGNIFICANT EVENT
5968 .SBTTL DIRECTIVE -- WAITFOR NEXT SIGNIFICANT EVENT
5969 ;+
5970 ; THE "WAIT FOR NEXT SIGNIFICANT EVENT" DIRECTIVE
5971 ;
5972 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO SUSPEND THE EXECUTION OF THE
5973 ; ISSUING TASK UNTIL THE NEXT SIGNIFICANT EVENT HAS BEEN DECLARED.
5974 ;
5975 ; A ONE WORD DPB OF THE FOLLOWING FORMAT IS USED:
5976 ;
5977 ; WD. 00 -- DIC (49.) & DPB SIZE (1.).
5978 ;
5979 ; THE FOLLOWING STATUS IS RETURNED:
5980 ;
5981 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
5982 ; OF ONE (+1).
5983 ;
5984 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
5985 ;
5986 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
5987 ;-
5988 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
5989 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
5990 ; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
5991 ; R0 -- PC OF EMT INSTRUCTION
5992 ; R1 -- WORD FOLLOWING DIC & SIZE
5993 ; R2 -- DPB SIZE
5994 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
5995 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
5996 ;
5997 ;
5998 022336 011505 .D.WSE::MOV @R5,R5 ;ADVANCE R5 (ATL NODE POINTER)
5999 022340 012737 000001 001016' MOV #EV.SE,.SEWFL
6000 022346 104401 TRAP DR.01 ;RETURN STS=+1.
6001 ;
DMMKT - "MARK TIME" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 117
DIRECTIVE -- WAITFOR NEXT SIGNIFICANT EVENT
6003 .TITLE DMMKT - "MARK TIME" DIRECTIVE MODULE
6004 .SBTTL MARK TIME -- COPYRIGHT STATEMENT
6005 022350 IDENT$ 1,0
.IDENT /001000/
6006 ;
6007 ; COPYRIGHT (C) 1975, 1978 BY
6008 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6009 ;
6010 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
6011 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
6012 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
6013 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
6014 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
6015 ;
6016 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
6017 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
6018 ; CORPORATION.
6019 ;
6020 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6021 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
6022 ;
6023 ; MODULE: "MARK TIME" DIRECTIVE
6024 ;
6025 ; VERSION: 01-00
6026 ;
6027 ; AUTHOR: R. MCLEAN
6028 ;
6029 ; DATE: 19 APR 75
6030 ;
6031 ;
6032 ; THIS MODULE CONTAINS:
6033 ;
6034 ; 1 -- CODE TO SERVICE THE "MARK TIME" DIRECTIVE.
6035 ;
6036 ; MACROS
6037
6038 .MCALL CALL,RETURN,MFPI,MTPI,MTPS,MFPS
DMMKT - "MARK TIME" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 118
DIRECTIVE -- MARK TIME
6040 .SBTTL DIRECTIVE -- MARK TIME
6041 ;+
6042 ; THE "MARK TIME" DIRECTIVE
6043 ;
6044 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO DECLARE A SIGNIFICANT EVENT
6045 ; IN AN INDICATED TIME INTERVAL FROM ISSUANCE.
6046 ;
6047 ; IF AN EVENT FLAG IS SPECIFIED, IT IS CLEARED AT ISSUANCE AND SET
6048 ; AT THE TIME OF THE SIGNIFICANT EVENT.
6049 ;
6050 ;
6051 ; IF AN EVENT FLAG NUMBER
6052 ; IS SPECIFIED, THE SIGNIFICANT EVENT WILL STILL OCCUR AFTER
6053 ; THE INDICATED TIME INTERVAL.
6054 ;
6055 ; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
6056 ;
6057 ; WD. 00 -- DIC (23.) & DPB SIZE (5.),
6058 ; WD. 01 -- EVENT FLAG NUMBER (EFN),
6059 ; WD. 02 -- TIME INTERVAL MAGNITUDE, ( IN TICS)
6060 ; WD. 03 -- RESCHEDULE INTERVAL (IN TICS)
6061 ; WD. 04 -- AST TRAP ADDRESS
6062 ;
6063 ; THE FOLLOWING STATUS IS RETURNED:
6064 ;
6065 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
6066 ; OF ONE (+1).
6067 ;
6068 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
6069 ;
6070 ; -01 -- UNAVAILABLE ENTRY (FOR CLOCK LIST),
6071 ;
6072 ; -97 -- INVALID EVENT FLAG NUMBER (EFN<0 OR EFN>64),
6073 ; -99 -- DIC OR DPB SIZE IS INVALID.
6074 ;-
6075 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
6076 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
6077 ; STACK, AND R0-R5 SET AS FOLLOWS:
6078 ;
6079 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
6080 ;
6081 ;
6082 ;R1 IS POINTING TO EFN IN DPB
6083 ;
6084 ;
6085 022350 .D.MKT::CALL .CEFN ;CONVERT EFN TO: (1) FLAG WORD ADDRESS
022350 004737 043062' JSR PC,.CEFN
6086 ;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
6087 ;POINTING TO EFN). IF EFN<0, OR EFN>64.,
6088 ;RETURN STS=-97. IF EFN=0 (NO EVENT FLAG
6089 ;SPECIFIED), RETURN WITH R2=R3=00.
6090 ;CONDITION CODES ARE SET PER "TST R3".
6091 ;
6092 022354 001001 BNE 10$ ;ALL OK WITH EFN
6093 022356 104637 TRAP DE.97 ;RETURN STS=-97
6094 022360 062701 000004 10$: ADD #4,R1 ;R1 IS POINTING TO THE EFN, ADVANCE TO THE
6095 ;FIRST WORD (MAGNITUDE) OF TIME INTERVAL.
DMMKT - "MARK TIME" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 118-1
DIRECTIVE -- MARK TIME
6096 ;
6097 022364 010246 MOV R2,-(SP) ;PUSH EFN WORD ADDRESS
6098 022366 010346 MOV R3,-(SP) ;PUSH EFN MASK
6099 ;
6100 022370 MFPI (R1) ;PUSH THE RESCHED INTERVAL
022370 011146 MOV (R1),-(SP)
6101 022372 MFPI -(R1) ;PUSH TIME INTERVAL MAGNITUED MAGNITUDE
022372 014146 MOV -(R1),-(SP)
6102 022374 MFPI 4(R1) ;PUSH AST TRAP ADDRES
022374 016146 000004 MOV 4(R1),-(SP)
6103 ;
6104 ;
6105 ; STACK & REGISTER SUMMARY:
6106 ;
6107 ; SP+10 -- FLAG WORD ADDRESS (OR ZERO)
6108 ; SP+06 -- FLAG MASK (OR ZERO)
6109 ; SP+04 -- TIME RESCHEDULE INTERVAL
6110 ; SP+02 -- TIME INTERVAL
6111 ; SP+00 -- AST TRAP ADDRESS
6112 ;
6113 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK
6114 ; R1 -- ADDRESS OF NODE FOR CLOCK QUEUE
6115 ;
6116 022400 046676 000006 000010 BIC +6(SP),@+10(SP) ;CLEAR INDICATED EVENT FLAG
6117 ;
6118 022406 012700 002370' MOV #.CLKBA,R0 ;POINT TO BEGINNING OF CLOCK LIST
6119 022412 022700 002574' 20$: CMP #.CLKEA,R0 ;END OF LIST?
6120 022416 001001 BNE 30$ ;NO -- MUST BE OK
6121 022420 104777 TRAP DE.01 ;YES -- RAN OUT OF CLOCK ENTRIES
6122 022422 005710 30$: TST @R0 ;LOOK FOR A FREE ENTRY
6123 022424 001403 BEQ 40$ ;FOUND ONE
6124 022426 062700 000014 ADD #C.SZ,R0 ;NOT HERE -- TRYNEXT ENTRY
6125 022432 000767 BR 20$
6126 ;
6127 ;
6128 022434 010520 40$: MOV R5,(R0)+ ;ATL NODE OF ISSUING TASK
6129 022436 012620 MOV (SP)+,(R0)+ ;AST ADDRESS
6130 022440 012620 MOV (SP)+,(R0)+ ;(POP) SCHEDULE INTERVAL
6131 022442 012620 MOV (SP)+,(R0)+ ;(POP) RESCHEDULE INTERVAL
6132 022444 012620 MOV (SP)+,(R0)+ ;(POP) EVENT FLAG MASK
6133 022446 012620 MOV (SP)+,(R0)+ ;(POP) EVENT FLAG WORD ADDRESS
6134 ;
6135 022450 104401 TRAP DR.01 ;RETURN STS=+1
6136 ;
DMCMT - "CANCEL MARK TIME" DI MACRO M1113 11-NOV-81 11:13 PAGE 119
DIRECTIVE -- MARK TIME
6138 .TITLE DMCMT - "CANCEL MARK TIME" DIRECTIVE MODULE
6139 .SBTTL CANCEL MARK TIME -- COPYRIGHT STATEMENT
6140 022452 IDENT$ 1,0
.IDENT /001000/
6141 ;
6142 ; COPYRIGHT (C) 1975, 1978 BY
6143 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6144 ;
6145 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
6146 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
6147 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
6148 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
6149 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
6150 ;
6151 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
6152 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
6153 ; CORPORATION.
6154 ;
6155 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6156 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
6157 ;
6158 ; MODULE: "CANCEL MARK TIME" DIRECTIVE
6159 ;
6160 ; VERSION: 01-00
6161 ;
6162 ; AUTHOR: R. MCLEAN
6163 ;
6164 ; DATE: 19 MAR 75
6165 ;
6166 ;
6167 ; THIS MODULE CONTAINS:
6168 ;
6169 ; 1 -- CODE TO SERVICE THE "CANCEL MARK TIME" DIRECTIVE.
6170 ;
6171 ; MACROS
6172 ;
6173
6174 .MCALL CALL,RETURN
DMCMT - "CANCEL MARK TIME" DI MACRO M1113 11-NOV-81 11:13 PAGE 120
DIRECTIVE -- CANCEL MARK-TIME REQUESTS
6176 .SBTTL DIRECTIVE -- CANCEL MARK-TIME REQUESTS
6177 ;+
6178 ; THE "CANCEL MARK-TIME REQUESTS" DIRECTIVE
6179 ;
6180 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO CANCEL MARK-TIME REQUESTS
6181 ; THAT HAVE BEEN MADE BY THE ISSUING TASK.
6182 ;
6183 ; A ONE WORD DPB OF THE FOLLOWING FORMAT IS USED TO CANCEL ALL MARK-TIME
6184 ; REQUESTS THAT HAVE BEEN MADE BY THE ISSUING TASK:
6185 ;
6186 ; WD. 00 -- DIC (21.) & DPB SIZE (1.).
6187 ;
6188 ;
6189 ; THE FOLLOWING STATUS IS RETURNED:
6190 ;
6191 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
6192 ; OF ONE (R0 - +1).
6193 ;
6194 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
6195 ;
6196 ; R0 -- -97 -- INVALID EVENT FLAG NUMBER (EFN<0 OR EFN>64),
6197 ; R0 -- -99 -- DIC OR DPB SIZE IS INVALID.
6198 ;-
6199 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
6200 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
6201 ; STACK, AND R0-R5 SET AS FOLLOWS:
6202 ; R0 -- PC OF EMT INSTRUCTION
6203 ; R1 -- WORD FOLLOWING DIC & SIZE
6204 ; R2 -- DPB SIZE
6205 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
6206 ;
6207 ;
6208 ; ALL MARK-TIME REQUESTS BY THE ISSUING TASK ARE TO BE DELETED
6209 ; FROM THE CLOCK QUEUE.
6210 ;
6211 ;
6212 022452 010546 .D.CMT::MOV R5,-(SP) ;SAVE CURRENT TASK POINTER
6213 022454 012704 002370' MOV #.CLKBA,R4 ;USE R4 TO SCAN DEQUE
6214 ;
6215 022460 020427 002574' 50$: CMP R4,#.CLKEA ;END OF SCAN (END OF DEQUE)?
6216 022464 001002 BNE 60$
6217 022466 012605 MOV (SP)+,R5 ;RESTORE CURRENT TASK POINTER
6218 022470 104401 TRAP DR.01 ;YES -- RETURN STS=+1.
6219 ;NO -- CHECK NODE POINTED TO BY R4
6220 022472 026405 000000 60$: CMP C.AT(R4),R5 ;YES -- WAS REQUEST MADE BY ISSUING TASK?
6221 022476 001005 BNE 45$ ;NO -- NEXT NODE
6222 ;DELETE NODE (PER R4) FROM CLOCK QUEUE, AND
6223 022500 CALL .CKDEL ;QUEUE NODE (R4 IS NOT ALTERED).
022500 004737 043150' JSR PC,.CKDEL
6224 ;
6225 ;
6226 022504 000765 BR 50$ ;TEST FOR END OF DEQUE
6227 ;
6228 022506 012605 90$: MOV (SP)+,R5 ;RESTORE CURRENT TASK POINTER
6229 022510 104637 TRAP DE.97 ;TO RETURN STS=-97.
6230 ;
6231 022512 062704 000014 45$: ADD #C.SZ,R4 ;UPDATE THE Q SIZE TO LOOK AT NEXT ENTRY
DMCMT - "CANCEL MARK TIME" DI MACRO M1113 11-NOV-81 11:13 PAGE 120-1
DIRECTIVE -- CANCEL MARK-TIME REQUESTS
6232 022516 000760 BR 50$
6233 ;
DMEXT - "EXIT" DIRECTIVE MODU MACRO M1113 11-NOV-81 11:13 PAGE 121
DIRECTIVE -- CANCEL MARK-TIME REQUESTS
6235 .TITLE DMEXT - "EXIT" DIRECTIVE MODULE
6236 .SBTTL EXIT -- COPYRIGHT STATEMENT
6237 022520 IDENT$ 1,0
.IDENT /001000/
6238 ;
6239 ; COPYRIGHT (C) 1975, 1978 BY
6240 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6241 ;
6242 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
6243 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
6244 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
6245 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
6246 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
6247 ;
6248 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
6249 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
6250 ; CORPORATION.
6251 ;
6252 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6253 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
6254 ;
6255 ; MODULE: "EXIT" DIRECTIVE
6256 ;
6257 ; VERSION: 01-00
6258 ;
6259 ; AUTHOR: R. MCLEAN
6260 ;
6261 ; DATE: 19 MAR 75
6262 ;
6263 ;
6264 ; THIS MODULE CONTAINS:
6265 ;
6266 ; 1 -- CODE TO SERVICE THE "EXIT" DIRECTIVE
6267 ;
6268 ; MACROS
6269 ;
6270
6271 .MCALL CALL,RETURN
DMEXT - "EXIT" DIRECTIVE MODU MACRO M1113 11-NOV-81 11:13 PAGE 122
DIRECTIVE -- TASK EXIT
6273 .SBTTL DIRECTIVE -- TASK EXIT
6274 ;+
6275 ; THE "TASK EXIT" DIRECTIVE
6276 ;
6277 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO TERMINATE THE EXECUTION OF THE
6278 ; ISSUING TASK.
6279 ;
6280 ; A ONE WORD DPB OF THE FOLLOWING FORMAT IS USED:
6281 ;
6282 ; WD. 00 -- DIC (27.) & DPB SIZE (1.).
6283 ;
6284 ; THE FOLLOWING STATUS IS RETURNED:
6285 ;
6286 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
6287 ; OF ONE (+1).
6288 ;
6289 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
6290 ;
6291 ; -99 -- DIC OR DPB SIZE IS INVALID.
6292 ;-
6293 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
6294 ; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
6295 ; STACK, AND R0-R5 SET AS FOLLOWS:
6296 ; R1 -- ADDRESS OF WORD FOLLOWING DIC & SIZE
6297 ; R2 -- DPB SIZE
6298 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
6299 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
6300 ;
6301 ;
6302 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
6303 ;
6304 ; R5 CONTAINS THE EXITING TASK'S ATL NODE ADDRESS.
6305 ;
6306 022520 042766 000340 000020 .D.EXT::BIC #000340,EM.DRO(SP) ;SET ISSUING TASK'S PROCESSRO PRIROITY TO ZERO TO
6307 ;PREVENT RETURN TO TASK IF EXIT DIRECTIVE HAS
6308 ;BEEN ISSUED FROM NON TASK LEVEL
6309 ;
6310 022526 112765 000026 000014 MOVB #TS.EXT,A.TS(R5) ;CHANGE STATUS TO "EXIT", INDICATE
6311 022534 005065 000024 CLR A.FM+0(R5) ;NO TERMINATION NOTIFICATION, AND
6312 022540 104401 TRAP DR.01 ;EXIT DIRECTIVE SERVICE (SET STS=+1)
6313 ;
DMQIO - "QUEUE I/O" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 123
DIRECTIVE -- TASK EXIT
6315 .TITLE DMQIO - "QUEUE I/O" DIRECTIVE MODULE
6316 .SBTTL QUEUE I/O -- COPYRIGHT STATEMENT
6317 022542 IDENT$ 1,0
.IDENT /001000/
6318 ;
6319 ; COPYRIGHT (C) 1975, 1978 BY
6320 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6321 ;
6322 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
6323 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
6324 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
6325 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
6326 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
6327 ;
6328 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
6329 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
6330 ; CORPORATION.
6331 ;
6332 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6333 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
6334 ;
6335 ; MODULE: "QUEUE I/O" DIRECTIVE
6336 ;
6337 ; VERSION: 01-00
6338 ;
6339 ; AUTHOR: R. MCLEAN
6340 ;
6341 ; DATE: 19 JUL 75
6342 ;
6343 ;
6344 ; THIS MODULE CONTAINS:
6345 ;
6346 ; 1 -- CODE TO SERVICE THE "QUEUE I/O" DIRECTIVE.
6347 ; 2 -- CODE TO SERVICE THE "QUEUE I/O AND WAIT" DIRECTIVE.
6348 ;
6349 ; MACROS
6350 ;
6351
6352 .MCALL CALL,RETURN,MFPI,MTPI,MTPS,MFPS
DMQIO - "QUEUE I/O" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 124
DIRECTIVE -- QUEUE I/O
6354 .SBTTL DIRECTIVE -- QUEUE I/O
6355 ;+
6356 ; THE "QUEUE I/O" DIRECITVE
6357 ;
6358 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO PLACE AN I/O REQUEST FOR AN
6359 ; INDICATED DEVICE IN A QUEUE OF PRIORITY ORDERED REQUESTS FOR THAT DEVICE-
6360 ; UNIT. THE DEVICE-UNIT IS SPECIFIED AS A LOGICAL UNIT NUMBER (LUN), WHICH
6361 ; IS MAPPED INTO A PHYSICAL UNIT SPECIFICATION PER LUN ASSIGNMENT.
6362 ;
6363 ; EACH LUN IS REPRESENTED BY AN ENTRY IN THE ISSUING TASK'S LUT (LOGICAL
6364 ; UNIT TABLE) IN THE TASK'S HEADER. EACH PHYSICAL UNIT IS REPRESENTED
6365 ; BY AN ENTRY IN THE PUD (PHYSICAL UNIT DIRECTORY). WHEN A LUN IS
6366 ; ASSIGNED TO A PHYSICAL UNIT, THE ADDRESS OF THE CORRESPONDING PUD
6367 ; ENTRY IS SET IN THE CORRESPONDING LUT ENTRY. WHEN A LUN IS NOT
6368 ; ASSIGNED TO A PHYSICAL UNIT ("DEASSIGNED" OR "ASSIGNED TO NONE"), THE
6369 ; CORRESPONDING LUT ENTRY IS SET TO ZERO.
6370 ;
6371 ; NORMALLY, A SIGNIFICANT EVENT IS DECLARED BY HANDLER TASKS (VIA SYSTEM
6372 ; SUBROUTINES) UPON I/O COMPLETION.
6373 ;
6374 ; IF AN EVENT FLAG IS SPECIFIED, IT IS CLEARED WHEN THE REQUEST
6375 ; IS QUEUED, AND SET AT THE SIGNIFICANT EVENT.
6376 ;
6377 ; IF AN AST SERVICE ENTRY POINT IS SPECIFIED, THE AST WILL OCCUR
6378 ; UPON I/O COMPLETION WITH THE TASK'S PS, PC, VIRTUAL ZERO (DIRECTIVE
6379 ; STATUS), AND [ADDRESS OF I/O STATUS BLOCK] PUSHED ONTO THE TASK'S
6380 ; (USER) STACK.
6381 ;
6382 ; A 6-12 WORD DPB OF THE FOLLOWING FORMAT IS USED:
6383 ;
6384 ; WD. 00 -- DIC (01.) & DPB SIZE (6-12),
6385 ; WD. 01 -- I/O FUNCTION CODE,
6386 ; WD. 02 -- LUN,
6387 ; WD. 03 -- [EFN] & [PRIORITY],
6388 ; WD. 04 -- [ADDRESS OF I/O STATUS BLOCK],
6389 ; WD. 05 -- [I/O DONE AST SERVICE ENTRY POINT],
6390 ; WD. 06 -- PARAMETER #1,
6391 ; WD. 07 -- PARAMETER #2,
6392 ; WD. 10 -- PARAMETER #3,
6393 ; WD. 11 -- PARAMETER #4,
6394 ; WD. 12 -- PARAMETER #5,
6395 ; WD. 13 -- PARAMETER #6.
6396 ;
6397 ; THE FORMAT OF THE I/O REQUEST NODE CREATED IS DESCRIBED
6398 ; UNDER "SYMBOLIC DEFINITIONS".
6399 ;
6400 ; THE FOLLOWING STATUS IS RETURNED:
6401 ;
6402 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
6403 ; OF ONE (+1).
6404 ;
6405 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
6406 ;
6407 ; -01 -- UNAVAILABLE POOL NODE FOR REQUEST QUEUE,
6408 ; -05 -- UNASSIGNED LUN,
6409 ;
6410 ; -95 -- INVALID PRIORITY (>250.),
DMQIO - "QUEUE I/O" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 124-1
DIRECTIVE -- QUEUE I/O
6411 ; -96 -- INVALID LUN,
6412 ; -97 -- INVALID EFN (>64.),
6413 ; -98 -- PART OF DPB IS OUT OF ISSUING TASK'S ADDRESS SPACE,
6414 ; -99 -- DIC OR DPB SIZE IS INVALID.
6415 ; THE "QUEUE I/O AND WAIT" DIRECITVE
6416 ;
6417 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO PLACE AN I/O REQUEST FOR AN
6418 ; INDICATED DEVICE IN A QUEUE OF PRIORITY ORDERED REQUESTS FOR THAT DEVICE-
6419 ; UNIT. THE DEVICE-UNIT IS SPECIFIED AS A LOGICAL UNIT NUMBER (LUN), WHICH
6420 ; IS MAPPED INTO A PHYSICAL UNIT SPECIFICATION PER LUN ASSIGNMENT.
6421 ;
6422 ; EACH LUN IS REPRESENTED BY AN ENTRY IN THE ISSUING TASK'S LUT (LOGICAL
6423 ; UNIT TABLE) IN THE TASK'S HEADER. EACH PHYSICAL UNIT IS REPRESENTED
6424 ; BY AN ENTRY IN THE PUD (PHYSICAL UNIT DIRECTORY). WHEN A LUN IS
6425 ; ASSIGNED TO A PHYSICAL UNIT, THE ADDRESS OF THE CORRESPONDING PUD
6426 ; ENTRY IS SET IN THE CORRESPONDING LUT ENTRY. WHEN A LUN IS NOT
6427 ; ASSIGNED TO A PHYSICAL UNIT ("DEASSIGNED" OR "ASSIGNED TO NONE"), THE
6428 ; CORRESPONDING LUT ENTRY IS SET TO ZERO.
6429 ;
6430 ; NORMALLY, A SIGNIFICANT EVENT IS DECLARED BY HANDLER TASKS (VIA SYSTEM
6431 ; SUBROUTINES) UPON I/O COMPLETION.
6432 ;
6433 ; IF AN EVENT FLAG IS SPECIFIED, IT IS CLEARED WHEN THE REQUEST
6434 ; IS QUEUED, AND SET AT THE SIGNIFICANT EVENT.
6435 ; IF AN EVENT FLAG IS SPECIFIED, A WAIT DIRECTIVE IS ALSO
6436 ; EXECUTED BEFORE TASK SWITCHING IS ENABLED.
6437 ;
6438 ; IF NO EVENT FLAG IS SPECIFIED THE I/O WILL BE QUEUE'D
6439 ; AND THE WAIT DIRECTIVE WILL BE REJECTED (STATUS -97.)
6440 ;
6441 ;
6442 ; IF AN AST SERVICE ENTRY POINT IS SPECIFIED, THE AST WILL OCCUR
6443 ; UPON I/O COMPLETION WITH THE TASK'S PS, PC, VIRTUAL ZERO (DIRECTIVE
6444 ; STATUS), AND [ADDRESS OF I/O STATUS BLOCK] PUSHED ONTO THE TASK'S
6445 ; (USER) STACK.
6446 ;
6447 ; A 6-12 WORD DPB OF THE FOLLOWING FORMAT IS USED:
6448 ;
6449 ; WD. 00 -- DIC (03.) & DPB SIZE (6-12),
6450 ; WD. 01 -- I/O FUNCTION CODE,
6451 ; WD. 02 -- LUN,
6452 ; WD. 03 -- [EFN] & [PRIORITY],
6453 ; WD. 04 -- [ADDRESS OF I/O STATUS BLOCK],
6454 ; WD. 05 -- [I/O DONE AST SERVICE ENTRY POINT],
6455 ; WD. 06 -- PARAMETER #1,
6456 ; WD. 07 -- PARAMETER #2,
6457 ; WD. 10 -- PARAMETER #3,
6458 ; WD. 11 -- PARAMETER #4,
6459 ; WD. 12 -- PARAMETER #5,
6460 ; WD. 13 -- PARAMETER #6.
6461 ;
6462 ; THE FORMAT OF THE I/O REQUEST NODE CREATED IS DESCRIBED
6463 ; UNDER "SYMBOLIC DEFINITIONS".
6464 ;
6465 ; THE FOLLOWING STATUS IS RETURNED:
6466 ;
6467 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
DMQIO - "QUEUE I/O" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 124-2
DIRECTIVE -- QUEUE I/O
6468 ; OF ONE (+1).
6469 ;
6470 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
6471 ;
6472 ; -01 -- UNAVAILABLE POOL NODE FOR REQUEST QUEUE,
6473 ; -05 -- UNASSIGNED LUN,
6474 ; -06 -- HANDLER TASK NOT DECLARED RESIDENT,
6475 ;
6476 ; -95 -- INVALID PRIORITY (>250.),
6477 ; -96 -- INVALID LUN,
6478 ; -97 -- INVALID EFN (>64.), OR 0 EVENT FLAG (I/O QUEUE'D BUT WAIT NOT EXECUTED),
6479 ; -98 -- PART OF DPB IS OUT OF ISSUING TASK'S ADDRESS SPACE,
6480 ; -99 -- DIC OR DPB SIZE IS INVALID.
6481 ;-
6482 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
6483 ; DIRECTIVE ISSUING TASK'S PS, PC, & R5-R0 PUSHED ONTO THE
6484 ; KERNEL STACK, AND R5-R0 SET AS FOLLOWS:
6485 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
6486 ;
6487 022542 010346 .D.QIO::MOV R3,-(SP) ;SAVE THE DIC TO DETERMINE IF QIO& WAIT OR JUST QIO.
6488 ;
6489 022544 20$: MFPS (R1)+,R3 ;SET R3 TO FUNCTION CODE
022544 012103 MOV (R1)+,R3
6490 ;(LEAVE R1 POINTING TO LUN WORD)
6491 ;
6492 022546 MFPI (R1)+ ;PUSH LUN, AND CONVERT TO PUD ENTRY ADR
022546 012146 MOV (R1)+,-(SP)
6493 022550 CALL .VCLUN ;(LEAVE R1 POINTING TO EFN/PRI WORD)
022550 004737 015654' JSR PC,.VCLUN
6494 ;IF INVALID LUN, RETURN STS=-96.
6495 022554 011600 MOV @SP,R0 ;SET R0 TO PUD ENTRY ADR IF LUN ASSIGNED
6496 022556 001001 BNE 40$ ;IF UN-ASSIGNED LUN, RETURN STS=-05.
6497 022560 104773 TRAP DE.05
6498 022562 010246 40$: MOV R2,-(SP) ;PUSH DPB SIZE
6499 ;
6500 ;TO ACCESS REQUESTOR'S HEADER BY '.VCLUN').
6501 ;
6502 022564 MFPI +4(R1) ;PUSH I/O DONE AST ENTRY PT (OR ZERO)
022564 016146 000004 MOV +4(R1),-(SP)
6503 ;
6504 022570 MFPI +02(R1) ;PUSH I/O STATUS BLOCK ADR (OR ZERO),
022570 016146 000002 MOV +02(R1),-(SP)
6505 022574 011602 MOV @SP,R2 ;AND CLEAR TWO-WORD STATUS BLOCK.
6506 022576 001404 BEQ 50$ ;(IF SPECIFIED). IF PART OF STATUS
6507 022600 005046 CLR -(SP) ;OUT OF ADDRESS SPACE, RETURN
6508 022602 MTPI (R2)+
022602 012622 MOV (SP)+,(R2)+
6509 022604 005046 CLR -(SP)
6510 022606 MTPI @R2
022606 012612 MOV (SP)+,@R2
6511 022610 50$:
6512 022610 010346 MOV R3,-(SP) ;PUSH I/O FUNCTION CODE WORD
6513 ;
6514 ;R1 IS POINTING TO [EFN] IN DPB.
6515 ;
6516 022612 CALL .CEFN ;CONVERT EFN TO: (1) FLAG WORD ADDRESS
022612 004737 043062' JSR PC,.CEFN
DMQIO - "QUEUE I/O" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 124-3
DIRECTIVE -- QUEUE I/O
6517 ;IN R2, AND (2) FLAG MASK IN R3 (R2 IS
6518 ;POINTING TO EFN). IF EFN<0, OR EFN>64.,
6519 ;RETURN STS=-97. IF EFN=0 (NO EVENT FLAG
6520 ;SPECIFIED), RETURN WITH R2=R3=00.
6521 ;CONDITION CODES ARE SET PER "TST R3".
6522 ;
6523 022616 MFPS @R1,R4 ;SET PRIORITY IN R4, EFN IN HIGH ORDER
022616 011104 MOV @R1,R4
6524 ;BYTE OF R0, AND ZERO IN LOW ORDER BYTE
6525 022620 010400 MOV R4,R0 ;OF R0
6526 022622 105004 CLRB R4
6527 022624 000304 SWAB R4
6528 022626 000300 SWAB R0
6529 022630 105000 CLRB R0
6530 ;IS A PRIORITY SPECIFIED?
6531 022632 001002 BNE 70$ ;YES -- CHECK ITS VALIDITY
6532 022634 156504 000010 BISB A.RP(R5),R4 ;NO -- USE RUN PARIORITY OF ISSUING TASK
6533 ;("BISB" INTO A CLEARED R4 EFFECTS A
6534 ;"MOVB" WITHOUT SIGN EXTENSION.)
6535 ;
6536 022640 70$: MFPI -(R1) ;PUSH LUN & FORM LUN/EFN WORD ON STACK.
022640 014146 MOV -(R1),-(SP)
6537 022642 050016 BIS R0,@SP ;(R1 IS LEFT POINTING TO LUN)
6538 ;
6539 022644 010446 MOV R4,-(SP) ;PUSH PRI/BYTE RESERVED FOR DPB SIZE
6540 ;
6541 ; STACK & REGISTER SUMMARY:
6542 ;
6543 ; SP+14 -- PUD ENTRY ADDRESS
6544 ; SP+12 -- DPB SIZE
6545 ; SP+10 -- AST ENTRY PT (OR ZERO)
6546 ; SP+06 -- I/O STATUS BUF ADR (OR ZERO)
6547 ; SP+04 -- I/O FUNCTION CODE
6548 ; SP+02 -- LUN/EFN WORD
6549 ; SP+00 -- PRI/RESERVED BYTE
6550 ;
6551 ; R5 -- ATL NODE ADR OF ISSUING TASK
6552 ; R2 & R3 SETUP TO CLEAR EVENT FLAG
6553 ;
6554 022646 116666 000012 000001 MOVB +12(SP),+1(SP) ;SET DPB SIZE IN "PRI/DPB-SIZE" WORD
6555 ;
6556 022654 010100 MOV R1,R0 ;SETUP R0 TO FETCH I/O PARAMETERS (FROM DPB)
6557 022656 062700 000010 ADD #10,R0
6558 022662 010046 MOV R0,-(SP) ;SAVE R0
6559 ;
6560 022664 012701 000040 MOV #32.,R1 ;SET UP TO PICK A NODE
6561 022670 CALL ..ALCB
022670 004737 044416' JSR PC,..ALCB
6562 022674 010001 MOV R0,R1 ;SET UP NODE ADDRESS
6563 022676 103001 BCC 79$ ;OK -- CHECK FUNCTION CODE
6564 022700 104777 TRAP DE.01 ;NO -- RETURN POOL EMPTY ERROR
6565 ;
6566 ;
6567 ;
6568 ; REQUEST CAN BE MADE -- STACK & REGISTER SUMMARY:
6569 ;
6570 ; SP+14 -- PUD ENTRY ADDRESS
DMQIO - "QUEUE I/O" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 124-4
DIRECTIVE -- QUEUE I/O
6571 ; SP+12 -- DPB SIZE
6572 ; SP+10 -- AST ENTRY PT (OR ZERO)
6573 ; SP+06 -- I/O STATUS BUF ADR (OR ZERO)
6574 ; SP+04 -- I/O FUNCTION CODE
6575 ; SP+02 -- LUN/EFN WORD
6576 ; SP+00 -- PRI/DPB SIZE
6577 ;
6578 ; R5 -- ATL NODE ADR OF ISSUING TASK
6579 ; R1 -- I/O REQUEST NODE ADDRESS
6580 ; R2 & R3 SETUP TO CLEAR EVENT FLAG
6581 ; R0 -- POINTING TO FIRST PARAMETER WORD IN DPB
6582 ;
6583 022702 040312 79$: BIC R3,@R2 ;CLEAR EVENT FLAG, IFF SPECIFIED.
6584 ;NOTE -- IF NO EFN SPECIFIED, R3=R3=00.
6585 ;I.E., NO BITS IN LOCATION ZERO ARE CLEARED.
6586 022704 012600 MOV (SP)+,R0 ;RESTORE BUFFER ADDRESS
6587 ;
6588 ; FILL I/O REQUEST NODE
6589 ;
6590 022706 010104 MOV R1,R4 ;SETUP R4 TO FILL NODE
6591 022710 022424 CMP (R4)+,(R4)+ ;MOVE OVER LISTHEAD
6592 022712 016524 000016 MOV A.TD(R5),(R4)+ ;SET STD ADDRESS
6593 ;
6594 022716 010524 MOV R5,(R4)+ ;SET ATL NODE ADR OF REQUESTOR
6595 022720 012624 MOV (SP)+,(R4)+ ;(POP) SET PRI/DPB-SIZE WORD
6596 022722 011603 MOV @SP,R3 ;SAVE LUN/EFN
6597 022724 012624 MOV (SP)+,(R4)+ ;(POP) SET LUN/EFN WORD
6598 022726 012624 MOV (SP)+,(R4)+ ;(POP) SET I/O FUNCTION CODE
6599 022730 012624 MOV (SP)+,(R4)+ ;(POP) SET I/O STATUS BLK ADR (OR ZERO)
6600 022732 012624 MOV (SP)+,(R4)+ ;(POP) SET AST ENTRY PT (OR ZERO)
6601 022734 013724 001156' MOV .SYUIC,(R4)+ ;SET THE UIC
6602 ;
6603 022740 012602 MOV (SP)+,R2 ;(POP) SET DPB SIZE IN R2, CONVERT
6604 022742 162702 000006 SUB #6.,R2 ;TO NUMBER OF I/O PARAMETERS, AND
6605 022746 001402 BEQ 90$ ;MOVE PARAMETERS FROM DPB TO I/O
6606 022750 80$: ;REQUEST NODE.
6607 022750 MFPS (R0)+,(R4)+
022750 012024 MOV (R0)+,(R4)+
6608 022752 077202 SOB R2,80$
6609 022754 90$:
6610 ;
6611 ;
6612 022754 012602 MOV (SP)+,R2 ;(POP) SET R2 TO PUD ENTRY ADDRESS, AND
6613 022756 016204 000020 MOV U.HA(R2),R4 ;SET R2 TO HANDLER TASK'S ATL NODE ADDRESS.
6614 ;
6615 ; IF FUNCTION CODE 'RF.XR' IS SET, THIS FUNCTION IS AN "EXPRESS" FUNCTION.
6616 ; EXPRESS REQUESTS ARE NORMALLY DE-QUEUED BEFORE NORMAL REQUESTS. VIZ.,
6617 ; "KILL READ REQUEST", OR "RUNDOWN I/O ON TASK".
6618 ;
6619 022762 010137 023200' MOV R1,QNDSV ;SAVE THE QIO NODE ADDRESS
6620 022766 016100 000014 MOV R.FC(R1),R0 ;FIND THE FUNCTION CODE
6621 022772 020027 002500 CMP R0,#IO.STC ;CHECK TO SEE IF LEGAL
6622 022776 101457 BLOS 95$ ;YES -- DON'T NEED FCP
6623 023000 010246 MOV R2,-(SP)
6624 023002 010346 MOV R3,-(SP)
6625 023004 010203 MOV R2,R3 ;FIND THE PUD ADDRESS
6626 023006 016302 000040 MOV U.ACP(R3),R2 ;FIND THE STD ADDRESS OF THE ACP
DMQIO - "QUEUE I/O" DIRECTIVE MACRO M1113 11-NOV-81 11:13 PAGE 124-5
DIRECTIVE -- QUEUE I/O
6627 023012 001015 BNE 77$ ;FOUND ACP -- DON'T DIDDLE CODES
6628 023014 022700 011000 CMP #IO.WVB,R0 ;IS CODE WRITE VIRTUAL?
6629 023020 001003 BNE 74$ ;NO -- LOOK FOR READ
6630 023022 012761 000400 000014 MOV #IO.WLB,R.FC(R1) ;YES SET FUNCTON CODE
6631 023030 022700 010400 74$: CMP #IO.RVB,R0 ;IS FUNCTION CODE READ VIRTUAL?
6632 023034 001036 BNE 93$ ;NO -- FORGET IT
6633 023036 012761 001000 000014 MOV #IO.RLB,R.FC(R1) ;SET FUNCTION CODE
6634 023044 000432 BR 93$
6635 023046 77$:
6639 023046 020027 010400 CMP R0,#IO.RVB ;CHECK FOR READ/WRITE VIRTUAL
6640 023052 001403 BEQ 71$ ;YES -- ATTEMPT TO MAP IT
6641 023054 020027 011000 CMP R0,#IO.WVB ;MAYBE TRY WRITE
6642 023060 001003 BNE 73$ ;NO -- CALL FCP
6643 023062 71$: CALL ..VTOL ;TRY AND MAP
023062 004737 047150' JSR PC,..VTOL
6644 023066 103021 BCC 93$ ;MADE IT -- DON'T CALL FCP
6645 023070 010337 023202' 73$: MOV R3,QNDSV+2 ;SET PUD ADDRESS
6646 023074 016137 000014 023204' MOV R.FC(R1),QNDSV+4 ;SET FUNCTION CODE
6647 023102 012701 023206' MOV #PRMBLK,R1 ;POINTER TO BUFFER ADDRESS AND EFN
6648 023106 CALL .SEND ;SEND BLOCK
023106 004737 023360' JSR PC,.SEND
6649 023112 005003 CLR R3
6650 023114 005004 CLR R4 ;SET DEFAULT PARTITION AND PRI FOR ACP
6651 023116 010102 MOV R1,R2
6652 023120 CALL .REQS ;REQ ACP
023120 004737 015046' JSR PC,.REQS
6653 023124 012603 MOV (SP)+,R3
6654 023126 012602 MOV (SP)+,R2
6655 023130 000413 BR 100$
6656 ;
6657 023132 012603 93$: MOV (SP)+,R3 ;RESTORE
6658 023134 012602 MOV (SP)+,R2
6659 023136 95$: ;(R2 CONTAINS PUD ENTRY ADDRESS)
6660 023136 062702 000022 ADD #U.RF,R2 ;SET R2 TO I/O REQUEST DEQUE LISTHEAD ADR
6661 ;(R1 IS SET TO REQUEST NODE ADDRESS)
6662 023142 CALL ..IPRI ;AND INSERT REQUEST NODE BY PRIORITY.
023142 004737 044122' JSR PC,..IPRI
6663 023146 052764 000010 000020 BIS #EF.NIR,A.EF+0(R4) ;NO -- SET TRIGGER EVENT FLAG 'EF.NIR'.
6664 023154 CALL ..DSEV ;DECLARE SIGNIFICANT EVENT TO EFFECT "TRIGGER"
023154 004737 044026' JSR PC,..DSEV
6665 ;
6666 023160 022627 000003 100$: CMP (SP)+,#3 ;CHECK THE DIC TO SEE IF QIO AND WAIT
6667 023164 001401 BEQ 120$ ;YES -- ISSUE THE WAIT
6668 ; ;NO -- JUST RETURN
6669 023166 104401 TRAP DR.01 ;RETURN STS=+1
6670 ;
6671 023170 105003 120$: CLRB R3 ;SET UP FOR THE WAIT DIRECTIVE
6672 023172 000303 SWAB R3
6673 023174 000137 022154' JMP .D.WFO ;ISSUE WAIT DIRECTIVE
6674 ;
6675 023200 000000 000000 000000 QNDSV: .WORD 0,0,0 ;SAVE AREA FOR NODE
6676 ;
6677 023206 023200' PRMBLK: .WORD QNDSV ;POINTER TO SEND BUFFER
6678 023210 000000 .WORD 0 ;EFN (0)
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 125
DIRECTIVE -- QUEUE I/O
6680 .TITLE DMSAR - SEND & RECEIVE DIRECTIVES MODULE
6681 .SBTTL SEND AND RECEIVE -- COPYRIGT STATEMENT
6682 023212 IDENT$ 2,0
.IDENT /002000/
6683 ;
6684 ; COPYRIGHT (C) 1975, 1978 BY
6685 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6686 ;
6687 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
6688 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
6689 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
6690 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
6691 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
6692 ;
6693 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
6694 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
6695 ; CORPORATION.
6696 ;
6697 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6698 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
6699 ;
6700 ;
6701 ; MODULE: SEND & RECEIVE DIRECTIVES
6702 ;
6703 ; VERSION: 01-00
6704 ;
6705 ; AUTHOR: R. MCLEAN
6706 ;
6707 ; DATE: 19 MAY 75
6708 ;
6709 ;
6710 ; THIS MODULE CONTAINS:
6711 ;
6712 ; 1 -- CODE TO SERVICE THE "SEND DATA" DIRECTIVE,
6713 ; 2 -- CODE TO SERVICE THE "SEND AND REQUEST OR RESUME" DIRECTIVE,
6714 ; 3 -- CODE TO SERVICE THE "RECEIVE DATA" DIRECTIVE,
6715 ; 4 -- CODE TO SERVICE THE "RECEIVE OR EXIT" DIRECTIVE,
6716 ; 5 -- CODE TO SERVICE THE "RECEIVE OR SUSPEND" DIRECTIVE,
6717 ;
6718 ; MACROS
6719 ;
6720 .MCALL CALL,RETURN,MTPI,MTPS,MFPI,MFPS
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 126
DIRECTIVE -- SEND DATA
6722 .SBTTL DIRECTIVE -- SEND DATA
6723 ;+
6724 ; THE "SEND DATA" DIRECTIVE
6725 ;
6726 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO QUEUE (FIFO) A THIRTEEN WORD
6727 ; BLOCK OF DATA FOR A TASK TO RECEIVE.
6728 ;
6729 ; A FIVE WORD DPB OF THE FOLLOWING FORMAT IS USED:
6730 ;
6731 ; WD. 00 -- DIC (13.) & DPB SIZE (5.),
6732 ; WD. 01 -- RECEIVER TASK NAME (FIRST HALF),
6733 ; WD. 02 -- RECEIVER TASK NAME (SECOND HALF),
6734 ; WD. 03 -- ADDRESS OF THIRTEEN WORD DATA BLOCK,
6735 ; WD. 04 -- [EVENT FLAG NUMBER (EFN)].
6736 ;
6737 ; WHEN AN EVENT FLAG IS SPECIFIED, A SIGNIFICANT EVENT IS DECLARED
6738 ; (IF THE DIRECTIVE IS PERFORMED) AND THE INDICATED EVENT FLAG IS SET.
6739 ;
6740 ; THE FOLLOWING STATUS IS RETURNED:
6741 ;
6742 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
6743 ; OF ONE (+1).
6744 ;
6745 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
6746 ;
6747 ; -02 -- RECEIVER TASK NOT INSTALLED (NO STD ENTRY FOUND),
6748 ; -04 -- INSUFFICIENT POOL NODES FOR "SEND",
6749 ;
6750 ; -97 -- INVALID EVENT FLAG NUMBER (EFN<0 OR EFN>64),
6751 ; -99 -- DIC OR DPB SIZE IS INVALID.
6752 ;-
6753 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
6754 ; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
6755 ; STACK, AND R0-R5 SET AS FOLLOWS:
6756 ; R0 -- PC OF EMT INSTRUCTION
6757 ; R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
6758 ; R2 -- DPB SIZE
6759 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
6760 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK')
6761 ;
6762 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
6763 ;
6764 023212 .D.SEN::CALL ..FSTD ;SET R2 TO STD ENTRY ADDRESS, OR TO
023212 004737 044336' JSR PC,..FSTD
6765 ;ZERO IF TASK NAME NOT FOUND (AND SET
6766 ;CONDITION CODES PER "TST R2").
6767 ;
6768 ;ADVANCE R1 BY FOUR (PAST TASK NAME).
6769 ;
6770 023216 001406 BEQ .X.02 ;IF TASK NOT INSTALLED, RETURN STS=-02.
6771 ;
6772 ; R1 IS POINTING TO DPB WD. 03, AND R2 CONTAINS STD NODE ADR OF RECEIVER.
6773 ;
6774 023220 10$: CALL .SEND ;SEND DATA & SET EVENT FLAG PER R1 & R2
023220 004737 023360' JSR PC,.SEND
6775 ;
6776 023224 104401 TRAP DR.01 ;RETURN STS=+1.
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 127
DIRECTIVE -- SEND AND REQUEST OR RESUME
6778 .SBTTL DIRECTIVE -- SEND AND REQUEST OR RESUME
6779 ;+
6780 ; THE "SEND AND REQUEST OR RESUME" DIRECTIVE
6781 ;
6782 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO QUEUE (FIFO) A THIRTEEN WORD
6783 ; BLOCK OF DATA FOR A TASK TO RECEIVE, AND TO REQUEST OR RESUME THE
6784 ; EXECUTION OF THE RECEIVER TASK.
6785 ;
6786 ; THIS DIRECTIVE HAS THE EFFECT OF ISSUING A "SEND DATA" DIRECTIVE
6787 ; FOLLOWED BY A "REQUEST" OR "RESUME" DIRECTIVE, EXCEPT THAT (1) NO TASK
6788 ; SWITCHING CAN OCCUR BETWEEN THE SEND AND THE REQUEST OR RECEIVE, AND
6789 ; (2) IF THE SEND IS NOT PERFORMED, NEITHER THE REQEST NOR THE RESUME
6790 ; WILL BE ATTEMPTED.
6791 ;
6792 ; I.E., IF DATA IS SENT TO AN INACTIVE TASK, THAT TASK WILL BE REQUESTED;
6793 ; IF DATA IS SENT TO A SUSPENDED TASK, THAT TASK WILL BE RESUMED.
6794 ;
6795 ; A NINE WORD DPB OF THE FOLLOWING FORMAT IS USED:
6796 ;
6797 ; WD. 00 -- DIC (15.) & DPB SIZE (9.),
6798 ; WD. 01 -- RECEIVER TASK NAME (FIRST HALF),
6799 ; WD. 02 -- RECEIVER TASK NAME (SECOND HALF),
6800 ; WD. 03 -- [PARTITION NAME (FIRST HALF)],
6801 ; WD. 04 -- [PARTITION NAME (SECOND HALF)],
6802 ; WD. 05 -- [PRIORITY],
6803 ; WD. 06 -- 0,
6804 ; WD. 07 -- ADDRESS OF THIRTEEN WORD DATA BLOCK,
6805 ; WD. 10 -- [EVENT FLAG NUMBER (EFN)].
6806 ;
6807 ; WHEN AN EVENT FLAG IS SPECIFIED, A SIGNIFICANT EVENT IS DECLARED
6808 ; (IF THE DIRECTIVE IS PERFORMED) AND THE INDICATED EVENT FLAG IS SET.
6809 ;
6810 ; THE FOLLOWING STATUS IS RETURNED:
6811 ;
6812 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE
6813 ; STATUS OF:
6814 ;
6815 ; +1 -- DATA SENT AND TASK REQUESTED,
6816 ; +2 -- DATA SEND AND TASK RESUMED,
6817 ; +3 -- DATA SENT TO AN NON-SUSPENDED ACTIVE TASK.
6818 ;
6819 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
6820 ;
6821 ; -01 -- [R] INSUFFICIENT POOL NODES AVAILABLE FOR "REQUEST",
6822 ; -02 -- [B] RECEIVER TASK NOT INSTALLED (NO STD ENTRY FOUND),
6823 ; -03 -- [R] PARTITION TOO SMALL FOR RECEIVER TASK,
6824 ; -04 -- [B] INSUFFICIENT POOL NODES FOR "SEND",
6825 ; -08 -- [R] RECEIVER TASK IS DISABLED,
6826 ;
6827 ; -80 -- [B] DIRECTIVE ISSUED BY "BACKGROUND" TASK,
6828 ; -94 -- [R] PARTITION NOT IN SYSTEM (NO TPD ENTRY FOUND),
6829 ; -95 -- [R] INVALID PRIORITY SPECIFIED (<0 OR >250.),
6830 ; -97 -- [B] INVALID EVENT FLAG NUMBER (EFN<0 OR EFN>64),
6831 ; -99 -- [B] DIC OR DPB SIZE IS INVALID.
6832 ;
6833 ; [R] -- REQUEST OR RESUME REJECTED
6834 ; [B] -- BOTH SEND & REQUEST OR RESUME REJECTED
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 127-1
DIRECTIVE -- SEND AND REQUEST OR RESUME
6835 ;-
6836 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
6837 ; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
6838 ; STACK, AND R0-R5 SET AS FOLLOWS:
6839 ; R0 -- PC OF EMT INSTRUCTION
6840 ; R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
6841 ; R2 -- DPB SIZE
6842 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
6843 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK')
6844 ;
6845 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
6846 ;
6847 023226 .D.SAR::CALL ..FSTD ;SET R2 TO STD ENTRY ADDRESS, OR TO
023226 004737 044336' JSR PC,..FSTD
6848 ;ZERO IF TASK NAME NOT FOUND (AND SET
6849 ;CONDITION CODES PER "TST R2").
6850 ;
6851 ;ADVANCE R1 BY FOUR (PAST TASK NAME).
6852 ;
6853 023232 001001 BNE SKX ;IF TASK NOT INSTALLED, RETURN STS=-02.
6854 023234 104776 .X.02: TRAP DE.02
6855 ;
6856 023236 010146 SKX: MOV R1,-(SP) ;PUSH (SAVE) R1 & R2, AND ADVANCE R1 TO POINT
6857 023240 010246 MOV R2,-(SP) ;TO DPB WD. 07.
6858 023242 062701 000010 ADD #8.,R1
6859 ;
6860 ; R1 IS POINTING TO DPB WD. 07, AND R2 CONTAINS STD ENTRY ADR OF RECEIVER.
6861 ;
6862 023246 CALL .SEND ;SEND DATA & SET EVENT FLAG PER R1 & R2
023246 004737 023360' JSR PC,.SEND
6863 ;(R1, R2, R3, R4, & R5 ARE ALTERED)
6864 ;
6865 023252 012602 MOV (SP)+,R2 ;POP (RESTORE) R2 & R1
6866 023254 012601 MOV (SP)+,R1 ;(R1 IS POINTING TO DPB WD. 03.)
6867 ;
6868 023256 CALL .FEPPU ;SET R3 TO TPD ADDRESS IF A PARTITION IS
023256 004737 015550' JSR PC,.FEPPU
6869 ;SPECIFIED, OR TO ZERO IF NOT SPECIFIED.
6870 ;
6871 ;SET R4 TO PRIORITY IF SPECIFIED, OR TO
6872 ;ZERO IF NOT SPECIFIED.
6873 ;
6874 ;
6875 ;ADVANCE R1 BY EIGHT (PAST PARTITION NAME,
6876 ;PRIORITY INDICATOR, AND UIC INDICATOR.).
6877 ;
6878 ;IF INVALID PRIORITY, RETURN STS=-95.
6879 ;IF PARTITION NOT IS SYSTEM, RETURN
6880 ;STS=-94. IF NON-PRIVILEGED TASK HAS
6881 ;SPECIFIED OTHER THAN OWN UIC, RETURN
6882 ;STS=-91. IF SPECIFIED PARTITION IS
6883 ;TOO SMALL FOR TASK, RETURN STS=-03.
6884 ;
6885 ;
6886 023262 012701 000001 MOV #1,R1 ;SET R1 TO INDICATE "MAKE TASK ACTIVE WHETHER
6887 ;MEMORY IS AVAILABLE OR NOT"
6888 ;
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 127-2
DIRECTIVE -- SEND AND REQUEST OR RESUME
6889 023266 016500 000016 MOV A.TD(R5),R0 ;SET R5 TO STD ADDRESS OF REQUESTOR
6890 ;
6891 023272 010246 MOV R2,-(SP) ;PUSH STD ENTRY ADDRESS (FOR ATL SCAN)
6892 ;
6893 023274 CALL .REQS ;MAKE A TASK ACTIVE PER R0, R1, R2, R3, R4 & R5.
023274 004737 015046' JSR PC,.REQS
6894 ;(R1, R2, R3, R4, & R5 ARE ALTERED)
6895 023300 012604 MOV (SP)+,R4 ;POP STD ENTRY ADDRESS INTO R4
6896 ;
6897 023302 020227 000002 CMP R2,#02 ;SPECIAL CASE -- IS TASK ACTIVE?
6898 023306 001402 BEQ 10$ ;YES -- RESUME IF SUSPENDED
6899 023310 000162 015540' JMP .RQESD(R2) ;NO -- RETURN DIRECTIVE STATUS PER SUBROUTINE
6900 ;STATUS IN R2.
6901 ;
6902 ; RECEIVER TASK IS ACTIVE:
6903 ;
6904 ; IF SUSPENDED, RESUME & RETURN STS=+2
6905 ; IF NOT SUSPENDED, RETURN STS=+3
6906 ;
6907 ; R4 CONTAINS THE STD ENTRY ADDRESS OF THE RECEIVER TASK.
6908 ;
6909 023314 012703 007106' 10$: MOV #.ATLLH,R3 ;SETUP FOR ATL SCAN
6910 023320 20$:
6911 023320 011303 MOV @R3,R3 ;SETUP R3 TO EXAMINE NEXT ENTRY
6912 023322 020337 007110' CMP R3,.ATLLH+2 ;IS R3 POINTING TO ENTRY FOR NUL TASK?
6913 023326 001413 BEQ 70$ ;YES -- ATL NODE IS NOT IN THE ATL (IT IS
6914 ;IN THE "MRL" FOR A PARTITION) RETURN STS=+3.
6915 023330 026304 000016 CMP A.TD(R3),R4 ;NO -- STD ADDRESS MATCH?
6916 023334 001371 BNE 20$ ;NO -- CHECK NEXT ATL NODE
6917 023336 126327 000014 000012 60$: CMPB A.TS(R3),#TS.SUS ;NO -- IS TASK SUSPENDED?
6918 023344 001004 BNE 70$
6919 023346 112763 000010 000014 MOVB #TS.RUN,A.TS(R3) ;YES -- CHANGE STATUS TO RUNNING (A SIGNIFICANT
6920 ;EVENT HAS BEEN DECLARED AS A RESULT OF THE
6921 023354 104402 TRAP DR.02 ;SEND), AND RETURN STS=+2.
6922 ;
6923 023356 104403 70$: TRAP DR.03 ;STS +3
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 128
DIRECTIVE -- SEND AND REQUEST OR RESUME
6925 ; SEND -- SUBROUTINE TO PERFORM "SEND" FOR "SEND DATA" AND "SEND DATA &
6926 ; REQUEST RECEIVER" DIRECTIVES.
6927 ;
6928 ; ENTRY CONDITIONS:
6929 ;
6930 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK
6931 ; R1 -- POINTING (IN DPB) TO ADR OF 13 WORD BLOCK OF DATA,
6932 ; WHICH IS FOLLOWED BY AN [EFN]. BOTH WORDS MUST BE FETCHABLE
6933 ; WITHOUT SEGMENT FAULT.
6934 ; R2 -- STD ENTRY ADDRESS OF RECEIVER TASK
6935 ;
6936 ; CALLING SEQUENCE:
6937 ;
6938 ; JSR PC,SEND
6939 ;
6940 ; EXIT CONDITIONS:
6941 ;
6942 ; IF NO POOL NODE AVAILABLE, RETURN AT 'DE.01'
6943 ; IF INVALID EFN, RETURN AT 'DE.97'
6944 ; IF PART OF DATA OUT OF TASK'S ADDRESS SPACE, RETURN AT 'DE.98'
6945 ;
6946 ; IF SUCCESSFUL, DATA IS QUEUED, EFN (IF SPECIFIED) IS SET,
6947 ; AND A SIGNIFICANT EVENT IS DECLARED.
6948 ;
6949 ; R1 -- STD OF RECEIVER TASK
6950 ;
6951 ;
6952 ; REGISTERS ALTERED:
6953 ;
6954 ; R1, R2, R3, R4, & R0
6955 ;
6956 023360 .SEND:: MFPI (R1)+ ;SET R5 TO ADDRESS OF DATA BLOCK, AND
023360 012146 MOV (R1)+,-(SP)
6957 023362 012600 MOV (SP)+,R0 ;LEAVE R1 POINTING TO [EFN].
6958 ;
6959 023364 010246 MOV R2,-(SP) ;SAVE RECEIVER STD ENTRY ADR IN -(SP)
6960 ;
6961 ;R1 IS POINTING TO [EFN] IN DPB.
6962 ;
6963 023366 CALL .CEFN ;CONVERT EFN TO: (1) FLAG WORD ADDRESS
023366 004737 043062' JSR PC,.CEFN
6964 ;IN R2, AND (2) FLAG MASK IN R3 (R1 IS
6965 ;POINTING TO EFN). IF EFN<0, OR EFN>64.,
6966 ;RETURN STS=-97. IF EFN=0 (NO EVENT FLAG
6967 ;SPECIFIED), RETURN WITH R2=R3=00.
6968 ;CONDITION CODES ARE SET PER "TST R3".
6969 ;
6970 023372 010246 MOV R2,-(SP) ;PUSH "BIS" ADDRESS WORD
6971 023374 010346 MOV R3,-(SP) ;PUSH "BIS" MASK WORD
6972 ;
6973 023376 012704 001424' MOV #.POLLH,R4 ;LISTHEAD
6974 023402 CALL ..PICK ;ISSUING TASK, AND SET R1 TO NODE ADR.
023402 004737 044240' JSR PC,..PICK
6975 023406 103001 BCC 10$ ;IF NONE AVAILABLE, RETURN STS=-04.
6976 023410 104774 TRAP DE.04
6977 ;
6978 023412 010401 10$: MOV R4,R1 ;SETUP R3 TO FILL NODE
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 128-1
DIRECTIVE -- SEND AND REQUEST OR RESUME
6979 023414 062704 000006 ADD #Q.D1,R4
6980 023420 012703 000015 MOV #13.,R3
6981 023424 20$:
6982 023424 MFPI (R0)+ ;MOVE WORD FROM DATA BLOCK TO NODE
023424 012046 MOV (R0)+,-(SP)
6983 023426 012624 MOV (SP)+,(R4)+
6984 023430 077303 SOB R3,20$
6985 023432 052636 BIS (SP)+,@(SP)+ ;SET EVENT FLAG IF SPECIFIED (IF NOT
6986 023434 011604 MOV @SP,R4 ;FIND RECEIVER'S STD ADDRESS
6987 023436 010461 000004 MOV R4,Q.SI(R1) ;SET SENDERS STD ADDRESS
6988 ;
6989 023442 016404 000026 MOV S.RB(R4),R4 ;SET R4 TO ADDRESS OF LAST NODE (OR LISTHEAD)
6990 023446 CALL ..NADD ;OF TASK'S RECEIVE DEQUE (LISTHEAD IN STD),
023446 004737 044176' JSR PC,..NADD
6991 ;AND ADD NODE AT END OF DEQUE.
6992 ;
6993 ;SPECIFIED, SET NO BITS IN WORD ZERO).
6994 ;
6995 023452 012601 MOV (SP)+,R1 ;SET RECEIVER STD ADDRESS
6996 023454 000137 044026' JMP ..DSEV ;DECLARE A SIGNIFICANT EVENT AND EXIT
6997 ;
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 129
DIRECTIVE -- RECEIVE DATA
6999 .SBTTL DIRECTIVE -- RECEIVE DATA
7000 ;+
7001 ; THE "RECEIVE DATA" DIRECTIVE
7002 ;
7003 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECEIVE A THIRTEEN WORD
7004 ; DATA BLOCK THAT HAS BEEN QUEUED (FIFO) FOR IT (VIA "SEND DATA" OR
7005 ; "SEND DATA & REQUEST RECEIVER" DIRECTIVES).
7006 ;
7007 ; WHEN A SENDER TASK IS SPECIFIED, ONLY DATA SENT BY THE INDICATED
7008 ; TASK IS RECEIVED.
7009 ;
7010 ; A TWO-WORD SENDER TASK NAME, AND THE THIRTEEN-WORD DATA BLOCK, ARE
7011 ; RETURNED IN AN INDICATED FIFTEEN WORD BUFFER, WITH THE TASK NAME IN
7012 ; THE FIRST TWO WORDS.
7013 ;
7014 ; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
7015 ;
7016 ; WD. 00 -- DIC (17.) & DPB SIZE (4.),
7017 ; WD. 01 -- [SENDER TASK NAME (FIRST HALF)],
7018 ; WD. 02 -- [SENDER TASK NAME (SECOND HALF)],
7019 ; WD. 03 -- ADDRESS OF FIFTEEN WORD BUFFER.
7020 ;
7021 ; THE FOLLOWING STATUS IS RETURNED:
7022 ;
7023 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
7024 ; OF ONE (+1).
7025 ;
7026 ;
7027 ; CC-C SET TO INDICATE REJECTIONAND A DIRECTIVE STATUS OF:
7028 ;
7029 ; -02 -- SPECIFIED SENDER TASK NOT INSTALLED,
7030 ; -08 -- NO DATA QUEUED (SENT),
7031 ;
7032 ; -99 -- DIC OR DPB SIZE IS INVALID.
7033 ;-
7034 ; THIS DIRECTIVE SERVICE HAS A COMMON ENTRY WITH "RECEIVE DATA OR SUSPEND".
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 130
DIRECTIVE -- RECEIVE DATA OR EXIT
7036 .SBTTL DIRECTIVE -- RECEIVE DATA OR EXIT
7037 ;+
7038 ; THE "RECEIVE DATA OR EXIT" DIRECTIVE
7039 ;
7040 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECEIVE A THIRTEEN WORD
7041 ; DATA BLOCK IF AT LEAST ONE IS CAN BE RECEIVED, OR TO EXIT IF NO
7042 ; THIRTEEN WORD DATA BLOCKS ARE CAN BE RECEIVED.
7043 ;
7044 ; DATA BLOCKS ARE QUEUED (FIFO) FOR THE TASK VIA THE "SEND DATA" OR
7045 ; THE "SEND DATA & REQUEST RECEIVER" DIRECTIVES.
7046 ;
7047 ; WHEN A SENDER TASK IS SPECIFIED, ONLY DATA SENT BY THE INDICATED
7048 ; TASK IS RECEIVED.
7049 ;
7050 ; A TWO-WORD SENDER TASK NAME, AND THE THIRTEEN-WORD DATA BLOCK, ARE
7051 ; RETURNED IN AN INDICATED FIFTEEN WORD BUFFER, WITH THE TASK NAME IN
7052 ; THE FIRST TWO WORDS.
7053 ;
7054 ; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
7055 ;
7056 ; WD. 00 -- DIC (19.) & DPB SIZE (4.),
7057 ; WD. 01 -- [SENDER TASK NAME (FIRST HALF)],
7058 ; WD. 02 -- [SENDER TASK NAME (SECOND HALF)],
7059 ; WD. 03 -- ADDRESS OF FIFTEEN WORD BUFFER.
7060 ;
7061 ; THE FOLLOWING STATUS IS RETURNED:
7062 ;
7063 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
7064 ; OF ONE (+1).
7065 ;
7066 ;
7067 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
7068 ;
7069 ; -02 -- SPECIFIED SENDER TASK NOT INSTALLED,
7070 ;
7071 ; -80 -- DIRECTIVE ISSUED BY "BACKGROUND" TASK,
7072 ; -98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
7073 ; -99 -- DIC OR DPB SIZE IS INVALID.
7074 ;-
7075 ; THIS DIRECTIVE SERVICE HAS A COMMON ENTRY WITH "RECEIVE DATA OR SUSPEND".
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 131
DIRECTIVE -- RECEIVE DATA OR SUSPEND
7077 .SBTTL DIRECTIVE -- RECEIVE DATA OR SUSPEND
7078 ;+
7079 ; THE "RECEIVE DATA OR SUSPEND" DIRECTIVE
7080 ;
7081 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECEIVE A THIRTEEN WORD
7082 ; DATA BLOCK IF AT LEAST ONE IS CAN BE RECEIVED, OR TO SUSPEND IF NO
7083 ; THIRTEEN WORD DATA BLOCKS ARE CAN BE RECEIVED.
7084 ;
7085 ; DATA BLOCKS ARE QUEUED (FIFO) FOR THE TASK VIA THE "SEND DATA" OR
7086 ; THE "SEND DATA & REQUEST RECEIVER" DIRECTIVES.
7087 ;
7088 ; WHEN A SENDER TASK IS SPECIFIED, ONLY DATA SENT BY THE INDICATED
7089 ; TASK IS RECEIVED.
7090 ;
7091 ; A TWO-WORD SENDER TASK NAME, AND THE THIRTEEN-WORD DATA BLOCK, ARE
7092 ; RETURNED IN AN INDICATED FIFTEEN WORD BUFFER, WITH THE TASK NAME IN
7093 ; THE FIRST TWO WORDS.
7094 ;
7095 ; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
7096 ;
7097 ; WD. 00 -- DIC (21.) & DPB SIZE (4.),
7098 ; WD. 01 -- [SENDER TASK NAME (FIRST HALF)],
7099 ; WD. 02 -- [SENDER TASK NAME (SECOND HALF)],
7100 ; WD. 03 -- ADDRESS OF FIFTEEN WORD BUFFER.
7101 ;
7102 ; THE FOLLOWING STATUS IS RETURNED:
7103 ;
7104 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE
7105 ; STATUS OF:
7106 ;
7107 ; +1 -- IF DATA WAS RECEIVED,
7108 ; +2 -- IF TASK WAS SUSPENDED.
7109 ;
7110 ; CC-C SET TO INDICATE REJECTION AND A DIRECTIVE STATUS OF:
7111 ;
7112 ; -02 -- SPECIFIED SENDER TASK NOT INSTALLED,
7113 ;
7114 ; -80 -- DIRECTIVE ISSUED BY "BACKGROUND" TASK,
7115 ; -98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
7116 ; -99 -- DIC OR DPB SIZE IS INVALID.
7117 ;-
7118 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
7119 ; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
7120 ; STACK, AND R0-R5 SET AS FOLLOWS:
7121 ; R0 -- PC OF EMT INSTRUCTION
7122 ; R1 -- POINTER TO WORD FOLLOWING DIC & SIZE
7123 ; R2 -- DPB SIZE
7124 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
7125 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK')
7126 ;
7127 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
7128 ;
7129 ;R5 IS POINTING TO 15-WORD BUFFER IN TASK.
7130 ;
7131 ;R4 IS SET TO STD NODE ADDRESS OF RECEIVER TASK.
7132 ;
7133 ; COMMON ENTRY POINT FOR "RECEIVE", "RECEIVE OR EXIT", & "RECEIVE OR SUSPEND".
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 131-1
DIRECTIVE -- RECEIVE DATA OR SUSPEND
7134 ;
7135
7136 023460 .D.REC::
7137 023460 .D.ROE::
7138 023460 .D.ROS::
7139 023460 016504 000016 MOV A.TD(R5),R4 ;SET R4 TO RECEIVE DEQUE LISTHEAD (IN STD ENTRY).
7140 023464 062704 000024 ADD #S.RF,R4
7141 ;
7142 023470 MFPI (R1)+ ;IS A SENDER TASK SPECIFIED?
023470 012146 MOV (R1)+,-(SP)
7143 023472 MFPI (R1)+ ;MAYBE -- CHECK SECOND HALF OF TASK NAME
023472 012146 MOV (R1)+,-(SP)
7144 023474 052626 BIS (SP)+,(SP)+
7145 023476 001004 BNE 10$ ;NO -- RECEIVE FROM ANY SENDER
7146 ;YES -- RECEIVE ONLY FROM INDICATED SENDER
7147 ;NO -- RECEIVE FROM ANY SENDER
7148 023500 CALL ..PICK ;PICK FIRST NODE FROM REC DEQUE, AND LEAVE NODE
023500 004737 044240' JSR PC,..PICK
7149 ;ADDRESS IN R4.
7150 ;NODE PICKED?
7151 023504 103017 BCC 40$ ;YES -- FILL BUFFER
7152 023506 000440 BR 70$ ;NO -- NO DATA BY ANY SENDER
7153 ;
7154 023510 024141 10$: CMP -(R1),-(R1)
7155 ; R1 IS POINTING TO SPECIFIED SENDER'S TASK NAME IN PREVIOUS SPACE.
7156 ;
7157 023512 CALL ..FSTD ;SET R2 TO STD ENTRY ADDRESS, OR TO
023512 004737 044336' JSR PC,..FSTD
7158 ;ZERO IF TASK NAME NOT FOUND (AND SET
7159 ;CONDITION CODES PER "TST R2").
7160 ;
7161 ;ADVANCE R1 BY FOUR (PAST TASK NAME).
7162 ;
7163 023516 001001 BNE 20$ ;IF TASK NOT INSTALLED, RETURN STS=-02.
7164 023520 104776 TRAP DE.02 ;RETURN STS=-02.
7165 ;
7166 023522 010401 20$: MOV R4,R1 ;SAVE LISTHEAD ADDRESS IN R1, AND
7167 ;SCAN DEQUE FOR DATA SENT BY SENDER PER R2.
7168 023524 30$:
7169 023524 011404 MOV @R4,R4 ;ADVANCE R4 TO NEXT NODE
7170 023526 020401 CMP R4,R1 ;END OF DEQUE?
7171 023530 001427 BEQ 70$ ;YES -- NO DATA BY SPECIFIED SENDER
7172 023532 026402 000004 CMP Q.SI(R4),R2 ;NO -- IS DATA SENT BY SPECIFIED SENDER?
7173 023536 001372 BNE 30$ ;NO -- CHECK NEXT NODE
7174 023540 CALL ..NDEL ;YES -- DELETE NODE FROM DEQUE
023540 004737 044062' JSR PC,..NDEL
7175 ;
7176 ; DATA RECEIVED -- R4 CONTAINS NODE ADDRESS & R1 CONTAINS DATA BUFFER
7177 ; ADDRESS. FILL BUFFER (2-WORD TASK NAME & 13-WORD DATA BLOCK).
7178 ;
7179 023544 40$:
7180 023544 MFPS @R1,R0 ;FIND THE BUFFER ADDRESS
023544 011100 MOV @R1,R0
7181 023546 010401 MOV R4,R1 ;SAVE NODE ADR IN R1 FOR '..RNTP'
7182 023550 062704 000004 ADD #Q.SI,R4 ;ADVANCE R4 TO POINT TO SENDER ID WORD
7183 ;
7184 023554 012403 MOV (R4)+,R3 ;SET R3 TO SENDER STD NODE ADDRESS
DMSAR - SEND & RECEIVE DIRECT MACRO M1113 11-NOV-81 11:13 PAGE 131-2
DIRECTIVE -- RECEIVE DATA OR SUSPEND
7185 ;
7186 023556 50$:
7187 023556 MTPS S.TN+0(R3),(R0)+ ;SET SENDER TASK NAME IN FIRST TWO WORDS
023556 016320 000000 MOV S.TN+0(R3),(R0)+
7188 023562 MTPS S.TN+2(R3),(R0)+
023562 016320 000002 MOV S.TN+2(R3),(R0)+
7189 ;
7190 023566 012703 000015 MOV #13.,R3 ;FILL REMAINING 13 WORDS FROM NODE.
7191 023572 60$:
7192 023572 MTPS (R4)+,(R0)+
023572 012420 MOV (R4)+,(R0)+
7193 023574 077302 SOB R3,60$
7194 ;
7195 023576 012704 001424' MOV #.POLLH,R4 ;RETURN NODE TO POOL
7196 023602 CALL ..NADD ;RETURN NODE (PER R1) TO POOL
023602 004737 044176' JSR PC,..NADD
7197 ;
7198 023606 104401 TRAP DR.01 ;RETURN STS=+1.
7199 ;
7200 ; DATA NOT RECEIVED:
7201 ; IF "RECEIVE", RETURN STS=-08.
7202 ; IF "RECEIVE OR EXIT", EXIT.
7203 ; IF "RECEIVE OR SUSPEND", SUSPEND.
7204 ;
7205 ; R3 CONTAINS THE DIC SIZE.
7206 ; R0 CONTAINS THE ISSUING TASK'S ATL NODE ADDRESS
7207 ;
7208 023610 006303 70$: ASL R3
7209 023612 000173 023552' JMP @80$-2-<17.*2.>(R3)
7210 023616 023624' 80$: .WORD 90$
7211 023620 022520' .WORD .D.EXT
7212 023622 023624' .WORD 90$
7213 ;
7214 023624 104770 90$: TRAP DE.08
7215 ;
DMSDV - SPECIFY SST TABLE DIR MACRO M1113 11-NOV-81 11:13 PAGE 132
DIRECTIVE -- RECEIVE DATA OR SUSPEND
7217 .TITLE DMSDV - SPECIFY SST TABLE DIRECTIVES MODULE
7218 .SBTTL SPECIFY SST TABLE -- COPYRIGHT STATEMENT
7219 023626 IDENT$ 1,0
.IDENT /001000/
7220 ;
7221 ; COPYRIGHT (C) 1975, 1978 BY
7222 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
7223 ;
7224 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
7225 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
7226 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
7227 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
7228 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
7229 ;
7230 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
7231 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
7232 ; CORPORATION.
7233 ;
7234 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7235 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
7236 ;
7237 ; MODULE: SPECIFY SST TABLE DIRECTIVES
7238 ;
7239 ; VERSION: 01-00
7240 ;
7241 ; AUTHOR: R. MCLEAN
7242 ;
7243 ; DATE: 19 JUN 75
7244 ;
7245 ;
7246 ; THIS MODULE CONTAINS:
7247 ;
7248 ; 1 -- CODE TO SERVICE THE "SPECIFY SST VECTOR TABLE FOR TASK" DIRECTIVE.
7249 ;
7250 ; MACRO LIBRARY CALLS
7251
7252 .MCALL MTPS,MFPS,MFPI,MTPI,CALL,RETURN
DMSDV - SPECIFY SST TABLE DIR MACRO M1113 11-NOV-81 11:13 PAGE 133
DIRECTIVE -- SPECIFY SST VECTOR TABLE FOR TASK
7254 .SBTTL DIRECTIVE -- SPECIFY SST VECTOR TABLE FOR TASK
7255 ;+
7256 ; THE "SPECIFY SST VECTOR TABLE FOR TASK" DIRECTIVE
7257 ;
7258 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECORD THE ADDRESS (VIRTUAL) OF
7259 ; A TABLE OF SYNCHRONOUS SYSTEM TRAP SERVICE ROUTINE ENTRY POINTS
7260 ; FOR USE BY THE ISSUING TASK. WHENEVER AN SST SERVICE ROUTINE ENTRY IS
7261 ; SPECIFIED IN BOTH THE TASK'S TABLE & DDT'S TABLE, THE TRAP OCCURS
7262 ; FOR THE DEBUGGING AID, AND NOT FOR THE TASK.
7263 ;
7264 ;
7265 ; WD. 00 -- "ODD ADDRESS" ERROR,
7266 ; WD. 01 -- SEGMENT FAULT,
7267 ; WD. 02 -- T-BIT TRAP OR EXECUTION OF A 'BPT' INSTRUCTION,
7268 ; WD. 03 -- EXECUTION OF AN 'IOT' INSTRUCTION,
7269 ; WD. 04 -- EXECUTION OF A "RESERVED" INSTRUCTION,
7270 ; WD. 05 -- EXECUTION OF "NON-RSX EMT",
7271 ; WD. 06 -- EXECUTION OF A 'TRAP' INSTRUCTION,
7272 ; WD. 07 -- PDP-11/40 FLOATING POINT EXCEPTION.
7273 ;
7274 ; THE TABLE IS OF THE FOLLOWING FORMAT:
7275 ; A THREE WORD DPB OF THE FOLLOWING FORMAT IS USED:
7276 ;
7277 ; WD. 00 -- DIC (43.) & DPB SIZE (3.),
7278 ; WD. 01 -- ADDRESS OF SST VECTOR TABLE,
7279 ; WD. 02 -- NUMBER OF TABLE ENTRIES (8). (MUST BE AT LEAST 8!)
7280 ;
7281 ; THE FOLLOWING STATUS IS RETURNED:
7282 ;
7283 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
7284 ; OF ONE (+1).
7285 ;
7286 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
7287 ;
7288 ; -99 -- DIC OR DPB SIZE IS INVALID.
7289 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
7290 ; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
7291 ; STACK, AND R0-R5 SET AS FOLLOWS:
7292 ; R1 -- ADDRESS OF WORD FOLLOWING DIC & SIZE
7293 ; R2 -- DPB SIZE
7294 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
7295 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
7296 ;
7297 ;
7298 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
7299 ;R1 IS POINTING TO THE ADDRESS OF THE TABLE
7300 ;R5 CONTAINS THE TABLE SIZE
7301 ;
7302 023626 016502 000016 .D.STV::MOV A.TD(R5),R2 ;FIND THE STD ADDRESS OF THIS TASK
7303 023632 MFPS @R1,S.SS(R2) ;SET UP SST VECTOR ADDRESS
023632 011162 000030 MOV @R1,S.SS(R2)
7304 023636 104401 TRAP DR.01 ;VALID DIRECTIVE RETURN
DMAST - SPECIFY AST SERVICE D MACRO M1113 11-NOV-81 11:13 PAGE 134
DIRECTIVE -- SPECIFY SST VECTOR TABLE FOR TASK
7306 .TITLE DMAST - SPECIFY AST SERVICE DIRECTIVES
7307 .SBTTL SPECIFY AST SERVICE -- COPYRIGHT STATEMENT
7308 023640 IDENT$ 1,0
.IDENT /001000/
7309 ;
7310 ; COPYRIGHT (C) 1975, 1978 BY
7311 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
7312 ;
7313 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
7314 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
7315 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
7316 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
7317 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
7318 ;
7319 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
7320 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
7321 ; CORPORATION.
7322 ;
7323 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7324 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
7325 ;
7326 ; MODULE: SPECIFY AST SERVICE DIRECTIVES
7327 ;
7328 ; VERSION: 01-00
7329 ;
7330 ; AUTHOR: R. MCLEAN
7331 ;
7332 ; DATE: 19 JUN 75
7333 ;
7334 ;
7335 ; THIS MODULE CONTAINS:
7336 ;
7337 ; 1 -- CODE TO SERVICE THE "SPECIFY POWER RECOVERY AST" DIRECTIVE,
7338 ;
7339 ; MACRO LIBRARY CALLS
7340 ;
7341 .MCALL CALL,RETURN,MTPS,MTPI,MFPI,MFPS
DMAST - SPECIFY AST SERVICE D MACRO M1113 11-NOV-81 11:13 PAGE 135
DIRECTIVE -- SPECIFY POWER FAIL AST
7343 .SBTTL DIRECTIVE -- SPECIFY POWER FAIL AST
7344 ;+
7345 ; THE "SPECIFY POWER FAIL AST" DIRECTIVE
7346 ;
7347 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO RECORD EITHER (1) THAT POWER
7348 ; RECOVERY AST'S FOR THE ISSUING TASK ARE DESIRED, AND WHERE CONTROL
7349 ; IS TO BE TRANSFERRED WHEN A POWER FAIL AST OCCURS, OR (2) THAT
7350 ; POWER FAIL AST'S FOR THE ISSUING TASK ARE NO LONGER DESIRED.
7351 ;
7352 ; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
7353 ;
7354 ; WD. 00 -- DIC (45..) & DPB SIZE (2.),
7355 ; WD. 01 -- [AST SERVICE ENTRY POINT].
7356 ;
7357 ; WHEN AN "AST SERVICE ENTRY POINT" IS SPECIFIED, FUTURE POWER FAIL
7358 ; AST'S WILL OCCUR FOR THE ISSUING TASK, AND CONTROL WILL BE TRANSFERRED
7359 ; TO THE INDICATED LOCATION WHENEVER A POWER FAIL AST OCCURS.
7360 ;
7361 ; WHEN AN "AST SERVICE ENTRY POINT" IS NOT SPECIFIED (ZERO SECOND DPB
7362 ; WORD), FUTURE POWER FAIL AST'S WILL NOT OCCUR (UNTIL AN AST ENTRY
7363 ; POINT IS SPECIFIED AGAIN).
7364 ;
7365 ; THE FOLLOWING STATUS IS RETURNED:
7366 ;
7367 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
7368 ;
7369 ; OF ONE (+1).
7370 ;
7371 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
7372 ;
7373 ; -08 -- AST ENTRY ALREADY UN-SPECIFIED,
7374 ;
7375 ; -98 -- PART OF DPB IS OUT OF ISSUING TASK'S ADDRESS SPACE,
7376 ; -99 -- DIC OR DPB SIZE IS INVALID.
7377 ;
7378 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
7379 ; DIRECTIVE ISSUING TASK'S PS, PC, & R1-R5 PUSHED ONTO THE
7380 ; STACK, AND R0-R5 SET AS FOLLOWS:
7381 ; R1 -- ADDRESS OF WORD FOLLOWING DIC & SIZE
7382 ; R2 -- DPB SIZE
7383 ; R3 -- DIC (DIRECTIVE IDENTIFICATION CODE)
7384 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
7385 ;
7386 ;
7387 ; R5 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
7388 ;
7389 023640 .D.PUT::MFPS @R1,R1 ;FIND THE LAST WORD OF THE DPB
023640 011101 MOV @R1,R1
7390 023642 001403 BEQ 20$ ;YES -- THEN CHECK IT OUT
7391 023644 010165 000034 10$: MOV R1,A.PF(R5) ;SPECIFY POWER FAIL AST
7392 023650 104401 TRAP DR.01 ;AND RETURN +1
7393 ;
7394 023652 005765 000034 20$: TST A.PF(R5) ;CHECK FOR ALREADY CLEAR
7395 023656 001372 BNE 10$ ;NO -- ALL OK
7396 023660 104770 TRAP DE.08 ;YES -- ERROR
DMREQ - "REQUEST AND EXECUTE" MACRO M1113 11-NOV-81 11:13 PAGE 136
DIRECTIVE -- SPECIFY POWER FAIL AST
7398 .TITLE DMREQ - "REQUEST AND EXECUTE" DIRECTIVES MODULE
7399 .SBTTL REQUEST AND EXECUTE -- COPYRIGHT STATEMENT
7400 023662 IDENT$ 1,0
.IDENT /001000/
7401 ;
7402 ; COPYRIGHT (C) 1975, 1978 BY
7403 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
7404 ;
7405 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
7406 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
7407 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
7408 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
7409 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
7410 ;
7411 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
7412 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
7413 ; CORPORATION.
7414 ;
7415 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7416 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
7417 ;
7418 ; MODULE: "REQUEST" DIRECTIVE
7419 ;
7420 ; VERSION: 01-00
7421 ;
7422 ; AUTHOR: R. MCLEAN
7423 ;
7424 ; DATE: 1 JUL 75
7425 ;
7426 ;
7427 ; THIS MODULE CONTAINS:
7428 ;
7429 ; 1 -- CODE TO SERVICE THE "REQUEST" DIRECTIVE.
7430 ;
7431 ; MACROS
7432 ;
7433 .MCALL CALL,RETURN,MFPS
DMREQ - "REQUEST AND EXECUTE" MACRO M1113 11-NOV-81 11:13 PAGE 137
DIRECTIVE -- TASK SCHEDULING -- REQUEST
7435 .SBTTL DIRECTIVE -- TASK SCHEDULING -- REQUEST
7436 ;+
7437 ; THE "REQUEST" DIRECTIVE
7438 ;
7439 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO MAKE A TASK ACTIVE. I.E., TO
7440 ; RUN CONTINGENT UPON PRIORITY AND MEMORY AVAILABILITY.
7441 ;
7442 ; A SEVEN WORD DPB OF THE FOLLOWING FORMAT IS USED:
7443 ;
7444 ; WD. 00 -- DIC (11.) & DPB SIZE (7.),
7445 ; WD. 01 -- TASK NAME (FIRST HALF),
7446 ; WD. 02 -- TASK NAME (SECOND HALF),
7447 ; WD. 03 -- [PARTITION NAME (FIRST HALF)],
7448 ; WD. 04 -- [PARTITION NAME (SECOND HALF)],
7449 ; WD. 05 -- [PRIORITY],
7450 ; WD. 06 -- [UIC].
7451 ;
7452 ; THE FOLLOWING STATUS IS RETURNED:
7453 ;
7454 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
7455 ; OF ONE (+1).
7456 ;
7457 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
7458 ;
7459 ; -01 -- INSUFFICIENT POOL NODES AVAILABLE,
7460 ; -03 -- PARTITION TOO SMALL FOR TASK,
7461 ; -06 -- HANDLER TASK NOT RESIDENT TO LOAD TASK,
7462 ; -07 -- TASK IS ACTIVE,
7463 ;
7464 ; -94 -- PARTITION NOT IN SYSTEM (NO TPD ENTRY FOUND),
7465 ; -95 -- INVALID PRIORITY SPECIFIED (<0 OR >250.),
7466 ; -99 -- DIC OR DPB SIZE IS INVALID.
7467 ;
7468 ;-
7469 023662 .D.REQ::CALL ..FSTD ;SET R2 TO STD ENTRY ADDRESS, OR TO
023662 004737 044336' JSR PC,..FSTD
7470 ;ZERO IF TASK NAME NOT FOUND (AND SET
7471 ;CONDITION CODES PER "TST R2").
7472 ;
7473 ;ADVANCE R1 BY FOUR (PAST TASK NAME).
7474 ;
7475 ;
7476 023666 001406 BEQ 20$ ;IF TASK IS NOT INSTALLED TRY TO GET IT INSTALLED
7477 023670 CALL .FEPPU ;SET R3 TO TPD ADDRESS IF A PARTITION IS
023670 004737 015550' JSR PC,.FEPPU
7478 ;SPECIFIED, OR TO ZERO IF NOT SPECIFIED.
7479 ;
7480 ;SET R4 TO PRIORITY IF SPECIFIED, OR TO
7481 ;ZERO IF NOT SPECIFIED.
7482 ;
7483 ;
7484 ;ADVANCE R1 BY EIGHT (PAST PARTITION NAME,
7485 ;PRIORITY INDICATOR, AND UIC INDICATOR.).
7486 ;
7487 ;IF INVALID PRIORITY, RETURN STS=-95.
7488 ;IF PARTITION NOT IS SYSTEM, RETURN
7489 ;STS=-94. IF NON-PRIVILEGED TASK HAS
DMREQ - "REQUEST AND EXECUTE" MACRO M1113 11-NOV-81 11:13 PAGE 137-1
DIRECTIVE -- TASK SCHEDULING -- REQUEST
7490 ;SPECIFIED OTHER THAN OWN UIC, RETURN
7491 ;STS=-91. IF SPECIFIED PARTITION IS
7492 ;TOO SMALL FOR TASK, RETURN STS=-03.
7493 ;
7494 ;
7495 ;
7496 ;
7497 023674 10$: CALL .REQS ;MAKE A TASK ACTIVE PER R1, R2, R3, R4 & R5.
023674 004737 015046' JSR PC,.REQS
7498 ;(R1, R2, R3, R4, & R5 ARE ALTERED)
7499 ;
7500 023700 000162 015540' JMP .RQESD(R2) ;RETURN DIRECTIVE STATUS PER SUBROUTINE
7501 ;STATUS IN R2.
7502 ;
7503 023704 012704 024074' 20$: MOV #RQSPB,R4 ;SET UP TO INSERT PARAMETERS INTO SEND
7504 023710 024141 CMP -(R1),-(R1) ;BACKUP TO POINT TO TASK NAME
7505 023712 MFPS (R1)+,(R4)+ ;TASK NAME
023712 012124 MOV (R1)+,(R4)+
7506 023714 MFPS (R1)+,(R4)+
023714 012124 MOV (R1)+,(R4)+
7507 023716 MFPS (R1)+,(R4)+ ;PARTITION NAME
023716 012124 MOV (R1)+,(R4)+
7508 023720 MFPS (R1)+,(R4)+
023720 012124 MOV (R1)+,(R4)+
7509 023722 MFPS (R1)+,(R4)+ ;PRIORITY
023722 012124 MOV (R1)+,(R4)+
7510 023724 012704 001424' MOV #.POLLH,R4 ;PICK A NODE FROM THE POOL
7511 023730 CALL ..PICK
023730 004737 044240' JSR PC,..PICK
7512 023734 103001 BCC 30$ ;GOT ONE
7513 023736 104777 TRAP DE.01 ;NONE RETURN -1
7514 ;
7515 023740 010401 30$: MOV R4,R1 ;SAVE THE NODE ADDRESS
7516 023742 012704 001424' MOV #.POLLH,R4 ;FIND THE LISTHEAD OF THE POOL
7517 023746 021404 CMP @R4,R4 ;ANY NODES?
7518 023750 001003 BNE 35$ ;YES -- PROCEED
7519 023752 CALL ..NADD ;NO RETURN NODE
023752 004737 044176' JSR PC,..NADD
7520 023756 104777 TRAP DE.01 ;NOT ENOUGH NODES
7521 ;
7522 023760 010137 024106' 35$: MOV R1,RQSTD ;SET UP THE STD ADDRESS
7523 023764 005743 TST -(R3) ;BACK UP TO POINT TO CORRECT ENTRY TO INSERT
7524 023766 012704 024074' MOV #RQSPB,R4 ;SET UP PARAMETERS IN STD
7525 023772 012421 MOV (R4)+,(R1)+
7526 023774 012421 MOV (R4)+,(R1)+
7527 023776 005021 CLR (R1)+
7528 024000 012721 040005 MOV #SF.EX!SF.TA!SF.IR,(R1)+ ;DECLARE TASK ACTIVE
7529 024004 062701 000014 ADD #S.RF-S.DP,R1 ;POINT TO SEND LISTHEAD
7530 024010 010111 MOV R1,@R1 ;SET UP LISTHEAD
7531 024012 010161 000002 MOV R1,2(R1)
7532 024016 013704 024106' MOV RQSTD,R4 ;RESTORE STD ADDRESS
7533 024022 011301 40$: MOV @R3,R1 ;MAKE ENTRY IN STD
7534 024024 001403 BEQ 50$ ;END OF LIST
7535 024026 010423 MOV R4,(R3)+ ;MOVE LIST DOWN
7536 024030 010104 MOV R1,R4 ;SET NEXT ENTRY
7537 024032 000773 BR 40$ ;GO NEXT ENTRY
7538 ;
DMREQ - "REQUEST AND EXECUTE" MACRO M1113 11-NOV-81 11:13 PAGE 137-2
DIRECTIVE -- TASK SCHEDULING -- REQUEST
7539 024034 010413 50$: MOV R4,@R3 ;STORE LAST ENTRY
7540 024036 062737 000002 006340' ADD #2,.STDTZ ;UPDATE SIZE
7544 024044 012702 006646' MOV #STDINS,R2 ;SET UP STD NODE OF RECEIVER
7545 024050 012701 024070' MOV #RQSPT,R1 ;SET UP TO SEND TO INSTALL
7546 024054 CALL .SEND ;SEND DATA
024054 004737 023360' JSR PC,.SEND
7547 024060 005004 CLR R4 ;START AT DEFAULT PART & PRI
7548 024062 005003 CLR R3
7549 024064 010102 MOV R1,R2 ;SET UP STD OF INSTALL
7550 024066 000702 BR 10$
7551 ;
7552 024070 024074' RQSPT:: .WORD RQSPB ;POINTER TO SEND BLOCK
7553 024072 000000 .WORD 0 ;EVENT FLAG (NONE)
7554 024074 RQSPB: .BLKW 5 ;DATA TO BE XMITTED
7555 024106 000000 RQSTD: .WORD 0 ;STD ADDRESS
7556 ;
DMGPP - "GET TASK PARAMETERS" MACRO M1113 11-NOV-81 11:13 PAGE 138
DIRECTIVE -- TASK SCHEDULING -- REQUEST
7558 .TITLE DMGPP - "GET TASK PARAMETERS" DIRECTIVE MODULE
7559 .SBTTL GET TASK PARAMETERS -- COPYRIGHT STATEMENT
7560 024110 IDENT$ 1,0
.IDENT /001000/
7561 ;
7562 ; COPYRIGHT (C) 1975, 1978 BY
7563 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
7564 ;
7565 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
7566 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
7567 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
7568 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
7569 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
7570 ;
7571 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
7572 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
7573 ; CORPORATION.
7574 ;
7575 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7576 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
7577 ;
7578 ; MODULE: "GET TASK PARAMETERS" DIRECTIVE
7579 ;
7580 ; VERSION: 01-00
7581 ;
7582 ; AUTHOR: R. MCLEAN
7583 ;
7584 ; DATE: 19 AUG 75
7585 ;
7586 ;
7587 ; THIS MODULE CONTAINS:
7588 ;
7589 ; 1 -- CODE TO SERVICE THE "GET TASK PARAMETERS" DIRECTIVE.
7590 ;
7591 ; MACRO CALLS
7592
7593 .MCALL MTPS,MFPS
DMGPP - "GET TASK PARAMETERS" MACRO M1113 11-NOV-81 11:13 PAGE 139
DIRECTIVE -- GET TASK PARAMETERS
7595 .SBTTL DIRECTIVE -- GET TASK PARAMETERS
7596 ;+
7597 ; THE "GET TASK PARAMETERS" DIRECTIVE
7598 ;
7599 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL AN INDICATED SIXTEEN WORD
7600 ; BUFFER WITH PARAMETERS RELATING TO THE ISSUING TASK.
7601 ;
7602 ; A TWO WORD DPB OF THE FOLLOWING FORMAT IS USED:
7603 ;
7604 ; WD. 00 -- DIC (63.) & DPB SIZE (2.),
7605 ; WD. 01 -- ADDRESS OF SIXTEEN WORD BUFFER.
7606 ;
7607 ; THE SIXTEEN WORD BUFFER IS FILLED AS FOLLOWS:
7608 ;
7609 ; WD. 00 -- ISSUING TASK'S NAME (FIRST HALF),
7610 ; WD. 01 -- ISSUING TASK'S NAME (SECOND HALF),
7611 ; WD. 02 -- PARTITION NAME (FIRST HALF),
7612 ; WD. 03 -- PARTITION NAME (SECOND HALF),
7613 ; WD. 04 -- TASK NAME OF REQUESTOR OF ISSUING TASK (FIRST HALF),
7614 ; WD. 05 -- TASK NAME OF REQUESTOR OF ISSUING TASK (SECOND HALF),
7615 ; WD. 06 -- RUN PRIORITY,
7616 ; WD. 07 -- USER IDENTIFICATION CODE (UIC FOR FILES SYSTEM),
7617 ; WD. 10 -- NUMBER OF LOGICAL I/O UNITS (LUN'S),
7618 ; WD. 11 -- MACHINE TYPE INDICATOR (VIZ., 45. FOR PDP-11/45),
7619 ; WD. 12 -- STD FLAGS WORD,
7620 ; WD. 13 -- [ADDRESS OF TASK SST VECTOR TABLE],
7621 ; WD. 14 -- [SIZE OF TASK SST VECTOR TABLE (IN WORDS)],
7622 ; WD. 15 -- TASK SIZE
7623 ; WD. 16 -- ZERO (RESERVED),
7624 ; WD. 17 -- ZERO (RESERVED).
7625 ;
7626 ; THE FOLLOWING STATUS IS RETURNED:
7627 ;
7628 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
7629 ; OF ONE (+1).
7630 ;
7631 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
7632 ;
7633 ; -98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
7634 ; -99 -- DIC OR DPB SIZE IS INVALID.
7635 ;-
7636 000050 .PDP11=40. ;PDP11/40
7637 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
7638 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
7639 ; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
7640 ; R0 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK'),
7641 ; R1 -- VIRTUAL ADDRESS OF DPB PLUS TWO,
7642 ; R2 -- SIZE OF DPB (IN WORDS),
7643 ; R3 -- TWICE THE DIRECTIVE IDENTIFICATION CODE (2*DIC),
7644 ; R4 -- STD ENTRY ADDRESS OF ISSUING TASK, AND
7645 ; R5 -- LAST WORD OF DPB.
7646 ;
7647 ; R0 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
7648 ;
7649 ;
7650 024110 005046 .D.GPP::CLR -(SP) ;PUSH ZERO
7651 024112 005046 CLR -(SP) ;PUSH ZERO
DMGPP - "GET TASK PARAMETERS" MACRO M1113 11-NOV-81 11:13 PAGE 139-1
DIRECTIVE -- GET TASK PARAMETERS
7652 024114 016504 000016 MOV A.TD(R5),R4 ;FIND STD ADDRESS
7653 024120 016502 000006 MOV A.PD(R5),R2 ;FIND THE TPD ADDRESS
7654 024124 016500 000012 MOV A.HA(R5),R0 ;FIND THE HEADER ADDRESS
7655 024130 016246 000006 MOV T.PZ(R2),-(SP) ;SET PARTITION SIZE (TASK SIZE)
7656 024134 012746 000010 MOV #8.,-(SP) ;PUSH VECTOR TBL SIZE
7657 024140 016046 000106 MOV H.TKVA(R0),-(SP) ;PUSH VECTOR TBL ADDRESS
7658 024144 016446 000006 MOV S.FW(R4),-(SP) ;PUSH STD FLAGS WORD
7659 024150 012746 000050 MOV #.PDP11,-(SP) ;PUSH MACHINE TYPE INDICATOR
7660 024154 016046 000130 MOV H.LUT(R0),-(SP) ;PUSH NUMBER OF LUN'S
7661 024160 013746 001156' MOV .SYUIC,-(SP) ;PUSH UIC
7662 024164 005046 CLR -(SP) ;PUSH RUN PRIORITY
7663 024166 116516 000010 MOVB A.RP(R5),@SP
7664 024172 005046 CLR -(SP)
7665 024174 005046 CLR -(SP)
7666 024176 016246 000002 MOV T.PN+2(R2),-(SP)
7667 024202 016246 000000 MOV T.PN+0(R2),-(SP)
7668 024206 016446 000002 MOV S.TN+2(R4),-(SP);PUSH TASK NAME
7669 024212 016446 000000 MOV S.TN+0(R4),-(SP)
7670 ;
7671 024216 012702 000020 MOV #16.,R2 ;POP SIXTEEN WORDS FROM STACK INTO BUFFER
7672 024222 MFPS @R1,R1 ;PICK UP HIS ADDRESS
024222 011101 MOV @R1,R1
7673 ;IN ISSUING TASK'S ADDRESS SPACE.
7674 ;R5 CONTAINS VIRTUAL ADDRESS OF BUFFER.
7675 024224 10$:
7676 024224 MTPS (SP)+,(R1)+
024224 012621 MOV (SP)+,(R1)+
7677 024226 077202 SOB R2,10$
7678 ;
7679 024230 104401 TRAP DR.01 ;RETURN STS=+1.
7680 ;
DMGMP - "GET PARTITION PARAME MACRO M1113 11-NOV-81 11:13 PAGE 140
DIRECTIVE -- GET TASK PARAMETERS
7682 .TITLE DMGMP - "GET PARTITION PARAMETERS" DIRECTIVE MODULE
7683 .SBTTL GET PARTITION PARAMETERS -- COPYRIGHT STATEMENT
7684 024232 IDENT$ 1,0
.IDENT /001000/
7685 ;
7686 ; COPYRIGHT (C) 1975, 1978 BY
7687 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
7688 ;
7689 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
7690 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
7691 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
7692 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
7693 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
7694 ;
7695 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
7696 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
7697 ; CORPORATION.
7698 ;
7699 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7700 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
7701 ;
7702 ; MODULE: "GET PARTITION PARAMETERS" DIRECTIVE
7703 ;
7704 ; VERSION: 01-00
7705 ;
7706 ; AUTHOR: R. MCLEAN
7707 ;
7708 ; DATE: 19 AUG 75
7709 ;
7710 ;
7711 ; THIS MODULE CONTAINS:
7712 ;
7713 ; 1 -- CODE TO SERVICE THE "GET PARTITION PARAMETERS" DIRECTIVE.
7714 ;
7715 ; MACRO CALLS
7716 ;
7717
7718 .MCALL MFPI,MTPI,MFPS,MTPS
DMGMP - "GET PARTITION PARAME MACRO M1113 11-NOV-81 11:13 PAGE 141
DIRECTIVE -- GET PARTITION PARAMETERS
7720 .SBTTL DIRECTIVE -- GET PARTITION PARAMETERS
7721 ;+
7722 ; THE "GET PARTITION PARAMETERS" DIRECTIVE
7723 ;
7724 ; THIS DIRECTIVE INSTRUCTS THE SYSTEM TO FILL AN INDICATED THREE WORD
7725 ; BUFFER WITH PARTITION PARAMETERS.
7726 ;
7727 ; A FOUR WORD DPB OF THE FOLLOWING FORMAT IS USED:
7728 ;
7729 ; WD. 00 -- DIC (65.) & DPB SIZE (4.),
7730 ; WD. 01 -- [PARTITION NAME (FIRST HALF)],
7731 ; WD. 02 -- [PARTITION NAME (SECOND HALF)],
7732 ; WD. 03 -- ADDRESS OF THREE WORD BUFFER.
7733 ;
7734 ; IF A PARTITION IS NOT SPECIFIED, THE PARTITION OF THE ISSUING TASK
7735 ; IS ASSUMED.
7736 ;
7737 ; THE THREE WORD BUFFER IS FILLED AS FOLLOWS:
7738 ;
7739 ; WD. 00 -- 1/64TH BASE ADDRESS OF PARTITION,
7740 ; WD. 01 -- 1/64TH SIZE OF PARTITION,
7741 ; WD. 02 -- PARTITION FLAGS WORD.
7742 ;
7743 ; THE FOLLOWING STATUS IS RETURNED:
7744 ;
7745 ; CC-C CLEARED TO INDICATE SUCCESSFUL COMPLETION, AND A DIRECTIVE STATUS
7746 ; OF ONE (+0).
7747 ;
7748 ; CC-C SET TO INDICATE REJECTION, AND A DIRECTIVE STATUS OF:
7749 ;
7750 ; -02 -- INDICATED PARTITION NOT IS SYSTEM,
7751 ;
7752 ; -98 -- PART OF DPB OR BUFFER IS OUT OF TASK'S ADDRESS SPACE,
7753 ; -99 -- DIC OR DPB SIZE IS INVALID.
7754 ;-
7755 ; CONTROL IS TRANSFERRED HERE (BY DIRECTIVE DISPATCH ROUTINE) WITH THE
7756 ; DIRECTIVE ISSUING TASK'S PS, PC, & R0-R5 PUSHED ONTO THE
7757 ; KERNEL STACK, AND R0-R5 SET AS FOLLOWS:
7758 ; R0 -- ATL NODE ADDRESS OF ISSUING TASK ('.CRTSK'),
7759 ; R1 -- VIRTUAL ADDRESS OF DPB PLUS TWO,
7760 ; R2 -- SIZE OF DPB (IN WORDS),
7761 ; R3 -- TWICE THE DIRECTIVE IDENTIFICATION CODE (2*DIC),
7762 ; R4 -- STD ENTRY ADDRESS OF ISSUING TASK, AND
7763 ; R5 -- LAST WORD OF DPB.
7764 ;
7765 ; R0 IS LEFT UNALTERED (I.E. POINTING TO ISSUING TASK'S ATL NODE).
7766 ;
7767 ; R5 CONTAINS ADDRESS OF THREE WORD BUFFER.
7768 ;
7769 024232 .D.GMP::MFPI (R1)+ ;PUSH 2-WORD PARTITION NAME (OR TWO ZEROS)
024232 012146 MOV (R1)+,-(SP)
7770 024234 MFPI (R1)+ ;ONTO KERNEL STACK (IN REVERSE ORDER)
024234 012146 MOV (R1)+,-(SP)
7771 ;WAS A NAME SPECIFIED?
7772 024236 001011 BNE 10$ ;YES -- SCAN "TPD" FOR MATCH
7773 024240 005766 000002 TST +2(SP) ;MAYBE -- CHECK FIRST HALF OF NAME
7774 024244 001006 BNE 10$ ;YES -- SCAN "TPD" FOR MATCH
DMGMP - "GET PARTITION PARAME MACRO M1113 11-NOV-81 11:13 PAGE 141-1
DIRECTIVE -- GET PARTITION PARAMETERS
7775 024246 016504 000006 MOV A.PD(R5),R4 ;NO -- REPLACE TWO-ZEROS WITH NAME OF PARTITION
7776 024252 016446 000000 MOV T.PN+0(R4),-(SP) ;IN WHICH ISSUING TASK IS EXECUTING.
7777 024256 016446 000002 MOV T.PN+2(R4),-(SP)
7778 024262 10$:
7779 024262 012703 010032' MOV #.TPDEA,R3 ;SETUP R3 TO SCAN "TPD"
7780 024266 20$:
7781 024266 020327 007552' CMP R3,#.TPDBA ;END OF SCAN?
7782 024272 001001 BNE 30$
7783 024274 104776 TRAP DE.02 ;YES -- RETURN STS=-02.
7784 ;
7785 024276 162703 000020 30$: SUB #T.SZ,R3 ;NO -- REDUCE R3 TO POINT TO TPD ENTRY
7786 024302 010304 MOV R3,R4 ;SETUP R4 TO INDEX THRU TPD ENTRY
7787 024304 022466 000002 CMP (R4)+,+2(SP) ;DOES NAME MATCH?
7788 024310 001366 BNE 20$ ;NO -- CONTINUE SCAN
7789 024312 022416 CMP (R4)+,@SP ;MAYBE -- CHECK SECOND HALF
7790 024314 001364 BNE 20$ ;NO -- CONTINUE SCAN
7791 ;
7792 024316 012703 000002 MOV #2.,R3 ;YES -- MOVE 2-WORDS TO BUF IN PREVIOUS SPACE
7793 024322 MFPS @R1,R1 ;FIND BUFFER
024322 011101 MOV @R1,R1
7794 024324 011400 MOV @R4,R0 ;FIND PARTITION START
7795 024326 40$:
7796 024326 012446 MOV (R4)+,-(SP)
7798 024330 006216 ASR @SP
7799 024332 006216 ASR @SP
7800 024334 006216 ASR @SP
7801 024336 006216 ASR @SP
7802 024340 006216 ASR @SP
7803 024342 006216 ASR @SP
7804 024344 042716 176000 BIC #176000,@SP ;MASK OFF CARRY FROM SHIFT
7806 024350 MTPI (R1)+
024350 012621 MOV (SP)+,(R1)+
7807 024352 077313 SOB R3,40$
7808 024354 005724 TST (R4)+ ;RETURN FLAGS WORD
7809 024356 MTPS (R4)+,(R1)+ ;SET IN USER'S AREA
024356 012421 MOV (R4)+,(R1)+
7810 ;
7814 024360 000137 013460' JMP .DR.NS ;RETURN R0 STATUS
7816 ;
RUN - CLOCK HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 142
DIRECTIVE -- GET PARTITION PARAMETERS
7818 .TITLE RUN - CLOCK HANDLER
7819 .SBTTL CLOCK HANDLER -- COPYRIGHT STATEMENT
7820 ;
7821 ; COPYRIGHT (C) 1975, 1978 BY
7822 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
7823 ;
7824 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
7825 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
7826 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
7827 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
7828 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
7829 ;
7830 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
7831 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
7832 ; CORPORATION.
7833 ;
7834 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7835 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
7836 ;
7837 ; MODULE: "CLOCK TICK RECOGNITION"
7838 ;
7839 ; VERSION: 07-00
7840 ;
7841 ; AUTHOR: R. MCLEAN
7842 ;
7843 ; DATE: 19 JUL 75
7844 ;
7845 ;
7846 ; THIS MODULE CONTAINS:
7847 ;
7848 ; 1 -- CODE TO SERVICE CLOCK TICK RECOGNITION
7849 ;
7850 ;
7851 ; MODIFICATIONS:
7852 ;
7853 ; NO. DATE PROGRAMMER PURPOSE
7854 ; --- ---- ---------- -------
7855 ; 001 04-MAR-77 R. BELANGER CHANGE MIDNIGHT RECOGNITION
7856 ;
7857 ; MACROS
7858 ;
7859 .MCALL CALL,RETURN,DIR$,.CRASH,.STKM
RUN - CLOCK HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 143
CLOCK TICK RECOGNITION
7861 .SBTTL CLOCK TICK RECOGNITION
7862 ;
7863 ; UPDATE TICKS
7864 ;
7865 024364 012704 001134' .TICK:: MOV #.TICKS,R4 ;POINT TO BASE OF TIME PARAMETERS
7866 024370 005214 INC @R4 ;UPDATE TICKS
7867 024372 023714 001154' CMP .TKPS,@R4 ;1 SEC YET?
7868 024376 101020 BHI 3$ ;NO DONE
7869 ;
7870 ; TICKS OVERFLOWED, UPDATE SECONDS
7871 ;
7872 024400 005024 CLR (R4)+ ;CLEAR FRACTIONS
7873 024402 000337 001152' SWAB .SSM+2 ;FIND IF TIME TO UPDATE SSM
7874 024406 001414 BEQ 3$ ;NO -- CONTINUE
7875 024410 005237 001150' INC .SSM ;UPDATE SECONDS SINCE MIDNIGHT
7876 024414 022737 124277 001150' CMP #30.*60.*24.-1,.SSM ;MIDNIGHT?
7877 024422 101006 BHI 3$ ;NO, CAN INCREMENT
7878 024424 006337 001136' ASL .CLKSW ;GIVE THE 10 TIME TO CHANGE IT'S DATE -- WE DON'T
7879 ; +++001 RREMOVED 10. INSTRUCTIONS
7880 024430 001003 BNE 3$ ; +++001 NO -- GO ON
7881 024432 012737 177777 001136' MOV #-1,.CLKSW ; +++001 YES -- FLAG NULL TASK TO REQUEST
7882 ; +++001 TIME-OF-DAY TASK
7883 ;
7884 ;INCREMENT IN NO OVERFLOW CASES - SECONDS OR MINUTES
7885 ;
7886 024440 3$:
7887 ;
7888 ; SET UP FOR LINE FREQ. SERVICE
7889 ;
7890 ;
7891 024440 012704 002370' 4$: MOV #.CLKBA,R4 ;DELETE THE ENTRY OR RESCHEDULE IT
7892 024444 012405 10$: MOV (R4)+,R5 ;NO -- AN ENTRY HERE?
7893 024446 001435 BEQ 40$ ;NO -- GO
7894 024450 005724 TST (R4)+ ;OVER AST ADDRESS
7895 024452 005324 DEC (R4)+ ;YES --DECREMENT THE COUNT
7896 024454 001403 BEQ 30$ ;END OF COUNT SET EVENT FLAG
7897 024456 062704 000006 20$: ADD #6,R4 ;NO -- LOOK AT NEXT ENTRY
7898 024462 000770 BR 10$
7899 ;
7900 024464 30$: CALL ..DSEV ;DECLARE A SIG EVENT
024464 004737 044026' JSR PC,..DSEV
7901 024470 012464 177774 MOV (R4)+,-4(R4) ;RESET RESCHEDULE INTERVAL
7902 024474 052434 BIS (R4)+,@(R4)+ ;DO THE SETTING OF THE EVENT FLAG
7903 024476 010446 MOV R4,-(SP) ;SAVE R4
7904 024500 016404 177766 MOV -12(R4),R4 ;FIND AST ADDRESS
7905 024504 001405 BEQ 35$ ;NONE -- FORGET IT
7906 024506 CALL .STAST ;START AST
024506 004737 015730' JSR PC,.STAST
7907 024512 103002 BCC 35$ ;GOT IT -- CONTINUE
7908 024514 010437 001050' MOV R4,.CKASS ;NOT QUITE -- TASK IS CURRENT GET AT ..INTX
7909 024520 012604 35$: MOV (SP)+,R4
7910 024522 005764 177772 TST -6(R4) ;RESCHEDULE?
7911 024526 001346 BNE 10$ ;NO -- DO NEXT ENTRY
7912 024530 162704 000014 SUB #C.SZ,R4 ;BACK UP POINTER
7913 024534 CALL .CKDEL ;DELETE ENTRY
024534 004737 043150' JSR PC,.CKDEL
7914 024540 000741 BR 10$ ;AND TRY AGAIN
RUN - CLOCK HANDLER MACRO M1113 11-NOV-81 11:13 PAGE 143-1
CLOCK TICK RECOGNITION
7915 ;
7916 024542 105337 001015' 40$: DECB .SERFG+1 ;COUNT DOWN CLOCK COUNTER
7917 024546 001306 BNE .TICK ;AND GO DO ANOTHER IF WE MISSED ONE
7918 024550 012604 MOV (SP)+,R4 ;RESTORE REGISTERS
7919 024552 012605 MOV (SP)+,R5
7920 024554 053737 001016' 001014' BIS .SEWFL,.SERFG ;SET SIG EVENT FLAG IF NECESSARYH
7921 024562 005037 001016' CLR .SEWFL ;AND CLEAR FLAG
7922 024566 000137 014632' JMP ..INTX ;AND RETURN TO INTERRUPT EXIT
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 144
CLOCK TICK RECOGNITION
7924 .TITLE QPRDRV -- QUEUED PROTOCOL DRIVER FOR RSX-20F
7925 .SBTTL QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT
7926 024572 IDENT$ 14,43
.IDENT /014430/
7927
7928 ;
7929 ; COPYRIGHT (C) 1975, 1980 BY
7930 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
7931 ;
7932 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
7933 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
7934 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
7935 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
7936 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
7937 ;
7938 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
7939 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
7940 ; CORPORATION.
7941 ;
7942 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7943 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
7944 ;
7945 ;
7946 ; MODULE: QUEUED PROTOCOL DRIVER FOR RSX-20F
7947 ;
7948 ; VERSION: V14-43
7949 ;
7950 ; AUTHOR: R. MCLEAN
7951 ;
7952 ; DATE: 19 JUL 75
7953 ;
7954 ; THIS MODULE CONTAINS:
7955 ;
7956 ; 1 -- QUEUED PROTOCOL SERVICE
7957 ;
7958 ; MODIFICATIONS:
7959 ;
7960 ; NO. DATE PROGRAMMER PURPOSE
7961 ; --- ---- ---------- -------
7962 ; 001 21-OCT-76 A. PECKHAM INSERT CODING TO COUNT
7963 ; DOORBELLS.
7964 ; 002 08-NOV-76 K. RETI ADD SUPPRESS SEND-ALL
7965 ; R. BELANGER CODE.
7966 ; 003 03-FEB-77 R. BELANGER ADDED GENERALIZED DL-11E
7967 ; SUPPORT
7968 ; 004 10-FEB-77 A. PECKHAM KEEP TO-11 QUEUE COUNT
7969 ; STRAIGHT
7970 ; 005 16-FEB-77 A. PECKHAM SET SPEED OF REMOTE LINES
7971 ; 006 07-MAR-77 A. PECKHAM REORGANIZE SENDALL
7972 ; 007 08-MAR-77 A. PECKHAM FIX "XOFF" FOR CTY
7973 ; 008 14-MAR-77 R. BELANGER CONDITIONALLY REMOVE
7974 ; SUPPORT FOR UNUSED DTE-20
7975 ; DIRECTIVES
7976 ; 009 31-MAY-77 R. BELANGER ADD SUPPORT FOR KLINIK
7977 ; PARAMETER PASSING
7978 ; 010 15-JUL-77 R. BELANGER ADD AUTO-BAUD SUPPORT
7979 ; 011 25-JUL-77 R. BELANGER FIX BUG IN INITIAL STATUS
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 144-1
QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT
7980 ; 012 25-AUG-77 R. BELANGER ADD KL POWERFAIL SUPPORT
7981 ; 013 02-SEP-77 R. BELANGER XON/XOFF BUG FIX
7982 ; TCO 4.2067 30-OCT-78 R. BELANGER FIX XON TO ACCOUNT FOR NULL
7983 ; BYTE IN THREAD PACKET
7984 ; TCO 4.2096 30-NOV-78 R. BELANGER REMOVE EXTRANEOUS CODE
7985 ; FROM "XON" PROCESSOR
7986 ; TCO 4.2181 01-FEB-79 R. BELANGER ADD ENABLE/DISABLE XON/XOFF
7987 ; MESSAGE.
7988 ; MOVE DEVICE DEPENDENT XON/XOFF
7989 ; PROCESSING TO TERMINAL DRIVER.
7990 ; TCO 4.2216 16-MAR-79 R. BELANGER ALLOW DTE-20 TO RUN AT FULL SPEED
7991 ; TCO 4.2246 16-MAY-79 R. BELANGER ELIMINATE RACE CONDITION IN SENDALL
7992 ; TCO 4.2284 25-MAY-79 R. BELANGER ADD NEW MODEM CONTROL SUPPORT
7993 ; TCO 4.2524 01-OCT-79 R. BELANGER FLUSH OUPUT QUEUE WHEN LINE SPEED SET TO 0
7994 ; TCO 5.1004 10-OCT-79 R. BELANGER ADD NON-CONTIGUOUS DEVICE SUPPORT
7995 ; TCO 5.1015 25-OCT-79 R. BELANGER ADD NEW TERMINAL INPUT CONTROL
7996 ; TCO 5.1016 01-NOV-79 R. BELANGER ADD BREAK-THROUGH WRITE
7997 ; TCO 4.1.1035 16-NOV-79 R. BELANGER ADD QUEUE ARBITRATION MECHANISM
7998 ; PROCESS PACKETS INIBITTED
7999 ; TCO 4.1.1091 12-FEB-80 R. BELANGER FIX MISSING DM-11/BB PROBLEM
8000 ; TCO 4.1.1092 25-FEB-80 R. BELANGER LOCAL TERMINAL INPUT CONTROL
8001 ; TCO 4.1.1104 05-MAR-80 R. BELANGER SEND KEEP-ALIVE FROM DTE SERVICE
8002 ; TCO 4.1.1105 11-MAR-80 R. BELANGER CHANGE "EF.PR1" RECOGNITION
8003 ; TCO 4.1.1121 19-MAR-80 R. BELANGER BREAK QUEUED PROTOCOL DRIVER AND
8004 ; DTE-20 DRIVER INTO SEPARATE MODULES
8005 ; TCO 4.1.1137 05-APR-80 R. BELANGER LIMIT TO-10 QUEUE NODE SIZE TO 60 BYTES
8006 ; TCO 5.1127 08-AUG-80 S. LEAPLINE ADD HOST DEBUG MODE MESSAGE
8007 ; TCO 5.1248 26-JAN-81 S. LEAPLINE SAVE R0 FOR XOFF/XON CODE
8008 ; TCO 5.1249 26-JAN-81 S. LEAPLINE FIX BUG IN SETSPD, HIT WHEN
8009 ; GIVEN AN INCORRECT LINE SPEED
8010 ; 014 18-AUG-81 S. LEAPLINE REMOVE WSIG$S IN SENDALL
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 145
QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT
8012 ;
8013 ; MACRO DEFINITIONS
8014 ;
8015
8016 .MCALL RQST$,WTSE$S,$DEF,WSIG$S,.INH5,.ENB5
8017 .MCALL .DQPEN,MRKT$,WTLO$,WTSE$,.CRASH,CALL,RETURN,.STKM,DIR$,.INH6,.ENB6
8018
8019 024572 $DEF
8020
8021 ;
8022 ; LOCAL MACROS
8023 ;
8024 ; MACRO TO ENABLE TASK SWITCHING
8025 ;
8026 .MACRO .ENBT
8027 MOV @#PS,-(SP)
8028 BIC #PRI7,@#PS
8029 .ENDM
8030 ;
8031 ; MACRO TO DISABLE TASK SWITCHING
8032 ;
8033 .MACRO .INHT
8034 MOV (SP)+,@#PS
8035 .ENDM
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 146
QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT
8037 ;
8038 ; DATA AREAS
8039 ;
8040 000060 E.OPSZ==60 ; [4.1.1137] OPTIMAL SIZE FOR A TO 10 QUEUE
8041 ;
8042 ; LOCAL DEFINITIONS FOR DTE20 TASK
8043 ;
8044 000100 EF.TED==100 ; TO ELEVEN DONE EVENT FLAG
8045 ;
8046 ; TO ELEVEN QUEUE ENTRY
8047 ;
8048 000000 E.FP==0 ; FORWARD POINTER
8049 000002 E.LS==2 ; LIST SIZE
8050 000004 E.FN==4 ; FUNCTION CODE
8051 000006 E.DV==6 ; DEVICE CODE
8052 000010 E.FW==10 ; FUNCTION FIRST WORD
8053 ;
8054 ; FUNCTION CODE DEFINITIONS
8055 ;
8056 000001 BC.RQD==1 ; REQUEST DEVICES
8057 000002 BC.HAD==2 ; HERE ARE DEVICES
8058 000003 BC.STR==3 ; STRING DATA
8059 000004 BC.LNC==4 ; LINE/CHARACTER DATA
8060 000005 BC.RDS==5 ; RETURN DEVICE STATUS
8061 000006 BC.SDS==6 ; SET DEVICE STATUS
8062 000007 BC.HDS==7 ; HERE IS DEVICE STATUS
8063 000010 BC.DES==10 ; DEVICE ERROR STATUS
8064 000011 BC.RTD==11 ; RETURN TIME OF DAY
8065 000012 BC.HTD==12 ; HERE IS TIME OF DAY
8066 000013 BC.FOD==13 ; FLUSH OUTPUT DEVICE QUEUE
8067 000014 BC.SNA==14 ; SEND ALL
8068 000015 BC.TDU==15 ; DEVICE DIAL UP
8069 000016 BC.THU==16 ; DEVICE HANG UP
8070 000017 BC.SAK==17 ; ACKNOWLEDGE DEVICE DONE
8071 000020 BC.XOF==20 ; X-OFF (TTY ONLY)
8072 000021 BC.XON==21 ; X-ON (TTY ONLY)
8073 000022 BC.STS==22 ; SET TTY SPEED
8074 000023 BC.SLA==23 ; SET LINE ALLOCATION
8075 000024 BC.BTP==24 ; 11 REBOOT WORD
8076 000025 BC.AKA==25 ; ACK ALL
8077 000026 BC.SPT==26 ; START/STOP LINE
8078 000027 BC.EDR==27 ; ENABLE/DISABLE REMOTES
8079 000030 BC.LDR==30 ; LOAD LP RAM
8080 000031 BC.LDV==31 ; LOAD LP VFU
8081 000032 BC.NSA==32 ; SUPPRESS SEND-ALL FUNCTION (SET OR CLEAR BIT)
8082 000033 BC.SKP==33 ; SEND KLINIK PARAMETERS
8083 000034 BC.XEN==34 ; [4.2181] ENABLE/DISABLE XON/XOFF
8084 000035 BC.BTW==35 ; [5.1016] BREAK-THROUGH WRITE
8085 000036 BC.DEB==36 ; [5.1127] HOST DEBUG MODE
8086 000037 BC.NDM==37 ; [5.1127] CLEAR HOST DEBUG MODE
8087 000040 BC.FNM==40 ; [5.1016] 1 GREATER THAN MAX FUNCTION
8088 ;
8089 ; DPB'S
8090 ;
8091
8092 024572 WTLODT:
8093 024572 WTLO$ 1,EF.TED ; WAIT FOR TEN DONE
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 146-1
QUEUED PROTOCOL DRIVER -- COPYRIGHT STATEMENT
024572 053 003 .BYTE 43.,3
024574 000001 .WORD 1
024576 000100 .WORD EF.TED
8094
8095 024600 .RQSPD:: ; ALSO CALLED FROM "TTYDRR"
8096 024600 RQST$ SETSPD
024600 013 007 .BYTE 11.,7
024602 073634 074504 .RAD50 /SETSPD/
024606 000000 000000 .WORD 0,0
024612 000000 .WORD
024614 000 000 .BYTE ,
8097
8098 ;
8099 ; LOCAL DATA
8100 ;
8101
8102 024616 SPDTBL:
8103 024616 000000 .WORD 0 ; ZERO BAUD
8104 024620 000062 .WORD 50. ; 50 BAUD
8105 024622 000113 .WORD 75. ; ETC ......
8106 024624 000156 .WORD 110.
8107 024626 000206 .WORD 134.
8108 024630 000226 .WORD 150.
8109 024632 000310 .WORD 200.
8110 024634 000454 .WORD 300.
8111 024636 001130 .WORD 600.
8112 024640 002260 .WORD 1200.
8113 024642 003410 .WORD 1800.
8114 024644 004540 .WORD 2400.
8115 024646 011300 .WORD 4800.
8116 024650 022600 .WORD 9600.
8117
8118 000016 SPDTBZ=.-SPDTBL/2
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 147
QUEUED PROTOCOL DRIVER -- PROTOCOL PACKET SERVICE DISPATCH
8120 .SBTTL QUEUED PROTOCOL DRIVER -- PROTOCOL PACKET SERVICE DISPATCH
8121
8122 024652 DTEHD::
8123 024652 .STKM 0,0,0,0,0,0,0,QPRDTE,174000,DTESP
024720 000000 000000 000000 .WORD 0,0,0,0
024726 000000
024746 174000 025156' 025132' .WORD 174000,QPRDTE,DTESP
025002 000005 .WORD 5
025004 010232' .WORD TTPEN
025006 000000 .WORD 0
025010 000000 .WORD 0
025012 000000 .WORD 0
025014 000000 .WORD 0
025016 000000 .WORD 0
025020 000000 .WORD 0
025022 000000 .WORD 0
025024 000000 .WORD 0
025026 000000 .WORD 0
025030 000000 .WORD 0
025132 000000 .WORD 0
025134 000000 .WORD 0
025136 000000 .WORD 0
025140 000000 .WORD 0
025142 000000 .WORD 0
025144 000000 .WORD 0
025146 025156' .WORD QPRDTE
025150 174000 .WORD 174000
8124
8125 .ENABL LSB
8126
8127 025152 QPRDTC::
8128 025152 .ENB6 ;;; [4.1.1035] ALLOW INTERRUPTS
025152 012637 177776 MOV (SP)+,@#PS
8129 025156 QPRDTE::
8130 025156 DIR$ #WTLODT ; WAIT FOR TEN DONE
025156 012746 024572' MOV #WTLODT,-(SP)
025162 104375 EMT 375
8131 025164 10$:
8132 025164 .INH6 ; INHIBIT INTERRUPTS
025164 013746 177776 MOV @#PS,-(SP)
025170 112737 000300 177776 MOVB #300,@#PS
8133 025176 013700 001006' MOV .CRTSK,R0 ;;; POINT TO CURRENT TASK
8134 025202 005060 000020 CLR A.EF(R0) ;;; AND CLEAR THE EVENT FLAGS.
8135 025206 20$:
8136 025206 013704 001334' MOV TO11Q,R4 ;;; PICK IT FROM THE QUEUE
8137 025212 001757 BEQ QPRDTC ;;; NO QUEUE -- BACK TO SLEEP
8138 025214 011437 001334' MOV @R4,TO11Q ;;; SET UP THE NEXT LISTHEAD OR ZERO
8139 025220 010400 MOV R4,R0 ;;; SET IN R0 ALSO
8140 025222 116401 000004 MOVB E.FN(R4),R1 ;;; FIND THE FUNCTION CODE OF THE REQUEST
8141 025226 006301 ASL R1 ;;; MAKE IT 2* FUNCTION
8142 025230 000171 025300' JMP @DFTBL-2(R1) ;;; GO TO THE CORRECT ROUTINE
8143 ;
8144 025234 QPRDTL:
8145 025234 .ENB6 ;;; [4.1.1035] ALLOW INTERRUPTS
025234 012637 177776 MOV (SP)+,@#PS
8146 025240 000240 NOP ; [4.1.1035] LET AN INTERRUPT HAPPEN
8147 025242 005737 001012' TST .COMEF+2 ; [4.1.1105] ARE WE STILL IN PRIMARY PROTOCOL??
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 147-1
QUEUED PROTOCOL DRIVER -- PROTOCOL PACKET SERVICE DISPATCH
8148 025246 100346 BPL 10$ ; [4.1.1105] NO -- CONTINUE EMPTYING TO 11 QUEUE
8149 025250 .INH6 ; [4.1.1035] YES -- DISALLOW INTERRUPTS
025250 013746 177776 MOV @#PS,-(SP)
025254 112737 000300 177776 MOVB #300,@#PS
8150 025262 013704 001326' MOV TO10Q,R4 ;;; [4.1.1035] POINT TO THE TO 10 QUEUE
8151 025266 022704 001326' CMP #TO10Q,R4 ;;; [4.1.1035] ANYTHING THERE??
8152 025272 001745 BEQ 20$ ;;; [4.1.1035] NO -- GO ON
8153 025274 CALL .STTNF ;;; [4.1.1121] YES -- FORCE THE START
025274 004737 031370' JSR PC,.STTNF
8154 025300 000742 BR 20$ ;;; [4.1.1035] UNLOAD THE REST OF THE TO 11 QUEUE
8155 ;
8156
8157 .DSABL LSB
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 148
QUEUED PROTOCOL DRIVER -- DISPATCH TABLE
8159 .SBTTL QUEUED PROTOCOL DRIVER -- DISPATCH TABLE
8160
8161 025302 DFTBL::
8162 025302 026224' HICTS ; (01) HERE IS INITIAL STATUS
8163 025304 025400' UNRGFN ; (02) UNRECGONIZED FUNCTION
8164 025306 026420' STRDAT ; (03) STRING DATA FOR DEVICE
8165 025310 026464' LINCHR ; (04) LINE NUMBER CHARACTER DATA FOR DEVICE
8166 025312 026420' RTDVST ; (05) RETURN DEVICE STATUS
8167 025314 026420' STDVST ; (06) SET DEVICE STATUS FOR DEVICE
8168 025316 026420' HIDVST ; (07) HERE IS DEVICE STATUS
8169 025320 025400' UNRGFN ; (10) ERROR DEVICE STATUS
8170 025322 026374' RTNTOD ; (11) RETURN TIME OF DAY
8171 025324 026626' RETTOD ; (12) SEND TIME OF DAY
8172 025326 026664' FLDVOT ; (13) FLUSH DEVICE OUTPUT QUEUE
8173 025330 027000' SNDALL ; (14) SEND ALL TTY'S
8174 025332 025400' UNRGFN ; (15) DIAL UP
8175 025334 025466' HANGUP ; (16) HANG UP
8176 025336 025610' ACKNOW ; (17) ACKNOWLEDGE END OF DATA IN BUFFER
8177 025340 026166' XOFF ; (20) XOFF (TTY)
8178 025342 026202' XON ; (21) XON (TTY)
8179 025344 025642' SETSPD ; (22) SET TTY SPEED
8180 025346 025622' SETLIN ; (23) SET LINE ALLOCATION
8181 025350 025400' UNRGFN ; (24) SET RELOAD PARAMETERS
8182 025352 026220' DEAND1 ; (25) ACK ALL
8183 025354 026042' STPLIN ; (26) STOP LINE
8184 025356 025406' EDRMT ; (27) ENABLE/DISABLE REMOTE LINES
8185 025360 026420' LDLPR ; (30) LOAD LP RAM
8186 025362 026420' LDLPV ; (31) LOAD LP VFU
8187 025364 025424' NOSNDA ; (32) SET OR CLEAR "SUPPRESS SEND-ALL" BIT
8188 025366 026722' RCVKLP ; (33) RECIEVE KLINIK PARAMETERS FROM KL
8189 025370 025416' ENBXOF ; [4.2181] (34) ENABLE/DISABLE XOFF PROCESSING
8190 025372 026140' BTWCHR ; [5.1016] (35) BREAK-THROUGH WRITE
8191 025374 026762' SETDEB ; [5.1127] (36) HOST DEBUG MODE
8192 025376 026772' CLRDEB ; [5.1127] (37) CLEAR HOST DEBUG MODE
8193
8194 000076 DFTSZ=.-DFTBL ; LEGAL FUNCTIONS COUNT *2
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 149
QUEUED PROTOCOL DRIVER -- UNRECOGNIZED FUNCTION
8196 .SBTTL QUEUED PROTOCOL DRIVER -- UNRECOGNIZED FUNCTION
8197
8198 ;
8199 ; UNRGFN -- UNRECOGNIZED FUNCTION
8200 ;
8201
8202 025400 UNRGFN::
8203 025400 .CRASH ILF ;;; ILF -- ILLEGAL FUNCTION
025400 000004 IOT
025402 111 114 106 .ASCIZ /ILF/
025405 000
8204 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 150
QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE REMOTE TERMINALS
8206 .SBTTL QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE REMOTE TERMINALS
8207
8208 ;
8209 ; ENABLE/DISABLE REMOTE TERMINALS -- FUNCTION 27
8210 ;
8211
8212 025406 EDRMT::
8213 025406 016037 000010 002576' MOV E.FW(R0),.INHDM ;;; ENABLE/DISABLE DM-11/BB'S
8214 025414 000511 BR DEAND3 ;;; AND QUIT
8215 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 151
QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALL AND XOFF PROC
8217 .SBTTL QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALL AND XOFF PROCESSING
8218
8219 ;
8220 ; ENBXOF FUNCTION (ENABLE/DISABLE XOFF PROCESSING) FUNCTION 34
8221 ;
8222
8223 .ENABL LSB
8224
8225 025416 ENBXOF::
8226 025416 012705 000020 MOV #TT.XEN,R5 ;;; [4.2181] SET UP STATUS BIT
8227 025422 000402 BR 10$ ;;; [4.2181] DO COMMON CODE
8228 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 152
QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALLS
8230 .SBTTL QUEUED PROTOCOL DRIVER -- ENABLE/DISABLE SENDALLS
8231
8232 ;
8233 ; NOSNDA FUNCTION (SET/CLEAR SUPPRESS SEND-ALL BIT) FUNCTION 32
8234 ;
8235
8236 025424 NOSNDA:: ;;; [4.2181] SET OR CLEAR BIT TO SUPPRESS SEND-ALLS
8237 025424 012705 000400 MOV #TT.NSA,R5 ;;; [4.2181] SET UP STATUS BIT
8238 025430 10$:
8239 025430 000360 000010 SWAB E.FW(R0) ;;; [4.2181] SET UP DEVICE CODE FOR "FDVNMM"
8240 025434 CALL FDVNMM ;;; [4.2181] GET R2 TO POINT TO BLOCK FOR THIS LINE
025434 004737 027450' JSR PC,FDVNMM
8241 025440 040562 000006 BIC R5,STSW1(R2) ;;; [4.2181] ASSUME A CLEAR
8242 025444 042762 000200 000006 BIC #TT.XOF,STSW1(R2) ;;; [5.1004] CLEAR XOFF BIT ALWAYS
8243 025452 105760 000010 TSTB E.FW(R0) ;;; [4.2181] TEST ARGUMENT BYTE
8244 025456 001470 BEQ DEAND3 ;;; [4.1.1035] IF .NE. 0,
8245 025460 050562 000006 BIS R5,STSW1(R2) ;;; [4.2181] THEN SET BIT.
8246 025464 000465 BR DEAND3 ;;; [4.1.1035] FREE THE NODE
8247 ;
8248
8249 .DSABL LSB
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 153
QUEUED PROTOCOL DRIVER -- HANGUP
8251 .SBTTL QUEUED PROTOCOL DRIVER -- HANGUP
8252
8253 ;
8254 ; HANGUP -- FUNCTION 16
8255 ;
8256
8257 025466 HANGUP::
8258 025466 CALL FDVNMM ;;; FIND DEVICE
025466 004737 027450' JSR PC,FDVNMM
8259 025472 010205 MOV R2,R5 ;;; SET UP TABLE ADDRESS
8260 025474 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
8261 025502 001411 BEQ 10$ ;;; NO -- GO ON
8262 025504 105737 001226' TSTB .KLNSW+0 ;;; YES -- IS KLINIK ACTIVE??
8263 025510 003406 BLE 10$ ;;; NOT THAT WE CARE
8264 025512 010546 MOV R5,-(SP) ;;; YES -- SAVE POINTER
8265 ;
8266 ; HERE TO HANG UP THE KLINIK LINE
8267 ;
8268 025514 013705 002636' MOV KLNPTR,R5 ;;; POINT TO KLINIK LINE
8269 025520 CALL .DLHUP ;;; HANG UP THE KLINIK LINE
025520 004737 040214' JSR PC,.DLHUP
8270 025524 012605 MOV (SP)+,R5 ;;; RESTORE POINTER
8271 025526 10$:
8272 025526 022705 003046' CMP #DHTBL,R5 ;;; IS THIS A DH-11??
8273 025532 101023 BHI 20$ ;;; NO -- DL-11'S ARE A SPECIAL CASE
8274 ;
8275 ; HERE TO HANG UP A DM-11/BB
8276 ;
8277 025534 005001 CLR R1 ;;; YES -- FIND THE LINE NUMBER
8278 025536 156001 000011 BISB E.FW+1(R0),R1 ;;; SO
8279 025542 162701 000005 SUB #DLCNT,R1 ;;; REMOVE DL-11'S
8280 025546 042701 177760 BIC #177760,R1 ;;; MAKE IT A UNIT NUMBER
8281 025552 CALL FNDDM ;;; [5.1004] FIND THE DM-11/BB ADDRESS
025552 004737 027366' JSR PC,FNDDM
8282 025556 001430 BEQ DEAND3 ;;; [4.1.1091] NOT THERE -- IGNORE
8283 025560 CALL .DMHUP ;;; HANGUP
025560 004737 040144' JSR PC,.DMHUP
8284 025564 032765 000040 000006 BIT #TT.ABL,STSW1(R5) ;;; IS THIS AN AUTO-BAUD LINE??
8285 025572 001422 BEQ DEAND3 ;;; [4.1.1035] NO -- GO ON
8286 025574 CALL .DHSPR ;;; YES RESET LINE SPEED TO DEFAULT
025574 004737 037460' JSR PC,.DHSPR
8287 025600 000417 BR DEAND3 ;;; [4.1.1035] RETURN THE NODE
8288 ;
8289 ;
8290 ; HERE TO HANG UP A DL-11E
8291 ;
8292 025602 20$:
8293 025602 CALL .DLHUP ;;; HANG IT UP
025602 004737 040214' JSR PC,.DLHUP
8294 025606 000414 BR DEAND3 ;;; [4.1.1035] RETURN THE NODE
8295 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 154
QUEUED PROTOCOL DRIVER -- ACKNOWLEDGE DEVICE
8297 .SBTTL QUEUED PROTOCOL DRIVER -- ACKNOWLEDGE DEVICE
8298
8299 ;
8300 ; ACKNOWLEDGE DEVICE -- FUNCTION 17
8301 ;
8302
8303 025610 ACKNOW::
8304 025610 CALL FDVNMM ;;; FIND UNIT ETC
025610 004737 027450' JSR PC,FDVNMM
8305 025614 CALL @.DQPBA-20+Q.AK(R1) ;;; GO TO USER STATUS ROUTINE
025614 004771 010024' JSR PC,@.DQPBA-20+Q.AK(R1)
8306 025620 000407 BR DEAND3 ;;; [4.1.1092] RETURN NODE
8307 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 155
QUEUED PROTOCOL DRIVER -- SET LINE ALLOCATION
8309 .SBTTL QUEUED PROTOCOL DRIVER -- SET LINE ALLOCATION
8310
8311 ;
8312 ; SET LINE ALLOCATION -- FUNCTION 23
8313 ;
8314
8315 025622 SETLIN::
8316 025622 000360 000010 SWAB E.FW(R0) ;;; SWAP THE BYTES FOR "FDVNMM"
8317 025626 CALL FDVNMM ;;; FIND DEVICE
025626 004737 027450' JSR PC,FDVNMM
8318 025632 116461 000011 010026' MOVB E.FW+1(R4),.DQPBA-20+14(R1) ;;; SET IT IN THE TABLE
8319 025640 DEAND3:
8320 025640 000567 BR DEAND1 ;;; [4.1.1092] AND RETURN
8321 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 156
QUEUED PROTOCOL DRIVER -- SET LINE SPEED
8323 .SBTTL QUEUED PROTOCOL DRIVER -- SET LINE SPEED
8324
8325 ;
8326 ; SETSPD -- SET SPEED OF TTY -- FUNCTION 22
8327 ;
8328 ; TCO 5.1249 CHANGES REFRENCES TO R4 TO R0 AND SAVES IN R4 INSTEAD OF SP
8329
8330 025642 SETSPD::
8331 025642 016002 000012 MOV E.FW+2(R0),R2 ;;; FIND THE INPUT SPEED
8332 025646 CALL FNDSPD ;;; FIND THIS SPEED
025646 004737 027420' JSR PC,FNDSPD
8333 025652 006203 ASR R3 ;;; PUT IT IN THE CORRECT POSITION FOR DH-11
8334 025654 006203 ASR R3 ;;; SO
8335 025656 010304 MOV R3,R4 ;;; SAVE THE WORD
8336 025660 016002 000014 MOV E.FW+4(R0),R2 ;;; FIND THE OUTPUT SPEED
8337 025664 CALL FNDSPD ;;; FIND THIS SPEED
025664 004737 027420' JSR PC,FNDSPD
8338 025670 006303 ASL R3 ;;; PUT OUTPUT SPEED IN CORRECT POSITION
8339 025672 006303 ASL R3 ;;; IS THE OUPUT SPEED ZERO??
8340 025674 001002 BNE 10$ ;;; NO -- DON'T ALTER IT
8341 025676 012703 016003 MOV #16003,R3 ;;; [5.1004] YES -- SET IT TO AN OUTPUT SPEED OF 300
8342 ;;; THIS IS DONE TO PREVENT PROBLEMS WHEN ZERO OUTPUT BAUD
8343 ;;; IS DONE AND THERE IS OUTPUT FOR THIS LINE
8344 025702 10$:
8345 025702 050403 BIS R4,R3 ;;; SET THE INPUT AND OUTPUT TOGETHER
8346 025704 016001 000016 MOV E.FW+6(R0),R1 ;;; GET THE STOP BIT PARAMETER
8347 025710 006301 ASL R1 ;;; 1 IS 1 STOP BIT 2 IS TWO STOP BITS
8348 025712 042701 177770 BIC #177770,R1 ;;; CLEAR OFF JUNK
8349 025716 050103 BIS R1,R3 ;;; SET IN STATUS WORD
8350 025720 20$:
8351 025720 052703 000003 BIS #3,R3 ;;; SET 8 BIT CHARACTER LENGTH
8352 025724 005005 CLR R5 ;;; FIND THE LINE NUMBER
8353 025726 156005 000010 BISB E.FW(R0),R5 ;;; FIND THE UNIT NUMBER
8354 025732 162705 000005 SUB #DLCNT,R5 ;;; SUBTRACT OUT DL-11'S
8355 025736 100530 BMI DEAND1 ;;; [4.1.1035] DL-11'S ARE NOT LEGAL
8356 025740 010304 MOV R3,R4
8357 025742 000360 000010 SWAB E.FW(R0) ;;; SWAP THE PLACE OF THE LINE NUMBER
8358 025746 CALL FDVNMM
025746 004737 027450' JSR PC,FDVNMM
8359 025752 010403 MOV R4,R3
8360 025754 010501 MOV R5,R1 ;;; SAVE UNIT NUMBER
8361 025756 010205 MOV R2,R5
8362 025760 005760 000016 TST E.FW+6(R0) ;;; CHECK FOR REMOTE FLAG
8363 025764 100012 BPL 30$ ;;; NO -- DON'T SET REMOTE FLAG
8364 025766 042701 177760 BIC #177760,R1 ;;; MASK UNIT NUMBER
8365 025772 CALL FNDDM ;;; [5.1004] FIND THE DM-11/BB ADDRESS
025772 004737 027366' JSR PC,FNDDM
8366 025776 001510 BEQ DEAND1 ;;; [4.1.1091] NOT THERE -- IGNORE
8367 026000 052765 000100 000006 BIS #TT.RMT,STSW1(R5) ;;; SET REMOTE FLAG
8368 026006 CALL .DMHUP ;;; HANGUP THE DEVICE
026006 004737 040144' JSR PC,.DMHUP
8369 026012 30$:
8370 026012 032760 040000 000016 BIT #BIT14,E.FW+6(R0) ;;; IS THIS AN AUTO-BAUD LINE??
8371 026020 001405 BEQ 40$ ;;; NO -- GO ON
8372 026022 052765 000040 000006 BIS #TT.ABL,STSW1(R5) ;;; YES -- SET THE FLAG
8373 026030 012703 016703 MOV #16703,R3 ;;; SET THE DEFAULT SPEED TO 300 BAUD
8374 026034 40$:
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 156-1
QUEUED PROTOCOL DRIVER -- SET LINE SPEED
8375 026034 CALL .DHSPD ;;; SET DH-11 LINE SPEED
026034 004737 037554' JSR PC,.DHSPD
8376 026040 000467 BR DEAND1 ;;; DEALLOCATE NODE
8377 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 157
QUEUED PROTOCOL DRIVER -- STOP LINE INPUT
8379 .SBTTL QUEUED PROTOCOL DRIVER -- STOP LINE INPUT
8380
8381 ;
8382 ; STOP INPUT FROM LINE -- FUNCTION 26
8383 ;
8384 026042 STPLIN::
8385 026042 000360 000010 SWAB E.FW(R0) ;;; SWAP THE BYTES
8386 026046 CALL FDVNMM ;;; FIND DEVICE
026046 004737 027450' JSR PC,FDVNMM
8387 026052 010205 MOV R2,R5 ;;; [5.1015] DEVICE POINTER TO R5
8388 026054 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; [5.1015] IS THIS A CTY?
8389 026062 001411 BEQ 10$ ;;; NO -- GO ON
8390 026064 105737 001226' TSTB .KLNSW+0 ;;; YES -- IS KLINIK ACTIVE?
8391 026070 003406 BLE 10$ ;;; NOT THAT WE CARE -- GO ON
8392 026072 010546 MOV R5,-(SP) ;;; [5.1015] YES -- SAVE R5
8393 026074 013705 002636' MOV KLNPTR,R5 ;;; [5.1015] KLINIK POINTER TO R5
8394 026100 CALL 20$ ;;; [5.1015] STOP THE KLINIK LINE
026100 004737 026114' JSR PC,20$
8395 026104 012605 MOV (SP)+,R5 ;;; [5.1015] RESTORE POINTER
8396 026106 10$:
8397 026106 CALL 20$ ;;; [5.1015] START OR STOP THE LINE
026106 004737 026114' JSR PC,20$
8398 026112 000442 BR DEAND1 ;;; [5.1015] DEALLOCATE THE NODE AND EXIT
8399 ;
8400 026114 20$:
8401 026114 CALL .TTSW2 ;;; [5.1015] FIND OUR ".STSW2" ENTRY
026114 004737 042754' JSR PC,.TTSW2
8402 026120 012746 042204' MOV #.TTQDS,-(SP) ;;; [4.1.1092] ASSUME A STOP
8403 026124 105760 000010 TSTB E.FW(R0) ;;; [4.1.1092] IS THIS A START OR A STOP??
8404 026130 001402 BEQ 30$ ;;; [4.1.1092] STOP -- GO ON
8405 026132 012716 042214' MOV #.TTQEN,(SP) ;;; [4.1.1092] SET UP FOR A START
8406 026136 30$:
8407 026136 000136 JMP @(SP)+ ;;; [4.1.1092] DO THE START OR STOP AND RETURN
8408 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 158
QUEUED PROTOCOL DRIVER -- BREAK-THROUGH WRITE
8410 .SBTTL QUEUED PROTOCOL DRIVER -- BREAK-THROUGH WRITE
8411
8412 ;
8413 ; BTWCHR -- BREAK-TROUGH WRITE FOR CHARACTER -- FUNCTION 35
8414 ;
8415
8416 026140 BTWCHR::
8417 026140 000360 000010 SWAB E.FW(R0) ;;; [5.1016] SWAP THE LINE NUMBER/FLAG
8418 026144 CALL FDVNMM ;;; [5.1016] FIND THE DEVICE
026144 004737 027450' JSR PC,FDVNMM
8419 ;;; [5.1016] DON'T RETURN IF IT DOESN'T EXIST
8420 026150 010205 MOV R2,R5 ;;; [5.1016] COPY DLS POINTER TO R5
8421 026152 116004 000010 MOVB E.FW(R0),R4 ;;; [5.1016] GET THE CHARACTER IN R4
8422 026156 001420 BEQ DEAND1 ;;; [4.1.1035] IGNORE IF NULL
8423 026160 CALL .TTBTW ;;; [5.1016] FORCE THE CHARACTER OUT
026160 004737 042604' JSR PC,.TTBTW
8424 026164 000415 BR DEAND1 ;;; [5.1016] DEALLOCATE AND EXIT
8425 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 159
QUEUED PROTOCOL DRIVER -- XOFF
8427 .SBTTL QUEUED PROTOCOL DRIVER -- XOFF
8428
8429 ;
8430 ; XOFF -- FUNCTION 20
8431 ;
8432 ; THIS ROUTINE WILL INITIATE THE XOFF SEQUENCE FOR A TERMINAL LINE.
8433 ; THE "XOFF" STATUS BIT ("TT.XOF") IS SET IN THE LINE STATUS WORD WHICH
8434 ; BLOCKS ANY FURTHER OUTPUT FROM THE TERMINAL DRIVER. IF THE LINE IS
8435 ; A DH-11, THE OUTPUT IS NOT STOPPED IMMEDIATELY, BUT A RUNDOWN SEQUENCE
8436 ; IS INITATED SINCE EARLIER DH-11'S WILL "RUN AWAY" IF THE DEVICE BYTE
8437 ; COUNT IS SIMPLY CLEARED. THE TERMINAL INTERRUPT SERVICE WILL RESET THE
8438 ; PACKET ADDRESS AND BYTE COUNT AT OUTPUT DONE SO THAT THE XON CODE CAN
8439 ; DO A NORMAL LINE START.
8440 ;
8441 ; THIS MESSAGE IS IGNORED IF:
8442 ;
8443 ; 1. THE LINE IS ALREADY X'D OFF
8444 ; 2. THE LINE HAS NO OUTPUT PENDING (THREAD LIST EMPTY)
8445 ; 3. A SENDALL IS IN PROGRESS ON THIS LINE
8446 ; 4. THE CTY IS IN PDP-11 I/O WAIT AND THE CTY IS TO BE X'D OFF
8447
8448 026166 XOFF::
8449 026166 CALL FDVNMM ;;; FIND THE DEVICE NAME
026166 004737 027450' JSR PC,FDVNMM
8450 026172 010205 MOV R2,R5 ;;; COPY DLS POINTER TO R5
8451 026174 CALL .TTXOF ;;; DO THE XOFF
026174 004737 041554' JSR PC,.TTXOF
8452 026200 000407 BR DEAND1 ;;; AND EXIT
8453 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 160
QUEUED PROTOCOL DRIVER -- XON
8455 .SBTTL QUEUED PROTOCOL DRIVER -- XON
8456
8457 ;
8458 ; XON -- FUNCTION 21
8459 ;
8460 ; THIS ROUTINE WILL RESUME OUTPUT FOR A LINE WHICH WAS PREVIOUSLY
8461 ; X'D OFF. THE OUTPUT WILL BE RESUMED PER THE DATA IN THE CURRENT
8462 ; NODE IN THE THREAD LIST FOR THIS LINE. (T.HCBC AND T.HACD) THIS
8463 ; DATA IS SAVED AT OUTPUT INTERRUPT TIME FROM THE XOFF.
8464 ;
8465 ; THIS MESSAGE WILL BE IGNORED IF:
8466 ;
8467 ; 1. THE LINE HAS NOT BEEN PREVIOUSLY X'D OFF
8468 ; 2. A SENDALL IS CURRENTLY IN PROGRESS ON THIS LINE
8469 ;
8470 ; THE DEVICE WILL NOT BE RESTARTED IF:
8471 ;
8472 ; 1. OUTPUT IS ALREADY IN PROGRESS ON THIS LINE
8473 ; 2. THE OUTPUT THREAD LIST FOR THIS LINE IS EMPTY
8474 ; 3. THE DEVICE DOES NOT EXIST
8475
8476
8477 026202 XON::
8478 026202 CALL FDVNMM ;;; [4.2181] FIND THIS DEVICE
026202 004737 027450' JSR PC,FDVNMM
8479 026206 010205 MOV R2,R5 ;;; [4.2181] COPY DLS POINTER TO R5
8480 026210 010046 MOV R0,-(SP) ;;; [5.1248] SAVE R0
8481 026212 CALL .TTXON ;;; [4.2181] PROCESS THE DIRECTIVE
026212 004737 041676' JSR PC,.TTXON
8482 026216 012600 MOV (SP)+,R0 ;;; [5.1248] RESTORE R0
8483 026220 DEAND1:
8484 026220 000137 026654' JMP DEANOD ;;; [4.2181] DEALLOCATE THE NODE
8485 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 161
QUEUED PROTOCOL DRIVER -- HERE IS INITIAL STATUS
8487 .SBTTL QUEUED PROTOCOL DRIVER -- HERE IS INITIAL STATUS
8488
8489 ;
8490 ; HERE IS INITIAL STATUS -- FUNCTION 1
8491 ; FW IS ALLOCATED WITH LOW ORDER PART AS # OF TTY'S
8492 ; BIT 16 IS ALLOCATED TO INDICATE 50CPS
8493 ;
8494
8495 026224 HICTS::
8496 026224 012737 000074 001154' MOV #60.,.TKPS ;;; SET UP THE CLOCK TO 60. CPS
8497 026232 105760 000010 TSTB E.FW+0(R0) ;;; CHECK FOR 50 CPS (BYTES ARE SWAPPED)
8498 026236 100003 BPL 10$ ;;; HIGH ORDER BIT SET IS 50CPS
8499 026240 162737 000012 001154' SUB #10.,.TKPS ;;; SET TO 50 HZ
8500 026246 10$:
8501 026246 012703 000001 MOV #D.CCTY,R3 ;;; SET DEVICE ID
8502 026252 012701 000002 MOV #BC.HAD,R1 ;;; SET HERE IS DEVICE STATUS
8503 026256 013704 002634' MOV CTYPTR,R4 ;;; FIND THE CTY NUMBER
8504 026262 162704 002776' SUB #TTTBL,R4
8505 026266 006204 ASR R4 ;;; MAKE NUMBER
8506 026270 006204 ASR R4
8507 026272 006204 ASR R4
8508 026274 CALL ..STFC ;;; START FUNCTION
026274 004737 045456' JSR PC,..STFC
8509 026300 105737 001216' TSTB .KLNMD+0 ;;; ANY KLINIK PARAMETERS TO SEND??
8510 026304 001424 BEQ 20$ ;;; NO -- GO ON
8511 026306 010046 MOV R0,-(SP) ;;; YES -- SAVE R0
8512 026310 012700 001176' MOV #.KLNPB,R0 ;;; BUFFER POINTER TO R0
8513 026314 012710 000026 MOV #KLNPLN,(R0) ;;; BYTE COUNT TO BUFFER HEADER
8514 026320 012701 100033 MOV #BC.SKP+100000,R1 ;;; FUNCTION CODE TO R1
8515 026324 005002 CLR R2 ;;; DON'T WAIT FOR IT
8516 026326 012703 000200 MOV #D.CCPU,R3 ;;; DEVICE ID TO R3
8517 026332 .ENBT ;;; [4.1.1035] ALLOW TASK SWITCHING
026332 013746 177776 MOV @#PS,-(SP)
026336 042737 000340 177776 BIC #PRI7,@#PS
8518 026344 CALL ..STIN ; SEND THE KLINIK PARAMETERS
026344 004737 045646' JSR PC,..STIN
8519 026350 .INHT ; [4.1.1035] DISABLE TASK SWITCHING
026350 012637 177776 MOV (SP)+,@#PS
8520 026354 012600 MOV (SP)+,R0 ;;; RESTORE R0
8521 026356 20$:
8522 026356 013704 001160' MOV .BTPRM,R4 ;;; SEND BOOT PARAMETERS
8523 026362 012701 000024 MOV #BC.BTP,R1 ;;; SET BOOT PARAMETERS
8524 026366 CALL ..STFC ;;; [5.1004] SEND BOOT PARAMETERS
026366 004737 045456' JSR PC,..STFC
8525 026372 000530 BR DEANOD ;;; [4.1.1035] DEALLOCATE NODE
8526 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 162
QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
8528 .SBTTL QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
8529
8530 ;
8531 ; RTNTOD -- RETURN TIME OF DAY TO KL -- FUNCTION 11
8532 ;
8533
8534 026374 RTNTOD::
8535 026374 005737 001140' TST .DATE3 ;;; [5.1004] IS OUR DATE VALID??
8536 026400 001403 BEQ 10$ ;;; [5.1004] NO -- JUST REPORT CONFIGURATION
8537 026402 012737 177777 002602' MOV #-1,.ABFLG ;;; FLAG "SETSPD" TO REPORT ALL LINES
8538 026410 10$:
8539 026410 DIR$ #.RQSPD ;;; SET SPEED AND THEN RETURN TIME OF DAY
026410 012746 024600' MOV #.RQSPD,-(SP)
026414 104375 EMT 375
8540 026416 000516 BR DEANOD ;;; [4.1.1035] DEALLOCATE THIS NODE
8541 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 163
QUEUED PROTOCOL DRIVER -- STRING DATA
8543 .SBTTL QUEUED PROTOCOL DRIVER -- STRING DATA
8544
8545 ;
8546 ; STRDAT -- ROUTINE TO HANDLE STRING DATA -- FUNCTION 3
8547 ; HIDVST -- ROUTINE TO RECIEVE DEVICE STATUS -- FUNCTION 7
8548 ; RTDVST -- ROUTINE TO RECEIVE REQUEST FOR DEVICE STATUS -- FUNCTION 5
8549 ; STDVST -- ROUTINE TOSET DEVICE STATUS -- FUNCTION 6
8550 ; LDLPR -- ROUTINE TO LOAD LP RAM -- FUNCTION 30
8551 ; LDLPV -- ROUTINE TO LOAD LP VFU -- FUNCTION 31
8552 ;
8553
8554 026420 HIDVST::
8555 026420 LDLPR::
8556 026420 LDLPV::
8557 026420 STDVST::
8558 026420 RTDVST::
8559 026420 STRDAT::
8560 026420 012702 000006 MOV #6,R2 ;;; MOVE OVER THE LISTHEAD AND COUNT
8561 026424 060204 ADD R2,R4 ;;; FIND THE DEVICE ADDRESS
8562 026426 012401 MOV (R4)+,R1 ;;; FIND THE DEVICE ADDRESS
8563 026430 012403 MOV (R4)+,R3 ;;; FIND THE FIRST WORD
8564 026432 160204 SUB R2,R4 ;;; BACKUP TO STORE IN THE HEADER
8565 026434 111464 000003 MOVB @R4,3(R4) ;;; SAVE FUNCTION CODE
8566 026440 010414 MOV R4,@R4 ;;; SAVE THE ADDRESS
8567 026442 060224 ADD R2,(R4)+ ;;; UPDATE ADDRESS
8568 026444 000303 SWAB R3 ;;; SET UP BYTES SWAPED
8569 026446 110314 MOVB R3,@R4 ;;; STORE BYTE COUNT
8570 026450 CALL FDVNM ;;; FIND DEVICE TABLE ENTRY
026450 004737 027464' JSR PC,FDVNM
8571 026454 103477 BCS DEANOD ;;; ILLEGAL DEVICE -- FORGET IT
8572 026456 CALL @.DQPBA+Q.ST-20(R1) ;;; START DEVICE
026456 004771 010016' JSR PC,@.DQPBA+Q.ST-20(R1)
8573 026462 000476 BR QPRDTF ;;; [4.1.1035] GO TO DO MORE WORK
8574 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 164
QUEUED PROTOCOL DRIVER -- LINE NUMBER - CHARACTER
8576 .SBTTL QUEUED PROTOCOL DRIVER -- LINE NUMBER - CHARACTER
8577
8578 ;
8579 ; LINCHR --LINE NUMBER - CHARACTER -- FUNCTION 4
8580 ;
8581
8582 026464 LINCHR::
8583 026464 010046 MOV R0,-(SP) ;;; SAVE THE NODE ADDRESS
8584 026466 005046 CLR -(SP)
8585 026470 116416 000005 MOVB E.FN+1(R4),@SP ;;; SAVE SIZE OF BLOCK
8586 026474 162716 000010 SUB #E.FW,@SP ;;; SUBTRACT THE SIZE OF THE HEADER
8587 026500 010405 MOV R4,R5 ;;; SET UP THE POINTER TO THE BUFFER
8588 026502 016404 000006 MOV E.DV(R4),R4 ;;; FIND THE DEVICE
8589 026506 062705 000010 ADD #E.FW,R5 ;;; POINT TO THE CHARACTER
8590 026512 10$:
8591 026512 012701 000014 MOV #T.HHDS+4,R1 ;;; SET UP THE BUFFER SIZE
8592 026516 .ENBT ;;; [4.1.1035] ENABLE TASK SWITCHING
026516 013746 177776 MOV @#PS,-(SP)
026522 042737 000340 177776 BIC #PRI7,@#PS
8593 026530 CALL ..ALOW ; ALLOCATE A BLOCK
026530 004737 044706' JSR PC,..ALOW
8594 026534 .INHT ; [4.1.1035] ALLOW TASK SWITCHING
026534 012637 177776 MOV (SP)+,@#PS
8595 026540 010002 MOV R0,R2 ;;; SAVE THE NODE ADDRESS
8596 026542 005722 TST (R2)+ ;;; MOVE OVER THE THREAD POINTER
8597 026544 010122 MOV R1,(R2)+ ;;; SET UP THE CHARACTER COUNT
8598 026546 010012 MOV R0,@R2 ;;; SET UP THE MEMORY ADDRESS
8599 026550 062722 000012 ADD #T.HHDS+2,(R2)+ ;;; POINT TO THE BUFFER
8600 026554 012722 000001 MOV #1,(R2)+ ;;; SET UP THE CURRENT COUNT POINTER
8601 026560 005722 TST (R2)+
8602 026562 010401 MOV R4,R1 ;;; PICK UP THE DEVICE
8603 026564 112503 MOVB (R5)+,R3
8604 026566 112522 MOVB (R5)+,(R2)+ ;;; STORE THE CHARCTER
8605 026570 000303 SWAB R3 ;;; SET UP LINE NUMBER FOR FDVNM
8606 026572 CALL FDVNM ;;; FIND THE DEVICE NUMBER
026572 004737 027464' JSR PC,FDVNM
8607 026576 103410 BCS 30$ ;;; ILLEGAL LINE NUMBER
8608 026600 CALL @.DQPBA+Q.ST-20(R1) ;;; START TTY
026600 004771 010016' JSR PC,@.DQPBA+Q.ST-20(R1)
8609 026604 20$:
8610 026604 162716 000002 SUB #2,@SP ;;; POINT TO THE NEXT CHARACTER
8611 026610 001340 BNE 10$ ;;; DO AT LEAST ONE MORE
8612 026612 005726 TST (SP)+ ;;; REMOVE COUNT
8613 026614 012600 MOV (SP)+,R0 ;;; SET UP TO RETURN NODE
8614 026616 000416 BR DEANOD ;;; ALL DONE -- RETURN THE NODE
8615 ;
8616 026620 30$:
8617 026620 CALL ..DECN ;;; DEALLOCATE BUFFER
026620 004737 044546' JSR PC,..DECN
8618 026624 000767 BR 20$ ;;; AND TRY NEXT BLOCK
8619 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 165
QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
8621 .SBTTL QUEUED PROTOCOL DRIVER -- RETURN TIME OF DAY
8622
8623 ;
8624 ; RETTOD -- RETURN TIME OF DAY -- FUNCTION 12
8625 ;
8626
8627 026626 RETTOD::
8628 026626 062704 000010 ADD #E.FW,R4 ;;; MOVE OVER THE HEADER
8629 026632 005724 TST (R4)+ ;;; MOVE OVER THE VALID BIT AND CHECK IT
8630 026634 001407 BEQ DEANOD ;;; TIME NOT VALID FORGET IT
8631 026636 012703 001140' MOV #.DATE,R3 ;;; SET UP TO SET DATE
8632 026642 012423 MOV (R4)+,(R3)+ ;;; SET UP VALIDITY BITS
8633 026644 012423 MOV (R4)+,(R3)+ ;;; SET UP YEAR
8634 026646 012423 MOV (R4)+,(R3)+ ;;; SET UP DAY
8635 ;;; SET UP MONTH
8636 026650 012423 MOV (R4)+,(R3)+ ;;; SAVE DAYLIGHT SAVINGS TIME INDICATOR (1=DST)
8637 ;;; SET UP DAY OF WEEK
8638 026652 012423 MOV (R4)+,(R3)+ ;;; SET SECONDS SINCE MIDNIGHT
8639 026654 DEANOD:
8640 026654 CALL ..DECN ;;; DEALLOCATE BUFFER
026654 004737 044546' JSR PC,..DECN
8641 026660 QPRDTF:
8642 026660 000137 025234' JMP QPRDTL ;;; GO TO NEXT FUNCTION
8643 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 166
QUEUED PROTOCOL DRIVER -- FLUSH DEVICE OUTPUT QUEUE
8645 .SBTTL QUEUED PROTOCOL DRIVER -- FLUSH DEVICE OUTPUT QUEUE
8646
8647 ;
8648 ; FLDVOT -- FLUSH OUTPUT FOR THIS DEVICE -- FUNCTION 13
8649 ;
8650
8651 026664 FLDVOT::
8652 026664 CALL FDVNMM ;;; FIND THE DEVICE POINTER
026664 004737 027450' JSR PC,FDVNMM
8653 026670 010146 MOV R1,-(SP)
8654 026672 CALL @.DQPBA+Q.SP-20(R1) ;;; STOP DEVICE
026672 004771 010020' JSR PC,@.DQPBA+Q.SP-20(R1)
8655 026676 012601 MOV (SP)+,R1
8656 026700 016100 010012' MOV .DQPBA+Q.DA-20(R1),R0 ;;; FIND DEVICE TABLE BASE ADDRESS
8657 026704 010205 MOV R2,R5 ;;; FIND THIS DEVICE ADDRESS
8658 026706 016403 000006 MOV E.DV(R4),R3 ;;; FIND DEVICE NUMBER
8659 026712 CALL ..SACK ;;; SEND ACKNOWLEDGEMENT
026712 004737 045372' JSR PC,..SACK
8660 026716 010400 MOV R4,R0 ;;; SET UP TO RETURN NODE
8661 026720 000755 BR DEANOD ;;; DEALLOCATE NODE
8662 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 167
QUEUED PROTOCOL DRIVER -- RECIEVE KLINIK PARAMETERS
8664 .SBTTL QUEUED PROTOCOL DRIVER -- RECIEVE KLINIK PARAMETERS
8665
8666 ;
8667 ; RCVKLP -- RECIEVE KLINIK PARAMETERS -- FUNCTION 33
8668 ;
8669
8670 026722 RCVKLP::
8671 026722 062704 000012 ADD #E.FW+2,R4 ;;; GET OVER THE INDIRECT HEADER
8672 026726 012402 MOV (R4)+,R2 ;;; BYTE COUNT TO R2
8673 026730 001751 BEQ DEANOD ;;; QUIT IF NULL
8674 026732 006202 ASR R2 ;;; MAKE A WORD COUNT
8675 026734 012703 001202' MOV #.KLNFT,R3 ;;; BUFFER POINTER TO R3
8676 026740 042737 010000 001012' BIC #EF.RKP,.COMEF+2 ;;; CLEAR THE FLAG
8677 026746 10$:
8678 026746 012423 MOV (R4)+,(R3)+ ;;; LOAD THE PARAMETERS
8679 026750 077202 SOB R2,10$ ;;; LOOP TILL DONE
8680 026752 052737 010000 001012' BIS #EF.RKP,.COMEF+2 ;;; SET THE EVENT FLAG
8681 026760 000735 BR DEANOD ;;; DEQUEUE THIS NODE AND EXIT
8682 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 168
QUEUED PROTOCOL DRIVER -- SET/CLEAR HOST DEBUG MODE
8684 .SBTTL QUEUED PROTOCOL DRIVER -- SET/CLEAR HOST DEBUG MODE
8685
8686 ;
8687 ; SETDEB -- SET HOST DEBUG MODE (36)
8688 ; CLRDEB -- CLEAR HOST DEBUG MODE (37)
8689 ;
8690
8691 026762 SETDEB::
8692 026762 112737 177777 013035' MOVB #-1,SNDMSG+1 ;;; [5.1127] SET HOST DEBUG MODE
8693 026770 000731 BR DEANOD ;;; [5.1127] AND RETURN
8694
8695 026772 CLRDEB::
8696 026772 105037 013035' CLRB SNDMSG+1 ;;; [5.1127] CLEAR HOST DEBUG MODE
8697 026776 000726 BR DEANOD ;;; [5.1127] AND RETURN
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 169
QUEUED PROTOCOL DRIVER -- SENDALL
8699 .SBTTL QUEUED PROTOCOL DRIVER -- SENDALL
8700
8701 ;
8702 ; SNDALL -- SENDALL SERVICE -- FUNCTION 14
8703 ;
8704
8705 027000 SNDALL::
8706 027000 CALL .SNDAL ;;; DO SENDALL
027000 004737 027006' JSR PC,.SNDAL
8707 027004 000725 BR QPRDTF ;;; AND RETURN
8708 ;
8709 ;
8710 ; .SNDAL -- SUBROUTINE TO DO A SENDALL
8711 ;
8712 ; CALLING SEQUENCE
8713 ;
8714 ; R0 & R4 -- POINTER TO BUFFER TO BE SENT (QUEUED PROTOCOL FORMAT)
8715 ;
8716 ; REGISTERS ALTERED
8717 ;
8718 ; R0,R1,R2,R3,R5
8719 ;
8720 ; THE SENDALL MESSAGES AND COUNTS ARE MAINTINED IN PARALLEL RING BUFFERS
8721 ; IN ".SNDBF" AND ".SNDCN" (Q.V.). ".SNDLP" POINTS THE THE NEXT FREE LOGICAL
8722 ; NODE IN THE SENDALL RING. EACH ENTRY IN THE DATA LINE SCANNER TABLE HAS
8723 ; AS SENDALL INDEX BYTE IN "STSW1" ("TT.SND") WHICH POINTS TO THE LAST NODE
8724 ; PROCESSED SENDALL RING. THE QUEUED PROTOCOL BUFFER IS DEALLOCATEED BY THE
8725 ; TERMINAL DRIVER WHEN THE LAST TERMINAL HAS PROCESSED THAT NODE.
8726 ;
8727 ; A SENDALL IS DEEMED TO BE PENDING FOR A LINE IF ITS SENDALL INDEX IS
8728 ; DIFFERENT FROM THAT IN ".SNDLP". THE SENDALL WILL BE INITIATED AT "..STTY"
8729 ; IF THE LINE IS IDLE, OR AT "STTYDN" IF THE LINE HAS ACTIVE OUTPUT.
8730 ;
8731 ; IN ORDER TO PREVENT PROBLEMS ASSOCIATED WITH LARGE SENDALLS (A LARGE
8732 ; SENDALL IS DEFINED AS ONE WHICH WILL FILL THE SENDALL RING), THE RING IS
8733 ; ACTUALLY MANAGED AS A CIRCULAR LIST, WITH A GUARANTEED NULL ENTRY IN THE
8734 ; LIST AT ALL TIMES. SHOULD A REQUEST BE MADE TO FILL AN EMPTY NODE IN THE
8735 ; RING WITHOUT THE FOLLOWING NODE BEING EMPTY, THAT MODE WILL NOT BE FILLED
8736 ; UNTIL THE FOLLOWING NODE BECOMES EMPTY (NULL). IN EFFECT, THE SENDALL
8737 ; PROCESS IS DRIVEN BY THE SLOWEST TERMINAL(S) IN THE DATA LINE SCANNER.
8738 ;
8739 ; TCO 4.2246 REMOVED SEVERAL INHIBIT AND ENABLE MACROS FROM THIS ROUTINE
8740 ; 014 -- REMOVED WSIG$S IF NO SPACE IN RING BUFFER
8741
8742 027006 .SNDAL::
8743 027006 010004 MOV R0,R4 ;;; COPY SENDALL POINTER
8744 027010 022020 CMP (R0)+,(R0)+ ;;; GET OVER LISTHEAD
8745 027012 010010 MOV R0,(R0) ;;; SET UP CURRENT ADDRESS POINTER
8746 027014 062720 000006 ADD #6,(R0)+ ;;; CORRECT BUFFER POINTER
8747 027020 116010 000003 MOVB 3(R0),(R0) ;;; MOVE THE BYTE COUNT
8748 027024 10$:
8749 027024 013701 002604' MOV .SNDLP,R1 ;;; FIND THE CURRENT POINTER FOR SENDALL
8750 027030 010102 MOV R1,R2 ;;; COPY IT TO R2
8751 027032 006301 ASL R1 ;;; MAKE RING WORD INDEX
8752 027034 005202 INC R2 ;;; UPDATE THE POINTER TO NEXT NODE
8753 027036 042702 177774 BIC #^C3,R2 ;;; MODULO 4
8754 027042 010237 002604' MOV R2,.SNDLP ;;; SET THE POINTER TO THE NEXT RING BUFFER
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 169-1
QUEUED PROTOCOL DRIVER -- SENDALL
8755 027046 013761 010110' 002616' MOV .DQDH0+Q.DZ,.SNDCN(R1) ;;; SET UP THE TTY COUNT
8756 ; BEQ 15$ ;;; GO ON IF NO DH-11'S
8757 027054 010461 002606' MOV R4,.SNDBF(R1) ;;; SET PACKET IN THE CURRENT RING BUFFER
8758 027060 15$:
8759 027060 012702 002776' MOV #DLTBL,R2 ;;; DO THE DL-11W AND DL-11E'S
8760 027064 20$:
8761 027064 020237 002636' CMP R2,KLNPTR ;;; IS THIS THE KLINIK LINE??
8762 027070 001003 BNE 25$ ;;; NO -- GO ON
8763 027072 105737 001226' TSTB .KLNSW+0 ;;; YES -- IS IT ACTIVE AS USER CONSOLE??
8764 027076 002015 BGE 30$ ;;; NO -- FORGET IT
8765 027100 25$:
8766 027100 005762 000002 TST TTYEXP(R2) ;;; IS IT HERE??
8767 027104 001412 BEQ 30$ ;;; NO -- FORGET IT
8768 027106 032762 000400 000006 BIT #TT.NSA,STSW1(R2) ;;; YES -- SUPPRESS SENDALLS??
8769 027114 001006 BNE 30$ ;;; YES -- SO DO IT
8770 027116 010246 MOV R2,-(SP) ;;; SAVE R2 FROM "COPBUF"
8771 027120 CALL COPBUF ;;; COPY THE BUFFER
027120 004737 027312' JSR PC,COPBUF
8772 027124 012602 MOV (SP)+,R2 ;;; RESTORE R2
8773 027126 CALL ..STTY ;;; START THE LINE UP
027126 004737 044726' JSR PC,..STTY
8774 027132 30$:
8775 027132 062702 000010 ADD #^D8,R2 ;;; POINT TO THE NEXT LINE
8776 027136 022702 003046' CMP #DHTBL,R2 ;;; IS IT A DL-11??
8777 027142 101350 BHI 20$ ;;; YES -- DO THIS LINE
8778 027144 010400 MOV R4,R0 ;;; NO -- SET UP POINTER TO TTY BUFFER FOR "..STTY"
8779 027146 010037 002626' MOV R0,.CRSND ;;; SET THAT THIS IS CURRENT SENDALL
8780 027152 35$:
8781 027152 032762 000410 000006 BIT #TT.NSA!TT.ABW,STSW1(R2) ;;; IGNORE SENDALL OR AUTO-BAUD WAIT??
8782 027160 001033 BNE 70$ ;;; YES -- DON'T START THIS LINE BUT ACCOUNT FOR IT
8783 027162 032762 000002 000006 BIT #TT.CTY,STSW1(R2) ;;; NO -- IS THIS A CTY??
8784 027170 001403 BEQ 45$ ;;; NO -- GO ON
8785 027172 005737 002632' TST .TTP11 ;;; YES -- IN -11 I/O WAIT??
8786 027176 001014 BNE 50$ ;;; YES -- DON'T RESTART
8787 027200 45$:
8788 027200 032762 000001 000006 BIT #TT.OUT,STSW1(R2) ;;; ANY KIND OF OUTPUT PENDING??
8789 027206 001010 BNE 50$ ;;; YES -- DON'T RESTART
8790 027210 005762 000002 TST TTYEXP(R2) ;;; [5.1004] DOES THE DEVICE EXIST??
8791 027214 001415 BEQ 70$ ;;; [5.1004] NO -- ACCOUNT FOR SENDALL
8792 027216 CALL ..STTY ;;; YES -- START SENDALL FOR THIS TTY
027216 004737 044726' JSR PC,..STTY
8793 027222 052762 001000 000006 BIS #TT.SIP,STSW1(R2) ;;; MARK SENDALL IN PROGRESS
8794 027230 50$:
8795 027230 062702 000010 ADD #8.,R2 ;;; LOOK AT THE NEXT DH-11
8796 027234 022702 005046' CMP #TTYEND,R2 ;;; [5.1004] DONE ALL DH-11'S??
8797 027240 101344 BHI 35$ ;;; [5.1004] NO -- DO NEXT LINE
8798 027242 55$:
8799 027242 005037 002626' CLR .CRSND ;;; YES -- CLEAR CURRENT SENDALL POINTER
8803 027246 RETURN ;;; RETURN TO CALLER
027246 000207 RTS PC
8804 ;
8831
8832 027250 70$: ;;; HERE TO PRETEND WE DID SENDALL ON LINE
8833 027250 013701 002604' MOV .SNDLP,R1 ;;; GET POINTER TO CURRENT SENDALL + 1
8834 027254 005301 DEC R1 ;;; MAKE IT POINTER TO CURRENT
8835 027256 042701 177774 BIC #177774,R1 ;;; WE ONLY WANT TWO BITS
8836 027262 006301 ASL R1 ;;; MAKE IT INTO A WORD INDEX
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 169-2
QUEUED PROTOCOL DRIVER -- SENDALL
8837 027264 005361 002616' DEC .SNDCN(R1) ;;; DECREMENT COUNT OF SENDALLS SENT
8838 027270 003004 BGT 80$ ;;; IF SOME LEFT, DON'T FREE MESSAGE
8839 ;
8840 027272 75$:
8841 027272 005061 002606' CLR .SNDBF(R1) ;;; INDICATE NONEXISTANT
8842 027276 CALL ..DECN ;;; DEALLOCATE THE NODE
027276 004737 044546' JSR PC,..DECN
8843 027302 80$: ;;; HERE TO FINISH DUMMY SENDALL
8844 027302 062762 040000 000006 ADD #TT.SNI,STSW1(R2);;; BUMP INDEX TO NEXT SENDALL
8845 027310 000747 BR 50$ ;;; AND DO THE NEXT LINE
8846 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 170
QUEUED PROTOCOL DRIVER -- COPY BUFFER
8848 .SBTTL QUEUED PROTOCOL DRIVER -- COPY BUFFER
8849
8850 ;
8851 ; COPBUF -- ROUTINE TO COPY A TTY BUFFER AND CORRECT THE
8852 ; ADDRESS OF THE BUFFER IN THE CURRENT ADDRESS POINTER
8853 ;
8854 ; CALLING SEQUENCE:
8855 ;
8856 ; R4 -- ADDRESS OF BUFFER TO BE COPIED
8857 ;
8858 ; CALL COPBUF
8859 ;
8860 ; EXIT CONDITIONS:
8861 ;
8862 ; R0 -- NEW BUFFER ADDRESS
8863 ;
8864 ; REGISTERS ALTERED:
8865 ;
8866 ; R1,R2,R5
8867 ;
8868
8869 027312 COPBUF::
8870 027312 016401 000002 MOV 2(R4),R1 ;;; SET UP THE BUFFER SIZE
8871 027316 .ENBT ;;; [4.1.1035] ENABLE TASK SWITCHING
027316 013746 177776 MOV @#PS,-(SP)
027322 042737 000340 177776 BIC #PRI7,@#PS
8872 027330 CALL ..ALOW ; ALLOCATE A BUFFER
027330 004737 044706' JSR PC,..ALOW
8873 027334 .INHT ; [4.1.1035] DISABLE TASK SWITCHING
027334 012637 177776 MOV (SP)+,@#PS
8874 027340 010405 MOV R4,R5 ;;; SAVE R5 BUFFER POINTER
8875 027342 010002 MOV R0,R2 ;;; SAVE TTY BUFFER POINTER
8876 027344 006201 ASR R1 ;;; MAKE WORD INDEX
8877 027346 10$:
8878 027346 012522 MOV (R5)+,(R2)+ ;;; COPY THE BUFFER
8879 027350 077102 SOB R1,10$ ;;; COPY UNTIL FINISHED
8880 027352 010060 000004 MOV R0,T.HCAD(R0) ;;; SET THE CURRENT ADDRESS
8881 027356 062760 000012 000004 ADD #T.HHDS+2,T.HCAD(R0) ;;; CORRECT IT TO POINT TO BUFFER
8882 027364 RETURN
027364 000207 RTS PC
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 171
QUEUED PROTOCOL DRIVER -- MAP DH-11 TO DM-11
8892 .SBTTL QUEUED PROTOCOL DRIVER -- MAP DH-11 TO DM-11
8893
8894 ;+
8895 ; FNDDM -- LOCAL SUBROUTINE TO MAP A DH-11 LINE TO A DM-11/BB
8896 ;
8897 ; INPUTS:
8898 ;
8899 ; R5 -- POINTS TO DATA LINE SCANNER ENTRY FOR DH-11 LINE
8900 ;
8901 ; OUTPUTS:
8902 ;
8903 ; R4 -- POINTS TO ASSOCIATED DM-11/BB CSR
8904 ;-
8905
8906 027366 FNDDM:
8907 027366 010546 MOV R5,-(SP) ; [5.1004] SAVE R5
8908 027370 012704 002734' MOV #DMTBL,R4 ; [5.1004] POINT TO THE DM-11/BB TABLE
8909 027374 162705 003046' SUB #DHTBL,R5 ; [5.1004] GET OUR DISPLACMENT INTO "DHTBL"
8910 027400 10$:
8911 027400 162705 000200 SUB #200,R5 ; [5.1004] HAVE WE FOUND OUR DH-11??
8912 027404 100402 BMI 20$ ; [5.1004] YES -- EXIT
8913 027406 032424 BIT (R4)+,(R4)+ ; [5.1004] NO -- TRY NEXT DM-11/BB
8914 027410 000773 BR 10$ ; [5.1004] SO
8915 ;
8916 027412 20$:
8917 027412 012605 MOV (SP)+,R5 ; [5.1004] RESTORE R5
8918 027414 011404 MOV (R4),R4 ; [5.1004] GET I/O PAGE ADDRESS OF DM-11/BB
8919 027416 RETURN ; [5.1004] TO CALLER
027416 000207 RTS PC
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 172
QUEUED PROTOCOL DRIVER -- FIND LINE SPEED
8921 .SBTTL QUEUED PROTOCOL DRIVER -- FIND LINE SPEED
8922 ;+
8923 ; FNDSPD -- FIND LINE SPEED
8924 ;
8925 ; THIS SUBROUTINE WILL MAP THE DECIMAL LINE SPEED IN R2 TO A DH-11 LINE SPEED MASK
8926 ;
8927 ; INPUTS:
8928 ;
8929 ; R2 -- DECIMAL LINE SPEED
8930 ;
8931 ; OUTPUTS:
8932 ;
8933 ; R3 -- DH-11 LINE SPEED MASK
8934 ;
8935 ; IF A MATCH CANNOT BE FOUND, THE NODE IS DEALLOCATED AND CONTROL RETURNED
8936 ; TO THE NEXT HIGHER LEVEL.
8937 ;-
8938
8939 027420 FNDSPD:
8940 027420 012705 024616' MOV #SPDTBL,R5 ; FIND THE ADDRESS OF THE SPEED TABLE
8941 027424 012701 000016 MOV #SPDTBZ,R1 ; SET UP THE TABLE SIZE
8942 027430 005003 CLR R3 ; SET UP COUNTER
8943 027432 10$:
8944 027432 020225 CMP R2,(R5)+ ; COMPARE AGAINST TABLE
8945 027434 001403 BEQ 20$ ; FOUND CORRECT ENTRY -- R3 IS CORRECT WHEN FOUND
8946 027436 005203 INC R3 ; UPDATE R3
8947 027440 077104 SOB R1,10$ ; TRY NEXT ENTRY
8948 027442 000455 BR FDVNMF ; CAN'T FIND SPEED -- DEALLOCATE AND EXIT
8949 ;
8950 027444 20$:
8951 027444 000303 SWAB R3 ; SET IN HIGH BYTE
8952 027446 RETURN ; RETURN TO CALLER
027446 000207 RTS PC
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 173
QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
8954 .SBTTL QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
8955
8956 ;+
8957 ; FDVNMM -- FIND DEVICE NAME
8958 ;
8959 ; THIS SUBROUTINE WILL RETURN A POINTER TO A DEVICE TABLE ENTRY IN R2 IF THE
8960 ; DEVICE EXISTS IN THE SYSTEM.
8961 ;
8962 ; INPUTS:
8963 ;
8964 ; R0 -- POINTS TO THE TO11Q PACKET
8965 ; R4 -- POINTS TO THE TO11Q PACKET
8966 ;
8967 ; OUTPUTS:
8968 ;
8969 ; R0 -- POINTS TO THE TO11Q PACKET
8970 ; R1 -- POINTS TO THE DEVICE (PUD) TABLE FOR THIS DEVICE
8971 ; R2 -- POINTS TO THE DRIVER TABLE ENTRY FOR THE DEVICE
8972 ; R4 -- POINTS TO THE TO11Q PACKET
8973 ;
8974 ; NOTE:
8975 ;
8976 ; IF THE DEVICE DOES NOT EXIST, "FDVNMM" ACKNOWLEGES THE PACKET
8977 ; AND IMMEDIATELY DEQUEUES IT WITHOUT RETURNING TO THE CALLING ROUTINE
8978 ;-
8979
8980 .ENABL LSB
8981
8982 027450 FDVNMM:
8983 027450 016001 000006 MOV E.DV(R0),R1 ;FIND DEVICE
8984 027454 016003 000010 MOV E.FW(R0),R3 ;FIND FIRST WORD
8985 027460 005046 CLR -(SP) ;SAVE ENTRY FLAG
8986 027462 000402 BR 10$
8987 ;
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 174
QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
8989 .SBTTL QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
8990
8991 ;+
8992 ; FDVNM -- FIND DEVICE NAME
8993 ;
8994 ; THIS ROUTINE PERFORMS EXACTLY THE SAME THE SAME FUNCTION AS "FDVNMM",
8995 ; ABOVE, EXCEPT THAT IT WILL RETURN WITH CC-C SET IF THE DEVICE DOES NOT EXIST.
8996 ;
8997 ; INPUTS:
8998 ;
8999 ; R0 -- POINTS TO THE TO11Q PACKET
9000 ; R1 -- CONTAINS THE DEVICE CODE FOR THE DEVICE
9001 ; R3 -- CONTAINS THE FIRST WORD FROM THE T011Q PACKET
9002 ; R4 -- POINTS TO THE TO11Q PACKET
9003 ;
9004 ; OUTPUTS:
9005 ;
9006 ; R0 -- POINTS TO THE TO11Q PACKET
9007 ; R1 -- CONTAINS THE DEVICE (PUD) OFFSET + 20 FOR THIS DEVICE
9008 ; R2 -- POINTS TO THE DRIVER TABLE ENTRY FOR THE DEVICE
9009 ; R4 -- POINTS TO THE TO11Q PACKET
9010 ;
9011 ; NOTE:
9012 ;
9013 ; IF THE DEVICE DOES NOT EXIST, THE T011Q PACKET IS ACKNOWLEDGED
9014 ; AND CC-C IS SET FOR THE RETURN.
9015 ;-
9016
9017 027464 FDVNM:
9018 027464 012746 177777 MOV #-1,-(SP) ; SAVE ENTRY FLAG
9019 027470 10$:
9020 027470 010546 MOV R5,-(SP) ; SAVE REGISTERS
9021 027472 010446 MOV R4,-(SP)
9022 027474 010146 MOV R1,-(SP) ; SAVE DEVICE
9023 027476 006301 ASL R1 ; FIND THE DEVICE ADDRESS
9024 027500 006301 ASL R1
9025 027502 006301 ASL R1
9026 027504 006301 ASL R1
9027 027506 116105 010014' MOVB .DQPBA-20+Q.TS(R1),R5 ; FIND THE SIZE OF A TABLE ENTRY
9028 027512 016102 010012' MOV .DQPBA-20+Q.DA(R1),R2 ; FIND THE TABLE HEAD ADDRESS
9029 027516 105003 CLRB R3 ; FIND THE LINE NUMBER
9030 027520 000303 SWAB R3 ; PUT IT IN LOWER ORDER OF BYTE
9031 027522 010346 MOV R3,-(SP) ; SAVE LINE NUMBER
9032 027524 126103 010030' CMPB .DQPBA-20+Q.DZ(R1),R3 ; IS THIS A LEGAL NUMBER?
9033 027530 101425 BLOS 80$ ; NO -- IGNORE IT -- NOTE THIS SETS C BIT
9034 027532 20$:
9035 027532 005303 DEC R3 ; ATTEMPT TO FIND THE ADDRESS OF THE HEAD OF THE LIST
9036 027534 100402 BMI 30$ ; FOUND IT -- QUIT -- NOTE THIS SHOULD CLEAR C
9037 027536 060502 ADD R5,R2 ; MULTIPLY BY TABLE ENTRY SIZE
9038 027540 000774 BR 20$ ; AND TRY AGAIN
9039 ;
9040 027542 30$:
9041 027542 026627 000002 000004 CMP 2(SP),#D.CDLS ; [5.1004] TERMINAL DEVICE??
9042 027550 101003 BHI 40$ ; [5.1004] NO -- GO ON - (NOTE: CC-C CLEAR)
9043 027552 005762 000002 TST TTYEXP(R2) ; [5.1004] YES -- DOES THE TERMINAL EXIST??
9044 027556 001412 BEQ 80$ ; [5.1004] NO -- SAY THAT IT DOES NOT
9045 027560 40$:
QPRDRV -- QUEUED PROTOCOL DRIV MACRO M1113 11-NOV-81 11:13 PAGE 174-1
QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
9046 027560 032626 BIT (SP)+,(SP)+ ; [5.1004] YES -- CLEAR STACK
9047 027562 50$:
9048 027562 012604 MOV (SP)+,R4
9049 027564 012605 MOV (SP)+,R5 ; RESTORE REGISTERS
9050 027566 005226 INC (SP)+ ; REMOVE THE ENTRY FLAG
9051 027570 103001 BCC 60$ ; [5.1004] JUST EXIT IF CC-C IS CLEAR
9052 027572 001001 BNE 70$ ; [5.1004] DEQUEUE IMMEDIATELY IF WE MUST
9053 027574 60$:
9054 027574 RETURN ; RETURN TO CALLER
027574 000207 RTS PC
9055 ;
9056 ; HERE TO SIMPLY DEALLOCATE TO11Q PACKET AND RETURN TO TOP OF TASK
9057 ;
9058 027576 FDVNMF:
9059 027576 70$:
9060 027576 005726 TST (SP)+ ; FLUSH RETURN
9061 027600 000137 026654' JMP DEANOD ; DEALLOCATE AND START NEXT PACKET
9062 ;
9063 ;
9064 ; HERE TO ACKNOWLEDGE NON-EXISTENT DEVICE
9065 ;
9066 027604 80$:
9067 027604 012604 MOV (SP)+,R4 ; SET LINE NUMBER
9068 027606 012603 MOV (SP)+,R3 ; SET DEVICE NAME
9069 027610 012701 000017 MOV #BC.SAK,R1 ; ACKNOWLEDGE PACKET
9070 027614 CALL ..STFC ; START FUNCTION
027614 004737 045456' JSR PC,..STFC
9071 027620 000261 SEC ; SET ERROR
9072 027622 000757 BR 50$ ; AND RETURN
9073 ;
9074
9075 .DSABL LSB
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 175
QUEUED PROTOCOL DRIVER -- FIND DEVICE NAME
9077 .TITLE DTEDRV -- DTE-20 DRIVER FOR RSX-20F
9078 .SBTTL DTE-20 DRIVER -- COPYRIGHT STATEMENT
9079 027624 IDENT$ 14,31
.IDENT /014310/
9080
9081 ;
9082 ; COPYRIGHT (C) 1975, 1980 BY
9083 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
9084 ;
9085 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
9086 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
9087 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
9088 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
9089 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
9090 ;
9091 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
9092 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
9093 ; CORPORATION.
9094 ;
9095 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9096 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
9097 ;
9098 ; MODULE: DTE-20 DRIVER FOR RSX-20F
9099 ;
9100 ; VERSION: 14-31
9101 ;
9102 ; AUTHOR: ROLAND BELANGER
9103 ;
9104 ; DATE: 15-MAR-80
9105 ;
9106 ; THIS MODULE CONTAINS:
9107 ;
9108 ; 1) DTE-20 INTERRUPT SERVICE
9109 ; 2) DEVICE DEPENDENT DTE-20 SERVICE
9110 ; 3) DEVICE DEPENDENT QUEUED PROTOCOL SERVICE
9111 ;
9112 ; THIS MODULE WAS SPLIT OUT OF "QPRDTE.MAC" AND REWRITTEN AS A PART OF
9113 ; TCO 4.1.1121
9114 ;
9115 ; TCO 4.1.1137 05-APR-80 R. BELANGER LIMIT LENGTH OF TO-11 QUEUE
9116 ; TCO 5.1041 18-MAY-80 S. LEAPLINE CHECK FREE POOL BYTES LEFT
9117
9118 .MCALL CALL,RETURN,.CRASH,$DEF
9119
9120 027624 $DEF
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 176
DTE-20 DRIVER -- DTE-20 INTERRUPT HEAD
9122 .SBTTL DTE-20 DRIVER -- DTE-20 INTERRUPT HEAD
9123
9124 ;+
9125 ; .DTINT -- DTE-20 INTERRUPT HEAD
9126 ;
9127 ; THIS IS THE HEAD OF THE DTE-20 INTERRUPT SERVICE. ALL DTE-20 INTERRUPTS ARE
9128 ; VECTORED HERE, AND ALL DTE-20 INTERRUPTS ARE DISMISSED FROM THIS ROUTINE.
9129 ;
9130 ; SINCE A DTE-20 CAN HAVE MULTIPLE INTERRUPTS PENDING, AN ATTEMPT TO DISMISS
9131 ; ANY GIVEN INTERRUPT FORCES A SCAN FOR ALL OTHER POSSIBLE INTERRUPTS BEFORE
9132 ; THE DISMISSAL IS GRANTED.
9133 ;
9134 ; INTERRUPTS SERVICED HERE ARE:
9135 ;
9136 ; TO-10 TRANSFER DONE
9137 ; TO-11 TRANSFER DONE
9138 ; DOORBELL
9139 ;
9140 ; ERRORS HANDLED HERE ARE:
9141 ;
9142 ; TO-10 DONE ERROR TERMINATION (TET)
9143 ; PDP-11 MEMORY PARITY ERROR ON BYTE TRANSFER (TET)
9144 ; TO-11 DONE ERROR TERMINATION (ETE)
9145 ;
9146 ; INPUTS:
9147 ;
9148 ; NONE
9149 ;
9150 ; OUTPUTS:
9151 ;
9152 ; NO REGISTERS ALTERED ON DISMISSAL
9153 ;
9154 ; R0 -- POINTS TO DTE-20 ON SERVICE DISPATCH
9155 ; R1 -- POINTS TO DTE-20 STATUS REGISTER ON SERVICE DISPATCH
9156 ; R3 -- POINTS TO "PROTBL" ON SERVICE DISPATCH
9157 ;-
9158
9159
9160 027624 .DTINT::
9161 027624 010046 MOV R0,-(SP) ;;; SAVE REGISTERS
9162 027626 010146 MOV R1,-(SP)
9163 027630 010246 MOV R2,-(SP)
9164 027632 010346 MOV R3,-(SP)
9165 027634 010446 MOV R4,-(SP)
9166 027636 010546 MOV R5,-(SP)
9167 027640 INTLPS:
9168 027640 013700 001360' MOV .PRDTE,R0 ;;; BASE ADDRESS OF PRIVILEGED DTE-20
9169 027644 013703 001354' MOV .PRADR,R3 ;;; POINTER TO OUR PROCESSOR TABLE
9170 027650 013701 001356' MOV .PRSTA,R1 ;;; COPY INTERRUPT FLAGS TO R1
9171 027654 032711 121000 BIT #TO10DN!TO10ER!MPE11,(R1) ;;; TO-10 DONE OR ERROR??
9172 027660 100432 BMI .TENDN ;;; TO-10 DONE
9173 027662 001403 BEQ 10$ ;;; NO ERRORS -- GO ON
9174 027664 .CRASH TET ;;; ERROR -- DIE!
027664 000004 IOT
027666 124 105 124 .ASCIZ /TET/
027671 000
9175 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 176-1
DTE-20 DRIVER -- DTE-20 INTERRUPT HEAD
9176 027672 10$:
9177 027672 132711 000202 BITB #TO11DN!TO11ER,(R1) ;;; TO-11 DONE OR ERROR??
9178 027676 100556 BMI .ELEDN ;;; TO-11 DONE
9179 027700 001403 BEQ 20$ ;;; NO ERRORS -- GO ON
9180 027702 .CRASH ETE ;;; ERROR -- DIE AGAIN!
027702 000004 IOT
027704 105 124 105 .ASCIZ /ETE/
027707 000
9181 ;
9182 027710 20$:
9183 027710 032711 004000 BIT #TO11DB,(R1) ;;; HOW ABOUT A DOORBELL??
9184 027714 001404 BEQ DTEXIT ;;; NO -- DISMISS INTERRUPT
9185 027716 005237 001362' INC .PRDCT ;;; YES -- COUNT THE DOORBELL
9186 027722 000137 030540' JMP .DRBEL ;;; AND SERVICE IT
9187 ;
9188 027726 DTEXIT:
9189 027726 012605 MOV (SP)+,R5 ;;; RESTORE THE REGISTERS
9190 027730 012604 MOV (SP)+,R4
9191 027732 012603 MOV (SP)+,R3
9192 027734 012602 MOV (SP)+,R2
9193 027736 012601 MOV (SP)+,R1
9194 027740 012600 MOV (SP)+,R0
9195 027742 000137 014632' JMP ..INTX ;;; COMMON INTERRUPT EXIT
9196 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 177
DTE-20 DRIVER -- TO-10 DONE SERVICE
9198 .SBTTL DTE-20 DRIVER -- TO-10 DONE SERVICE
9199
9200 ;+
9201 ; .TENDN -- TO-10 DONE INTERRUPT SERVICE
9202 ;
9203 ; THIS IS THE TO-10 DONE INTERRUPT SERVICE. FUNCTIONS PROVIDED HERE ARE:
9204 ;
9205 ; TO-10 TRANSFER END CHECKS
9206 ; TO-10 TRANSFER TERMINATION PROCESSING
9207 ; TO-10 QUEUE NODE DELETION AND DEALLOCATION
9208 ; TO-10 TRANSFER INITIATION (".STTNQ")
9209 ; TO-10 INDIRECT TRANSFER CONTINUATION
9210 ;
9211 ; ERRORS HANDLED HERE ARE:
9212 ;
9213 ; TO-10 TRANSFER END CHECK FAILURE (DTF)
9214 ;
9215 ; INPUTS:
9216 ;
9217 ; R0 -- POINTS TO DTE-20
9218 ; R1 -- POINTS TO DTE-20 STATUS REGISTER
9219 ; R3 -- POINTS TO PROCESSOR TABLE ENTRY
9220 ;
9221 ; OUTPUTS:
9222 ;
9223 ; NONE -- REGISTERS ARE NOT NECESSARILY PRESERVED
9224 ;-
9225
9226 027746 .TENDN::
9227 027746 012711 040000 MOV #DON10C,(R1) ;;; CLEAR THE TO-10 DONE FLAG
9228 027752 013704 001314' MOV TO10SZ,R4 ;;; GET THE TRANSFER SIZE
9229 027756 063704 001316' ADD TO10AS,R4 ;;; ADD THE STARTING ADDRESS TO IT
9230 027762 020460 000020 CMP R4,T10AD(R0) ;;; DID IT FINISH WHERE WE EXPECTED IT TO??
9231 027766 001403 BEQ 10$ ;;; YES -- GO ON
9232 027770 .CRASH DTF ;;; NO -- DIE!
027770 000004 IOT
027772 104 124 106 .ASCIZ /DTF/
027775 000
9233 ;
9234 ;
9235 ; HERE TO FINISH UP A TO-10 TRANSFER
9236 ;
9237 027776 10$:
9238 027776 012737 000001 001316' MOV #1,TO10AS ;;; SAY WE EXPECT NO TRANSFER
9239 030004 013704 001326' MOV TO10Q,R4 ;;; POINT TO THE TO-10 QUEUE
9240 030010 005764 000012 TST 12(R4) ;;; CHECK TRANSFER TYPE
9241 030014 100432 BMI STIND2 ;;; INDIRECT HEADER -- START SECOND PART
9242 030016 001010 BNE 20$ ;;; DIRECT FUNCTION -- FINISH IT UP
9243 ;
9244 ; HERE TO FINISH A TO-10 INDIRECT TRANSFER
9245 ;
9246 030020 053777 001266' 151242 BIS DTEMSK,@DTEADR ;;; SET ANY EVENT FLAGS
9247 030026 CALL ..DSEV ;;; AND DECLARE A SIGNIFICANT EVENT
030026 004737 044026' JSR PC,..DSEV
9248 030032 042737 000006 001322' BIC #TOIP!TOBM,STSTT+2 ;;; CLEAR INDIRECT IN PROGRESS
9249 ;
9250 ; HERE TO FINISH A DIRECT OR INDIRECT TRANSFER
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 177-1
DTE-20 DRIVER -- TO-10 DONE SERVICE
9251 ;
9252 030040 20$:
9253 030040 CALL ..NDEL ;;; REMOVE THE NODE FROM THE TO-10 QUEUE
030040 004737 044062' JSR PC,..NDEL
9254 030044 016401 000004 MOV 4(R4),R1 ;;; FIND THE SIZE OF THE NODE TO RETURN
9255 030050 010400 MOV R4,R0 ;;; POINT TO THE NODE
9256 030052 CALL ..DECB ;;; RETURN THE NODE
030052 004737 044552' JSR PC,..DECB
9257 030056 105037 001373' CLRB TOXQIP ;;; RESET THE TO-10 QUEUE IN PROGRESS FLAG
9258 030062 013704 001326' MOV TO10Q,R4 ;;; POINT TO THE LISTHEAD
9259 030066 022704 001326' CMP #TO10Q,R4 ;;; IS THE TO-10 QUEUE EMPTY??
9260 030072 001662 BEQ INTLPS ;;; YES -- DONE WITH THIS INTERRUPT
9261 030074 CALL .STTNQ ;;; NO -- SEE IF ANOTHER NODE MAY BE STARTED
030074 004737 031362' JSR PC,.STTNQ
9262 030100 000657 BR INTLPS ;;; AND EXIT
9263 ;
9264 ;
9265 ; HERE TO START SECOND HALF OF AN INDIRECT TRANSFER
9266 ;
9267 030102 STIND2:
9268 030102 005064 000012 CLR 12(R4) ;;; RESET INDIRECT PENDING SEMAPHORE
9269 ;
9270 ; HERE TO SET UP THE TRANSFER SIZE IN THE COMM REGION
9271 ;
9272 030106 062704 000020 ADD #20,R4 ;;; POINT TO THE BYTE COUNT
9273 030112 005060 000006 CLR DXWD1(R0) ;;; LOAD UP THE TRANSFER SIZE
9274 030116 005060 000004 CLR DXWD2(R0)
9275 030122 005005 CLR R5 ;;; CLEAR R5
9276 030124 152405 BISB (R4)+,R5 ;;; GET THE TRANSFER SIZE
9277 030126 105724 TSTB (R4)+ ;;; ADVANCE TO NEXT WORD
9278 030130 010537 001314' MOV R5,TO10SZ ;;; SAVE THE BYTE COUNT FOR END CHECKS
9279 030134 010560 000002 MOV R5,DXWD3(R0) ;;; AND SET IT
9280 030140 011437 001316' MOV (R4),TO10AS ;;; SAVE THE START ADDRESS FOR END CHECKS
9281 030144 012460 000020 MOV (R4)+,T10AD(R0) ;;; SET UP THE SOURCE ADDRESS
9282 030150 012705 000003 MOV #QSIZE-FORPRO,R5 ;;; OFFSET FOR TRANSFER SIZE
9283 030154 066305 000004 ADD DMYN(R3),R5 ;;; ADD IN COMM REGION OFFSET
9284 030160 012760 010000 000010 MOV #DEP,TNAD1(R0) ;;; THIS IS A DEPOSIT
9285 030166 010560 000012 MOV R5,TNAD2(R0) ;;; THIS STARTS THE TRANSFER
9286 030172 CALL ..WFED ;;; WAIT FOR IT TO COMPLETE
030172 004737 046216' JSR PC,..WFED
9287 ;
9288 ; HERE TO SEND OUR STATUS TO THE TEN
9289 ;
9290 030176 052737 000006 001322' BIS #TOIP!TOBM,STSTT+2 ;;; SET INDIRECT IN PROGRESS AND BYTE MODE
9291 030204 005060 000036 CLR DAG3(R0) ;;; SET FRONT-END WORD MODE
9292 030210 CALL SNDSTS ;;; SEND STATUS TO THE TEN
030210 004737 031536' JSR PC,SNDSTS
9293 ;
9294 ; HERE TO SET UP FOR NORMAL INDIRECT TERMINATION
9295 ;
9296 030214 012437 001266' MOV (R4)+,DTEMSK ;;; FIND THE EVENT FLAGS
9297 030220 011437 001270' MOV (R4),DTEADR ;;; AND WHERE THEY BELONG
9298 030224 012777 000400 151124 MOV #TO10DB,@.PRSTA ;;; RING HIS DOORBELL
9299 030232 000602 BR INTLPS ;;; AND GO AWAY
9300 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 178
DTE-20 DRIVER -- TO-11 DONE SERVICE
9302 .SBTTL DTE-20 DRIVER -- TO-11 DONE SERVICE
9303
9304 ;+
9305 ; .ELEDN -- TO-11 DONE SERVICE
9306 ;
9307 ; THIS IS THE TO-11 DONE SERVICE. FUNCTIONS PROVIDED HERE ARE:
9308 ;
9309 ; TO-11 TRANSFER END CHECKS
9310 ; TO-11 QUEUE NODE ENTRY
9311 ; TO-11 TRANSFER TERMINATION POCESSING
9312 ; BASIC PROTOCOL ERROR PROCESSING
9313 ;
9314 ; ERRORS PROCESSED HERE ARE:
9315 ;
9316 ; TO-11 TRANSFER TERMINATION ERROR (DTB)
9317 ; ILLEGAL PROTOCOL DEVICE CODE (PT1)
9318 ; ILLEGAL PROTOCOL FUNCTION CODE (PT2)
9319 ;
9320 ; INPUTS:
9321 ;
9322 ; R0 -- POINTS TO DTE-20
9323 ; R1 -- POINTS TO DTE-20 STATUS REGISTER
9324 ; R3 -- POINTS TO PROCESSOR TABLE ENTRY
9325 ;
9326 ; OUTPUTS:
9327 ;
9328 ; NONE -- REGISTERS ARE NOT NECESSARILY PRESERVED
9329 ;-
9330
9331 030234 .ELEDN::
9332 030234 012711 000100 MOV #DON11C,(R1) ;;; CLEAR TO-11 DONE FLAG
9333 030240 013701 001312' MOV TO11BS,R1 ;;; GET OUR SAVED BYTE COUNT
9334 030244 052701 170000 BIS #170000,R1 ;;; DO THE SIGN EXTENSION
9335 030250 005401 NEG R1 ;;; MAKE IT A POSITIVE INTEGER
9336 030252 032737 020000 001312' BIT #TO11BM,TO11BS ;;; WERE WE IN BYTE MODE??
9337 030260 001001 BNE 10$ ;;; YES -- GO ON
9338 030262 006301 ASL R1 ;;; NO -- MAKE IT A WORD COUNT
9339 030264 10$:
9340 030264 063701 001310' ADD TO11AS,R1 ;;; COMPUTE WHERE WE SHOULD HAVE FINISHED
9341 030270 020160 000022 CMP R1,T11AD(R0) ;;; ARE WE THERE??
9342 030274 001406 BEQ 20$ ;;; YES -- GO ON
9343 030276 016027 000022 MOV T11AD(R0),(PC)+ ;;; NO -- SAVE WHERE WE ARE FOR DUMP
9344 030302 000000 .WORD 0
9345 030304 .CRASH DTB ;;; AND DIE!
030304 000004 IOT
030306 104 124 102 .ASCIZ /DTB/
030311 000
9346 ;
9347 030312 20$:
9348 030312 000337 001276' SWAB TO11FN ;;; SWAP THE BYTES
9349 030316 001017 BNE FELXFR ;;; IN PROGRESS -- PROCESS IT
9350 ;
9351 ; HERE TO ENTER A NEW NODE IN THE TO-11 QUEUE
9352 ;
9353 030320 ENTELQ:
9354 030320 013701 001272' MOV TO11NP,R1 ;;; DONE -- POINT TO THE NEW NODE
9355 030324 012704 001334' MOV #TO11Q,R4 ;;; POINT TO THE LISTHEAD
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 178-1
DTE-20 DRIVER -- TO-11 DONE SERVICE
9356 030330 10$:
9357 030330 010402 MOV R4,R2 ;;; SAVE CURRENT NODE POINTER
9358 030332 011404 MOV (R4),R4 ;;; FIND THE END OF THE QUEUE
9359 030334 001375 BNE 10$ ;;; NOT YET -- KEEP GOING
9360 030336 005011 CLR (R1) ;;; MARK NEW LIST TERMINATOR
9361 030340 010112 MOV R1,(R2) ;;; AND LINK IN NEW NODE
9362 030342 052737 000100 007132' BIS #EF.TED,DTETSK+A.EF ;;; WAKE UP THE QUEUED PROTOCOL DRIVER
9363 030350 CALL ..DSEV ;;; SO
030350 004737 044026' JSR PC,..DSEV
9364 030354 000462 BR TOITDN ;;; AND DONE...
9365 ;
9366 ;
9367 ; HERE TO FINISH A TO-11 DIRECT TRANSFER
9368 ;
9369 030356 FELXFR:
9370 030356 000337 001274' SWAB TO11HD ;;; SWAP THE SIZE BYTES
9371 030362 000337 001300' SWAB TO11DV ;;; AND THE DEVICE CODE BYTES
9372 030366 022737 000010 001300' CMP #.DQPSZ,TO11DV ;;; IS THE DEVICE CODE LEGAL??
9373 030374 103003 BHIS 10$ ;;; YES -- GO ON
9374 030376 .CRASH PT1 ;;; NO -- DIE!
030376 000004 IOT
030400 120 124 061 .ASCIZ /PT1/
030403 000
9375 ;
9376 030404 10$:
9377 030404 123727 001276' 000040 CMPB TO11FN,#BC.FNM ;;; IS THIS A LEGAL FUNCTION??
9378 030412 103403 BLO 20$ ;;; YES -- GO ON
9379 030414 .CRASH PT2 ;;; NO -- DIE!
030414 000004 IOT
030416 120 124 062 .ASCIZ /PT2/
030421 000
9380 ;
9381 030422 20$:
9382 030422 005737 001276' TST TO11FN ;;; INDIRECT IN PROGRESS??
9383 030426 100007 BPL 30$ ;;; NO -- GO ON
9384 030430 010046 MOV R0,-(SP) ;;; YES -- SAVE DTE-20 POINTER
9385 030432 013700 001272' MOV TO11NP,R0 ;;; POINT TO PRE-ALLOCATED BUFFER
9386 030436 CALL ..DECN ;;; AND GET RID OF IT
030436 004737 044546' JSR PC,..DECN
9387 030442 012600 MOV (SP)+,R0 ;;; RESTORE DTE-20 POINTER
9388 030444 000426 BR TOITDN ;;; SET QUEUE IDLE STATE AND EXIT
9389 ;
9390 030446 30$:
9391 030446 013705 001272' MOV TO11NP,R5 ;;; GET THE NODE POINTER
9392 030452 CALL LODNOD ;;; AND LOAD IT UP
030452 004737 031712' JSR PC,LODNOD
9393 030456 010502 MOV R5,R2 ;;; SET UP THE ADDRESS IN CASE EXTENDED DIRECT
9394 030460 005037 001276' CLR TO11FN ;;; RELEASE FIXED BUFFER
9395 030464 013701 001274' MOV TO11HD,R1 ;;; FIND THE BYTE COUNT
9396 030470 162701 000012 SUB #^D10,R1 ;;; ARE WE FINISHED??
9397 030474 001711 BEQ ENTELQ ;;; YES -- ENTER THE NODE IN THE QUEUE AND EXIT
9398 ;
9399 ; HERE FOR AN EXTENDED DIRECT TRANSFER
9400 ;
9401 030476 160137 001332' SUB R1,EQSZ ;;; NO -- ACCOUNT FOR THE HEADER
9402 030502 005401 NEG R1 ;;; NEGATE THE BYTE COUNT
9403 030504 042701 170000 BIC #^C7777,R1 ;;; TRIM TO BYTE COUNT
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 178-2
DTE-20 DRIVER -- TO-11 DONE SERVICE
9404 030510 052701 120000 BIS #TO11BM!IFLOP,R1 ;;; SET THE MODE FLAGS
9405 030514 CALL STBXFR ;;; START THE TRANSFER
030514 004737 031670' JSR PC,STBXFR
9406 030520 000405 BR TEDXIT ;;; AND EXIT
9407 ;
9408 ;
9409 ; HERE TO RETURN DONE STATUS TO THE KL
9410 ;
9411 030522 TOITDN:
9412 030522 042737 000001 001322' BIC #TOIT,STSTT+2 ;;; CLEAR PROCESSING QUEUE STATUS
9413 030530 CALL SNDSTS ;;; SEND THE STATUS
030530 004737 031536' JSR PC,SNDSTS
9414 030534 TEDXIT:
9415 030534 000137 027640' JMP INTLPS ;;; CHECK OTHER DTE-20 STATUS AND DISMISS
9416 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 179
DTE-20 DRIVER -- DOORBELL SERVICE
9418 .SBTTL DTE-20 DRIVER -- DOORBELL SERVICE
9419
9420 ;+
9421 ; .DRBEL -- DOORBELL SERVICE
9422 ;
9423 ; THIS IS THE DOORBELL SERVICE. FUNCTIONS PROVIDED HERE ARE:
9424 ;
9425 ; REQUESTED RELOAD SERVICE
9426 ; POWERFAIL WARNING SERVICE
9427 ; PROTOCOL PAUSE ENTRANCE SERVICE
9428 ; TO-11 HEADER TRANSFER INITIATION
9429 ; TO-11 INDIRECT TRANSFER CONTINUATION
9430 ; DOORBELL ERROR PROCESSING
9431 ;
9432 ; ERRORS PROCESSED HERE ARE:
9433 ;
9434 ; UNIMPLEMENTED DTE-20 PROTOCOL FUNCTION (UIE)
9435 ; UNSYNCHRONIZED TO-11 INDIRECT TRANSFER (PT3)
9436 ; UNSYNCHRONIZED HEADER TRANSFER (ILQ)
9437 ; TO-11 TRANSFER TOO LARGE (PT4)
9438 ;
9439 ; INPUTS:
9440 ;
9441 ; R0 -- POINTS TO DTE-20
9442 ; R1 -- POINTS TO DTE-20 STATUS REGISTER
9443 ; R3 -- POINTS TO PROCESSOR TABLE ENTRY
9444 ;
9445 ; OUTPUTS:
9446 ;
9447 ; NONE -- REGISTERS ARE NOT NECESSARILY PRESERVED
9448 ;-
9449
9450 030540 .DRBEL::
9451 030540 012711 002000 MOV #INT11C,(R1) ;;; CLEAR RINGING DOORBELL
9452 030544 005060 000010 CLR TNAD1(R0) ;;; SET UP TO READ DOORBELL STATUS
9453 030550 012702 000002 MOV #STATUS-FORPRO,R2 ;;; POINT TO THE STATUS WORD
9454 030554 066302 000010 ADD EHSM(R3),R2 ;;; IN HIS SECTION FOR ME
9455 030560 010260 000012 MOV R2,TNAD2(R0) ;;; START THE EXAMINE
9456 030564 CALL ..WFED ;;; WAIT FOR IT TO FINISH
030564 004737 046216' JSR PC,..WFED
9457 030570 103427 BCS DBLEPX ;;; EXIT IF ERROR
9458 030572 012701 001344' MOV #STATI+6,R1 ;;; POINT TO BOTTOM OF STATUS BLOCK
9459 030576 016041 000002 MOV DXWD3(R0),-(R1) ;;; AND REVERSE-UNLOAD THE STATUS
9460 030602 016041 000004 MOV DXWD2(R0),-(R1) ;;; SO
9461 030606 016041 000006 MOV DXWD1(R0),-(R1) ;;; CHECK VALID EXAMINE
9462 030612 001414 BEQ DBLEPP ;;; NOT THERE -- ENTER PROTOCOL PAUSE
9463 ;
9464 ; HERE TO CHECK FOR RELOAD AND POWERFAIL
9465 ;
9466 ; R1 POINTS TO STATI
9467 ;
9468 030614 032721 000016 BIT #16,(R1)+ ;;; IS THIS A RELOAD OR POWERFAIL??
9469 030620 001433 BEQ DBLXFR ;;; NO -- SEE ABOUT HEADERS AND INDIRECTS
9470 030622 032741 000004 BIT #LOAD11,-(R1) ;;; YES -- IS IT A RELOAD??
9471 030626 001012 BNE DBLRLD ;;; YES -- RELOAD HIM
9472 030630 032711 000010 BIT #KLPWRF,(R1) ;;; NO -- IS IT A POWERFAIL??
9473 030634 001021 BNE DBLPWR ;;; YES -- SET UP TO TAKE IT
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 179-1
DTE-20 DRIVER -- DOORBELL SERVICE
9474 030636 .CRASH UIE ;;; NO -- UNIMPLEMENTED FUNCTION
030636 000004 IOT
030640 125 111 105 .ASCIZ /UIE/
030643 000
9475 ;
9476 ;
9477 ; HERE TO ENTER PROTOCOL PAUSE
9478 ;
9479 030644 DBLEPP:
9480 030644 CALL ..DTP2 ;;; START SECONDARY PROTOCOL
030644 004737 047006' JSR PC,..DTP2
9481 030650 DBLEPX:
9482 030650 000137 027726' JMP DTEXIT ;;; AND DISMISS
9483 ;
9484 ;
9485 ; HERE TO INITIATE A KL RELOAD
9486 ;
9487 030654 DBLRLD:
9488 030654 052737 000040 001126' BIS #KS.TRR,.KLITK ;;; REQUEST THE RELOAD
9489 030662 105237 001122' INCB .NOERR ;;; MARK THAT AN ERROR IS BEING SERVICED
9490 030666 CALL ..DTSP ;;; CLEAR ALL PROTOCOLS
030666 004737 046770' JSR PC,..DTSP
9491 030672 105237 001124' INCB .TKTN ;;; REQUEST NOTIFICATION
9492 030676 000462 BR DBLDON ;;; AND EXIT
9493 ;
9494 ;
9495 ; HERE TO INITIALIZE FOR IMPENDING POWERFAIL
9496 ;
9497 030700 DBLPWR:
9498 030700 052737 004000 001012' BIS #EF.PFR,.COMEF+2 ;;; MARK THAT WE ANTICIPATE A POWERFAIL
9499 030706 000463 BR DBLXIT ;;; EXIT -- NO STATUS REQUIRED
9500 ;
9501 ;
9502 ; HERE TO SEE IF THIS IS A HEADER TO PROCESS
9503 ;
9504 ; R1 POINTS TO STATI+2
9505 ;
9506 030710 DBLXFR:
9507 030710 032721 000002 BIT #TOIP,(R1)+ ;;; IS THIS AN INDIRECT IN PROGRESS??
9508 030714 001411 BEQ DBLHDR ;;; NO -- MUST BE A HEADER (DIRECT)
9509 030716 005737 001276' TST TO11FN ;;; DO WE BELIEVE THAT IT IS INDIRECT??
9510 030722 100403 BMI 10$ ;;; YES -- GO ON
9511 030724 .CRASH PT3 ;;; NO -- DIE!
030724 000004 IOT
030726 120 124 063 .ASCIZ /PT3/
030731 000
9512 ;
9513 ;
9514 ; HERE TO PROCESS SECOND HALF OF AN INDIRECT TRANSFER
9515 ;
9516 030732 10$:
9517 030732 CALL .STELI ;;; START THE INDIRECT PART
030732 004737 031150' JSR PC,.STELI
9518 030736 000447 BR DBLXIT ;;; AND EXIT
9519 ;
9520 ;
9521 ; HERE TO START A DIRECT (HEADER) TRANSFER
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 179-2
DTE-20 DRIVER -- DOORBELL SERVICE
9522 ;
9523 ; R1 POINTS TO STATI+4
9524 ;
9525 030740 DBLHDR:
9526 030740 121137 001324' CMPB (R1),TO10QC ;;; IS THIS THE SAME NODE??
9527 030744 001437 BEQ DBLDON ;;; YES -- SEND STATUS AND EXIT
9528 030746 105237 001324' INCB TO10QC ;;; NO -- UPDATE THE QUEUE COUNT
9529 030752 121137 001324' CMPB (R1),TO10QC ;;; IS IT NOW CORRECT??
9530 030756 001403 BEQ 10$ ;;; YES -- GO ON
9531 030760 .CRASH ILQ ;;; NO -- DIE!
030760 000004 IOT
030762 111 114 121 .ASCIZ /ILQ/
030765 000
9532 ;
9533 030766 10$:
9534 030766 012702 000003 MOV #QSIZE-FORPRO,R2 ;;; POINT TO THE QUEUE SIZE
9535 030772 066302 000010 ADD EHSM(R3),R2 ;;; IN HIS GENERAL SECTION FOR ME
9536 030776 005060 000010 CLR TNAD1(R0) ;;; CLEAR THE DEPOSIT BIT
9537 031002 010260 000012 MOV R2,TNAD2(R0) ;;; SET THE ADDRESS AND START THE EXAMINE
9538 031006 CALL ..WFED ;;; WAIT FOR IT TO COMPLETE
031006 004737 046216' JSR PC,..WFED
9539 031012 016037 000002 001332' MOV DXWD3(R0),EQSZ ;;; READ THE DIRECT SIZE
9540 031020 023727 001332' 000144 CMP EQSZ,#^D100 ;;; IS THE NODE OF A LEGAL SIZE??
9541 031026 103403 BLO 20$ ;;; YES -- GO ON
9542 031030 .CRASH PT4 ;;; NO -- DIE!
031030 000004 IOT
031032 120 124 064 .ASCIZ /PT4/
031035 000
9543 ;
9544 031036 20$:
9545 031036 CALL .STELD ;;; ALLOCATE AND START THIS HEADER
031036 004737 031062' JSR PC,.STELD
9546 031042 000405 BR DBLXIT ;;; AND EXIT
9547 ;
9548 031044 DBLDON:
9549 031044 052737 000001 001322' BIS #TOIT,STSTT+2 ;;; SET PROCESSING QUEUE STATUS
9550 031052 CALL SNDSTS ;;; SEND THE STATUS
031052 004737 031536' JSR PC,SNDSTS
9551 031056 DBLXIT:
9552 031056 000137 027640' JMP INTLPS ;;; AND EXIT
9553 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 180
DTE-20 DRIVER -- START TO ELEVEN DIRECT TRANSFER
9555 .SBTTL DTE-20 DRIVER -- START TO ELEVEN DIRECT TRANSFER
9556
9557 ;+
9558 ; .STELD -- START TO ELEVEN DIRECT TRANSFER
9559 ;
9560 ; THIS SUBROUTINE WILL ATTEMPT TO START A DIRECT TRANSFER TO THE TO-11 QUEUE.
9561 ; IF THE ALLOCATION FOR THE NODE TO BE TRANSFERRED IS SUCCESSFUL, THE NODE
9562 ; IS STARTED IMMEDIATELY. IF THE ALLOCATION IS UNSUCCESSFUL, THE NODE START
9563 ; IS DEFERRED UNTIL THE NEXT CALL TO THE CORE MANAGER ("..DECB", Q.V.).
9564 ; UNDER THESE CIRCUMSTANCES THE TO-11 QUEUE BLOCKED FLAG, ".DTBLK", IS SET TO
9565 ; THE RE-ENTRY ADDRESS (".STELD") TO MARK THE BLOCKING OF THE QUEUE. THE
9566 ; TO-11 QUEUE BECOMES UNBLOCKED AFTER SPACE FOR THE NODE IS SUCESSFULLY
9567 ; ALLOCATED AND THE TRANSFER STARTED.
9568 ;
9569 ; TO PREVENT KEEP-ALIVE PROBLEMS, THE FRONT-END'S KEEP-ALIVE COUNT IS TRANSMITTED
9570 ; TO THE HOST ONCE PER 256 HEADERS ACCEPTED.
9571 ;
9572 ; INPUTS:
9573 ;
9574 ; R0 -- POINTS TO DTE-20
9575 ; R3 -- POINTS TO PROCESSOR TABLE
9576 ; EQSZ -- SIZE OF NODE TO BE ALLOCATED (SEE NOTE BELOW)
9577 ;
9578 ; OUTPUTS:
9579 ;
9580 ; R1, R2 ALTERED
9581 ; ".DTBLK" .NE. 0 IF TO-11 QUEUE IS BLOCKED
9582 ; ".DTBLK" .EQ. 0 IF TO-11 QUEUE TRANSFER IS IN PROGRESS
9583 ;
9584 ; EXIT CONDITIONS ARE SET UP PER CONTENTS OF ".DTBLK"
9585 ;
9586 ; NOTE:
9587 ;
9588 ; THIS ROUTINE MUST BE ENTERED WITH INTERRUPTS INHIBITTED
9589 ;
9590 ; THIS ROUTINE ASSUMES THAT ALL TRANSFERS ARE DIRECT TRANSFERS, AND
9591 ; THUS ATTEMPTS TO PRE-ALLOCATE BUFFER SPACE FOR IT. IF THE TRANSFER
9592 ; IS AN INDIRECT TRANSFER, THE PRE-ALLOCATED BUFFER IS DISCARDED BY THE
9593 ; TO-11 DONE INTERRUPT SERVICE IN ANTICIPATION OF THE INDIRECT TRANSFER
9594 ; START BY THE DOORBELL SERVICE.
9595 ;-
9596
9597 031062 .STELD::
9598 031062 013701 001332' MOV EQSZ,R1 ;;; PICK UP THE TRANSFER SIZE
9599 031066 132121 BITB (R1)+,(R1)+ ;;; ADD IN OUR OVERHEAD
9600 031070 CALL GETBUF ;;; TRY TO GET A BUFFER
031070 004737 031612' JSR PC,GETBUF
9601 031074 103004 BCC 10$ ;;; ALL OK IF CC-C IS CLEAR
9602 031076 012737 031062' 001374' MOV #.STELD,.DTBLK ;;; FAILED -- SET RE-ENTRY ADDRESS AS BLOCKED FLAG
9603 031104 000507 BR STELIX ;;; AND EXIT
9604 ;
9605 031106 10$:
9606 031106 105737 001324' TSTB TO10QC ;;; HAVE WE ACCEPTED 256. HEADERS??
9607 031112 001002 BNE 20$ ;;; NO -- GO ON
9608 031114 CALL .KPALV ;;; YES -- SEND OUR KEEP-ALIVE COUNT
031114 004737 031326' JSR PC,.KPALV
9609 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 180-1
DTE-20 DRIVER -- START TO ELEVEN DIRECT TRANSFER
9610 ; HERE TO START THE NEXT NODE IN THE TO-11 QUEUE
9611 ;
9612 031120 20$:
9613 031120 005001 CLR R1 ;;; ASSUME NO INTERRUPT WANTED
9614 031122 162737 000012 001332' SUB #^D10,EQSZ ;;; DISCOUNT THE HEADER
9615 031130 001002 BNE 30$ ;;; DON'T NEED AN INTERRUPT THIS TIME
9616 031132 052701 100000 BIS #IFLOP,R1 ;;; MUST INTERRUPT IF COUNT GOES TO ZERO
9617 031136 30$:
9618 031136 012702 001274' MOV #TO11HD,R2 ;;; ADDRESS TO R2
9619 031142 052701 027766 BIS #<-^D10&7777>!TO11BM,R1 ;;; SET UP BYTE COUNT AND MODE
9620 031146 000455 BR STELIG ;;; START THE TRANSFER AND EXIT
9621 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 181
DTE-20 DRIVER -- START TO ELEVEN INDIRECT TRANSFER
9623 .SBTTL DTE-20 DRIVER -- START TO ELEVEN INDIRECT TRANSFER
9624
9625 ;+
9626 ; .STELI -- START TO ELEVEN INDIRECT TRANSFER
9627 ;
9628 ; THIS SUBROUTINE WILL ALLOCATE BUFFER SPACE FOR AND START A TO-11 INDIRECT
9629 ; TRANSFER. IF THE ALLOCATION IS SUCCSSFUL, THE TRANSFER IS IN PROGRESS UPON
9630 ; EXIT FROM THIS ROUTINE.
9631 ;
9632 ; IF THE ALLOCATION IS UNSUCCESSFUL, THE TRANSFER IS DECLARED BLOCKED AND THE
9633 ; RESTART ADDRESS (".STELI") IS STORED AS THE BLOCKED FLAG.
9634 ;
9635 ; INPUTS:
9636 ;
9637 ; R0 -- POINTS TO DTE-20
9638 ; R3 -- POINTS TO PROCESSOR TABLE
9639 ;
9640 ; OUTPUTS:
9641 ;
9642 ; R1, R2 ALTERED
9643 ; ".DTBLK" .NE. 0 IF TRANSFER IS BLOCKED
9644 ; ".DTBLK" .EQ. 0 IF TRANSFER IS IN PROGRESS
9645 ;
9646 ; EXIT CONDITIONS ARE SET UP PER CONTENTS OF ".DTBLK"
9647 ;
9648 ; NOTE:
9649 ;
9650 ; THIS ROUTINE MUST BE ENTERED WITH INTERRUPTS INHIBITTED
9651 ;-
9652
9653 031150 .STELI::
9654 031150 012702 000003 MOV #QSIZE-FORPRO,R2 ;;; POINT TO THE SIZE WORD
9655 031154 066302 000010 ADD EHSM(R3),R2 ;;; ADD IN WINDOW OFFSET
9656 031160 005060 000010 CLR TNAD1(R0) ;;; CLEAR DEPOSIT
9657 031164 010260 000012 MOV R2,TNAD2(R0) ;;; START THE EXAMINE
9658 031170 CALL ..WFED ;;; WAIT FOR THE EXAMINE TO COMPLETE
031170 004737 046216' JSR PC,..WFED
9659 031174 016001 000002 MOV DXWD3(R0),R1 ;;; PICK UP THE INDIRECT SIZE
9660 031200 062701 000012 ADD #12,R1 ;;; ADD IN SPACE FOR HEADER
9661 031204 CALL GETBUF ;;; GET A BUFFER FOR THE MESSAGE
031204 004737 031612' JSR PC,GETBUF
9662 031210 103004 BCC 20$ ;;; ALL OK IF CC-C IS CLEAR
9663 031212 012737 031150' 001374' MOV #.STELI,.DTBLK ;;; SET THE RETRY ADDRESS AS FLAG
9664 031220 000441 BR STELIX ;;; AND EXIT
9665 ;
9666 031222 20$:
9667 031222 010546 MOV R5,-(SP) ;;; SAVE R5
9668 031224 013705 001272' MOV TO11NP,R5 ;;; GET THE NODE POINTER
9669 031230 CALL LODNOD ;;; GET THE HEADER OUT OF THE FIXED BUFFER
031230 004737 031712' JSR PC,LODNOD
9670 031234 010502 MOV R5,R2 ;;; SET UP TRANSFER ADDRESS
9671 031236 012605 MOV (SP)+,R5 ;;; RESTORE R5
9672 031240 016001 000002 MOV DXWD3(R0),R1 ;;; GET THE TRANSFER COUNT
9673 031244 005401 NEG R1 ;;; CONVERT TO A BYTE COUNT
9674 031246 042701 170000 BIC #^C7777,R1 ;;; SO
9675 031252 106001 RORB R1 ;;; NOW TO A WORD COUNT --
9676 ;;; NOTE: >> THIS ASSUMES CC-C SET BY "NEG R1"
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 181-1
DTE-20 DRIVER -- START TO ELEVEN INDIRECT TRANSFER
9677 031254 032737 000004 001340' BIT #TOBM,STATI+2 ;;; ARE WE IN WORD MODE??
9678 031262 001003 BNE 30$ ;;; NO -- GO ON
9679 031264 106101 ROLB R1 ;;; YES -- RESTORE TO BYTE COUNT
9680 ;;; NOTE: >> SEE PREVIOUS NOTE
9681 031266 052701 020000 BIS #TO11BM,R1 ;;; SET BYTE MODE
9682 031272 30$:
9683 031272 052701 100000 BIS #IFLOP,R1 ;;; INTERRUPT BOTH CPU'S WHEN DONE
9684 031276 005037 001276' CLR TO11FN ;;; RELEASE FIXED BUFFER
9685 031302 STELIG:
9686 031302 CALL STBXFR ;;; START THE TRANSFER
031302 004737 031670' JSR PC,STBXFR
9687 031306 052737 000001 001322' BIS #TOIT,STSTT+2 ;;; SET QUEUE IN PROGRESS STATUS
9688 031314 CALL SNDSTS ;;; SEND THE STATUS
031314 004737 031536' JSR PC,SNDSTS
9689 031320 005037 001374' CLR .DTBLK ;;; CLEAR QUEUE BLOCKED FLAG (SETS CC-Z)
9690 031324 STELIX:
9691 031324 RETURN ;;; TO CALLER
031324 000207 RTS PC
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 182
DTE-20 DRIVER -- UPDATE AND TRANSMIT FRONT-END KEEP-ALIVE COUN
9693 .SBTTL DTE-20 DRIVER -- UPDATE AND TRANSMIT FRONT-END KEEP-ALIVE COUNT
9694
9695 ;+
9696 ; .KPALV -- UPDATE AND TRANSMIT FRONT-END KEEP-ALIVE COUNT
9697 ;
9698 ; THIS SUBROUTINE WILL UPDATE AND TRANSMIT THE FRONT-END KEEP-ALIVE COUNT.
9699 ; THE KEEP-ALIVE IS DONE HERE, "BY HAND", TO AVOID PROBLEMS ASSOCIATED WITH
9700 ; CALLING AN EMT FROM INTERRUPT LEVEL.
9701 ;
9702 ; INPUTS:
9703 ;
9704 ; R0 -- POINTS TO THE DTE-20
9705 ;
9706 ; OUTPUTS:
9707 ;
9708 ; NONE.
9709 ;
9710 ; NOTES:
9711 ;
9712 ; THIS SUBROUTINE SHOULD ONLY BE CALLED AT PRI6 OR HIGHER
9713 ; THIS SUBROUTINE EXITS THROUGH "..WFED", Q.V.
9714 ;-
9715
9716 031326 .KPALV::
9717 031326 005237 001406' INC KPAL1 ;;; BUMP THE KEEP-ALIVE COUNT
9718 031332 010001 MOV R0,R1 ;;; COPY DTE-20 POINTER TO R1
9719 031334 005021 CLR (R1)+ ;;; CLEAR AND GET OVER DELAY COUNTER
9720 031336 013721 001406' MOV KPAL1,(R1)+ ;;; SET DOWN THE KEEP-ALIVE COUNT
9721 031342 005021 CLR (R1)+ ;;; CLEAR REST OF WORD
9722 031344 005021 CLR (R1)+ ;;; SO
9723 031346 012721 010000 MOV #DEP,(R1)+ ;;; SET UP DEPOSIT
9724 031352 012711 000005 MOV #PSWW1,(R1) ;;; SET ADDRESS AND START DEPOSIT
9725 031356 000137 046216' JMP ..WFED ;;; WAIT FOR COMPLETION AND EXIT
9726 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 183
DTE-20 DRIVER -- START TO TEN QUEUE
9728 .SBTTL DTE-20 DRIVER -- START TO TEN QUEUE
9729
9730 ;+
9731 ; .STTNQ -- SUBROUTINE TO CONDITIONALLY START NEXT TO TEN QUEUE NODE
9732 ; .STTNF -- SUBROUTINE TO START NEXT TO-10 QUEUE NODE
9733 ;
9734 ; THESE SUBROUTINES WILL START THE NEXT NODE IN THE TO-10 QUEUE. ".STTNQ"
9735 ; WILL START A NODE IF AND ONLY IF THE TO11Q IS EMPTY. IF THIS IS NOT
9736 ; THE CASE, THE TO-10 QUEUE NODE START WILL BE DEFERRED TO WHEN THE
9737 ; NEXT TO-11 QUEUE NODE HAS FINISHED. ".STTNF" WILL START THE NEXT
9738 ; TO-10 QUEUE NODE IF THE CURRENT TO-10 QUEUE NODE IS FINISHED.
9739 ;
9740 ; INPUTS:
9741 ;
9742 ; R4 -- POINTS TO-10 QUEUE NODE TO BE STARTED
9743 ;
9744 ; OUTPUTS:
9745 ;
9746 ; NO REGISTERS ALTERED
9747 ;
9748 ; NOTES:
9749 ;
9750 ; THIS ROUTINE MUST BE ENTERED WITH INTERRUPTS INHIBITTED
9751 ;-
9752
9753 .ENABL LSB
9754
9755 031362 .STTNQ::
9756 031362 005737 001334' TST TO11Q ;;; ANYTHING IN THE TO-11 QUEUE??
9757 031366 001110 BNE 20$ ;;; YES -- WAIT FOR TO-11 QUEUE NODE TO FINISH
9758 031370 .STTNF::
9759 031370 105737 001373' TSTB TOXQIP ;;; NO -- IS THERE A TO-10 QUEUE NODE IN PROGRESS??
9760 031374 001105 BNE 20$ ;;; YES -- EXIT
9761 031376 010546 MOV R5,-(SP) ;;; NO -- SAVE REGISTERS
9762 031400 010346 MOV R3,-(SP)
9763 031402 010046 MOV R0,-(SP) ;;; SO
9764 031404 013700 001360' MOV .PRDTE,R0 ;;; SET UP ADDRESS OF DTE-20
9765 031410 013703 001354' MOV .PRADR,R3 ;;; POINT TO THE PROCESSOR TABLE
9766 031414 005060 000006 CLR DXWD1(R0) ;;; SET UP THE TRANSFER
9767 031420 005060 000004 CLR DXWD2(R0) ;;; SO
9768 031424 010405 MOV R4,R5 ;;; SAVE THE NODE ADDRESS
9769 031426 062705 000006 ADD #6,R5 ;;; MOVE OVER LISTHEAD AND NODE SIZE
9770 031432 011537 001314' MOV @R5,TO10SZ ;;; SAVE THE TRANSFER SIZE FOR END CHECKS
9771 031436 012560 000002 MOV (R5)+,DXWD3(R0) ;;; SET THE TRANSFER SIZE IN MY AREA TO HIM
9772 031442 010560 000020 MOV R5,T10AD(R0) ;;; SET UP THE TO-10 ADDRESS
9773 031446 010537 001316' MOV R5,TO10AS ;;; SAVE THE ADDRESS FOR END CHECKS
9774 031452 012760 000001 000036 MOV #1,DAG3(R0) ;;; SET BYTE MODE
9775 031460 016305 000004 MOV DMYN(R3),R5 ;;; FIND THE OFFSET INTO MY AREA
9776 031464 062705 000003 ADD #QSIZE-FORPRO,R5 ;;; POINT TO THE PROPER ITEM
9777 031470 012760 010000 000010 MOV #DEP,TNAD1(R0) ;;; SET UP TO DO DEPOSIT
9778 031476 010560 000012 MOV R5,TNAD2(R0) ;;; START THE DEPOSIT
9779 031502 CALL ..WFED ;;; WAIT FOR IT TO COMPLETE
031502 004737 046216' JSR PC,..WFED
9780 031506 105237 001325' INCB TO11QC ;;; INCREMENT THE QUEUE COUNT
9781 031512 CALL SNDSTS ;;; SEND THE STATUS TO THE KL10
031512 004737 031536' JSR PC,SNDSTS
9782 031516 012777 000400 147632 MOV #TO10DB,@.PRSTA ;;; RING HIS DOORBELL
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 183-1
DTE-20 DRIVER -- START TO TEN QUEUE
9783 031524 105237 001373' INCB TOXQIP ;;; INTERLOCK THIS NODE
9784 031530 012600 MOV (SP)+,R0 ;;; RESTORE R0
9785 031532 012603 MOV (SP)+,R3 ;;; RESTORE R3
9786 031534 000424 BR 10$ ;;; AND EXIT
9787 ;
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 184
DTE-20 DRIVER -- SEND STATUS TO TEN
9789 .SBTTL DTE-20 DRIVER -- SEND STATUS TO TEN
9790
9791 ;+
9792 ; SNDSTS -- SEND STATUS TO THE KL10
9793 ;
9794 ; THIS SUBROUTINE WILL SEND THE STATUS IN "STSTT" TO THE KL10
9795 ;
9796 ; INPUTS:
9797 ;
9798 ; R0 -- POINTS TO DTE-20
9799 ; R3 -- POINTS TO TABLE OF COMM REGION OFFSETS ("PROTBL")
9800 ;
9801 ; OUTPUTS:
9802 ;
9803 ; NO REGISTERS ALTERED
9804 ;-
9805
9806 031536 SNDSTS:
9807 031536 010546 MOV R5,-(SP) ;;; SAVE R5
9808 031540 012705 001320' MOV #STSTT,R5 ;;; POINT TO THE STATUS
9809 031544 012560 000006 MOV (R5)+,DXWD1(R0) ;;; LOAD UP THE TO-10 STATUS
9810 031550 012560 000004 MOV (R5)+,DXWD2(R0)
9811 031554 011560 000002 MOV (R5),DXWD3(R0) ;;; SO
9812 031560 012705 000002 MOV #STATUS-FORPRO,R5 ;;; POINT TO PROPER ITEM
9813 031564 066305 000004 ADD DMYN(R3),R5 ;;; ADD COMM REGION OFFSET
9814 031570 012760 010000 000010 MOV #DEP,TNAD1(R0) ;;; THIS IS A DEPOSIT
9815 031576 010560 000012 MOV R5,TNAD2(R0) ;;; START THE TRANSFER
9816 031602 CALL ..WFED ;;; WAIT FOR COMPLETION
031602 004737 046216' JSR PC,..WFED
9817 031606 10$:
9818 031606 012605 MOV (SP)+,R5 ;;; RESTORE R5
9819 031610 20$:
9820 031610 RETURN ;;; AND EXIT
031610 000207 RTS PC
9821
9822 .DSABL LSB
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 185
DTE-20 DRIVER -- GET A BUFFER FOR INCOMING TRANSFER
9824 .SBTTL DTE-20 DRIVER -- GET A BUFFER FOR INCOMING TRANSFER
9825
9826 ;+
9827 ; GETBUF -- GET A BUFFER FOR INCOMING TRANSFER
9828 ;
9829 ; THIS SUBROUTINE WILL GET A BUFFER FOR A TO-11 TRANSFER. IF THE ALLOCATION
9830 ; FAILS, OR THE CURRENT TO-11 QUEUE EXCEEDS THE MAXIMUM ALLOWABLE LENGTH, OR
9831 ; THE FREE-POOL IS BELOW THE MINIMUM THRESHOLD (".OBFLO"), THE ERROR
9832 ; (CC-C SET) RETURN IS TAKEN, WHICH SHOULD CAUSE THE TRANSFER TO BLOCK.
9833 ;
9834 ; INPUTS:
9835 ;
9836 ; R1 -- SIZE OF BUFFER TO BE ALLOCATED
9837 ;
9838 ; OUTPUTS:
9839 ;
9840 ; R1 -- SIZE OF BUFFER ALLOCATED
9841 ; BUFFER POINTER IN "TO11NP"
9842 ; CC-C CLEAR
9843 ;
9844 ; CC-C SET IF ALLOCATION FAILS OR IF TO-11 QUEUE IS TOO LONG
9845 ;-
9846 001200 .OBFLO==1200 ;;; [5.1041] AMOUNT OF FREE POOL BYTES
9847 ;;; TO LEAVE
9848
9849 031612 GETBUF:
9850 031612 010046 MOV R0,-(SP) ;;; SAVE R0
9851 031614 012700 001334' MOV #TO11Q,R0 ;;; [4.1.1137] POINT TO TO-11 QUEUE LISTHEAD
9852 031620 005046 CLR -(SP) ;;; [4.1.1137] CLEAR A COUNTER ON THE STACK
9853 031622 10$:
9854 031622 005216 INC (SP) ;;; [4.1.1137] COUNT A NODE
9855 031624 011000 MOV (R0),R0 ;;; [4.1.1137] MOVE OVER THE NODE
9856 031626 001375 BNE 10$ ;;; [4.1.1137] TILL DONE
9857 ;
9858 ; NOTE --
9859 ;
9860 ; IF ANY OF THE FOLLOWING TESTS FAIL, THIS ROUTINE MUST BE
9861 ; EXITED WITH CC-C SET!
9862 ;
9863 031630 022726 000022 CMP #22,(SP)+ ;;; [4.1.1137] CHECK QUEUE LENGTH
9864 031634 103413 BCS 20$ ;;; [4.1.1137] TOO LONG -- EXIT (NOTE: CC-C SET)
9865 031636 023727 001422' 001200 CMP .FREPL+2,#.OBFLO ;;; [5.1041] LEAVE SOME POOL SPACE
9866 031644 103407 BCS 20$ ;;; [5.1041] EXIT IF NOT ENOUGH LEFT (NOTE: CC-C SET)
9867 031646 CALL ..ALCB ;;; ALL OK SO FAR -- ALLOCATE THE BUFFER
031646 004737 044416' JSR PC,..ALCB
9868 031652 103404 BCS 20$ ;;; ALLOCATION FAILED (NOTE: CC-C SET)
9869 031654 010160 000002 MOV R1,T.HBCT(R0) ;;; SET THE NODE SIZE
9870 031660 010037 001272' MOV R0,TO11NP ;;; SAVE THE POINTER
9871 031664 20$:
9872 031664 012600 MOV (SP)+,R0 ;;; RESTORE R0
9873 031666 RETURN ;;; TO CALLER
031666 000207 RTS PC
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 186
DTE-20 DRIVER -- START BYTE TRANSFER
9875 .SBTTL DTE-20 DRIVER -- START BYTE TRANSFER
9876
9877 ;+
9878 ; STBXFR -- START A TO-11 BYTE TRANSFER
9879 ;
9880 ; THIS SUBROUTINE WILL START A TO-11 BYTE TRANSFER AND SAVE THE ADDRESS
9881 ; AND BYTE COUNT FOR END CHECKS
9882 ;
9883 ; INPUTS:
9884 ;
9885 ; R0 -- POINTS TO THE DTE-20
9886 ; R1 -- BYTE COUNT FOR TRANSFER
9887 ; R2 -- ADDRESS FOR TRANSFER
9888 ;
9889 ; OUTPUTS:
9890 ;
9891 ; NO REGISTERS ALTERED
9892 ;-
9893
9894 031670 STBXFR:
9895 031670 010137 001312' MOV R1,TO11BS ;;; SAVE THE BYTE COUNT
9896 031674 010237 001310' MOV R2,TO11AS ;;; AND THE ADDRESS
9897 031700 010260 000022 MOV R2,T11AD(R0) ;;; SET THE ADDRESS
9898 031704 010160 000016 MOV R1,T11BC(R0) ;;; SET THE BYTE COUNT AND START TRANSFER
9899 031710 RETURN ;;; TO CALLER
031710 000207 RTS PC
DTEDRV -- DTE-20 DRIVER FOR RSX MACRO M1113 11-NOV-81 11:13 PAGE 187
DTE-20 DRIVER -- LOAD TO-11 QUEUE NODE
9901 .SBTTL DTE-20 DRIVER -- LOAD TO-11 QUEUE NODE
9902
9903 ;+
9904 ; LODNOD -- LOAD A TO-11 QUEUE NODE
9905 ;
9906 ; THIS SUBROUTINE WILL LOAD A TO-11 QUEUE DIRECT PACKET OR INDIRECT HEADER
9907 ; FROM A FIXED BUFFER ("TO11HD") IN LOW CORE
9908 ;
9909 ; INPUTS:
9910 ;
9911 ; R5 -- POINTS TO HEAD OF NODE TO BE LOADED
9912 ;
9913 ; OUTPUTS:
9914 ;
9915 ; R5 -- POINTS TO CURRENT BUFFER POSITION
9916 ;-
9917
9918 031712 LODNOD:
9919 031712 032525 BIT (R5)+,(R5)+ ;;; GET OVER THE LINK AND SIZE
9920 031714 113725 001276' MOVB TO11FN,(R5)+ ;;; SET DOWN THE FUNCTION (E.FN+0)
9921 031720 113725 001274' MOVB TO11HD,(R5)+ ;;; AND THE TRANSFER SIZE (E.FN+1)
9922 031724 013725 001300' MOV TO11DV,(R5)+ ;;; AND THE DEVICE CODE (E.DV)
9923 031730 013725 001304' MOV TO11FW,(R5)+ ;;; AND THE FIRST WORD (E.FW)
9924 031734 RETURN ;;; TO CALLER
031734 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 188
DTE-20 DRIVER -- LOAD TO-11 QUEUE NODE
9926 .TITLE TTYDRR - GENERAL TERMINAL HANDLER
9927 .SBTTL TERMINAL DRIVER -- COPYRIGHT STATEMENT
9928 031736 IDENT$ 14,45
.IDENT /014450/
9929 ;
9930 ; COPYRIGHT (C) 1975, 1978 BY
9931 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
9932 ;
9933 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
9934 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
9935 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
9936 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
9937 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
9938 ;
9939 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
9940 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
9941 ; CORPORATION.
9942 ;
9943 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9944 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
9945 ;
9946 ; VERSION 14-45
9947 ;
9948 ; R. MC LEAN
9949 ; 07-APR-75
9950 ;
9951 ; TERMINAL DRIVER FOR DL-11W AND DL-11E LINE INTERFACES AND DH-11 LINE MULTIPLEX
9952 ;
9953 ; MODIFICATIONS:
9954 ;
9955 ; NO. DATE PROGRAMMER PURPOSE
9956 ; --- ---- ---------- -------
9957 ; 001 08-NOV-76 K. RETI ADD SUPPRESS SEND-ALL
9958 ; R. BELANGER CODE.
9959 ; 002 16-NOV-76 R. BELANGER FIX TYPO IN EDIT 001
9960 ; 003 16-NOV-76 T. PORCHER ADD CODE TO ALLOW CTY
9961 ; R. BELANGER TO BE MOVED
9962 ; 004 29-NOV-76 A. PECKHAM RELOCATED ACKAL FOR LPT
9963 ; 005 03-FEB-77 R. BELANGER ADDED GENERALIZED DL-11E
9964 ; SERVICE AND NEW KLINIK
9965 ; HOOKS AND HANDLES
9966 ; 006 07-MAR-77 A. PECKHAM CLEAN UP "TT.OUT" MANAGEMENT
9967 ; 007 01-JUL-77 R. BELANGER FIX BUG IN INTERNAL I/O INITIALIZATION
9968 ; 008 14-JUL-77 R. BELANGER ADD AUTO-BAUD SUPPORT
9969 ; 009 10-AUG-77 R. BELANGER FIX DL-11E INPUT TO IGNORE
9970 ; CHARACTERS WITH FRAMING ERRORS
9971 ; (DN-20 RUNNING OPEN ON POWERFAIL)
9972 ; 010 02-SEP-77 R. BELANGER XON/XOFF BUG FIX
9973 ; 011 06-SEP-77 R. BELANGER SHORTEN TIMEOUT COUNT TO 4 SECONDS
9974 ; 012 28-OCT-77 R. BELANGER IGNORE DH-11 CHARACTERS WITH FRMING ERRORS
9975 ; 013 02-NOV-77 R. BELANGER FIX LONG SENDALLS
9976 ; TCO 4.2054 20-OCT-78 R. BELANGER FIX BUG IN DH-11 ERROR LOGGING
9977 ; TCO 4.2055 20-OCT-78 R. BELANGER ADD DETACH ON RING FEATURE
9978 ; FIX BUGS IN MODEM CONTROL
9979 ; TCO 4.2095 30-NOV-78 R. BELANGER ELIMINATE DH-11 POLLING ON CLOCK
9980 ; SET DH-11 SILO ALARM TO 0
9981 ; TCO 4.2096 30-NOV-78 R. BELANGER FIX OUTPUT INTERRUPT SERVICE
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 188-1
TERMINAL DRIVER -- COPYRIGHT STATEMENT
9982 ; TO ELIMINATE XOFF/XON RACE CONDITION
9983 ; TCO 4.2103 04-DEC-78 R. BELANGER ADD AUTO-BAUD CAPABILITY TO
9984 ; 1200 BAUD
9985 ; TCO 4.2105 04-DEC-78 R. BELANGER IGNORE RING INTERRUPTS IF
9986 ; NOT IN PRIMARY PROTOCOL
9987 ; TCO 4.2107 06-DEC-78 R. BELANGER NEW KEEP-ALIVE ERROR RECOVERY
9988 ; TCO 4.2140 02-JAN-78 R. BELANGER INHIBIT REQUEST FOR "SETSPD"
9989 ; FROM AUTO-BAUD DISCONNECT WHEN
9990 ; PRIMARY PROTOCOL IS NOT RUNNING
9991 ; TCO 4.2181 01-FEB-79 R. BELANGER ADD INTERNAL XOFF PROCESSING
9992 ; TCO 4.2205 08-MAR-79 R. BELANGER ADD CODE TO SHUT OFF LINES AFTER
9993 ; 4 CONSECUTIVE FRAMING ERRORS,
9994 ; LOG THE LINE SHUTDOWN,
9995 ; AND TO REENABLE THEM ON TIMEOUT
9996 ; REMOVE REFERENCE TO "TT.ECH"
9997 ; TCO 4.2206 08-MAR-79 R. BELANGER MODIFY DM-11/BB TIMEOUT TO
9998 ; ALWAYS MAINTAIN INTERRUPT ENABLE
9999 ; TCO 4.2211 12-MAR-79 R. BELANGER ALLOW RSX20F TO ACCEPT TERMINAL
10000 ; K. LEFEBVRE INPUT WHILE IN PROTOCOL PAUSE
10001 ; UNTIL FREE-POOL IS EXHAUSTED,
10002 ; THEN CRASH (B01).
10003 ; TCO 4.2244 05-APR-79 R. BELANGER FIX DH-11 SILO LOCKUP ON LOCAL XOFF
10004 ; TCO 4.2245 10-APR-79 R. BELANGER ADD ERROR LOGGING FOR DH-11 FRAMING ERROR
10005 ; TCO 4.2246 16-MAY-79 R. BELANGER ELIMINATE RACE CONDITION IN SENDALLS
10006 ; TCO 4.2247 29-MAY-79 R. BELANGER FIX PDP-11 I/O DONE PROCESSING
10007 ; TCO 4.2264 30-MAY-79 R. BELANGER RESET AUTO-BAUD LINE SPEED TO 300
10008 ; BAUD ON CARRIER LOSS.
10009 ; TCO 4.2284 14-JUN-79 R. BELANGER FIX CARRIER PROCESSING IN MODEM
10010 ; CONTROL; SUPERCEDES TCO 4.2264.
10011 ; TCO 4.2309 25-JUN-79 R. BELANGER ADD BELL 212A MODEM SUPPORT.
10012 ; TCO 4.2333 16-JUL-79 R. BELANGER REJECT CHARACTERS FROM LINES WHICH
10013 ; ARE IN CARRIER WAIT.
10014 ; TCO 5.1004 12-SEP-79 R. BELANGER ADD NON-CONTIGUOUS DEVICE SUPPORT
10015 ; TCO 5.1007 10-OCT-79 R. BELANGER ADD ERROR LOGGING FOR DL-11'S AND DM-11/BB'S
10016 ; TCO 5.1008 11-OCT-79 R. BELANGER ADD EBUS AND DEX ERROR LOGGING
10017 ; TCO 5.1009 15-OCT-79 R. BELANGER ADD RH-11 ERROR LOGGING
10018 ; TCO 5.1015 25-OCT-79 R. BELANGER ADD NEW TERMINAL INPUT CONTROL
10019 ; TCO 5.1016 01-NOV-79 R. BELANGER ADD BREAK-THROUGH WRITE
10020 ; TCO 5.1017 01-NOV-79 R. BELANGER DEFER ACKS IF FREE-POOL LOW
10021 ; TCO 4.1.1035 16-NOV-79 R. BELANGER ADD QUEUE ARBITRATION MECHANISM
10022 ; TCO 4.1.1066 10-JAN-80 R. BELANGER DEFER ACKS IN ROUND-ROBIN FASHION
10023 ; TCO 4.1.1088 12-FEB-80 R. BELANGER FIX AUTO-BAUD NOISE PROBLEM
10024 ; TCO 4.1.1089 12-FEB-80 R. BELANGER ALLOW FULL DUMP OF DH-11 SILOS
10025 ; TCO 4.1.1091 12-FEB-80 R. BELANGER FIX MISSING DM-11BB PROBLEM
10026 ; TCO 4.1.1092 25-FEB-80 R. BELANGER LOCAL INPUT CONTROL
10027 ; TCO 4.1.1104 05-MAR-80 R. BELANGER CHANGE KEEP-ALIVE
10028 ; TCO 4.1.1105 11-MAR-80 R. BELANGER CHANGE "EF.PR1" RECOGNITION
10029 ; TCO 4.1.1121 19-MAR-80 R. BELANGER DON'T DO KEEP-ALIVE IF DTE-20
10030 ; IS BLOCKED
10031 ; TCO 4.1.1126 27-MAR-80 R. BELANGER REMOVE SUPPORT FOR OLD-STYLE
10032 ; <ESCAPE> CODES 175 AND 176
10033 ; TCO 4.1.1137 05-APR-80 R. BELANGER REMOVE DEFERRED ACK SUPPORT
10034 ; TCO 5.1056 02-JUN-80 S. LEAPLINE REMOVE CHECK FOR DTR IF NO CARRIER
10035 ; TCO 5.1099 08-JUL-80 S. LEAPLINE DELAY EITHER 2 CHARACTERS OR
10036 ; 2 CLOCK TICKS BEFORE SETTING
10037 ; INPUT SPEED TO 0
10038 ; TCO 5.1131 13-AUG-80 S. LEAPLINE CORRECT TEST FOR RING IN DMINT
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 188-2
TERMINAL DRIVER -- COPYRIGHT STATEMENT
10039 ; RCO 9380 03-SEP-80 S. LEAPLINE IGNORE RINGS FOR LOCAL LINES
10040 ; TCO 5.1149 17-SEP-80 S. LEAPLINE CHECK FOR PARSER REQUEST ON CTY OUTPUT DONE
10041 ; TCO 5.1152 24-SEP-80 S. LEAPLINE RESET ABW LINES CORRECTLY
10042 ; TCO 5.1246 26-JAN-81 S. LEAPLINE ALLOW CTY AND KLINIK TO RUN AT
10043 ; SPLIT SPEEDS
10044 ; TCO 5.1247 26-JAN-81 S. LEAPLINE FIX BUG IN TERMINAL SHUTOFF CODE
10045 ; TCO 5.1248 26-JAN-81 S. LEAPLINE REMOVE SAVE OF R0 IN XOFF/XON
10046 ; RCO 32681 26-MAR-81 S. LEAPLINE ADD "BELL" TO OUTPUT IF NO
10047 ; BUFFER SPACE AVAILABLE
10048 ; TCO 5.1011 25-AUG-81 S. LEAPLINE CHECK FOR ERROR WHEN REQUESTING SETSPD
10049 ; TCO 5.1565 12-OCT-81 S. LEAPLINE ACK CTY IF KLINIK IS IN USER MODE
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 189
TERMINAL DRIVER -- DEFINITIONS
10051 .SBTTL TERMINAL DRIVER -- DEFINITIONS
10052
10053 ;
10054 ; MACRO LIBRARY CALLS
10055 ;
10056 .MCALL .STKM,WTLO$,CLEF$,CALL,RETURN,WSIG$S,.INH5,.ENB5,.INH6,.ENB6
10057 .MCALL DIR$,RQST$,EHSG$,$DEF,.CRASH
10058 031736 $DEF
10059 ;
10060 ; EQUATED SYMBOLS
10061 ;
10062 ; TERMINAL CONTROL BLOCK OFFSET DEFINITIONS
10063 ;
10064 ; FOR USE ONLY WITH CTY
10065 ;
10066 000000 STATS=0 ; TERMINAL STATUS WORD (MUST BE ZERO)
10067 000002 STRBF=2 ; CURRENT BUFFER ADDRESS (INPUT)
10068 000004 RMBYT=4 ; REMAINING BYTES IN BUFFER (INPUT)
10069 000005 FNBYT=5 ; TERMINAL BYTE (INPUT)
10070 000006 CURBF=6 ; STARTING BUFFER ADDRESS (INPUT)
10071 000010 MECNT=10 ; MULTI-ECHO BYTE COUNT
10072 000011 FLBYT=11 ; FILL BYTE
10073 000012 MEBUF=12 ; MULTI-ECHO BUFFER ADDRESS
10074 000014 MBUFR=14 ; DYNAMIC MULTI-ECHO BUFFER
10075 000016 HORPS=16 ; HORIZONTAL POSITION OF CARRIAGE
10076 000020 DHBUF=20 ; DH-11 CHARACTER BUFFER
10077 ;
10078 ; TERMINAL STATUS WORD BIT DEFINITIONS
10079 ;
10080 100000 MODE=100000 ; MODE OF BUSY TERMINAL (0=INPUT 1=OUTPUT)
10081 074000 LFCT=074000 ; UNPROCESSED LINE FEED COUNT FIELD
10082 004000 LFBT=004000 ; UNPROCESSED LINE FEED ADD/SUB BIT
10083 002000 CRTY=002000 ; CARRIAGE CONTROL AT END OF LINE (1=YES)
10084 001000 CRJT=001000 ; CARRIAGE RETURN JUST TYPED (1=YES)
10085 000400 EOLS=000400 ; END OF LINE SEEN (1=YES)
10086 000040 CTLO=000040 ; OUTPUT DISABLED (1=YES)
10087 000020 RUBP=000020 ; RUBOUT SEQUENCE IN PROGRESS (1=YES)
10088 000017 FLCT=000017 ; UNPROCESSED FILL COUNT FIELD
10089 000001 FLBT=000001 ; UNPROCESSED FILL COUNT BIT
10090 ;
10091 ; TERMINAL STATUS OFFSETS FOR ALL TTY'S
10092 ;
10093 000000 THRED==0 ; OUTPUT THREAD WORD POINTER (MUST BE ZERO)
10094 000002 TTYEXP==2 ; EXTERNAL PAGE ADDRESS
10095 000004 STSW0==4 ; STATUS WORD 0 (SAME AS DH-11 LINE STATUS WORD)
10096 ; HOLDS AUTO-BAUD REQUEST IN BIT 15
10097 ; HOLDS CONNECTED BIT IN BIT 14
10098 ; HOLDS LINE SPEED FOR DH-11'S
10099 ; HOLDS INPUT BLOCK FLAG FOR DL-11'S IN LOW BYTE
10100 000006 STSW1==6 ; STATUS WORD 1 -- SPECIFIC CHARACTERISTICS
10101 ;
10102 ; STSW0 DEFINITIONS
10103 ;
10104 100000 S0.ABR==100000 ; [4.2284] AUTO-BAUD REPORT PENDING
10105 040000 S0.CON==040000 ; [4.2284] REMOTE LINE IS CONNECTED
10106 001700 S0.ISP==001700 ; [4.2205] INPUT SPEED FIELD MASK
10107 036000 S0.OSP==036000 ; [4.2205] OUTPUT SPEED FIELD MASK
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 189-1
TERMINAL DRIVER -- DEFINITIONS
10108 140000 S0.MSK==S0.ABR!S0.CON ; [4.2284] BIT MASK FOR "SETSPD" TASK
10109 037700 S0.SPD==S0.OSP!S0.ISP ; [4.2205] TERMINAL SPEED MASK
10110 ;
10111 ; STSW1 BIT DEFINITIONS
10112 ;
10113 ; HIGH BYTE
10114 ;
10115 140000 TT.SND==140000 ; INDEX OF NEXT SEND-ALL TO DO FOR THIS LINE
10116 040000 TT.SNI==040000 ; TO INCREMENT SEND-ALL INDEX
10117 ; [4.2205] NOTE: THE NEXT THREE BITS MUST REMAIN
10118 ; [4.2205] CONTIGUOUS AND IN THE SAME ORDER!!
10119 020000 TT.RSI==020000 ; [4.2205] RESTART TERMINAL INPUT ON TIMEOUT
10120 014000 TT.FEC==014000 ; [4.2205] FRAMING ERROR COUNT FIELD
10121 ;
10122 004000 TT.FEI==004000 ; [4.2205] TO INCREMENT FRAMING ERROR COUNT
10123 002000 TT.RIP==002000 ; TTY REMOTE IN PROGRESS
10124 001000 TT.SIP==001000 ; TTY SENDALL IN PROGRESS
10125 000400 TT.NSA==000400 ; SUPPRESS SENDALLS
10126 ;
10127 ; LOW BYTE
10128 ;
10129 000200 TT.XOF==000200 ; TTY IS X'D OFF (WAS "TT.BSY")
10130 ; !!! MUST BE SIGN BIT OF LOW BYTE !!!!
10131 000100 TT.RMT==000100 ; REMOTE FLAG
10132 000040 TT.ABL==000040 ; AUTO-BAUD LINE
10133 000020 TT.XEN==000020 ; [4.2181] XON/XOFF ENABLED ON THIS LINE
10134 000010 TT.ABW==000010 ; LINE IS IN AUTO-BAUD WAIT
10135 000004 TT.CRW==000004 ; WAITING FOR CARRIER FLAG
10136 000002 TT.CTY==000002 ; TTY IS A CONSOLE TTY
10137 000001 TT.OUT==000001 ; TTY OUTPUT FLAG
10138 ;
10139 ; STSW2 DEFINITIONS
10140 ;
10141 100000 S2.DDN==BIT15 ; [5.1015] INPUT IS X'D OFF
10142 040000 S2.DIP==BIT14 ; [5.1015] INPUT XOFF SEQUENCE IS IN PROGRESS
10143 020000 S2.DIS==BIT13 ; [5.1015] DEFERRED INPUT XOFF REQUEST
10144 010000 S2.ENB==BIT12 ; [5.1015] DEFRRRED INPUT XON REQUEST
10145 004000 S2.LCL==BIT11 ; [5.1015] INPUT XOFF LOCAL REQUEST
10146 002000 S2.RES==BIT10 ; [4.1.1137] RESERVED FOR EXTENSION
10147 001000 S2.SSZ==BIT9 ; [5.1015] SET INPUT SPEED TO ZERO
10148 001400 S2.CNT==BIT8!BIT9 ; [5.1015] WAIT COUNT FIELD
10149 ;
10150 000377 S2.CHR==377 ; [5.1016] LOW BYTE HOLDS DEFERRED BREAK-THROUGH WRITE CHARACTER
10151 ;
10152 ; THREAD ENTRIES ARE IN THE FOLLOWING FORMAT
10153 ;
10154 000000 T.HRED==0 ; THREAD WORD (MUST BE ZERO)
10155 000002 T.HBCT==2 ; BYTE COUNT OF THIS BUFFER
10156 000004 T.HCAD==4 ; CURRENT ADDRESS OF THIS POINTER
10157 000006 T.HCBC==6 ; CURRENT BYTE COUNT OF CARS LEFT IN BUFFER
10158 000007 T.HFCN==7 ; FUNCTION CODE
10159 000010 T.HHDS==10 ; SIZE OF THIS HEADER
10160 ;
10161 ; DL-11E RCSR BITS
10162 ;
10163 100000 DL.DSC==BIT15 ; DL-11E DATASET STATUS CHANGE
10164 040000 DL.RNG==BIT14 ; DL-11E RING INDICATOR
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 189-2
TERMINAL DRIVER -- DEFINITIONS
10165 020000 DL.CTS==BIT13 ; DL-11E CLEAR TO SEND
10166 010000 DL.CAR==BIT12 ; DL-11E CARRIER DETECT
10167 004000 DL.RAC==BIT11 ; DL-11E RECIEVER ACTIVE
10168 002000 DL.SRD==BIT10 ; DL-11E SECONDARY RECIEVED DATA
10169 000200 DL.RDN==BIT7 ; DL-11E RECIVER DONE
10170 000100 DL.REN==BIT6 ; DL-11E RECIEVER INTERRUPT ENABLE
10171 000040 DL.DEN==BIT5 ; DL-11E DATASET INTERRUPT ENABLE
10172 000010 DL.STD==BIT3 ; DL-11E SECONDARY TRANSMITTED DATA
10173 000004 DL.RTS==BIT2 ; DL-11E REQUEST TO SEND
10174 000002 DL.DTR==BIT1 ; DL-11E DATA TERMINAL READY
10175 000001 DL.RDE==BIT0 ; DL-11E READER ENABLE
10176 001420 DL.UNA==BIT9!BIT8!BIT4 ; DL-11E UNASSIGNED
10177 ;
10178 ; DL-11E RBUF BITS
10179 ;
10180 020000 DL.FER==BIT13 ; DL-11 FRAMING ERROR
10181 ;
10182 ; DL-11E XCSR BITS
10183 ;
10184 000100 DL.XEN==BIT6 ; DL-11E XMTR ENABLE
10185 ;
10186 ; DH-11 NRCR BITS
10187 ;
10188 020000 DH.FER==BIT13 ; DH-11 FRAMING ERROR
10189 ;
10190 ; SPECIAL CHARACTER DEFINITIONS
10191 ;
10192 000011 C.HTAB==11 ; HORIZONTAL TAB CHARACTER
10193 000012 C.HLFD==12 ; LINE FEED CHARACTER
10194 000013 C.HVTB==13 ; VERTICAL TAB CHARACTER
10195 000014 C.HFFD==14 ; FORM FEED CHARACTER
10196 000015 C.HCRT==15 ; CARRIARGE RETURN CHARACTER
10197 000021 C.HXON==21 ; XON CHARACTER
10198 000023 C.HXOF==23 ; XOFF CHARACTER
10199 000032 C.HEOF==32 ; END-OF-FILE CHARACTER
10200 000033 C.HESC==33 ; ESCAPE CHARACTER
10201 000033 C.HALT==C.HESC ; ALIAS ALT-MODE
10202 000040 C.HSPC==40 ; SPACE CHARACTER
10203 000200 C.HPAR==200 ; PARITY BIT
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 190
TERMINAL DRIVER -- DEFINITIONS
10205 031736 TTYHD::
10206 031736 .STKM 0,0,0,0,0,0,0,TTINI,174000,TTYSP
032004 000000 000000 000000 .WORD 0,0,0,0
032012 000000
032032 174000 032404' 032216' .WORD 174000,TTINI,TTYSP
032066 000005 .WORD 5
032070 010232' .WORD TTPEN
032072 000000 .WORD 0
032074 000000 .WORD 0
032076 000000 .WORD 0
032100 000000 .WORD 0
032102 000000 .WORD 0
032104 000000 .WORD 0
032106 000000 .WORD 0
032110 000000 .WORD 0
032112 000000 .WORD 0
032114 000000 .WORD 0
032216 000000 .WORD 0
032220 000000 .WORD 0
032222 000000 .WORD 0
032224 000000 .WORD 0
032226 000000 .WORD 0
032230 000000 .WORD 0
032232 032404' .WORD TTINI
032234 174000 .WORD 174000
10207 ;
10208 ; LOCAL DATA
10209 ;
10210 ;
10211 ; CONTROL OUTPUT MESSAGES
10212 ;
10213 032236 CTRLC:
10214 032236 136 103 015 .ASCII /^C/<15><12>
032241 012
10215 032242 CTRLU:
10216 032242 136 125 015 .ASCII /^U/<15><12>
032245 012
10217 032246 CTRLZ:
10218 032246 136 132 015 .ASCII /^Z/<15><12>
032251 012
10219
10220 032252 TTWLO:
10221 032252 WTLO$ 1,EF.NIR!EF.IOD!EF.TMO!EF.RQM!EF.RKR!EF.RKH!EF.RSS
032252 053 003 .BYTE 43.,3
032254 000001 .WORD 1
032256 007330 .WORD EF.NIR!EF.IOD!EF.TMO!EF.RQM!EF.RKR!EF.RKH!EF.RSS
10222 032260 EXKAL:
10223 032260 EHSG$ 0,PSWW1,KPAL0
032260 002411 .WORD 400*5.+DR.DTE
032262 000010 .WORD DF.EHG
032264 000005 .WORD PSWW1
032266 001376' .WORD KPAL0
032270 000000 .WORD 0
10224 032272 RQMCR:
10225 032272 RQST$ PARSER,,249.
032272 013 007 .BYTE 11.,7
032274 062072 073632 .RAD50 /PARSER/
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 190-1
TERMINAL DRIVER -- DEFINITIONS
032300 000000 000000 .WORD 0,0
032304 000371 .WORD 249.
032306 000 000 .BYTE ,
10226 032310 RQKLR:
10227 032310 RQST$ KLRING,,10
032310 013 007 .BYTE 11.,7
032312 043262 035167 .RAD50 /KLRING/
032316 000000 000000 .WORD 0,0
032322 000010 .WORD 10
032324 000 000 .BYTE ,
10228 032326 RQKLD:
10229 032326 RQST$ KLDISC,,10
032326 013 007 .BYTE 11.,7
032330 043244 035473 .RAD50 /KLDISC/
032334 000000 000000 .WORD 0,0
032340 000010 .WORD 10
032342 000 000 .BYTE ,
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 191
TERMINAL DRIVER -- DEFINITIONS
10231 ;
10232 ; AUTO-BAUD TABLES
10233 ;
10234 032344 CHTBL:
10235 032344 214 .BYTE 214 ; <CR> AT 110 BAUD
10236 032345 234 .BYTE 234 ; <CR> AT 110 BAUD
10237 032346 346 .BYTE 346 ; <CR> AT 150 BAUD
10238 032347 015 .BYTE 15 ; <CR> AT 300 BAUD
10239 032350 215 .BYTE 215 ; <CR> AT 300 BAUD
10240 032351 174 .BYTE 174 ; <^C> AT 110 BAUD
10241 032352 036 .BYTE 36 ; <^C> AT 150 BAUD
10242 032353 203 .BYTE 203 ; <^C> AT 300 BAUD
10243 032354 003 .BYTE 3 ; <^C> AT 300 BAUD
10244 032355 376 .BYTE 376 ; [4.2103] <ANYTHING> AT 1200 BAUD
10245 032356 377 .BYTE 377 ; [4.2103] <ANYTHING> AT 1200 BAUD
10246
10247 000013 CHTBLN= .-CHTBL
10248 .EVEN
10249
10250 032360 IDXTB:
10251 032360 000 .BYTE 0 ; [4.2103] INDEX FOR 110 BAUD
10252 032361 000 .BYTE 0 ; [4.2103] INDEX FOR 110 BAUD
10253 032362 002 .BYTE 2 ; [4.2103] INDEX FOR 150 BAUD
10254 032363 004 .BYTE 4 ; [4.2103] INDEX FOR 300 BAUD
10255 032364 004 .BYTE 4 ; [4.2103] INDEX FOR 300 BAUD
10256 032365 000 .BYTE 0 ; [4.2103] INDEX FOR 110 BAUD
10257 032366 002 .BYTE 2 ; [4.2103] INDEX FOR 150 BAUD
10258 032367 004 .BYTE 4 ; [4.2103] INDEX FOR 300 BAUD
10259 032370 004 .BYTE 4 ; [4.2103] INDEX FOR 300 BAUD
10260 032371 006 .BYTE 6 ; [4.2103] INDEX FOR 1200 BAUD
10261 032372 006 .BYTE 6 ; [4.2103] INDEX FOR 1200 BAUD
10262 .EVEN
10263
10264 032374 SPDTB:
10265 032374 006307 .WORD 6307 ; [4.2103] 110 BAUD LINE SPEED
10266 032376 012503 .WORD 12503 ; [4.2103] 150 BAUD LINE SPEED
10267 032400 016703 .WORD 16703 ; [4.2103] 300 BAUD LINE SPEED
10268 032402 023103 .WORD 23103 ; [4.2103] 1200 BAUD LINE SPEED
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 192
TERMINAL DRIVER -- TTINI (TTY QUEUE SERVICE)
10270 .SBTTL TERMINAL DRIVER -- TTINI (TTY QUEUE SERVICE)
10271
10272 .ENABL LSB
10273
10274 ;
10275 ; TERMINAL DRIVER EVENT FLAG SERVICE
10276 ;
10277
10278 032404 TTINI::
10279 032404 DIR$ #TTWLO ; WAIT FOR TTY
032404 012746 032252' MOV #TTWLO,-(SP)
032410 104375 EMT 375
10280 032412 .INH6 ;;; INHIBIT TASK SWITCHING
032412 013746 177776 MOV @#PS,-(SP)
032416 112737 000300 177776 MOVB #300,@#PS
10281 032424 013705 001006' MOV .CRTSK,R5 ;;; FIND THE CURRENT TASK POINTER
10282 032430 016504 000020 MOV A.EF(R5),R4 ;;; FIND EVENT FLAGS
10283 032434 005065 000020 CLR A.EF(R5) ;;; CLEAR EVENT FLAGS
10284 032440 .ENB6 ; ENABLE TASK SWITCHING
032440 012637 177776 MOV (SP)+,@#PS
10285 032444 010446 MOV R4,-(SP) ; [4.2247] STACK THE EVENT FLAGS
10286 032446 032716 000200 BIT #EF.RQM,(SP) ; [4.2247] REQUEST MCR??
10287 032452 001406 BEQ 10$ ; NO -- MUST BE SOMETHING ELSE
10288 032454 152737 000002 011316' BISB #M.PARQ,.MISC ; SET PRIORITY INPUT REQUEST
10289 032462 DIR$ #RQMCR ; YES -- REQUEST PARSER
032462 012746 032272' MOV #RQMCR,-(SP)
032466 104375 EMT 375
10290 032470 10$:
10291 032470 032716 001000 BIT #EF.RKR,(SP) ; [4.2247] KLINIK RING INTERRUPT??
10292 032474 001403 BEQ 15$ ; NO -- FORGET IT
10293 032476 DIR$ #RQKLR ; YES -- REQUEST KLRING
032476 012746 032310' MOV #RQKLR,-(SP)
032502 104375 EMT 375
10294 032504 15$:
10295 032504 032716 002000 BIT #EF.RKH,(SP) ; [4.2247] KLINIK HANGUP??
10296 032510 001403 BEQ 20$ ; NO -- GO ON
10297 032512 DIR$ #RQKLD ; YES -- REQUEST KLDISC
032512 012746 032326' MOV #RQKLD,-(SP)
032516 104375 EMT 375
10298 032520 20$:
10299 032520 032716 004000 BIT #EF.RSS,(SP) ; [4.2247] AUTO-BAUD REQUEST??
10300 032524 001417 BEQ 30$ ; NO -- GO ON
10301 032526 005737 002602' TST .ABFLG ; YES -- INTERLOCK SET??
10302 032532 001014 BNE 30$ ; YES -- GO ON
10303 032534 013737 002600' 002602' 25$: MOV .ABCNT,.ABFLG ; NO -- REAL REQUEST??
10304 032542 001410 BEQ 30$ ; NO -- IGNORE IT
10305 032544 DIR$ #.RQSPD ; YES -- REQUEST "SETSPD"
032544 012746 024600' MOV #.RQSPD,-(SP)
032550 104375 EMT 375
10306 032552 103004 BCC 30$ ; [5.1011] ERROR FREE ??
10307 032554 WSIG$S ; [5.1011] NO, WAIT A BIT
032554 012746 MOV (PC)+,-(SP)
032556 061 001 .BYTE 49.,1
032560 104375 EMT 375
10308 032562 000764 BR 25$ ; [5.1011] RETRY THE REQUEST
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 193
TERMINAL DRIVER -- TIMEOUT SERVICE
10310 .SBTTL TERMINAL DRIVER -- TIMEOUT SERVICE
10311
10312 032564 30$:
10313 032564 032716 000100 BIT #EF.TMO,(SP) ; [4.2247] TIMEOUT??
10314 032570 001431 BEQ 45$ ; [5.1008] NO -- GO ON
10315 032572 .INH5 ; [4.2309] YES -- DISALLOW TERMINAL INTERRUPTS
032572 013746 177776 MOV @#PS,-(SP)
032576 112737 000240 177776 MOVB #240,@#PS
10316 032604 105337 002662' DECB TMOCNT+0 ;;; [4.2309] ONLY DO TIMEOUT EVERY 10 SEC
10317 032610 001007 BNE 35$ ;;; [5.1008] NOT YET -- SEE ABOUT ERROR LOGGING
10318 032612 112737 000012 002662' MOVB #^D10,TMOCNT+0 ;;; [4.2309] RESET TIMEOUT COUNT
10319 032620 CALL .DHTMO ;;; [4.2205] CHECK FOR TIMEOUT ON DM-11/BB'S AND DH-11'S
032620 004737 040646' JSR PC,.DHTMO
10320 032624 CALL .DLTMO ;;; CHECK FOR TIMEOUT ON DL-11E'S
032624 004737 040336' JSR PC,.DLTMO
10321 032630 35$:
10322 032630 105337 002663' DECB TMOCNT+1 ;;; [4.2309] MODEM TIMEOUT DUE??
10323 032634 001005 BNE 40$ ;;; [5.1008] NO -- GO ON
10324 032636 112737 000026 002663' MOVB #^D22,TMOCNT+1 ;;; [4.2309] YES -- RESET TIMEOUT COUNT
10325 032644 CALL .DMTMO ;;; [4.2309] AND CHECK DM-11/BB'S
032644 004737 041126' JSR PC,.DMTMO
10326 032650 40$:
10327 032650 .ENB5 ;;; [4.2054] ALLOW INTERRUPTS
032650 012637 177776 MOV (SP)+,@#PS
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 194
TERMINAL DRIVER -- ACK ALL SERVICE
10329 .SBTTL TERMINAL DRIVER -- ACK ALL SERVICE
10330
10331 032654 45$:
10332 032654 005737 001164' TST .ACKAL ; ACK ALL REQUESTED??
10333 032660 001424 BEQ 50$ ; NO -- CONTINUE
10334 032662 005037 001164' CLR .ACKAL ; YES -- CLEAR FLAG
10335 032666 012703 000005 MOV #D.CLPT,R3 ; SET LINE ALLOCATION ON LPT
10336 032672 012704 000214 MOV #140.,R4 ; 140 BYTES
10337 032676 012701 000023 MOV #BC.SLA,R1 ; SET LINE ALLOCATION
10338 032702 CALL ..STFC
032702 004737 045456' JSR PC,..STFC
10339 032706 062704 000400 ADD #400,R4 ; ALSO LPT1
10340 032712 CALL ..STFC
032712 004737 045456' JSR PC,..STFC
10341 032716 012701 000025 MOV #BC.AKA,R1 ; SEND ACK ALL
10342 032722 012703 000007 MOV #7,R3 ; RANDOM FUNCTION CODE (ZERO A BAD IDEA HERE)
10343 ; DON'T CARE ABOUT FIRST WORD SENT
10344 032726 CALL ..STFC ; START ACK FUNCTION
032726 004737 045456' JSR PC,..STFC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 195
TERMINAL DRIVER -- QUEUED PROTOCOL KEEP-ALIVE SERVICE
10346 .SBTTL TERMINAL DRIVER -- QUEUED PROTOCOL KEEP-ALIVE SERVICE
10347
10348 ;+
10349 ; QUEUED PROTOCOL KEEP-ALIVE SERVICE
10350 ;
10351 ; THE QUEUED PROTOCOL KEEP-ALIVE SERVICE IS DONE AS PART OF THE TERMINAL
10352 ; DRIVER TIMEOUT SERVICE AS IS IT CONVENIENT AND ELIMINATESS THE NEED FOR
10353 ; A SEPARATE QUEUED PROTOCOL TIMEOUT SERVICE TASK.
10354 ;
10355 ; NO KEEP-ALIVE CHECKING OR MAINTENANCE WILL BE DONE IF THE FRONT-END IS NOT
10356 ; RUNNING PRIMARY PROTOCOL.
10357 ;
10358 ; KEEP-ALIVE MAINTENANCE IS ALWAYS DONE WHILE THE FRONT-END IS IN PRIMARY
10359 ; PROTOCOL BUT KEEP-ALIVE CHECKING IS DONE ONLY IF ".NOERR" IS CLEAR (ERRORS
10360 ; ARE TO BE IGNORED)
10361 ;
10362 ; THE HOST'S KEEP-ALIVE COUNT IS EXAMINED ONCE PER TIMEOUT AND CHECKED TO
10363 ; VERIFY THAT THE KEEP-ALIVE COUNT IS CHANGING. IF THE EXAMINE FAILS, THE
10364 ; HOST IS ASSUMED TO BE DEAD, AND THE ERROR IS IGNORED AT THIS LEVEL.
10365 ;
10366 ; IF THE EXAMINE SUCCEEDS AND THE HOST KEEP-ALIVE COUNT IS CHANGING, ALL IS
10367 ; WELL AND THE KEEP-ALIVE RETRY COUNTER, ".KPAC+0", IS RESET IN CASE THIS IS
10368 ; A CONTINUATION. THE CONTINUATION ATTEMPT IS MARKED BY DRIVING ".KPAC+1"
10369 ; NON-ZERO.
10370 ;
10371 ; IF THE HOST'S KEEP-ALIVE COUNT HAS NOT CHANGED, THE HOST IS ALLOWED 5 TIMEOUT
10372 ; PERIODS FOR THE KEEP-ALIVE COUNT TO BEGIN CHANGING. IF THIS TIME EXPIRES
10373 ; WITH NO RESUMPTION OF KEEP-ALIVE COUNTING, THE ERROR IS FLAGGED AND "TKTN"
10374 ; INVOKED.
10375 ;
10376 ; ON THE FIRST KEEP-ALIVE-CEASE, KLINIT (Q.V.) WILL EXECUTE THE KL10 INSTRUCTION
10377 ; IN LOCATION 71 IN ORDER THAT THE KL10 ATTEMPT TO DO SOMETHING ON ITS OWN ABOUT
10378 ; THE ERROR. THE FRONT-END WILL WAIT ONE KEEP-ALIVE PERIOD FOR THIS TO HAPPEN.
10379 ; IF THE SECOND KEEP-ALIVE PERIOD EXPIRES, A FULL ERROR DUMP AND RELOAD OF THE
10380 ; HOST IS REQUESTED.
10381 ;
10382 ; IN ALL CASES, THE FRONT-END WILL ATTEMPT TO CONTINUE ITS HALF OF THE KEEP-ALIVE
10383 ; DIALOG.
10384 ;-
10385
10386 032732 50$:
10387 032732 032716 000100 BIT #EF.TMO,(SP) ; [4.2247] IS THIS A CLOCK REQUEST??
10388 032736 001507 BEQ 95$ ; [4.2247] NO -- GO ON
10389 032740 005737 001012' TST .COMEF+2 ; [4.1.1105] YES -- ARE WE IN PRIMARY PROTOCOL??
10390 032744 100104 BPL 95$ ; [4.1.1105] NO -- DON'T WORRY ABOUT KEEP-ALIVE
10391 032746 005737 001122' TST .NOERR ; [4.2107] YES -- DO WE CARE ABOUT HIS KEEP-ALIVE??
10392 032752 001041 BNE 80$ ; [4.2107] NO -- GO ON
10393 032754 DIR$ #EXKAL ; [4.2107] YES -- READ HOST KEEP-ALIVE COUNTER
032754 012746 032260' MOV #EXKAL,-(SP)
032760 104375 EMT 375
10394 032762 103435 BCS 80$ ; [4.2107] HOST IS ALREADY DEAD IF CC-C IS SET
10395 032764 123737 001376' 001404' CMPB KPAL0,OKPAL0 ; [4.2107] IS HIS COUNT CHANGING??
10396 032772 001023 BNE 70$ ; [4.2107] YES -- GO ON
10397 032774 105337 001410' DECB .KPAC+0 ; [4.2107] NO -- IS HE DEAD??
10398 033000 003023 BGT 75$ ; [4.2107] NO -- NOT YET, ANYWAY
10399 033002 55$:
10400 033002 105337 001411' DECB .KPAC+1 ; [4.2107] YES -- SECOND TIME??
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 195-1
TERMINAL DRIVER -- QUEUED PROTOCOL KEEP-ALIVE SERVICE
10401 033006 100404 BMI 60$ ; [4.2107] YES -- GO ON
10402 033010 005737 001412' TST .KACFL ; [4.2107] NO -- RETRIES ALLOWED??
10403 033014 001005 BNE 65$ ; [4.2107] YES -- GO ON
10404 033016 000771 BR 55$ ; [4.2107] NO -- FORCE SECOND ERROR
10405 ;
10406 ;
10407 ; HERE ON SECOND KEEP-ALIVE ERROR
10408 ;
10409 033020 60$:
10410 033020 CALL ..DTSP ; [4.2107] KILL ALL PROTOCOLS
033020 004737 046770' JSR PC,..DTSP
10411 033024 105237 001122' INCB .NOERR ; [4.2107] INDICATE WE ARE SERVICING A REAL ERROR
10412 ;
10413 ; HERE ON FIRST KEEP-ALIVE ERROR
10414 ;
10415 033030 65$:
10416 033030 052737 000020 001126' BIS #KS.CST,.KLITK ; [4.2107] FLAG THE ERROR
10417 033036 105237 001124' INCB .TKTN ; [4.2107] REQUEST TKTN
10418 ;
10419 ; HERE WHEN HIS KEEP-ALIVE IS RUNNING OR HAS TIMED OUT
10420 ;
10421 033042 70$:
10422 033042 112737 000005 001410' MOVB #.KALSC,.KPAC+0 ; [4.2107] RESET RETRY COUNTER
10423 033050 75$:
10424 033050 013737 001376' 001404' MOV KPAL0,OKPAL0 ; [4.2107] SAVE HIS COUNT FOR THE NEXT TIME AROUND
10425 ;
10426 ; INCREMENT AND TRANSMIT OUR KEEP-ALIVE COUNT
10427 ;
10428 033056 80$:
10429 033056 005737 001374' TST .DTBLK ; [4.1.1121] IS THE DTE-20 BLOCKED??
10430 033062 001013 BNE 85$ ; [4.1.1121] YES -- GO ON
10431 033064 .INH6 ; [4.1.1104] NO -- DISALLOW INTERRUPTS
033064 013746 177776 MOV @#PS,-(SP)
033070 112737 000300 177776 MOVB #300,@#PS
10432 033076 013700 001360' MOV .PRDTE,R0 ;;; [4.1.1104] POINT TO THE DTE-20
10433 033102 CALL .KPALV ;;; [4.1.1104] DO KEEP-ALIVE
033102 004737 031326' JSR PC,.KPALV
10434 033106 .ENB6 ;;; [4.1.1104] ALLOW INTERRUPTS
033106 012637 177776 MOV (SP)+,@#PS
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 196
TERMINAL DRIVER -- GENERAL ERROR LOGGING
10436 .SBTTL TERMINAL DRIVER -- GENERAL ERROR LOGGING
10437
10438 033112 85$:
10439 033112 012704 002654' MOV #.TTELQ,R4 ; [4.2245] POINT TO TERMINAL ERROR LOG QUEUE
10440 033116 012703 000004 MOV #D.CDLS,R3 ; [5.1008] DEVICE CODE TO R3
10441 033122 CALL ..ERLG ; [5.1008] DO TERMINAL ERROR LOGGING
033122 004737 043212' JSR PC,..ERLG
10442 033126 012703 000202 MOV #D.CDTE,R3 ; [5.1008] DEVICE CODE TO R3
10443 033132 012704 001366' MOV #.EBPEQ,R4 ; [5.1008] POINT TO DTE-20 ERROR LOG QUEUE
10444 033136 CALL ..ERLG ; [5.1008] DO DTE-20 ERROR LOGGING
033136 004737 043212' JSR PC,..ERLG
10445 033142 012703 000203 MOV #D.CRJP,R3 ; [5.1009] DEVICE CODE TO R3
10446 033146 012704 005536' MOV #.RPELQ,R4 ; [5.1009] POINT TO ERROR LOG QUEUE
10447 033152 CALL ..ERLG ; [5.1009] DO RH-11 ERROR LOGGING
033152 004737 043212' JSR PC,..ERLG
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 197
TERMINAL DRIVER -- CTY SERVICE
10449 .SBTTL TERMINAL DRIVER -- CTY SERVICE
10450
10451 033156 95$:
10452 033156 032726 000020 BIT #EF.IOD,(SP)+ ; [4.2247] I/O DONE??
10453 033162 001076 BNE 105$ ; [4.2247] YES -- HANDLE THAT FIRST
10454 033164 005737 002732' TST TTPKT ; NO -- CHECK PACKET
10455 033170 001166 BNE TTINO ; PACKET IN USE -- WAIT
10456 033172 DQNXT:
10457 033172 .INH6 ; DISALLOW INTERRUPTS
033172 013746 177776 MOV @#PS,-(SP)
033176 112737 000300 177776 MOVB #300,@#PS
10458 033204 132737 000002 011316' BITB #M.PARQ,.MISC ; PRIORTY INPUT REQUEST ?
10459 033212 001017 BNE 97$ ; BRANCH IF YES
10460 033214 105737 001226' TSTB .KLNSW ;;; IS KLINIK ACTIVE ?
10461 033220 003406 BLE 100$ ;;; NO -- GO ON
10462 033222 013700 002636' MOV KLNPTR,R0 ;;; KLINIK LINE POINTER TO R0
10463 033226 032760 000001 000006 BIT #TT.OUT,STSW1(R0) ;;; IS IT BUSY ??
10464 033234 001142 BNE TTINX ;;; YES -- WAIT A WHILE
10465 033236 100$:
10466 033236 013700 002634' MOV CTYPTR,R0 ;;; CHECK AND WAIT FOR I/O FROM 10 TO STOP
10467 033242 032760 000001 000006 BIT #TT.OUT,STSW1(R0) ;;; OUTPUT IN PROGRESS ?
10468 033250 001134 BNE TTINX ;;; YES -- GO ON
10469 033252 97$:
10470 033252 012700 052124 MOV #"TT,R0 ;;; NO -- SET UP TO DEQUEUE FROM TTY LUN
10471 033256 CALL ..DQRN ;;; GET AN I/O PACKET TO PROCESS
033256 004737 043432' JSR PC,..DQRN
10472 033262 103527 BCS TTINX ;;; IF CC-C IS SET CONTROLLER BUSY OR NO REQUEST
10473 033264 005237 002632' INC .TTP11 ;;; SET PDP11 I/O IN PROGRESS
10474 033270 .ENB6 ;;; ALLOW INTERRUPTS
033270 012637 177776 MOV (SP)+,@#PS
10475 ;
10476 ; THE FOLLOWING ARGUMENTS ARE RETURNED BY ..DQRN:
10477 ;
10478 ; R0 -- LOGICAL UNIT NUMBER
10479 ; R1 -- ADDRESS OF THE I/O REQUEST PACKET.
10480 ;
10481 033274 010137 002732' MOV R1,TTPKT ; SAVE PACKET ADDRESS
10482 033300 010337 002726' MOV R3,BYCNT ; SAVE THE BYTE COUNT
10483 033304 010337 002724' MOV R3,CNT ; SAVE IT HERE ALSO
10484 033310 010537 002730' MOV R5,CRADR ; SAVE CURRENT ADDRESS
10485 033314 013705 002634' MOV CTYPTR,R5 ; FIND THE CTY TERMINAL
10486 033320 012703 002664' MOV #CTYSTS,R3 ; FIND TERMINAL STATUS WORD
10487 033324 122761 000001 000015 CMPB #IO.WLB/256.,R.FC+1(R1) ; WRITE LOGICAL FUNCTION?
10488 033332 001451 BEQ 125$ ; IF EQ YES
10489 033334 042713 000040 BIC #CTLO,@R3 ; ENABLE OUTPUT
10490 033340 122761 000002 000015 CMPB #IO.RLB/256.,R.FC+1(R1) ; READ LOGICAL FUNCTION?
10491 033346 001422 BEQ 115$ ; YES -- PROCESS REQUEST
10492 033350 012703 000001 MOV #IS.SUC,R3 ; SET UP THE ERROR STATUS
10493 033354 005004 CLR R4 ; INDICATE NO TRANSFER
10494 033356 000407 BR 110$ ; TRY AGAIN
10495 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 198
TERMINAL DRIVER -- CTY I/O DONE SERVICE
10497 .SBTTL TERMINAL DRIVER -- CTY I/O DONE SERVICE
10498
10499 033360 105$:
10500 033360 013701 002732' MOV TTPKT,R1 ; FIND THE I/O PACKET
10501 033364 001702 BEQ DQNXT
10502 033366 016104 000026 MOV R.PB+2(R1),R4 ; SET THE COUNT XFERED
10503 033372 013703 002730' MOV CRADR,R3 ; RETURN THE STATUS
10504 033376 110$:
10505 033376 CALL ..IODN ; CALL I/O DONE OUTINE
033376 004737 043312' JSR PC,..IODN
10506 033402 005337 002632' DEC .TTP11 ; PDP11 INPUT NOT IN PROGREESS
10507 033406 005037 002732' CLR TTPKT ; SET NO PACKET IN USE
10508 033412 000667 BR DQNXT ; AND WAIT FOR NEXT JOB
10509 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 199
TERMINAL DRIVER -- CTY INPUT SERVICE
10511 .SBTTL TERMINAL DRIVER -- CTY INPUT SERVICE
10512
10513 ;
10514 ; REQUEST IS A SOLICITED INPUT REQUEST-GET A BUFFER FOR INPUT
10515 ;
10516 033414 115$: ; SET SOLICITED INPUT FLAG
10517 033414 042713 102400 BIC #MODE!EOLS!CRTY,@R3
10518 033420 013763 002730' 000006 MOV CRADR,CURBF(R3) ;SET RANDOM INPUT VALUES
10519 033426 013763 002726' 000004 MOV BYCNT,RMBYT(R3)
10520 033434 013763 002730' 000002 MOV CRADR,STRBF(R3)
10521 033442 032713 001000 BIT #CRJT,@R3 ; CARRIAGE RETURN JUST TYPED?
10522 033446 001426 BEQ 135$ ; NO -- NO CARRAGE CONTROL NECESSARY
10523 033450 120$:
10524 033450 062713 004000 ADD #LFBT,@R3 ; FORCE LINE FEED
10525 033454 000423 BR 135$ ; AND FORCE IT OUT
10526 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 200
TERMINAL DRIVER -- CTY OUTPUT SERVICE
10528 .SBTTL TERMINAL DRIVER -- CTY OUTPUT SERVICE
10529
10530 ;
10531 ; REQUEST IS AN OUTPUT REQUEST-SET UP CARRIAGE CONTROL FLAGS
10532 ;
10533 033456 125$:
10534 033456 005737 010246' TST TTPEN+U.AF ; CHECK FOR ATTACHED
10535 033462 001002 BNE 130$ ; YES -- DON'T CLEAR STATUS FLAGS
10536 033464 042713 000040 BIC #CTLO,@R3 ; ENABLE OUTPUT
10537 033470 130$:
10538 033470 042713 076437 BIC #LFCT!CRTY!EOLS!RUBP!FLCT,@R3 ; CLEAR STATUS WORD
10539 033474 052713 100000 BIS #MODE,@R3 ; SET OUTPUT MODE
10540 033500 005761 000030 TST R.PB+4(R1) ; CHECK FOR CARRAGE CONTROL
10541 033504 001407 BEQ 135$ ; NO -- NOTHING TO DO
10542 033506 122761 000044 000030 CMPB #'$,R.PB+4(R1) ; $?
10543 033514 001755 BEQ 120$ ; YES -- DON'T FAKE CARRAGE CONTROL HERE
10544 033516 052713 002000 BIS #CRTY,@R3 ; YES -- IT WILL ALWAYS BE ASSUMED ' '
10545 033522 000752 BR 120$ ; OUTPUT CRLF
10546 ;
10547 033524 135$:
10548 033524 .INH6 ; DISALLOW INTERRUPTS
033524 013746 177776 MOV @#PS,-(SP)
033530 112737 000300 177776 MOVB #300,@#PS
10549 033536 CALL OUTPT ;;; START OUTPUT
033536 004737 034546' JSR PC,OUTPT
10550 033542 TTINX:
10551 033542 .ENB6 ;;; ALLOW INTERRUPTS
033542 012637 177776 MOV (SP)+,@#PS
10552 033546 TTINO:
10553 033546 000137 032404' JMP TTINI ; MAKE SURE OUTPUT IS ACTIVE
10554 ;
10555 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 201
TERMINAL DRIVER -- $DHOUT (DH-11 OUTPUT INTERRUPT)
10557 .SBTTL TERMINAL DRIVER -- $DHOUT (DH-11 OUTPUT INTERRUPT)
10558 ;
10559 ; DHOUT -- DH-11 TERMINAL MUX OUT INTERRUPTS
10560 ;
10561 033552 $DHOUT:: ;;; REF LABEL
10562 033552 013737 177776 002646' MOV @#PS,DHTMP ;;; SAVE CONTROLLER NUMBER
10563 033560 CALL R3,DHSAV ;;; SAVE R3 AND SETUP R3 AND R4
033560 004337 037274' JSR R3,DHSAV
10564 033564 001417 BEQ 35$ ;;; SPURIOUS INTERRUPT
10565 033566 10$:
10566 033566 042714 101077 BIC #101077,@R4 ;;; CLEAR CURRENT UNIT AND TRANSMIT INT
10567 033572 20$:
10568 033572 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; OUTPUT INTERRUPT EXPECTED?
10569 033600 001403 BEQ 30$ ;;; IF EQ NO
10570 033602 005764 000010 TST 10(R4) ;;; ZERO BYTE COUNT?
10571 033606 001407 BEQ 40$ ;;; IF EQ YES
10572 033610 30$:
10573 033610 005214 INC @R4 ;;; INCREMENT UNIT NUMBER
10574 033612 062705 000010 ADD #10,R5 ;;; POINT TO NEXT ENTRY
10575 033616 026504 000002 CMP TTYEXP(R5),R4 ;;; SAME DH-11 ??
10576 033622 001763 BEQ 20$ ;;; YES -- CHECK NEXT UNIT
10577 033624 35$:
10578 033624 RETURN
033624 000207 RTS PC
10579 033626 40$:
10580 033626 042765 000001 000006 BIC #TT.OUT,STSW1(R5) ;;; THIS OPERATION IS FINISHED
10581 033634 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
10582 033642 001003 BNE 60$ ;;; YES -- DO SPECIAL CTY CHECK
10583 033644 50$:
10584 033644 CALL STTYDN ;;; NO -- START NEXT OUTPUT PACKET
033644 004737 033676' JSR PC,STTYDN
10585 033650 000757 BR 30$ ;;; SEE ABOUT OTHER LINES IN THIS DH-11
10586 ;
10587 ;
10588 ; HERE FOR SPECIAL CTY CHECKS AND PROCESSING
10589 ;
10590 033652 60$:
10591 033652 005737 002632' TST .TTP11 ;;; IS THIS PDP11 OUTPUT?
10592 033656 001772 BEQ 50$ ;;; NO -- THEN HANDLE AS NORMAL CASE
10593 033660 010446 65$: MOV R4,-(SP) ;;; SAVE R4
10594 033662 CALL OUTPT3 ;;; FINISH OUTPUT PROCESSING
033662 004737 034466' JSR PC,OUTPT3
10595 033666 012604 MOV (SP)+,R4 ;;; RESTORE R4
10596 033670 CALL .TTIXC ;;; [5.1015] DO INPUT CONTROL CHECKS
033670 004737 042254' JSR PC,.TTIXC
10597 033674 000745 BR 30$ ;;; GO AGAIN
10598 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 202
TERMINAL DRIVER -- STTYDN (REMOVE PROCESSED OUTPUT NODE)
10600 .SBTTL TERMINAL DRIVER -- STTYDN (REMOVE PROCESSED OUTPUT NODE)
10601
10602 ;+
10603 ; STTYDN -- REMOVE ENTRY FOR LAST OPERATION
10604 ;
10605 ; IF THIS IS A SENDALL WHICH HAS FINISHED, DECREMENT THE COUNT FOR
10606 ; THE NODE IN THE SENDALL RING. IF THE COUNT HAS EXHAUSTED, DEALLOCATE
10607 ; THER CURRENT SENDALL BUFFER. THE SENDALL OFFSET FOR THIS LINE IS MOVED
10608 ; TO THE NEXT NODE IN THE SENDALL RING.
10609 ;
10610 ; IF THIS IS A NORMAL I/O TERMINATION,, ALTER THE BUFFER ADDRESS AND BYTE
10611 ; COUNT IN THE CURRENT NODE SO THAT THE XON CODE CAN DO A NORMAL LINE
10612 ; START. THE PACKET WILL BE ACK'ED AND DEALLOCATED AFTER THE LINE HAS
10613 ; BEEN X'D ON.
10614 ;
10615 ; IF THE PACKET IS FINISHED, THE CURRENT NODE IS REMOVED FROM THE
10616 ; THREAD LIST, DEALLOCATED AND AN ATTEMPT MADE TO START THE NEXT ENTRY
10617 ; IN THE THREAD LIST. IF THE LIST IS EMPTY, THIS LINE WILL BE ACK'ED.
10618 ;-
10619
10620 033676 STTYDN:
10621 033676 032765 001000 000006 BIT #TT.SIP,STSW1(R5) ;;; IS THIS A SENDALL IN PROGRESS??
10622 033704 001444 BEQ 20$ ;;; NO -- DON'T MAKE SENDALL RETURN CHECKS
10623 033706 042765 001000 000006 BIC #TT.SIP,STSW1(R5) ;;; YES -- CLEAR SENDALL IN PROGRESS
10624 033714 016502 000006 MOV STSW1(R5),R2 ;;; FIND THE POSITION IN THE SEND ALL TABLE
10625 033720 062765 040000 000006 ADD #TT.SNI,STSW1(R5) ;;; MOVE TO NEXT SENDALL RING WORD
10626 033726 006102 ROL R2 ;;; FIND THE POSITION IN THE TABLE
10627 033730 006102 ROL R2 ;;; OF THE CURRENT SENDALL
10628 033732 006102 ROL R2 ;;; JUST FINISHED
10629 033734 042702 177774 BIC #177774,R2 ;;; MASK OFF JUNK
10630 033740 006302 ASL R2 ;;; MAKE A WORD INDEX
10631 033742 005362 002616' DEC .SNDCN(R2) ;;; DECREMENT THE CURRENT INUSE COUNT
10632 033746 003045 BGT STNXT ;;; THIS SENDALL QUEUE NOT FINISHED -- DON'T RELEASE IT
10633 033750 001415 BEQ 10$ ;;; ALL DONE -- RETURN IT
10634 ;
10635 ; THIS CODE REPLACES THE SAI STOPCODE. IT "FIXES" THIS LINES SENDALL INDEX.
10636 ;
10637 033752 013702 002604' MOV .SNDLP,R2 ;;; GET THE SENDALL BUFFER INDEX
10638 033756 000302 SWAB R2 ;;; PUT COUNT IN THE HIGH BYTE
10639 033760 012700 000006 MOV #6,R0 ;;; SET UP LOOP COUNT FOR LEFT SHIFTS
10640 033764 006302 5$: ASL R2 ;;; SHIFT
10641 033766 077002 SOB R0,5$ ;;; LOOP FOR THE COUNT
10642 033770 042765 140000 000006 BIC #140000,STSW1(R5) ;;; GET RID OF THE OLD INDEX
10643 033776 050265 000006 BIS R2,STSW1(R5) ;;; SET IN THE NEW ONE
10644 034002 000427 BR STNXT
10645 ;
10646 034004 10$:
10647 034004 016200 002606' MOV .SNDBF(R2),R0 ;;; PICK UP THE ENTRY
10648 034010 005062 002606' CLR .SNDBF(R2) ;;; CLEAR OUT THIS ENTRY (MARK END OF RING)
10649 034014 000420 BR 30$ ;;; AND CONTINUE
10650 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 203
TERMINAL DRIVER -- STTYDN (REMOVE PROCESSED OUTPUT NODE)
10652
10653 ;
10654 034016 20$: ;;; HERE TO REMOVE THREAD ENTRY (NOT SENDALL)
10655 034016 011500 MOV (R5),R0 ;;; PICK UP THE THREAD POINTER
10656 034020 001420 BEQ STNXT ;;; GO ON IF EMPTY
10657 ;;; [4.2096] REMOVED 2 INSTRUCTIONS
10658 034022 016401 000006 MOV 6(R4),R1 ;;; PICK UP CURRENT DH-11 ADDRESS
10659 034026 116002 000006 MOVB T.HCBC(R0),R2 ;;; GET ORIGINAL BYTE COUNT
10660 034032 016046 000004 MOV T.HCAD(R0),-(SP) ;;; ORIGINAL ADDRESS TO STACK
10661 034036 010160 000004 MOV R1,T.HCAD(R0) ;;; CURRENT ADDRESS TO PACKET
10662 034042 162601 SUB (SP)+,R1 ;;; COMPUTE OFFSET INTO PACKET
10663 034044 160102 SUB R1,R2 ;;; DISCOUNT FROM PACKET SIZE
10664 034046 110260 000006 MOVB R2,T.HCBC(R0) ;;; AND SET NEW PACKET SIZE
10665 034052 003003 BGT STNXT ;;; [4.2096] DON'T DEQUEUE IF NOT FINISHED
10666 034054 011015 MOV @R0,(R5) ;;; DELINK THIS THREAD NODE
10667 034056 30$:
10668 034056 CALL ..DECN ;;; DEALLOCATE THE NODE
034056 004737 044546' JSR PC,..DECN
10669 ;;; AND START THE NEXT PACKET
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 204
TERMINAL DRIVER -- STNXT (START NEXT OUTPUT OPERATION)
10671 .SBTTL TERMINAL DRIVER -- STNXT (START NEXT OUTPUT OPERATION)
10672
10673 ;+
10674 ; STNXT -- START NEXT OUTPUT OPERATION
10675 ;
10676 ; R0 -- POINTS TO THREAD NODE TO BE STARTED
10677 ; R4 -- POINTS TO I/O PAGE ADDR THIS DEVICE
10678 ; R5 -- POINTS TO DLS TABLE THIS DEVICE
10679 ;
10680 ; BEFORE ATTEMPTING TO START THE NEXT NODE IN THE THREAD LIST, SEE IF A
10681 ; SENDALL IS PENDING FOR THIS LINE, (".SNDLP" .NE. "TT.SND"). IF SO, START
10682 ; THE SENDALL. IF SENDALLS ARE SUPPRESSED FOR THIS LINE, IGNORE IT.
10683 ;
10684 ; IF NO SENDALL IS PENDING FOR THIS LINE, ATTEMPT TO START THE THE NEXT
10685 ; NODE IN THE THREAD LIST. IF ANOTHER ENTRY EXISTS, START IT; IF NOT, SEND
10686 ; AN ACK. IF THE LINE HAS BEEN X'D OFF, DO NOTHING.
10687 ;
10688 ; NOTE: SENDALLS ARE FORCED OUT OVER THE XOFF -- THEY ARE NOT TO BE STOPPED.
10689 ;-
10690
10691 034062 STNXT:
10692 034062 CALL .TTIXC ;;; [5.1015] DO INPUT CONTROL CHECKS
034062 004737 042254' JSR PC,.TTIXC
10693 034066 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; [5.1015] IS OUTPUT NOW IN PROGRESS??
10694 034074 001134 BNE TTOUTR ;;; [5.1015] YES -- JUST EXIT
10695 034076 016502 000006 MOV STSW1(R5),R2 ;;; FIND THE STATUS WORD TO LOOK AT
10696 034102 006102 ROL R2 ;;; GET THE RING INDEX OUT OF STATUS WORD
10697 034104 006102 ROL R2
10698 034106 006102 ROL R2
10699 034110 042702 177774 BIC #^C3,R2 ;;; R2 NOW HAS OFFSET INTO SENDALL RING
10700 034114 020237 002604' CMP R2,.SNDLP ;;; ANY SENDALLS PENDING THIS LINE??
10701 034120 001414 BEQ 10$ ;;; NO -- CONTINUE NORMAL I/O
10702 034122 032765 000400 000006 BIT #TT.NSA,STSW1(R5) ;;; [4.2246] YES -- ARE WE SUPPRESSING SENDALL'S??
10703 034130 001010 BNE 10$ ;;; [4.2246] YES -- IGNORE IT
10704 034132 006302 ASL R2 ;;; NO -- MAKE R2 A WORD INDEX INTO RING
10705 034134 016200 002606' MOV .SNDBF(R2),R0 ;;; GET THE NEXT SENDALL NODE INTO R0
10706 034140 001404 BEQ 10$ ;;; CONTINUE NORMAL I/O IF EMPTY
10707 034142 052765 001000 000006 BIS #TT.SIP,STSW1(R5) ;;; SET SENDALL IN PROGRESS
10708 034150 000405 BR .DHSTO ;;; AND START IT UP
10709 ;
10710 034152 10$:
10711 034152 011500 MOV (R5),R0 ;;; [4.2096] START THE XFER ON THIS STRING
10712 034154 001505 BEQ .TTACK ;;; [4.2096] SEND AN ACK IF END
10713 034156 105765 000006 TSTB STSW1+0(R5) ;;; [4.2096] IS THIS LINE X'D OFF??
10714 034162 100501 BMI TTOUTR ;;; [4.2096] YES -- GO AWAY
10715 ; BR .DHSTO ;;; NO -- GO ON
10716 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 205
TERMINAL DRIVER -- .DHSTO (START DH-11 OUTPUT)
10718 .SBTTL TERMINAL DRIVER -- .DHSTO (START DH-11 OUTPUT)
10719
10720 ;+
10721 ; .DHSTO -- START DH-11 OUTPUT
10722 ;
10723 ; THIS SUBROUTINE WILL START OUTPUT ON A DH-11 LINE
10724 ;
10725 ; INPUTS:
10726 ;
10727 ; R0 -- POINTS TO THE I/O PACKET
10728 ; R4 -- EXTERNAL PAGE POINTER FOR THIS LINE
10729 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
10730 ;
10731 ; OUTPUTS:
10732 ;
10733 ; R2 IS CLOBBERED
10734 ;-
10735
10736 034164 .DHSTO::
10737 034164 016064 000004 000006 MOV T.HCAD(R0),6(R4) ;;; SET UP THE DH-11 ADDRESS REGISTER
10738 034172 016064 000006 000010 MOV T.HCBC(R0),10(R4) ;;; SET UP THE BYTE COUNT
10739 034200 005464 000010 NEG 10(R4) ;;; MAKE THE BYTE COUNT NEGATIVE
10740 034204 011402 MOV @R4,R2 ;;; FIND THE UNIT NUMBER TO START THE DH-11
10741 034206 042702 177760 BIC #177760,R2 ;;; MASK OFF HIGH ORDER JUNK
10742 034212 006302 ASL R2 ;;; MAKE AN INDEX INTO BIT TABLE
10743 034214 056264 043022' 000012 BIS BITTBL(R2),12(R4) ;;; START THE DH-11
10744 034222 000456 BR TTOUTX ;;; MARK OUTPUT BUSY AND EXIT
10745 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 206
TERMINAL DRIVER -- $TTOUT (DL11 OUTPUT INTERRUPT)
10747 .SBTTL TERMINAL DRIVER -- $TTOUT (DL11 OUTPUT INTERRUPT)
10748 ;+
10749 ; **-$TTOUT-DL11 TERMINAL OUTPUT INTERRUPTS
10750 ;-
10751
10752 034224 $TTOUT:: ;;; REF LABEL
10753 034224 013737 177776 002650' MOV @#PS,DLTMP ;;; SAVE CONTROLLER NUMBER
10754 034232 CALL R3,TTSAV ;;; SAVE R3 AND SETUP R3, R4, AND R5
034232 004337 037332' JSR R3,TTSAV
10755 034236 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; OUTPUT INTERRUPT EXPECTED??
10756 034244 001451 BEQ .TTACK ;;; NO -- SO ACK THE LINE
10757 034246 042765 000001 000006 BIC #TT.OUT,STSW1(R5) ;;; YES -- MARK OUTPUT DONE
10758 034254 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; IS THIS A CONSOLE??
10759 034262 001403 BEQ STTYO ;;; NO -- SEND THE LINE
10760 034264 005737 002632' TST .TTP11 ;;; YES -- IS THIS PDP11 INPUT??
10761 034270 001076 BNE OUTPT3 ;;; YES -- SPECIAL CASE
10762 034272 STTYO:
10763 034272 011500 MOV (R5),R0 ;;; [4.2096] NO -- PICK UP THIS LINE IN USE
10764 034274 001435 BEQ .TTACK ;;; [4.2096] ACK THE LINE IF END OF THREAD LIST
10765 034276 005360 000006 DEC T.HCBC(R0) ;;; [5.1015] DECREMENT THE BYTE COUNT
10766 034302 003011 BGT 10$ ;;; [5.1015] FINISHED?
10767 034304 011015 MOV @R0,(R5) ;;; SAVE NEXT THREAD POINTER
10768 034306 CALL ..DECN ;;; DEALLOCATE THE BUFFER
034306 004737 044546' JSR PC,..DECN
10769 034312 CALL .TTIXC ;;; [5.1015] DO INPUT CONTROL CHECKS
034312 004737 042254' JSR PC,.TTIXC
10770 034316 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; [5.1015] I/O STARTED ALREADY??
10771 034324 001020 BNE TTOUTR ;;; [5.1015] YES -- JUST EXIT
10772 034326 10$:
10773 034326 011500 MOV (R5),R0 ;;; NO -- SET THE NEW THREAD POINTER
10774 034330 001417 BEQ .TTACK ;;; GO ACK THE LINE IF DONE
10775 034332 105765 000006 TSTB STSW1+0(R5) ;;; [5.1015] IS THIS LINE X'D OFF??
10776 034336 100413 BMI TTOUTR ;;; [5.1015] YES -- JUST GO AWAY
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 207
TERMINAL DRIVER -- .DLSTO (START DL-11 OUTPUT)
10778 .SBTTL TERMINAL DRIVER -- .DLSTO (START DL-11 OUTPUT)
10779
10780 ;+
10781 ; .DLSTO -- START DL-11 OUTPUT
10782 ;
10783 ; THIS SUBROUTINE WILL START OUTPUT ON A DL-11 LINE
10784 ;
10785 ; INPUTS:
10786 ;
10787 ; R0 -- POINTS TO THE I/O PACKET
10788 ; R4 -- EXTERNAL PAGE ADDRESS OF THIS DEVICE
10789 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
10790 ;
10791 ; OUTPUTS:
10792 ;
10793 ; NO REGISTERS ARE ALTERED
10794 ;-
10795
10796 034340 .DLSTO::
10797 034340 117064 000004 000006 MOVB @T.HCAD(R0),6(R4) ;;; START THE NEXT CHARACTER
10798 034346 005260 000004 INC T.HCAD(R0) ;;; UPDATE THE CHARACTER POINTER
10799 034352 052764 000100 000004 BIS #DL.XEN,4(R4) ;;; INSURE INTERRUPT ENABLED
10800 034360 TTOUTX:
10801 034360 052765 000001 000006 BIS #TT.OUT,STSW1(R5) ;;; MARK OUTPUT BUSY
10802 034366 TTOUTR:
10803 034366 RETURN ;;; RETURN TO CALLER
034366 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 208
TERMINAL DRIVER -- .TTACK (ACKNOWLEDGE A TTY LINE)
10805 .SBTTL TERMINAL DRIVER -- .TTACK (ACKNOWLEDGE A TTY LINE)
10806
10807 ;+
10808 ; .TTACK - ACKNOWLEDGE A TERMINAL LINE
10809 ;
10810 ; THIS SUBROUTINE MAY BE CALLED FROM EITHER INTERRUPT LEVEL OR TASK LEVEL
10811 ; TO TRANSMIT AN ACK TO THE HOST, IF CONDITIONS WILL ALLOW.
10812 ;
10813 ; THE LINE WILL NOT BE ACK'ED IF IT IS THE CTY AND IT IS ACTIVE ON THE PDP-11,
10814 ; OR IF THE LINE IS THE KLINIK LINE IN REMOTE CONSOLE MODE.
10815 ;
10816 ; INPUTS:
10817 ;
10818 ; R5 -- POINTS TO DLS TABLE ENTRY FOR LINE TO BE ACK'ED
10819 ;
10820 ; OUTPUTS:
10821 ;
10822 ; NO REGISTERS ALTERED.
10823 ;-
10824
10825 034370 .TTACK::
10826 034370 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
10827 034376 001424 BEQ 10$ ;;; NO -- GO ON
10828 034400 005737 002632' TST .TTP11 ;;; YES -- IS IT TALKING TO THE -11??
10829 034404 001027 BNE 20$ ;;; YES -- JUST EXIT
10830 034406 105737 001226' TSTB .KLNSW+0 ;;; NO -- IS KLINIK ACTIVE??
10831 034412 001416 BEQ 10$ ;;; [4.1.1066] NO -- GO ON
10832 034414 020537 002634' CMP R5,CTYPTR ;;; IS THIS THE CTY ?
10833 034420 001004 BNE 5$ ;;; [5.1565] BRANCH IF NOT
10834 034422 105737 001216' TSTB .KLNMD ;;; [5.1565] ACTIVE IN USER MODE ??
10835 034426 002410 BLT 10$ ;;; [5.1565] YES, GO GIVE ACK
10836 034430 000415 BR 20$ ;;; [5.1565] NO, WAIT FOR KLINIK LINE TO FINISH
10837 034432 5$:
10838 034432 010546 MOV R5,-(SP) ;;; [5.1246] SAVE THE REAL POINTER
10839 034434 013705 002634' MOV CTYPTR,R5 ;;; [5.1246] TELL THE HOST THIS IS THE CTY
10840 034440 CALL 10$ ;;; [5.1246] SEND THE ACK
034440 004737 034450' JSR PC,10$
10841 034444 012605 MOV (SP)+,R5 ;;; [5.1246] RESTORE THE REAL PONITER
10842 034446 RETURN ;;; [5.1246] AND EXIT
034446 000207 RTS PC
10843 034450 10$:
10844 034450 010346 MOV R3,-(SP) ;;; NO -- SAVE R3
10845 034452 012703 000004 MOV #D.CDLS,R3 ;;; SET DATA LINE SCANNER DEVICE CODE
10846 034456 CALL ..SACK ;;; ACK THE LINE
034456 004737 045372' JSR PC,..SACK
10847 034462 012603 MOV (SP)+,R3 ;;; RESTORE R3
10848 034464 20$:
10849 034464 RETURN ;;; AND EXIT
034464 000207 RTS PC
10850
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 209
TERMINAL DRIVER -- OUTPT3 (PDP-11 CTY OUTPUT ROUTINES)
10852 .SBTTL TERMINAL DRIVER -- OUTPT3 (PDP-11 CTY OUTPUT ROUTINES)
10853
10854 034466 OUTPT3: ;;; HERE TO SYNCH CTY OUTPUT
10855 034466 105737 001226' TSTB .KLNSW+0 ;;; KLINIK REMOTE CONSOLE ACTIVE?
10856 034472 003425 BLE OUTPT ;;; NO -- CONTINUE
10857 034474 010546 MOV R5,-(SP) ;;; SAVE CURRENT POINTER
10858 034476 022705 003046' CMP #DHTBL,R5 ;;; IS CTY A DH-11 LINE??
10859 034502 101410 BLOS 10$ ;;; YES -- GO ON
10860 034504 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; NO -- IS THIS LINE FINISHED??
10861 034512 001012 BNE 30$ ;;; NO -- EXIT
10862 034514 013705 002634' MOV CTYPTR,R5 ;;; YES -- POINT TO THE CTY
10863 034520 020516 CMP R5,(SP) ;;; HAVE WE ALREADY CHECKED IT??
10864 034522 001002 BNE 20$ ;;; NO -- GO ON
10865 034524 10$:
10866 034524 013705 002636' MOV KLNPTR,R5 ;;; YES -- POINT TO THE KLINIK LINE
10867 034530 20$:
10868 034530 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; IS IT FINISHED??
10869 034536 001402 BEQ 90$ ;;; YES -- TYPE IF FINISHED
10870 034540 30$:
10871 034540 012605 MOV (SP)+,R5 ;;; NO -- RESTORE POINTER
10872 034542 RETURN ;;; RETURN TO CALLER
034542 000207 RTS PC
10873 034544 90$:
10874 034544 005726 TST (SP)+ ;;; CLEAR STACK
10875 ;
10876 ; OUTPUT NEXT BYTE
10877 ;
10878 .ENABL LSB
10879 034546 OUTPT:
10880 034546 013705 002634' MOV CTYPTR,R5 ;;; POINT TO THE CTY
10881 034552 012703 002664' MOV #CTYSTS,R3 ;;; GET CTY BLOCK POINTER
10882 034556 032713 000017 BIT #FLCT,@R3 ;;; SHOULD A FILL BE ECHOED?
10883 034562 001105 BNE 60$ ;;; IF NE YES
10884 034564 032713 074000 BIT #LFCT,@R3 ;;; ANY UNPROCESSED LINE FEEDS?
10885 034570 001066 BNE 40$ ;;; IF NE YES
10886 034572 105763 000010 TSTB MECNT(R3) ;;; MULTIECHO SEQUENCE IN PROGRESS?
10887 034576 001070 BNE 50$ ;;; IF NE YES
10888 034600 005713 TST @R3 ;;; INPUT OR OUTPUT IN PROGRESS?
10889 034602 100055 BPL INPPT ;;; IF PL INPUT
10890 ;
10891 ; OUTPUT REQUEST IN PROGRESS
10892 ;
10893 034604 005737 002726' TST BYCNT ;;; ANY MORE BYTES TO OUTPUT?
10894 034610 100416 BMI 20$ ;;; IF MI NO
10895 034612 005337 002726' DEC BYCNT ;;; DECREMENT BYTE COUNT
10896 034616 100405 BMI 10$ ;;; IF MI CHECK CARRIAGE CONTROL
10897 034620 117746 146104 MOVB @CRADR,-(SP) ;;; STORE CHARACTER ON STACK
10898 ;;; !!!NOTE: THIS SHOULD BE VXFR AND BLXI!!!!!
10899 034624 005237 002730' INC CRADR ;;; UPDATE POINTER TO NEXT CHARACTER
10900 034630 000465 BR ECHOB ;;; ECHO NEXT BYTE
10901 ;
10902 034632 10$:
10903 034632 112746 000015 MOVB #C.HCRT,-(SP) ;;; ASSUME TRAILING CARRIAGE RETURN REQUIRED
10904 034636 032713 002000 BIT #CRTY,@R3 ;;; OUTPUT TRAILING CARRIAGE RETURN?
10905 034642 001060 BNE ECHOB ;;; IF NE YES
10906 034644 005726 TST (SP)+ ;;; CLEAN STACK
10907 034646 20$:
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 209-1
TERMINAL DRIVER -- OUTPT3 (PDP-11 CTY OUTPUT ROUTINES)
10908 034646 012737 000001 002730' MOV #IS.SUC&377,CRADR ;;; SET SUCCESSFUL COMPLETION STATUS
10909 034654 TTYDNE:
10910 034654 052737 000020 007172' BIS #EF.IOD,TTYTSK+A.EF ;;; SET EVENT FLAG INDICATING I/O DONE
10911 034662 CALL ..DSEV ;;; DECLARE A SIGNIFICANT EVENT
034662 004737 044026' JSR PC,..DSEV
10912 034666 105737 001226' TSTB .KLNSW+0 ;;; IS KLINIK ACTIVE??
10913 034672 003412 BLE TTYDNX ;;; NO -- GO ON
10914 034674 010546 MOV R5,-(SP) ;;; YES -- SAVE R5
10915 034676 010446 MOV R4,-(SP) ;;; AND R4
10916 034700 013705 002636' MOV KLNPTR,R5 ;;; POINT TO THE KLINIK LINE
10917 034704 016504 000002 MOV TTYEXP(R5),R4 ;;; I/O PAGE POINTER TO R5
10918 034710 CALL STTYO ;;; START OR DEALLOCATE
034710 004737 034272' JSR PC,STTYO
10919 034714 012604 MOV (SP)+,R4 ;;; RESTORE REGISTERS
10920 034716 012605 MOV (SP)+,R5 ;;; SO
10921 034720 TTYDNX:
10922 034720 022705 003046' CMP #DHTBL,R5 ;;; CALLED FROM DH-11??
10923 034724 101002 BHI 30$ ;;; NO --TRY THE ONE ON DL-11
10924 034726 000137 033676' JMP STTYDN ;;; GO DO ACK AND CLEAR BUSY
10925 ;
10926 034732 30$:
10927 034732 000137 034272' JMP STTYO ;;; SEE WHAT'S NEXT FOR DL-11
10928 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 210
TERMINAL DRIVER -- INPTT (PDP-11 CTY INPUT ROUTINES)
10930 .SBTTL TERMINAL DRIVER -- INPTT (PDP-11 CTY INPUT ROUTINES)
10931
10932 ;
10933 ; INPUT REQUEST IN PROGRESS
10934 ;
10935 034736 INPPT:
10936 034736 032713 000400 BIT #EOLS,@R3 ;;; END OF LINE SEEN?
10937 034742 001157 BNE INPT1
10938 034744 INPT0:
10939 034744 RETURN
034744 000207 RTS PC
10940 ;
10941 ; ECHO LINE FEED
10942 ;
10943 034746 40$:
10944 034746 162713 004000 SUB #LFBT,@R3 ;;; REDUCE LINE FEED COUNT
10945 034752 112746 000012 MOVB #C.HLFD,-(SP) ;;; SET TO ECHO LINE FEED
10946 034756 000412 BR ECHOB ;;; ECHO BYTE
10947 ;
10948 ;
10949 ; MULTI-ECHO SEQUENCE
10950 ;
10951 034760 50$:
10952 034760 117346 000012 MOVB @MEBUF(R3),-(SP) ;;; SET NEXT BYTE TO ECHO
10953 034764 005263 000012 INC MEBUF(R3) ;;; INCREMENT BUFFER ADDRESS
10954 034770 105363 000010 DECB MECNT(R3) ;;; DECREMENT MULTIECHO BYTE COUNT
10955 034774 000403 BR ECHOB ;;; ECHO BYTE
10956 ;
10957 ;
10958 ; ECHO FILL BYTE
10959 ;
10960 034776 60$:
10961 034776 005313 DEC @R3 ;;; DECREMENT FILL COUNT
10962 035000 116346 000011 MOVB FLBYT(R3),-(SP) ;;; SET TO ECHO FILL BYTE
10963 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 211
TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)
10965 .SBTTL TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)
10966
10967 ;
10968 ; ECHO NEXT BYTE
10969 ;
10970
10971 035004 ECHOB:
10972 035004 042716 177600 BIC #177600,@SP ;;; MASK OFF PARITY
10973 035010 121627 000037 CMPB @SP,#37 ;;; IS THIS A CONTROL BYTE?
10974 035014 101041 BHI 70$ ;;; IF HI NO
10975 035016 122716 000015 CMPB #C.HCRT,@SP ;;; CARRIAGE RETURN?
10976 035022 001422 BEQ 10$ ;;; IF EQ YES
10977 035024 101041 BHI 80$ ;;; IF HI GO ON
10978 035026 122716 000012 CMPB #C.HLFD,@SP ;;; LINE FEED, FORM FEED OR VERTICAL TAB?
10979 035032 101424 BLOS 50$ ;;; IF LOS YES
10980 035034 122716 000011 CMPB #C.HTAB,@SP ;;; HORIZONTAL TAB?
10981 035040 001033 BNE 80$ ;;; IF NE NO
10982 ;
10983 ; HORIZONTAL TAB
10984 ;
10985 035042 116316 000016 MOVB HORPS(R3),@SP ;;; GET CURRENT HORIZONTAL POSITION
10986 035046 052716 177770 BIS #177770,@SP ;;; CALCULATE BLANK COUNT TO NEXT TAB STOP
10987 035052 005416 NEG @SP
10988 035054 051613 BIS @SP,@R3 ;;; MERGE BLANK COUNT
10989 035056 112763 000040 000011 MOVB #' ,FLBYT(R3) ;;; SET FILL TO A BLANK
10990 035064 5$:
10991 035064 005726 TST (SP)+ ;;; REMOVE BYTE FROM STACK
10992 035066 000627 BR OUTPT ;;; START OUTPUT
10993 ;
10994 ;
10995 ; CARRIAGE RETURN
10996 ;
10997 035070 10$:
10998 035070 20$:
10999 035070 052713 001000 BIS #CRJT,@R3 ;;; SET CARRIAGE RETURN JUST TYPED
11000 035074 005213 INC @R3 ;;; ALWAYS ONE FILL BYTE
11001 035076 105063 000016 CLRB HORPS(R3) ;;; CLEAR HORIZONTAL POSITION
11002 035102 000403 BR 60$ ;;; OUTPUT CARRIAGE RETURN
11003 ;
11004 ;
11005 ; FORM FEED OR VERTICAL TAB OR LINE FEED
11006 ;
11007 035104 50$:
11008 035104 042713 001000 BIC #CRJT,@R3 ;;; CLEAR CARRIAGE RETURN JUST TYPED
11009 035110 000407 BR 80$
11010 ;
11011 035112 60$:
11012 035112 105063 000011 CLRB FLBYT(R3) ;;; SET NULL FILL BYTE
11013 035116 000404 BR 80$
11014 ;
11015 ;
11016 ; BYTE REQUIRES HORIZONTAL POSITION
11017 ;
11018 035120 70$:
11019 035120 042713 001000 BIC #CRJT,@R3 ;;; CLEAR CARRIAGE RETURN JUST TYPED
11020 035124 105263 000016 INCB HORPS(R3) ;;; INCREMENT HORIZONTAL POSITION
11021 035130 80$:
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 211-1
TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)
11022 035130 005713 TST @R3 ;;; INPUT MODE?
11023 035132 100003 BPL 81$ ;;; IF PL YES
11024 035134 032713 000040 BIT #CTLO,@R3 ;;; OUTPUT DISABLED?
11025 035140 001351 BNE 5$ ;;; IF NE YES
11026 035142 81$:
11027 035142 105737 001226' TSTB .KLNSW+0 ;;; KLINIK REMOTE MODE ACTIVE?
11028 035146 003420 BLE 82$ ;;; NO -- BETTER LEAVE IT ALONE
11029 035150 010546 MOV R5,-(SP) ;;; SAVE DLS POINTER
11030 035152 013705 002636' MOV KLNPTR,R5 ;;; GET KLINIK DLS POINTER
11031 035156 016504 000002 MOV TTYEXP(R5),R4 ;;; POINT TO CSR
11032 035162 001411 BEQ 84$ ;;; IGNORE IF NOT THERE
11033 035164 116664 000002 000006 MOVB 2(SP),6(R4) ;;; START KLINIK LINE
11034 035172 052764 000100 000004 BIS #DL.XEN,4(R4) ;;; ENABLE XMTR INTERRUPTS
11035 035200 052765 000001 000006 BIS #TT.OUT,STSW1(R5) ;;; SET TTY BUSY
11036 035206 84$:
11037 035206 012605 MOV (SP)+,R5 ;;; RESTORE CTY POINTER
11038 035210 82$:
11039 035210 016504 000002 MOV TTYEXP(R5),R4 ;;; GET ADDRESS OF CONTROL STATUS REGISTER
11040 035214 022705 003046' CMP #DHTBL,R5 ;;; IS THIS A DL-11 ??
11041 035220 101021 BHI 90$ ;;; YES -- SPECIAL CASE
11042 035222 112637 002704' MOVB (SP)+,DHBUF+CTYSTS ;;; PUT BYTE IN OUTPUT BUFFER
11043 035226 042714 001077 BIC #1077,@R4 ;;; CLEAR CURRENT UNIT
11044 035232 153714 002640' BISB $UNIT,@R4 ;;; SELECT DESIRED UNIT
11045 035236 042724 000060 BIC #60,(R4)+
11046 035242 062704 000004 ADD #4,R4 ;;; POINT TO CURRENT ADDRESS REGISTER
11047 035246 012724 002704' MOV #DHBUF+CTYSTS,(R4)+
11048 035252 012724 177777 MOV #-1,(R4)+ ;;; SET BYTE COUNT TO MINUS ONE
11049 035256 053714 002642' BIS $BTMSK,@R4 ;;; START OUTPUT
11050 035262 000405 BR 99$ ;;; MARK OUTPUT BUSY AND EXIT
11051 ;
11052 035264 90$:
11053 035264 112664 000006 MOVB (SP)+,6(R4) ;;; OUTPUT BYTE
11054 035270 052764 000100 000004 BIS #DL.XEN,4(R4) ;;; ENABLE OUTPUT INTERRUPT
11055 035276 99$:
11056 035276 000137 034360' JMP TTOUTX ;;; MARK OUTPUT BUSY AND EXIT
11057 ;
11058 ;
11059 ; END OF INPUT LINE
11060 ;
11061 035302 INPT1:
11062 035302 012703 002666' MOV #CTYSTS+2,R3 ;;; FIND THE TERMINAL STATUS WORD
11063 035306 117337 000000 002730' MOVB @(R3),CRADR ;;; FIND THE LAST CHARACTER
11064 035314 016346 000004 MOV 4(R3),-(SP)
11065 035320 162316 SUB (R3)+,@SP ;;; FIND THE BYTE COUNT
11066 035322 112713 000001 MOVB #IS.SUC&377,@R3 ;;; ASSUME NORMAL TERMINATION
11067 035326 012300 MOV (R3)+,R0 ;;; GET FINAL BYTE AND STATUS
11068 035330 100006 BPL 40$ ;;; IF PL NORMAL TERMINATION
11069 035332 012700 015366 MOV #32*400+366,R0 ;;; ASSUME ^Z
11070 035336 105243 INCB -(R3) ;;; CONTROL Z?
11071 035340 001402 BEQ 40$ ;;; IF EQ YES
11072 035342 012700 000361 MOV #IE.ABO&377,R0 ;;; SET ABORT STATUS
11073 035346 40$:
11074 035346 013701 002732' MOV TTPKT,R1 ;;; FIND THE PACKET ADDRESS
11075 035352 010037 002730' MOV R0,CRADR ;;; SAVE THE STARTS FIRST WORD
11076 035356 012661 000026 MOV (SP)+,R.PB+2(R1) ;;; STORE THE BYTE COUNT
11077 035362 50$:
11078 035362 000137 034654' JMP TTYDNE
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 211-2
TERMINAL DRIVER -- ECHOB (PDP-11 CTY ECHO ROUTINES)
11079 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 212
TERMINAL DRIVER -- .KW11S (KW11 LINE CLOCK INTERRUPT)
11081 .SBTTL TERMINAL DRIVER -- .KW11S (KW11 LINE CLOCK INTERRUPT)
11082
11083 ;+
11084 ; **- .KW11S -- LINE CLOCK INTERRUPT SERVICE HANDLER
11085 ;
11086 ; THIS ROUTINE UPDATES THE COUNT OF CLOCK TICK WHICH ARE PENDING
11087 ; SERVICE (NORMALLY ONLY ONE). THESE CLOCK TICKS ARE HONORED AT
11088 ; TASK LEVEL AT "..INTX".
11089 ;
11090 ; THIS ROUTINE WILL:
11091 ;
11092 ; 1. INITIATE THE SECOND HALF OF THE INPUT DISABLE PROCESS FOR ALL
11093 ; WHICH HAVE FINISHED THE FIRST HALF
11094 ; 2. ENABLE A SINGLE LOCALLY (INPUT) DISABLED LINE, IF CONDITIONS ALLOW.
11095 ; 3. TRY TO UNBLOCK THE DTE IF IT WAS BLOCKED
11096 ;
11097 ; AN ATTEMPT IS MADE TO START UP THE TO-10 QUEUE ON EVERY CLOCK TICK AS WELL.
11098 ;-
11099
11100 035366 .KW11S::
11101 035366 CALL R3,DHSAV ;;; [4.2095] MUST SAVE REGISTERS
035366 004337 037274' JSR R3,DHSAV
11102 035372 105237 001015' INCB .SERFG+1 ;;; [4.2095] BUMP PENDING TICK COUNT
11103 035376 005737 005046' TST .TTS2F ;;; [5.1015] LINES NEED ATTENTION??
11104 035402 001417 BEQ 30$ ;;; [4.4.1066] NO -- GO ON
11105 ;
11106 ; HERE TO CONTINUE INPUT DISABLE PROCESS
11107 ;
11108 035404 012705 002776' MOV #TTTBL,R5 ;;; [5.1015] DLS TABLE POINTER TO R5
11109 035410 012700 000205 MOV #TTCNT,R0 ;;; [5.1015] LINE COUNT TO R0
11110 035414 10$:
11111 035414 CALL .TTSW2 ;;; [5.1017] FIND OUT "STSW2" ENTRY
035414 004737 042754' JSR PC,.TTSW2
11112 035420 032712 040000 BIT #S2.DIP,(R2) ;;; [5.1015] YES -- INPUT XOFF IN PROGRESS??
11113 035424 001403 BEQ 20$ ;;; [5.1015] NO -- GO ON
11114 035426 CALL .TTCHK ;;; [5.1015] YES -- COUNT THIS CLOCK TICK
035426 004737 042124' JSR PC,.TTCHK
11115 035432 001403 BEQ 30$ ;;; [5.1015] EXIT IF DONE
11116 035434 20$:
11117 035434 062705 000010 ADD #10,R5 ;;; [5.1015] ADVANCE POINTER
11118 035440 077013 SOB R0,10$ ;;; [5.1015] CHECK ALL LINES
11119 035442 30$:
11120 035442 005737 005050' TST .S2IDC ;;; [4.1.1092] ARE ANY DISABLED LINES PENDING??
11121 035446 001412 BEQ 40$ ;;; [4.1.1092] NO -- TRY TO UNBLOCK THE DTE
11122 ;
11123 ; HERE TO ENABLE A LOCALLY DISABLED LINE
11124 ;
11125 035450 023737 005056' 001422' CMP .IBFOK,.FREPL+2 ;;; [4.1.1092] YES -- CAN WE ENABLE NOW??
11126 035456 101044 BHI DHISTQ ;;; [4.1.1092] NO -- GO ON
11127 035460 CALL .TTFDI ;;; [4.1.1092] YES -- FIND THE NEXT LINE TO ENABLE
035460 004737 041360' JSR PC,.TTFDI
11128 035464 CALL .TTENB ;;; [4.1.1092] AND ENABLE IT
035464 004737 042464' JSR PC,.TTENB
11129 035470 005337 005050' DEC .S2IDC ;;; [4.1.1092] ACCOUNT FOR THE LINE
11130 035474 40$:
11131 035474 005737 001012' TST .COMEF+2 ;;; [4.1.1092] PRIMARY PROTOCOL RUNNING ??
11132 035500 100033 BPL DHISTQ ;;; [4.1.1092] NO -- GO ON
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 212-1
TERMINAL DRIVER -- .KW11S (KW11 LINE CLOCK INTERRUPT)
11133 035502 005737 001374' TST .DTBLK ;;; [4.1.1121] IS THE DTE BLOCKED??
11134 035506 001430 BEQ DHISTQ ;;; [4.1.1121] NO -- START THE TO-10 QUEUE
11135 035510 013700 001360' MOV .PRDTE,R0 ;;; [4.1.1121] POINT TO THE DTE-20
11136 035514 013703 001354' MOV .PRADR,R3 ;;; [4.1.1121] AND THE PROCESSOR TABLE
11137 035520 CALL @.DTBLK ;;; [4.1.1121] TRY TO UNBLOCK THE DTE
035520 004777 143650 JSR PC,@.DTBLK
11138 035524 001021 BNE DHISTQ ;;; [4.1.1121] GO ON IF STILL BLOCKED
11139 035526 CALL .KPALV ;;; [4.1.1121] OTHERWISE DO KEEP-ALIVE
035526 004737 031326' JSR PC,.KPALV
11140 035532 000416 BR DHISTQ ;;; [4.1.1066] START THE TO-10 QUEUE
11141 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 213
TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)
11143 .SBTTL TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)
11144
11145 ;+
11146 ; **-$DHINP-DH-11 TERMINAL MULTIPLEXER INPUT INTERRUPTS
11147 ;
11148 ; THIS IS THE DH-11 INTERRUPT SERVICE HEAD, ALL DEVICE DEPENDENT INPUT
11149 ; PROCESSING IS DONE IN THIS ROUTINE. THE SPECIFIC FUNCTIONS PERFORMED
11150 ; HERE ARE:
11151 ;
11152 ; 1. SILO UNLOAD
11153 ; 2. AUTO-BAUD DETECT
11154 ; 3. FRAMING ERROR PROCESSING
11155 ; 4. TO-10 QUEUE ENTRY.
11156 ; 5. TO-10 QUEUE START-UP.
11157 ;
11158 ; THE SILO UNLOAD WILL DUMP THE INTERRUPTING DH-11'S SILO UNTIL:
11159 ;
11160 ; 1. THE SILO IS EMPTIED
11161 ; 2. AN XOFF CHARACTER IS UNLOADED FROM A LINE WHICH IS ENABLED FOR
11162 ; LOCAL XOFF PROCESSING.
11163 ;
11164 ; THE LAST POINT IS REQUIRED BECAUSE OF SUSPECTED DH-11 HARDWARE BUG WHICH
11165 ; APPEARS TO CAUSE THE SILO TO "LOCK-UP" AFTER THE TRANSMITTER IS X'D-OFF.
11166 ;
11167 ; WHEN THE SILO UNLOAD IS COMPLETE, AN ATTEMPT IS MADE TO START UP THE TO-10 QUEUE.
11168 ;
11169 ; AUTO-BAUD DETECTION IS PERFORMED FOR LINES WHICH ARE IN AUTO-BAUD WAIT; THAT IS,
11170 ; CONNECTED BUT NO SPEED DETERMINED AS YET. AUTO-BAUD DETECTION IS KEYED ON
11171 ; <CONTROL-C> AND <CARRIAGE-RETURN> CHARACTERS FOR LINE SPEEDSS OF 110, 150, 300,
11172 ; AND 1200 BAUD. AUTO-BAUD DETECT CONTINUES UNTIL A PATTERN MATCH IS MADE, OR
11173 ; THE LINE DISCONNECTS. CHARACTERS EXAMINED FOR AUTO-BAUD DETECT ARE NOT
11174 ; CHECKED FOR FRAMING ERRORS OR ENTERED INTO THE TO-10 QUEUE.
11175 ;
11176 ; WHEN THE LINE HAS SUCCESSFULLY AUTO-BAUDED, THE CONNECT MESSAGE IS SENT TO THE
11177 ; HOST, AS OPPOSED TO WHEN CARRIER IS ASSERTED FOR NON-AUTO-BAUD LINES.
11178 ; A REQUEST IS ALSO MADE TO REPORT THE LINE SPEED TO THE HOST.
11179 ;
11180 ; FRAMING ERRORS ARE SENSED AND COUNTED FOR EACH CHARACTER RECEIVED FROM A GIVEN
11181 ; LINE. THE FRAMING ERROR COUNT IS CLEARED UPON RECEIPT OF A CHARACTER WITHOUT
11182 ; AN ASSOCIATED FRAMING ERROR. WHEN FOUR (4) CONSECUTIVE FRAMING ERRORS HAVE
11183 ; BEEN TALLIED FOR A LINE, ITS INPUT SPEED IS SET TO ZERO BAUD, AND FLAGGED TO
11184 ; HAVE ITS INPUT SPEED REENABLED BY THE TERMINAL POLLING SERVICE (".DHTMO", Q.V.)
11185 ;
11186 ; THE FOUR ERROR CHARACTERS ARE PASSED TO THE HOST, ALL SUBSEQUENT ERROR CHARACTERS
11187 ; ARE IGNORED.
11188 ;
11189 ; NORMAL CHARACTERS ARE SIMPLY ENTERED INTO THE TO-10 QUEUE.
11190 ;-
11191
11192 .ENABL LSB
11193
11194 035534 $DHINP:: ;;; REFERENCE LABEL
11195 035534 013737 177776 002646' MOV @#PS,DHTMP ;;; SAVE THE CONTROLLER NUMBER
11196 035542 CALL R3,DHSAV ;;; SAVE R3 AND SETUP R4 AND R5
035542 004337 037274' JSR R3,DHSAV
11197 035546 001415 BEQ 30$ ;;; GUARD AGAINST SPURIOUS INTERRUPTS
11198 035550 10$:
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 213-1
TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)
11199 035550 010537 002652' MOV R5,DHSTSV ;;; SET UP THE HEAD OF THIS CONTROLLER TABLE ADDRESS
11200 035554 20$:
11201 035554 012746 035554' MOV #20$,-(SP) ;;; [4.2244] SET RETURN ADDRESS
11202 035560 016446 000002 MOV 2(R4),-(SP) ;;; GET NEXT BYTE FROM CONTROLLER SILO
11203 035564 100407 BMI 40$ ;;; PROCESS CHARACTER FROM LINE IF THERE
11204 035566 032626 BIT (SP)+,(SP)+ ;;; REMOVE NULL CHARACTER AND RETURN ADDRESS
11205 035570 DHISTQ: ;;; [4.2095] REMOVED 4 INSTRUCTIONS
11206 035570 005737 001012' TST .COMEF+2 ;;; [4.1.1105] PRIMARY PROTOCOL RUNNING??
11207 035574 100002 BPL 30$ ;;; [4.1.1105] NO -- DON'T BOTHER IT
11208 035576 CALL ..STQ ;;; [4.2095] YES -- ATTEMPT TO START TO-10 QUEUE
035576 004737 046046' JSR PC,..STQ
11209 035602 30$:
11210 035602 RETURN ;;; DISMISS INTERRUPT
035602 000207 RTS PC
11211 ;
11212 ; HERE WITH A CHARACTER TO PROCESS
11213 ;
11214 035604 40$:
11215 035604 116605 000001 MOVB 1(SP),R5 ;;; GET THE LINE NUMBER
11216 035610 042705 177760 BIC #^C17,R5 ;;; GET RID OF ERRORS, ETC.
11217 035614 010503 MOV R5,R3 ;;; COPY LINE NUMBER TO R3
11218 035616 006305 ASL R5 ;;; MAKE A TABLE POINTER TO LINE WTHIN MUX
11219 035620 006305 ASL R5 ;;;
11220 035622 006305 ASL R5 ;;;
11221 035624 063705 002652' ADD DHSTSV,R5 ;;; FROM BASE OF CONTROLLER TABLE
11222 035630 005737 001012' TST .COMEF+2 ;;; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
11223 035634 100052 BPL 70$ ;;; [4.1.1105] NO -- JUST CHECK FRAMING ERRORS
11224 035636 032765 000010 000006 BIT #TT.ABW,STSW1(R5) ;;; YES -- IS THE LINE IN IN AUTO-BAUD WAIT??
11225 035644 001446 BEQ 70$ ;;; [4.2205] NO -- CHECK FOR FRAMING ERROR
11226 ;
11227 ; HERE WITH A CHARACTER FROM AN AUTO-BAUD LINE
11228 ;
11229 035646 005002 CLR R2 ;;; YES -- CLEAR TABLE INDEX
11230 035650 012701 000013 MOV #CHTBLN,R1 ;;; [4.2103] TABLE LENGTH TO R1
11231 035654 50$:
11232 035654 121662 032344' CMPB (SP),CHTBL(R2) ;;; MATCH A BIT PATTERN??
11233 035660 001404 BEQ 60$ ;;; YES -- DONE
11234 035662 005202 INC R2 ;;; NO -- NEXT PATTERN
11235 035664 077105 SOB R1,50$ ;;; TRY AGAIN
11236 035666 000137 036374' JMP TTINPB ;;; NO MATCH -- FLUSH CHRARACTER AND DISMISS
11237 ;
11238 ;
11239 ; HERE ON AUTO-BAUD PATTERN MATCH
11240 ;
11241 035672 60$: ;;; HERE ON BIT PATTERN MATCH
11242 035672 116202 032360' MOVB IDXTB(R2),R2 ;;; [4.2103] FIND INDEX FOR LINE SPEED
11243 035676 016203 032374' MOV SPDTB(R2),R3 ;;; [4.2103] FIND THE SPEED
11244 035702 016546 000004 MOV STSW0(R5),-(SP) ;;; [4.1.1088] FIND THE CURRENT SPEED
11245 035706 042716 140000 BIC #S0.MSK,(SP) ;;; [4.1.1088] MASK OFF FLAGS
11246 035712 020326 CMP R3,(SP)+ ;;; [4.1.1088] DO THEY MATCH??
11247 035714 001407 BEQ 65$ ;;; [4.1.1088] YES -- GO ON
11248 035716 042765 037777 000004 BIC #^C<S0.MSK>,STSW0(R5) ;;; [4.1.1088] NO -- FLUSH OLD SPEED
11249 035724 050365 000004 BIS R3,STSW0(R5) ;;; [4.1.1088] AND SET THIS ONE
11250 035730 000137 036374' JMP TTINPB ;;; [4.1.1088] DISMISS AND WAIT FOR ANOTHER MATCH
11251 ;
11252 035734 65$:
11253 035734 042765 000010 000006 BIC #TT.ABW,STSW1(R5) ;;; NO LONGER IN AUTO-BAUD WAIT
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 213-2
TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)
11254 035742 CALL .DHSPD ;;; SET THE LINE SPEED
035742 004737 037554' JSR PC,.DHSPD
11255 035746 CALL .DHSPF ;;; FLAG THE NEW SPEED
035746 004737 037514' JSR PC,.DHSPF
11256 035752 CALL .STTYD ;;; RING THE LINE
035752 004737 040060' JSR PC,.STTYD
11257 035756 000137 036374' JMP TTINPB ;;; DISMISS THE INTERRUPT
11258 ;
11259 ;
11260 ; HERE TO CHECK FOR A FRAMING ERROR
11261 ;
11262 035762 70$: ;;; [4.2205]
11263 035762 032765 000100 000006 BIT #TT.RMT,STSW1(R5) ;;; [RCO 32681] REMOTE LINE ?
11264 035770 001404 BEQ 75$ ;;; [RCO 32681] BRANCH IF NOT
11265 035772 032765 040000 000004 BIT #S0.CON,STSW0(R5) ;;; [RCO 32681] CONNECTED ?
11266 036000 001575 BEQ TTINPB ;;; [RCO 32681] EXIT IF NOT
11267 036002 75$:
11268 036002 CALL .TTSW2 ;;; [RCO 32681] FIND OUR STSW2 ENTRY
036002 004737 042754' JSR PC,.TTSW2
11269 036006 005712 TST (R2) ;;; [RCO 32681] LINE SHUT OFF BY US ?
11270 036010 100440 BMI SNDBEL ;;; [RCO 32681] BRANCH IF SO
11271 036012 032716 020000 BIT #DH.FER,(SP) ;;; [4.2205] FRAMING ERROR PRESENT??
11272 036016 001004 BNE 80$ ;;; [4.2205] YES -- COUNT IT UP
11273 036020 042765 014000 000006 BIC #TT.FEC,STSW1(R5) ;;; [4.2205] NO -- FLUSH ANY PREVIOUS COUNT
11274 036026 000501 BR TTSTCH ;;; [4.2205] STORE THE CHARACTER AND RETURN
11275 ;
11276 ;
11277 ; HERE TO COUNT A FRAMING ERROR AND SHUT OFF THE LINE IF REQUIRED
11278 ;
11279 036030 80$: ;;; [4.2205]
11280 036030 032765 020000 000006 BIT #TT.RSI,STSW1(R5) ;;; [4.2205] INPUT RESTART ALREADY PENDING??
11281 036036 001156 BNE TTINPB ;;; [4.2205] YES -- FLUSH CHARACTER AND RETURN
11282 036040 062765 004000 000006 ADD #TT.FEI,STSW1(R5) ;;; [4.2205] NO -- COUNT THIS FRAMING ERROR
11283 ;;; [4.2205] NOTE: THIS WILL ALSO SET "TT.RSI" ON
11284 ;;; [4.2205] FRAMING ERROR COUNT OVERFLOW
11285 036046 016502 000006 MOV STSW1(R5),R2 ;;; [4.2205] COPY STATUS WORD TO R2
11286 036052 042702 163777 BIC #^C<TT.FEC>,R2 ;;; [4.2205] MASK AND TEST FRAMING ERROR COUNT
11287 036056 001065 BNE TTSTCH ;;; [4.2205] STILL OK -- GO ON
11288 036060 042714 001077 BIC #1077,(R4) ;;; [4.2205] OVERFLOWED -- CLEAR LINE NUMBER
11289 036064 050314 BIS R3,(R4) ;;; [4.2205] SET THIS LINE NUMBER
11290 036066 042764 001700 000004 BIC #S0.ISP,4(R4) ;;; [4.2205] SET INPUT SPEED TO ZERO
11291 036074 012703 000300 MOV #DV.LOG!DV.URE,R3 ;;; [4.2245] SET STANDARD STATUS
11292 036100 011637 002660' MOV (SP),.TTELB ;;; [4.2245] SAVE THE ERROR DATA
11293 036104 CALL .TTERL ;;; [4.2245] LOG THE ERROR
036104 004737 041426' JSR PC,.TTERL
11294 036110 000450 BR TTSTCH ;;; [4.2205] STORE THE CHARACTER AND EXIT
11295 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 214
TERMINAL DRIVER -- $DHINP (DH-11 INPUT INTERRUPT)
11297 036112 SNDBEL::
11298 036112 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; [RCO 32681] OUTPUT IN PROGRESS ?
11299 036120 001125 BNE TTINPB ;;; [RCO 32681] EXIT IF SO
11300 036122 042714 001077 BIC #1077,(R4) ;;; [RCO 32681] CLEAR OLD LINE NUMBER
11301 036126 050314 BIS R3,(R4) ;;; [RCO 32681] SET NEW LINE NUMBER
11302 036130 012764 036164' 000006 MOV #BELADR,6(R4) ;;;[RCO 32681] SET THE ADDRESS FOR OUTPUT
11303 036136 012764 177777 000010 MOV #-1,10(R4) ;;; [RCO 32681] AND THE BYTE COUNT
11304 036144 011402 MOV @R4,R2 ;;; [RCO 32681] GET THE DH UNIT NUMBER
11305 036146 042702 177760 BIC #177760,R2 ;;; [RCO 32681] CLEAR ANY EXTRAS
11306 036152 006302 ASL R2 ;;; [RCO 32681] MAKE IT A WORD INDEX
11307 036154 056264 043022' 000012 BIS BITTBL(R2),12(R4) ;;; [RCO 32681] START THE DH GOING
11308 036162 000504 BR TTINPB ;;; [RCO 32681] AND EXIT
11309 ;
11310 036164 BELADR::
11311 036164 007 .BYTE 7
11312 .EVEN
11313 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 215
TERMINAL DRIVER -- $TTINP (DL-11 INPUT INTERRUPT)
11315 .SBTTL TERMINAL DRIVER -- $TTINP (DL-11 INPUT INTERRUPT)
11316
11317 ;+
11318 ; **-$TTINP-DL-11 TERMINAL INPUT INTERRUPTS
11319 ;
11320 ; THIS IS THE DL-11 INPUT INTERRUPT HEAD, ALL DEVICE DEPENDENT INPUT PROCESSING
11321 ; IS DONE HERE.
11322 ;
11323 ; THE DL-11 INPUT SERVICE IS MUCH SIMPLER THAT THAT OF THE DH-11. CONTROL WILL
11324 ; BE TRANSFERRED TO THE DL-11E MODEM INTERRUPT SERVICE, IF REQUIRED. CHARACTERS
11325 ; WITH FRAMING ERRORS ARE SIMPLY IGNORED, AND AN ATTMEPT IS MADE TO START THE
11326 ; TO-10 QUEUE WHE THE INTERRUPT IS DISMISSED.
11327 ;
11328 ; CHARACTERS FROM DL-11'S ARE ENTERED INTO THE TO-10 QUEUE FOR TRANSMISSION TO
11329 ; THE HOST IN THE SAME MANNER AS ARE CHARACTERS FROM DH-11'S.
11330 ;-
11331
11332 .ENABL LSB
11333
11334 036166 $TTINP:: ;;; REF LABEL
11335 036166 013737 177776 002650' MOV @#PS,DLTMP ;;; SAVE CONTROLLER NUMBER
11336 036174 CALL R3,TTSAV ;;; SAVE R3 AND SETUP R4 AND R5
036174 004337 037332' JSR R3,TTSAV
11337 036200 001536 BEQ 80$ ;;; SPURIOUS INTERRUPT
11338 036202 011400 MOV (R4),R0 ;;; GET STATUS
11339 036204 100535 BMI .DLINT ;;; THIS IS MODEM INTERRUPT.
11340 036206 TTINPA:
11341 036206 012746 035570' MOV #DHISTQ,-(SP) ;;; RETURN THROUGH TO10Q STARTUP
11342 036212 016446 000002 MOV 2(R4),-(SP) ;;; GET INPUT BYTE AND FLAGS
11343 036216 032716 020000 BIT #DL.FER,(SP) ;;; FRAMING ERROR PRESENT??
11344 036222 001064 BNE TTINPB ;;; YES -- FORGET IT
11345 036224 105765 000004 TSTB STSW0+0(R5) ;;; [4.2284] NO -- IS THIS LINE TURNED OFF??
11346 036230 001061 BNE TTINPB ;;; YES -- GO AWAY
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 216
TERMINAL DRIVER -- TTSTCH (STORE CHARACTER IN TO10Q)
11348 .SBTTL TERMINAL DRIVER -- TTSTCH (STORE CHARACTER IN TO10Q)
11349
11350 ;+
11351 ; TTSTCH -- STORE TERMINAL CHARACTER IN TO-10 QUEUE
11352 ;
11353 ; THIS ROUTINE PERFORMS DEVICE INDEPENDENT INPUT CHARACTER PROCESSING.
11354 ; SPECIFIC FUNCTIONS PERFORMED ARE:
11355 ;
11356 ; 1. KLINIK INPUT PROCESSING
11357 ; 2. PROTOCOL PAUSE INPUT PRECESSING
11358 ; 3. LOCAL XOFF PROCESSING
11359 ; 4. PDP-11 CTY INPUT PROCESSING
11360 ; 5. SECONDARY PROTOCOL INPUT PROCESSING.
11361 ;
11362 ; CHARACTERS FROM THE KLINIK LINE ARE IGNORED IF KLINIK IS NOT ENABLED.
11363 ;
11364 ; CHARACTERS RECEIVED DURING PROTOCOL PAUSE ARE BUFFERED UNTIL A MINIMUM THRESHOLD
11365 ; IS CROSSED, WHEREUPON THE FRONT-END IS CRASHED (B01).
11366 ;
11367 ; XOFF CHARACTERS ARE PROCESSED LOCALLY FOR LINES WHICH ARE SO ENABLED. THE
11368 ; RETURN IS ALTERED SO AS TO TERMINATE A DH-11 SILO UNLOAD.
11369 ;
11370 ; PDP-11 CTY CHARACTERS ARE ECHOED AND PASSED TO THE TASK WHICH "OWNS" THE CTY.
11371 ;
11372 ; A <CONTROL-C> CHARACTER IS DECLARED AS A SIGNIFICANT EVENT.
11373 ; A <CONTROL-BACKSLASH> CHARACTER REQUESTS THE PARSER TASK.
11374 ;
11375 ; CHARACTERS RECEIVED WHILE IN SECONDARY PROTOCOL ARE PASSED TO THE BOOT
11376 ; PROTOCOL TASK.
11377 ;
11378 ; NORMAL CHARACTERS RECEIVED IN PRIMARY PROTOCOL ARE QUEUED UP FOR TRANSMISSION
11379 ; TO THE HOST. CHARACTERS RECEIVED FROM A LINE WHICH IS IN CARRIER-WAIT ARE
11380 ; IGNORED.
11381 ;-
11382
11383 036232 TTSTCH:
11384 036232 020537 002636' CMP R5,KLNPTR ;;; IS THIS THE KLINIK LINE??
11385 036236 001003 BNE 10$ ;;; NO -- GO ON
11386 036240 105737 001226' TSTB .KLNSW+0 ;;; YES -- IS KLINIK ACTIVE??
11387 036244 001453 BEQ TTINPB ;;; NO -- GO AWAY
11388 036246 10$:
11389 036246 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; IS THIS THE CTY?
11390 036254 001051 BNE 50$ ;;; YES -- SPECIAL CASE
11391 036256 20$: ;;; [4.2211]
11392 036256 032765 000004 000006 BIT #TT.CRW,STSW1(R5) ;;; [4.2333] NO -- IS THE LINE IN CARRIER-WAIT??
11393 036264 001043 BNE TTINPB ;;; [4.2333] YES -- IGNORE IT
11394 036266 005737 001012' TST .COMEF+2 ;;; [4.1.1105] NO -- IS PRIMARY PROTOCOL RUNNING?
11395 036272 100410 BMI 30$ ;;; [4.1.1105] YES -- GO ON
11396 036274 105737 001372' TSTB .PRPSE ;;; [4.2211] NO -- PROTOCOL PAUSE??
11397 036300 001435 BEQ TTINPB ;;; [4.2211] NO -- FLUSH CHARACTER AND DISMISS
11398 036302 022737 000140 001422' CMP #140,.FREPL+2 ;;; [4.2211] YES -- WITHIN LIMITS??
11399 036310 002401 BLT 30$ ;;; [4.2211] YES -- GO ON
11400 036312 000677 BR SNDBEL ;;; [RCO 032681] SEND A BELL TO USER
11401 ;
11402 036314 30$: ;;; [4.2211]
11403 036314 032765 000020 000006 BIT #TT.XEN,STSW1(R5) ;;; [4.2181] IS INTERNAL XOFF ENABLED??
11404 036322 001410 BEQ 40$ ;;; [4.2211] NO -- GO ON
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 216-1
TERMINAL DRIVER -- TTSTCH (STORE CHARACTER IN TO10Q)
11405 036324 011646 MOV (SP),-(SP) ;;; [4.2181] YES -- GET CHARACTER FOR INPUT CHECK
11406 036326 042716 177600 BIC #^C177,(SP) ;;; [4.2181] FLUSH LINE NUMBER AND PARITY
11407 036332 022726 000023 CMP #C.HXOF,(SP)+ ;;; [4.2181] IS IT AN XOFF??
11408 036336 001002 BNE 40$ ;;; [4.2211] NO -- GO ON
11409 036340 CALL .TTXOF ;;; [4.2181] YES -- PROCESS XOFF
036340 004737 041554' JSR PC,.TTXOF
11410 036344 40$: ;;; [4.2211]
11411 036344 CALL ..STCH ;;; STORE CHARACTER WITH PARITY
036344 004737 045326' JSR PC,..STCH
11412 036350 CALL .TTSW2 ;;; [5.1099] FIND OUR "STSW2" ENTRY
036350 004737 042754' JSR PC,.TTSW2
11413 036354 032712 040000 BIT #S2.DIP,(R2) ;;; [5.1099] INPUT XOFF IN PROGRESS??
11414 036360 001403 BEQ 45$ ;;; [5.1099] NO -- CHECK FREE-POOL THRESHOLD
11415 036362 CALL .TTCHK ;;; [5.1099] YES -- COUNT THIS CHARACTER
036362 004737 042124' JSR PC,.TTCHK
11416 036366 000402 BR TTINPB ;;; [5.1099] AND EXIT
11417 ;
11418 036370 45$:
11419 036370 CALL .TTICK ;;; [4.1.1092] CHECK THE BUFFER
036370 004737 042150' JSR PC,.TTICK
11420 036374 TTINPB:
11421 036374 005726 TST (SP)+ ;;; REMOVE THE CHARACTER
11422 036376 RETURN ;;; AND EXIT
036376 000207 RTS PC
11423 036400 50$:
11424 036400 013705 002634' MOV CTYPTR,R5 ;;; POINT TO REAL CTY
11425 036404 011600 MOV (SP),R0 ;;; GET THE CHARACTER AND
11426 036406 042700 177600 BIC #^C177,R0 ;;; MASK OFF PARITY
11427 036412 122700 000003 CMPB #'C-100,R0 ;;; ^C?
11428 036416 001005 BNE 60$ ;;; NO -- DON'T SET EVENT FLAG
11429 036420 052737 040000 001012' BIS #EF.CTC,.COMEF+2 ;;; TELL THE MONITOR
11430 036426 CALL ..DSEV ;;; DECLARE A SIGNIFICANT EVENT
036426 004737 044026' JSR PC,..DSEV
11431 036432 60$:
11432 036432 123700 002630' CMPB .BRKCH,R0 ;;; NULL CHARACTER?
11433 036436 001006 BNE 70$ ;;; NO -- ALL OK
11434 036440 052737 000200 007172' BIS #EF.RQM,TTYTSK+A.EF ;;; START PARSER TASK
11435 036446 CALL ..DSEV ;;; DECLARE A SIGNIFICANT EVENT
036446 004737 044026' JSR PC,..DSEV
11436 036452 000750 BR TTINPB ;;; IGNORE CHARACTER
11437 ;
11438 036454 70$:
11439 036454 005737 002632' TST .TTP11 ;;; IS THIS PDP11 INPUT?
11440 036460 001072 BNE TTCTY ;;; YES -- GO DO ECHO ETC
11441 036462 032737 020000 001012' BIT #EF.PR2,.COMEF+2 ;;; IS THIS BOOT PROTOCOL?
11442 036470 001672 BEQ 20$ ;;; [4.2211] NO -- THEN JUST TREAT IT AS A NORMAL REQUEST
11443 036472 112637 001162' MOVB (SP)+,.BTSCH ;;; STORE CHARACTER FOR BOOT PROTOCOL
11444 036476 80$:
11445 036476 RETURN
036476 000207 RTS PC
11446
11447 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 217
TERMINAL DRIVER -- .DLINT (DL-11E DATASET INTERRUPT SERVICE)
11449 .SBTTL TERMINAL DRIVER -- .DLINT (DL-11E DATASET INTERRUPT SERVICE)
11450 ;+
11451 ; .DLINT -- DL-11E DATASET INTERRUPT SERVICE
11452 ;
11453 ; ENTER WITH:
11454 ;
11455 ; R0 -- CSR FOR THIS DEVICE
11456 ; R4 -- POINTS TO EXTERNAL PAGE FOR THIS DEVICE
11457 ; R5 -- POINTS TO DLS ENTRY FOR THIS DEVICE
11458 ;
11459 ;-
11460
11461 036500 .DLINT:: ;;; CALLED FROM "$TTINP"
11462 036500 032765 000100 000006 BIT #TT.RMT,STSW1(R5);;; REMOTE TERMINAL??
11463 036506 001452 BEQ 40$ ;;; NO -- NOISE - GO AWAY
11464 036510 032700 040000 BIT #DL.RNG,R0 ;;; YES -- DID IT RING??
11465 036514 001421 BEQ 20$ ;;; NO -- GO LOOK AT CARRIER
11466 036516 012714 000046 MOV #DL.DTR!DL.DEN!DL.RTS,(R4)
11467 ;;; SET UP TO WAIT FOR CARRIER
11468 036522 020537 002636' CMP R5,KLNPTR ;;; IS THIS THE KLINIK LINE??
11469 036526 001403 BEQ 10$ ;;; YES -- GO ON
11470 036530 CALL .TTRNG ;;; NO -- DISCONNECT AND SET CARRIER WAIT
036530 004737 040044' JSR PC,.TTRNG
11471 036534 000411 BR 20$ ;;; AND GO ON
11472 ;
11473 036536 10$:
11474 036536 105737 001226' TSTB .KLNSW+0 ;;; IS KLINIK ALREADY ACTIVE??
11475 036542 001006 BNE 20$ ;;; YES -- NOISE - GO ON
11476 036544 052737 001000 007172' BIS #EF.RKR,TTYTSK+A.EF ;;; NO -- REQUEST KLRING
11477 036552 CALL ..DSEV ;;; DECLARE A SIGNIFICANT EVENT
036552 004737 044026' JSR PC,..DSEV
11478 036556 000432 BR 50$ ;;; AND LET IT HANDLE CARRIER
11479 ;
11480 036560 20$:
11481 036560 032700 010000 BIT #DL.CAR,R0 ;;; CARRIER DETECT UP??
11482 036564 001416 BEQ 30$ ;;; NO -- GO LOOK AT DATA TERMINAL READY
11483 036566 032714 000004 BIT #DL.RTS,(R4) ;;; YES -- IS REQUEST TO SEND UP??
11484 036572 001424 BEQ 50$ ;;; NO -- JUST EXIT
11485 036574 042765 002004 000006 BIC #TT.CRW!TT.RIP,STSW1(R5)
11486 036602 052714 000100 BIS #DL.REN,(R4) ;;; ENABLE RCVR INTERRUPTS
11487 036606 020537 002636' CMP R5,KLNPTR ;;; IS THIS THE KLINIK LINE??
11488 036612 001410 BEQ 40$ ;;; YES -- GO ON
11489 036614 CALL .STTYD ;;; TELL -10 ABOUT DIALUP
036614 004737 040060' JSR PC,.STTYD
11490 036620 000405 BR 40$ ;;; AND GO AWAY
11491 ;
11492 036622 30$: ;;; HERE IF CARRIER IS OFF
11493 036622 032714 000002 BIT #DL.DTR,(R4) ;;; DATA TERMINAL READY LIT??
11494 036626 001406 BEQ 50$ ;;; NO -- EXIT
11495 036630 CALL .TTSCW ;;; YES -- WAIT FOR CARRIER
036630 004737 040050' JSR PC,.TTSCW
11496 036634 40$:
11497 036634 105714 TSTB (R4) ;;; RCVR DONE LIT??
11498 036636 100002 BPL 50$ ;;; [4.2211] NO -- EXIT
11499 036640 000137 036206' JMP TTINPA ;;; [4.2211] YES -- PROCESS DATA
11500 ;
11501 036644 50$:
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 217-1
TERMINAL DRIVER -- .DLINT (DL-11E DATASET INTERRUPT SERVICE)
11502 036644 RETURN ;;; TO CALLER
036644 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 218
TERMINAL DRIVER -- TTCTY (CTY SERVICE)
11504 .SBTTL TERMINAL DRIVER -- TTCTY (CTY SERVICE)
11505
11506 .ENABL LSB
11507 036646 TTCTY:
11508 036646 013705 002634' MOV CTYPTR,R5 ;;; RESET TO CTY AND
11509 036652 012703 002664' MOV #CTYSTS,R3 ;;; GET CTY BLOCK POINTER.
11510 036656 110016 MOVB R0,(SP) ;;; USE CHARACTER WITHOUT PARITY.
11511 036660 122716 000017 CMPB #'O-100,@SP ;;; CONTROL O?
11512 036664 001010 BNE 95$ ;;; IF NE NO
11513 036666 011346 MOV @R3,-(SP) ;;; XOR CTLO BIT
11514 036670 042716 177737 BIC #^C<CTLO>,@SP ;;; WITH STATUS WORD
11515 036674 052713 000040 BIS #CTLO,@R3
11516 036700 042613 BIC (SP)+,@R3
11517 036702 80$:
11518 ;
11519 ; CONTROLLER IS BUSY ON OUTPUT-IGNORE INPUT REQUEST
11520 ;
11521 036702 85$:
11522 036702 005726 TST (SP)+ ;;; REMOVE BYTE FROM STACK
11523 036704 90$:
11524 036704 RETURN ;;; EXIT INTERRUPT
036704 000207 RTS PC
11525 ;
11526 ; CONTROLLER IS BUSY ON INPUT OR OUTPUT
11527 ;
11528 036706 95$:
11529 036706 005713 TST @R3 ;;; BUSY ON INPUT?
11530 036710 100774 BMI 80$ ;;; IF MI NO
11531 ;
11532 ; PROCESS NEXT INPUT BYTE
11533 ;
11534 036712 100$:
11535 036712 122716 000177 CMPB #177,@SP ;;; RUBOUT?
11536 036716 001450 BEQ 115$ ;;; IF EQ YES
11537 036720 122716 000025 CMPB #25,@SP ;;; LINE DELETE?
11538 036724 001474 BEQ 125$ ;;; IF EQ YES
11539 036726 122716 000033 CMPB #C.HESC,@SP ;;; ESCAPE?
11540 036732 001506 BEQ 1$ ;;; IF EQ YES
11541 036734 122716 000032 CMPB #C.HEOF,@SP ;;; CONTROL Z?
11542 036740 001507 BEQ 11$ ;;; IF EQ YES
11543 036742 122716 000015 CMPB #C.HCRT,@SP ;;; CARRIAGE RETURN?
11544 036746 001524 BEQ 41$ ;;; IF EQ YES
11545 036750 122716 000003 CMPB #3,@SP ;;; ^C?
11546 036754 001510 BEQ 21$ ;;; YES
11547 036756 122716 000140 CMPB #140,@SP ;;; CHECK FOR LC
11548 036762 103005 BHIS 105$ ;;; NO
11549 036764 122716 000173 CMPB #173,@SP
11550 036770 103402 BLO 105$
11551 036772 042716 000040 BIC #40,@SP ;;; YES
11552 ;
11553 ; STORE BYTE IN INPUT BUFFER
11554 ;
11555 036776 105$:
11556 036776 111673 000006 MOVB @SP,@CURBF(R3) ;;; STORE BYTE IN BUFFER
11557 037002 005263 000006 INC CURBF(R3) ;;; INCREMENT BUFFER ADDRESS
11558 037006 105363 000004 DECB RMBYT(R3) ;;; ANY REMAINING SPACE IN BUFFER
11559 037012 001004 BNE 110$ ;;; IF NE YES
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 218-1
TERMINAL DRIVER -- TTCTY (CTY SERVICE)
11560 037014 005363 000006 DEC CURBF(R3) ;;; BACK UP TO END OF BUFFER
11561 037020 052713 000400 BIS #EOLS,@R3 ;;; TERMINATE ON BYTE COUNT
11562 037024 110$:
11563 037024 032713 000020 BIT #RUBP,@R3 ;;; RUBOUT IN PROGRESS?
11564 037030 001477 BEQ 61$ ;;; IF EQ NO
11565 037032 042713 000020 BIC #RUBP,@R3 ;;; CLEAR RUBOUT IN PROGRESS
11566 037036 000417 BR 120$
11567 ;
11568 ;
11569 ; RUBOUT
11570 ;
11571 037040 115$:
11572 037040 026363 000006 000002 CMP CURBF(R3),STRBF(R3) ;;; ANY BYTES TO RUBOUT?
11573 037046 001715 BEQ 80$ ;;; IF EQ NO
11574 037050 005363 000006 DEC CURBF(R3) ;;; BACK UP ONE BYTE
11575 037054 117316 000006 MOVB @CURBF(R3),@SP ;;; GET BYTE TO BE RUBBED OUT
11576 037060 105263 000004 INCB RMBYT(R3) ;;; INCREMENT REMAINING SPACE IN BUFFER
11577 037064 032713 000020 BIT #RUBP,@R3 ;;; RUBOUT ALREADY IN PROGRESS?
11578 037070 001057 BNE 61$ ;;; IF NE YES
11579 037072 052713 000020 BIS #RUBP,@R3 ;;; SET RUBOUT IN PROGRESS
11580 037076 120$:
11581 037076 000316 SWAB @SP ;;; SWAP BYTE TO HIGH BYTE
11582 037100 112716 000134 MOVB #'\,@SP ;;; INSERT BACKSLASH
11583 037104 011663 000014 MOV @SP,MBUFR(R3) ;;; INSERT TEXT IN MULTI-ECHO BUFFER
11584 037110 012716 000002 MOV #2,@SP ;;; SET LENGTH OF BUFFER
11585 037114 000456 BR 81$
11586 ;
11587 ;
11588 ; LINE DELETE
11589 ;
11590 037116 125$:
11591 037116 012716 000004 MOV #4,@SP ;;; SET LENGTH OF BUFFER
11592 037122 012746 032242' MOV #CTRLU,-(SP) ;;; SET ADDRESS OF MULTI-ECHO BUFFER
11593 037126 042713 000020 BIC #RUBP,@R3 ;;; CLEAR RUBOUT IN PROGRESS FLAG
11594 037132 013763 002724' 000004 MOV CNT,RMBYT(R3) ;;; RESET REMAINING BYTES IN BUFFER
11595 037140 016363 000002 000006 MOV STRBF(R3),CURBF(R3) ;;; RESET ADDRESS IN BUFFER
11596 037146 000444 BR 91$
11597 ;
11598 ;
11599 ; ESCAPE
11600 ;
11601 037150 1$:
11602 037150 111663 000005 MOVB @SP,FNBYT(R3) ;;; [TCO 4.1.1126] SET FINAL BYTE
11603 037154 105016 CLRB @SP ;;; [TCO 4.1.1126] SET TO ECHO ZERO BYTE
11604 037156 000422 BR 51$ ;;; SET END OF LINE SEEN
11605 ;
11606 ;
11607 ; CONTROL Z
11608 ;
11609 037160 11$:
11610 037160 105363 000005 DECB FNBYT(R3) ;;; SET CONTROL Z FLAG
11611 037164 012716 000004 MOV #4,@SP
11612 037170 012746 032246' MOV #CTRLZ,-(SP) ;;; SET ADDRESS OF MULTI-ECHO BUFFER
11613 037174 000406 BR 31$
11614 ;
11615 ;
11616 ; CONTROL C
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 218-2
TERMINAL DRIVER -- TTCTY (CTY SERVICE)
11617 ;
11618 037176 21$:
11619 037176 111663 000005 MOVB @SP,FNBYT(R3) ;;; SET IN LAST CHARACTER
11620 037202 012716 000004 MOV #4,@SP ;;; SET COUNT
11621 037206 012746 032236' MOV #CTRLC,-(SP) ;;; SET CNTRL C
11622 037212 31$:
11623 037212 052713 000400 BIS #EOLS,@R3 ;;; SET END OF LINE
11624 037216 000420 BR 91$ ;;; AND ECHO
11625 ;
11626 ;
11627 ; CARRIAGE RETURN /CNTRL Z
11628 ;
11629 037220 41$:
11630 037220 111663 000005 MOVB @SP,FNBYT(R3)
11631 037224 51$:
11632 037224 052713 000400 BIS #EOLS,@R3 ;;; SET END OF LINE SEEN
11633 037230 61$:
11634 037230 032713 074000 BIT #LFCT,@R3 ;;; ANY LINE FEEDS WAITING?
11635 037234 001002 BNE 71$ ;;; IF NE YES
11636 037236 000137 035004' JMP ECHOB ;;; ECHO BYTE
11637 ;
11638 037242 71$:
11639 037242 111663 000014 MOVB @SP,MBUFR(R3) ;;; SET FOR MULTI-ECHO OF ONE BYTE
11640 037246 012716 000001 MOV #1,@SP ;;; SET LENGTH OF BUFFER
11641 037252 81$:
11642 037252 010346 MOV R3,-(SP) ;;; CALCULATE ADDRESS OF MULTI-ECHO BUFFER
11643 037254 062716 000014 ADD #MBUFR,@SP
11644 037260 91$:
11645 037260 012663 000012 MOV (SP)+,MEBUF(R3) ;;; INSERT ADDRESS OF MULTI-ECHO BUFFER
11646 037264 112663 000010 MOVB (SP)+,MECNT(R3) ;;; INSERT LENGTH OF BUFFER
11647 037270 000137 034546' JMP OUTPT ;;; START OUTPUT
11648 ;
11649 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 219
TERMINAL DRIVER -- DHSAV (DH-11 REGISTER SAVE/RESTORE CO-ROUTI
11651 .SBTTL TERMINAL DRIVER -- DHSAV (DH-11 REGISTER SAVE/RESTORE CO-ROUTINE)
11652
11653 ;+
11654 ; DHSAV -- DH-11 TERMINAL MULTIPLEXER SAVE ROUTINE
11655 ; TTSAV -- DL-11 TERMINAL SAVE ROUTINE
11656 ;
11657 ; THIS ROUTINE SAVES R0 THRU R5 ON THE STACK AND RETURNS:
11658 ;
11659 ; R4 -- POINTS TO EXTERNAL PAGE FOR THIS DEVICE (UNIT)
11660 ; R5 -- POINTS TO THE DLS ENTRY FOR THIS DEVICE (UNIT)
11661 ; CC-Z SET -- DEVICE DOES NOT EXIST
11662 ;-
11663
11664 .ENABL LSB
11665
11666 037274 DHSAV:
11667 037274 010046 MOV R0,-(SP) ; SAVE REGISTERS
11668 037276 010146 MOV R1,-(SP)
11669 037300 010246 MOV R2,-(SP)
11670 037302 010446 MOV R4,-(SP)
11671 037304 010546 MOV R5,-(SP)
11672 037306 010346 MOV R3,-(SP) ;;; SET RETURN ADDRESS
11673 037310 013705 002646' MOV DHTMP,R5 ;;; RET SAVED PS WORD
11674 037314 042705 177760 BIC #177760,R5 ;;; CLEAR ALL BUT CONTROLLER NUMBER
11675 037320 000305 SWAB R5 ;;; CONVERT TO WORD INDEX
11676 037322 006205 ASR R5
11677 037324 062705 003046' ADD #DHTBL,R5 ;;; POINT TO THE BEGINNING OF DH-11 TABLE
11678 037330 000417 BR 20$ ;;; FINISH IN COMMON CODE
11679 ;
11680 ;
11681 ; DL-11 TERMINAL SAVE ROUTINE
11682 ;
11683 037332 TTSAV:
11684 037332 010046 MOV R0,-(SP) ; SAVE REGISTERS
11685 037334 010146 MOV R1,-(SP)
11686 037336 010246 MOV R2,-(SP)
11687 037340 010446 MOV R4,-(SP)
11688 037342 010546 MOV R5,-(SP)
11689 037344 010346 MOV R3,-(SP) ;;; SET RETURN ADDRESS
11690 037346 013705 002650' MOV DLTMP,R5 ;;; RETRIEVE SAVED PS WORD
11691 037352 042705 177760 BIC #177760,R5 ;;; CLEAR ALL BUT CONTROLLER (UNIT) NUMBER
11692 037356 006305 ASL R5 ;;; CONVERT TO WORD INDEX
11693 037360 006305 ASL R5
11694 037362 006305 ASL R5
11695 037364 062705 002776' ADD #TTTBL,R5 ;;; POINT TO THE BEGINNING OF THE DL-11 TABLE
11696 037370 20$:
11697 037370 016504 000002 MOV TTYEXP(R5),R4 ;;; SET UP EXTERNAL PAGE ADDRESS OF THIS DEVICE
11698 037374 CALL @(SP)+ ;;; CALL THE CALLER BACK
037374 004736 JSR PC,@(SP)+
11699 037376 012605 MOV (SP)+,R5 ;;; RESTORE REGISTERS
11700 037400 012604 MOV (SP)+,R4
11701 037402 012602 MOV (SP)+,R2
11702 037404 012601 MOV (SP)+,R1
11703 037406 012600 MOV (SP)+,R0
11704 037410 012603 MOV (SP)+,R3
11705 037412 000137 014632' JMP ..INTX ;;; EXIT FROM INTERRUPT
11706 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 219-1
TERMINAL DRIVER -- DHSAV (DH-11 REGISTER SAVE/RESTORE CO-ROUTI
11707
11708 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 220
TERMINAL DRIVER -- .STDHL (SET UP DH-11 LINE NUMBER IN CONTROL
11710 .SBTTL TERMINAL DRIVER -- .STDHL (SET UP DH-11 LINE NUMBER IN CONTROLLER)
11711
11712 ;+
11713 ; .STDHL -- SET UP DH-11 LINE NUMBER IN CONTROLLER
11714 ;
11715 ; INPUTS:
11716 ;
11717 ; R5 -- DLS BLOCK OFFSET FOR THIS LINE
11718 ;
11719 ; OUTPUTS:
11720 ;
11721 ; R4 -- ADDRESS OF DH-11 CSR
11722 ; CC-N CLEAR -- LINE NUMBER IS SET IN DH-11 CSR
11723 ; CC-N SET -- R5 POINTS TO A DL-11 BLOCK
11724 ; CC-Z SET -- LINE DOES NOT EXIST
11725 ;-
11726
11727 037416 .STDHL::
11728 037416 016504 000002 MOV TTYEXP(R5),R4 ;;; [5,1015] FIND I/O PAGE ADDRESS
11729 037422 001415 BEQ 20$ ;;; [5.1015] EXIT IF NON-EXISTENT
11730 037424 010546 MOV R5,-(SP) ;;; [5.1015] DLS POINTER TO STACK
11731 037426 162716 003046' SUB #DHTBL,(SP) ;;; [5.1015] FIND OFFSET INTO "DHTBL"
11732 037432 100410 BMI 10$ ;;; [5.1015] DONE WITH DL-11 AT THIS POINT
11733 037434 006216 ASR (SP) ;;; [5.1015] COMPUTE DH-11
11734 037436 006216 ASR (SP) ;;; [5.1015] LINE NUMBER
11735 037440 006216 ASR (SP) ;;; [5.1015] SO
11736 037442 042716 177760 BIC #^C17,(SP) ;;; [5.1015] FLUSH EXTRANEOUS TRASH
11737 037446 042714 001077 BIC #1077,(R4) ;;; [5.1015] CLEAR LINE NUMBER REGISTER
11738 037452 051614 BIS (SP),(R4) ;;; [5.1015] SET LINE NUMBER
11739 037454 10$:
11740 037454 005226 INC (SP)+ ;;; [5.1015] CLEAR STACK AND SET RETURN FLAG
11741 037456 20$:
11742 037456 RETURN ;;; [5.1015] TO CALLER
037456 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 221
TERMINAL DRIVER -- .DHSPR (RESET TO DEFAULT AUTO-BAUD SPEED)
11744 .SBTTL TERMINAL DRIVER -- .DHSPR (RESET TO DEFAULT AUTO-BAUD SPEED)
11745
11746 ;+
11747 ; .DHSPR -- RESET A DH-11 LINE TO DEFAULT AUTO-BAUD SPEED
11748 ;
11749 ; THIS SUBROUTINE WILL RESET A LINE TO ITS DEFAULT AUTO-BAUD SPEED
11750 ;
11751 ; INPUTS:
11752 ;
11753 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THIS DH-11 LINE
11754 ;
11755 ; OUTPUTS:
11756 ;
11757 ; LINE'S SPEED IS RESET TO 300 BAUD
11758 ; NO REGISTERS ALTERED
11759 ;-
11760
11761
11762 .ENABL LSB
11763
11764 037460 .DHSPR::
11765 037460 032765 000040 000006 BIT #TT.ABL,STSW1(R5) ;;; [5.1152] ABW LINE ?
11766 037466 001456 BEQ 40$ ;;; [5.1152] BRANCH IF NOT AUTO BAUD LINE
11767 037470 016546 000004 MOV STSW0(R5),-(SP) ;;; SAVE LINE SPEED WORD AS FLAG
11768 037474 010346 MOV R3,-(SP) ;;; SAVE R3
11769 037476 012703 016703 MOV #16703,R3 ;;; DEFAULT LINE SPEED TO R3 (300 BAUD)
11770 037502 CALL .DHSPD ;;; SET IT
037502 004737 037554' JSR PC,.DHSPD
11771 037506 012603 MOV (SP)+,R3 ;;; RESTORE R3
11772 037510 005726 TST (SP)+ ;;; HAS THE SETSPD TASK BEEN BLOCKED??
11773 037512 100405 BMI 10$ ;;; YES -- DON'T COUNT THIS LINE
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 222
TERMINAL DRIVER -- .DHSPF (FLAG AUTO-BAUD REPORT)
11775 .SBTTL TERMINAL DRIVER -- .DHSPF (FLAG AUTO-BAUD REPORT)
11776
11777 ;+
11778 ; .DHSPF -- FLAG LINE SPEED TO BE REPORTED TO THE HOST
11779 ;
11780 ; THIS SUBROUTINE WILL FLAG AN AUTO-BAUD LINE SPEED TO BE REPORTED
11781 ;
11782 ; INPUTS:
11783 ;
11784 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THIS DH-11 LINE
11785 ;
11786 ; OUTPUTS:
11787 ;
11788 ; THE LINE SPEED IS FLAGGED TO BE REPORTED TO THE HOST
11789 ; NO REGISTERS ALTERED
11790 ;-
11791
11792 037514 .DHSPF::
11793 037514 005237 002600' INC .ABCNT ;;; INCREMENT THE COUNT
11794 037520 052765 100000 000004 BIS #S0.ABR,STSW0(R5) ;;; [4.2284] FLAG THE LINE SPEED
11795 037526 10$:
11796 037526 005737 001012' TST .COMEF+2 ;;; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
11797 037532 100034 BPL 40$ ;;; [4.1.1105] NO -- GO ON
11798 037534 005737 001140' TST .DATE3 ;;; IS OUR DATE VALID ??
11799 037540 001431 BEQ 40$ ;;; NO, DON'T CALL SETSPD
11800 037542 052737 004000 007172' BIS #EF.RSS,TTYTSK+A.EF ;;; [4.2140] YES -- REQUEST THE TASK
11801 037550 000137 044026' JMP ..DSEV ;;; DECLARE A SIGNIFICANT EVENT AND RETURN
11802 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 223
TERMINAL DRIVER -- .DHSPD (SET LINE SPEED)
11804 .SBTTL TERMINAL DRIVER -- .DHSPD (SET LINE SPEED)
11805
11806 ;+
11807 ; .DHSPD -- SET LINE SPEED FOR A DH-11 LINE
11808 ;
11809 ; THIS SUBROUTINE WILL SET THE LINE SPEED FOR A LINE
11810 ;
11811 ; INPUTS:
11812 ;
11813 ; R3 -- LINE SPEED TO BE SET
11814 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THIS DH-11 LINE
11815 ;
11816 ; OUTPUTS:
11817 ;
11818 ; DH-11 LINE SPEED IS SET UP - DL-11 IS UNALTERED.
11819 ; IF INPUT FOR THIS LINE WAS FORCIBLY TURNED OFF, THE ACTUAL SETTING
11820 ; OF THE LINE SPEED IN THE HARDWARE IS DEFERRED UNTIL INPUT FOR THE
11821 ; LINE IS RE-ENABLED BY THE HOST.
11822 ; NO REGISTERS ALTERED
11823 ;-
11824
11825 037554 .DHSPD::
11826 037554 010446 MOV R4,-(SP) ;;; SAVE R4
11827 037556 010246 MOV R2,-(SP) ;;; [5.1015] SAVE R2 AS WELL
11828 037560 042703 140000 BIC #S0.MSK,R3 ;;; [5.1015] FLUSH STATUS BITS
11829 037564 CALL .TTSW2 ;;; [5.1015] FIND OUR "STSW2" ENTRY
037564 004737 042754' JSR PC,.TTSW2
11830 037570 CALL .STDHL ;;; SET THE DH-11 LINE NUMBER
037570 004737 037416' JSR PC,.STDHL
11831 037574 003411 BLE 30$ ;;; [5.1015] EXIT IF DL-11 OR NON-EXISTENT
11832 037576 005712 TST (R2) ;;; [4.1.1092] INPUT X'D OFF??
11833 037600 100402 BMI 20$ ;;; [4.1.1092] YES -- GO ON
11834 037602 010364 000004 MOV R3,4(R4) ;;; SET THE NEW LINE SPEED
11835 037606 20$:
11836 037606 042765 037777 000004 BIC #^C<S0.MSK>,STSW0(R5) ;;; [4.2284] CLEAR OLD LINE SPEED
11837 037614 050365 000004 BIS R3,STSW0(R5) ;;; [4.2284] MARK IT IN LINE TABLE TOO
11838 037620 30$:
11839 037620 012602 MOV (SP)+,R2 ;;; [5.1015] RESTORE R2
11840 037622 012604 MOV (SP)+,R4 ;;; AND R4
11841 037624 40$:
11842 037624 RETURN ;;; TO CALLER
037624 000207 RTS PC
11843
11844 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 224
TERMINAL DRIVER -- $DMINT (DM-11/BB MODEM CONTROL INTERRUPT)
11846 .SBTTL TERMINAL DRIVER -- $DMINT (DM-11/BB MODEM CONTROL INTERRUPT)
11847
11848 ;+
11849 ; **-$DMINT-DM-11/BB MODEM CONTROL MULTIPLEXER INTERRUPTS
11850 ;
11851 ; THIS ROUTINE SERVICES INTERRUPTS FROM THE DM-11/BB MODEM CONTROLS
11852 ; FOR THE FOLLOWING EVENTS:
11853 ;
11854 ; 1. DATA-SET RING
11855 ; 2. CARRIER DETECT TRANSITION
11856 ; 3. CARRIER DROP TRANSITION
11857 ;
11858 ; ON DATA SET RING, IF THE DM-11/BB'S ARE NOT INHIBITED, THE FOLLOWING
11859 ; IS DONE.
11860 ;
11861 ; DATA-TERMINAL READY, DATA ENABLE AND RING ENABLE ARE SET FOR THE LINE.
11862 ; THE LINE IS PUT INTO THE CARRIER-WAIT STATE.
11863 ;
11864 ; ON CARRIER-DETECT TRANSITION THE FOLLOWING IS DONE:
11865 ;
11866 ; THE LINE IS REMOVED FROM THE CARRIER-WAIT STATE.
11867 ; IF THE LINE IS AN AUTO-BAUD LINE, IT IS PUT INTO AUTO-BAUD WAIT, OTHERWISE
11868 ; A CONNECT MESSAGE IS TRANSMITTED TO THE HOST.
11869 ;
11870 ; ON CARRIER-DROP, THE LINE IS PUT INTO THE CARRIER-WAIT STATE AND IS
11871 ; TIMED-OUT BY THE TIME-OUT SERVICE IN ".DMTMO" (Q.V.)
11872 ;
11873 ; ANY NON-RING INTERRUPT INITIATED WITHOUT DATA-TERMINAL READY BEING
11874 ; SET WILL BE IGNORED.
11875 ;-
11876
11877 .ENABL LSB
11878
11879 037626 $DMINT:: ;;; [4.2055] REF LABEL
11880 037626 013737 177776 002644' MOV @#PS,DMTMP ;;; [4.2055] SAVE CONTROLLER NUMBER
11881 037634 CALL R3,TTSAV ;;; [4.2055] SAVE REGISTERS
037634 004337 037332' JSR R3,TTSAV
11882 037640 013703 002644' MOV DMTMP,R3 ;;; [4.2055] RETRIEVE SAVED PS WORD
11883 037644 042703 177760 BIC #177760,R3 ;;; [4.2055] CLEAR ALL BUT CONTROLLER NUMBER
11884 037650 006303 ASL R3 ;;; [4.2055] CONVERT TO WORD INDEX
11885 037652 006303 ASL R3 ;;; [4.2055] SO
11886 037654 016304 002734' MOV DMTBL(R3),R4 ;;; [4.2055] GET ADDRESS OF DM-11/BB CSR
11887 037660 012405 MOV (R4)+,R5 ;;; [4.2055] GET INTERRUPT STATUS
11888 037662 052714 000001 BIS #1,(R4) ;;; [4.2055] JUST SET RING ENABLE FOR NOW
11889 037666 032705 010000 BIT #10000,R5 ;;; [RCO 041581] SECONDARY RECIEVE ?
11890 037672 001026 BNE 10$ ;;; [RCO 041581] EXIT IF SO
11891 037674 010546 MOV R5,-(SP) ;;; [4.2055] COPY TO STACK
11892 037676 042705 177760 BIC #177760,R5 ;;; [4.2055] CLEAR ALL BUT UNIT NUMBER
11893 037702 006305 ASL R5 ;;; [4.2055] CONVERT UNIT NUMBER TO WORD INDEX
11894 037704 006305 ASL R5 ;;; [4.2055] THUS
11895 037706 006305 ASL R5 ;;; [4.2055] AND SO
11896 037710 066305 002736' ADD DMTBL+2(R3),R5 ;;; [4.2055] CALCULATE ADDRESS OF "DHTBL" ENTRY
11897 037714 011402 MOV @R4,R2 ;;; [4.2055] GET UNIT STATUS
11898 037716 005102 COM R2 ;;; [4.2055] INVERT UNIT STATUS
11899 037720 005726 TST (SP)+ ;;; [4.2055] IS THIS A RING INTERRUPT??
11900 037722 100015 BPL 20$ ;;; [4.2055] NO -- GO ON
11901 037724 032765 000100 000006 BIT #TT.RMT,STSW1(R5) ;;; [RCO 9380] REMOTE LINE ?
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 224-1
TERMINAL DRIVER -- $DMINT (DM-11/BB MODEM CONTROL INTERRUPT)
11902 037732 001406 BEQ 10$ ;;; [RCO 9380] EXIT IF NOT
11903 037734 005737 001012' TST .COMEF+2 ;;; [4.1.1105] YES -- IS PRIMARY PROTOCOL RUNNING??
11904 037740 100003 BPL 10$ ;;; [4.1.1105] NO -- IGNORE INTERRUPT
11905 037742 005737 002576' TST .INHDM ;;; [4.2055] YES -- ARE DM-11/BB'S INHIBITED??
11906 037746 001406 BEQ 30$ ;;; [4.2055] NO -- GO ON
11907 037750 10$:
11908 037750 042744 001200 BIC #1200,-(R4) ;;; [4.2055] YES -- REENABLE SCANNING
11909 037754 000440 BR 60$ ;;; [4.2055] AND EXIT
11910 ;
11911 ;
11912 ; HERE FOR A NON-RING INTERRUPT
11913 ;
11914 037756 20$:
11915 037756 032702 000004 BIT #4,R2 ;;; [4.2055] IS REQUEST TO SEND UP??
11916 037762 001372 BNE 10$ ;;; [4.2055] NO -- JUST REENABLE SCAN AND EXIT
11917 ;
11918 ; HERE FOR A RING INTERRUPT OR AN ALLOWABLE NON-RING INTERRUPT
11919 ;
11920 037764 30$:
11921 037764 052714 000007 BIS #7,(R4) ;;; [4.2055] SET RTS + DE + RE
11922 037770 042744 001200 BIC #1200,-(R4) ;;; [4.2055] REENABLE SCANNING
11923 037774 105702 TSTB R2 ;;; [4.2055] RING INTERRUPT?? [5.1131]TST=TSTB
11924 037776 100022 BPL .TTRNG ;;; [4.2055] YES -- GO HANDLE IT
11925 040000 032702 000140 BIT #140,R2 ;;; [4.2055] NO -- CARRIER AND CLEAR TO SEND SET?
11926 040004 001021 BNE .TTSCW ;;; [4.2055] IF .NE. NO (MUST BE CARRIER DROP)
11927 ;
11928 ; CARRIER ON TRANSITION
11929 ;
11930 040006 042765 002004 000006 BIC #TT.CRW!TT.RIP,STSW1(R5) ;;; [4.2055] CLEAR CARRIER WAIT
11931 040014 032765 040000 000004 BIT #S0.CON,STSW0(R5) ;;; [4.2309] WAS LINE ALREADY CONNECTED??
11932 040022 001015 BNE 60$ ;;; [4.2309] YES -- LEAVE IT ALONE
11933 040024 032765 000040 000006 BIT #TT.ABL,STSW1(R5) ;;; [4.2055] NO -- IS THIS AN AUTO-BAUD LINE??
11934 040032 001412 BEQ .STTYD ;;; [4.2055] NO -- REPORT CONNECTION AND EXIT
11935 040034 052765 000010 000006 BIS #TT.ABW,STSW1(R5) ;;; [4.2055] YES -- MARK AUTO-BAUD WAIT
11936 040042 000405 BR 60$ ;;; [4.2055] AND EXIT
11937 ;
11938 ;
11939 ; RING TRANSITION (DM-11/BB'S ENABLED)
11940 ;
11941 040044 .TTRNG:
11942 040044 CALL .STTYH ;;; [4.2055] TRANSMIT HANGUP
040044 004737 040074' JSR PC,.STTYH
11943 ;
11944 ; CARRIER DROP TRANSITION
11945 ;
11946 040050 .TTSCW:
11947 040050 052765 002004 000006 BIS #TT.CRW!TT.RIP,STSW1(R5) ;;; [4.2055] SET CARRIER WAIT
11948 040056 60$:
11949 040056 RETURN ;;; [4.2055] DISMISS AND RETURN
040056 000207 RTS PC
11950
11951 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 225
TERMINAL DRIVER -- .STTYD (DIALUP/HANGUP SERVICE)
11953 .SBTTL TERMINAL DRIVER -- .STTYD (DIALUP/HANGUP SERVICE)
11954
11955 ;+
11956 ; .STTYD -- DILAUP SERVICE
11957 ; .STTYH -- HANGUP SERVICE
11958 ;
11959 ; THESE SUBROUTINES WILL REPORT A DILAUP OR HANGUP TO THE HOST, AND
11960 ; SET OR CLEAR THE LINE CONNECTED BIT, "S0.CON", IN THE LINE'S STATUS BLOCK.
11961
11962 ;
11963 ; INPUTS:
11964 ;
11965 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
11966 ;
11967 ; OUTPUTS:
11968 ;
11969 ; R3,R1 -- ALTERED
11970 ;-
11971
11972 .ENABL LSB
11973
11974 040060 .STTYD::
11975 040060 052765 040000 000004 BIS #S0.CON,STSW0(R5) ;;; [4.2284] MARK LINE CONNECT
11976 040066 012701 000015 MOV #BC.TDU,R1 ;;; DIALUP FUNCTION
11977 040072 000407 BR 10$ ;;; DO COMMON CODE
11978 ;
11979 040074 .STTYH::
11980 040074 CALL .DHSPR ;;; [5.1152] RESET THE LINE SPEED IF ABW
040074 004737 037460' JSR PC,.DHSPR
11981 040100 042765 040000 000004 BIC #S0.CON,STSW0(R5) ;;; [4.2284] MARK LINE DISCONNECT
11982 040106 012701 000016 MOV #BC.THU,R1 ;;; HANGUP FUNCTION
11983 040112 10$:
11984 040112 010446 MOV R4,-(SP) ;;; SAVE R4
11985 040114 010504 MOV R5,R4 ;;; SET UP TO RETURN DIALUP OR HANGUP
11986 040116 162704 002776' SUB #TTTBL,R4 ;;; FIND UNIT NUMBER IN R4
11987 040122 006204 ASR R4 ;;; DIVIDE BY 8
11988 040124 006204 ASR R4 ;;;
11989 040126 006204 ASR R4 ;;; SO
11990 040130 012703 000004 MOV #D.CDLS,R3 ;;; DATA LINE SCANNER
11991 040134 CALL ..STFC ;;; START FUNCTION
040134 004737 045456' JSR PC,..STFC
11992 040140 012604 MOV (SP)+,R4 ;;; RESTORE R4
11993 040142 RETURN ;;; AND EXIT
040142 000207 RTS PC
11994
11995 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 226
TERMINAL DRIVER -- .DMHUP (DM-11/BB HANGUP)
11997 .SBTTL TERMINAL DRIVER -- .DMHUP (DM-11/BB HANGUP)
11998 ;+
11999 ; .DMHUP -- HANG UP A DM-11/BB LINE
12000 ;
12001 ; THIS SUBROUTINE WILL HANG UP A DM-11/BB UNIT
12002 ;
12003 ; INPUTS:
12004 ;
12005 ; R1 -- DM-11/BB UNIT NUMBER
12006 ; R4 -- POINTER TO DM-11/BB CSR
12007 ; R5 -- POINTER TO DLS TABLE ENTRY FOR THIS LINE
12008 ;
12009 ; OUTPUTS:
12010 ;
12011 ; NO REGISTERS ALTERED
12012 ;-
12013
12014 .ENABL LSB
12015
12016 040144 .DMHUP::
12017 040144 032765 000100 000006 BIT #TT.RMT,STSW1(R5) ;;; REMOTE TTY??
12018 040152 001417 BEQ 20$ ;;; NO -- FORGET IT
12019 040154 CALL .STPDM ;;; YES -- STOP THE SCAN
040154 004737 040174' JSR PC,.STPDM
12020 040160 050124 BIS R1,(R4)+ ;;; SELECT DESIRED UNIT
12021 040162 012714 000001 MOV #1,(R4) ;;; ENABLE RING INTERRUPT
12022 040166 052744 000140 BIS #140,-(R4) ;;; RESTART SCAN AND ENABLE INTERRUPTS
12023 040172 000443 BR DLHUPX ;;; RESET THE LINE STATE AND EXIT
12024 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 227
TERMINAL DRIVER -- .STPDM (STOP DM-11/BB SCAN)
12026 .SBTTL TERMINAL DRIVER -- .STPDM (STOP DM-11/BB SCAN)
12027
12028 ;+
12029 ; .STPDM -- STOP DM-11/BB SCAN
12030 ;
12031 ; THIS SUBROUTINE WILL DISABLE THE SCAN AND CLEAR THE UNIT SELECT BITS ON
12032 ; A DM-11/BB MODEM CONTROL UNIT.
12033 ;
12034 ; INPUTS:
12035 ;
12036 ; R4 -- POINTS TO DM-11/BB CSR
12037 ;
12038 ; OUTPUTS:
12039 ;
12040 ; SCAN IS STOPPED
12041 ; NO REGISTERS ALTERED
12042 ;-
12043
12044 040174 .STPDM::
12045 040174 042714 001040 BIC #1040,(R4) ;;; DISABLE SCAN
12046 040200 10$:
12047 040200 032714 000020 BIT #20,(R4) ;;; SCAN STOPPED??
12048 040204 001375 BNE 10$ ;;; NO -- WAIT FOR IT
12049 040206 042714 001017 BIC #1017,(R4) ;;; YES -- CLEAR CURRENT UNIT
12050 040212 20$:
12051 040212 RETURN ;;; TO CALLER
040212 000207 RTS PC
12052
12053 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 228
TERMINAL DRIVER -- .DLHUP (DL-11E HANGUP)
12055 .SBTTL TERMINAL DRIVER -- .DLHUP (DL-11E HANGUP)
12056 ;+
12057 ; .DLHUP -- HANG UP A DL-11E LINE.
12058 ;
12059 ; THIS ROUTINE SERVICES A DL-11E HANGUP REQUEST.
12060 ; IF THE KLINIK LINE IS ACTIVE, THE KLINIK DISCONNECT TASK, KLDISC, IS
12061 ; REQUESTED. OTHERWISE, THE LINE IS HUNG UP HERE.
12062 ;
12063 ; INPUT ARGUMENTS:
12064 ;
12065 ; R5 POINTS TO THE DLS TABLE ENTRY FOR THIS LINE
12066 ;
12067 ; OUTPUT ARGUMENTS:
12068 ;
12069 ; R4 -- POINTER TO DL-11E CSR
12070 ;-
12071
12072 .ENABL LSB
12073
12074 040214 .DLHUP::
12075 040214 032765 000100 000006 BIT #TT.RMT,STSW1(R5) ;;; REMOTE LINE??
12076 040222 001420 BEQ 10$ ;;; NO -- FORGET IT
12077 040224 016504 000002 MOV TTYEXP(R5),R4 ;;; YES -- SAVE I/O PAGE ADDRESS
12078 040230 023705 002636' CMP KLNPTR,R5 ;;; IS THIS THE KLINIK LINE??
12079 040234 001014 BNE 20$ ;;; NO -- GO ON
12080 040236 105737 001226' TSTB .KLNSW+0 ;;; YES -- IS IT ACTIVE??
12081 040242 001411 BEQ 20$ ;;; INACTIVE -- JUST HANG IT UP
12082 040244 112737 000002 001227' MOVB #2,.KLNSW+1 ;;; FLAG THE DISCONNECT
12083 040252 052737 002000 007172' BIS #EF.RKH,TTYTSK+A.EF ;;; REQUEST KLDISC
12084 040260 000137 044026' JMP ..DSEV ;;; DECLARE A SIGNIFICANT EVENT AND EXIT
12085 ;
12086 040264 10$:
12087 040264 RETURN ;;; AND GO AWAY
040264 000207 RTS PC
12088 040266 20$:
12089 040266 005764 000002 TST 2(R4) ;;; CLEAR INPUT FLAGS
12090 040272 012714 000140 MOV #DL.DEN!DL.REN,(R4) ;;; HANG THE LINE UP
12091 040276 105065 000004 CLRB STSW0+0(R5) ;;; [4.2284] ENABLE INPUT SIDE IF IT WASN'T
12092 040302 DLHUPX:
12093 040302 005737 001012' TST .COMEF+2 ;;; [4.1.1105] PRIMARY PROTOCOL RUNNING?
12094 040306 100011 BPL 30$ ;;; [4.1.1105] NO -- WAIT FOR IT
12095 040310 042765 002414 000006 BIC #TT.CRW!TT.NSA!TT.ABW!TT.RIP,STSW1(R5) ;;; YES -- CLEAR CARRIER WAIT
12096 040316 010346 MOV R3,-(SP) ;;; SAVE REGISTERS
12097 040320 010146 MOV R1,-(SP)
12098 040322 CALL .STTYH ;;; TELL THE KL ABOUT HANGUP
040322 004737 040074' JSR PC,.STTYH
12099 040326 012601 MOV (SP)+,R1 ;;; RESTORE
12100 040330 012603 MOV (SP)+,R3
12101 040332 30$:
12102 040332 000137 042034' JMP .TTRST ;;; [4.2205] RESET THE LINE STATE AND EXIT
12103 ;
12104
12105 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 229
TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)
12107 .SBTTL TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)
12108
12109 ;+
12110 ; .DLTMO -- DL11 TIMEOUT SERVICE
12111 ;
12112 ; THIS ROUTINE INSURES THAT THE CTY IS RUNNING AND TIMES OUT THE
12113 ; DL-11E LINES WHEN CARRIER IS LOST. THIS ROUTINE WILL ALSO
12114 ; ERROR LOG ANY DL-11 WHICH LOSES AN INTERRUPT ENABLE.
12115 ;
12116 ; INPUTS:
12117 ;
12118 ; NONE
12119 ;
12120 ; OUTPUTS:
12121 ;
12122 ; NO REGISTERS PRESERVED
12123 ;
12124 ; NOTE:
12125 ; THIS ROUTINE MUST BE CALLED AT BR5 OR HIGHER
12126 ;
12127 ; NOTE:
12128 ; NXM VECTOR IS ALTERED DURING POWER FAIL RECOVERY
12129 ;
12130 ; NOTE:
12131 ; ALL DL-11E'S ARE ASSUMED TO BE REMOTE (DATASET) LINES
12132 ;-
12133
12134 040336 .DLTMO::
12135 040336 012705 002776' MOV #DLTBL,R5 ;;; GET LOCAL DL-11W POINTER
12136 040342 016504 000002 MOV TTYEXP(R5),R4 ;;; AND EXTERNAL PAGE POINTER
12137 040346 001410 BEQ 20$ ;;; IF NO ONE HAS THE LINE
12138 040350 CALL CKDLEN ;;; [5.1007] CHECK ENABLES AND ERRORS
040350 004737 040512' JSR PC,CKDLEN
12139 040354 10$:
12140 040354 005737 001030' TST .PFIOW ;;; IS THIS A POWER FAIL START??
12141 040360 001403 BEQ 20$ ;;; NO -- GO ON
12142 040362 012737 040502' 000004 MOV #100$,@#4 ;;; YES -- SET NXM TRAP FOR DEVICE CHECKS
12143 040370 20$:
12144 040370 012705 003006' MOV #DLETBL,R5 ;;; GET DL-11E TABLE POINTER
12145 040374 012700 000004 MOV #DLECNT,R0 ;;; COUNT OF DL-11E'S TO R0
12146 040400 30$:
12147 040400 016504 000002 MOV TTYEXP(R5),R4 ;;; EXTERNAL PAGE POINTER TO R4
12148 040404 001432 BEQ 80$ ;;; TRY NEXT IF THIS ONE ISN'T THERE
12149 040406 005714 TST (R4) ;;; [5.1007] DOES THE DEVICE EXIST??
12150 040410 CALL CKDLEN ;;; [5.1007] CHECK ENABLES AND ERRORS
040410 004737 040512' JSR PC,CKDLEN
12151 ;
12152 ; DL-11E CARRIER MAINTENANCE
12153 ;
12154 040414 032714 010000 BIT #DL.CAR,(R4) ;;; YES -- IS CARRIER DETECT UP??
12155 040420 001406 BEQ 60$ ;;; [4.2055] NO -- GO ON[5.1056] BR TO 60 NOT 50
12156 040422 032714 000004 BIT #DL.RTS,(R4) ;;; [4.2055] YES -- IS REQUEST TO SEND UP??
12157 040426 001403 BEQ 60$ ;;; [4.2055] NO -- GO ON
12158 040430 052714 000006 BIS #DL.DTR!DL.RTS,(R4) ;;; YES -- ENABLE THIS DL-11E LINE
12159 040434 000416 BR 80$ ;;; AND TRY THE NEXT ONE
12160 ;
12161 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 229-1
TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)
12162 ; FIVE INSTRUCTIONS PLUS LABEL 50$ WERE REMOVED WITH TCO 5.1056.
12163 ;
12164 ;
12165 ; DL-11E CARRIER TIMEOUT
12166 ;
12167 040436 60$:
12168 040436 032765 000004 000006 BIT #TT.CRW,STSW1(R5) ;;; WAITING FOR CARRIER??
12169 040444 001412 BEQ 80$ ;;; NO -- GO ON
12170 040446 032765 002000 000006 BIT #TT.RIP,STSW1(R5) ;;; YES -- IS THIS THE FIRST TIME??
12171 040454 001404 BEQ 70$ ;;; NO -- GO HANG THE LINE UP
12172 040456 042765 002000 000006 BIC #TT.RIP,STSW1(R5) ;;; YES -- SET TIMEOUT REQUEST
12173 040464 000402 BR 80$ ;;; AND TRY THE NEXT LINE
12174 ;
12175 040466 70$:
12176 040466 CALL .DLHUP ;;; HANG UP THE LINE
040466 004737 040214' JSR PC,.DLHUP
12177 040472 80$:
12178 040472 062705 000010 ADD #^D8,R5 ;;; POINT TO THE NEXT DLS ENTRY
12179 040476 077040 SOB R0,30$ ;;; DO THE NEXT LINE
12180 040500 90$:
12181 040500 RETURN
040500 000207 RTS PC
12182 ;
12183 ; INITIALIZATION NXD PROCESSOR
12184 ;
12185 040502 100$: ;;; HERE ON NXM INTERRUPT
12186 040502 032626 BIT (SP)+,(SP)+ ;;; CLEAR THE INTERRUPT
12187 040504 005065 000002 CLR TTYEXP(R5) ;;; SET NON-EXISTENT DEVICE
12188 040510 000770 BR 80$ ;;; AND TRY FOR NEXT LINE
12189 ;
12190 ;
12191 ; LOCAL SUBROUTINE TO CHECK INTERRUPT ENABLES AND LOG ERRORS
12192 ;
12193 040512 CKDLEN:
12194 040512 005737 001030' TST .PFIOW ;;; [4.2309] IS THIS A POWER-FAIL RESTART??
12195 040516 001405 BEQ 10$ ;;; [4.2309] NO -- GO ON
12196 040520 105065 000004 CLRB STSW0(R5) ;;; [4.2309] YES -- ENABLE INPUT
12197 040524 CALL .TTRST ;;; [4.2309] RESET THIS LINE
040524 004737 042034' JSR PC,.TTRST
12198 040530 000430 BR 50$ ;;; [5.1007] AND ENABLE THE LINE
12199 ;
12200 ;
12201 ; CHECK INPUT INTERRUPT ENABLE
12202 ;
12203 040532 10$:
12204 040532 105765 000004 TSTB STSW0(R5) ;;; [5.1007] INPUT ENABLED ON THIS LINE??
12205 040536 001003 BNE 20$ ;;; [5.1007] NO -- GO ON
12206 040540 032714 000100 BIT #DL.REN,(R4) ;;; [5.1007] YES -- INPUT INTERRUPT ENABLED??
12207 040544 001415 BEQ 40$ ;;; [5.1007] NO -- ERROR LOG IT
12208 ;
12209 ; CHECK OUTPUT INTERRUPT ENABLE
12210 ;
12211 040546 20$:
12212 040546 032764 000100 000004 BIT #DL.XEN,4(R4) ;;; [5.1007] YES -- OUTPUT INTERRUPT ENABLED??
12213 040554 001003 BNE 30$ ;;; [5.1007] YES -- GO ON
12214 040556 105064 000006 CLRB 6(R4) ;;; [5.1007] NO -- RECOVER ERROR
12215 040562 000406 BR 40$ ;;; [5.1007] AND LOG IT
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 229-2
TERMINAL DRIVER -- .DLTMO (DL-11E MODEM CONTROL TIMEOUT)
12216 ;
12217 ;
12218 ; CHECK DATASET INTERRUPT ENABLE
12219 ;
12220 040564 30$:
12221 040564 022705 002776' CMP #TTTBL,R5 ;;; [5.1007] IS THIS THE CTY??
12222 040570 001410 BEQ 50$ ;;; [5.1007] YES -- GO ON
12223 040572 032714 000040 BIT #DL.DEN,(R4) ;;; [5.1007] NO -- DATASET INTERRUPT ENABLED??
12224 040576 001005 BNE 50$ ;;; [5.1007] YES -- ENABLE INTERRUPTS AND EXIT
12225 040600 40$:
12226 040600 016437 000004 002660' MOV 4(R4),.TTELB ;;; [5.1007] NO -- SET ALTERNATE STATUS
12227 040606 CALL DHERLG ;;; [5.1007] LOG THE ERROR
040606 004737 041106' JSR PC,DHERLG
12228 ;
12229 ; ENABLE INTERRUPTS FOR THIS LINE
12230 ;
12231 040612 50$:
12232 040612 105765 000004 TSTB STSW0(R5) ;;; [5.1007] INPUT ALLOWED ON THIS LINE??
12233 040616 001002 BNE 60$ ;;; [5.1007] NO -- GO ON
12234 040620 052714 000100 BIS #DL.REN,(R4) ;;; [4.2309] YES -- ENABLE INPUT INTERRUPTS
12235 040624 60$:
12236 040624 052764 000100 000004 BIS #DL.XEN,4(R4) ;;; [5.1007] ENABLE OUTPUT INTERRUPTS
12237 040632 022705 002776' CMP #TTTBL,R5 ;;; [5.1007] IS THIS THE CTY??
12238 040636 001402 BEQ 70$ ;;; [5.1007] YES -- EXIT
12239 040640 052714 000040 BIS #DL.DEN,(R4) ;;; [5.1007] NO -- ENABLE DATASET INTERRUPTS
12240 040644 70$:
12241 040644 RETURN
040644 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 230
TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)
12243 .SBTTL TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)
12244
12245 ;+
12246 ; .DHTMO -- DH-11 CONTROLLER TIMEOUT
12247 ;
12248 ; THIS SUBROUTINE IS CALLED FROM THE POWER-FAIL RESTART CODE, AND EVERY 10
12249 ; SECONDS FROM THE TERMINAL SERVICE DISPATCH. THIS SUBROUTINE PERFORMS THE
12250 ; FOLLWING FUNCTIONS:
12251 ;
12252 ; 1. DH-11 CONTROLLER INITIALIZATION
12253 ; 2. DH-11 STATUS MAINTENANCE
12254 ; 3. DH-11 INPUT RESTART
12255 ; 4. DH-11 ERROR LOGGING
12256 ;
12257 ; INPUTS:
12258 ;
12259 ; NONE
12260 ;
12261 ; OUTPUTS:
12262 ;
12263 ; ALL DH-11 CONTROLLERS ARE SCANNED FOR INTERRUPT ENABLE OR NXM. IF THE
12264 ; INTERRUPT ENABLE IS NOT PRESENT OR THE DH-11 CONTROLLER HAS ENCOUNTERED
12265 ; AN NXM, THE CONTROLLER IS (RE)INITIALIZED. IF THIS IS A POWER-FAIL RESTART
12266 ; THE LINE STATUS IS RESET AND THE OUTPUT QUEUES FOR ALL LINES ON THE CONTROLLER
12267 ; ARE DEALLOCATED, OTHERWISE THESE CONDITIONS WILL BE LOGGED AS AN ERROR.
12268 ; IF THE DH-11 LINE HAS AN INPUT RESTART PENDING, THE LINE SPEED IS SET UP SO
12269 ; NORMAL INPUT MAY PROCEED.
12270 ;
12271 ; ALL DM-11/BB CONTROLLERS ARE SCANNED FOR INTERRUPT ENABLE AND CARRIER
12272 ; MAINTENANCE. IF A CARRIER TIMEOUT HAS OCCURRED, THE UNIT IS HUNG UP AND,
12273 ; IF THE LINE IS AN AUTO-BAUD LINE, IS SPEED IS RESET TO DEFAULT. IF A
12274 ; DM-11/BB HAS LOST THE INTERRUPT ENABLE, IT WILL BE ERROR LOGGED.
12275 ;
12276 ; NO REGISTERS ARE PRESERVED
12277 ;
12278 ; NOTE:
12279 ; THIS ROUTINE MUST BE CALLED AT BR5 OR HIGHER
12280 ;
12281 ; NOTE:
12282 ; THE NXM VECTOR IS ALTERED ON POWER-FAIL RESTART. IT IS ASSUMED THAT
12283 ; THIS VECTOR WILL BE RESET BY THE CALLING ROUTINE.
12284 ;
12285 ; NOTE:
12286 ; THIS ROUTINE WILL EXIT THROUGH THE DM-11/BB TIMEOUT ROUTINE, BELOW
12287 ;-
12288
12289 .ENABL LSB
12290
12291 040646 .DHTMO::
12292 040646 012705 003046' MOV #DHTBL,R5 ;;; [4.2205] SET UP DH-11 TABLE POINTER
12293 040652 005737 001030' TST .PFIOW ;;; [4.2205] POWER-FAIL RESTART??
12294 040656 001403 BEQ 10$ ;;; [4.2205] NO -- GO ON
12295 040660 012737 041066' 000004 MOV #DMTNXM,@#4 ;;; [4.2205] YES -- HANDLE OUR OWN TRAPS
12296 ;
12297 ; INITIALIZE FOR CURRENT DH-11 CONTROLLER
12298 ;
12299 040666 10$:
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 230-1
TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)
12300 040666 005002 CLR R2 ;;; [4.2205] INIT UNIT COUNTER
12301 040670 005046 CLR -(SP) ;;; [4.2205] INIT RESET FLAG ON STACK
12302 040672 012701 000020 MOV #^D16,R1 ;;; [4.2205] INIT ITERATION COUNTER
12303 ;
12304 ; INITIALIZE FOR CURRENT DH-11 LINE
12305 ;
12306 ; REGISTER SUMMARY:
12307 ;
12308 ; R1 -- ITERATION COUNTER
12309 ; R2 -- UNIT COUNTER
12310 ; R3 -- LINE SPEED WORD
12311 ; R4 -- I/O PAGE POINTER
12312 ; R5 -- POINTER TO DH-11 TABLE
12313 ; (SP) -- CONTROLLER RESET FLAG
12314 ; MUST BE FLUSHED ON EXIT
12315 ;
12316 ; NXM AND INTERRUPT ENABLE CHECKS
12317 ;
12318 040676 15$:
12319 040676 016504 000002 MOV TTYEXP(R5),R4 ;;; [4.2205] GET EXTERNAL PAGE POINTER FOR THIS DH-11
12320 040702 001454 BEQ 50$ ;;; [5.1004] MAKE DONE CHECKS IF .EQ. 0
12321 040704 042714 001077 BIC #1077,(R4) ;;; [4.2205] CLEAR OUT PREVIOUS LINE NUMBER
12322 040710 050214 BIS R2,(R4) ;;; [4.2205] AND SET THE CURRENT LINE NUMBER
12323 040712 005716 TST (SP) ;;; [4.2205] HAVE WE RESET THIS DH-11??
12324 040714 001015 BNE 30$ ;;; [4.2205] YES -- CONTINUE SETTING LINES UP
12325 040716 032714 002000 BIT #2000,(R4) ;;; [4.2205] NO -- DID IT GET AN NXM??
12326 040722 001003 BNE 20$ ;;; [4.2205] YES -- HANDLE AS A TIMEOUT
12327 040724 032714 000100 BIT #100,(R4) ;;; [4.2205] NO -- ARE INTERRUPTS ENABLED??
12328 040730 001015 BNE 35$ ;;; [4.2205] YES -- CHECK FOR LINE RESTART
12329 040732 20$:
12330 040732 CALL DHERLG ;;; [5.1007] LOG THE ERROR
040732 004737 041106' JSR PC,DHERLG
12331 ;
12332 ; HERE TO RESET AND INITIALIZE A DH-11 CONTROLLER
12333 ;
12334 040736 25$:
12335 040736 012714 004000 MOV #4000,(R4) ;;; [4.2205] MASTER CLEAR THE DH-11
12336 040742 005064 000016 CLR 16(R4) ;;; [4.2205] INIT THE SILO ALARM TO ZERO
12337 040746 005316 DEC (SP) ;;; [4.2205] INDICATE THAT WE HAVE RESET THIS DH-11
12338 ;
12339 ; HERE TO RESET AND INITIALIZE A DH-11 LINE
12340 ;
12341 040750 30$:
12342 040750 005737 001030' TST .PFIOW ;;; [4.2205] IS THIS A POWER-FAIL RESTART??
12343 040754 001407 BEQ 40$ ;;; [4.2205] NO -- GO ON
12344 040756 CALL .TTRST ;;; [4.2205] YES -- RESET THIS LINE
040756 004737 042034' JSR PC,.TTRST
12345 040762 000404 BR 40$ ;;; [4.2205] AND SET UP THE LINE SPEED
12346 ;
12347 ;
12348 ; HERE TO CHECK FOR LINE RESTART
12349 ;
12350 040764 35$:
12351 040764 032765 020000 000006 BIT #TT.RSI,STSW1(R5) ;;; [4.2205] DOES THIS LINE NEED RESTARTING??
12352 040772 001420 BEQ 50$ ;;; [4.2205] NO -- GO ON
12353 040774 40$:
12354 040774 010246 MOV R2,-(SP) ;;; [5.1015] YES -- SAVE R2
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 230-2
TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)
12355 040776 CALL .TTSW2 ;;; [5.1015] FIND OUR "STSW2" ENTRY
040776 004737 042754' JSR PC,.TTSW2
12356 041002 032712 140000 BIT #S2.DDN!S2.DIP,(R2) ;;; [5.1015] IS THE LINE (BEING) TURNED OFF??
12357 041006 001011 BNE 45$ ;;; [5.1015] YES -- LEAVE IT ALONE
12358 041010 016503 000004 MOV STSW0(R5),R3 ;;; [4.2205] NO -- GET THE LINE SPEED
12359 041014 042703 140000 BIC #S0.MSK,R3 ;;; [4.2284] GET RID OF THE AUTO-BAUD FLAG
12360 041020 010364 000004 MOV R3,4(R4) ;;; [4.2205] SET THE LINE SPEED IN THE DH-11
12361 041024 042765 020000 000006 BIC #TT.RSI,STSW1(R5) ;;; [4.2205] AND RESET THE RESTART FLAG
12362 041032 45$:
12363 041032 012602 MOV (SP)+,R2 ;;; [5.1015] RESTORE R2
12364 ;
12365 ; SET UP FOR NEXT LINE IN THIS DH-11
12366 ;
12367 041034 50$:
12368 041034 005202 INC R2 ;;; [4.2205] NEXT UNIT
12369 041036 062705 000010 ADD #^D8,R5 ;;; [4.2205] NEXT DH-11 LINE IN DLS TABLE
12370 041042 005301 DEC R1 ;;; [4.2205] COUNT THIS LINE
12371 041044 001314 BNE 15$ ;;; [4.2205] ITERATE THROUGH THIS DH-11/DM-11 PAIR
12372 041046 005726 TST (SP)+ ;;; [4.2205] DONE -- FLUSH AND TEST CONTROLLER RESET FLAG
12373 041050 001402 BEQ 55$ ;;; [4.2205] GO ON IF DH-11 WASN'T RESET
12374 041052 012714 030100 MOV #30100,(R4) ;;; [4.2205] WAS RESET -- ENABLE IT
12375 ;
12376 ; SET UP FOR NEXT DH-11 IN SYSTEM
12377 ;
12378 041056 55$:
12379 041056 022705 005046' CMP #TTYEND,R5 ;;; [5.1005] ARE WE ALL DONE??
12380 041062 101301 BHI 10$ ;;; [4.2205] NO -- START OVER
12381 041064 RETURN ;;; [5.1004] YES -- RETURN TO CALLER
041064 000207 RTS PC
12382 ;
12383 ; HERE ON TRAP-AT-4 DURING INITIALIZATION
12384 ;
12385 ; R5 -- POINTS TO FIRST INVALID ENTRY IN DH-11 CONTROLLER TABLE
12386 ;
12387 ; STACK SUMMARY:
12388 ;
12389 ; 0(SP) -- TRAP PC
12390 ; 2(SP) -- TRAP PSW
12391 ; 4(SP) -- INITIALIZATION FLAG FROM .DHTMO, ABOVE
12392
12393 041066 DMTNXM:
12394 041066 005065 000002 CLR TTYEXP(R5) ;;; [5.1004] INDICATE THIS LINE DOES NOT EXIST
12395 041072 062705 000010 ADD #^D8,R5 ;;; [5.1004] POINT TO NEXT LINE ON CONTROLLER
12396 041076 077105 SOB R1,DMTNXM ;;; [5.1004] LOOP THRU ALL LINES
12397 041100 032626 BIT (SP)+,(SP)+ ;;; [4.2205] FLUSH TRAP PS/PC
12398 041102 005726 TST (SP)+ ;;; [4.2205] AND INITIALIZATION FLAG
12399 041104 000764 BR 55$ ;;; [5.1004] TRY THE NEXT CONTROLLER
12400 ;
12401
12402 .DSABL LSB
12403
12404 ;
12405 ; HERE TO LOG A "LOST-INTERRUPT-ENABLE" ERROR
12406 ;
12407
12408 041106 DHERLG:
12409 041106 005737 001030' TST .PFIOW ;;; [5.1007] IS THIS A POWER-FAIL RESTART??
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 230-3
TERMINAL DRIVER -- .DHTMO (DH-11 CONTROLLER TIMEOUT)
12410 041112 001004 BNE 10$ ;;; [5.1007] YES -- GO ON
12411 041114 012703 002100 MOV #DV.LOG!DV.LIN,R3 ;;; [5.1007] YES -- SET STANDARD STATUS
12412 041120 CALL .TTERL ;;; [5.1007] LOG THE ERROR
041120 004737 041426' JSR PC,.TTERL
12413 041124 10$:
12414 041124 RETURN ;;; [5.1007] TO CALLER
041124 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 231
TERMINAL DRIVER -- .DMTMO (DM-11/BB MODEM CONTROL TIMEOUT)
12416 .SBTTL TERMINAL DRIVER -- .DMTMO (DM-11/BB MODEM CONTROL TIMEOUT)
12417
12418 ;+
12419 ; .DMTMO -- DM-11/BB CARRIER WAIT TIMEOUT
12420 ;
12421 ; THIS SUBROUTINE CHECKS THE CARRIER MAINTENANCE FOR THE DM-11/BB LINES.
12422 ; THIS SUBROUTINE ALSO ERROR LOGS DM-11/BB LINES WHICH LOSE INTERRUPT ENABLE.
12423 ;
12424 ; INPUTS:
12425 ;
12426 ; NONE
12427 ;
12428 ; OUTPUTS:
12429 ;
12430 ; NO REGISTERS PRESERVED
12431 ;
12432 ; REGISTER SUMMARY:
12433 ;
12434 ; R0 -- DM-11/BB TABLE POINTER
12435 ; R1 -- UNIT NUMBER
12436 ; R2 -- POINTER TO DM-11/BB LSR
12437 ; R4 -- POINTER TO DM-11/BB CSR
12438 ; R5 -- POINTER TO DLS TABLE ENTRY FOR THIS LINE
12439 ;-
12440
12441 041126 .DMTMO::
12442 041126 012700 002734' MOV #DMTBL,R0 ;;; [4.2206] INIT DM-11/BB TABLE POINTER
12443 041132 005737 001030' TST .PFIOW ;;; [4.1.1091] IS THIS A POWERFAIL RESTART??
12444 041136 001403 BEQ 10$ ;;; [4.1.1091] NO -- GO ON
12445 041140 012737 041350' 000004 MOV #90$,@#4 ;;; [4.1.1091] YES -- SET UP THE TRAP VECTOR
12446 041146 10$:
12447 041146 012004 MOV (R0)+,R4 ;;; [4.2206] POINT TO DM-11/BB CSR
12448 041150 001005 BNE 15$ ;;; [4.1.1091] GO ON IF IT EXISTS
12449 041152 022700 002776' CMP #DMTBE,R0 ;;; [4.1.1091] HAVE WE DONE THEM ALL??
12450 041156 001473 BEQ 80$ ;;; [4.1.1091] YES -- EXIT
12451 041160 005720 TST (R0)+ ;;; [4.1.1091] NO -- FIX UP THE POINTER
12452 041162 000771 BR 10$ ;;; [4.1.1091] AND TRY FOR THE NEXT DM-11/BB
12453 ;
12454 041164 15$:
12455 041164 012005 MOV (R0)+,R5 ;;; [4.2206] POINT TO DHTBL ENTRY
12456 041166 005001 CLR R1 ;;; [4.2206] INIT UNIT NUMBER
12457 041170 20$:
12458 041170 005765 000002 TST TTYEXP(R5) ;;; [4.2206] THIS DH-11 EXIST??
12459 041174 001466 BEQ 100$ ;;; [4.1.1091] NO -- MARK DM-11/BB NON-EXISTENT AS WELL
12460 041176 005737 001030' TST .PFIOW ;;; [4.1.1091] POWERFAIL RESTART??
12461 041202 001403 BEQ 25$ ;;; [4.1.1091] NO -- GO ON
12462 041204 012714 000140 MOV #140,(R4) ;;; [4.1.1091] YES -- INIT THE CONTROLLER
12463 041210 000756 BR 10$ ;;; [4.1.1091] AND CONTINUE
12464 ;
12465 041212 25$:
12466 041212 032765 000004 000006 BIT #TT.CRW,STSW1(R5) ;;; [4.2206] YES -- WAITING FOR CARRIER??
12467 041220 001414 BEQ 40$ ;;; [4.2206] NO -- GO ON
12468 041222 032765 002000 000006 BIT #TT.RIP,STSW1(R5) ;;; [4.2206] YES -- TIMING OUT??
12469 041230 001005 BNE 30$ ;;; [4.2206] NO -- GO ON
12470 041232 CALL .DMHUP ;;; [4.2206] HANG UP THE LINE
041232 004737 040144' JSR PC,.DMHUP
12471 041236 CALL .DHSPR ;;; [4.2206] YES -- RESET THE LINE SPEED TO DEFAULT
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 231-1
TERMINAL DRIVER -- .DMTMO (DM-11/BB MODEM CONTROL TIMEOUT)
041236 004737 037460' JSR PC,.DHSPR
12472 041242 000403 BR 40$ ;;; [5.1007] AND SEE ABOUT ERROR LOGGING
12473 ;
12474 041244 30$:
12475 041244 042765 002000 000006 BIC #TT.RIP,STSW1(R5) ;;; [4.2206] MARK TIMEOUT REQUEST
12476 041252 40$:
12477 041252 CALL .STPDM ;;; [5.1007] STOP THE DM-11/BB SCAN
041252 004737 040174' JSR PC,.STPDM
12478 041256 010402 MOV R4,R2 ;;; [5.1007] COPY CSR POINTER TO R2
12479 041260 050122 BIS R1,(R2)+ ;;; [5.1007] SET UP THE UNIT NUMBER
12480 041262 032714 000100 BIT #100,(R4) ;;; [5.1007] INTERRUPTS ENABLED??
12481 041266 001403 BEQ 50$ ;;; [5.1007] NO -- ERROR LOG IT
12482 041270 032712 000001 BIT #1,(R2) ;;; [5.1007] YES -- IS THE LINE ENABLED??
12483 041274 001004 BNE 60$ ;;; [5.1007] YES -- GO ON
12484 041276 50$:
12485 041276 011237 002660' MOV (R2),.TTELB ;;; [5.1007] NO -- SAVE ALTERNATE STATUS
12486 041302 CALL DHERLG ;;; [5.1007] ERROR LOG IT
041302 004737 041106' JSR PC,DHERLG
12487 041306 60$:
12488 041306 052712 000001 BIS #1,(R2) ;;; [5.1007] ENABLE THE LINE
12489 041312 032712 000004 BIT #4,(R2) ;;; [5.1007] REQUEST-TO-SEND UP??
12490 041316 001402 BEQ 70$ ;;; [5.1007] NO -- GO ON
12491 041320 052712 000007 BIS #7,(R2) ;;; [5.1007] YES -- FULLY ENABLE LINE
12492 041324 70$:
12493 041324 052714 000140 BIS #140,(R4) ;;; [5.1007] ENABLE SCAN
12494 041330 062705 000010 ADD #^D8,R5 ;;; [4.2206] POINT TO NEXT DHTBL ENTRY
12495 041334 005201 INC R1 ;;; [4.2206] INCREMENT UNIT NUMBER
12496 041336 022701 000020 CMP #^D16,R1 ;;; [4.2206] HAVE WE OVERFLOWED??
12497 041342 003312 BGT 20$ ;;; [4.2206] NO -- GO ON
12498 041344 000700 BR 10$ ;;; [5.1004] YES -- START NEXT CONTROLLER
12499 ;
12500 041346 80$:
12501 041346 RETURN ;;; [4.2206] RETURN TO CALLER
041346 000207 RTS PC
12502 ;
12503 ; HERE ON NON-EXISTENT DM-11/BB TRAP
12504 ;
12505 041350 90$:
12506 041350 032626 BIT (SP)+,(SP)+ ;;; [4.1.1091] FLUSH TRAP PS/PC
12507 041352 100$:
12508 041352 005060 177774 CLR -4(R0) ;;; [4.1.1091] DECLARE THE DM NON-EXISTENT
12509 041356 000673 BR 10$ ;;; [4.1.1091] AND TRY NEXT DH/DM PAIR
12510 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 232
TERMINAL DRIVER -- .TTFDI (INPUT CONTROL SERVICE)
12512 .SBTTL TERMINAL DRIVER -- .TTFDI (INPUT CONTROL SERVICE)
12513
12514 ;+
12515 ; .TTFDI -- INPUT CONTROL SERVICE
12516 ;
12517 ; THIS SUBROUTINE WILL RETURN POINTERS TO THE NEXT LINE TO BE SERVICED FOR
12518 ; INPUT CONTROL (ENABLE) IN R2 AND R5.
12519 ;
12520 ; INPUTS:
12521 ;
12522 ; .S2ITP -- POINTER TO THE LAST LINE TO BE SERVICED FOR INPUT CONTROL
12523 ;
12524 ; OUTPUTS:
12525 ;
12526 ; R2 -- POINTER TO "STSW2" ENTRY FOR NEXT LINE TO BE SERVICED
12527 ; R5 -- POINTER TO DLS TABLE ENTRY FOR NEXT LINE TO BE SERVICED
12528 ; .S2ITP -- UPDATED TO POINT TO CURRENT LINE
12529 ;-
12530
12531 041360 .TTFDI::
12532 041360 013705 005052' MOV .S2ITP,R5 ;;; [4.1.1092] GET POINTER TO THE LAST LINE
12533 041364 000405 BR 20$ ;;; [4.1.1092] AND GO ON
12534 ;
12535 041366 10$:
12536 041366 CALL .TTSW2 ;;; [4.1.1092] FIND "STSW2" ENTRY FOR THIS LINE
041366 004737 042754' JSR PC,.TTSW2
12537 041372 032712 004000 BIT #S2.LCL,(R2) ;;; [4.1.1092] HAVE WE FOUND A LINE??
12538 041376 001010 BNE 30$ ;;; [4.1.1092] YES -- EXIT
12539 041400 20$:
12540 041400 062705 000010 ADD #10,R5 ;;; [4.1.1092] NO -- FIND THE NEXT DLS ENTRY
12541 041404 022705 005046' CMP #TTYEND,R5 ;;; [4.1.1092] HAVE WE FALLEN OFF THE END??
12542 041410 101366 BHI 10$ ;;; [4.1.1092] NO -- CONTINUE SEARCHING
12543 041412 012705 002776' MOV #TTTBL,R5 ;;; [4.1.1092] YES -- RESET TO BEGINNING
12544 041416 000763 BR 10$ ;;; [4.1.1092] AND GO ON
12545 ;
12546 041420 30$:
12547 041420 010537 005052' MOV R5,.S2ITP ;;; [4.1.1092] SAVE POINTER FOR THE NEXT TIME
12548 041424 RETURN ;;; [4.1.1092] TO CALLER
041424 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 233
TERMINAL DRIVER -- .TTERL (TERMINAL ERROR LOGGING)
12550 .SBTTL TERMINAL DRIVER -- .TTERL (TERMINAL ERROR LOGGING)
12551
12552 ;+
12553 ; .TTERL -- TERMINAL ERROR LOGGING
12554 ;
12555 ; THIS SUBROUTINE WILL ENTER A TERMINAL ERROR REPORT IN THE TERMINAL
12556 ; ERROR LOGGING QUEUE.
12557 ;
12558 ; INPUTS:
12559 ;
12560 ; R4 -- I/O PAGE POINTER FOR THIS DEVICE
12561 ; R3 -- ERROR STATUS FOR THIS REPORT
12562 ;
12563 ; OUTPUTS:
12564 ;
12565 ; NO REGISTERS ARE ALTERED
12566 ;-
12567
12568 041426 .TTERL::
12569 041426 005737 001012' TST .COMEF+2 ;;; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
12570 041432 100047 BPL 40$ ;;; [4.1.1105] NO -- JUST EXIT
12571 041434 022737 000006 002656' CMP #6,.TTELC ;;; [5.1008] IS THERE ROOM IN THE QUEUE??
12572 041442 003443 BLE 40$ ;;; [5.1008] NO -- EXIT
12573 041444 010246 MOV R2,-(SP) ;;; [4.2245] YES -- SAVE REGISTERS
12574 041446 010146 MOV R1,-(SP) ;;; [4.2245]
12575 041450 010046 MOV R0,-(SP) ;;; [4.2245]
12576 041452 010446 MOV R4,-(SP) ;;; [4.2245]
12577 041454 012701 000016 MOV #16,R1 ;;; [4.2245] SET UP NODE SIZE
12578 041460 CALL ..ALCB ;;; [4.2245] GET ONE FROM THE POOL
041460 004737 044416' JSR PC,..ALCB
12579 041464 103424 BCS 30$ ;;; [4.2245] ERROR IF CC-C IS SET
12580 041466 010160 000002 MOV R1,T.HBCT(R0) ;;; [4.2245] GOT ONE -- SET NODE SIZE
12581 041472 012701 002654' MOV #.TTELQ,R1 ;;; [4.2245] SET UP QUEUE POINTER
12582 041476 005261 000002 INC 2(R1) ;;; [5.1008] ONE MORE NODE
12583 041502 10$:
12584 041502 011102 MOV (R1),R2 ;;; [4.2245] FIND THE LAST NODE IN THE QUEUE
12585 041504 001402 BEQ 20$ ;;; [4.2245] FOUND IT -- GO ON
12586 041506 010201 MOV R2,R1 ;;; [4.2245] NOT YET -- TRY AGAIN
12587 041510 000774 BR 10$ ;;; [4.2245] SO
12588 ;
12589 041512 20$:
12590 041512 010011 MOV R0,(R1) ;;; [4.2245] ADD THIS NODE
12591 041514 005020 CLR (R0)+ ;;; [4.2245] MARK NEW END OF QUEUE
12592 041516 005720 TST (R0)+ ;;; [4.2245] GET OVER THE LISTHEAD (PACKET SIZE)
12593 041520 012720 000012 MOV #12,(R0)+ ;;; [4.2245] SET MESSAGE SIZE
12594 041524 010320 MOV R3,(R0)+ ;;; [4.2245] SET ERROR STATUS
12595 041526 010420 MOV R4,(R0)+ ;;; [4.2245] SET THE DEVICE ADDRESS
12596 041530 012420 MOV (R4)+,(R0)+ ;;; [4.2245] SET DEVICE STATUS
12597 041532 013710 002660' MOV .TTELB,(R0) ;;; [4.2245] SET SAVED STATUS, IF ANY
12598 041536 30$:
12599 041536 005037 002660' CLR .TTELB ;;; [4.2245] CLEAR SAVED STATUS
12600 041542 012604 MOV (SP)+,R4 ;;; [4.2245] RESTORE REGISTERS
12601 041544 012600 MOV (SP)+,R0
12602 041546 012601 MOV (SP)+,R1
12603 041550 012602 MOV (SP)+,R2
12604 041552 40$:
12605 041552 RETURN ;;; [4.2245] TO CALLER
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 233-1
TERMINAL DRIVER -- .TTERL (TERMINAL ERROR LOGGING)
041552 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 234
TERMINAL DRIVER -- .TTXOF (DEVICE DEPENDENT XOFF PROCESSING)
12607 .SBTTL TERMINAL DRIVER -- .TTXOF (DEVICE DEPENDENT XOFF PROCESSING)
12608
12609 ;+
12610 ; .TTXOF -- DEVICE DEPENDENT XOFF PROCESSING
12611 ;
12612 ; THIS SUBROUTINE WILL PROCESS AN XOFF AND STOP OUTPUT ON A SPECIFIED
12613 ; TERMINAL LINE.
12614 ;
12615 ; INPUTS:
12616 ;
12617 ; R5 -- POINTER TO DATA LINE SCANNER TABLE ENTRY FOR LINE TO BE STOPPED.
12618 ;
12619 ; OUTPUTS:
12620 ;
12621 ; THE LINE IS STOPPED.
12622 ;
12623 ; CALLED FROM QUEUED PROTOCOL TASK AND TERMINAL INPUT SERVICE
12624 ;-
12625
12626 .ENABL LSB
12627
12628 041554 .TTXOF::
12629 041554 105765 000006 TSTB STSW1+0(R5) ;;; [4.2181] ALREADY X'D OFF??
12630 041560 100432 BMI 10$ ;;; [4.2181] YES -- JUST EXIT
12631 041562 032765 001000 000006 BIT #TT.SIP,STSW1(R5) ;;; [4.2181] NO -- SENDALL IN PROGRESS??
12632 041570 001023 BNE .DLXOF ;;; [4.2181] YES -- MARK XOFF AND RETURN
12633 041572 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; [4.2181] NO -- IS THIS A CTY??
12634 041600 001414 BEQ .DHXOF ;;; [4.2181] NO -- GO ON
12635 041602 005737 002632' TST .TTP11 ;;; [4.2181] YES -- IN PDP-11 I/O WAIT??
12636 041606 001017 BNE 10$ ;;; [4.2181] YES -- JUST EXIT
12637 041610 105737 001226' TSTB .KLNSW+0 ;;; [4.2181] NO -- IS KLINIK ACTIVE??
12638 041614 003406 BLE .DHXOF ;;; [4.2181] NO -- NOT THAT WE CARE -- GO ON
12639 041616 010546 MOV R5,-(SP) ;;; [4.2181] YES -- SAVE CTY POINTER
12640 041620 013705 002636' MOV KLNPTR,R5 ;;; [4.2181] SUBSTITUTE KLINIK POINTER
12641 041624 CALL .DHXOF ;;; [4.2181] STOP THE KLINIK LINE
041624 004737 041632' JSR PC,.DHXOF
12642 041630 012605 MOV (SP)+,R5 ;;; [4.2181] RESTORE CTY POINTER
12643 ;
12644 ; HERE TO STOP A DH-11 LINE
12645 ;
12646 041632 .DHXOF::
12647 041632 CALL .TTSTP ;;; [5.1015] SEE ABOUT STOPPING I/O
041632 004737 041650' JSR PC,.TTSTP
12648 041636 001403 BEQ 10$ ;;; [5.1015] EXIT IF NON-EXISTENT
12649 ;
12650 ; HERE TO STOP DL-11 LINE
12651 ;
12652 041640 .DLXOF::
12653 041640 052765 000200 000006 BIS #TT.XOF,STSW1(R5) ;;; [4.2181] MARK THE LINE AS X'D OFF
12654 041646 10$:
12655 041646 RETURN ;;; [4.2181] TO CALLER
041646 000207 RTS PC
12656
12657 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 235
TERMINAL DRIVER -- .TTSTP (STOP TERMINAL OUTPUT)
12659 .SBTTL TERMINAL DRIVER -- .TTSTP (STOP TERMINAL OUTPUT)
12660
12661 ;+
12662 ; .TTSTP -- STOP TERMINAL OUTPUT
12663 ;
12664 ; THIS SUBROUTINE WILL STOP OR TRUNCATE OUTPUT FOR A LINE
12665 ;
12666 ; INPUTS:
12667 ;
12668 ; R5 -- POINTS TO DLS ENTRY FOR LINE TO BE STOPPED
12669 ;
12670 ; OUTPUTS:
12671 ;
12672 ; R4 -- POINTS TO DEVICE I/O PAGE ADDRESS
12673 ;-
12674
12675 041650 .TTSTP::
12676 041650 CALL .STDHL ;;; [5.1015] SET THE DH-11 LINE NUMBER
041650 004737 037416' JSR PC,.STDHL
12677 041654 003407 BLE 10$ ;;; [5.1015] GO ON IF DL-11 OR NON-EXISTENT
12678 041656 022764 177775 000010 CMP #-3,10(R4) ;;; [5.1015] MUST WE TRUNCATE PACKET??
12679 041664 002403 BLT 10$ ;;; [5.1015] NO -- JUST LET I/O RUN DOWN
12680 041666 012764 177777 000010 MOV #-1,10(R4) ;;; [5.1015] YES -- TRUNCATE IT
12681 041674 10$:
12682 041674 RETURN ;;; [5.1015] TO CALLER
041674 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 236
TERMINAL DRIVER -- .TTXON (DEVICE DEPENDENT XON PROCESSING)
12684 .SBTTL TERMINAL DRIVER -- .TTXON (DEVICE DEPENDENT XON PROCESSING)
12685
12686 ;+
12687 ; .TTXON -- DEVICE DEPENDENT XON PROCESSING
12688 ;
12689 ; THIS SUBROUTINE WILL PROCESS AN XON AND START OUTPUT ON A SPECIFIED
12690 ; TERMINAL LINE.
12691 ;
12692 ; INPUTS:
12693 ;
12694 ; R5 -- POINTER TO DATA LINE SCANNER TABLE ENTRY FOR LINE TO BE STARTED.
12695 ;
12696 ; OUTPUTS:
12697 ;
12698 ; THE LINE IS STARTED.
12699 ;
12700 ; CALLED FROM QUEUED PROTOCOL TASK AND TERMINAL INPUT SERVICE
12701 ;-
12702
12703 .ENABL LSB
12704
12705 041676 .TTXON:: ;;; [5.1248] REMOVE SAVE OF R0
12706 041676 105765 000006 TSTB STSW1+0(R5) ;;; [4.2181] IS THE LINE X'D OFF??
12707 041702 100053 BPL 30$ ;;; [4.2181] NO -- JUST EXIT
12708 041704 032765 001001 000006 BIT #TT.SIP!TT.OUT,STSW1(R5) ;;; [4.2181] YES -- SENDALL IN PROGRESS??
12709 ;;; [4.2181] OR ALREADY BUSY??
12710 041712 001044 BNE 20$ ;;; [4.2181] YES -- RESET LINE STATE AND EXIT
12711 041714 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; [4.2181] NO -- IS THIS THE CTY??
12712 041722 001414 BEQ .DHXON ;;; [4.2181] NO -- GO ON
12713 041724 005737 002632' TST .TTP11 ;;; [4.2181] YES -- IN PDP-11 I/O WAIT??
12714 041730 001035 BNE 20$ ;;; [4.2181] YES -- RESET XOFF AND EXIT
12715 041732 105737 001226' TSTB .KLNSW+0 ;;; [4.2181] NO -- IS KLINIK ACTIVE??
12716 041736 003406 BLE .DHXON ;;; [4.2181] NO -- NOT THAT WE CARE - GO ON
12717 041740 010546 MOV R5,-(SP) ;;; [4.2181] YES -- SAVE CTY POINTER
12718 041742 013705 002636' MOV KLNPTR,R5 ;;; [4.2181] SUBSTITUTE KLINIK LINE POINTER
12719 041746 CALL .DHXON ;;; [4.2181] START THE KLINIK LINE
041746 004737 041754' JSR PC,.DHXON
12720 041752 012605 MOV (SP)+,R5 ;;; [4.2181] RESTORE CTY POINTER
12721 ;
12722 ; HERE TO START A DH-11 LINE
12723 ;
12724 041754 .DHXON::
12725 041754 011500 MOV (R5),R0 ;;; [5.1015] COPY THREAD POINTER TO R0
12726 041756 001422 BEQ 20$ ;;; [4.2181] RESET STATUS AND EXIT IF EMPTY
12727 041760 105760 000006 TSTB T.HCBC(R0) ;;; [5.1015] TEST BYTE COUNT FROM THREAD NODE
12728 041764 001006 BNE 10$ ;;; [4.2181] PROCEED IF PACKET NOT EMPTY
12729 041766 005360 000004 DEC T.HCAD(R0) ;;; [5.1015] EMPTY -- BACK UP ONE BYTE
12730 041772 105070 000004 CLRB @T.HCAD(R0) ;;; [5.1015] AND RENDER IT NULL
12731 041776 105260 000006 INCB T.HCBC(R0) ;;; [5.1015] AND ACCOUNT FOR IT
12732 042002 10$:
12733 042002 CALL .STDHL ;;; [4.2181] SET UP FOR THIS LINE NUMBER
042002 004737 037416' JSR PC,.STDHL
12734 042006 100404 BMI .DLXON ;;; [5.1015] GO ON IF DL-11
12735 042010 001410 BEQ 30$ ;;; [5.1015] EXIT IF NON-EXISTENT
12736 042012 CALL .DHSTO ;;; [5.1015] START UP THE DH-11
042012 004737 034164' JSR PC,.DHSTO
12737 042016 000402 BR 20$ ;;; [4.2181] AND EXIT
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 236-1
TERMINAL DRIVER -- .TTXON (DEVICE DEPENDENT XON PROCESSING)
12738 ;
12739 ;
12740 ; HERE TO START A DL-11 LINE
12741 ;
12742 042020 .DLXON::
12743 042020 CALL .DLSTO ;;; [5.1015] START UP THE DL-11
042020 004737 034340' JSR PC,.DLSTO
12744 042024 20$:
12745 042024 042765 000200 000006 BIC #TT.XOF,STSW1(R5) ;;; [4.2181] MARK LINE AS X'D ON
12746 042032 30$:
12747 042032 RETURN ;;; [4.2181] TO CALLER
042032 000207 RTS PC
12748
12749 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 237
TERMINAL DRIVER -- .TTRST (RESET A TERMINAL LINE)
12751 .SBTTL TERMINAL DRIVER -- .TTRST (RESET A TERMINAL LINE)
12752
12753 ;+
12754 ; .TTRST -- RESET A TERMINAL LINE
12755 ;
12756 ; THIS SUBROUTINE WILL RESET A LINE'S STATUS AND CLEAR IT'S OUTPUT QUEUE
12757 ;
12758 ; INPUTS:
12759 ;
12760 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
12761 ;
12762 ; OUTPUTS:
12763 ;
12764 ; NO REGISTERS ARE ALTERED
12765 ; LINE STATUS IS RESET
12766 ; LINES OUTPUT QUEUE IS EMPTY
12767 ;
12768 ; NOTE:
12769 ; THIS SUBROUTINE MUST BE CALLED AT BR5 OR HIGHER
12770 ;-
12771
12772 042034 .TTRST::
12773 042034 010246 MOV R2,-(SP) ;;; [4.2205] SAVE R2
12774 042036 005737 001030' TST .PFIOW ;;; [4.2205] POWER FAIL RESTART??
12775 042042 001420 BEQ 10$ ;;; [4.2205] NO -- GO ON
12776 042044 042765 161411 000006 BIC #TT.SND!TT.RSI!TT.NSA!TT.ABW!TT.SIP!TT.OUT,STSW1(R5)
12777 ;;; [4.2205] YES -- SET POWER UP STATUS
12778 042052 042765 140000 000004 BIC #S0.MSK,STSW0(R5) ;;; [4.2309] RESET CONNECT BIT
12779 042060 CALL .TTSW2 ;;; [5.1015] FIND OUR "STSW2" ENTRY
042060 004737 042754' JSR PC,.TTSW2
12780 042064 105012 CLRB (R2) ;;; [5.1016] REMOVE DEFERRED CHARACTER
12781 042066 032712 170000 BIT #S2.DDN!S2.DIP!S2.ENB!S2.DIS,(R2)
12782 ;;; [5.1015] WAS THE LINE BEING TURNED ON OR OFF??
12783 042072 001404 BEQ 10$ ;;; [5.1015] NO -- LEAVE IT ALONE
12784 042074 012712 100000 MOV #S2.DDN,(R2) ;;; [5.1015] YES -- SAY IT WAS FINISHED
12785 042100 CALL .TTENB ;;; [5.1015] AND TURN IT ON
042100 004737 042464' JSR PC,.TTENB
12786 042104 10$:
12787 042104 010502 MOV R5,R2 ;;; [5.1015] COPY DLS POINTER TO R2
12788 042106 CALL ..STPT ;;; [4.2205] STOP THE LINE AND FLUSH OUTPUT
042106 004737 045142' JSR PC,..STPT
12789 042112 042765 014220 000006 BIC #TT.XOF!TT.XEN!TT.FEC,STSW1(R5)
12790 ;;; [4.2205] RESET THE LINE STATUS
12791 042120 012602 MOV (SP)+,R2 ;;; [5.1015] RESTORE R2
12792 042122 RETURN ;;; [4.2205] TO CALLER
042122 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 238
TERMINAL DRIVER -- CHECK INPUT XOFF DELAY
12794 .SBTTL TERMINAL DRIVER -- CHECK INPUT XOFF DELAY
12795
12796 ;+
12797 ; .TTCHK -- CHECK INPUT XOFF DELAY
12798 ;
12799 ; THIS SUBROUTINE WILL COUNT EITHER TWO CLOCK TICKS OR TWO CHARACTERS FOR A
12800 ; LINE WHICH IS BEING INPUT DISABLED. THE LINE SPEED IS THEN SET TO ZERO
12801 ; WHEN THE COUNT OVERFLOWS
12802 ;
12803 ; INPUTS:
12804 ;
12805 ; R2 -- POINTS TO "STSW2" ENTRY FOR LINE
12806 ; R5 -- POINTS TO DLS TABLE ENTRY FOR LINE
12807 ;
12808 ; OUTPUTS:
12809 ;
12810 ; DELAY COUNT AND STATUS IS IN "STSW2(R2)"
12811 ;-
12812
12813 042124 .TTCHK::
12814 042124 105262 000001 INCB 1(R2) ;;; [5.1015] YES -- COUNT THIS TICK
12815 042130 032712 001000 BIT #S2.SSZ,(R2) ;;; [5.1015] TIME TO SHUT HIM OFF??
12816 042134 001404 BEQ 10$ ;;; [5.1015] NO -- NOT YET
12817 042136 CALL .TTDIS ;;; [5.1015] YES -- DO IT
042136 004737 042312' JSR PC,.TTDIS
12818 042142 005337 005046' DEC .TTS2F ;;; [5.1015] COUNT THIS LINE
12819 042146 10$:
12820 042146 RETURN ;;; [5.1015] TO CALLER
042146 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 239
TERMINAL DRIVER -- .TTICK (INPUT BUFFER CHECKS)
12822 .SBTTL TERMINAL DRIVER -- .TTICK (INPUT BUFFER CHECKS)
12823
12824 ;+
12825 ; .TTICK -- TERMINAL INPUT BUFFER CHECKS
12826 ;
12827 ; THIS SUBROUTINE WILL CHECK THE STATE OF THE BUFFER SPACE AND INITIATE AN
12828 ; INPUT DISABLE SEQUENCE IF THE INPUT BUFFER LOW HAS BEEN CROSSED.
12829 ;
12830 ; INPUTS:
12831 ;
12832 ; R2 -- POINTS TO "STSW2" ENTRY FOR CURRENT LINE
12833 ; R5 -- POINTS TO DLS TABLE ENTRY FOR CURRENT LINE
12834 ;
12835 ; OUTPUTS:
12836 ;
12837 ; NONE
12838 ;
12839 ; NOTE:
12840 ;
12841 ; THE CTY IS NEVER INPUT-DISABLED BY THIS ROUTINE
12842 ;-
12843
12844 .ENABL LSB
12845
12846 042150 .TTICK::
12847 042150 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; [4.1.1092] IS THIS A CTY??
12848 042156 001035 BNE 20$ ;;; [4.1.1092] YES -- LEAVE IT ALONE
12849 042160 023737 005054' 001422' CMP .IBFLO,.FREPL+2 ;;; [4.1.1092] NO -- IS THE FREE-POOL OK??
12850 042166 103431 BLO 20$ ;;; [4.1.1092] YES -- JUST EXIT
12851 042170 032712 140000 BIT #S2.DDN!S2.DIP,(R2) ;;; [4.1.1092] NO -- IN PROGRESS OR DONE??
12852 042174 001026 BNE 20$ ;;; [4.1.1092] YES -- LEAVE IT ALONE
12853 042176 052712 004000 BIS #S2.LCL,(R2) ;;; [4.1.1092] NO -- SAY THAT WE OWN THE LINE
12854 042202 000443 BR .TTDIS ;;; [4.1.1092] AND DISABLE IT
12855 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 240
TERMINAL DRIVER -- .TTQDS (QUEUED PROTOCOL INPUT DISABLE SERVI
12857 .SBTTL TERMINAL DRIVER -- .TTQDS (QUEUED PROTOCOL INPUT DISABLE SERVICE)
12858
12859 ;+
12860 ; .TTQDS -- QUEUED PROTOCOL LINE DISABLE SERVICE
12861 ; .TTQEN -- QUEUED PROTOCOL LINE ENABLE SERVICE
12862 ;
12863 ; THESE SUBROUTINES ARBITRATE THE OWNERSHIP OF A LINE FOR WHICH THE HOST HAS
12864 ; REQUESTED EITHER AN INPUT DISABLE OR ENABLE VIA THE QUEUED PROTOCOL. THE
12865 ; "RULE OF THUMB" IS THAT IF THE FREE-POOL IS BELOW INPUT THRESHOLDS, THE
12866 ; FRONT-END GAINS "OWNERSHIP" OF THAT LINE FOR WHICH THE REQUEST IS ISSUED.
12867 ;
12868 ; UNDER THESE CIRCUMSTANCES, THE LINE WILL EVENTUALLY BECOME INPUT RE-ENABLED
12869 ; BY THE CLOCK SERVICE, BUT ONLY IF THE FREE-POOL IS ABOVE MINIMUMS.
12870 ;
12871 ; INPUTS:
12872 ;
12873 ; R2 -- POINTS TO "STSW2" ENTRY FOR THE LINE
12874 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THE LINE
12875 ;
12876 ; OUTPUTS:
12877 ;
12878 ; NO REGISTERS ALTERED
12879 ;-
12880
12881 042204 .TTQDS::
12882 042204 032712 004000 BIT #S2.LCL,(R2) ;;; [4.1.1092] DO WE OWN THE LINE??
12883 042210 001020 BNE 20$ ;;; [4.1.1092] YES -- KEEP IT
12884 042212 000437 BR .TTDIS ;;; [4.1.1092] NO -- STOP IT
12885 ;
12886 042214 .TTQEN::
12887 042214 032712 004000 BIT #S2.LCL,(R2) ;;; [4.1.1092] DO WE OWN THE LINE??
12888 042220 001014 BNE 20$ ;;; [4.1.1092] YES -- KEEP IT
12889 042222 023737 005056' 001422' CMP .IBFOK,.FREPL+2 ;;; [4.1.1092] NO -- IS THE FREE-POOL OK??
12890 042230 103515 BLO .TTENB ;;; [4.1.1092] YES -- ENABLE THE LINE AND EXIT
12891 042232 032712 140000 BIT #S2.DDN!S2.DIP,(R2) ;;; [4.1.1092] NO -- IS IT (BEING) STOPPED??
12892 042236 001405 BEQ 20$ ;;; [4.1.1092] NO -- LEAVE IT ALONE
12893 042240 100002 BPL 10$ ;;; [4.1.1092] IN PROGRESS -- GO ON
12894 042242 005237 005050' INC .S2IDC ;;; [4.1.1092] DONE -- ACCOUNT FOR THE LINE
12895 042246 10$:
12896 042246 052712 004000 BIS #S2.LCL,(R2) ;;; [4.1.1092] MARK THAT WE OWN THE LINE
12897 042252 20$:
12898 042252 RETURN ;;; [4.1.1092] AND EXIT
042252 000207 RTS PC
12899
12900 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 241
TERMINAL DRIVER -- .TTIXC (INPUT CONTROL CHECKS)
12902 .SBTTL TERMINAL DRIVER -- .TTIXC (INPUT CONTROL CHECKS)
12903
12904 ;+
12905 ; .TTIXC -- TERMINAL INPUT CONTROL CHECKS
12906 ;
12907 ; THIS SUBROUTINE WILL CHECK AND INITIATE A DEFERRED INPUT XON OR XOFF
12908 ;
12909 ; INPUTS:
12910 ;
12911 ; R5 -- POINTS TO DLS ENTRY FOR THE LINE TO BE CHECKED
12912 ;
12913 ; OUTPUTS:
12914 ;
12915 ; R2 -- POINTS TO STSW2 ENTRY FOR THE LINE
12916 ; OUTPUT IS ACTIVE IF AN XOFF OR XON HAS BEEN STARTED ON THE LINE
12917 ;-
12918
12919 042254 .TTIXC::
12920 042254 CALL .TTSW2 ;;; [5.1015] FIND OUR "STSW2" ENTRY
042254 004737 042754' JSR PC,.TTSW2
12921 042260 032712 010000 BIT #S2.ENB,(R2) ;;; [5.1015] INPUT XON PENDING??
12922 042264 001077 BNE .TTENB ;;; [5.1015] YES -- DO IT
12923 042266 10$:
12924 042266 032712 020000 BIT #S2.DIS,(R2) ;;; [5.1015] INPUT XOFF PENDING??
12925 042272 001007 BNE .TTDIS ;;; [5.1015] YES -- DO IT
12926 042274 20$:
12927 042274 010446 MOV R4,-(SP) ;;; [5.1016] SAVE R4
12928 042276 111204 MOVB (R2),R4 ;;; [5.1016] BREAK-THROUGH WRITE PENDING??
12929 042300 001402 BEQ 30$ ;;; [5.1016] NO -- GO ON
12930 042302 CALL .TTBTW ;;; [5.1016] YES -- DO IT
042302 004737 042604' JSR PC,.TTBTW
12931 042306 30$:
12932 042306 012604 MOV (SP)+,R4 ;;; [5.1016] RESTORE R4
12933 042310 RETURN ;;; [5.1016] TO CALLER
042310 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 242
TERMINAL DRIVER -- .TTDIS (DISABLE INPUT FROM LINE)
12935 .SBTTL TERMINAL DRIVER -- .TTDIS (DISABLE INPUT FROM LINE)
12936
12937 ;+
12938 ; .TTDIS -- DISABLE INPUT FROM LINE
12939 ;
12940 ; THIS SUBROUTINE WILL INITIATE THE DISABLING OF THE INPUT FOR A LINE
12941 ; BY TRANSMITTING AN XOFF TO THE LINE AND MARKING THE DISABLE IN PROGRESS
12942 ;
12943 ; INPUTS:
12944 ;
12945 ; R2 -- POINTS TO THE "STSW2" ENTRY FOR THIS LINE
12946 ; R5 -- POINTS TO DATA LINE SCANNER ENTRY FOR LINE TO BE DISABLED
12947 ;
12948 ; OUTPUTS:
12949 ;
12950 ; NO REGISTERS ALTERED
12951 ;
12952 ; NOTES:
12953 ;
12954 ; THIS ROUTINE MUST BE ENTERED AT PRI5 OR HIGHER
12955 ; THIS ROUTINE ASSUMES THAT THE DEVICE EXISTS
12956 ;-
12957
12958 .ENABL LSB
12959
12960 042312 .TTDIS::
12961 042312 010046 MOV R0,-(SP) ;;; [5.1015] SAVE REGISTERS
12962 042314 010246 MOV R2,-(SP)
12963 042316 010446 MOV R4,-(SP)
12964 042320 032712 140000 BIT #S2.DIP!S2.DDN,(R2) ;;; [5.1015] ALREADY DONE OR IN PROGRESS??
12965 042324 100562 BMI 75$ ;;; [5.1015] ALREADY STOPPED -- GO ON
12966 042326 001022 BNE 20$ ;;; [5.1015] FIRST PART DONE -- FINISH
12967 ;
12968 ; HERE TO INITIATE THE LINE STOP
12969 ;
12970 042330 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; [5.1015] IS OUTPUT ACTIVE??
12971 042336 001405 BEQ 10$ ;;; [5.1015] NO -- GO ON
12972 ;
12973 ; HERE TO DEFER THE XOFF TRANSMISSION
12974 ;
12975 042340 052712 020000 BIS #S2.DIS,(R2) ;;; [5.1015] YES -- DEFER THE REQUEST
12976 042344 042712 010000 BIC #S2.ENB,(R2) ;;; [5.1015] REMOVE "OTHER" REQUEST
12977 042350 000546 BR 70$ ;;; [5.1015] STOP THE LINE AND EXIT
12978 ;
12979 ;
12980 ; HERE TO TRANSMIT THE XOFF
12981 ;
12982 042352 10$:
12983 042352 CALL .TFXOF ;;; [5.1016] FORCE THE XOFF TO THE LINE
042352 004737 043004' JSR PC,.TFXOF
12984 042356 042712 020000 BIC #S2.DIS,(R2) ;;; [5.1015] REMOVE DEFERRED REQUEST
12985 042362 15$:
12986 042362 052712 040000 BIS #S2.DIP,(R2) ;;; [5.1015] MARK THE REQUEST IN PROGRESS
12987 042366 005237 005046' INC .TTS2F ;;; [5.1015] FLAG THE CLOCK SERVICE
12988 042372 000537 BR 75$ ;;; [5.1015] AND EXIT
12989 ;
12990 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 242-1
TERMINAL DRIVER -- .TTDIS (DISABLE INPUT FROM LINE)
12991 ; HERE TO REFUSE INPUT FROM THE LINE
12992 ;
12993 042374 20$:
12994 042374 032712 001000 BIT #S2.SSZ,(R2) ;;; [5.1015] READY FOR SECOND PART??
12995 042400 001534 BEQ 75$ ;;; [5.1015] NO -- WAIT
12996 042402 CALL .STDHL ;;; [5.1015] SET UP THE LINE NUMBER
042402 004737 037416' JSR PC,.STDHL
12997 042406 100407 BMI 25$ ;;; [5.1015] BRANCH IF LINE IS A DL-11
12998 042410 032712 004000 BIT #S2.LCL,(R2) ;;; [RCO 32681] OUR LINE ??
12999 042414 001011 BNE 30$ ;;; [RCO 32681] YES, DON'T SET LINE SPEED TO ZERO
13000 042416 042764 001700 000004 BIC #S0.ISP,4(R4) ;;; [5.1015] SET INPUT SPEED TO ZERO
13001 042424 000405 BR 30$ ;;; [5.1015] AND EXIT
13002 ;
13003 042426 25$:
13004 042426 112765 177777 000004 MOVB #-1,STSW0(R5) ;;; [5.1015] DISABLE DL-11 INPUT
13005 042434 042714 000100 BIC #DL.REN,(R4) ;;; [5.1015] SO
13006 042440 30$:
13007 042440 042712 041400 BIC #S2.DIP!S2.CNT,(R2) ;;; [5.1015] NO LONGER IN PROGRESS
13008 042444 052712 100000 BIS #S2.DDN,(R2) ;;; [5.1015] BUT FINISHED
13009 042450 032712 004000 BIT #S2.LCL,(R2) ;;; [4.1.1092] DO WE OWN THIS LINE??
13010 042454 001506 BEQ 75$ ;;; [4.1.1092] NO -- GO ON
13011 042456 005237 005050' INC .S2IDC ;;; [4.1.1092] YES -- ACCOUNT FOR IT
13012 042462 000503 BR 75$ ;;; [5.1015] EXIT
13013 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 243
TERMINAL DRIVER -- .TTENB (ENABLE INPUT FOR LINE)
13015 .SBTTL TERMINAL DRIVER -- .TTENB (ENABLE INPUT FOR LINE)
13016
13017 ;+
13018 ; .TTENB -- ENABLE INPUT FOR LINE
13019 ;
13020 ; THIS ROUTINE WILL ENABLE INPUT FOR A LINE BY RESETTING ITS INPUT SPEED AND
13021 ; TRANSMITTING AN XON TO THE LINE.
13022 ;
13023 ; INPUTS:
13024 ;
13025 ; R2 -- POINTS TO "STSW2" ENTRY FOR THIS LINE
13026 ; R5 -- POINTS TO DLS TABLE ENTRY FOR THIS LINE
13027 ;
13028 ; OUTPUTS:
13029 ;
13030 ; NO REGISTERS ALTERED
13031 ;
13032 ; NOTES:
13033 ;
13034 ; THIS ROUTINE MUST BE ENTERED AT PRI5 OR HIGHER
13035 ; THIS ROUTINE ASSUMES THAT THE DEVICE EXISTS
13036 ;-
13037
13038 042464 .TTENB::
13039 042464 010046 MOV R0,-(SP) ;;; [5.1015] SAVE REGISTERS
13040 042466 010246 MOV R2,-(SP)
13041 042470 010446 MOV R4,-(SP)
13042 042472 032712 140000 BIT #S2.DDN!S2.DIP,(R2) ;;; [5.1015] INTERROGATE LINE STATE
13043 042476 100406 BMI 35$ ;;; [5.1015] LINE IS DISABLED
13044 042500 001474 BEQ 75$ ;;; [5.1015] ALREADY ENABLED -- EXIT
13045 042502 042712 040000 BIC #S2.DIP,(R2) ;;; [5.1015] REMOVE REQUEST IN PROGRESS
13046 042506 005337 005046' DEC .TTS2F ;;; [5.1015] REMOVE CLOCK COUNT
13047 042512 000416 BR 45$ ;;; [5.1015] TRY TO ENABLE THE LINE NOW
13048 ;
13049 ;
13050 ; HERE TO INITIATE THE LINE START
13051 ;
13052 042514 35$:
13053 042514 CALL .STDHL ;;; [5.1015] SET UP THE LINE NUMBER
042514 004737 037416' JSR PC,.STDHL
13054 042520 100407 BMI 40$ ;;; [5.1015] BRANCH IF THIS IS A DL-11
13055 042522 016546 000004 MOV STSW0(R5),-(SP) ;;; [5.1015] GET THE SPEED WORD
13056 042526 042716 140000 BIC #S0.MSK,(SP) ;;; [5.1015] GET RID OF STATUS
13057 042532 012664 000004 MOV (SP)+,4(R4) ;;; [5.1015] SET THE SPEED
13058 042536 000404 BR 45$ ;;; [5.1015] AND EXIT
13059 ;
13060 042540 40$:
13061 042540 105065 000004 CLRB STSW0(R5) ;;; [5.1015] ALLOW DL-11 INPUT
13062 042544 052714 000100 BIS #DL.REN,(R4) ;;; [5.1015] SO
13063 ;
13064 ; HERE TO TRANSMIT THE XON
13065 ;
13066 042550 45$:
13067 042550 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; [5.1015] OUTPUT ACTIVE??
13068 042556 001005 BNE 50$ ;;; [5.1015] YES -- DEFER THE REQUEST ONCE MORE
13069 042560 CALL .TFXON ;;; [5.1016] NO -- FORCE THE XON
042560 004737 042774' JSR PC,.TFXON
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 243-1
TERMINAL DRIVER -- .TTENB (ENABLE INPUT FOR LINE)
13070 042564 042712 115400 BIC #S2.ENB!S2.DDN!S2.LCL!S2.CNT,(R2) ;;; [5.1015] CLEAR THE REQUEST
13071 042570 000440 BR 75$ ;;; [5.1015] AND EXIT
13072 ;
13073 ;
13074 ; HERE TO DEFER THE LINE START
13075 ;
13076 042572 50$:
13077 042572 052712 010000 BIS #S2.ENB,(R2) ;;; [5.1015] SET DEFERRED REQUEST
13078 042576 042712 020000 BIC #S2.DIS,(R2) ;;; [5.1015] REMOVE "OTHER" REQUEST
13079 042602 000431 BR 70$ ;;; [5.1015] STOP THE LINE AND EXIT
13080 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 244
TERMINAL DRIVER -- .TTBTW (BREAK-THROUGH WRITE FUNCTION)
13082 .SBTTL TERMINAL DRIVER -- .TTBTW (BREAK-THROUGH WRITE FUNCTION)
13083
13084 ;+
13085 ; .TTBTW -- BREAK-THROUGH WRITE FUNCTION
13086 ;
13087 ; THIS SUBROUTINE WILL FORCE A SINGLE CHARACTER TO A LINE AT THE HEAD OF ITS
13088 ; OUTPUT LIST AND OVER AN OUTPUT XOFF.
13089 ;
13090 ; INPUTS:
13091 ;
13092 ; R4 -- CHARACTER TO BE SENT
13093 ; R5 -- POINTS TO DLS ENTRY FOR THIS LINE
13094 ;
13095 ; OUTPUTS:
13096 ;
13097 ; NO REGISTERS ALTERED
13098 ;
13099 ; NOTES:
13100 ;
13101 ; THIS ROUTINE MUST BE ENTERED AT PRI5 OR HIGHER
13102 ; THIS ROUTINE ASSUMES THAT THE DEVICE EXISTS
13103 ;-
13104
13105 042604 .TTBTW::
13106 042604 010046 MOV R0,-(SP) ;;; [5.1015] SAVE R0
13107 042606 010246 MOV R2,-(SP) ;;; [5.1015] AND R2
13108 042610 010446 MOV R4,-(SP)
13109 042612 CALL .TTSW2 ;;; [5.1016] FIND OUR "STSW2" ENTRY
042612 004737 042754' JSR PC,.TTSW2
13110 042616 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; [5.1016] OUTPUT ACTIVE??
13111 042624 001017 BNE 65$ ;;; [5.1016] YES -- DEFER THE REQUEST
13112 042626 CALL BLDPKT ;;; [5.1016] NO -- ALLOCATE AND BUILD THE PACKET
042626 004737 042702' JSR PC,BLDPKT
13113 042632 105012 CLRB (R2) ;;; [5.1016] RENDER DEFERRED CHARACTER NULL
13114 042634 011502 MOV (R5),R2 ;;; [5.1015] GET POINTER TO FIRST NODE IN LIST
13115 042636 010015 MOV R0,(R5) ;;; [5.1015] SET NEW PACKET AS NEW FIRST NODE
13116 042640 010210 MOV R2,(R0) ;;; [5.1015] LINK REST OF QUEUE
13117 042642 CALL .STDHL ;;; [5.1015] SET THE LINE NUMBER
042642 004737 037416' JSR PC,.STDHL
13118 042646 100403 BMI 55$ ;;; [5.1015] BRANCH IF THIS IS A DL-11
13119 042650 CALL .DHSTO ;;; [5.1015] START THE MESSAGE UP
042650 004737 034164' JSR PC,.DHSTO
13120 042654 000406 BR 75$ ;;; [5.1015] AND EXIT
13121 ;
13122 042656 55$:
13123 042656 CALL .DLSTO ;;; [5.1015] START UP THE DL-11
042656 004737 034340' JSR PC,.DLSTO
13124 042662 000403 BR 75$ ;;; [5.1016] AND EXIT
13125 ;
13126 042664 65$:
13127 042664 110412 MOVB R4,(R2) ;;; [5.1016] SET DEFERRED REQUEST
13128 042666 70$:
13129 042666 CALL .TTSTP ;;; [5.1016] FORCE THE LINE STOP
042666 004737 041650' JSR PC,.TTSTP
13130 042672 75$:
13131 042672 012604 MOV (SP)+,R4
13132 042674 012602 MOV (SP)+,R2 ;;; [5.1015] RESTORE REGISTERS
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 244-1
TERMINAL DRIVER -- .TTBTW (BREAK-THROUGH WRITE FUNCTION)
13133 042676 012600 MOV (SP)+,R0
13134 042700 RETURN ;;; [5.1015] AND EXIT
042700 000207 RTS PC
13135
13136 .DSABL LSB
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 245
TERMINAL DRIVER -- BLDPKT (BUILD A TERMINAL PACKET)
13138 .SBTTL TERMINAL DRIVER -- BLDPKT (BUILD A TERMINAL PACKET)
13139
13140 ;+
13141 ; BLDPKT -- BUILD A TERMINAL PACKET
13142 ;
13143 ; THIS SUBROUTINE WILL BUILD A TERMINAL OUTPUT LIST ENTRY FOR THE
13144 ; CHARACTER IN R4.
13145 ;
13146 ; INPUTS:
13147 ;
13148 ; R4 -- CHARACTER TO BE TRANSMITTED
13149 ;
13150 ; OUTPUTS:
13151 ;
13152 ; R0 -- POINTER TO NEW TERMINAL PACKET
13153 ;-
13154
13155 042702 BLDPKT:
13156 042702 010146 MOV R1,-(SP) ;;; [5.1015] SAVE R1
13157 042704 012701 000012 MOV #12,R1 ;;; [5.1016] SET THE NODE SIZE
13158 042710 CALL ..ALCB ;;; [5.1015] GET A BUFFER
042710 004737 044416' JSR PC,..ALCB
13159 042714 103414 BCS 10$ ;;; [5.1015] POOL EXHAUSTED IF CC-C SET
13160 042716 010046 MOV R0,-(SP) ;;; [5.1015] SAVE BUFFER POINTER
13161 042720 005020 CLR (R0)+ ;;; [5.1016] GET OVER THE LINKAGE
13162 042722 010120 MOV R1,(R0)+ ;;; [5.1016] SET THE NODE SIZE
13163 042724 011610 MOV (SP),(R0) ;;; [5.1016] SET THE DATA ADDRESS
13164 042726 062720 000010 ADD #10,(R0)+ ;;; [5.1016] SO
13165 042732 012720 000001 MOV #1,(R0)+ ;;; [5.1016] SET THE BYTE COUNT
13166 042736 110410 MOVB R4,(R0) ;;; [5.1016] AND NOW THE DATA
13167 042740 012600 MOV (SP)+,R0 ;;; [5.1015] RESTORE BUFFER POINTER
13168 042742 012601 MOV (SP)+,R1 ;;; [5.1015] RESTORE R1
13169 042744 RETURN ;;; [5.1015] TO CALLER
042744 000207 RTS PC
13170 042746 10$:
13171 042746 .CRASH BO5 ;;; [5.1015] BUFFER OVERFLOW...
042746 000004 IOT
042750 102 117 065 .ASCIZ /BO5/
042753 000
13172 ;
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 246
TERMINAL DRIVER -- .TTSW2 (FIND OFFSET INTO "STSW2" TABLE)
13174 .SBTTL TERMINAL DRIVER -- .TTSW2 (FIND OFFSET INTO "STSW2" TABLE)
13175
13176 ;+
13177 ; .TTSW2 -- FIND OFFSET INTO "STSW2" TABLE
13178 ;
13179 ; INPUTS:
13180 ;
13181 ; R5 -- POINTS TO DLS ENTRY FOR THIS LINE
13182 ;
13183 ; OUTPUTS:
13184 ;
13185 ; R2 -- POINTS TO "STSW2" ENTRY FOR THIS LINE
13186 ;-
13187
13188 042754 .TTSW2::
13189 042754 010502 MOV R5,R2 ;;; [5.1015] COPY DLS POINTER TO R2
13190 042756 162702 002776' SUB #TTTBL,R2 ;;; [5.1015] FIND OFFSET INTO "STSW2" TABLE
13191 042762 006202 ASR R2
13192 042764 006202 ASR R2 ;;; [5.1015] SO
13193 042766 062702 005060' ADD #STSW2,R2 ;;; [5.1015] VOILA!
13194 042772 RETURN ;;; [5.1015] TO CALLER
042772 000207 RTS PC
TTYDRR - GENERAL TERMINAL HAND MACRO M1113 11-NOV-81 11:13 PAGE 247
TERMINAL DRIVER -- .TFXON (FORCE AN XON FOR A LINE)
13196 .SBTTL TERMINAL DRIVER -- .TFXON (FORCE AN XON FOR A LINE)
13197
13198 ;+
13199 ; .TFXON -- FORCE AN XON FOR A LINE
13200 ; .TFXOF -- FORCE AN XOFF FOR A LINE
13201 ;
13202 ; THESE SUBROUTINES WILL FORCE THE INDICATED CHARACTER TO THE LINE IMMEDIATELY
13203 ;
13204 ; INPUTS:
13205 ;
13206 ; R5 -- POINTS TO DLS ENTRY FOR THE LINE
13207 ;
13208 ; OUTPUTS:
13209 ;
13210 ; NO REGISTERS ALTERED
13211 ;
13212 ; NOTES:
13213 ;
13214 ; THIS ROUTINE MUST BE ENTERED AT PRI5 OR HIGHER
13215 ; THIS ROUTINE ASSUMES THAT THE DEVICE EXISTS
13216 ; THIS ROUTINE ASSUMES THAT THE DEVICE IS NOT OUTPUT ACTIVE
13217 ;-
13218
13219 .ENABL LSB
13220
13221 042774 .TFXON::
13222 042774 010446 MOV R4,-(SP) ;;; [5.1016] SAVE R4
13223 042776 012704 000021 MOV #C.HXON,R4 ;;; [5.1016] SET THE XON CHARACTER
13224 043002 000403 BR 10$ ;;; [5.1016] DO COMMON CODE
13225 ;
13226 043004 .TFXOF::
13227 043004 010446 MOV R4,-(SP) ;;; [5.1016] SAVE R4
13228 043006 012704 000023 MOV #C.HXOF,R4 ;;; [5.1016] SET THE XOFF CHARACTER
13229 043012 10$:
13230 043012 CALL .TTBTW ;;; [5.1016] FORCE IT OUT
043012 004737 042604' JSR PC,.TTBTW
13231 043016 012604 MOV (SP)+,R4 ;;; [5.1016] RESTORE R4
13232 043020 RETURN ;;; [5.1016] TO CALLER
043020 000207 RTS PC
13233
13234 .DSABL LSB
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 249
TERMINAL DRIVER -- .TFXON (FORCE AN XON FOR A LINE)
13237 .TITLE SCOMM - COMMON DATA AND SUBROUTINES
13238 .SBTTL SYSTEM COMMON SUBROUTINES -- COPYRIGHT STATEMENT
13239 043022 IDENT$ 14,32,RSX$$F
.IDENT /B14320/
13240 ;
13241 ; COPYRIGHT (C) 1975, 1978 BY
13242 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
13243 ;
13244 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
13245 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
13246 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
13247 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
13248 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
13249 ;
13250 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
13251 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
13252 ; CORPORATION.
13253 ;
13254 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
13255 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
13256 ;
13257 ; MODULE: "SCOMM"
13258 ; VERSION: 14-32
13259 ; AUTHOR: R. MCLEAN
13260 ; DATE: 19 JUL 75
13261 ;
13262 ;
13263 ; MODIFICATIONS:
13264 ;
13265 ; THIS MODULE CONTAINS:
13266 ;
13267 ; 1 -- THIS MODULE CONTAINS SYSTEM COMMON MODULES AND TABLES
13268 ;
13269 ; NO. DATE PROGRAMMER PURPOSE
13270 ; --- ---- ---------- -------
13271 ; 001 27-JUL-76 J. MASSE CHANGE 'LBNL' FOR DX0 & DX1
13272 ; FROM 496. TO 494.
13273 ; 002 8-AUG-76 J. MASSE CHANGE VERSION NO. TO 004A
13274 ; 003 9-AUG-76 J. MASSE ADD KLINIK HOOKS
13275 ; 004 20-OCT-76 A. PECKHAM ADD DORBELL COUNTER
13276 ; 005 20-OCT-76 A. PECKHAM CHANGE VERSION NO. TO 006A
13277 ; 006 03-FEB-77 R. BELANGER ADD GENERALIZED DL11E
13278 ; SERVICE AND NEW KLINIK
13279 ; HOOKS AND HANDLES
13280 ; 007 07-MAR-77 A. PECKHAM FIXED BUG IN ..STTY
13281 ; 008 14-MAR-77 R. BELANGER CONDITIONALLY REMOVE
13282 ; SUPPORT FOR DTE20 DIRECTIVES
13283 ; ADD CODE FOR DYNAMIC ALLOCATION
13284 ; OF .BGBUF AND .FREPL
13285 ; 009 15-JUL-77 R. BELANGER ADD AUTO BAUD SUPPORT
13286 ; 010 02-SEP-77 R. BELANGER XON/XOFF BUG FIX
13287 ; TCO 4.2047 18-OCT-78 R. BELANGER FIX ..STTY TO NOT QUEUE
13288 ; OUTPUT FOR NON-EX LINES
13289 ; TCO 4.2096 30-NOV-78 R. BELANGER FIX "..STPT" TO INSURE DEQUEUE
13290 ; OF TRUNCATED PACKET AT OUTPUT DONE
13291 ; TCO 4.2107 06-DEC-78 R. BELANGER ADD ".KACFL" FLAG FOR NEW
13292 ; KEEP-ALIVE ERROR PROCESSING
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 249-1
SYSTEM COMMON SUBROUTINES -- COPYRIGHT STATEMENT
13293 ; TCO 4.2208 08-MAR-79 R. BELANGER FIX BUG IN "..STIN" TO DISALLOW
13294 ; ACCESS TO KL MEMORY DURING
13295 ; PROTOCOL PAUSE.
13296 ; TCO 4.2212 08-MAR-79 R. BELANGER MOVE DATABASE TO FE STATUS BLOCK
13297 ; TCO 4.2216 16-MAR-79 R. BELANGER ALLOW DTE-20 TO RUN AT FULL SPEED
13298 ; TCO 4.2217 19-MAR-79 R. BELANGER RETRY ALL EBUS PARITY ERRORS AND
13299 ; SNAPSHOT ALL FAILURES
13300 ; TCO 4.2265 23-MAY-79 R. BELANGER FIX KLINIK BUG
13301 ; TCO 5.1008 11-OCT-79 R. BELANGER ADD EBUS PARITY ERROR AND DEX
13302 ; ERROR LOGGING
13303 ; TCO 5.1015 23-OCT-79 R. BELANGER ADD NEW TERMINAL INPUT CONTROL
13304 ; TCO 4.1.1013 12-NOV-79 R. BELANGER FIX CORE ALLOCATOR BUG FOR
13305 ; NEGATIVE BYTE COUNT
13306 ; TCO 4.1.1035 16-NOV-79 R. BELANGER ADD QUEUE ARBITRATION MECHANISM
13307 ; TCO 4.1.1065 07-JAN-80 R. BELANGER DON'T RETRY DEX ERRORS
13308 ; TCO 4.1.1104 05-MAR-80 R. BELANGER FIX BUG IN CORE ALLOCATOR
13309 ; TCO 4.1.1105 11-MAR-80 R. BELANGER CHANGE "EF.PR1" RECOGNITION
13310 ; TCO 4.1.1137 05-APR-80 R. BELANGER LIMIT TO-10 QUEUE NODE TO 60 BYTES
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 250
SYSTEM COMMON SUBROUTINES -- COPYRIGHT STATEMENT
13312 ; MACRO LIBRARY CALLS
13313 ;
13314 .MCALL .CRASH,DIR$,DMYG$
13315 .MCALL MTPI,MFPI,MTPS,MFPS,CALL,RETURN,.INH5,.ENB5
13316 .MCALL $DEF,F11DF$
13317 .MCALL .INH0,.ENB0,WSIG$S
13318 .MCALL .ENB,.INH,.ENB6,.INH6
13319 043022 $DEF
13320 043022 F11DF$
13321
13322 ; MSETRP == 1
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 251
SCOMM MODULE -- BITTBL (ASH/BIC/BIS SIMULATION)
13324 .SBTTL SCOMM MODULE -- BITTBL (ASH/BIC/BIS SIMULATION)
13325
13326 043022 BITTBL::
13327 043022 000001 .WORD 1
13328 043024 000002 .WORD 2
13329 043026 000004 .WORD 4
13330 043030 000010 .WORD 10
13331 043032 000020 .WORD 20
13332 043034 000040 .WORD 40
13333 043036 000100 .WORD 100
13334 043040 000200 .WORD 200
13335 043042 000400 .WORD 400
13336 043044 001000 .WORD 1000
13337 043046 002000 .WORD 2000
13338 043050 004000 .WORD 4000
13339 043052 010000 .WORD 10000
13340 043054 020000 .WORD 20000
13341 043056 040000 .WORD 40000
13342 043060 100000 .WORD 100000
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 252
SCOMM MODULE -- .CEFN (CONVERT EFN)
13344 .SBTTL SCOMM MODULE -- .CEFN (CONVERT EFN)
13345
13346 ;+
13347 ; .CEFN -- SUBROUTINE TO CONVERT AN EVENT FLAG NUMBER INTO A FORM SUCH THAT
13348 ; IT MAY BE READ, SET, AND CLEARED VIA "BIT", "BIS", AND "BIC" INSTRUCTIONS.
13349 ;
13350 ; ALTERNATE ENTRY POINT ".CEFN3" THAT DETERMINES EFN WITHOUT DOING
13351 ; MOVE FROM PREVIOUS (MFPS)
13352 ;
13353 ; ENTRY CONDITIONS:
13354 ;
13355 ; R1 -- ADDRESS OF A WORD CONTAINING
13356 ; R3 -- EFN NUMBER (FOR .CEFN3 ENTRY ONLY)
13357 ; THE EVENT FLAG NUMBER, AND THE EFN CAN BE FETCHED
13358 ; R5 -- ATL NODE ADDRESS OF ISSUING TASK (.CRTSK)
13359 ;
13360 ; CALLING SEQUENCE:
13361 ;
13362 ; CALL .CEFN
13363 ;
13364 ; - OR -
13365 ;
13366 ; CALL .CEFN3
13367 ;
13368 ; EXIT CONDITIONS:
13369 ;
13370 ; R3 -- BIT MASK SELECTING FLAG IN WORD
13371 ; R2 -- ADDRESS OF WORD CONTAINING THE FLAG
13372 ;
13373 ; IF AN EVENT FLAG IS NOT SPECIFIED (EFN=0),
13374 ; BOTH R2 & R3 ARE RETURNED ZERO.
13375 ;
13376 ; CONDITION CODES ARE SET PER "TST R3" AT RETURN
13377 ;
13378 ; IF EFN IS OUT OF RANGE (<0 OR >64.) CONTROL IS TRANSFERRED
13379 ; TO DIRECTIVE ERROR STATUS 'E.97'.
13380 ;
13381 ; REGISTERS ALTERED:
13382 ;
13383 ; R2,R3
13384 ;-
13385
13386 043062 .CEFN::
13387 043062 005002 CLR R2 ; (CLEARED FOR DIVIDE AND ERROR RETURN)
13388 043064 MFPS @R1,R3
043064 011103 MOV @R1,R3
13389 043066 .CEFN3::
13390 043066 042703 177400 BIC #177400,R3
13391 043072 001423 BEQ 20$ ; EFN=0 -- NO FLAG SPECIFIED
13392 043074 020327 000100 CMP R3,#64. ; IS EFN IN RANGE: 0-64.?
13393 043100 101022 BHI X8X97 ; NO -- RETURN STS=-97
13394 043102 005303 DEC R3 ; YES -- CONVERT EFN TO INDEX (0,2,4,6)
13395 ; IN R2, AND FLAG MASK IN R3.
13396 043104 CALL DIV216 ; DIVIDE R2 BY 16
043104 004737 044036' JSR PC,DIV216
13397 043110 006302 ASL R2
13398 043112 006303 ASL R3 ; FIND BIT MASK
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 252-1
SCOMM MODULE -- .CEFN (CONVERT EFN)
13399 043114 016303 043022' MOV BITTBL(R3),R3
13400 043120 020227 000004 CMP R2,#4 ; FLAG IN RANGE 33-64?
13401 043124 002403 BLT 10$
13402 043126 062702 001004' ADD #.COMEF-4,R2 ; YES -- SET R2 TO ADDRESS OF WORD IN
13403 043132 000403 BR 20$ ; SCOMM (COMMON EVENT FLAGS)
13404 ;
13405 043134 10$:
13406 043134 060502 ADD R5,R2 ; NO -- SET R2 TO ADDRESS OF WORD IN
13407 043136 062702 000020 ADD #A.EF,R2 ; ATL NODE (TASK'S EVENT FLAGS)
13408 043142 20$:
13409 043142 005703 TST R3 ; SET CONDITION CODES
13410 043144 RETURN
043144 000207 RTS PC
13411
13412 043146 X8X97::
13413 043146 104637 TRAP DE.97
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 253
SCOMM MODULE -- .CKDEL (CLOCK DELETE)
13415 .SBTTL SCOMM MODULE -- .CKDEL (CLOCK DELETE)
13416
13417 ;+
13418 ; .CKDEL -- SUBROUTINE TO REMOVE AN ENTRY FORM THE CLOCK LIST
13419 ;
13420 ; ENTRY CONDITIONS:
13421 ;
13422 ; R4 -- POINTER TO ENTRY TO BE REMOVED
13423 ;
13424 ; CALLING SEQUENCE:
13425 ;
13426 ; CALL .CKDEL
13427 ;
13428 ; EXIT CONDITIONS:
13429 ;
13430 ; NO ERROR CONDITIONS
13431 ;
13432 ; REGISTERS ALTERED: NONE
13433 ;-
13434
13435 .ENABL LSB
13436
13437 043150 .CKDEL::
13438 043150 010446 MOV R4,-(SP) ; SAVE REGISTERS
13439 043152 010546 MOV R5,-(SP)
13440 043154 010405 MOV R4,R5
13441 043156 062705 000014 ADD #C.SZ,R5 ; LOOK AT THE NEXT ENTRY
13442 043162 10$:
13443 043162 012524 MOV (R5)+,(R4)+ ; NO -- MOVE AN ENTRY UP
13444 043164 001406 BEQ 30$ ; END OF TABLE
13445 043166 012524 MOV (R5)+,(R4)+
13446 043170 012524 MOV (R5)+,(R4)+
13447 043172 012524 MOV (R5)+,(R4)+
13448 043174 012524 MOV (R5)+,(R4)+
13449 043176 012524 MOV (R5)+,(R4)+
13450 043200 000770 BR 10$ ; TRY AGAIN
13451 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 254
SCOMM MODULE -- .CKDEL (CLOCK DELETE)
13487
13488 043202 30$:
13489 043202 005024 CLR (R4)+ ; INSURE LAST ENTRY 0
13490 043204 012605 MOV (SP)+,R5 ; RESTORE
13491 043206 012604 MOV (SP)+,R4
13492 043210 RETURN ; RETURN TO CALLER
043210 000207 RTS PC
13494
13495 .DSABL LSB
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 255
SCOMM MODULE -- ..ERLG (ERROR LOGGING)
13497 .SBTTL SCOMM MODULE -- ..ERLG (ERROR LOGGING)
13498
13499 ;+
13500 ; ..ERLG -- GENERAL ERROR LOGGING ROUTINE
13501 ;
13502 ; THIS SUBROUTINE WILL TRANSMIT ENTRIES IN A PARTICULAR ERROR LOGGING QUEUE
13503 ; TO THE KL. THE FORMAT FOR AN ERROR LOGGING QUEUE LISTHEAD IS:
13504 ;
13505 ; .WORD ADDR ; ADDRESS OF FIRST NODE IN QUEUE
13506 ; .WORD COUNT ; COUNT OF NODES IN QUEUE
13507 ;
13508 ; INPUTS:
13509 ;
13510 ; R3 -- DEVICE CODE FOR DEVICE TO BE ERROR LOGGED
13511 ; R4 -- ADDRESS OF ERROR LOG QUEUE LISTHEAD
13512 ;
13513 ; OUTPUTS:
13514 ;
13515 ; R0,R1,R2 -- CLOBBERED
13516 ;
13517 ; NOTE:
13518 ;
13519 ; THIS ROUTINE MUST BE CALLED FROM TASK LEVEL
13520 ;-
13521
13522 043212 ..ERLG::
13523 043212 005737 001012' TST .COMEF+2 ; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
13524 043216 100034 BPL 40$ ; [4.1.1105] NO -- JUST EXIT
13525 043220 011400 MOV (R4),R0 ; [5.1008] ANYTHING THERE??
13526 043222 001432 BEQ 40$ ; [5.1008] NO -- EXIT
13527 043224 032020 BIT (R0)+,(R0)+ ; [5.1008] YES -- MOVE OVER THE LISTHEAD
13528 043226 012702 000001 MOV #1,R2 ; [5.1008] SET UP EVENT FLAG
13529 043232 012701 100007 MOV #BC.HDS+BIT15,R1 ; [5.1008] SET UP FUNCTION CODE
13530 043236 CALL ..STIN ; [5.1008] LOG THE ERROR
043236 004737 045646' JSR PC,..STIN
13531 043242 103413 BCS 30$ ; [5.1008] ERROR IF CC-C IS SET
13532 043244 013701 001006' MOV .CRTSK,R1 ; [5.1008] POINT TO CURRENT TASK
13533 043250 10$:
13534 043250 030261 000020 BIT R2,A.EF(R1) ; [5.1008] HAS THE EVENT FLAG SET??
13535 043254 001004 BNE 20$ ; [5.1008] YES -- GO ON
13536 043256 WSIG$S ; [5.1008] NO -- WAIT A CLOCK TICK
043256 012746 MOV (PC)+,-(SP)
043260 061 001 .BYTE 49.,1
043262 104375 EMT 375
13537 043264 000771 BR 10$ ; [5.1008] AND TRY AGAIN
13538 ;
13539 043266 20$:
13540 043266 040261 000020 BIC R2,A.EF(R1) ; [5.1008] CLEAR THE EVENT FLAG
13541 043272 30$:
13542 043272 034040 BIT -(R0),-(R0) ; [5.1008] BACK OVER THE LISTHEAD
13543 043274 011014 MOV (R0),(R4) ; [5.1008] REMOVE FROM LIST
13544 043276 005364 000002 DEC 2(R4) ; [5.1008] COUNT THIS NODE OUT
13545 043302 CALL ..DECN ; [5.1008] AND DEQUEUE THE NODE
043302 004737 044546' JSR PC,..DECN
13546 043306 000741 BR ..ERLG ; [5.1008] AND SEE ABOUT OTHER ERRORS
13547 ;
13548 043310 40$:
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 255-1
SCOMM MODULE -- ..ERLG (ERROR LOGGING)
13549 043310 RETURN ; [5.1008] TO CALLER
043310 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 256
SCOMM MODULE -- ..IODN (SUBROUTINE TO COMPLETE I/O)
13551 .SBTTL SCOMM MODULE -- ..IODN (SUBROUTINE TO COMPLETE I/O)
13552
13553 ;+
13554 ;
13555 ; ..IODN -- SUBROUTINE TO COMPLETE THE USER'S I/O
13556 ; REQUEST. ..IODN SETS TWO WORDS OF
13557 ; THE I/O STATUS BLOCK IN THE USER'S AREA AND
13558 ; AN EVENT FLAG (IF SPECIFIED) IS SET.
13559 ; THE REQUEST NODE IS RETURNED TO THE POOL .
13560 ;
13561 ; JUST BEFORE ..IODN EXITS IT DECLARES A SIG EVENT TO INFORM THE
13562 ; SYSTEM THAT SOME I/O IS COMPLETE AND IF POSSIBLE A TASK MAY BE RESTARTED.
13563 ;
13564 ; CALLING SEQUENCE:
13565 ;
13566 ; R1 -- REQUEST NODE ADDRESS
13567 ; R3 -- I/O STATUS BLOCK WD. 00
13568 ; R4 -- I/O STATUS BLOCK WD. 01.
13569 ;
13570 ; CALL ..IODN
13571 ;-
13572
13573 043312 ..IODN::
13574 043312 010046 MOV R0,-(SP) ; SAVE THE REGISTERS
13575 043314 010446 MOV R4,-(SP)
13576 ; STATUS SO THAT THEY CAN BE SET BY BLXO
13577 043316 010346 MOV R3,-(SP)
13578 043320 010604 MOV SP,R4 ; POINT TO THE TWO VALUES FOR I/O STATUS BLOCK
13579 043322 010246 MOV R2,-(SP)
13580 043324 012703 000004 MOV #4,R3 ; SET UP TO MOVE 4 BYTES
13581 043330 016102 000016 MOV R.SB(R1),R2
13582 043334 001402 BEQ 10$ ; SKIP IF NO STATUS BLOCK
13583 043336 CALL ..BLXO ; MOVE THE TWO WORDS
043336 004737 047074' JSR PC,..BLXO
13584 043342 10$:
13585 043342 012602 MOV (SP)+,R2 ; RESTORE R2
13586 043344 012603 MOV (SP)+,R3
13587 043346 116100 000013 MOVB R.FN(R1),R0 ; PICKUP EVENT FLAG NUMBER
13588 043352 001404 BEQ 20$ ; DON'T TRY TO SET IF NO FLAG
13589 043354 016104 000006 MOV R.AT(R1),R4 ; FIND THE ATL NODE ADDRESS
13590 043360 CALL ..SEFN ; SET THE EVENT FLAG
043360 004737 043754' JSR PC,..SEFN
13591 043364 20$:
13592 043364 CALL ..DSEV ; DECLARE A SIGNIFICANT EVENT
043364 004737 044026' JSR PC,..DSEV
13593 043370 016104 000020 MOV R.AS(R1),R4 ; AST ADDRESS?
13594 043374 001406 BEQ 30$ ; NO -- FORGET IT
13595 043376 010546 MOV R5,-(SP) ; SAVE R5
13596 043400 016105 000006 MOV R.AT(R1),R5 ; SET UP THE ATL ADDRESS
13597 043404 CALL .STAST ; START AST (NOTE -- CAN'T FAIL)!!
043404 004737 015730' JSR PC,.STAST
13598 043410 012605 MOV (SP)+,R5 ; RESTORE R5
13599 043412 30$:
13600 043412 010100 MOV R1,R0 ; SET UP NODE ADDRESS
13601 043414 012701 000040 MOV #32.,R1 ; SET UP SIZE OFNODE
13602 043420 CALL ..DECB ; DEALLOCATE CORE BUFFER
043420 004737 044552' JSR PC,..DECB
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 256-1
SCOMM MODULE -- ..IODN (SUBROUTINE TO COMPLETE I/O)
13603 043424 012604 MOV (SP)+,R4
13604 043426 012600 MOV (SP)+,R0
13605 043430 RETURN
043430 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 257
SCOMM MODULE -- ..DQRN (DEQUEUE A NORMAL REQUEST)
13607 .SBTTL SCOMM MODULE -- ..DQRN (DEQUEUE A NORMAL REQUEST)
13608
13609 ;+
13610 ; ..DQRN -- ROUTINE TO PICK A REQEST NODE FROM PUD
13611 ;
13612 ; THE NODE ON THE TOP IF THE QUEUE (HIGHEST PRIORITY) IS
13613 ; PICKED FROM THE QUEUE AND RETURNED TO THE HANDLER TASK.
13614 ;
13615 ; IF NO NODE CAN BE FOUND ..DQRN RETURNS WITH THE CONDITION CODES
13616 ; SET TO INDICATE FAILURE TO PICK A NODE.
13617 ;
13618 ; TASK SWITCHING IS INHIBITED DURING THE SCAN OF THE DEQUE TO PREVENT
13619 ; ..IPRI FROM INSERTING A NODE INTO THE LIST WHILE ONE IS BEING REMOVED.
13620 ;
13621 ; CALLING SEQUENCE:
13622 ;
13623 ; R0 -- ASCII 2 CHARACTER DEVICE NAME
13624 ;
13625 ; CALL ..DQRN
13626 ;
13627 ; EXIT CONDITIONS:
13628 ;
13629 ; R0 -- PUD ADDRESS OF NODE PICKED+U.RF
13630 ; R1 -- ADDRESS OF REQUEST NODE OR UNDEFINED IF NO NODE FOUND
13631 ; R2 -- UNIT NUMBER
13632 ; R3 -- BYTE COUNT
13633 ; R4 -- HIGH ORDER ADDRESS (BITS 4,5)
13634 ; R5 -- LOW ORDER ADDRESS
13635 ;
13636 ; CC -- C BIT SET IF NO NODE FOUND
13637 ; CC -- C BIT CLEAR IF NODE FOUND
13638 ;
13639 ; EVENT FLAG EF.NIR CLEARED IF NO NODE FOUND
13640 ; EVENT FLAG EF.NIR SET IF NODE FOUND
13641 ;-
13642
13643 043432 ..DQRN::
13644 043432 013701 001006' MOV .CRTSK,R1 ; CLEAR THE EVENT FLAG OF THE HANDLER
13645 043436 042761 000010 000020 BIC #EF.NIR,A.EF(R1)
13646 043444 012704 010232' MOV #.PUDBA,R4 ; FIND THE LOGICAL UNIT NUMBER
13647 043450 10$:
13648 043450 020014 CMP R0,@R4 ; FIND THE POINTER TO THIS LUN
13649 043452 001403 BEQ 20$ ; FOUND CORRECT LUN
13650 043454 062704 000050 ADD #U.SZ,R4 ; POINT TO NEXT LUN
13651 043460 000773 BR 10$ ; AND TRY AGAIN
13652 ;
13653 043462 20$:
13654 043462 062704 000022 ADD #U.RF,R4 ; NO -- DEQUE FIRST NODE
13655 043466 .INH0 ;; INHIBIT TASK SWITCHING
043466 013746 177776 MOV @#PS,-(SP)
043472 112737 000140 177776 MOVB #140,@#PS
13656 043500 30$:
13657 043500 010446 MOV R4,-(SP) ;; SAVE ADDRESS
13658 043502 CALL ..PICK ;; PICK A NODE IF POSSIBLE
043502 004737 044240' JSR PC,..PICK
13659 043506 103011 BCC 40$ ;; POSSIBLE -- CONTINUE
13660 043510 012604 MOV (SP)+,R4 ;; RESTORE PUD ADDRESS
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 257-1
SCOMM MODULE -- ..DQRN (DEQUEUE A NORMAL REQUEST)
13661 043512 062704 000050 ADD #U.SZ,R4 ;; LOOK AT NEXT ENTRY
13662 043516 026464 177756 177706 CMP -U.RF(R4),-U.RF-U.SZ(R4) ; CHECK DEVICE NAME
13663 043524 001765 BEQ 30$
13664 043526 005216 INC @SP ;; SET CARRY
13665 043530 000466 BR 65$ ;; AND RETURN
13666 ;
13667 043532 40$:
13668 043532 010401 MOV R4,R1 ;; SET UP NODE ADDRESS FOR RETURN
13669 043534 016102 000004 MOV R.TD(R1),R2 ;; YES -- CHHANGE THE DISK ADDRESS
13670 043540 013704 001006' MOV .CRTSK,R4 ;; SET THE EVENT FLAG
13671 043544 016105 000014 MOV R.FC(R1),R5 ;; FIND THE FUNCTION CODE
13672 043550 020527 001400 CMP R5,#IO.ATT ;; ATTACH FUNCTION??
13673 043554 001457 BEQ 70$ ;; YES -- HANDLE ATTACH HERE
13674 043556 020527 002000 CMP R5,#IO.DET ;; NO -- DETACH ??
13675 043562 001470 BEQ 80$ ;; YES -- HANDLE HERE
13676 043564 022705 001010 CMP #IO.LOV,R5 ;; NO -- IS THE FUNCTION CODE LOAD OVERLAY??
13677 043570 001013 BNE 50$ ;; NO -- PROCEED
13678 043572 066261 000034 000034 ADD S.DL+2(R2),R.PB+10(R1)
13679 043600 005561 000032 ADC R.PB+6(R1)
13680 043604 066261 000032 000032 ADD S.DL(R2),R.PB+6(R1)
13681 043612 45$:
13682 043612 012761 001000 000014 MOV #IO.RLB,R.FC(R1) ; SET FUNCTION CODE TO READ LOGICAL BLOCK
13683 043620 50$:
13684 043620 022761 000050 000014 CMP #IO.LTK,R.FC(R1) ;; IS THIS A LOAD TASK FUNCTION?
13685 043626 001013 BNE 60$ ;; PROCEED
13686 043630 016202 000012 MOV S.BA(R2),R2 ;; SET THE CORE ADDRESS
13693 043634 010261 000024 MOV R2,R.PB(R1) ;; SET CORE ADDRESS
13694 043640 016102 000006 MOV R.AT(R1),R2 ;; FIND THE ATL NODE ADDRESS
13695 043644 062702 000030 ADD #A.FM+4,R2 ;; SET I/O STATUS WORD TO POINT TO A.FM+4
13696 043650 010261 000016 MOV R2,R.SB(R1) ;;
13697 043654 000756 BR 45$ ;; CHANGE FUNCTION TO READ
13698 ;
13699 043656 60$:
13700 043656 052764 000010 000020 BIS #EF.NIR,A.EF(R4) ;; FOR DQ NORMAL
13701 043664 016103 000026 MOV R.PB+2(R1),R3 ;; FIND THE SIZE OF THE XFER
13702 043670 016102 000024 MOV R.PB(R1),R2 ;; SET UP FOR VALIDATE
13703 043674 CALL ..VXFR ;; VALIDATE XFER
043674 004737 047054' JSR PC,..VXFR
13704 043700 012600 MOV (SP)+,R0 ;; FIND THE PUD ADDRESS
13705 043702 116002 177760 MOVB U.UN-U.RF(R0),R2 ;; SET UNIT NUMBER ON STACK
13706 043706 65$:
13707 043706 .ENB0 ;; ENABLE INTERRUPTS
043706 004737 044302' JSR PC,..ENB0
13708 043712 RETURN ; NO -- RETURN
043712 000207 RTS PC
13709 043714 70$:
13710 043714 012604 MOV (SP)+,R4 ;; RESTORE PUD ADDRESS
13711 043716 016164 000006 177772 MOV R.AT(R1),U.AF-U.RF(R4) ;; SET ATTACH FLAG
13712 043724 75$:
13713 043724 .ENB0 ;; ENABLE TASK SWITCHING
043724 004737 044302' JSR PC,..ENB0
13714 043730 012703 000001 MOV #1,R3 ; RETURN +1 STATUS
13715 043734 005004 CLR R4
13716 043736 CALL ..IODN
043736 004737 043312' JSR PC,..IODN
13717 043742 000633 BR ..DQRN ; DEQUEUE AGAIN
13718 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 257-2
SCOMM MODULE -- ..DQRN (DEQUEUE A NORMAL REQUEST)
13719 043744 80$:
13720 043744 012604 MOV (SP)+,R4 ;; RESTORE PUD ADDRESS
13721 043746 005064 177772 CLR U.AF-U.RF(R4) ;; CLEAR ATTACH
13722 043752 000764 BR 75$ ;; AND RETURN I/O DONE STATUS
13723 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 258
SCOMM MODULE -- ..SEFN (SET EVENT FLAG)
13725 .SBTTL SCOMM MODULE -- ..SEFN (SET EVENT FLAG)
13726
13727 ;+
13728 ; ..SEFN -- SUBROUTINE TO SET AN EVENT FLAG FOR A HANDLER TASK.
13729 ; THIS IS A GENERAL ROUTINE TO SET ANY EVENT FLAG AND
13730 ; MAY BE USED BY A HANDLER TASK AT INTERRUPT LEVEL.
13731 ; THE MAIN PURPOSE OF THIS ROUTINE IS TO
13732 ; SET THE REQUESTOR'S EVENT FLAG FOR ..IODN.
13733 ;
13734 ; CALLING SEQUENCE:
13735 ;
13736 ; R0 -- EVENT FLAG NUMBER 1-64
13737 ; R4 -- ACTIVE TASK LIST ENTRY
13738 ;
13739 ; CALL ..SEFN
13740 ;-
13741
13742 043754 ..SEFN::
13743 043754 010246 MOV R2,-(SP) ; SAVE USED REGISTERS
13744 043756 010346 MOV R3,-(SP)
13745 043760 010003 MOV R0,R3 ;
13746 043762 005303 DEC R3 ; DECREMENT FOR 1 LESS THAN COUNT
13747 ; CONVERT EFN TO INDEX AND
13748 043764 CALL DIV216 ; FLAG MASK
043764 004737 044036' JSR PC,DIV216
13749 043770 006302 ASL R2
13750 043772 006303 ASL R3 ; FIND BIT MASK ADDRESS
13751 043774 020227 000004 CMP R2,#4 ; TEST FOR COMMON SET
13752 044000 002403 BLT 10$ ; NO -- FLAGS IN ATL
13753 044002 062702 001004' ADD #.COMEF-4,R2 ; YES -- POINT TO COMMON FLAGS
13754 044006 000403 BR 20$
13755 ;
13756 044010 10$:
13757 044010 060402 ADD R4,R2 ; POINT TO ATL SET
13758 044012 062702 000020 ADD #A.EF,R2
13759 044016 20$:
13760 044016 056312 043022' BIS BITTBL(R3),@R2 ; SET EVENT FLAGS
13761 044022 012603 MOV (SP)+,R3
13762 044024 012602 MOV (SP)+,R2
13763 ; BR ..DSEV ; DECLARE A SIGNIFICANT EVENT
13764 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 259
SCOMM MODULE -- ..DSEV (DECLARE SIGNIFICANT EVENT)
13766 .SBTTL SCOMM MODULE -- ..DSEV (DECLARE SIGNIFICANT EVENT)
13767
13768 ;+
13769 ; ..DSEV -- COMMON ROUTINE TO DECLARE A SIGNIFICANT EVENT
13770 ;
13771 ; INPUTS:
13772 ;
13773 ; SPECIFIC EVENT MUST BE DECLARED BY CALLER
13774 ;
13775 ; OUTPUTS:
13776 ;
13777 ; NO REGISTERS ALTERED
13778 ;-
13779
13780 044026 ..DSEV::
13781 044026 152737 000001 001014' BISB #EV.SE,.SERFG+0 ; DECLARE SIGNIFIGANT EVENT
13782 044034 RETURN ; RETURN
044034 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 260
SCOMM MODULE -- DIV216 (DIV R2 BY 16)
13784 .SBTTL SCOMM MODULE -- DIV216 (DIV R2 BY 16)
13785
13786 ;+
13787 ; DIV216 -- SUBROUTINE TO SIMULATE A HARDWARE
13788 ; DIVIDE INSTRUCTION (DIV #16,R2)
13789 ;
13790 ; CALLING SEQUENCE:
13791 ;
13792 ; R3 -- NUMBER TO BE DIVIDED BY 16
13793 ;
13794 ; CALL DIV216
13795 ;
13796 ; EXIT CONDITIONS:
13797 ;
13798 ; R3 -- REMAINDER
13799 ; R2 -- QUOTIENT
13800 ;-
13801
13802 044036 DIV216::
13803 044036 010302 MOV R3,R2 ; FIND THE REMAINDER
13804 044040 042703 177760 BIC #177760,R3 ; MASK OFF THE REMAINDER
13805 044044 006002 ROR R2 ; DIVIDE R2 BY 2
13806 044046 006002 ROR R2 ; AGAIN
13807 044050 006002 ROR R2 ; AND AGAIN
13808 044052 006002 ROR R2 ; NOW HAVE DONE IT BY 16.
13809 044054 042702 170000 BIC #170000,R2 ; MASK OFF JUNK PROPIGATED BY ROR
13810 044060 RETURN ; RETURN TO CALLER
044060 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 261
SCOMM MODULE -- ..NDEL (NODE DELETE)
13812 .SBTTL SCOMM MODULE -- ..NDEL (NODE DELETE)
13813
13814 ;+
13815 ; ..NDEL -- ROUTINE TO DELETE A NODE FROM A LIST
13816 ;
13817 ; THIS IS A BASIC SUBROUTINE TO DELETE NODES FROM A LIST.
13818 ; IT DOES NOT DO ANY ACCOUNTING OR LOOKING THE NODE. IT ASSUMES
13819 ; THAT THERE IS A NODE TO BE PICKED AND INHIBITS INTERRUPTS TO
13820 ; PREVENT CONFLICTS WITH NODES BEING ADDED TO A DEQUE.
13821 ;
13822 ; CALLING SEQUENCE:
13823 ;
13824 ; R4 -- POINTER TO NODE TO BE DELETED
13825 ;
13826 ; CALL ..NDEL
13827 ;-
13828
13829 044062 ..NDEL::
13830 044062 010146 MOV R1,-(SP) ; SAVE R1
13831 044064 .INH6 ; INHIBIT ALL INTERRUPTS
044064 013746 177776 MOV @#PS,-(SP)
044070 112737 000300 177776 MOVB #300,@#PS
13832 044076 011401 MOV @R4,R1 ;;; PICK THE NODE
13833 044100 010174 000002 MOV R1,@2(R4) ;;;
13834 044104 016461 000002 000002 MOV 2(R4),2(R1) ;;;
13835 044112 .ENB6 ;;; ENABLE INTERRUPTS
044112 012637 177776 MOV (SP)+,@#PS
13836 044116 012601 MOV (SP)+,R1 ; RESTORE R1
13837 044120 RETURN ; RETURN TO CALLER
044120 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 262
SCOMM MODULE -- ..IPRI (INSERT NODE BY PRIORITY)
13839 .SBTTL SCOMM MODULE -- ..IPRI (INSERT NODE BY PRIORITY)
13840
13841 ;+
13842 ; ..IPRI -- ROUTINE TO INSERT A NODE BY PRIORITY
13843 ;
13844 ; THIS ROUTINE WILL SEARCH A QUEUE (TASK SWITCHING INHIBITED)
13845 ; AND INSERT A NODE IN IT'S CORRECT PRIORITY POSITION. IF THERE
13846 ; IS A NODE IN THE LIST WITH THE SAME PRIORITY AS THE ONE TO BE
13847 ; INSERTED THE NEW NODE WILL COME AFTER THE OTHER NODES WITH THE
13848 ; SAME PRIORITY (FIFO).
13849 ;
13850 ; ..IPRI EXPECTS THE NODE TO HAVE A PRIORITY IN THE COMMON NODE
13851 ; PRIORITY POSITION.
13852 ;
13853 ; CALLING SEQUENCE:
13854 ;
13855 ; R1 -- NODE ADDRESS
13856 ; R2 -- LIST HEAD
13857 ;
13858 ; CALL ..IPRI
13859 ;-
13860
13861 044122 ..IPRI::
13862 044122 010446 MOV R4,-(SP) ; SAVE R4
13863 044124 010204 MOV R2,R4 ; PICK UP THE POINTER TO THE LIST HEAD
13864 044126 .INH0 ; INHIBIT ALL INTERRUPTS DURING SCAN
044126 013746 177776 MOV @#PS,-(SP)
044132 112737 000140 177776 MOVB #140,@#PS
13865 044140 10$:
13866 044140 011404 MOV @R4,R4 ;; PICK UP THE FIRST NODE
13867 044142 020402 CMP R4,R2 ;; END OF THE SCAN?
13868 044144 001404 BEQ 20$ ;; YES -- INSERT THE NODE
13869 044146 126461 000010 000010 CMPB N.PR(R4),N.PR(R1) ;; NO -- LOOK AT THE PRIORITIES
13870 044154 103371 BHIS 10$ ;; NO MATCH TRY AGAIN
13871 044156 20$:
13872 044156 016404 000002 MOV N.BP(R4),R4 ;; BACK UP ONE
13873 044162 CALL ..NADD ;; ADD THE NODE TO THE QUEUE
044162 004737 044176' JSR PC,..NADD
13874 044166 .ENB0 ;; ENABLE INTERRUPTS
044166 004737 044302' JSR PC,..ENB0
13875 044172 012604 MOV (SP)+,R4 ; RESTORE R4
13876 044174 RETURN ; RETURN TO CALLER
044174 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 263
SCOMM MODULE -- ..NADD (NODE ADD)
13878 .SBTTL SCOMM MODULE -- ..NADD (NODE ADD)
13879
13880 ;+
13881 ; ..NADD -- ROUTINE TO ADD A NODE TO A DEQUEUE
13882 ;
13883 ; ..NADD IS THE GENERAL PICK A NODE ROUTINE. THE ADDITION
13884 ; OF A NODE IS DONE WITH INTERRUPTS INHIBITED TO PREVENT
13885 ; A CONFLICT WITH NODE DELETION.
13886 ;
13887 ; CALLING SEQUENCE:
13888 ;
13889 ; R1 -- NODE ADDRESS
13890 ; R4 -- ADDRESS OF LISTHEAD OR PREVIOUS NODE
13891 ;
13892 ; CALL ..NADD
13893 ;-
13894
13895 044176 ..NADD::
13896 044176 010246 MOV R2,-(SP) ; SAVE R2
13897 044200 010461 000002 MOV R4,2(R1) ; SET UP BACKWARD POINTER IN NODE
13898 044204 .INH6 ;;; INHIBIT INTERRUPTS
044204 013746 177776 MOV @#PS,-(SP)
044210 112737 000300 177776 MOVB #300,@#PS
13899 044216 011411 MOV @R4,@R1 ;;; SET UP FORWARD POINTER
13900 044220 010114 MOV R1,@R4 ;;; FORWARD POINTER FROM LIST HEAD
13901 044222 011102 MOV @R1,R2 ;;;
13902 044224 010162 000002 MOV R1,2(R2) ;;;
13903 044230 .ENB6 ;;; ENABLE INTERRUPTS
044230 012637 177776 MOV (SP)+,@#PS
13904 044234 012602 MOV (SP)+,R2 ; RESTORE R2
13905 044236 RETURN ; RETURN TO CALLER
044236 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 264
SCOMM MODULE -- ..PICK (PICK A NODE)
13907 .SBTTL SCOMM MODULE -- ..PICK (PICK A NODE)
13908
13909 ;+
13910 ; ..PICK -- ROUTINE TO PICK A NODE FROM A DEQUEUE
13911 ;
13912 ; ..PICK IS THE GENERAL PICK A NODE ROUTINE. IT'S PRIMARY USE IS TO
13913 ; PICK A NODE FROM A LIST. IT CHECKS TO SEE THAT A NODE DOES EXIST
13914 ; IN THE LIST BUT IT DOES NO ACCOUNTING OF THE NODES. ..PICK INHIBITS
13915 ; INTERRUPTS TO PREVENT A NODE FROM BEING ADDED WHILE IT CHECKS TO SEE
13916 ; IF THERE IS REALLY A NODE TO BE PICKED.
13917 ;
13918 ; CALLING SEQUENCE:
13919 ;
13920 ; R4 -- LIST HEAD OR PREVIOUS NODE TO THE NODE TO BE PICKED
13921 ;
13922 ; CALL ..PICK
13923 ;
13924 ; EXIT CONDITIONS:
13925 ;
13926 ; CC -- C BIT CLEAR
13927 ; R4 -- PICKED NODE ADDRESS
13928 ;
13929 ; ERROR CONDITIONS:
13930 ;
13931 ; CC -- C BIT SET
13932 ; NOTE -- THIS CONDITION CAN'T HAPPEN UNLESS R4 IS THE LISTHEAD
13933 ; R4 -- ZERO
13934 ;-
13935
13936 044240 ..PICK::
13937 044240 000241 CLC ; ASSUME SUCCESS
13938 044242 .INH6 ;;; INHIBIT ALL INTERRPUTS
044242 013746 177776 MOV @#PS,-(SP)
044246 112737 000300 177776 MOVB #300,@#PS
13939 044254 020414 CMP R4,@R4 ;;; IS THERE A NODE TO PICK?
13940 044256 001406 BEQ 20$ ;;; NO -- THEN DON'T PICK IT
13941 044260 011404 MOV @R4,R4 ;;;
13942 044262 CALL ..NDEL ;;; DELETE THE NODE
044262 004737 044062' JSR PC,..NDEL
13943 044266 10$:
13944 044266 .ENB6 ;;; ENABLE INTERRUPTS
044266 012637 177776 MOV (SP)+,@#PS
13945 044272 RETURN ; RETURN TO CALLER
044272 000207 RTS PC
13946 044274 20$:
13947 044274 005004 CLR R4 ; NO NODE FOUND CLEAR RETURNED VALUE
13948 044276 005216 INC @SP ; SET C BIT TO INDICATE ERROR
13949 044300 000772 BR 10$ ; RETURN
13950 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 265
SCOMM MODULE -- ..ENB0 (ENABLE TASK SWITCHING)
13952 .SBTTL SCOMM MODULE -- ..ENB0 (ENABLE TASK SWITCHING)
13953
13954 ;+
13955 ; ..ENB0 -- ROUTINE TO ENABLE TASK SWITCHING
13956 ;
13957 ; ..ENB0 -- ENABLES TASK SWITCHING AND ALLOWS THE SYSTEM TO
13958 ; UPDATE THE CLOCK AND RECOGNIZE SIGNIFIGANT EVENTS. THIS
13959 ; ROUTINE MUST BE ENTERED WITH THE PS SAVED ON THE TOP OF THE
13960 ; STACK. THE USUAL WAY OF SETTING UP TO USE THIS ROUTINE IS BY
13961 ; USE OF THE .INH0 MACRO.
13962 ;
13963 ; THIS ROUTINE WILL NOT ENABLE TASK SWITCHING IF THE PRIORITY SAVED
13964 ; ON THE STACK DOES NOT INDICATE A RETURN TO PRIORITY 0. I.E., NOT
13965 ; ENTERED AT PROCESSOR PRIORITY LEVEL 3.
13966 ;
13967 ; CALLING SEQUENCE:
13968 ;
13969 ; CALL ..ENB0
13970 ;
13971 ; NOTE -- PS SAVED BY .INH0 MUST BE ON THE TOP OF THE STACK
13972 ;
13973 ; .INH0 IS A MACRO DEFINED AS FOLLOWS:
13974 ; .MACRO .INH0
13975 ; MOV PS,-(SP)
13976 ; BIS #140,PS
13977 ; .ENDM
13978 ;-
13979
13980 044302 ..ENB0::
13981 044302 010146 MOV R1,-(SP) ;;
13982 044304 016601 000004 MOV 4(SP),R1 ;; PICK UP THE STATUS WORD FROM THE STACK
13983 044310 032701 000340 BIT #340,R1 ;; TEST THE STATUS RETURNING TO
13984 044314 001003 BNE 20$ ;; IF RETURNING TO OTHER THAN 0 DON'T ENABLE TASK SWITCHING
13985 044316 10$:
13986 044316 010146 MOV R1,-(SP) ;; NEW STATUS WORD IN R1
13987 ;; PLACE IT ON THE STACK
13988 ;; TO SET UP FOR COMMON SCAN
13989 044320 004737 014632' JSR PC,..INTX ;; PUSH THE RETURN ADDRESS ON THE STACK
13990 044324 20$:
13991 044324 012601 MOV (SP)+,R1 ; RESTORE R1 TO PRE-TASK SWITCHING STATE
13992 044326 016637 000002 177776 MOV 2(SP),@#PS ; SET UP THE NEW PROCESSOR STATUS
13993 044334 000002 RTI ; RTI POPS THE STACK TWICE AND RETURNS TO THE CALLER
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 266
SCOMM MODULE -- ..FSTD (FIND STD ENTRY)
13995 .SBTTL SCOMM MODULE -- ..FSTD (FIND STD ENTRY)
13996
13997 ;+
13998 ; ..FSTD -- SUBROUTINE TO SEARCH THE SYSTEM TASK DIRECTORY FOR AN
13999 ; ENTRY FOR A NAMED TASK.
14000 ;
14001 ; ENTRY CONDITIONS:
14002 ;
14003 ; R1 -- ADDRESS OF THE FIRST WORD OF A TWO WORD BLOCK CONTAINING A TASK
14004 ; NAME (RADIX-50), AND THE BLOCK CAN BE FETCHED
14005 ;
14006 ; CALLING SEQUENCE:
14007 ;
14008 ; CALL ..FSTD
14009 ;
14010 ; EXIT CONDITIONS:
14011 ;
14012 ; R1 -- ADVANCED BY FOUR (2 WORDS),
14013 ; R2 -- STD ENTRY ADDRESS, OR ZERO IF NAME NOT FOUND.
14014 ; R3 -- 1 BEYOND ALPHA PLACE TO INSERT
14015 ;
14016 ; CONDITION CODES SET PER "TST R2".
14017 ;-
14018
14019 044336 ..FSTD::
14020 044336 010546 MOV R5,-(SP)
14021 044340 013703 006334' MOV .STDTA,R3 ; FIND THE BEGINNING
14022 044344 010305 MOV R3,R5 ; FIND THE END
14023 044346 063705 006340' ADD .STDTZ,R5
14024 044352 MFPI (R1)+ ; FIND TASK NAME
044352 012146 MOV (R1)+,-(SP)
14025 044354 MFPI (R1)+
044354 012146 MOV (R1)+,-(SP)
14026 044356 5$:
14027 044356 012302 MOV (R3)+,R2
14028 044360 021266 000002 CMP @R2,2(SP) ; TASK NAME CORRECT?
14029 044364 101007 BHI 50$ ; NO -- TRY NEXT ONE
14030 044366 103404 BLO 10$ ; NO AND NOT HERE
14031 044370 026216 000002 CMP 2(R2),@SP ; MAYBE CHECK SECOND HALF
14032 044374 001404 BEQ 30$ ; GOT IT
14033 044376 101002 BHI 50$ ; NO -- AND NOTHING THERE
14034 044400 10$:
14035 044400 020305 CMP R3,R5 ; END OF LIST?
14036 044402 101765 BLOS 5$ ; NO -- CONTUNUE
14037 044404 50$:
14038 044404 005002 CLR R2 ; RETURN R2 0
14039 044406 30$:
14040 044406 022626 CMP (SP)+,(SP)+ ; REMOVE NAME
14041 044410 012605 MOV (SP)+,R5
14042 044412 005702 TST R2 ; RETURN CONDITIONS PER R2
14043 044414 60$:
14044 044414 RETURN ; RETURN TO CALLER
044414 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 267
SCOMM MODULE -- ..ALCB/..ALC2 (ALLOCATE CORE)
14046 .SBTTL SCOMM MODULE -- ..ALCB/..ALC2 (ALLOCATE CORE)
14047 ;+
14048 ; ..ACLB -- SUBROUTINE TO ALLCOCATE A NODE FROM THE FREE POOL
14049 ;
14050 ; THIS ROUTINE IS CALLED TO ALLOCATE A CORE BUFFER. THE ALLOCATION
14051 ; ALGORITHM IS FIRST FIT AND BLOCKS ARE ALLOCATED IN MULTIPLES OF FOUR
14052 ; BYTES.
14053 ;
14054 ; INPUTS:
14055 ;
14056 ; R0 -- ADDRESS OF CORE ALLOCATION LISTHEAD IF ENTRY AT ..ALC2.
14057 ; R1 -- SIZE OF THE CORE BUFFER TO ALLOCATE IN BYTES.
14058 ;
14059 ; OUTPUTS:
14060 ;
14061 ; CC-C SET IF INSUFFICIENT CORE IS AVAILABLE TO ALLOCATE THE BLOCK.
14062 ;
14063 ; CC-C CLEAR IF THE BLOCK IS ALLOCATED.
14064 ; R0 -- ADDRESS OF THE ALLOCATED BLOCK.
14065 ; R1 -- SIZE OF THE ALLOCATED BLOCK
14066 ;-
14067
14068 044416 ..ALCB::
14069 044416 062701 000003 ADD #3,R1 ; MASK TO CORRECT SIZE
14070 044422 042701 000003 BIC #3,R1
14074 044426 012700 001420' MOV #.FREPL,R0 ; POINT TO ALLOCATION LISTHEAD
14075 044432 ..ALC2::
14076 044432 010346 MOV R3,-(SP) ; SAVE R3
14077 044434 010246 MOV R2,-(SP) ; [4.1.1013] SAVE REGISTERS
14078 044436 000241 CLC ; [4.1.1013] ASSUME SUCCESS
14079 044440 .INH6 ; [4.1.1013] INHIBIT INTERRUPTS
044440 013746 177776 MOV @#PS,-(SP)
044444 112737 000300 177776 MOVB #300,@#PS
14080 044452 010003 MOV R0,R3 ;;; [4.1.1013] COPY LISTHEAD POINTER TO R3
14081 044454 160163 000002 SUB R1,2(R3) ;;; [4.1.1013] CHECK TO SEE IF POOL OK
14082 044460 100424 BMI 40$ ;;; [4.1.1013] FREE-POOL EXHAUSTED
14083 ;
14084 ; HERE TO SCAN FREE-POOL FOR A BLOCK
14085 ;
14086 044462 10$:
14087 044462 010002 MOV R0,R2 ;;; SAVE ADDRESS OF CURRENT BLOCK
14088 044464 011200 MOV @R2,R0 ;;; GET ADDRESS OF NEXT BLOCK
14089 044466 001421 BEQ 40$ ;;; IF EQ END OF CHAIN
14090 044470 026001 000002 CMP 2(R0),R1 ;;; BLOCK BIG ENOUGH?
14091 044474 103772 BLO 10$ ;;; IF LO NO
14092 044476 001407 BEQ 20$ ;;; IF EQ BLOCK IS EXACT SIZE
14093 ;
14094 ; HERE IF A LARGER BLOCK HAS BEEN FOUND
14095 ;
14096 044500 005720 TST (R0)+ ;;; POINT TO SIZE
14097 044502 160110 SUB R1,@R0 ;;; ALLOCATE BLOCK
14098 044504 060001 ADD R0,R1 ;;; POINT TO NEXT FREE SPACE
14099 044506 011011 MOV @R0,@R1 ;;; STORE NEW POINTER
14100 044510 014041 MOV -(R0),-(R1) ;;; STORE ADDRESS
14101 044512 010110 MOV R1,@R0 ;;; STORE SIZE
14102 044514 160001 SUB R0,R1
14103 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 267-1
SCOMM MODULE -- ..ALCB/..ALC2 (ALLOCATE CORE)
14104 ; HERE IF AN EXACT FIT HAS BEEN FOUND
14105 ;
14106 044516 20$:
14107 044516 011012 MOV @R0,@R2 ;;; REMOVE BLOCK FROM LIST
14124 044520 30$:
14125 044520 .ENB6 ;;; ENABLE INTERRUPTS AND SET EXIT CONDITIONS
044520 012637 177776 MOV (SP)+,@#PS
14126 044524 012602 MOV (SP)+,R2 ; RESTORE REGISTERS
14127 044526 012603 MOV (SP)+,R3 ; RESTORE R3
14128 044530 RETURN ; RETURN WITH R0 POINTING TO CALLER'S NODE
044530 000207 RTS PC
14129 ;
14130 ; HERE TO SET UP ERROR EXIT
14131 ;
14132 044532 40$:
14133 044532 005216 INC @SP ;;; SET CARRY
14134 044534 060163 000002 ADD R1,2(R3) ;;; RESET COUNTER
14135 044540 000767 BR 30$ ;;; AND RETURN
14136 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 268
SCOMM MODULE -- ..DECB/..DECN/..DEC2 (DEALLOCATE CORE)
14138 .SBTTL SCOMM MODULE -- ..DECB/..DECN/..DEC2 (DEALLOCATE CORE)
14139
14140 ;+
14141 ; ..DECB -- SUBROUTINE TO RETURN A BLOCK TO THE FREE POOL
14142 ;
14143 ; THESE ROUTINES ARE CALLED TO DEALLOCATE AN EXEC CORE BUFFER. THE BLOCK IS
14144 ; INSERTED INTO THE FREE BLOCK CHAIN BY CORE ADDRESS. IF AN ADJACENT
14145 ; BLOCK IS CURRENTLY FREE, THEN THE TWO BLOCKS ARE MERGED AND INSERTED
14146 ; IN THE FREE BLOCK CHAIN.
14147 ;
14148 ; INPUTS:
14149 ;
14150 ; R0 -- ADDRESS OF THE CORE BUFFER TO BE DEALLOCATED.
14151 ; R1 -- SIZE OF THE CORE BUFFER TO DEALLOCATE IN BYTES.
14152 ; R3 -- ADDRESS OF CORE ALLOCATION LISTHEAD IF ENTRY AT ..DEC2.
14153 ;
14154 ; OUTPUTS:
14155 ;
14156 ; THE CORE BLOCK IS MERGED INTO THE FREE CORE CHAIN BY CORE
14157 ; ADDRESS AND IS AGCOMERATED IF NECESSARY WITH ADJACENT BLOCKS.
14158 ;-
14159
14160 .ENABL LSB
14161
14162 044542 ..DEC2::
14163 044542 010346 MOV R3,-(SP) ; SAVE REGISTERS
14164 044544 000411 BR 10$
14165 ;
14166 044546 ..DECN::
14167 044546 016001 000002 MOV T.HBCT(R0),R1 ; PACKET SIZE TO R1
14168 044552 ..DECB::
14169 044552 010346 MOV R3,-(SP) ; SAVE REGISTERS
14170 044554 062701 000003 ADD #3,R1 ; ROUND OFF
14171 044560 042701 000003 BIC #3,R1
14172 044564 012703 001420' MOV #.FREPL,R3
14173 044570 10$:
14174 044570 010246 MOV R2,-(SP)
14175 044572 010146 MOV R1,-(SP)
14176 044574 010046 MOV R0,-(SP)
14177 044576 .INH6 ; INHIBIT INTERRUPTS
044576 013746 177776 MOV @#PS,-(SP)
044602 112737 000300 177776 MOVB #300,@#PS
14196 044610 060163 000002 ADD R1,2(R3) ;;; [4.1.1104] UPDATE SIZE
14197 044614 40$:
14198 044614 010302 MOV R3,R2 ;;; SAVE ADDRESS OF CURRENT BLOCK
14199 044616 011203 MOV @R2,R3 ;;; GET ADDRESS OF NEXT BLOCK
14200 044620 001402 BEQ 50$ ;;; IF EQ END OF CHAIN
14201 044622 020003 CMP R0,R3 ;;; BLOCK GO HERE?
14202 044624 103373 BHIS 40$ ;;; IF HIS NO
14203 044626 50$:
14204 044626 010310 MOV R3,@R0 ;;; ASSUME NO AGLOMERATION
14205 044630 010046 MOV R0,-(SP) ;;; CALCULATE ADDRESS OF NEW BLOCK
14206 044632 060116 ADD R1,@SP ;;;
14207 044634 020326 CMP R3,(SP)+ ;;; EQUAL TO NEXT IN CHAIN?
14208 044636 001002 BNE 60$ ;;; IF NE NO
14209 044640 012310 MOV (R3)+,@R0 ;;; MOVE LINK WORD TO BLOCK RELEASED
14210 044642 061301 ADD @R3,R1 ;;; MERGE TWO BLOCKS
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 268-1
SCOMM MODULE -- ..DECB/..DECN/..DEC2 (DEALLOCATE CORE)
14211 044644 60$:
14212 044644 010246 MOV R2,-(SP) ;;; SAVE ADDRESS OF PREVIOUS BLOCK
14213 044646 010022 MOV R0,(R2)+ ;;; ASSUME NO AGLOMERATION
14214 044650 061216 ADD @R2,@SP ;;; CALCULATE ADDRESS OF NEXT BLOCK
14215 044652 020026 CMP R0,(SP)+ ;;; EQUAL TO BLOCK BEING RELEASED?
14216 044654 001003 BNE 70$ ;;; IF NE NO
14217 044656 061201 ADD @R2,R1 ;;; MERGE TWO BLOCKS
14218 044660 011042 MOV @R0,-(R2) ;;; MOVE LINK WORD TO PREVIOUS BLOCK
14219 044662 010200 MOV R2,R0 ;;; SET NEW ADDRESS OF BLOCK
14220 044664 70$:
14221 044664 010160 000002 MOV R1,2(R0) ;;; SET SIZE OF BLOCK RELEASED
14222 044670 .ENB6 ;;; ENABLE INTERRUPTS
044670 012637 177776 MOV (SP)+,@#PS
14223 044674 012600 MOV (SP)+,R0 ; RESTORE REGISTERS
14224 044676 012601 MOV (SP)+,R1
14225 044700 012602 MOV (SP)+,R2
14226 044702 012603 MOV (SP)+,R3
14227 044704 RETURN
044704 000207 RTS PC
14228 .DSABL LSB
14229
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 269
SCOMM MODULE -- ..ALOW (ALLOCATE OR WAIT)
14235 .SBTTL SCOMM MODULE -- ..ALOW (ALLOCATE OR WAIT)
14236
14237 ;+
14238 ; ..ALOW -- SUBROUTINE TO ALLOCATE A BUFFER (..ALCB) OR WAIT
14239 ; IF ONE IS NOT AVAILABLE
14240 ;
14241 ;CALLING SEQUENCE:
14242 ;
14243 ; SAME AS ..ALCB (Q.V.)
14244 ;
14245 ;-
14246
14247 044706 ..ALOW::
14248 044706 CALL ..ALCB ; TRY TO ALLOCATE A CORE BUFFER
044706 004737 044416' JSR PC,..ALCB
14249 044712 103004 BCC 10$ ; RETURN IF SUCCESSFUL
14250 044714 WSIG$S ; WAIT FOR SIG EVENT
044714 012746 MOV (PC)+,-(SP)
044716 061 001 .BYTE 49.,1
044720 104375 EMT 375
14251 044722 000771 BR ..ALOW ; AND TRY AGAIN
14252 ;
14253 044724 10$:
14254 044724 RETURN ; RETURN TO CALLER
044724 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 270
SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)
14256 .SBTTL SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)
14257
14258 ;+
14259 ; ..STTY -- START TERMINAL OUTPUT
14260 ;
14261 ; THIS SUBROUTINE WILL ENTER A TERMINAL OUTPUT PACKET IN A TERMINAL'S THREAD
14262 ; LIST AND START THE LINE IF THIS IS REQUIRED. IF THE REQUEST IS FOR THE CTY
14263 ; AND KLINIK IS ACTIVE IN REMOTE MODE, THE REQUEST WILL BE PROCESSED FOR BOTH
14264 ; THE REMOTE AND LOCAL CTYS.
14265 ;
14266 ; REQUESTS FOR SENDALL PACKETS ARE NOT QUEUED UP FOR DH-11S, RATHER THEY ARE
14267 ; LEFT IN THE SENDALL RING BUFFERS. SENDALL PACKETS FOR DL-11S ARE SIMPLY
14268 ; QUEUED UP AS NORMAL OUTPUT BY THE SENDALL SERVICE.
14269 ;
14270 ; NORMAL OUTPUT PACKETS ARE NOT QUEUED UP, BUT IMMEDIATELY DEALLOCATED IF:
14271 ;
14272 ; 1. THE DEVICE DOES NOT EXIST.
14273 ; 2. THE DEVICE IS IN AUTO-BAUD WAIT.
14274 ;
14275 ; NORMAL OUTPUT PACKETS ARE NOT STARTED IF:
14276 ;
14277 ; 1. THE DEVICE IS ALREADY OUTPUT ACTIVE.
14278 ; 2. THE DEVICE IS X'D-OFF.
14279 ; 3. THE DEVICE IS A CTY IN PDP-11 I/O WAIT.
14280 ;
14281 ; SENDALL PACKETS ARE ALWAYS STARTED ON X'D-OFF LINES. THIS ROUTINE ASSUMES
14282 ; THAT THE SENDALL SERVICE WILL NOT ATTEMPT TO START A SENDALL ON A LINE WHICH:
14283 ;
14284 ; 1. IS OUTPUT ACTIVE.
14285 ; 2. IS SUPPRESSING SENDALLS.
14286 ; 3. DOES NOT EXIST.
14287 ; 4. IS IN AUTO-BAUD WAIT.
14288 ;
14289 ; INPUTS:
14290 ;
14291 ; R0 -- POINTS TO OUTPUT PACKET
14292 ; R2 -- POINTS TO DATA LINE SCANNER TABLE ENTRY FOR THIS LINE
14293 ; R4 -- POINTS TO QUEUED PROTOCOL PACKET CONTAINING REQUEST
14294 ;
14295 ; OUTPUTS:
14296 ;
14297 ; NO REGISTERS ARE ALTERED
14298 ;-
14299
14300 044726 ..STTY::
14301 044726 010546 MOV R5,-(SP) ;;; SAVE REGISTERS
14302 044730 010446 MOV R4,-(SP)
14303 044732 010246 MOV R2,-(SP)
14304 044734 010146 MOV R1,-(SP)
14305 044736 010046 MOV R0,-(SP)
14306 044740 010205 MOV R2,R5 ;;; COPY DLS TABLE POINTER TO R5
14307 044742 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
14308 044750 001415 BEQ 10$ ;;; NO -- GO ON
14309 044752 105737 001226' TSTB .KLNSW+0 ;;; YES -- IS REMOTE KLINIK ACTIVE??
14310 044756 003412 BLE 10$ ;;; NO -- GO ON
14311 044760 010004 MOV R0,R4 ;;; [4.2265] YES -- COPY BUFFER
14312 044762 CALL COPBUF ;;; SO
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 270-1
SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)
044762 004737 027312' JSR PC,COPBUF
14313 044766 013705 002636' MOV KLNPTR,R5 ;;; SUBSTITUTE KLINIK POINTER
14314 044772 CALL 20$ ;;; START THE KLINIK LINE
044772 004737 045024' JSR PC,20$
14315 044776 016605 000004 MOV 4(SP),R5 ;;; GET CTY POINTER
14316 045002 011600 MOV (SP),R0 ;;; [4.2265] AND THE BUFFER POINTER
14317 045004 10$:
14318 045004 CALL 20$ ;;; START UP THE LINE
045004 004737 045024' JSR PC,20$
14319 045010 012600 MOV (SP)+,R0 ;;; RESTORE REGISTERS
14320 045012 012601 MOV (SP)+,R1
14321 045014 012602 MOV (SP)+,R2
14322 045016 012604 MOV (SP)+,R4
14323 045020 012605 MOV (SP)+,R5
14324 045022 RETURN ;;; TO CALLER
045022 000207 RTS PC
14325 ;
14326 ; HERE TO SEE IF A SENDALL MUST BE STARTED ON THIS LINE
14327 ;
14328 045024 20$:
14329 045024 005765 000002 TST TTYEXP(R5) ;;; DOES THE DEVICE EXIST??
14337 045030 001646 BEQ ..DECN ;;; NO -- DEALLOCATE AND EXIT
14339 045032 105060 000007 CLRB T.HFCN(R0) ;;; CLEAR THE FUNCTION CODE
14340 045036 020037 002626' CMP R0,.CRSND ;;; IS THIS A SENDALL??
14341 045042 001416 BEQ 40$ ;;; YES -- START IT UP
14342 ;
14343 ; HERE TO START NORMAL OUTPUT ON THIS LINE
14344 ;
14345 045044 032765 000010 000006 BIT #TT.ABW,STSW1(R5) ;;; IS THIS LINE IN AUTO-BAUD WAIT??
14349 045052 001235 BNE ..DECN ;;; YES -- DEALLOCATE THE NODE AND EXIT
14351 045054 010501 MOV R5,R1 ;;; NO -- SET UP TO FIND END OF THREAD LIST
14352 045056 30$:
14353 045056 010102 MOV R1,R2 ;;; COPY NODE POINTER TO R2
14354 045060 011201 MOV (R2),R1 ;;; FIND END OF LIST
14355 045062 001375 BNE 30$ ;;; KEEP GOING
14356 045064 010012 MOV R0,(R2) ;;; SET THIS NODE IN THE THREAD LIST
14357 045066 005010 CLR (R0) ;;; MARK THE END OF THE LIST
14358 045070 032765 000201 000006 BIT #TT.XOF!TT.OUT,STSW1(R5) ;;; IS THE LINE X'D OFF
14359 ;;; OR ALREADY ACTIVE??
14360 045076 001016 BNE 60$ ;;; YES -- JUST EXIT
14361 ;
14362 ; HERE TO START UP THE DEVICE
14363 ;
14364 045100 40$:
14365 045100 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
14366 045106 001403 BEQ 50$ ;;; NO -- GO ON
14367 045110 005737 002632' TST .TTP11 ;;; YES -- IN PDP-11 I/O WAIT??
14368 045114 001007 BNE 60$ ;;; YES -- JUST EXIT
14369 ;
14370 ; HERE TO START UP A DH-11 LINE
14371 ;
14372 045116 50$:
14373 045116 016504 000002 MOV TTYEXP(R5),R4 ;;; [5.1015] EXTERNAL PAGE POINTER TO R4
14374 045122 CALL .STDHL ;;; SET THE LINE NUMBER IN THE DH-11
045122 004737 037416' JSR PC,.STDHL
14375 045126 100403 BMI 70$ ;;; [5.1015] GO START DL-11
14376 045130 000137 034164' JMP .DHSTO ;;; START THE DH-11 OUTPUT AND EXIT
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 270-2
SCOMM MODULE -- ..STTY (START TERMINAL OUTPUT)
14377 ;
14378 045134 60$:
14379 045134 RETURN ;;; EXIT
045134 000207 RTS PC
14380 ;
14381 ; HERE TO START UP A DL-11 LINE
14382 ;
14383 045136 70$:
14384 045136 000137 034340' JMP .DLSTO ;;; START DL-11 OUTPUT
14385 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 271
SCOMM MODULE -- ..STPT (STOP TTY)
14387 .SBTTL SCOMM MODULE -- ..STPT (STOP TTY)
14388
14389 ;+
14390 ; ..STPT -- SUBROUTINE TO STOP TTY OUTPUT AND FLUSH THE BUFFERS
14391 ;
14392 ; ENTRY CONDITIONS:
14393 ;
14394 ; R2 -- POINTER TO TTYTBL (TABLE WHERE QUEUE FOR THIS LINE IS)
14395 ;
14396 ; CALL ..STPT
14397 ;
14398 ; EXIT CONDITIONS:
14399 ;
14400 ; CC-C CLEAR
14401 ; NO REGISTERS ALTERED
14402 ;-
14403
14404 045142 ..STPT::
14405 045142 010046 MOV R0,-(SP) ;;; [5.1015] SAVE R0
14406 045144 010446 MOV R4,-(SP) ;;; [5.1015] AND R4
14407 045146 010546 MOV R5,-(SP) ;;; [5.1015] AND R5
14408 045150 010205 MOV R2,R5 ;;; [5.1015] COPY DLS POINTER TO R5
14409 045152 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; IS THIS A CTY??
14410 045160 001411 BEQ 10$ ;;; NO -- GO ON
14411 045162 105737 001226' TSTB .KLNSW+0 ;;; YES -- IS KLINIK ACTIVE??
14412 045166 003406 BLE 10$ ;;; NOT THAT WE CARE
14413 045170 010546 MOV R5,-(SP) ;;; YES -- SAVE R5
14414 045172 013705 002636' MOV KLNPTR,R5 ;;; KLINIK LINE POINTER TO R5
14415 045176 CALL 20$ ;;; DEQUEUE AND STOP KLINIK LINE
045176 004737 045220' JSR PC,20$
14416 045202 012605 MOV (SP)+,R5 ;;; RESTORE R5
14417 045204 10$:
14418 045204 CALL 20$ ;;; DEQUEUE AND STOP LINE
045204 004737 045220' JSR PC,20$
14419 045210 012605 MOV (SP)+,R5 ;;; [5.1015] RESTORE REGISTERS
14420 045212 012604 MOV (SP)+,R4
14421 045214 012600 MOV (SP)+,R0
14422 045216 RETURN ;;; AND EXIT
045216 000207 RTS PC
14423 ;
14424 ; HERE TO FLUSH OUTPUT LIST AND STOP LINE
14425 ;
14426 045220 20$:
14427 045220 005715 TST (R5) ;;; [5.1015] IS THERE A LIST TO BEGIN WITH??
14428 045222 001440 BEQ 60$ ;;; [5.1015] NO -- JUST EXIT
14429 045224 010546 MOV R5,-(SP) ;;; YES -- SAVE DLS POINTER
14430 045226 011505 MOV (R5),R5 ;;; MOVE OVER FIRST NODE
14431 045230 005065 000006 CLR T.HCBC(R5) ;;; [5.1015] ZERO THE BYTE COUNT
14432 045234 005705 TST R5 ;;; [5.1015] LOOK AT THE LINK
14433 045236 001402 BEQ 30$ ;;; ONLY ONE NODE -- FORGET IT
14434 045240 CALL 50$ ;;; FLUSH THE THREAD LIST
045240 004737 045310' JSR PC,50$
14435 ;
14436 ; HERE TO STOP A DH-11 LINE
14437 ;
14438 045244 30$:
14439 045244 012605 MOV (SP)+,R5 ;;; RESTORE DLS POINTER
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 271-1
SCOMM MODULE -- ..STPT (STOP TTY)
14440 045246 032765 000002 000006 BIT #TT.CTY,STSW1(R5) ;;; [5.1015] IS THIS A CTY??
14441 045254 001403 BEQ 40$ ;;; [5.1015] NO -- GO ON
14442 045256 005737 002632' TST .TTP11 ;;; [5.1015] YES -- -11 I/O WAIT??
14443 045262 001012 BNE 50$ ;;; [5.1015] YES -- GET RID OF FIRST NODE AND EXIT
14444 045264 40$:
14445 045264 032765 000001 000006 BIT #TT.OUT,STSW1(R5) ;;; [5.1015] OUTPUT ACTIVE??
14446 045272 001406 BEQ 50$ ;;; [5.1015] NO -- GET RID OF FIRST NODE AND EXIT
14447 045274 032765 001000 000006 BIT #TT.SIP,STSW1(R5) ;;; [5.1015] MAYBE -- CHECK FOR SENDALL
14448 045302 001002 BNE 50$ ;;; [5.1015] YES -- GET RID OF FIRST NODE AND EXIT
14449 045304 000137 041650' JMP .TTSTP ;;; [5.1015] NO -- STOP OUTPUT
14450 ;
14451 ;
14452 ; INTERNAL SUBROUTINE TO REMOVE THREAD LIST ENTRIES UP TO THAT
14453 ; POINTED TO BY R5
14454 ;
14455 045310 50$:
14456 045310 011500 MOV (R5),R0 ;;; GET THIS NODE POINTER
14457 045312 001404 BEQ 60$ ;;; END OF LIST IF .EQ. 0
14458 045314 011015 MOV (R0),(R5) ;;; DELINK AND
14459 045316 CALL ..DECN ;;; DEALLOACATE THIS NODE
045316 004737 044546' JSR PC,..DECN
14460 045322 000772 BR 50$ ;;; DO THE NEXT NODE
14461 ;
14462 045324 60$:
14463 045324 RETURN ;;; TO CALLER
045324 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 272
SCOMM MODULE -- ..STCH (STORE CHARACTER IN TO 10 QUEUE)
14465 .SBTTL SCOMM MODULE -- ..STCH (STORE CHARACTER IN TO 10 QUEUE)
14466
14467 ;+
14468 ; ..STCH -- SUBROUTINE TO STORE A CHARACTER IN THE TO 10
14469 ; QUEUE AND IF THAT QUEUE IS FULL SEND IT TO THE KL10 BY
14470 ; ENTERING IT IN THE TO 10 QUEUE.
14471 ;
14472 ; CALLING SEQUENCE:
14473 ;
14474 ; SP -- POINTS TO CHARACTER
14475 ; R5 -- POINTER TO DEVICE TABLE ENTRY
14476 ;
14477 ; CALL ..STCH
14478 ;
14479 ; REGISTERS ALTERED: NONE
14480 ;-
14481
14482 .ENABL LSB
14483
14484 045326 ..STCH::
14485 045326 010446 MOV R4,-(SP) ; SAVE REGISTERS
14486 045330 010346 MOV R3,-(SP)
14487 045332 010146 MOV R1,-(SP)
14488 045334 012703 000004 MOV #D.CDLS,R3 ; SET UP AS DATA/LINE SCANNER
14489 045340 CALL STLN ; GET LINE NUMBER
045340 004737 045412' JSR PC,STLN
14490 045344 000304 SWAB R4 ; AND PUT IN HIGH ORDER BYTE
14491 045346 156604 000010 BISB 10(SP),R4 ; SET CHARACTER
14492 045352 012701 000004 MOV #BC.LNC,R1 ; SET LINE NUMBER/CHARACTER
14493 ;
14494 ; LOCAL COMMON QUEUE STORAGE SUBROUTINE
14495 ;
14496 045356 STCM:
14497 045356 CALL ..STFC ; STORE FUNCTION
045356 004737 045456' JSR PC,..STFC
14498 045362 012601 MOV (SP)+,R1 ; RESTORE
14499 045364 012603 MOV (SP)+,R3
14500 045366 012604 MOV (SP)+,R4
14501 045370 10$:
14502 045370 RETURN
045370 000207 RTS PC
14503
14504 .DSABL LSB
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 273
SCOMM MODULE -- ..SACK (SEND ACKNOWLEDGEMENT)
14506 .SBTTL SCOMM MODULE -- ..SACK (SEND ACKNOWLEDGEMENT)
14507
14508 ;+
14509 ; ..SACK -- SUBROUTINE TO ACKNOWLEDGE THE OUTPUT OF CHARACTER OR STRINGS
14510 ;
14511 ; CALLING SEQUENCE:
14512 ;
14513 ; R3 -- DEVICE ID
14514 ; R5 -- DEVICE TABLE POINTER
14515 ;
14516 ; EXIT CONDITIONS:
14517 ;
14518 ; NO REGISTERS ALTERED
14519 ;
14520 ;-
14521
14522 045372 ..SACK::
14523 045372 010446 MOV R4,-(SP) ; SAVE REGISTERS
14524 045374 010346 MOV R3,-(SP)
14525 045376 010146 MOV R1,-(SP)
14526 045400 CALL STLN ; GET LINE NUMBER.
045400 004737 045412' JSR PC,STLN
14527 045404 012701 000017 MOV #BC.SAK,R1
14528 045410 000762 BR STCM ; STORE COMMON
14529 ;
14530 ;
14531 ; LOCAL SUBROUTINE TO COMPUTE LINE NUMBER
14532 ;
14533 045412 STLN:
14534 045412 010246 MOV R2,-(SP)
14535 045414 005004 CLR R4 ; DEFAULT LINE # TO ZERO.
14536 045416 010302 MOV R3,R2 ; COMPUTE OFFSET TO
14537 045420 006302 ASL R2 ; DEVICE QUEUE ENTRY
14538 045422 006302 ASL R2
14539 045424 006302 ASL R2
14540 045426 006302 ASL R2
14541 045430 010501 MOV R5,R1 ; NOW COMPUTE OFFSET
14542 045432 166201 010012' SUB .DQPBA-20(R2),R1 ; INTO DEVICE LINE TABLE
14543 045436 001405 BEQ 20$ ; FIRST ENTRY - ALL DONE.
14544 045440 116202 010014' MOVB .DQPBA-20+2(R2),R2 ; GET TABLE ENTRY SIZE
14545 045444 10$:
14546 045444 005204 INC R4 ; AND MARCH THROUGH
14547 045446 160201 SUB R2,R1
14548 045450 003375 BGT 10$
14549 045452 20$:
14550 045452 012602 MOV (SP)+,R2
14551 045454 RETURN ; GOOD-BYE !
045454 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 274
SCOMM MODULE -- ..STFC (STORE FUNCTION)
14553 .SBTTL SCOMM MODULE -- ..STFC (STORE FUNCTION)
14554
14555 ;+
14556 ; ..STFC -- SUBROUTINE TO START A ONE WORD FUNCTION OF CHARACTER
14557 ;
14558 ; CALLING SEQUENCE:
14559 ;
14560 ; R1 -- FUNCTION CODE
14561 ; R3 -- DEVICE ID
14562 ; R4 -- CHARACTER TO BE SENT TO 10 AND LINE NUMBER
14563 ;-
14564
14565 045456 ..STFC::
14566 045456 010546 MOV R5,-(SP) ; SAVE R5
14567 045460 .INH6
045460 013746 177776 MOV @#PS,-(SP)
045464 112737 000300 177776 MOVB #300,@#PS
14568 045472 020137 001252' CMP R1,.CPFN ; THE CORRECT CURRENT FUNCTION?
14569 045476 001026 BNE 10$ ; NO -- MUST RESET
14570 045500 020337 001254' CMP R3,.CPDV ; SAME DEVICE?
14571 045504 001023 BNE 10$ ; MUST RESET HERE ALSO
14572 045506 5$:
14573 045506 010477 133546 MOV R4,@.CRPB ; SET THE LINE NUMBER
14574 045512 012705 000002 MOV #2,R5
14575 045516 060537 001260' ADD R5,.CRPB
14576 045522 060577 133536 ADD R5,@.CRSB
14577 045526 060537 001250' ADD R5,.CRQZ
14578 045532 160537 001256' SUB R5,.CRSZ
14579 045536 001002 BNE 7$ ; YES -- RETURN TO CALLER
14580 045540 CALL ..STQ ; NO -- BETTER START QUEUE
045540 004737 046046' JSR PC,..STQ
14581 045544 7$:
14582 045544 .ENB6 ; ENABLE INTERRUPTS
045544 012637 177776 MOV (SP)+,@#PS
14583 045550 012605 MOV (SP)+,R5 ; RESTORE
14584 045552 RETURN ; RETURN TO CALLER
045552 000207 RTS PC
14585 ;
14586 045554 10$:
14587 045554 022737 000012 001256' CMP #10.,.CRSZ ; IS THERE ROOM?
14588 045562 101402 BLOS 15$ ; YES -- START NEW ENTRY
14589 045564 13$:
14590 045564 CALL ..STQ ; NO -- ENTER IT IN THE QUEUE
045564 004737 046046' JSR PC,..STQ
14591 045570 15$:
14592 045570 010046 MOV R0,-(SP) ; SAVE R0
14593 045572 012705 000010 MOV #10,R5
14594 045576 013700 001260' MOV .CRPB,R0 ; FIND CURRENT BUFFER POINTER
14595 045602 060537 001250' ADD R5,.CRQZ ; UPDATE QUEUE COUNTS
14596 045606 160537 001256' SUB R5,.CRSZ
14597 045612 010037 001264' MOV R0,.CRSB ; SET UP CURRENT BUFFER POINTER
14598 045616 010520 MOV R5,(R0)+ ; SET UP CURRENT SIZE
14599 045620 010120 MOV R1,(R0)+ ; SET THE FUNCTION CODE
14600 045622 010137 001252' MOV R1,.CPFN ; SAVE CURRENT FUNCTION
14601 045626 010320 MOV R3,(R0)+ ; SET DEVICE CODE
14602 045630 010337 001254' MOV R3,.CPDV ; SET DEVICE CODE FOR REFER LATER
14603 045634 005020 CLR (R0)+ ; CLEAR SPARE WORD
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 274-1
SCOMM MODULE -- ..STFC (STORE FUNCTION)
14604 045636 010037 001260' MOV R0,.CRPB ; SET CURRENT BUFFER POINTER
14605 045642 012600 MOV (SP)+,R0 ; RESTORE R0
14606 045644 000720 BR 5$ ; AND SET FUNCTION
14607 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 275
SCOMM MODULE -- ..STIN (START INDIRECT FUNCTION)
14609 .SBTTL SCOMM MODULE -- ..STIN (START INDIRECT FUNCTION)
14610
14611 ;+
14612 ; ..STIN -- SUBROUTINE TO START AN INDIRECT DTE20 FUNCTION TO THE 10
14613 ;
14614 ; ENTRY CONDITIONS:
14615 ;
14616 ; R0 -- BUFFER ADDRESS
14617 ; R1 -- FUNCTION +100000
14618 ; R2 -- EFN/BUFFER SIZE
14619 ; R3 -- DEVICE ID
14620 ;
14621 ; NOTE : THE FIRST WORD OF THE BUFFER MUST CONTAIN THE
14622 ; LINE NUMBER AND BUFFER SIZE
14623 ;
14624 ; MAY NOT BE CALLED FROM ISR
14625 ;
14626 ; CALL ..STIN
14627 ;
14628 ; EXIT CONDITIONS:
14629 ;
14630 ; CC-C CLEAR SUCCESS
14631 ; CC-C SET FAILURE -- PRIMARY PROTOCOL NOT IN USE
14632 ;
14633 ;-
14634 ;
14635 045646 ..STIN::
14636 045646 005737 001012' TST .COMEF+2 ; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
14637 045652 100402 BMI 10$ ; [4.1.1105] YES -- GO ON
14638 045654 000261 SEC ; [4.2208] NO -- SET ERROR RETURN
14639 045656 000472 BR 40$ ; [4.2208] AND EXIT
14640 ;
14641 045660 10$:
14642 045660 010546 MOV R5,-(SP) ; SAVE REGISTERS
14643 045662 010046 MOV R0,-(SP)
14644 045664 010146 MOV R1,-(SP)
14645 045666 012701 000030 MOV #30,R1 ; SET UP TO ALLOCATE A BUFFER
14646 045672 CALL ..ALOW ; ALLOCATE BUFFER
045672 004737 044706' JSR PC,..ALOW
14647 045676 20$:
14648 045676 010005 MOV R0,R5 ; MOVE BUFFER ADDRESS TO R5
14649 045700 022525 CMP (R5)+,(R5)+ ; MOVE OVER THE LISTHEAD
14650 045702 010125 MOV R1,(R5)+ ; STORE THE BUFFER SIZE
14651 045704 012715 000012 MOV #12,@R5 ; PUT IN THE SIZE OF THIS HEADER PACKET
14652 045710 012525 MOV (R5)+,(R5)+ ; ALSO PUT IT IN FIRST WORD TO 10
14653 045712 011625 MOV @SP,(R5)+ ; STORE FUNCTION CODE
14654 045714 010325 MOV R3,(R5)+ ; STORE THE DEVICE I/D
14655 045716 005025 CLR (R5)+ ; CLEAR THE SPARE WORD
14656 045720 016601 000002 MOV 2(SP),R1 ; RESTORE BUFFER ADDRESS
14657 045724 012125 MOV (R1)+,(R5)+ ; SET BYTE COUNT/LINE NUMBER
14658 045726 010125 MOV R1,(R5)+ ; SET UP BUFFER ADDRESS
14659 045730 010246 MOV R2,-(SP) ; SAVE REGISTERS MODIFIED
14660 045732 010346 MOV R3,-(SP)
14661 045734 010546 MOV R5,-(SP)
14662 045736 013705 001006' MOV .CRTSK,R5 ; SET UP TO CONVERT EFN
14663 045742 010203 MOV R2,R3
14664 045744 CALL .CEFN3 ; CONVERT EFN
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 275-1
SCOMM MODULE -- ..STIN (START INDIRECT FUNCTION)
045744 004737 043066' JSR PC,.CEFN3
14665 045750 012605 MOV (SP)+,R5 ; RESTORE R5
14666 045752 010325 MOV R3,(R5)+ ; SET MASK
14667 045754 010225 MOV R2,(R5)+ ; SET ADDRESS
14668 045756 012603 MOV (SP)+,R3 ; RESTORE REGISTERS
14669 045760 012602 MOV (SP)+,R2
14670 045762 010446 MOV R4,-(SP) ; SAVE R4
14671 045764 010001 MOV R0,R1 ; SET UP TO ENTER NODE
14672 045766 .INH6 ; INHIBIT DTE20 INTERRUPTS
045766 013746 177776 MOV @#PS,-(SP)
045772 112737 000300 177776 MOVB #300,@#PS
14673 046000 012704 001326' MOV #TO10Q,R4 ;;; START TO 10 QUEUE IF NECESSARY
14674 046004 021404 CMP @R4,R4 ;;; CHECK TO SEE IF ALREADY GOING
14675 046006 001003 BNE 30$ ;;; YES -- JUST ENTER IN QUEUE
14676 046010 010104 MOV R1,R4 ;;; NO -- SET NODE ADDRESS
14677 046012 CALL .STTNQ ;;; [4.1.1121] START QUEUE
046012 004737 031362' JSR PC,.STTNQ
14678 046016 30$:
14679 046016 013704 001330' MOV TO10Q+2,R4 ;;; ENTER QUEUE
14680 046022 CALL ..NADD ;;; ADD NODE
046022 004737 044176' JSR PC,..NADD
14681 046026 .ENB6 ;;; ENABLE INTERRUPTS
046026 012637 177776 MOV (SP)+,@#PS
14682 046032 012604 MOV (SP)+,R4 ;;; RESTORE REGISTERS
14683 046034 012601 MOV (SP)+,R1
14684 046036 012600 MOV (SP)+,R0
14685 046040 012605 MOV (SP)+,R5
14686 046042 000241 CLC ; CLEAR C
14687 046044 40$: ; [4.2208]
14688 046044 RETURN ; RETURN TO CALLER
046044 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 276
SCOMM MODULE -- ..STQ (STORE IN TO 10 QUEUE)
14690 .SBTTL SCOMM MODULE -- ..STQ (STORE IN TO 10 QUEUE)
14691
14692 ;+
14693 ; ..STQ -- SUBROUTINE TO STORE IN THE TO 10 QUEUE AND GET ANOTHER BUFFER
14694 ; FOR TRANSFERRING TO THE TO 10 QUEUE.
14695 ;
14696 ; INIAN -- SPECIAL ENTRY POINT FOR INITIALIZATION, IT SHOULD BE
14697 ; USED BY NO OTHERS!!
14698 ;
14699 ; CALLING SEQUENCE:
14700 ;
14701 ; .CP?? MUST BE SETUP TO THE LAST QUEUE ENTRY
14702 ; CALL ..STQ
14703 ;
14704 ; EXIT CONDITIONS:
14705 ;
14706 ; .CP?? IS SET UP TO POINT TO A NEW QUEUE
14707 ;-
14708
14709 .ENABL LSB
14710
14711 046046 ..STQ::
14712 046046 010046 MOV R0,-(SP) ; SAVE REGISTERS
14713 046050 010146 MOV R1,-(SP)
14714 046052 010446 MOV R4,-(SP)
14715 046054 013704 001262' MOV .CRHD,R4 ; FIND THE HEADER OF THE CURRENT BUFFER
14716 046060 013764 001250' 000006 MOV .CRQZ,6(R4) ; SET THE CURRENT QUEUE SIZE IN THE BUFFER
14717 ; AND CHECK TO SEE IF ANYTHING THERE
14718 046066 001447 BEQ 40$ ; NO -- DON'T ATTEMPT TO SEND TO 10
14719 046070 012701 001326' MOV #TO10Q,R1 ; FIND THE LISTHEAD OF THE TO 10 QUEUE
14720 046074 021101 CMP @R1,R1 ; IS THERE AN ENTRY?
14721 046076 001003 BNE 10$ ; ALREADY STARTED?
14722 046100 CALL .STTNQ ; [4.1.1121] START THE QUEUE UP
046100 004737 031362' JSR PC,.STTNQ
14723 046104 000404 BR 20$
14724 ;
14725 046106 10$:
14726 046106 022737 000014 001256' CMP #14,.CRSZ
14727 046114 101434 BLOS 40$ ; YES -- DON'T QUEUE IT YET
14728 046116 20$:
14729 046116 010401 MOV R4,R1 ; SET UP THE NODE ADDRESS
14730 046120 013704 001330' MOV TO10Q+2,R4 ; SET UP LISTHEAD ADDRESS
14731 046124 CALL ..NADD ; ADD THE NODE TO THE LIST
046124 004737 044176' JSR PC,..NADD
14732 046130 INIAN::
14733 046130 012701 000060 MOV #E.OPSZ,R1 ; [4.1.1137] SET UP THE BUFFER SIZE
14734 046134 CALL ..ALCB ; GET A NODE FROM THE POOL
046134 004737 044416' JSR PC,..ALCB
14735 046140 103003 BCC 30$ ; [4.1.1137] ALL OK IF CC-C IS CLEAR
14736 046142 .CRASH B03 ; ALLOCATION FAILED -- CRASH!
046142 000004 IOT
046144 102 060 063 .ASCIZ /B03/
046147 000
14737 ;
14738 046150 30$:
14739 046150 010037 001262' MOV R0,.CRHD ; SET UP THE POINTER TO THE HEAD OF THE BUFFER
14740 046154 005037 001254' CLR .CPDV ; SET NO DEVICE IN USE
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 276-1
SCOMM MODULE -- ..STQ (STORE IN TO 10 QUEUE)
14741 046160 022020 CMP (R0)+,(R0)+ ; MOVE OVER THE FORWARD/BACKWARD POINTERS
14742 046162 010120 MOV R1,(R0)+ ; SET UB NODE SIZE
14743 046164 005020 CLR (R0)+ ; SET UP CURRENT SIZE OF Q
14744 046166 010037 001260' MOV R0,.CRPB ; SET THE CURRENT BUFFER POINTER
14745 046172 162701 000012 SUB #10.,R1 ; DON'T WANT TO INCLUDE HEADER
14746 046176 010137 001256' MOV R1,.CRSZ ; SET UP SIZE OF QUEUE (MAX)
14747 046202 005037 001250' CLR .CRQZ ; CLEAR CURRENT QUEUE SIZE
14748 046206 40$:
14749 046206 012604 MOV (SP)+,R4 ; RESTORE REGISTSERS
14750 046210 012601 MOV (SP)+,R1
14751 046212 012600 MOV (SP)+,R0
14752 046214 RETURN ; RETURN TO CALLER
046214 000207 RTS PC
14753
14754 .DSABL LSB
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 277
SCOMM MODULE -- ..WFED (WAIT FOR EXAMINE/DEPOSIT)
14756 .SBTTL SCOMM MODULE -- ..WFED (WAIT FOR EXAMINE/DEPOSIT)
14757
14758 ;+
14759 ; ..WFED -- WAITS FOR EXAMINE/DEPOSIT TRANSFERS AND CHECKS TO SEE
14760 ; THAT E-BOX HAS NOT STOPPED OR ENCOUNTERED AN EBUS PARITY ERROR.
14761 ;
14762 ; ERRORS DETECTED HERE ARE:
14763 ;
14764 ; 1. DEX -- DEPOSIT/EXAMINE TIMED OUT
14765 ; 2. EPE -- EBUS PARITY ERROR
14766 ; 3. CES -- CLOCK ERROR STOP
14767 ; 4. TSP -- KL IS HALTED (STOPPED)
14768 ;
14769 ; IN THE CASE OF AN EBUS PARITY ERROR OR DEX ERROR, THE TRANSFER IS
14770 ; RETRIED ONCE. IF THE RETRY SUCCEEDS, A SNAPSHOT OF THE DTE-20 ON
14771 ; BOTH THE INITIAL FAILURE AND SUCCESSFUL RETRY ARE LOGGED TO THE
14772 ; KL. IF THE RETRY FAILS, THE KL IS RELOADED. MULTIPLE ERRORS DURING
14773 ; ANY RETRY ATTEMPT ARE CONSIDERED FATAL.
14774 ;
14775 ; THE RETRY COUNT/FLAG BYTES ".EBRTY" AND ".DXRTY" ARE CONTIGUOUS AND
14776 ; ON A WORD BOUNDARY IN LOW CORE. THE SIGNIFICANCE OF THE CONTENT OF
14777 ; THESE BYTES IS AS FOLLOWS:
14778 ;
14779 ; +1 -- NO ERROR
14780 ; 0 -- RETRY SUCCEEDED, ERROR LOGGING REQUESTED
14781 ; (EBUS PARITY ERROR ONLY, DEX ERRORS ARE ALWAYS FATAL)
14782 ; -1 -- EBUS PARITY ERROR RETRY FAILED OR DEX ERROR, KL RELOAD REQUESTED
14783 ;
14784 ; THE ACTUAL ERROR LOGGING IS DONE BY THE TERMINAL TASK ON THE SOFTWARE
14785 ; CLOCK. A MAXIMUM OF TWO SNAPSHOTS IS ALLOWED IN THE DTE-20 ERROR
14786 ; LOGGING QUEUE, AS A CONSIDERATION FOR THE FREE-CORE RESOURCE.
14787 ;
14788 ; CALLING SEQUENCE:
14789 ;
14790 ; CALL ..WFED
14791 ;
14792 ; ENTRY CONDITIONS:
14793 ;
14794 ; R0 -- ADDRESS OF DTE20
14795 ; IF ".NOERR" .NE. 0 -- ONLY CHECK TIMEOUT, ELSE CHECK ALL ERRORS
14796 ;
14797 ; EXIT CONDITIONS:
14798 ;
14799 ; SUCCESS:
14800 ;
14801 ; NO REGISTERS ALTERED CC-C CLEAR
14802 ;
14803 ; NORMAL ERROR CONDITIONS:
14804 ;
14805 ; CC-C SET -- E-BOX STOPPED (PROTOCOL STOPPED - KS.CES SET IN .KLITK)
14806 ; CC-C SET -- DEP/EX FAILURE (PROTOCOL STOPPED - KS.DEX SET IN .KLITK)
14807 ;
14808 ; CC-C CLEAR -- E-BUS PARITY ERROR (PROTOCOL UNCHANGED -- KS.EPE SET IN .KLITK)
14809 ; CC-C CLEAR -- TEN STOPPED (PROTOCOL STOPPED -- KS.TSP SET IN .KLITK)
14810 ;
14811 ; SPECIAL ERROR CONDITIONS:
14812 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 277-1
SCOMM MODULE -- ..WFED (WAIT FOR EXAMINE/DEPOSIT)
14813 ; TIMEOUT AND ".NOERR" .NE. 0 - CC-C SET
14814 ;
14815 ; NOTE:
14816 ;
14817 ; **** THIS ROUTINE MUST BE ENTERED AT PRI6 ****
14818 ;-
14819
14820 046216 ..WFED::
14821 046216 010146 MOV R1,-(SP) ;;; [4.2217] SAVE R1
14822 046220 010246 MOV R2,-(SP) ;;; [4.2217] AND R2
14823 046222 010546 MOV R5,-(SP) ;;; [5.1008] AND R5
14824 046224 012705 001364' MOV #.DXRTY,R5 ;;; [5.1008] FOR EXIT CODE
14825 046230 012715 000401 MOV #401,(R5) ;;; [5.1008] INIT THE RETRY FLAGS
14826 ;
14827 ; REGISTER USAGE:
14828 ;
14829 ; R0 -- DTE-20 BASE ADDRESS
14830 ; R1 -- POINTS TO FIRST FREE WORD IN ERROR LOGGING PACKET
14831 ; R2 -- POINTER TO DTE-20 "TENAD1" REGISTER ON RETRY
14832 ; R5 -- POINTER TO ERROR FLAGS BYTES
14833 ;
14834 046234 10$:
14835 046234 012737 003000 001344' MOV #3000,DEXST ;;; [4.2217] SET UP TIMEOUT COUNT
14836 ;
14837 ; TIMEOUT A DEPOSIT OR EXAMINE
14838 ;
14839 046242 15$:
14840 046242 032760 000004 000034 BIT #DEXDON,STATD(R0) ;;; [4.2217] TRANSFER COMPLETED??
14841 046250 001030 BNE 25$ ;;; [4.2217] YES -- GO ON
14842 046252 005337 001344' DEC DEXST ;;; [4.2217] NO -- TIMED OUT??
14843 046256 001371 BNE 15$ ;;; [4.2217] NO -- GO ON
14844 ;
14845 ; HERE TO CHECK TIMEOUT ERRORS
14846 ;
14847 046260 005060 000030 CLR DAG1(R0) ;;; [4.2217] YES -- CLEAR FLAGS
14848 046264 105737 001122' TSTB .NOERR ;;; [4.2217] IGNORE ERRORS??
14849 046270 001110 BNE 60$ ;;; [4.2217] YES -- FLAG TIMEOUT AND EXIT
14850 046272 032760 004000 000030 BIT #DS04,DAG1(R0) ;;; [4.2217] NO -- CLOCK ERROR STOP??
14851 046300 001404 BEQ 20$ ;;; [4.2217] NO -- GO ON
14852 046302 052737 000002 001126' BIS #KS.CES,.KLITK ;;; [4.2217] YES -- FLAG IT
14853 046310 000472 BR 55$ ;;; [4.2217] AND EXIT
14854 ;
14855 046312 20$:
14856 046312 052737 000010 001126' BIS #KS.DEX,.KLITK ;;; [4.2217] SET DEPOSIT/EXAMINE FAILURE
14857 046320 105437 001364' NEGB .DXRTY ;;; [4.1.1065] DEX ERRORS ARE ALWAYS FATAL
14858 046324 CALL DTESNP ;;; [5.1008] SNAPSHOT THE DTE-20
046324 004737 046534' JSR PC,DTESNP
14859 046330 000462 BR 55$ ;;; [5.1008] AND CRASH HIM
14860 ;
14861 ;
14862 ; HERE TO CHECK NON-TIMEOUT ERRORS
14863 ;
14864 046332 25$:
14865 046332 105737 001122' TSTB .NOERR ;;; [4.2217] IGNORE ERRORS??
14866 046336 001066 BNE 65$ ;;; [4.2217] YES -- JUST EXIT
14867 046340 032760 000020 000034 BIT #BPARER,STATD(R0) ;;; [4.2217] EBUS PARITY ERROR??
14868 046346 001422 BEQ 40$ ;;; [5.1008] NO -- SEE ABOUT OTHER ERRORS
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 277-2
SCOMM MODULE -- ..WFED (WAIT FOR EXAMINE/DEPOSIT)
14869 ;
14870 ; HERE TO SNAPSHOT AN EBUS PARITY ERROR
14871 ;
14872 046350 30$:
14873 046350 052737 000004 001126' BIS #KS.EPE,.KLITK ;;; [4.2217] FLAG THE EBUS PARITY ERROR
14874 046356 CALL DTESNP ;;; [4.2217] GET THE ADDRESS AND DATA
046356 004737 046534' JSR PC,DTESNP
14875 046362 103445 BCS 55$ ;;; [5.1008] ERROR IF CC-C IS SET
14876 046364 105337 001365' DECB .EBRTY ;;; [5.1008] IS THIS A RETRY??
14877 046370 100442 BMI 55$ ;;; [5.1008] YES -- ONLY ONE ALLOWED
14878 046372 105737 001364' TSTB .DXRTY ;;; [5.1008] NO -- MULTIPLE ERRORS??
14879 046376 002437 BLT 55$ ;;; [5.1008] YES -- CRASH HIM
14880 ;
14881 ; HERE TO RETRY A TRANSFER
14882 ;
14883 046400 35$:
14884 046400 012760 000100 000032 MOV #DRESET,DAG2(R0) ;;; [4.2217] NO -- RESET THE DTE-20
14885 046406 011222 MOV (R2),(R2)+ ;;; [4.2217] AND RESTART THE TRANSFER
14886 046410 011212 MOV (R2),(R2) ;;; [4.2217] SO
14887 046412 000710 BR 10$ ;;; [4.2217] TIME THE RETRY OUT
14888 ;
14889 ;
14890 ; HERE TO CHECK OTHER NON-TIMEOUT ERRORS
14891 ;
14892 046414 40$:
14893 046414 005060 000030 CLR DAG1(R0) ;;; [4.2217] RESET FLAGS
14894 046420 105737 001123' TSTB .NOHLT ;;; [4.2217] HALTS ALLOWED??
14895 046424 001010 BNE 45$ ;;; [4.2217] YES -- JUST EXIT
14896 046426 032760 001000 000030 BIT #DS06,DAG1(R0) ;;; [4.2217] NO -- IS THE KL HALTED??
14897 046434 001404 BEQ 45$ ;;; [4.2217] NO -- JUST EXIT
14898 046436 052737 000001 001126' BIS #KS.TSP,.KLITK ;;; [4.2217] YES -- FLAG THE ERROR
14899 046444 000414 BR 55$ ;;; [5.1008] AND FLAG THE RELOAD
14900 ;
14901 ;
14902 ; HERE FOR NORMAL EXIT
14903 ;
14904 046446 45$:
14905 046446 105737 001365' TSTB .EBRTY ;;; [5.1008] DID WE RECOVER AN EBUS PARITY ERROR??
14906 046452 001020 BNE 65$ ;;; [5.1008] NO -- JUST EXIT
14907 ;
14908 ; HERE TO SNAPSHOT A RECOVERED EBUS PARITY ERROR
14909 ;
14910 046454 50$:
14911 046454 CALL DTESNP ;;; [4.2217] YES -- SAVE RECOVERED DATA
046454 004737 046534' JSR PC,DTESNP
14912 046460 042737 000004 001126' BIC #KS.EPE,.KLITK ;;; [5.1008] RESET TKTN FLAGS
14913 046466 042765 000200 177776 BIC #DV.URE,-2(R5) ;;; [5.1008] RESET UNRECOVERABLE FLAG
14914 046474 000407 BR 65$ ;;; [5.1008] TAKE NORMAL EXIT
14915 ;
14916 ;
14917 ; HERE ON A FATAL ERROR
14918 ;
14919 046476 55$:
14920 046476 105237 001122' INCB .NOERR ;;; [4.2217] RECOGNIZE THE ERROR
14921 046502 CALL ..DTSP ;;; [4.2217] STOP ALL PROTOCOLS
046502 004737 046770' JSR PC,..DTSP
14922 046506 105237 001124' INCB .TKTN ;;; [4.2217] REQUEST NOTIFICATION
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 277-3
SCOMM MODULE -- ..WFED (WAIT FOR EXAMINE/DEPOSIT)
14923 ;
14924 ; ERROR EXIT
14925 ;
14926 046512 60$:
14927 046512 000261 SEC ;;; [4.2217] SET ERROR RETURN
14928 ;
14929 ; NORMAL EXIT
14930 ;
14931 046514 65$:
14932 046514 113725 001364' MOVB .DXRTY,(R5)+ ;;; [5.1008] SET THE RETRY FLAGS
14933 046520 113715 001365' MOVB .EBRTY,(R5) ;;; [5.1008] SO
14934 046524 012605 MOV (SP)+,R5 ;;; [5.1008] RESTORE R5
14935 046526 012602 MOV (SP)+,R2 ;;; [4.2217] RESTORE REGISTERS
14936 046530 012601 MOV (SP)+,R1 ;;; [4.2217] SO
14937 046532 RETURN ;;; [4.2217] TO CALLER
046532 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 278
SCOMM MODULE -- ..WFED (WAIT FOR EXAMINE/DEPOSIT)
14939 ;
14940 ; INTERNAL SUBROUTINE TO SNAPSHOT THE DTE-20
14941 ;
14942 ; THIS ROUTINE WILL INITIALIZE AND APPEND TO A DTE-20 ERROR LOGGING
14943 ; PACKET. AFTER THE FIRST INVOCATION FOR EACH ERROR, THIS ROUTINE
14944 ; RETURNS:
14945 ;
14946 ; R1 -- POINTS TO FIRST FREE WORD IN RETRY SNAPSHOT
14947 ; R2 -- POINTS TO "TENAD1" REGISTER IN THE DTE-20
14948 ; R5 -- POINTS TO FLAGS WORD IN ERROR LOGGING PACKET
14949 ;
14950
14951 046534 DTESNP:
14952 046534 010046 MOV R0,-(SP) ;;; [4.2217] SAVE THE DTE-20 POINTER
14953 046536 005737 001012' TST .COMEF+2 ;;; [4.1.1105] IS PRIMARY PROTOCOL RUNNING??
14954 046542 100045 BPL 50$ ;;; [4.1.1105] NO -- JUST EXIT
14955 046544 105737 001365' TSTB .EBRTY ;;; [5.1008] YES -- IS THIS AN EBUS PARITY ERROR RETRY??
14956 046550 001436 BEQ 30$ ;;; [5.1008] YES -- GO ON
14957 046552 023727 001370' 000002 CMP .EBPEC,#2 ;;; [5.1008] NO -- IS THE QUEUE FULL??
14958 046560 001436 BEQ 50$ ;;; [5.1008] YES -- NO MORE ALLOWED
14959 046562 005237 001370' INC .EBPEC ;;; [5.1008] NO -- COUNT THIS NODE
14960 046566 012701 000112 MOV #112,R1 ;;; [4.2217] NO -- SET UP BUFFER SIZE
14961 046572 CALL ..ALCB ;;; [4.2217] ALLOCATE A BLOCK
046572 004737 044416' JSR PC,..ALCB
14962 046576 103427 BCS 50$ ;;; [4.2217] ERROR IF CC-C IS SET
14963 046600 010046 MOV R0,-(SP) ;;; [5.1008] SAVE NODE POINTER
14964 046602 012700 001366' MOV #.EBPEQ,R0 ;;; [5.1008] MOVE THE LISTHEAD POINTER TO R0
14965 046606 10$:
14966 046606 011002 MOV (R0),R2 ;;; [5.1008] FIND THE END OF THE LIST
14967 046610 001402 BEQ 20$ ;;; [5.1008] FOUND IT -- GO ON
14968 046612 010200 MOV R2,R0 ;;; [5.1008] NOT YET -- KEEP GOING
14969 046614 000774 BR 10$ ;;; [5.1008] TRY AGAIN
14970 ;
14971 046616 20$:
14972 046616 011610 MOV (SP),(R0) ;;; [5.1008] SET THE NODE IN THE LIST
14973 046620 012600 MOV (SP)+,R0 ;;; [5.1008] RESTORE NODE POINTER
14974 046622 005020 CLR (R0)+ ;;; [5.1008] CLEAR AND GET OVER THE LINKAGE
14975 046624 010120 MOV R1,(R0)+ ;;; [4.2217] SET THE NODE SIZE
14976 046626 012720 000106 MOV #106,(R0)+ ;;; [5.1008] SET THE TRANSFER SIZE
14977 046632 012720 000300 MOV #DV.LOG!DV.URE,(R0)+ ;;; [5.1008] SET STANDARD STATUS
14978 046636 010005 MOV R0,R5 ;;; [5.1008] COPY FLAG POINTER TO R5
14979 046640 005020 CLR (R0)+ ;;; [5.1008] INIT AND GET OVER THE FLAGS
14980 046642 010001 MOV R0,R1 ;;; [4.2217] BUFFER POINTER TO R1
14981 046644 011600 MOV (SP),R0 ;;; [4.2217] RESTORE DTE-20 POINTER
14982 046646 30$:
14983 046646 012702 000020 MOV #20,R2 ;;; [4.2217] INIT LOOP COUNTER
14984 046652 40$:
14985 046652 012021 MOV (R0)+,(R1)+ ;;; [4.2217] SNAPSHOT THE DTE-20
14986 046654 077202 SOB R2,40$ ;;; [4.2217] SO
14987 046656 50$:
14988 046656 011602 MOV (SP),R2 ;;; [4.2217] GET DTE-20 POINTER
14989 046660 062702 000010 ADD #TNAD1,R2 ;;; [4.2217] POINT TO THE ADDRESS WORDS
14990 046664 012600 MOV (SP)+,R0 ;;; [4.2217] RESTORE R0
14991 046666 RETURN ;;; [4.2217] TO CALLER
046666 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 279
SCOMM MODULE -- ..SWED (START AND WAIT FOR EXAMINE/DEPOSIT)
14993 .SBTTL SCOMM MODULE -- ..SWED (START AND WAIT FOR EXAMINE/DEPOSIT)
14994
14995 ;+
14996 ; ..SWED -- STARTS A DEPOSIT/EXAMINE SEQUENCE AND WAITS FOR ITS COMPLETION.
14997 ;
14998 ; NOTE: **** THIS ROUTINE MUST BE ENTERED AT PRI6 ****
14999 ;
15000 ; CALLING SEQUENCE:
15001 ;
15002 ; R0 -- ADDRESS OF DTE-20
15003 ; R1 -- HIGH ORDER EXAMINE/DEPOSIT ADDRESS WORD (FOR TENAD1)
15004 ; R2 -- LOW ORDER EXAMINE/DEPOSIT ADDRESS WORD (FOR TENAD2)
15005 ; R3 -- ADDRESS TO TRANSFER 3 WORD BLOCK TO OR FROM
15006 ;
15007 ; CALL ..SWED
15008 ;
15009 ; EXIT CONDITIONS:
15010 ;
15011 ; SUCCESS -- NO REGISTERS ALTERED, CC-C CLEAR
15012 ;
15013 ; FAILURE -- NO REGISTERS ALTERED, CC-C SET
15014 ;-
15015
15016 046670 ..SWED::
15017 046670 010346 MOV R3,-(SP) ;;; SAVE REGISTERS
15018 046672 032701 010000 BIT #DEP,R1 ;;; CHECK FOR DEPOSIT
15019 046676 001016 BNE 10$ ;;; YES -- GO TO DEPOSIT PART OF SUBROUTINE
15020 ;
15021 ; HERE TO START AN EXAMINE
15022 ;
15023 046700 010160 000010 MOV R1,TNAD1(R0) ;;; NO -- SET UP ADDRESS OF TRANSFER IN DTE
15024 046704 010260 000012 MOV R2,TNAD2(R0) ;;; START TRANSFER
15025 046710 CALL ..WFED ;;; WAIT FOR EXAMINE/DEPOSIT
046710 004737 046216' JSR PC,..WFED
15026 046714 103423 BCS 20$ ;;; COMPLAIN ABOUT ERRORS
15027 046716 MTPS DXWD3(R0),(R3)+ ;;; STORE THE WORD TRANSFERED
046716 016023 000002 MOV DXWD3(R0),(R3)+
15028 046722 MTPS DXWD2(R0),(R3)+
046722 016023 000004 MOV DXWD2(R0),(R3)+
15029 046726 MTPS DXWD1(R0),(R3)+
046726 016023 000006 MOV DXWD1(R0),(R3)+
15030 046732 000414 BR 20$ ;;; ALL DONE.
15031 ;
15032 ;
15033 ; HERE TO START A DEPOSIT
15034 ;
15035 046734 10$:
15036 046734 MFPS (R3)+,DXWD3(R0) ;;; TRANSFER TO 10
046734 012360 000002 MOV (R3)+,DXWD3(R0)
15037 046740 MFPS (R3)+,DXWD2(R0) ;;; SET UP WORD IN DTE
046740 012360 000004 MOV (R3)+,DXWD2(R0)
15038 046744 MFPS (R3)+,DXWD1(R0) ;;; SO
046744 012360 000006 MOV (R3)+,DXWD1(R0)
15039 046750 010160 000010 MOV R1,TNAD1(R0) ;;; SET HIGH ORDER ADDRESS
15040 046754 010260 000012 MOV R2,TNAD2(R0) ;;; START THE TRANSFER
15041 046760 CALL ..WFED ;;; WAIT FOR EXAMINE/DEPOSIT
046760 004737 046216' JSR PC,..WFED
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 279-1
SCOMM MODULE -- ..SWED (START AND WAIT FOR EXAMINE/DEPOSIT)
15042 046764 20$:
15043 046764 012603 MOV (SP)+,R3 ;;; RESTORE R3
15044 046766 RETURN ;;; RETURN TO CALLER
046766 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 280
SCOMM MODULE -- ..DTSP (STOP DTE PROTOCOLS)
15046 .SBTTL SCOMM MODULE -- ..DTSP (STOP DTE PROTOCOLS)
15047
15048 ;+
15049 ; ..DTSP -- SUBROUTINE TO TURN OFF PRIMARY AND SECONDARY PROTOCOLS.
15050 ; THIS REQUIRES TURNING OFF THE DTE INTERRUPT.
15051 ;
15052 ; CALLING SEQUENCE:
15053 ;
15054 ; CALL ..DTSP
15055 ;
15056 ; EXIT CONDITIONS:
15057 ;
15058 ; SUCCESS IS ASSURED, CC-C IS CLEARED
15059 ; NO REGISTERS ALTERED
15060 ; THERE ARE NO ERRORS
15061 ;-
15062
15063 .ENABL LSB
15064
15065 046770 ..DTSP::
15066 046770 012777 000010 132360 MOV #INTROF,@.PRSTA ;; TURN OFF DTE INTERRUPTS
15067 046776 042737 120000 001012' BIC #EF.PR1!EF.PR2,.COMEF+2 ;; AND PROTOCOLS
15068 047004 000421 BR 30$ ;; AND EXIT
15069 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 281
SCOMM MODULE -- ..DTP2 (START SECONDARY PROTOCOL)
15071 .SBTTL SCOMM MODULE -- ..DTP2 (START SECONDARY PROTOCOL)
15072
15073 ;+
15074 ; ..DTP2 -- SUBROUTINE TO TURN ON SECONDARY PROTOCOL.
15075 ; A CHECK IS MADE TO MAKE SURE PRIMARY PROTOCOL IS OFF.
15076 ;
15077 ; CALLING SEQUENCE:
15078 ;
15079 ; CALL ..DTP2
15080 ;
15081 ; EXIT CONDITIONS:
15082 ;
15083 ; SUCCESS IS ASSURED, CC-C IS CLEARED
15084 ; NO REGISTERS ALTERED
15085 ; THERE ARE NO ERRORS
15086 ;-
15087
15088 047006 ..DTP2::
15089 047006 005737 001012' TST .COMEF+2 ;; [4.1.1105] IF PRIMARY PROTOCOL IS ON,
15090 047012 100002 BPL 10$ ;; [4.1.1105] THEN
15091 047014 CALL ..DTSP ;; TURN IT OFF
047014 004737 046770' JSR PC,..DTSP
15092 047020 10$:
15093 047020 012777 004010 132330 MOV #INTROF!INT11S,@.PRSTA ;; DISABLE INTERRUPTS
15094 047026 052737 020000 001012' BIS #EF.PR2,.COMEF+2 ;; LET THE BOOT PROTOCOL TASK GO
15095 047034 000403 BR 20$ ;; AND RETURN
15096 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 282
SCOMM MODULE -- ..DTP1 (START PRIMARY PROTOCOL)
15098 .SBTTL SCOMM MODULE -- ..DTP1 (START PRIMARY PROTOCOL)
15099
15100 ;+
15101 ; ..DTP1 -- SUBROUTINE TO TURN ON PRIMARY PROTOCOL.
15102 ;
15103 ; CALLING SEQUENCE:
15104 ;
15105 ; CALL ..DTP1
15106 ;
15107 ; EXIT CONDITIONS:
15108 ;
15109 ; SUCCESS IS ASSURED , CC-C IS CLEARED
15110 ; NO REGISTERS ALTERED
15111 ; THERE ARE NO ERRORS
15112 ;-
15113
15114 047036 ..DTP1::
15115 047036 052737 100000 001012' BIS #EF.PR1,.COMEF+2 ;; ENABLE THE PRIMARY PROTOCOL TASK
15116 047044 20$:
15117 047044 CALL ..DSEV ;; DECLARE A SIGNIFICANT EVENT
047044 004737 044026' JSR PC,..DSEV
15118 047050 30$:
15119 047050 000241 CLC ;; MAKE SURE CC-C
15120 047052 RETURN ;; AND RETURN
047052 000207 RTS PC
15121
15122 .DSABL LSB
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 283
SCOMM MODULE -- ..VXFR (VALADATE TRANSFER)
15124 .SBTTL SCOMM MODULE -- ..VXFR (VALADATE TRANSFER)
15125
15126 ;+
15127 ; ..VXFR -- ROUTINE TO VALIDATE A USER'S TRANSFER REQUEST
15128 ;
15129 ; ..VXFR CHECKS TO SEE IF A USER'S REQUEST TO TRANSFERINTO OR OUT
15130 ; OF HIS SPACE IS LEGAL. ..VXFR WILL CHECK TO SEE THAT TRANSFERS
15131 ; ACROSS VIRTUAL BOUNDARIES ARE ALSO TRANSFERS IN CONTIGUOUS CORE.
15132 ; THIS MEANS THAT AFTER VALIDATION A HANDLER TASK DOES NOT HAVE TO
15133 ; WORRY ABOUT THE VALIDITY OF TRANSFERING A CONTIGUOUS BLOCK OF
15134 ; CORE INTO THE USER'S AREA. ..VXFR WILL ALSO RETURN TO THE CALLER
15135 ; THE PHYSICAL 18 BIT ADDRESS OF THE USER'S BUFFER. ..VXFR WILL NOT
15136 ; LET THE USER TRANSFER INTO READ-ONLY SPACE IF THE DIRECTION
15137 ; SPECIFIED BY THE HANDLER IS WRITE.
15138 ;
15139 ; CALLING SEQUENCE:
15140 ;
15141 ; R1 -- REQUEST NODE ADDRESS
15142 ; R2 -- STARTING ADDRESS (VIRTUAL)
15143 ; R3 -- TRANSFER LENGTH
15144 ;
15145 ; CALL ..VXFR
15146 ;
15147 ; EXIT CONDITIONS:
15148 ;
15149 ; R4 -- HIGH ORDER ADDRESS (BITS 4,5)
15150 ; R5 -- LOW ORDER ADDRESS
15151 ;
15152 ; ERROR EXIT -- CC-C SET
15153 ;-
15154
15156 047054 ..VXFR::
15157 047054 010205 MOV R2,R5 ; IF NOT KT11 THEN JUST RETURN CURRENT ADDRESS
15158 047056 005004 CLR R4
15159 047060 RETURN
047060 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 284
SCOMM MODULE -- ..BLXO (BLOCK OUTPUT) ..BLXI (BLOCK INPUT)
15278 .SBTTL SCOMM MODULE -- ..BLXO (BLOCK OUTPUT) ..BLXI (BLOCK INPUT)
15279
15280 ;+
15281 ; ..BLXO -- ROUTINE TO PASS INFORMATION TO A USER'S PARTITION
15282 ;
15283 ; ..BLXO VALIDATES THE TRANSFER OF THE REQUEST TO TRANSFER
15284 ; TO OR FROM A HANDLER TASK'S AREA.
15285 ;
15286 ; ..BLXI -- ROUTINE TO PASS INFORMATION FROM A TASK'S PARTITION
15287 ;
15288 ; ..BLXI VALIDATES THE TRANSFER OF THE REQUEST TO TRANSFER
15289 ; TO A HANDLER TASK'S AREA.
15290 ;
15291 ; CALLING SEQUENCE:
15292 ;
15293 ; R1 -- REQUEST NODE ADDRESS
15294 ; R2 -- STARTING ADDRESS (VIRTUAL)
15295 ; R3 -- TRANSFER LENGTH (BYTES)
15296 ; R4 -- HANDLER VIRTUAL ADDRESS
15297 ;
15298 ; CALL ..BLXO
15299 ;
15300 ; - OR --
15301 ;
15302 ; CALL ..BLXI
15303 ;
15304 ; NOTE -- RESTRICTED TO 4K-64 (10) WORD TRANSFER'S
15305 ;-
15306
15307 047062 ..BLXI::
15308 047062 010446 MOV R4,-(SP)
15309 047064 010546 MOV R5,-(SP)
15310 047066 012705 000001 MOV #1,R5 ; SET DIRECTION OF TRANSFER TO IN
15311 047072 000403 BR BLXCOM ; AND ENTER COMMON CODE
15312 ;
15313 047074 ..BLXO::
15314 047074 010446 MOV R4,-(SP) ; SAVE THE REGISTERS
15315 047076 010546 MOV R5,-(SP)
15316 047100 005005 CLR R5 ; INDICATE TRANSFER OUT
15317 047102 BLXCOM:
15318 047102 010546 MOV R5,-(SP) ; SAVE THE DIRECTION OF TRANSFER
15319 047104 CALL ..VXFR ; VALADATE TRANSFER
047104 004737 047054' JSR PC,..VXFR
15332 047110 010346 MOV R3,-(SP) ; SAVE R3
15337 047112 016604 000006 MOV 6(SP),R4 ; SET UP THE FROM ADDRESS
15338 047116 005766 000002 TST 2(SP)
15340 047122 001403 BEQ BLXPLP ; DIRECTION OK FOR OUTPUT --DO TRANSFER
15347 047124 010546 MOV R5,-(SP)
15348 047126 010405 MOV R4,R5
15349 047130 012604 MOV (SP)+,R4
15351 047132 BLXPLP:
15352 047132 112425 MOVB (R4)+,(R5)+ ; MOVE A BYTE
15353 047134 077302 SOB R3,BLXPLP ; YES -- FINISHED?
15354 047136 012603 MOV (SP)+,R3 ; RESTORE R3
15359 ; CLEAR C BIT TO INDICATE LEGAL TRANSFER
15360 047140 005726 TST (SP)+ ; REMOVE THE DIRECTION WORD FROM THE STACK
15361 047142 BLXRTN:
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 284-1
SCOMM MODULE -- ..BLXO (BLOCK OUTPUT) ..BLXI (BLOCK INPUT)
15362 047142 012605 MOV (SP)+,R5 ; RESTORE REGISTERS
15363 047144 012604 MOV (SP)+,R4
15364 047146 RETURN ; RETURN TO CALLER
047146 000207 RTS PC
15365 ;
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 285
SCOMM MODULE -- ..VTOL (MAP VIRTUAL TO LOGICAL BLOCK, EXTERNAL
15375 .SBTTL SCOMM MODULE -- ..VTOL (MAP VIRTUAL TO LOGICAL BLOCK, EXTERNAL)
15376
15377 ;+
15378 ;
15379 ;CALL: JSR PC,..VTOL ;CLOSED, RETURN IN-LINE
15380 ;
15381 ;IN: R1 - POINTER TO REQUEST NODE, CONTAINING:
15382 ; R.AT - ATL OF CALLING TASK
15383 ; R.LU - LUN HAVING WINDOW IN LUT(N2)
15384 ; R.FC - I/O FUNCTION CODE, VIRTUAL READ OR WRITE
15385 ; R.PB+6,+10 - VIRTUAL BLOCK NUMBER TO MAP
15386 ;
15387 ;OUT: C=0 - MAPPING SUCCESSFUL
15388 ; R1 - POINTER TO REQUEST NODE, CONTAINING
15389 ; R.FC - I/O FUNCTION CODE, LOGICAL READ OR WRITE
15390 ; R.PB+6,+10 - LOGICAL BLOCK NUMBER MAPPED
15391 ;
15392 ; C=1 MAPPING FAILURE
15393 ;
15394 ;NOTE: THIS LIBRARY ROUTINE USES THE FOLLOWING
15395 ; OTHER LIBRARY ROUTINES---
15396 ;
15397 ; ..VVLL - INTERNAL VIRTUAL TO LOGICAL FILE FUNCTION
15398 ;
15399 ;-
15400
15401 047150 ..VTOL::
15402 047150 010046 MOV R0,-(SP) ;SAVE WORKING REGISTERS
15403 047152 010146 MOV R1,-(SP)
15404 047154 010246 MOV R2,-(SP)
15405 047156 010346 MOV R3,-(SP)
15406 047160 010446 MOV R4,-(SP)
15407
15408 ; GET WINDOW POINTER FROM LUT(N2) IN TASK HEADER
15409
15410 047162 010104 MOV R1,R4 ; SAVE POINTER TO REQUEST NODE
15411 047164 016402 000006 MOV R.AT(R4),R2 ; POINT TO ATL NODE
15412 047170 116403 000012 MOVB R.LU(R4),R3 ; GET LUN
15413 047174 006303 ASL R3
15414 047176 006303 ASL R3
15415 047200 066203 000012 ADD A.HA(R2),R3 ; !!!!!DOESN'T WORK IF MACY11 CONDITIONAL IS OFF
15416 047204 016301 000130 MOV H.LUT(R3),R1 ; GET WINDOW POINTER FROM LUT
15417 047210 001441 BEQ 30$ ; NO WINDOW, NO MAP....
15418 047212 030127 000001 BIT R1,#1 ; SEE IF WINDOW POINTER IS ODD
15419 047216 001036 BNE 30$ ; ECCCHH!
15420
15421 ; SEE IF THIS IS A READ OR WRITE AND CHECK PERMISSIONS APPROPRIATELY.
15422
15423 047220 012746 001000 MOV #IO.RLB,-(SP) ; SET UP FOR A READ
15424 047224 026427 000014 010400 CMP R.FC(R4),#IO.RVB ; SEE IF IT IS A READ
15425 047232 001405 BEQ 10$ ; YES
15426 047234 012716 000400 MOV #IO.WLB,(SP) ; NO, MUST BE A WRITE
15427 047240 031127 001000 BIT (R1),#WI.WRV ; SEE IF THE FILE IS WRITE ACCESSED
15428 047244 001422 BEQ 20$ ; IF NOT, CAN'T WRITE IT
15429
15430 ; NOW DO THE MAPPING ALREADY
15431
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 285-1
SCOMM MODULE -- ..VTOL (MAP VIRTUAL TO LOGICAL BLOCK, EXTERNAL
15432 047246 10$:
15433 047246 016400 000026 MOV R.PB+2(R4),R0 ; GET BYTE COUNT
15434 047252 016402 000032 MOV R.PB+6.(R4),R2 ; HIGH ORDER VBN
15435 047256 016403 000034 MOV R.PB+8.(R4),R3 ; LOW ORDER VBN
15436 047262 CALL ..VVLL ; CALL THE MAPPER
047262 004737 047332' JSR PC,..VVLL
15437 047266 103411 BCS 20$ ; NO SUCH LUCK
15438 047270 005700 TST R0 ; CHECK IF MAPPING IS COMPLETE
15439 047272 001007 BNE 20$ ; NO
15440
15441 ; SUCCESSFUL MAPPING - TURN THE NODE INTO A LOGICAL TRANSFER
15442
15443 047274 010264 000032 MOV R2,R.PB+6.(R4) ; SET HIGH ORDER LBN
15444 047300 010364 000034 MOV R3,R.PB+8.(R4) ; SET LOW ORDER LBN
15445 047304 012664 000014 MOV (SP)+,R.FC(R4) ; SET FUNCTION CODE
15446 047310 000402 BR 40$
15447 ;
15448 047312 20$:
15449 047312 005726 TST (SP)+ ; CLEAN THE STACK
15450 047314 30$:
15451 047314 000261 SEC ; SET FAILURE
15452 047316 40$:
15453 047316 012604 MOV (SP)+,R4 ; RESTORE REGISTERS
15454 047320 012603 MOV (SP)+,R3
15455 047322 012602 MOV (SP)+,R2
15456 047324 012601 MOV (SP)+,R1
15457 047326 012600 MOV (SP)+,R0
15458 047330 RETURN
047330 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 286
SCOMM MODULE -- ..VVLL (MAP VIRTUAL TO LOGICAL BLOCK, INTERNAL
15460 .SBTTL SCOMM MODULE -- ..VVLL (MAP VIRTUAL TO LOGICAL BLOCK, INTERNAL)
15461
15462 ;+
15463 ;
15464 ;CALL: JSR PC,..VVLL ;CLOSED, RETURN IN-LINE
15465 ;
15466 ;IN: R0 - NUMBER OF BYTES IN TRANSFER
15467 ; R1 - ADDRESS OF WINDOW
15468 ; R2,R3 - VBN TO MAP
15469 ;
15470 ;OUT: SUCCESS - C=0
15471 ; R0 - NUMBER OF BLOCKS NOT MAPPED
15472 ; R2,R3 - LOGICAL BLOCK NUMBER DESIRED
15473 ;
15474 ; FAILURE - C=1
15475 ; R0,R2,R3 - GARBAGED
15476 ;
15477 ;NOTE: THIS ROUTINE MAKES NO EXTERNAL CALLS.
15478 ; THIS ROUTINES IS USED BY---
15479 ;
15480 ; ..VTOL EXTERNAL VIRTUAL TO LOGICAL MAPPER
15481 ; WINDOW TURN FILE CONTROL PRIMITIVE
15482 ; INDEX FILE FILE CONTROL UTILITY
15483 ;
15484 ;-
15485
15486 047332 ..VVLL::
15487 047332 010146 MOV R1,-(SP) ; SAVE WORKING REGISTERS
15488 047334 010446 MOV R4,-(SP)
15489 047336 010546 MOV R5,-(SP)
15490 047340 .INH0 ; INHIBIT TASK SWITCHING
047340 013746 177776 MOV @#PS,-(SP)
047344 112737 000140 177776 MOVB #140,@#PS
15491 047352 062700 000777 ADD #511.,R0 ;; ROUND UP BYTE COUNT TO NEXT BLOCK
15492 047356 006000 ROR R0 ;; RECOVER CARRY
15493 047360 105000 CLRB R0 ;; CLEAR FRACTIONAL PART
15494 047362 000300 SWAB R0 ;; AND CONVERT TO BLOCK COUNT
15495
15496 ; GET STARTING VBN OF CURRENT WINDOW
15497
15498 047364 111104 MOVB (R1),R4 ;; GET COUNT OF RETRIEVAL POINTERS
15499 047366 001417 BEQ 40$ ;; EMPTY WINDOW
15500 047370 062701 000006 ADD #W.VBN,R1 ;; POINT TO STARTING VBN IN WINDOW
15501 047374 012105 MOV (R1)+,R5 ;; GET HIGH ORDER VBN
15502 047376 042705 177400 BIC #177400,R5 ;; MASK OFF HIGH BYTE
15503 047402 160502 SUB R5,R2 ;; SUBTRACT FROM DESIRED VBN
15504 047404 162103 SUB (R1)+,R3 ;; SUBTRACT LOW ORDER
15505 047406 005602 SBC R2 ;; AND THE CARRY
15506 047410 002406 BLT 40$ ;; WINDOW IS PAST VBN - OUT
15507
15508 ; NOW SCAN THE WINDOW FOR THE DESIRED VBN
15509
15510 047412 10$:
15511 047412 161103 SUB (R1),R3 ;; ACCUMULATE BLOCK COUNT
15512 047414 005602 SBC R2
15513 047416 103407 BLO 20$ ;; BRANCH IF WE GO BELOW ZERO
15514 047420 062701 000006 ADD #6,R1 ;; SKIP OVER THIS RETRIEVAL POINTER
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 286-1
SCOMM MODULE -- ..VVLL (MAP VIRTUAL TO LOGICAL BLOCK, INTERNAL
15515 047424 077406 SOB R4,10$ ;; AND LOOP FOR RETRIEVAL POINTERS
15516 047426 40$:
15517 047426 .ENB0 ;; OUT OF POINTERS - VBN IS BEYOND WINDOW
047426 004737 044302' JSR PC,..ENB0
15518 047432 000261 SEC ; SET FAILURE
15519 047434 000430 BR 50$ ; RETURN
15520 ;
15521 ;
15522 ; FOUND THE RIGHT RETRIEVAL POINTER - COMPUTE LBN
15523 ;
15524 047436 20$:
15525 047436 010305 MOV R3,R5 ;; R5 = - (BLOCKS IN THIS EXTENT PAST VBN)
15526 ;; COMPUTE NUMBER OF CONTIGUOUS BLOCKS
15527 047440 005405 NEG R5 ;; STARTING AT DESIRED VBN
15528 047442 062103 ADD (R1)+,R3 ;; COMPUTE LBN OFFSET IN THIS EXTENT
15529 047444 005502 ADC R2
15530 047446 062102 ADD (R1)+,R2 ;; GET HIGH ORDER LBN
15531 047450 062103 ADD (R1)+,R3 ;; AND LOW ORDER LBN
15532 047452 005502 ADC R2
15533 047454 160500 SUB R5,R0 ;; SEE IF THE TRANSFER LIES WITHIN THIS EXTENT
15534 047456 101413 BLOS 25$ ;; YES
15535
15536 047460 005304 DEC R4 ;; SEE IF THERE IS ANOTHER POINTER
15537 047462 001412 BEQ 30$ ;; NO
15538 047464 020021 CMP R0,(R1)+ ;; SEE IF REMAINDER OF TRANSFER LIES IN NEXT EXTENT
15539 047466 101010 BHI 30$ ;; NO
15540 047470 060305 ADD R3,R5 ;; COMPUTE END LBN + 1
15541 047472 010204 MOV R2,R4
15542 047474 005504 ADC R4 ;; COMPUTE HIGH ORDER
15543 047476 020421 CMP R4,(R1)+ ;; SEE IF NEXT EXTENT IS CONTIGUOUS WITH THIS ONE
15544 047500 001003 BNE 30$ ;; NO
15545 047502 020521 CMP R5,(R1)+ ;; COMPARE LOW ORDER
15546 047504 001001 BNE 30$ ;; NO
15547
15548 047506 25$:
15549 047506 005000 CLR R0 ;; TRANSFER IS COMPLETELY MAPPED
15550 047510 30$:
15551 047510 .ENB0 ; ENABLE TASK SWITCHING
047510 004737 044302' JSR PC,..ENB0
15552 047514 000241 CLC ; SET SUCCESS
15553 047516 50$:
15554 047516 012605 MOV (SP)+,R5 ; RESTORE REGISTES
15555 047520 012604 MOV (SP)+,R4
15556 047522 012601 MOV (SP)+,R1
15557 047524 RETURN
047524 000207 RTS PC
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 288
END
15561 .SBTTL END
15562 ;
15563 ; COPYRIGHT (C) 1975, 1978 BY
15564 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
15565 ;
15566 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
15567 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
15568 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
15569 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
15570 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
15571 ;
15572 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
15573 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
15574 ; CORPORATION.
15575 ;
15576 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
15577 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
15578 ;
15579 011320' .END INITLM
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 288-1
SYMBOL TABLE
ACKNOW 025610RG BC.XEN= 000034 G CNUPE = 000002 CTRLZ 032246R DE.04 = 000374 G
ADRSAV 005554RG BC.XOF= 000020 G COMBSE 001230RG CTYPTR 002634RG DE.05 = 000373 G
AF.PP = 000200 G BC.XON= 000021 G COMTRP 011426R CTYSTS 002664RG DE.06 = 000372 G
ASXCMN 013760R BELADR 036164RG COPBUF 027312RG CURBF = 000006 DE.07 = 000371 G
ASXDT 013634R BITTBL 043022RG CPUERR 020500R CYCLS = 000002 DE.08 = 000370 G
ASXEXT 014150R BIT0 = 000001 CRADR 002730RG C.AS = 000002 G DE.09 = 000367 G
ASXE1 013610RG BIT1 = 000002 CRBFLN= 000240 G C.AT = 000000 G DE.10 = 000366 G
ASXE2 013624R BIT10 = 002000 CRBUFF 005732RG C.FA = 000012 G DE.11 = 000365 G
ASXLRF 013774R BIT11 = 004000 CRBUFH 005730RG C.FM = 000010 G DE.80 = 000260 G
ASXLRQ 014032R BIT12 = 010000 CRCEVF 005702RG C.HALT= 000033 G DE.81 = 000257 G
ASXSCN 013622R BIT13 = 020000 CREVFG 005700RG C.HCRT= 000015 G DE.90 = 000246 G
ASXTE 014442R BIT14 = 040000 CREXP = 006176RG C.HEOF= 000032 G DE.91 = 000245 G
ASXWR0 013662R BIT15 = 100000 CRHD = ****** GX C.HESC= 000033 G DE.92 = 000244 G
ASXWR1 013672R BIT2 = 000004 CRHUNG 005704RG C.HFFD= 000014 G DE.93 = 000243 G
ASXWR2 013702R BIT3 = 000010 CRJT = 001000 C.HLFD= 000012 G DE.94 = 000242 G
ASXWR3 013712R BIT4 = 000020 CROBAR 001034RG C.HPAR= 000200 G DE.95 = 000241 G
ASXWR4 013722R BIT5 = 000040 CRSIZE= 000010 G C.HSPC= 000040 G DE.96 = 000240 G
A.EF = 000020 G BIT6 = 000100 CRSTB 011606R C.HTAB= 000011 G DE.97 = 000237 G
A.FB = 000015 G BIT7 = 000200 CRSTBH 005710RG C.HVTB= 000013 G DE.98 = 000236 G
A.FM = 000024 G BIT8 = 000400 CRSTBK 005712RG C.HXOF= 000023 G DE.99 = 000235 G
A.HA = 000012 G BIT9 = 001000 CRSTK = ****** GX C.HXON= 000021 G DFTBL 025302RG
A.PD = 000006 G BLDPKT 042702R CRSTLN= 000016 G C.RS = 000006 G DFTSZ = 000076
A.PF = 000034 G BLKTT 005624RG CRSTS = 006200RG C.SD = 000004 G DFUNC = 000200
A.RP = 000010 G BLXCOM 047102R CRTBL 006174RG C.SZ = 000014 G DF.DMG= 000004
A.SP = 000004 G BLXPLP 047132R CRTHD = 006174RG C1 = 140010 DF.DMN= 000007
A.SZ = 000036 G BLXRTN 047142R CRTNXA 014670R C1DB = 140110 DF.DOR= 000001
A.TD = 000016 G BPARER= 000020 CRTNX1 014662R DAG1 = 000030 DF.EHG= 000010
A.TS = 000014 G BPTTRP 011674R CRTNX2 014670R DAG2 = 000032 DF.EHM= 000011
BC.AKA= 000025 G BTPHD 016032RG CRTNX3 014672R DAG3 = 000036 DF.EMG= 000005
BC.BTP= 000024 G BTPRO 016332R CRTY = 002000 DATE = 000004 DF.EMN= 000006
BC.BTW= 000035 G BTWCHR 026140RG CR$BO5= 042750RG DBLDON 031044R DF.KLR= 000012
BC.DEB= 000036 G BYCNT 002726RG CR$B03= 046144RG DBLEPP 030644R DF.KLW= 000013
BC.DES= 000010 G BYTESA 005556RG CR$CBR= 017750RG DBLEPX 030650R DF.KLX= 000014
BC.EDR= 000027 G CDBA = 177164 G CR$DTB= 030306RG DBLHDR 030740R DF.OFF= 000002
BC.FNM= 000040 G CDCC = 177162 G CR$DTD= 011662RG DBLPWR 030700R DF.ON = 000003
BC.FOD= 000013 G CDD = 000020 CR$DTF= 027772RG DBLRLD 030654R DF.PDP= 000016
BC.HAD= 000002 G CDDB = 177166 G CR$ETE= 027704RG DBLXFR 030710R DF.PEX= 000015
BC.HDS= 000007 G CDRTPD 007672RG CR$FTA= 011564RG DBLXIT 031056R DHBUF = 000020
BC.HTD= 000012 G CDST = 177160 G CR$IAS= 015042RG DCOMST= 000001 DHCNT = 000200 G
BC.LDR= 000030 G CDTSK 007312RG CR$ILF= 025402RG DEAND1 026220R DHERLG 041106R
BC.LDV= 000031 G CESCHK 021540R CR$ILQ= 030762RG DEAND3 025640R DHISTQ 035570R
BC.LNC= 000004 G CHNPNT= 000001 CR$LRF= 014026RG DEANOD 026654R DHSAV 037274R
BC.NDM= 000037 G CHTBL 032344R CR$MPE= 011726RG DEP = 010000 DHSTSV 002652RG
BC.NSA= 000032 G CHTBLN= 000013 CR$PT1= 030400RG DEPOF 001234RG DHTBL 003046RG
BC.RDS= 000005 G CH.FOR= 000100 G CR$PT2= 030416RG DEX = 000400 DHTMP 002646RG
BC.RQD= 000001 G CH.LAB= 000001 G CR$PT3= 030726RG DEXCOM 013444R DH.FER= 020000 G
BC.RTD= 000011 G CH.NAT= 000020 G CR$PT4= 031032RG DEXDON= 000004 DIAG1 = 174430
BC.SAK= 000017 G CH.NDC= 000010 G CR$RES= 011670RG DEXST 001344RG DIAG2 = 174432
BC.SDS= 000006 G CH.OFF= 000200 G CR$TBT= 011676RG DEXTM1 001352RG DIAG3 = 174436
BC.SKP= 000033 G CH.UNL= 000040 G CR$TET= 027666RG DEXTM2 001350RG DIKL10= 000010
BC.SLA= 000023 G CKDLEN 040512R CR$T04= 011640RG DEXTM3 001346RG DIRDPT 013216R
BC.SNA= 000014 G CLRDEB 026772RG CR$UIE= 030640RG DEXWD1= 174406 DIRMAX= 000102
BC.SPT= 000026 G CMEDP 021116R CSDONE 014612R DEXWD2= 174404 DIROK 013212R
BC.STR= 000003 G CMNABO 011526RG CS.EXP= 177670 DEXWD3= 174402 DIV216 044036RG
BC.STS= 000022 G CMNABT 013342R CTLO = 000040 DE.01 = 000377 G DLCNT = 000005 G
BC.TDU= 000015 G CMSG 012142R CTRLC 032236R DE.02 = 000376 G DLECNT= 000004 G
BC.THU= 000016 G CNT 002724RG CTRLU 032242R DE.03 = 000375 G DLETBL 003006RG
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 288-2
SYMBOL TABLE
DLHUPX 040302R DTEMTD= 000455 D.CLPT= 000005 G E.DTE = 000001 G F.LBN 000026
DLTBL 002776RG DTEMTI= 000456 D.CRJP= 000203 G E.DV = 000006 G F.LGTH 000052
DLTMP 002650RG DTENM = 000000 D.FA = 000004 G E.FCRI= 000073 G F.LINK 000000
DLYCNT= 174400 DTESNP 046534R D.FEPD= 000010 G E.FCTC= 000077 G F.NACS 000036
DL.CAR= 010000 G DTESP 025132RG D.FM = 000002 G E.FFCP= 000072 G F.NLCK 000037
DL.CTS= 020000 G DTETPD 007572RG D.SZ = 000006 G E.FN = 000004 G F.NWAC 000040
DL.DEN= 000040 G DTETSK 007112RG D1011 = 000040 E.FP = 000000 G F.RVN 000012
DL.DSC= 100000 G DTEXIT 027726R EBSEL = 000100 E.FPFR= 000074 G F.SCHA 000021
DL.DTR= 000002 G DTTSK 007352RG EBUSPC= 000020 E.FPR1= 000100 G F.SIZE 000032
DL.FER= 020000 G DUPE = 000020 EBUSPS= 000004 E.FPR2= 000076 G F.STAT 000040
DL.RAC= 004000 G DURE = 000004 ECHOB 035004R E.FRKP= 000075 G F.STD 000004
DL.RDE= 000001 G DVCH = 110220 EDONES= 040000 E.FSND= 000040 G F.UCHA 000020
DL.RDN= 000200 G DV.CFG= 004000 G EDRMT 025406RG E.FW = 000010 G F11TPD 007772RG
DL.REN= 000100 G DV.EOF= 000040 G EF.BOV= 000040 G E.IOD = 000005 G GENTPD 010012RG
DL.RNG= 040000 G DV.F11= 000400 G EF.CLK= 000002 G E.LS = 000002 G GETBUF 031612R
DL.RTS= 000004 G DV.HNG= 001000 G EF.CRI= 002000 G E.NIR = 000004 G HANGUP 025466RG
DL.SRD= 002000 G DV.IOP= 000020 G EF.CTC= 040000 G E.OPSZ= 000060 G HIBYTE= 177400
DL.STD= 000010 G DV.LIN= 002000 G EF.DTE= 000001 G E.RKH = 000013 G HICTS 026224RG
DL.UNA= 001420 G DV.LOG= 000100 G EF.FCP= 001000 G E.RKR = 000012 G HIDVST 026420RG
DL.XEN= 000100 G DV.NXD= 000001 G EF.IOD= 000020 G E.RQM = 000010 G HORPS = 000016
DMTBE = 002776RG DV.OFL= 000002 G EF.NIR= 000010 G E.RSS = 000014 G H.CSP = 000000 G
DMTBL 002734RG DV.OIR= 000004 G EF.PFR= 004000 G E.TMO = 000007 G H.DSW = 000046 G
DMTMP 002644RG DV.SCN= 000010 G EF.PR1= 100000 G E.TTY = 000003 G H.FCP = 000050 G
DMTNXM 041066R DV.URE= 000200 G EF.PR2= 020000 G E.WFM = 000011 G H.FOR = 000052 G
DMYN = 000004 G DWNMS 012770R EF.RKH= 002000 G FC.CEF= 020000 H.HSZ = 000002 G
DNBLK 005606RG DWNMSG 012756R EF.RKP= 010000 G FC.DIR= 040000 H.IPC = 000076 G
DNFCN 005610RG DWNMSZ= 000043 EF.RKR= 001000 G FC.FCO= 010000 H.IPS = 000074 G
DNSTS 005616RG DXBUF 005476RG EF.RQM= 000200 G FC.WAC= 100000 H.ISP = 000100 G
DON10C= 040000 DXCNT 005474RG EF.RSS= 004000 G FDVNM 027464R H.KCAC= 000020 G
DON10S= 100000 DXHD = ****** GX EF.SND= 100000 G FDVNMF 027576R H.KCHN= 000010 G
DON11C= 000100 DXPKT 005516RG EF.TED= 000100 G FDVNMM 027450R H.KEXT= 000004 G
DON11S= 000200 DXRTC 005472RG EF.TMO= 000100 G FEHD = ****** GX H.KMOS= 000002 G
DPCMN 021112R DXSTK = ****** GX EF.TTY= 000004 G FELXFR 030356R H.KPWR= 000040 G
DPMSEP 021140R DXTPD 007732RG EF.WFM= 000400 G FESTK = ****** GX H.KUDF= 000001 G
DPSEC 021136R DXTSK 007412RG EHSG = 000006 G FETBL 005542RG H.LUT = 000130 G
DPS4 = 040000 DXUNIT 005514RG EHSM = 000010 G FETPD 007612RG H.OVL = 000054 G
DQNXT 033172R DXVCB 005500RG EMGSTK 011426RG FETSK 007352RG H.TKVA= 000106 G
DRESET= 000100 DXWD1 = 000006 EMTSTK 001116RG FE0PUD 011172RG IDXTB 032360R
DRXCOM 013460R DXWD2 = 000004 EMTTRP 013036RG FLBT = 000001 IE.ABO= 177761
DRXRR 013472R DXWD3 = 000002 EMYN = 000002 G FLBYT = 000011 IE.ACT= 177771
DR.DTE= 000011 DXWRD1= 002000 EM.DRO= 000020 G FLCT = 000017 IE.ADP= 177636
DR.00 = 000000 G DX0PEN 011002RG ENBXOF 025416RG FLDVOT 026664RG IE.ALN= 177736
DR.01 = 000001 G DX1PEN 011052RG ENTELQ 030320R FNBYT = 000005 IE.AST= 177660
DR.02 = 000002 G D$$H11= 000010 EOLS = 000400 FNDDM 027366R IE.BAD= 177777
DR.03 = 000003 G D.AT = 000000 G EPTR = 000000 FNDSPD 027420R IE.BBE= 177710
DSEND = 000004 D.CCDR= 000006 G EQSZ 001332RG FORPRO= 000020 IE.BDI= 177714
DS.99 013210R D.CCLK= 000007 G ERR10C= 010000 FW = 000300 IE.BDR= 177716
DS04 = 004000 D.CCPU= 000200 G ERR10S= 020000 F.DREF 000042 IE.BDV= 177711
DS05 = 002000 D.CCTY= 000001 G ERR11C= 000001 F.DRNM 000044 IE.BHD= 177700
DS06 = 001000 D.CDH1= 000003 G ERR11S= 000002 F.FEXT 000002 IE.BLK= 177754
DTEADR 001270RG D.CDLS= 000004 G EV.AS = 000002 G F.FNUM 000006 IE.BNM= 177712
DTECMD= 000451 D.CDL1= 000002 G EV.PF = 000200 G F.FOWN 000014 IE.BTF= 177675
DTEDSP 020442R D.CDMB= 000204 G EV.SE = 000001 G F.FPRO 000016 IE.BTP= 177725
DTEFLG= 000444 D.CDTE= 000202 G EXCMN 021146R F.FSEQ 000010 IE.BVR= 177701
DTEF11= 000450 D.CKLE= 000201 G EXKAL 032260R F.FSQN 000013 IE.BYT= 177755
DTEHD 024652RG D.CKLN= 000210 G E.BOV = 000006 G F.FVBN 000046 IE.CKP= 177766
DTEMSK 001266RG D.CLOG= 000205 G E.CLK = 000002 G F.HDLB 000022 IE.CKS= 177742
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 288-3
SYMBOL TABLE
IE.CLO= 177732 IE.STK= 177706 IO.HDX= 003010 IO.WLS= 000410 KS.DEX= 000010 G
IE.CON= 177752 IE.ULN= 177773 IO.HIS= 015000 IO.WLV= 000500 KS.DPE= 002000 G
IE.DAA= 177770 IE.UPN= 177777 IO.INL= 002400 IO.WVB= 011000 KS.EPE= 000004 G
IE.DAO= 177763 IE.VER= 177774 IO.ITI= 017000 IO.XMT= 014400 KS.FCF= 004000 G
IE.DFU= 177750 IE.WAC= 177743 IO.KIL= 000012 IO.XNA= 014410 KS.FME= 000400 G
IE.DNA= 177771 IE.WAT= 177741 IO.LED= 012000 IQ.Q = 000002 KS.PFT= 000100 G
IE.DNR= 177775 IE.WER= 177737 IO.LOV= 001010 IQ.X = 000001 KS.PTO= 000200 G
IE.DUN= 177767 IE.WLK= 177764 IO.LTK= 000050 IS.BV = 000005 KS.TRR= 000040 G
IE.DUP= 177707 IE.2DV= 177720 IO.MCS= 013400 IS.CLR= 000000 KS.TSP= 000001 G
IE.EBX= 177776 IFLOP = 100000 IO.MDA= 016000 IS.CR = 006401 K.LBPW= 000005 G
IE.EOF= 177766 IGNO 012140RG IO.MDI= 014400 IS.ESC= 015401 K.LCKL= 177777 G
IE.EOT= 177702 INIAN 046130RG IO.MDO= 015400 IS.PND= 000000 K.LCON= 000004 G
IE.EOV= 177765 INITLM 011320RG IO.MLO= 006000 IS.RDD= 000002 K.LDCM= 000001 G
IE.EXP= 177676 INPPT 034736R IO.MOD= 003000 IS.SET= 000002 K.LDRP= 177777 G
IE.FEX= 177717 INPT0 034744R IO.MSO= 005000 IS.SUC= 000001 K.LDSC= 000003 G
IE.FHE= 177705 INPT1 035302R IO.RAL= 001010 KBB0 = 177562 G K.LLTO= 000006 G
IE.FOP= 177713 INSHD = ****** GX IO.RAT= 013000 KBB1 = 175612 G K.LRAC= 000001 G
IE.HFU= 177744 INSTAL= ****** GX IO.RBC= 003000 KBS0 = 177560 G K.LRBA= 000007 G
IE.HWR= 177772 INSTK = ****** GX IO.RCI= 015000 KBS1 = 175610 G K.LRMN= 000003 G
IE.IDU= 177644 INSTPD 007552RG IO.RCV= 015000 KLCST 021226R K.LRNG= 000002 G
IE.IEF= 177637 INTLPS 027640R IO.RDB= 001200 KLNLGL= 000016 G K.LROP= 000001 G
IE.IFC= 177776 INTROF= 000010 IO.RDN= 000022 KLNPLN= 000026 G K.LRPR= 000002 G
IE.IFU= 177747 INTRON= 000040 IO.REL= 013400 KLNPTR 002636RG K.LRRJ= 177777 G
IE.ILL= 177726 INTSON= 000001 IO.RHD= 001010 KLPWRF= 000010 K.LSCK= 000001 G
IE.ILU= 177640 INT10S= 000400 IO.RLB= 001000 KL.ABO= 010000 G K.LSKL= 000001 G
IE.INS= 177776 INT11C= 002000 IO.RLV= 001100 KL.CFL= 000400 G K.LUND= 000000 G
IE.IPR= 177641 INT11S= 004000 IO.RNA= 005400 KL.CFM= 000002 G K.LUSR= 177777 G
IE.ISQ= 177703 IOPSIZ= 007777 IO.RNC= 001004 KL.DEF= 002000 G LDLPR 026420RG
IE.ITI= 177643 IOTTRP 011732R IO.RNE= 001020 KL.KAC= 001000 G LDLPV 026420RG
IE.ITS= 177770 IO.ACE= 007400 IO.RTC= 003400 KL.LCA= 000100 G LFBT = 004000
IE.LCK= 177745 IO.ACR= 006400 IO.RTI= 016400 KL.LRM= 000001 G LFCT = 074000
IE.LNL= 177646 IO.ACW= 007000 IO.RTK= 000060 KL.LVB= 000004 G LINCHR 026464RG
IE.MBK= 177721 IO.ADS= 014000 IO.RVB= 010400 KL.REQ= 004000 G LKS = 177546 G
IE.MOD= 177753 IO.APC= 014000 IO.RWD= 002400 KL.SPF= 000040 G LOAD11= 000004
IE.NBF= 177731 IO.APV= 014010 IO.RWU= 002540 KL.VBD= 000020 G LODNOD 031712R
IE.NBK= 177727 IO.ATT= 001400 IO.R1C= 002400 KL.VBN= 000010 G LOWCOD= 000000RG
IE.NFI= 177704 IO.CCI= 014000 IO.SAO= 004000 KPAL0 001376RG LPCEVF 006210RG
IE.NLN= 177733 IO.CCT= 002460 IO.SCS= 013000 KPAL1 001406RG LPCSA = 000002 G
IE.NNC= 177674 IO.CLN= 003400 IO.SDI= 013000 KPAR0 = 172360 LPCSM = 000022 G
IE.NOD= 177751 IO.CON= 015400 IO.SDO= 012400 KPAR1 = 172362 LPEVFG 006206RG
IE.NSF= 177746 IO.CRC= 001020 IO.SEC= 002520 KPAR2 = 172364 LPEXPA= 175400 G
IE.OFL= 177677 IO.CRE= 012000 IO.SEM= 002440 KPAR3 = 172366 LPEXPZ= 000020 G
IE.ONP= 177773 IO.CTI= 015400 IO.SHT= 002410 KPAR4 = 172370 LPHD = ****** GX
IE.OVR= 177756 IO.CTL= 016400 IO.SLO= 005400 KPAR5 = 172372 LPHUNG 006212RG
IE.PRI= 177760 IO.DAC= 010000 IO.SMO= 002560 KPAR6 = 172374 LPITH = 000006 G
IE.RAC= 177724 IO.DCI= 014400 IO.SNM= 002450 KPAR7 = 172376 LPMCB = 000020 G
IE.RAT= 177723 IO.DCT= 002470 IO.SPB= 002420 KPDR0 = 172300 LPRMA = 000040 G
IE.RBG= 177730 IO.DEL= 012400 IO.SPF= 002440 KPDR1 = 172302 LPRMC = 000044 G
IE.RCN= 177722 IO.DET= 002000 IO.SSO= 004400 KPDR2 = 172304 LPRMZ = 000042 G
IE.RER= 177740 IO.DIS= 016000 IO.SST= 002430 KPDR3 = 172306 LPRTY = 000024 G
IE.RNM= 177715 IO.DTI= 016000 IO.STC= 002500 KPDR4 = 172310 LPSIZE= 000010 G
IE.RSU= 177757 IO.ENA= 006000 IO.STP= 016400 KPDR5 = 172312 LPSTBH 006216RG
IE.SDP= 177635 IO.EOF= 003000 IO.SYN= 003040 KPDR6 = 172314 LPSTBK 006220RG
IE.SNC= 177735 IO.ESA= 002500 IO.TRM= 002410 KPDR7 = 172316 LPSTK = ****** GX
IE.SPC= 177772 IO.EXT= 011400 IO.UNL= 000042 KS.CES= 000002 G LPSTLN= 000030 G
IE.SQC= 177734 IO.FDX= 003020 IO.WAT= 013400 KS.CPE= 001000 G LPSTS = 000000 G
IE.SRE= 177762 IO.FNA= 004400 IO.WLB= 000400 KS.CST= 000020 G LPTBL 006250RG
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 288-4
SYMBOL TABLE
LPTBL2 006270RG PR3 = 000140 RPBUF 005524RG SNDALL 027000RG S.SS = 000030 G
LPTBL3 006310RG PR4 = 000200 RPCNT 005530RG SNDBEL 036112RG S.STBK= 000012
LPTHD = 000004 G PR5 = 000240 RPCW2 005534RG SNDMSG 013034RG S.SZ = 000036 G
LPTPD 007652RG PR6 = 000300 RPHD = ****** GX SNDSTS 031536R S.TD = 000004 G
LPTSK 007252RG PR7 = 000340 G RPPEN 010302RG SPDTB 032374R S.TN = 000000 G
LPUNIT 006204RG PS = 177776 G RPRNA 005522RG SPDTBL 024616R S.TZ = 000016 G
LPUTBL 006330RG PSWW1 = 000005 RPRTC 005520RG SPDTBZ= 000016 S0.ABR= 100000 G
LP0PUD 011122RG PSWW10= 000014 RPSTK = ****** GX SPSAV 001020RG S0.CON= 040000 G
L$$P20= 000002 PSWW11= 000015 RPTPD 007752RG STAT = 174434 S0.ISP= 001700 G
L.DT0 = 000003 G PSWW12= 000016 RPTSK 007212RG STATD = 000034 S0.MSK= 140000 G
L.DX0 = 000005 G PSWW13= 000017 RPUNIT 005532RG STATI 001336RG S0.OSP= 036000 G
L.DX1 = 000006 G PSWW2 = 000006 RQKLD 032326R STATS = 000000 S0.SPD= 037700 G
L.RP4 = 000002 G PSWW3 = 000007 RQKLR 032310R STATUS= 000022 S2.CHR= 000377 G
L.TTY = 000001 G PSWW4 = 000010 RQMCR 032272R STBXFR 031670R S2.CNT= 001400 G
MBUFR = 000014 PSWW5 = 000011 RQSPB 024074R STCM 045356R S2.DDN= 100000 G
MEBUF = 000012 PSWW6 = 000012 RQSPT 024070RG STDCDR 006746RG S2.DIP= 040000 G
MECNT = 000010 PSWW7 = 000013 RQSTD 024106R STDDTE 006406RG S2.DIS= 020000 G
MODE = 100000 PULSE = 000020 RSX$$E= 000045 STDDX 006506RG S2.ENB= 010000 G
MPE11 = 001000 PWRXSP 001032RG RSX$$F= 000102 STDFED 006446RG S2.LCL= 004000 G
M.PARQ= 000002 G PWR.UP 017720RG RSX$$K= 000126 STDF11 006546RG S2.RES= 002000 G
M.TAKP= 000001 G QNDSV 023200R RSX$$V= 000014 STDINS 006646RG S2.SSZ= 001000 G
NODADR 005552RG QPRDTC 025152RG RTDVST 026420RG STDLPT 006706RG TBIT = 000020 G
NOSNDA 025424RG QPRDTE 025156RG RTNTOD 026374RG STDQPR 007046RG TEDXIT 030534R
NTKXEN 012542R QPRDTF 026660R RUBP = 000020 STDRPT 006606RG TENAD1= 174410
NTKXEP 012546R QPRDTL 025234R R$$11D= 000001 STDTTY 007006RG TENAD2= 174412
NTKXSP 012522RG QPROAD 017572R R.AS = 000020 G STDVST 026420RG TF.OU = 000002 G
NULHD 012242RG QPROMS 017550R R.AT = 000006 G STELIG 031302R THRED = 000000 G
NULSTP= 000040 QPRTPD 007712RG R.DP = 000011 G STELIX 031324R TMOCNT 002662RG
NULTSK 007512RG QPRTSK 007452RG R.FC = 000014 G STIND2 030102R TNAD1 = 000010
NUPE = 000002 QSIZE = 000023 R.FN = 000013 G STLN 045412R TNAD2 = 000012
N.BP = 000002 G Q.AK = 000012 G R.LU = 000012 G STNXT 034062R TN.EMT= 000012 G
N.FP = 000000 G Q.DA = 000000 G R.PB = 000024 G STPLIN 026042RG TN.LRF= 000040 G
N.OVPT= 000054 G Q.DZ = 000016 G R.PR = 000010 G STRBF = 000002 TN.TRP= 000014 G
N.PR = 000010 G Q.D1 = 000006 G R.QSGC= 000015 STRDAT 026420RG TOBM = 000004
OKPAL0 001404RG Q.IOAE= 000012 R.QSPC= 000014 STSTT 001320RG TOD = 000003
OUTPT 034546R Q.IOEF= 000006 R.QSPN= 000006 STSWD 005560RG TOIP = 000002
OUTPT3 034466R Q.IOFN= 000002 R.QSPR= 000012 STSW0 = 000004 G TOIT = 000001
PARLOA 020266R Q.IOLU= 000004 R.QSTN= 000002 STSW1 = 000006 G TOITDN 030522R
PARLOT 020340R Q.IOPL= 000014 R.SB = 000016 G STSW2 005060RG TOXQIP 001373RG
PARSAV 001022RG Q.IOPR= 000007 R.TD = 000004 G STTYDN 033676R TO10 = 000200
PERCLR= 001000 Q.IOSB= 000010 R.UI = 000022 G STTYO 034272R TO10AD= 174420
PHYS = 100000 Q.SI = 000004 G SCD = 000040 STXAS = 000000 G TO10AS 001316RG
PIDENT= 000000 Q.SP = 000006 G SETDEB 026762RG STXCS = 000000 G TO10BC= 174414
PRB0 = 177566 G Q.ST = 000004 G SETLIN 025622RG STXDX = 000000 G TO10BM= 000001
PRB1 = 175616 G Q.SZ = 000020 G SETSPD 025642RG SWR = 177570 TO10DB= 000400
PRI7 = 000340 G Q.TS = 000002 G SEXCM 022060R SWSLLT= 100000 TO10DN= 100000
PRMBLK 023206R RAMIS0= 010000 SEXP0 022066R SY0PUD 011242RG TO10DT= 174424
PRMEMN 001232RG RCVKLP 026722RG SEXP1 022146R S.BA = 000012 G TO10ER= 020000
PROPNT= 000021 RESERV 011666R SEXP2 022050R S.DI = 000011 G TO10PK 005564RG
PROTBL 001236RG RETTOD 026626RG SEX97 022150R S.DL = 000032 G TO10Q 001326RG
PRS0 = 177564 G RFMAD0= 100000 SF.EX = 000004 G S.DP = 000010 G TO10QC= 001324RG
PRS1 = 175614 G RFMAD1= 040000 SF.FX = 000002 G S.FW = 000006 G TO10SZ 001314RG
PRTOFF= 004000 RFMAD2= 020000 SF.IR = 040000 G S.LZ = 000014 G TO11 = 000100
PRVCM 021466R RFMAD3= 010000 SF.PT = 000001 G S.PC = 000020 G TO11AD= 174422
PR0 = 000000 RF.XR = 000002 G SF.ST = 100000 G S.RB = 000026 G TO11AS 001310RG
PR1 = 000040 RM = 000010 SF.TA = 000001 G S.RF = 000024 G TO11BC= 174416
PR2 = 000100 RMBYT = 000004 SKX 023236R S.SP = 000022 G TO11BM= 020000
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 288-5
SYMBOL TABLE
TO11BS 001312RG TT.NSA= 000400 G UNASG3= 000034 V.FPRO 000030 $EXMYN 021152RG
TO11DB= 004000 TT.OUT= 000001 G UNASG4= 000035 V.FRBK 000034 $FE = 000001
TO11DN= 000200 TT.RIP= 002000 G UNASG5= 000036 V.IBLB 000012 $F11 = 000001
TO11DT= 174426 TT.RMT= 000100 G UNASG6= 000037 V.IBSZ 000013 $KLDFC 021362RG
TO11DV 001300RG TT.RSI= 020000 G UNRGFN 025400RG V.IFWI 000002 $KLDFR 021202RG
TO11ER= 000002 TT.SIP= 001000 G UPAR0 = 177640 V.LABL 000040 $KLDFW 021342RG
TO11FN 001276RG TT.SND= 140000 G UPAR1 = 177642 V.LGTH 000056 $KLDFX 021320RG
TO11FW 001304RG TT.SNI= 040000 G UPAR2 = 177644 V.LRUC 000035 $LPINT= ****** GX
TO11GW 001306RG TT.XEN= 000020 G UPAR3 = 177646 V.SBCL 000021 $LP20 = 000001
TO11HD 001274RG TT.XOF= 000200 G UPAR4 = 177650 V.SBLB 000024 $MUL = ****** GX
TO11NP 001272RG T.BA = 000004 G UPAR5 = 177652 V.SBSZ 000022 $PRVDP 021440RG
TO11Q 001334RG T.FW = 000010 G UPAR6 = 177654 V.STAT 000054 $PRVEX 021454RG
TO11QC= 001325RG T.HBCT= 000002 G UPAR7 = 177656 V.STD 000004 $RP04 = 000001
TO11SP 001302RG T.HCAD= 000004 G UPDR0 = 177600 V.TRCT 000000 $RWDRG 021510RG
TRPASV 001120RG T.HCBC= 000006 G UPDR1 = 177602 V.WISZ 000020 $RX11 = 000001
TRPXIT 011570R T.HFCN= 000007 G UPDR2 = 177604 WEP = 000010 $TOP20= 000001
TRP4 011616R T.HHDS= 000010 G UPDR3 = 177606 WFXSET 013762R $TTINP 036166RG
TS.EXT= 000026 G T.HP = 000012 G UPDR4 = 177610 WI.BPS= 100000 $TTOUT 034224RG
TS.LRF= 000006 G T.HRED= 000000 G UPDR5 = 177612 WI.DLK= 010000 $UNIT 002640RG
TS.LRQ= 000002 G T.PN = 000000 G UPDR6 = 177614 WI.EXT= 002000 $$ = 000037
TS.RUN= 000010 G T.PZ = 000006 G UPDR7 = 177616 WI.LCK= 004000 $$MSG = 000000
TS.SUS= 000012 G T.RAPB= 000004 G UT.LG = 000004 G WI.RDV= 000400 $$$ = 010016R
TS.TKN= 000004 G T.RAPE= 000012 G UT.PR = 000001 G WI.WRV= 001000 $$$ARG= 000011
TS.WF0= 000014 G T.RAPF= 000016 G UT.SL = 000002 G WTLODT 024572R $$$OST= 000016
TS.WF1= 000016 G T.RAPI= 000006 G U.ACP = 000040 G W.CTL 000000 $$$T1 = 000000
TS.WF2= 000020 G T.RAPM= 000002 G U.AF = 000014 G W.FCB 000002 $$$UNI= 000002
TS.WF3= 000022 G T.RAPR= 000010 G U.AR = 000034 G W.RTRV 000012 .ABCNT 002600RG
TS.WF4= 000024 G T.RAPT= 000014 G U.CH = 000032 G W.STD 000004 .ABFLG 002602RG
TTCNT = 000205 G T.RAP4= 000000 G U.C1 = 000004 G W.VBN 000006 .ACKAL 001164RG
TTCTY 036646R T.RB = 000016 G U.C2 = 000006 G W.WISZ 000007 .ATLLH 007106RG
TTINI 032404RG T.RF = 000014 G U.C3 = 000010 G XOFF 026166RG .ATOTA 011317RG
TTINO 033546R T.SZ = 000020 G U.C4 = 000012 G XON 026202RG .BGBST= 076000 G
TTINPA 036206R T10AD = 000020 U.DACP= 000036 G X.X94 015650R .BGBUF 001414RG
TTINPB 036374R T11AD = 000022 U.DN = 000000 G X.X95 015652R .BGLEN= 002000 G
TTINX 033542R T11BC = 000016 U.FB = 000003 G X8X97 043146RG .BM873= 173000 G
TTOUTR 034366R U = 000040 U.FO = 000043 G X9X96 015726R .BRCLK= 005000
TTOUTX 034360R UC.CCL= 000002 G U.GC = 000031 G ZSTOP = 040000 .BRKCH 002630RG
TTPEN 010232RG UC.COM= 020000 G U.HA = 000020 G $BTMSK 002642RG .BTPRM 001160RG
TTPKT 002732RG UC.DIR= 000010 G U.LBH = 000044 G $CDINT= ****** GX .BTSCH 001162RG
TTSAV 037332R UC.ETB= 000100 G U.LBN = 000046 G $CD11 = 000001 .BTSTK 016312RG
TTSTCH 036232R UC.F11= 040000 G U.PC = 000030 G $DBDTE= 000001 .CECLK= 004000
TTTBL 002776RG UC.INB= 000400 G U.PR = 000042 G $DHINP 035534RG .CEFN 043062RG
TTWLO 032252R UC.ISP= 002000 G U.RB = 000024 G $DHOUT 033552RG .CEFN3 043066RG
TTYDNE 034654R UC.MNT= 100000 G U.RF = 000022 G $DH11 = 000001 .CKASS 001050RG
TTYDNX 034720R UC.PSE= 010000 G U.RP = 000016 G $DIV = ****** GX .CKDEL 043150RG
TTYEND= 005046RG UC.REC= 000001 G U.SZ = 000050 G $DMINT 037626RG .CLKBA 002370RG
TTYEXP= 000002 G UC.SDI= 000020 G U.TF = 000042 G $DORBL 020502RG .CLKEA 002574RG
TTYHD 031736RG UC.SQD= 000040 G U.UI = 000030 G $DPMYG 021110RG .CLKSW 001136RG
TTYSP 032216RG UC.SWL= 001000 G U.UN = 000002 G $DPMYN 021160RG .CLKSZ= 000007 G
TTYTPD 007632RG UC.TTY= 000004 G U.VA = 000026 G $DSW = 000046 G .CLRMR= 006000
TTYTSK 007152RG UC.0SP= 004000 G U.VP = 000032 G $DTE = 000001 .CLRUN= 010000
TT.ABL= 000040 G UF.OFL= 000040 G VC.BMW= 000002 $DTEOF 020504RG .COMEF 001010RG
TT.ABW= 000010 G UF.RD = 000040 G VC.IFW= 000001 $DTEON 020512RG .CONBT= 012000
TT.CRW= 000004 G UF.RH = 000200 G V.FCB 000006 $DXINT= ****** GX .CPDV 001254RG
TT.CTY= 000002 G UF.TL = 000100 G V.FFNU 000055 $EXHSG 021166RG .CPFN 001252RG
TT.FEC= 014000 G UNASG1= 000032 V.FIEX 000025 $EXHSM 021174RG .CPUSN 011312RG
TT.FEI= 004000 G UNASG2= 000033 V.FMAX 000016 $EXMYG 021142RG .CRHD 001262RG
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 288-6
SYMBOL TABLE
.CRPB 001260RG .D.GTP 021720RG .KLNPW 001220RG .PRPSE 001372RG .SYUIC 001156RG
.CRPFL 005706RG .D.MKT 022350RG .KLNSW 001226RG .PRSTA 001356RG .S2IDC 005050RG
.CRQZ 001250RG .D.PUT 023640RG .KLNTD 001212RG .PUDBA 010232RG .S2ITP 005052RG
.CRSB 001264RG .D.QIO 022542RG .KLNTT 001210RG .PUDEA 011312RG .TENDN 027746RG
.CRSND 002626RG .D.RAF 022126RG .KLRLD 001172RG .PWRDN 017574RG .TFXOF 043004RG
.CRSZ 001256RG .D.REC 023460RG .KPAC 001410RG .RCRM1= 147000 .TFXON 042774RG
.CRTSK 001006RG .D.REF 022112RG .KPALV 031326RG .RCRM2= 146000 .TICK 024364RG
.CSHRG= 164000 .D.REQ 023662RG .KW11S 035366RG .RCRM3= 145000 .TICKS 001134RG
.CTYPT 002634RG .D.ROE 023460RG .LCEND= 011320RG .RCRM4= 144000 .TKPS 001154RG
.CYLTM= 000074 G .D.ROS 023460RG .LCRDL= 052000 .RCSPF= 141000 .TKTN 001124RG
.DATE 001140RG .D.SAR 023226RG .LCRDR= 051000 .RDJ14= 134000 .TKTN. 012740R
.DATE3 001140RG .D.SEF 022052RG .LCRM1= 057000 .RDJ71= 135000 .TOD. 012722R
.DAY 001144RG .D.SEN 023212RG .LCRM2= 056000 .RDMAB= 133000 .TPDBA 007552RG
.DBINT= ****** GX .D.STV 023626RG .LCRM3= 055000 .REQS 015046RG .TPDEA 010032RG
.DHSPD 037554RG .D.WFL 022230RG .LCRM4= 054000 .RPADR 005670RG .TTACK 034370RG
.DHSPF 037514RG .D.WFO 022154RG .LCRM5= 053000 .RPELC 005540RG .TTBTW 042604RG
.DHSPR 037460RG .D.WFS 022152RG .LDAR = 077000 .RPELQ 005536RG .TTCHK 042124RG
.DHSTO 034164RG .D.WSE 022336RG .LDBRL= 043000 .RPSIZ 005674RG .TTDIS 042312RG
.DHTMO 040646RG .EBPEC 001370RG .LDBRR= 042000 .RPUNT 005664RG .TTELB 002660RG
.DHXOF 041632RG .EBPEQ 001366RG .LDCK1= 046000 .RP1PE 010352RG .TTELC 002656RG
.DHXON 041754RG .EBRTY 001365RG .LDCK2= 047000 .RP2PE 010422RG .TTELQ 002654RG
.DLHUP 040214RG .EIOJA= 067000 .LDDIS= 045000 .RP3PE 010472RG .TTENB 042464RG
.DLINT 036500RG .ELEDN 030234RG .LDRJD= 064000 .RP4PE 010542RG .TTERL 041426RG
.DLSTO 034340RG .EXEND 001002RG .LDRJV= 063000 .RP5PE 010612RG .TTFDI 041360RG
.DLTMO 040336RG .FEACK= ****** GX .LDRM1= 060000 .RP6PE 010662RG .TTICK 042150RG
.DLXOF 041640RG .FEACT 005666RG .LDRM2= 061000 .RP7PE 010732RG .TTIXC 042254RG
.DLXON 042020RG .FEMOD 001170RG .LDRM3= 062000 .RQESD 015540RG .TTP11 002632RG
.DMHUP 040144RG .FEPPU 015550RG .LDSEL= 044000 .RQSPD 024600RG .TTQDS 042204RG
.DMTMO 041126RG .FEST = ****** GX .LPPFL 006214RG .SECLK= 003000 .TTQEN 042214RG
.DOW 001147RG .FESTB 001000RG .MEMRS= 076000 .SEND 023360RG .TTRNG 040044R
.DQCDR 010152RG .FREPL 001420RG .MISC 011316RG .SERFG 001014RG .TTRST 042034RG
.DQDH0 010072RG .FSRPT= 000050 G .MON 001145RG .SETMR= 007000 .TTSCW 040050R
.DQDLS 010112RG .GFNR = 102000 .MSIZE 001114RG .SETRN= 011000 .TTSTP 041650RG
.DQDL1 010052RG .HRDWR 011314RG .NOERR 001122RG .SEWFL 001016RG .TTSW2 042754RG
.DQLPT 010132RG .IBFLO 005054RG .NOHLT= 001123RG .SNDAL 027006RG .TTS2F 005046RG
.DQPBA 010032RG .IBFOK 005056RG .OBFLO= 001200 G .SNDBF 002606RG .TTXOF 041554RG
.DQPEA 010232RG .INHDM 002576RG .PARER 011702R .SNDCN 002616RG .TTXON 041676RG
.DQPSZ= 000010 G .INICL= 070000 .PARRG= 172100 G .SNDLP 002604RG .VCLUN 015654RG
.DRBEL 030540RG .INTEN= 000100 G .PAT1. 000040RG .SSCLK= 002000 .VERNO 001036RG
.DRLTC= 015000 .IOSNP 012156R .PAT2. 000120RG .SSM 001150RG .WRMBX= 071000
.DRSRN 013352RG .IRLTC= 014000 .PAT3. 000234RG .SSTCO 013326RG .X.02 023234R
.DR.NS 013460RG .KACFL 001412RG .PAT4. 000520RG .SSTET 013320RG .YEAR 001142RG
.DSACF= 066000 .KALSC= 000005 G .PCAB1= 150000 .STAST 015730RG ..AKCR= ****** GX
.DSIOJ= 065000 .KLERQ 001130RG .PCAB2= 151000 .STDHL 037416RG ..AKLP= ****** GX
.DST 001146RG .KLERW 001166RG .PCAB3= 152000 .STDTA 006334RG ..ALCB 044416RG
.DTBLK 001374RG .KLFCF 001173RG .PCAB4= 153000 .STDTB 006342RG ..ALC2 044432RG
.DTINT 027624RG .KLFLG 001174RG .PDP11= 000050 .STDTC 006336RG ..ALOW 044706RG
.DXRTY 001364RG .KLITK 001126RG .PFAIL 001026RG .STDTZ 006340RG ..BLXI 047062RG
.D.ASS 021564RG .KLIWD 001132RG .PFASS 001052RG .STELD 031062RG ..BLXO 047074RG
.D.CEF 022034RG .KLNBC 001200RG .PFIOW 001030RG .STELI 031150RG ..DECB 044552RG
.D.CMT 022452RG .KLNFD 001204RG .PFRST 020126RG .STPCL= 000000 ..DECN 044546RG
.D.DSE 022070RG .KLNFT 001202RG .POLLH 001424RG .STPDM 040174RG ..DEC2 044542RG
.D.DTE 020344RG .KLNLB 001200RG .POLND 002330RG .STRCL= 001000 ..DQRN 043432RG
.D.EXT 022520RG .KLNMD 001216RG .POLST 001430RG .STTNF 031370RG ..DSEV 044026RG
.D.GLI 021670RG .KLNPB 001176RG .PRADR 001354RG .STTNQ 031362RG ..DTP1 047036RG
.D.GMP 024232RG .KLNPE= 001220RG .PRDCT 001362RG .STTYD 040060RG ..DTP2 047006RG
.D.GPP 024110RG .KLNPT 002636RG .PRDTE 001360RG .STTYH 040074RG ..DTSP 046770RG
SCOMM - COMMON DATA AND SUBRO MACRO M1113 11-NOV-81 11:13 PAGE 288-7
SYMBOL TABLE
..ENB0 044302RG ..NADD 044176RG ..SPLP= ****** GX ..STLP= ****** GX ..VTOL 047150RG
..ERLG 043212RG ..NDEL 044062RG ..STCH 045326RG ..STPT 045142RG ..VVLL 047332RG
..FSTD 044336RG ..PICK 044240RG ..STCR= ****** GX ..STQ 046046RG ..VXFR 047054RG
..INTX 014632RG ..SACK 045372RG ..STFC 045456RG ..STTY 044726RG ..WFED 046216RG
..IODN 043312RG ..SEFN 043754RG ..STIN 045646RG ..SWED 046670RG ...GBL= 000000
..IPRI 044122RG
. ABS. 000056 000
047526 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 18853 WORDS ( 74 PAGES)
DYNAMIC MEMORY: 20774 WORDS ( 79 PAGES)
ELAPSED TIME: 00:05:57
,[100,20]RSXTOPS20.LST/-SP/CRF=[100,30]RSXTOPS20.TMP
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
ACKNOW 025610 RG 148-8176 #154-8303
ADRSAV 005554 RG #33-1056
AF.PP = 000200 G #53-2352
ASXCMN 013760 R 70-3137 70-3142 70-3147 70-3152 #70-3163
ASXDT 013634 R 69-3094 #69-3096
ASXEXT 014150 R 69-3125 #73-3214
ASXE1 013610 RG 42-1682 #69-3081 74-3310 75-3495
ASXE2 013624 R 67-3028 #69-3093 71-3175 73-3295
ASXLRF 013774 R 69-3107 #71-3171 72-3184
ASXLRQ 014032 R 69-3103 #72-3181
ASXSCN 013622 R #69-3092 69-3105 69-3111 70-3163 72-3182
ASXTE 014442 R 69-3109 70-3166 72-3209 #74-3306
ASXWR0 013662 R 69-3115 #70-3136
ASXWR1 013672 R 69-3117 #70-3141
ASXWR2 013702 R 69-3119 #70-3146
ASXWR3 013712 R 69-3121 #70-3151
ASXWR4 013722 R 69-3123 #70-3156
A.EF = 000020 G 15-790 #53-2321 70-3136 70-3141 70-3156 70-3158 *72-3181 72-3201 *76-3587
*76-3639 *76-3643 *81-3923 113-5804 113-5805 *124-6663 *147-8134 *178-9362 192-10282
*192-10283 *209-10910 *216-11434 *217-11476 *222-11800 *228-12083 252-13407 255-13534 *255-13540
*257-13645 *257-13700 258-13758
A.FB = 000015 G #53-2319
A.FM = 000024 G *43-1752 #53-2323 70-3136 70-3141 70-3146 70-3151 70-3156 70-3158 70-3160
70-3162 *71-3171 72-3183 *76-3624 *114-5871 115-5937 *115-5963 *122-6311 257-13695
A.HA = 000012 G #53-2317 72-3186 74-3323 74-3338 78-3759 139-7654 285-15415
A.PD = 000006 G 43-1755 #53-2315 71-3174 73-3220 139-7653 141-7775
A.PF = 000034 G #53-2327 *76-3587 *135-7391 135-7394
A.RP = 000010 G #53-2316 124-6532 139-7663
A.SP = 000004 G #53-2313 *72-3206 *74-3336 74-3337 79-3813
A.SZ = 000036 G #53-2329
A.TD = 000016 G 43-1741 #53-2320 67-2792 67-2960 72-3207 73-3219 124-6592 127-6889 127-6915
131-7139 133-7302 139-7652
A.TS = 000014 G *43-1753 #53-2318 69-3093 *70-3165 *71-3172 *72-3185 *114-5872 *115-5950 *115-5962
*122-6310 127-6917 *127-6919
BC.AKA = 000025 G #146-8076 194-10341
BC.BTP = 000024 G #146-8075 161-8523
BC.BTW = 000035 G #146-8084
BC.DEB = 000036 G #146-8085
BC.DES = 000010 G #146-8063
BC.EDR = 000027 G #146-8078
BC.FNM = 000040 G #146-8087 178-9377
BC.FOD = 000013 G #146-8066
BC.HAD = 000002 G #146-8057 161-8502
BC.HDS = 000007 G #146-8062 255-13529
BC.HTD = 000012 G #146-8065
BC.LDR = 000030 G #146-8079
BC.LDV = 000031 G #146-8080
BC.LNC = 000004 G #146-8059 272-14492
BC.NDM = 000037 G #146-8086
BC.NSA = 000032 G #146-8081
BC.RDS = 000005 G #146-8060
BC.RQD = 000001 G #146-8056
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
BC.RTD = 000011 G #146-8064
BC.SAK = 000017 G #146-8070 174-9069 273-14527
BC.SDS = 000006 G #146-8061
BC.SKP = 000033 G #146-8082 161-8514
BC.SLA = 000023 G #146-8074 194-10337
BC.SNA = 000014 G #146-8067
BC.SPT = 000026 G #146-8077
BC.STR = 000003 G #146-8058
BC.STS = 000022 G #146-8073
BC.TDU = 000015 G #146-8068 225-11976
BC.THU = 000016 G #146-8069 225-11982
BC.XEN = 000034 G #146-8083
BC.XOF = 000020 G #146-8071
BC.XON = 000021 G #146-8072
BELADR 036164 RG 214-11302 #214-11310
BITTBL 043022 RG 205-10743 214-11307 #251-13326 252-13399 258-13760
BIT0 = 000001 #7-262 41-1642 41-1653 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120
#189-10058 189-10175 #250-13319
BIT1 = 000002 #7-262 41-1643 41-1654 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120
#189-10058 189-10174 #250-13319
BIT10 = 002000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 189-10146
189-10168 #250-13319
BIT11 = 004000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 189-10145
189-10167 #250-13319
BIT12 = 010000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 189-10144
189-10166 #250-13319
BIT13 = 020000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 189-10143
189-10165 189-10180 189-10188 #250-13319
BIT14 = 040000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 156-8370 #175-9120 #189-10058
189-10142 189-10164 #250-13319
BIT15 = 100000 #7-262 #48-2092 #80-3894 81-3923 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
189-10141 189-10163 #250-13319 255-13529
BIT2 = 000004 #7-262 41-1644 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
189-10173 #250-13319
BIT3 = 000010 #7-262 41-1645 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
189-10172 #250-13319
BIT4 = 000020 #7-262 41-1646 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
189-10176 #250-13319
BIT5 = 000040 #7-262 41-1647 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
189-10171 #250-13319
BIT6 = 000100 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 189-10170
189-10184 #250-13319
BIT7 = 000200 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 189-10169
#250-13319
BIT8 = 000400 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 189-10148
189-10176 #250-13319
BIT9 = 001000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 189-10147
189-10148 189-10176 #250-13319
BLDPKT 042702 R 244-13112 244-13112 #245-13155
BLKTT 005624 RG #33-1073
BLXCOM 047102 R 284-15311 #284-15317
BLXPLP 047132 R 284-15340 #284-15351 284-15353
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
BLXRTN 047142 R #284-15361
BPARER = 000020 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
277-14867
BPTTRP 011674 R 43-1772 #43-1793
BTPHD 016032 RG 36-1338 37-1398 38-1437 #81-3917
BTPRO 016332 R 81-3918 81-3918 #81-3920 81-3965 81-4041 81-4130
BTWCHR 026140 RG 148-8190 #158-8416
BYCNT 002726 RG #18-882 *197-10482 199-10519 209-10893 *209-10895
BYTESA 005556 RG #33-1058
CDBA = 177164 G #34-1090
CDCC = 177162 G #34-1089
CDD = 000020 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
CDDB = 177166 G #34-1091 34-1105
CDRTPD 007672 RG 36-1331 37-1371 #38-1432
CDST = 177160 G #34-1088 34-1105 34-1121
CDTSK 007312 RG 37-1365 #37-1370
CESCHK 021540 R 97-4976 97-4976 97-5008 97-5008 97-5016 97-5016 #101-5158
CHNPNT = 000001 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
CHTBL 032344 R #191-10234 191-10247 213-11232
CHTBLN = 000013 #191-10247 213-11230
CH.FOR = 000100 G #57-2501
CH.LAB = 000001 G #57-2505
CH.NAT = 000020 G #57-2503
CH.NDC = 000010 G #57-2504
CH.OFF = 000200 G #57-2500
CH.UNL = 000040 G #57-2502
CKDLEN 040512 R 229-12138 229-12138 229-12150 229-12150 #229-12193
CLRDEB 026772 RG 148-8192 #168-8695
CMEDP 021116 R #91-4752 92-4800
CMNABO 011526 RG 43-1743 43-1746 #43-1750 67-2915
CMNABT 013342 R 67-2799 #67-2914 67-2966
CMSG 012142 R 44-1827 #44-1891
CNT 002724 RG #18-880 *197-10483 218-11594
CNUPE = 000002 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
COMBSE 001230 RG #11-589 *90-4631 90-4690
COMTRP 011426 R 8-321 8-323 8-325 8-327 #43-1727
COPBUF 027312 RG 66-2735 66-2735 169-8771 169-8771 #170-8869 270-14312 270-14312
CPUERR 020500 R 87-4496 #87-4522
CRADR 002730 RG #18-884 *197-10484 198-10503 199-10518 199-10520 209-10897 *209-10899 *209-10908 *211-11063
*211-11075
CRBFLN = 000240 G #34-1112
CRBUFF 005732 RG #34-1110 34-1112
CRBUFH 005730 RG #34-1108
CRCEVF 005702 RG 34-1094 #34-1095
CREVFG 005700 RG #34-1093
CREXP = 006176 RG #34-1120
CRHD = ****** GX 36-1331 37-1371 38-1433
CRHUNG 005704 RG #34-1097
CRJT = 001000 #189-10084 199-10521 211-10999 211-11008 211-11019
CROBAR 001034 RG #9-470 *83-4259 *84-4284
CRSIZE = 000010 G #34-1126
CRSTB 011606 R 43-1766 #43-1769
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
CRSTBH 005710 RG #34-1102
CRSTBK 005712 RG #34-1104 34-1106
CRSTK = ****** GX 37-1371
CRSTLN = 000016 G #34-1106
CRSTS = 006200 RG #34-1122
CRTBL 006174 RG #34-1117 34-1126 39-1493
CRTHD = 006174 RG #34-1118
CRTNXA 014670 R 75-3452 #75-3461
CRTNX1 014662 R 75-3455 #75-3458
CRTNX2 014670 R #75-3467
CRTNX3 014672 R 75-3459 #75-3482 75-3513
CRTY = 002000 #189-10083 199-10517 200-10538 200-10544 209-10904
CR$BO5 = 042750 RG #245-13171
CR$B03 = 046144 RG #276-14736
CR$CBR = 017750 RG #84-4286
CR$DTB = 030306 RG #178-9345
CR$DTD = 011662 RG #43-1788
CR$DTF = 027772 RG #177-9232
CR$ETE = 027704 RG #176-9180
CR$FTA = 011564 RG #43-1757
CR$IAS = 015042 RG #75-3525
CR$ILF = 025402 RG #149-8203
CR$ILQ = 030762 RG #179-9531
CR$LRF = 014026 RG #71-3176
CR$MPE = 011726 RG #43-1805
CR$PT1 = 030400 RG #178-9374
CR$PT2 = 030416 RG #178-9379
CR$PT3 = 030726 RG #179-9511
CR$PT4 = 031032 RG #179-9542
CR$RES = 011670 RG #43-1791
CR$TBT = 011676 RG #43-1794
CR$TET = 027666 RG #176-9174
CR$T04 = 011640 RG #43-1781
CR$UIE = 030640 RG #179-9474
CSDONE 014612 R 74-3307 #74-3397
CS.EXP = 177670 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
CTLO = 000040 #189-10086 197-10489 200-10536 211-11024 218-11514 218-11515
CTRLC 032236 R #190-10213 218-11621
CTRLU 032242 R #190-10215 218-11592
CTRLZ 032246 R #190-10217 218-11612
CTYPTR 002634 RG #17-840 161-8503 197-10466 197-10485 208-10832 208-10839 209-10862 209-10880 216-11424
218-11508
CTYSTS 002664 RG #18-876 197-10486 209-10881 *211-11042 211-11047 211-11062 218-11509
CURBF = 000006 #189-10070 *199-10518 218-11556 *218-11557 *218-11560 218-11572 *218-11574 218-11575 *218-11595
CYCLS = 000002 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
C.AS = 000002 G #54-2366
C.AT = 000000 G #54-2365 120-6220
C.FA = 000012 G #54-2370
C.FM = 000010 G #54-2369
C.HALT = 000033 G #189-10201
C.HCRT = 000015 G #189-10196 209-10903 211-10975 218-11543
C.HEOF = 000032 G #189-10199 218-11541
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 5
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
C.HESC = 000033 G #189-10200 189-10201 218-11539
C.HFFD = 000014 G #189-10195
C.HLFD = 000012 G #189-10193 210-10945 211-10978
C.HPAR = 000200 G #189-10203
C.HSPC = 000040 G #189-10202
C.HTAB = 000011 G #189-10192 211-10980
C.HVTB = 000013 G #189-10194
C.HXOF = 000023 G #189-10198 216-11407 247-13228
C.HXON = 000021 G #189-10197 247-13223
C.RS = 000006 G #54-2368
C.SD = 000004 G #54-2367
C.SZ = 000014 G #15-782 15-791 #54-2372 118-6124 120-6231 143-7912 253-13441
C1 = 140010 #40-1534 40-1596 40-1601 40-1613
C1DB = 140110 #40-1536 40-1540 40-1546 40-1551 40-1556 40-1561 40-1566 40-1571 40-1576
DAG1 = 000030 #3-125 81-3952 81-4002 *97-4981 97-4984 97-4997 *97-5026 *100-5137 100-5141
*101-5159 101-5160 *277-14847 277-14850 *277-14893 277-14896
DAG2 = 000032 #3-124 *84-4292 *101-5162 *277-14884
DAG3 = 000036 #3-122 *177-9291 *183-9774
DATE = 000004 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DBLDON 031044 R 179-9492 179-9527 #179-9548
DBLEPP 030644 R 179-9462 #179-9479
DBLEPX 030650 R 179-9457 #179-9481
DBLHDR 030740 R 179-9508 #179-9525
DBLPWR 030700 R 179-9473 #179-9497
DBLRLD 030654 R 179-9471 #179-9487
DBLXFR 030710 R 179-9469 #179-9506
DBLXIT 031056 R 179-9499 179-9518 179-9546 #179-9551
DCOMST = 000001 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 97-4978 97-4984 97-5010 97-5018
#145-8019 #175-9120 #189-10058 #250-13319
DEAND1 026220 R 148-8182 155-8320 156-8355 156-8366 156-8376 157-8398 158-8422 158-8424 159-8452
#160-8483
DEAND3 025640 R 150-8214 152-8244 152-8246 153-8282 153-8285 153-8287 153-8294 154-8306 #155-8319
DEANOD 026654 R 160-8484 161-8525 162-8540 163-8571 164-8614 165-8630 #165-8639 166-8661 167-8673
167-8681 168-8693 168-8697 174-9061
DEP = 010000 #7-262 44-1861 #48-2092 #80-3894 81-3984 81-4022 81-4028 81-4070 81-4122
#82-4186 #86-4445 91-4751 97-5027 98-5064 99-5094 #145-8019 #175-9120 177-9284
182-9723 183-9777 184-9814 #189-10058 #250-13319 279-15018
DEPOF 001234 RG #11-593 *90-4633 90-4685 92-4797
DEX = 000400 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DEXCOM 013444 R #67-2972
DEXDON = 000004 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
277-14840
DEXST 001344 RG #12-682 *97-4982 *97-4986 *277-14835 *277-14842
DEXTM1 001352 RG #12-688 90-4665
DEXTM2 001350 RG #12-686 90-4626 90-4638 90-4661 90-4698
DEXTM3 001346 RG #12-684 90-4622
DEXWD1 = 174406 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DEXWD2 = 174404 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DEXWD3 = 174402 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DE.01 = 000377 G #67-2929 76-3662 118-6121 124-6564 137-7513 137-7520
DE.02 = 000376 G #67-2930 87-4523 91-4761 97-4988 99-5104 127-6854 131-7164 141-7783
DE.03 = 000375 G #67-2931 77-3709 91-4764
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 6
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DE.04 = 000374 G #67-2932 128-6976
DE.05 = 000373 G #67-2933 105-5399 124-6497
DE.06 = 000372 G #67-2934
DE.07 = 000371 G #67-2935 76-3660
DE.08 = 000370 G #67-2936 131-7214 135-7396
DE.09 = 000367 G #67-2937
DE.10 = 000366 G #67-2938
DE.11 = 000365 G #67-2939
DE.80 = 000260 G #67-2940
DE.81 = 000257 G #67-2941
DE.90 = 000246 G #67-2942 103-5304
DE.91 = 000245 G #67-2943
DE.92 = 000244 G #67-2944 103-5280
DE.93 = 000243 G #67-2945
DE.94 = 000242 G #67-2946 77-3718
DE.95 = 000241 G #67-2947 77-3719
DE.96 = 000240 G #67-2948 78-3786
DE.97 = 000237 G #67-2949 113-5811 118-6093 120-6229 252-13413
DE.98 = 000236 G #67-2950 115-5966
DE.99 = 000235 G 67-2856 #67-2951 88-4553
DFTBL 025302 RG 147-8142 #148-8161 148-8194
DFTSZ = 000076 #148-8194
DFUNC = 000200 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 97-4978 97-5010 97-5018 #145-8019
#175-9120 #189-10058 #250-13319
DF.DMG = 000004 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.DMN = 000007 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.DOR = 000001 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.EHG = 000010 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 190-10223
#250-13319
DF.EHM = 000011 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.EMG = 000005 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.EMN = 000006 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.KLR = 000012 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.KLW = 000013 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.KLX = 000014 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.OFF = 000002 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.ON = 000003 #7-262 #48-2092 #80-3894 81-4117 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
#250-13319
DF.PDP = 000016 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DF.PEX = 000015 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DHBUF = 000020 #189-10076 *211-11042 211-11047
DHCNT = 000200 G #28-974 39-1481
DHERLG 041106 R 229-12227 229-12227 230-12330 230-12330 #230-12408 231-12486 231-12486
DHISTQ 035570 R 212-11126 212-11132 212-11134 212-11138 212-11140 #213-11205 215-11341
DHSAV 037274 R 201-10563 212-11101 213-11196 #219-11666
DHSTSV 002652 RG #17-855 *213-11199 213-11221
DHTBL 003046 RG 19-898 19-899 19-900 19-901 19-902 19-903 19-904 19-905 #21-941
28-974 39-1481 153-8272 169-8776 171-8909 209-10858 209-10922 211-11040 219-11677
220-11731 230-12292
DHTMP 002646 RG #17-851 *201-10562 *213-11195 219-11673
DH.FER = 020000 G #189-10188 213-11271
DIAG1 = 174430 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 7
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DIAG2 = 174432 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DIAG3 = 174436 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DIKL10 = 000010 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 97-4978 97-5018 97-5026 #145-8019
#175-9120 #189-10058 #250-13319
DIRDPT 013216 R 67-2857 #67-2859 67-2897
DIRMAX = 000102 67-2854 #67-2897
DIROK 013212 R 67-2855 #67-2857
DIV216 044036 RG 114-5859 114-5859 252-13396 252-13396 258-13748 258-13748 #260-13802
DLCNT = 000005 G #20-936 39-1477 153-8279 156-8354
DLECNT = 000004 G #20-937 229-12145
DLETBL 003006 RG 17-844 #20-931 20-937 229-12144
DLHUPX 040302 R 226-12023 #228-12092
DLTBL 002776 RG 17-841 #20-929 20-936 39-1477 169-8759 229-12135
DLTMP 002650 RG #17-853 *206-10753 *215-11335 219-11690
DLYCNT = 174400 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DL.CAR = 010000 G #189-10166 217-11481 229-12154
DL.CTS = 020000 G #189-10165
DL.DEN = 000040 G #189-10171 217-11466 228-12090 229-12223 229-12239
DL.DSC = 100000 G #189-10163
DL.DTR = 000002 G #189-10174 217-11466 217-11493 229-12158
DL.FER = 020000 G #189-10180 215-11343
DL.RAC = 004000 G #189-10167
DL.RDE = 000001 G #189-10175
DL.RDN = 000200 G #189-10169
DL.REN = 000100 G #189-10170 217-11486 228-12090 229-12206 229-12234 242-13005 243-13062
DL.RNG = 040000 G #189-10164 217-11464
DL.RTS = 000004 G #189-10173 217-11466 217-11483 229-12156 229-12158
DL.SRD = 002000 G #189-10168
DL.STD = 000010 G #189-10172
DL.UNA = 001420 G #189-10176
DL.XEN = 000100 G #189-10184 207-10799 211-11034 211-11054 229-12212 229-12236
DMTBE = 002776 RG #19-907 231-12449
DMTBL 002734 RG #19-897 171-8908 224-11886 224-11896 231-12442
DMTMP 002644 RG #17-849 *224-11880 224-11882
DMTNXM 041066 R 230-12295 #230-12393 230-12396
DMYN = 000004 G #11-606 *90-4684 *90-4685 94-4867 177-9283 183-9775 184-9813
DNBLK 005606 RG #33-1065
DNFCN 005610 RG #33-1067
DNSTS 005616 RG #33-1070
DON10C = 040000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 177-9227 #189-10058
#250-13319
DON10S = 100000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DON11C = 000100 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 178-9332 #189-10058
#250-13319
DON11S = 000200 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DPB.CK = ****** 103-5262 105-5388
DPCMN 021112 R #91-4750 94-4868
DPMSEP 021140 R 91-4754 #91-4763
DPSEC 021136 R 91-4757 #91-4760
DPS4 = 040000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DQNXT 033172 R #197-10456 198-10501 198-10508
DRESET = 000100 #7-262 #48-2092 #80-3894 #82-4186 84-4292 #86-4445 101-5162 #145-8019 #175-9120
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 8
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#189-10058 #250-13319 277-14884
DRXCOM 013460 R 67-2971 #67-2977
DRXRR 013472 R 67-2974 #67-2979
DR.DTE = 000011 #7-262 #48-2092 #80-3894 81-4117 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
190-10223 #250-13319
DR.00 = 000000 G #67-2922 110-5659 111-5709 112-5768
DR.01 = 000001 G #67-2923 76-3659 76-3661 89-4590 91-4758 97-5003 99-5101 100-5143 103-5306
105-5408 107-5515 113-5809 114-5874 115-5952 115-5964 116-6000 118-6135 120-6218
122-6312 124-6669 126-6776 131-7198 133-7304 135-7392 139-7679
DR.02 = 000002 G #67-2924 109-5609 127-6921
DR.03 = 000003 G #67-2925 127-6923
DSEND = 000004 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 97-5018 97-5023 97-5026 #145-8019
#175-9120 #189-10058 #250-13319
DS.99 013210 R #67-2856 67-2873 67-2881 67-2882 67-2889 67-2890 67-2894
DS04 = 004000 #7-262 #48-2092 #80-3894 81-3952 81-4002 #82-4186 #86-4445 101-5160 #145-8019
#175-9120 #189-10058 #250-13319 277-14850
DS05 = 002000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DS06 = 001000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
277-14896
DTEADR 001270 RG #12-638 177-9246 *177-9297
DTECMD = 000451 #7-262 #48-2092 #80-3894 81-3971 81-4048 #82-4186 #86-4445 #145-8019 #175-9120
#189-10058 #250-13319
DTEDSP 020442 R 87-4502 #87-4506
DTEFLG = 000444 #7-262 #48-2092 #80-3894 81-3985 81-4123 #82-4186 #86-4445 #145-8019 #175-9120
#189-10058 #250-13319
DTEF11 = 000450 #7-262 #48-2092 #80-3894 81-4023 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
#250-13319
DTEHD 024652 RG 36-1284 37-1351 38-1416 #147-8122
DTEMSK 001266 RG #12-636 177-9246 *177-9296
DTEMTD = 000455 #7-262 #48-2092 #80-3894 81-4071 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
#250-13319
DTEMTI = 000456 #7-262 #48-2092 #80-3894 81-4012 81-4029 #82-4186 #86-4445 #145-8019 #175-9120
#189-10058 #250-13319
DTENM = 000000 #11-602
DTESNP 046534 R 277-14858 277-14858 277-14874 277-14874 277-14911 277-14911 #278-14951
DTESP 025132 RG 37-1351 147-8123 #147-8123
DTETPD 007572 RG 36-1284 #38-1415
DTETSK 007112 RG 37-1346 #37-1350 37-1354 *178-9362
DTEXIT 027726 R 176-9184 #176-9188 179-9482
DTTSK 007352 RG 37-1371 #37-1380 37-1385
DUPE = 000020 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DURE = 000004 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DVCH = 110220 #40-1530 40-1540 40-1546 40-1551 40-1556 40-1561 40-1566 40-1571 40-1576
40-1596 40-1601 40-1613
DV.CFG = 004000 G #60-2563
DV.EOF = 000040 G #60-2557
DV.F11 = 000400 G #60-2560
DV.HNG = 001000 G #60-2561
DV.IOP = 000020 G #60-2556
DV.LIN = 002000 G #60-2562 230-12411
DV.LOG = 000100 G #60-2558 213-11291 230-12411 278-14977
DV.NXD = 000001 G #60-2552
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 9
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DV.OFL = 000002 G #60-2553
DV.OIR = 000004 G #60-2554
DV.SCN = 000010 G #60-2555
DV.URE = 000200 G #60-2559 213-11291 277-14913 278-14977
DWNMS 012770 R 66-2750 #66-2753 66-2759
DWNMSG 012756 R 66-2734 #66-2749
DWNMSZ = 000043 66-2750 66-2750 #66-2759
DXBUF 005476 RG #31-1018
DXCNT 005474 RG #31-1016
DXHD = ****** GX 36-1298 37-1392 38-1446
DXPKT 005516 RG #31-1024
DXRTC 005472 RG #31-1014
DXSTK = ****** GX 37-1392
DXTPD 007732 RG 36-1298 #38-1445
DXTSK 007412 RG 37-1385 #37-1391 37-1398 40-1596 40-1601
DXUNIT 005514 RG #31-1022
DXVCB 005500 RG #31-1020
DXWD1 = 000006 #3-131 *81-4021 97-4993 *97-5022 *177-9273 179-9461 *183-9766 *184-9809 279-15029
*279-15038
DXWD2 = 000004 #3-132 81-4016 *81-4020 97-4992 *97-5021 *177-9274 179-9460 *183-9767 *184-9810
279-15028 *279-15037
DXWD3 = 000002 #3-133 81-3946 81-3976 *81-3983 *81-4019 *81-4027 81-4055 81-4057 81-4065
*81-4069 81-4084 *81-4121 97-4991 *97-5020 *177-9279 179-9459 179-9539 181-9659
181-9672 *183-9771 *184-9811 279-15027 *279-15036
DXWRD1 = 002000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
DX0PEN 011002 RG 36-1304 #40-1595 40-1596 40-1618
DX1PEN 011052 RG #40-1600 40-1601
D$$H11 = 000010 #1-43 8-401
D.AT = 000000 G #55-2388
D.CCDR = 000006 G #39-1491
D.CCLK = 000007 G #39-1495
D.CCPU = 000200 G #39-1509 161-8516
D.CCTY = 000001 G #39-1471 161-8501
D.CDH1 = 000003 G #39-1479
D.CDLS = 000004 G #39-1483 174-9041 196-10440 208-10845 225-11990 272-14488
D.CDL1 = 000002 G #39-1475
D.CDMB = 000204 G #39-1513
D.CDTE = 000202 G #39-1511 196-10442
D.CKLE = 000201 G #39-1510
D.CKLN = 000210 G #39-1515
D.CLOG = 000205 G #39-1514
D.CLPT = 000005 G #39-1487 194-10335
D.CRJP = 000203 G #39-1512 196-10445
D.FA = 000004 G #55-2390
D.FEPD = 000010 G #39-1498
D.FM = 000002 G #55-2389
D.SZ = 000006 G #55-2392
D1011 = 000040 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
EBSEL = 000100 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
EBUSPC = 000020 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
EBUSPS = 000004 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
ECHOB 035004 R 209-10900 209-10905 210-10946 210-10955 #211-10971 218-11636
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 10
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
EDONES = 040000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
EDRMT 025406 RG 148-8184 #150-8212
EF.BOV = 000040 G #49-2176
EF.CLK = 000002 G #49-2168
EF.CRI = 002000 G #49-2208 81-3939 81-3957 81-4082 83-4226
EF.CTC = 040000 G #49-2200 216-11429
EF.DTE = 000001 G #49-2166
EF.FCP = 001000 G #49-2210 81-3968
EF.IOD = 000020 G #49-2174 190-10221 197-10452 209-10910
EF.NIR = 000010 G #49-2172 76-3639 124-6663 190-10221 257-13645 257-13700
EF.PFR = 004000 G 43-1786 #49-2206 81-4082 83-4226 85-4374 179-9498
EF.PR1 = 100000 G #49-2198 280-15067 282-15115
EF.PR2 = 020000 G #49-2202 216-11441 280-15067 281-15094
EF.RKH = 002000 G #49-2186 190-10221 192-10295 228-12083
EF.RKP = 010000 G #49-2204 167-8676 167-8680
EF.RKR = 001000 G #49-2184 190-10221 192-10291 217-11476
EF.RQM = 000200 G #49-2180 190-10221 192-10286 216-11434
EF.RSS = 004000 G #49-2188 190-10221 192-10299 222-11800
EF.SND = 100000 G #49-2193
EF.TED = 000100 G #146-8044 146-8093 178-9362
EF.TMO = 000100 G 15-789 #49-2178 190-10221 193-10313 195-10387
EF.TTY = 000004 G #49-2170
EF.WFM = 000400 G #49-2182
EHSG = 000006 G #11-608 *90-4691 95-4902
EHSM = 000010 G #11-610 *90-4707 96-4936 179-9454 179-9535 181-9655
EIS = ****** 284-15341 284-15346
EMGSTK 011426 RG #42-1686 43-1732 44-1824
EMTSTK 001116 RG #9-484 *43-1747 *67-2789 *67-2808 67-2911 67-2914 *67-2958 67-2972 67-2977
67-2999
EMTTRP 013036 RG 8-331 #67-2784
EMYN = 000002 G #11-604 *90-4682 93-4833
EM.DRO = 000020 G #67-2780 67-2810 67-2842 *67-2973 *67-2978 67-2998 *122-6306
ENBXOF 025416 RG 148-8189 #151-8225
ENTELQ 030320 R #178-9353 178-9397
EOLS = 000400 #189-10085 199-10517 200-10538 210-10936 218-11561 218-11623 218-11632
EPTR = 000000 #7-262 #48-2092 #80-3894 81-3970 81-3984 81-4011 81-4022 81-4028 81-4047
81-4070 81-4122 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
EQSZ 001332 RG #12-675 *178-9401 *179-9539 179-9540 180-9598 *180-9614
ERR10C = 010000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
ERR10S = 020000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
ERR11C = 000001 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
ERR11S = 000002 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
EV.AS = 000002 G #64-2671 75-3498 75-3514 79-3828
EV.PF = 000200 G 42-1680 #64-2672 75-3491 75-3521 84-4308
EV.SE = 000001 G #64-2668 69-3081 74-3308 75-3491 116-5999 259-13781
EXCMN 021146 R #92-4798 93-4834 95-4903 96-4937
EXKAL 032260 R #190-10222 195-10393
E.BOV = 000006 G #49-2177
E.CLK = 000002 G #49-2169
E.DTE = 000001 G #49-2167
E.DV = 000006 G #146-8051 164-8588 166-8658 173-8983
E.FCRI = 000073 G #49-2209
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 11
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
E.FCTC = 000077 G #49-2201
E.FFCP = 000072 G #49-2211
E.FN = 000004 G #146-8050 147-8140 164-8585
E.FP = 000000 G #146-8048
E.FPFR = 000074 G #49-2207
E.FPR1 = 000100 G #49-2199
E.FPR2 = 000076 G #49-2203 81-3922 81-4116
E.FRKP = 000075 G #49-2205
E.FSND = 000040 G #49-2194
E.FW = 000010 G #146-8052 150-8213 *152-8239 152-8243 153-8278 *155-8316 155-8318 156-8331 156-8336
156-8346 156-8353 *156-8357 156-8362 156-8370 *157-8385 157-8403 *158-8417 158-8421
161-8497 164-8586 164-8589 165-8628 167-8671 173-8984
E.IOD = 000005 G #49-2175
E.LS = 000002 G #146-8049
E.NIR = 000004 G #49-2173
E.OPSZ = 000060 G #146-8040 276-14733
E.RKH = 000013 G #49-2187
E.RKR = 000012 G #49-2185
E.RQM = 000010 G #49-2181
E.RSS = 000014 G #49-2189
E.TMO = 000007 G #49-2179
E.TTY = 000003 G #49-2171
E.WFM = 000011 G #49-2183
FDVNM 027464 R 163-8570 163-8570 164-8606 164-8606 #174-9017
FDVNMF 027576 R 172-8948 #174-9058
FDVNMM 027450 R 152-8240 152-8240 153-8258 153-8258 154-8304 154-8304 155-8317 155-8317 156-8358
156-8358 157-8386 157-8386 158-8418 158-8418 159-8449 159-8449 160-8478 160-8478
166-8652 166-8652 #173-8982
FEHD = ****** GX 36-1288 37-1385 38-1420
FELXFR 030356 R 178-9349 #178-9369
FESTK = ****** GX 37-1385
FETBL 005542 RG #33-1049 39-1499
FETPD 007612 RG 36-1288 #38-1419
FETSK 007352 RG #37-1384 37-1392 40-1613 *81-3923
FE0PUD 011172 RG #40-1612 40-1613
FLBT = 000001 #189-10089
FLBYT = 000011 #189-10072 210-10962 *211-10989 *211-11012
FLCT = 000017 #189-10088 200-10538 209-10882
FLDVOT 026664 RG 148-8172 #166-8651
FNBYT = 000005 #189-10069 *218-11602 *218-11610 *218-11619 *218-11630
FNDDM 027366 R 153-8281 153-8281 156-8365 156-8365 #171-8906
FNDSPD 027420 R 156-8332 156-8332 156-8337 156-8337 #172-8939
FORPRO = 000020 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 90-4645 90-4686 90-4692 #145-8019
#175-9120 177-9282 179-9453 179-9534 181-9654 183-9776 184-9812 #189-10058 #250-13319
FW = 000300 #40-1532 40-1540 40-1546 40-1551 40-1556 40-1561 40-1566 40-1571 40-1576
40-1596 40-1601
F11TPD 007772 RG 36-1304 #38-1455 43-1755 71-3174
GENTPD 010012 RG #38-1459
GETBUF 031612 R 180-9600 180-9600 181-9661 181-9661 #185-9849
HANGUP 025466 RG 148-8175 #153-8257
HDR64 = ****** 72-3187 74-3324 74-3339 78-3760 141-7797 257-13687
HIBYTE = 177400 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 12
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
HICTS 026224 RG 148-8162 #161-8495
HIDVST 026420 RG 148-8168 #163-8554
HORPS = 000016 #189-10075 211-10985 *211-11001 *211-11020
H.CSP = 000000 G #51-2245
H.DSW = 000046 G #51-2247 74-3330 74-3345
H.FCP = 000050 G #51-2248
H.FOR = 000052 G #51-2249
H.HSZ = 000002 G #51-2246
H.IPC = 000076 G #51-2252 72-3194
H.IPS = 000074 G #51-2251 72-3195
H.ISP = 000100 G #51-2253 72-3202
H.KCAC = 000020 G #41-1646
H.KCHN = 000010 G #41-1645
H.KEXT = 000004 G #41-1644
H.KMOS = 000002 G #41-1643
H.KPWR = 000040 G #41-1647
H.KUDF = 000001 G #41-1642
H.LUT = 000130 G #51-2255 72-3196 72-3199 78-3766 139-7660 285-15416
H.OVL = 000054 G #51-2250
H.TKVA = 000106 G #51-2254 72-3193 139-7657
IDXTB 032360 R #191-10250 213-11242
IE.ABO = 177761 211-11072
IFLOP = 100000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 178-9404 180-9616
181-9683 #189-10058 #250-13319
IGNO 012140 RG 39-1473 39-1473 39-1477 39-1477 39-1481 39-1481 39-1485 39-1485 39-1489
39-1493 39-1493 39-1496 39-1496 39-1496 39-1496 39-1499 39-1499 #44-1882
INIAN 046130 RG 42-1684 #276-14732
INITLM 011320 RG #42-1665 288-15579
INPPT 034736 R 209-10889 #210-10935
INPT0 034744 R #210-10938
INPT1 035302 R 210-10937 #211-11061
INSHD = ****** GX 36-1321 38-1412
INSTAL = ****** GX 36-1321
INSTK = ****** GX 36-1321
INSTPD 007552 RG 36-1321 #38-1411
INTLPS 027640 R #176-9167 177-9260 177-9262 177-9299 178-9415 179-9552
INTROF = 000010 #7-262 #48-2092 #80-3894 81-3931 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
#250-13319 280-15066 281-15093
INTRON = 000040 #7-262 #48-2092 #80-3894 81-4126 #82-4186 #86-4445 90-4680 #145-8019 #175-9120
#189-10058 #250-13319
INTSON = 000001 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
INT10S = 000400 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
INT11C = 002000 #7-262 #48-2092 #80-3894 81-3975 81-4050 81-4059 #82-4186 #86-4445 #145-8019
#175-9120 179-9451 #189-10058 #250-13319
INT11S = 004000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
281-15093
IOPSIZ = 007777 #45-1918 45-1928
IOTTRP 011732 R 43-1773 #44-1821
IO.ATT = 001400 257-13672
IO.DET = 002000 257-13674
IO.LOV = 001010 257-13676
IO.LTK = 000050 76-3610 257-13684
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 13
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
IO.RLB = 001000 124-6633 197-10490 257-13682 285-15423
IO.RVB = 010400 124-6631 124-6639 285-15424
IO.STC = 002500 124-6621
IO.WLB = 000400 81-4133 124-6630 197-10487 285-15426
IO.WVB = 011000 124-6628 124-6641
IS.SUC = 000001 197-10492 209-10908 211-11066
KBB0 = 177562 G #49-2101
KBB1 = 175612 G #49-2105
KBS0 = 177560 G #49-2100
KBS1 = 175610 G #49-2104
KLCST 021226 R #97-4980 97-5024 97-5034
KLNLGL = 000016 G #10-575
KLNPLN = 000026 G 10-557 10-561 #10-580 161-8513
KLNPTR 002636 RG #17-843 153-8268 157-8393 169-8761 197-10462 209-10866 209-10916 211-11030 216-11384
217-11468 217-11487 228-12078 234-12640 236-12718 270-14313 271-14414
KLPWRF = 000010 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 179-9472 #189-10058
#250-13319
KL.ABO = 010000 G #56-2412
KL.CFL = 000400 G #56-2408
KL.CFM = 000002 G #56-2399
KL.DEF = 002000 G #56-2410
KL.KAC = 001000 G #56-2409
KL.LCA = 000100 G #56-2404
KL.LRM = 000001 G #56-2398
KL.LVB = 000004 G #56-2400
KL.REQ = 004000 G #56-2411
KL.SPF = 000040 G #56-2403
KL.VBD = 000020 G #56-2402
KL.VBN = 000010 G #56-2401
KPAL0 001376 RG #13-727 90-4713 190-10223 195-10395 195-10424
KPAL1 001406 RG #13-731 *182-9717 182-9720
KPAR0 = 172360 #49-2115
KPAR1 = 172362 #49-2116
KPAR2 = 172364 #49-2117
KPAR3 = 172366 #49-2118
KPAR4 = 172370 #49-2119
KPAR5 = 172372 #49-2120
KPAR6 = 172374 #49-2121
KPAR7 = 172376 #49-2122
KPDR0 = 172300 #49-2124
KPDR1 = 172302 #49-2125
KPDR2 = 172304 #49-2126
KPDR3 = 172306 #49-2127
KPDR4 = 172310 #49-2128
KPDR5 = 172312 #49-2129
KPDR6 = 172314 #49-2130
KPDR7 = 172316 #49-2131
KS.CES = 000002 G #56-2420 277-14852
KS.CPE = 001000 G #56-2428
KS.CST = 000020 G #56-2423 195-10416
KS.DEX = 000010 G #56-2422 277-14856
KS.DPE = 002000 G #56-2429
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 14
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
KS.EPE = 000004 G #56-2421 277-14873 277-14912
KS.FCF = 004000 G #56-2430
KS.FME = 000400 G #56-2427
KS.PFT = 000100 G #56-2425 84-4304
KS.PTO = 000200 G #56-2426 81-3962
KS.TRR = 000040 G #56-2424 179-9488
KS.TSP = 000001 G #56-2419 277-14898
KT11 = ****** 67-2809 67-2812 67-2905 67-2985 67-2988 67-2997 67-3001 74-3318 74-3357
74-3398 75-3504 78-3755 79-3815 124-6636 137-7541 141-7811 283-15155 283-15161
284-15320 284-15333 284-15336 284-15355 284-15366
K.LBPW = 000005 G #61-2590
K.LCKL = 177777 G #61-2574
K.LCON = 000004 G #61-2584
K.LDCM = 000001 G #61-2581
K.LDRP = 177777 G #61-2582
K.LDSC = 000003 G #61-2580
K.LLTO = 000006 G #61-2592
K.LRAC = 000001 G #61-2577
K.LRBA = 000007 G #61-2594
K.LRMN = 000003 G #61-2587
K.LRNG = 000002 G #61-2576
K.LROP = 000001 G #61-2585
K.LRPR = 000002 G #61-2586
K.LRRJ = 177777 G #61-2578
K.LSCK = 000001 G #61-2572
K.LSKL = 000001 G #61-2573
K.LUND = 000000 G #61-2570
K.LUSR = 177777 G #61-2588
LDLPR 026420 RG 148-8185 #163-8555
LDLPV 026420 RG 148-8186 #163-8556
LFBT = 004000 #189-10082 199-10524 210-10944
LFCT = 074000 #189-10081 200-10538 209-10884 218-11634
LINCHR 026464 RG 148-8165 #164-8582
LKS = 177546 G #49-2099 84-4314 *84-4316 *85-4375
LOAD11 = 000004 #7-262 44-1860 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 179-9470
#189-10058 #250-13319
LODNOD 031712 R 178-9392 178-9392 181-9669 181-9669 #187-9918
LOWCOD = 000000 RG #8-318 8-319 8-338 8-338 8-338 8-338 8-345 8-345 8-351
8-351 8-358 8-358 8-358 8-358 8-358 8-358 8-358 8-358
8-358 8-358 8-358 8-358 8-358 8-358 8-358 8-363 8-368
8-368 8-375 8-375 8-375 8-375 8-379 8-387 8-388 8-393
8-394 8-400 8-400 8-400 8-400 8-400 8-400 8-400 8-400
8-406 8-406 8-406 8-406 8-406 8-406 8-406 8-406 8-406
8-406 8-406 8-406 8-406 8-406 8-406 8-406 8-406 8-406
8-406 8-406 8-406 8-406 8-406 8-406 8-406 8-406 8-406
8-406 8-406 8-406 8-406 8-406
LPCEVF 006210 RG 35-1143 #35-1145
LPCSA = 000002 G #35-1182 #35-1182
LPCSM = 000022 G #35-1193
LPEVFG 006206 RG #35-1142
LPEXPA = 175400 G #35-1133 35-1182 35-1182
LPEXPZ = 000020 G #35-1134 35-1157
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 15
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
LPHD = ****** GX 36-1326 37-1365 38-1428
LPHUNG 006212 RG #35-1148
LPITH = 000006 G #35-1182 #35-1182
LPMCB = 000020 G #35-1192
LPRMA = 000040 G #35-1203
LPRMC = 000044 G #35-1205
LPRMZ = 000042 G #35-1204
LPRTY = 000024 G #35-1194
LPSIZE = 000010 G #35-1183 35-1188 35-1199 35-1214 35-1214
LPSTBH 006216 RG #35-1154
LPSTBK 006220 RG #35-1156 35-1159
LPSTK = ****** GX 37-1365
LPSTLN = 000030 G #35-1159
LPSTS = 000000 G #35-1182 #35-1182
LPTBL 006250 RG #35-1165 35-1183 35-1192 35-1193 35-1194 35-1203 35-1204 35-1205 35-1214
35-1214 39-1489
LPTBL2 006270 RG #35-1187 35-1192 35-1193 35-1194
LPTBL3 006310 RG #35-1198 35-1203 35-1204 35-1205
LPTHD = 000004 G #35-1182 #35-1182
LPTPD 007652 RG 36-1326 #38-1427
LPTSK 007252 RG 37-1358 #37-1364 37-1371 40-1608
LPUNIT 006204 RG #35-1139
LPUTBL 006330 RG #35-1209
LP0PUD 011122 RG #40-1607 40-1608
L$$P20 = 000002 #1-37 35-1167 35-1183 35-1188 35-1199 35-1211
L.DT0 = 000003 G #40-1581
L.DX0 = 000005 G #40-1594
L.DX1 = 000006 G #40-1599
L.RP4 = 000002 G #40-1528
L.TTY = 000001 G #40-1524
MACY11 = ****** 48-2084 82-4184
MBUFR = 000014 #189-10074 *218-11583 *218-11639 218-11643
MEBUF = 000012 #189-10073 210-10952 *210-10953 *218-11645
MECNT = 000010 #189-10071 209-10886 *210-10954 *218-11646
MODE = 100000 #189-10080 199-10517 200-10539
MPE11 = 001000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 176-9171 #189-10058
#250-13319
MSETRP = ****** 267-14071 267-14108 268-14178 268-14230 270-14330 270-14346
M.PARQ = 000002 G #41-1654 192-10288 197-10458
M.TAKP = 000001 G #41-1653
NODADR 005552 RG #33-1054
NOSNDA 025424 RG 148-8187 #152-8236
NTKXEN 012542 R #66-2697 66-2723
NTKXEP 012546 R 65-2695 65-2695 #66-2699 66-2716 66-2727
NTKXSP 012522 RG 37-1401 65-2695 #65-2695
NULHD 012242 RG 37-1401 #65-2695
NULSTP = 000040 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
NULTSK 007512 RG 37-1347 37-1398 #37-1400
NUPE = 000002 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
N.BP = 000002 G #49-2216 262-13872
N.FP = 000000 G #49-2215
N.OVPT = 000054 G #49-2153
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 16
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
N.PR = 000010 G #49-2217 262-13869 262-13869
OKPAL0 001404 RG #13-729 *90-4713 195-10395 *195-10424
OUTPT 034546 R 200-10549 200-10549 209-10856 #209-10879 211-10992 218-11647
OUTPT3 034466 R 201-10594 201-10594 206-10761 #209-10854
PARLOA 020266 R #85-4363 85-4366
PARLOT 020340 R 85-4359 #85-4383
PARSAV 001022 RG #9-455 43-1799 44-1834
PERCLR = 001000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PHYS = 100000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PIDENT = 000000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PRB0 = 177566 G *44-1871 #49-2103
PRB1 = 175616 G *44-1869 #49-2107
PRI7 = 000340 G #7-262 #48-2092 #49-2112 67-3018 #80-3894 #82-4186 #86-4445 #145-8019 161-8517
164-8592 170-8871 #175-9120 #189-10058 #250-13319
PRMBLK 023206 R 124-6647 #124-6677
PRMEMN 001232 RG #11-591 *90-4629 90-4696
PROPNT = 000021 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 90-4686 #145-8019 #175-9120 #189-10058
#250-13319
PROTBL 001236 RG #11-612 87-4500 90-4650
PRS0 = 177564 G 44-1873 #49-2102
PRS1 = 175614 G 44-1877 #49-2106
PRTOFF = 004000 #7-262 #48-2092 #80-3894 81-3970 81-3984 81-4011 81-4022 81-4028 81-4047
81-4070 81-4122 #82-4186 #86-4445 99-5096 #145-8019 #175-9120 #189-10058 #250-13319
PRVCM 021466 R 98-5065 #99-5095
PR0 = 000000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PR1 = 000040 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PR2 = 000100 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PR3 = 000140 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PR4 = 000200 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PR5 = 000240 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PR6 = 000300 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PR7 = 000340 G #7-262 #48-2092 #49-2111 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058
#250-13319
PS = 177776 G #7-262 *42-1681 43-1728 #48-2092 #49-2098 *66-2698 66-2703 *66-2703 *66-2714
*66-2725 *74-3312 *74-3395 *75-3450 79-3810 *79-3810 #80-3894 *81-3935 81-3938
*81-3938 *81-3964 *81-3997 81-3999 *81-3999 *81-4066 81-4068 *81-4068 #82-4186
#86-4445 #145-8019 *147-8128 147-8132 *147-8132 *147-8145 147-8149 *147-8149 161-8517
*161-8517 *161-8519 164-8592 *164-8592 *164-8594 170-8871 *170-8871 *170-8873 #175-9120
#189-10058 192-10280 *192-10280 *192-10284 193-10315 *193-10315 *193-10327 195-10431 *195-10431
*195-10434 197-10457 *197-10457 *197-10474 200-10548 *200-10548 *200-10551 201-10562 206-10753
213-11195 215-11335 224-11880 #250-13319 257-13655 *257-13655 261-13831 *261-13831 *261-13835
262-13864 *262-13864 263-13898 *263-13898 *263-13903 264-13938 *264-13938 *264-13944 *265-13992
267-14079 *267-14079 *267-14125 268-14177 *268-14177 *268-14222 274-14567 *274-14567 *274-14582
275-14672 *275-14672 *275-14681 286-15490 *286-15490
PSWW1 = 000005 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 182-9724 #189-10058
190-10223 #250-13319
PSWW10 = 000014 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PSWW11 = 000015 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PSWW12 = 000016 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PSWW13 = 000017 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PSWW2 = 000006 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PSWW3 = 000007 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 17
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
PSWW4 = 000010 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PSWW5 = 000011 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PSWW6 = 000012 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PSWW7 = 000013 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PULSE = 000020 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
PWRXSP 001032 RG #9-468 *83-4257 84-4281
PWR.UP 017720 RG 83-4258 #84-4280 84-4282
QNDSV 023200 R *124-6619 *124-6645 *124-6646 #124-6675 124-6677
QPRDTC 025152 RG #147-8127 147-8137
QPRDTE 025156 RG 147-8123 147-8123 #147-8129
QPRDTF 026660 R 163-8573 #165-8641 169-8707
QPRDTL 025234 R #147-8144 165-8642
QPROAD 017572 R *81-4065 81-4133 #81-4134
QPROMS 017550 R 81-4067 #81-4132
QPRTPD 007712 RG 36-1338 #38-1436
QPRTSK 007452 RG 37-1392 #37-1397 37-1401
QSIZE = 000023 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 177-9282 179-9534
181-9654 183-9776 #189-10058 #250-13319
Q.AK = 000012 G #59-2535 154-8305 154-8305
Q.DA = 000000 G #59-2530 166-8656 174-9028
Q.DZ = 000016 G #59-2537 169-8755 174-9032
Q.D1 = 000006 G #58-2524 128-6979
Q.IOAE = 000012 #81-4133
Q.IOEF = 000006 #81-4133
Q.IOFN = 000002 #81-4133
Q.IOLU = 000004 #81-4133
Q.IOPL = 000014 #81-4133
Q.IOPR = 000007 #81-4133
Q.IOSB = 000010 #81-4133
Q.SI = 000004 G #58-2523 *128-6987 131-7172 131-7182
Q.SP = 000006 G #59-2533 166-8654 166-8654
Q.ST = 000004 G #59-2532 163-8572 163-8572 164-8608 164-8608
Q.SZ = 000020 G #39-1469 39-1503 #59-2538
Q.TS = 000002 G #59-2531 174-9027
RAMIS0 = 010000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RCVKLP 026722 RG 148-8188 #167-8670
RESERV 011666 R 43-1771 #43-1790
RETTOD 026626 RG 148-8171 #165-8627
RFMAD0 = 100000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RFMAD1 = 040000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RFMAD2 = 020000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RFMAD3 = 010000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RF.XR = 000002 G #63-2644
RM = 000010 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
RMBYT = 000004 #189-10068 *199-10519 *218-11558 *218-11576 *218-11594
RPBUF 005524 RG #32-1034
RPCNT 005530 RG #32-1036
RPCW2 005534 RG #32-1040
RPHD = ****** GX 36-1316 37-1358 38-1451
RPPEN 010302 RG #40-1539 40-1540
RPRNA 005522 RG #32-1032
RPRTC 005520 RG #32-1030
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 18
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
RPSTK = ****** GX 37-1358
RPTPD 007752 RG 36-1316 #38-1450
RPTSK 007212 RG 37-1354 #37-1357 37-1365 40-1540 40-1546 40-1551 40-1556 40-1561 40-1566
40-1571 40-1576
RPUNIT 005532 RG #32-1038
RQKLD 032326 R #190-10228 192-10297
RQKLR 032310 R #190-10226 192-10293
RQMCR 032272 R #190-10224 192-10289
RQSPB 024074 R 137-7503 137-7524 137-7552 #137-7554
RQSPT 024070 RG 137-7545 #137-7552
RQSTD 024106 R *137-7522 137-7532 #137-7555
RSX$$E = 000045 #3-97 6-187 9-473
RSX$$F = 000102 #3-105 #3-114 3-116 6-187 6-187 9-473 46-1946 46-1946 249-13239
249-13239
RSX$$K = 000126 #3-101 9-473
RSX$$V = 000014 #3-96 6-187 9-473
RTDVST 026420 RG 148-8166 #163-8558
RTNTOD 026374 RG 148-8170 #162-8534
RUBP = 000020 #189-10087 200-10538 218-11563 218-11565 218-11577 218-11579 218-11593
R$$11D = 000001 #1-46
R.AS = 000020 G #63-2631 256-13593
R.AT = 000006 G #63-2624 256-13589 256-13596 257-13694 257-13711 285-15411
R.DP = 000011 G #63-2626
R.FC = 000014 G #63-2629 124-6620 *124-6630 *124-6633 124-6646 197-10487 197-10490 257-13671 *257-13682
257-13684 285-15424 *285-15445
R.FN = 000013 G #63-2628 256-13587
R.LU = 000012 G #63-2627 285-15412
R.PB = 000024 G #63-2633 198-10502 200-10540 200-10542 *211-11076 *257-13678 *257-13679 *257-13680 *257-13693
257-13701 257-13702 285-15433 285-15434 285-15435 *285-15443 *285-15444
R.PR = 000010 G #63-2625
R.QSGC = 000015 #66-2742 #66-2746 #146-8096 #190-10225 #190-10227 #190-10229
R.QSPC = 000014 #66-2742 #66-2746 #146-8096 #190-10225 #190-10227 #190-10229
R.QSPN = 000006 #66-2742 #66-2746 #146-8096 #190-10225 #190-10227 #190-10229
R.QSPR = 000012 #66-2742 #66-2746 #146-8096 #190-10225 #190-10227 #190-10229
R.QSTN = 000002 #66-2742 #66-2746 #146-8096 #190-10225 #190-10227 #190-10229
R.SB = 000016 G #63-2630 256-13581 *257-13696
R.TD = 000004 G #63-2623 257-13669
R.UI = 000022 G #63-2632
SCD = 000040 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
SETDEB 026762 RG 148-8191 #168-8691
SETLIN 025622 RG 148-8180 #155-8315
SETSPD 025642 RG 148-8179 #156-8330
SEXCM 022060 R #110-5656 111-5720
SEXP0 022066 R 109-5607 #110-5659
SEXP1 022146 R 111-5719 #113-5809
SEXP2 022050 R #109-5609 110-5657 112-5767
SEX97 022150 R 109-5605 110-5655 112-5765 #113-5811 114-5853 114-5855 115-5948
SF.EX = 000004 G #52-2297 73-3239 137-7528
SF.FX = 000002 G 36-1284 36-1288 36-1298 36-1316 36-1321 36-1326 36-1331 36-1335 36-1338
#52-2296 73-3223 76-3570
SF.IR = 040000 G #52-2298 137-7528
SF.PT = 000001 G #52-2295
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 19
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
SF.ST = 100000 G 36-1284 36-1288 36-1298 36-1304 36-1316 36-1321 36-1326 36-1331 36-1335
36-1338 #52-2299
SF.TA = 000001 G 36-1284 36-1288 36-1298 36-1316 36-1326 36-1331 36-1335 36-1338 #52-2294
73-3221 73-3274 76-3550 76-3588 76-3648 137-7528
SKX 023236 R 127-6853 #127-6856
SNDALL 027000 RG 148-8173 #169-8705
SNDBEL 036112 RG 213-11270 #214-11297 216-11400
SNDMSG 013034 RG *66-2708 66-2732 *66-2738 #66-2761 *168-8692 *168-8696
SNDSTS 031536 R 177-9292 177-9292 178-9413 178-9413 179-9550 179-9550 181-9688 181-9688 183-9781
183-9781 #184-9806
SPDTB 032374 R #191-10264 213-11243
SPDTBL 024616 R #146-8102 146-8118 172-8940
SPDTBZ = 000016 #146-8118 172-8941
SPSAV 001020 RG #9-452 *44-1823
STAT = 174434 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
STATD = 000034 #3-123 *90-4680 277-14840 277-14867
STATI 001336 RG #12-680 179-9458 181-9677
STATS = 000000 #189-10066
STATUS = 000022 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 179-9453 184-9812
#189-10058 #250-13319
STBXFR 031670 R 178-9405 178-9405 181-9686 181-9686 #186-9894
STCM 045356 R #272-14496 273-14528
STDCDR 006746 RG 36-1232 #36-1330 37-1371
STDDTE 006406 RG 36-1234 #36-1283 37-1351
STDDX 006506 RG 36-1242 #36-1297 37-1392
STDFED 006446 RG 36-1239 #36-1287 37-1385
STDF11 006546 RG 36-1245 #36-1302
STDINS 006646 RG 36-1256 #36-1320 137-7544
STDLPT 006706 RG 36-1248 #36-1325 37-1365
STDQPR 007046 RG 36-1250 #36-1337 37-1398
STDRPT 006606 RG 36-1252 #36-1315 37-1358
STDTTY 007006 RG 36-1254 #36-1334 37-1354
STDVST 026420 RG 148-8167 #163-8557
STELIG 031302 R 180-9620 #181-9685
STELIX 031324 R 180-9603 181-9664 #181-9690
STIND2 030102 R 177-9241 #177-9267
STLN 045412 R 272-14489 272-14489 273-14526 273-14526 #273-14533
STNXT 034062 R 202-10632 202-10644 203-10656 203-10665 #204-10691
STPLIN 026042 RG 148-8183 #157-8384
STRBF = 000002 #189-10067 *199-10520 218-11572 218-11595
STRDAT 026420 RG 148-8164 #163-8559
STSTT 001320 RG #12-666 12-669 12-670 *177-9248 *177-9290 *178-9412 *179-9549 *181-9687 184-9808
STSWD 005560 RG #33-1060
STSW0 = 000004 G #189-10095 213-11244 *213-11248 *213-11249 213-11265 215-11345 221-11767 *222-11794 *223-11836
*223-11837 224-11931 *225-11975 *225-11981 *228-12091 *229-12196 229-12204 229-12232 230-12358
*237-12778 *242-13004 243-13055 *243-13061
STSW1 = 000006 G *152-8241 *152-8242 *152-8245 153-8260 153-8284 *156-8367 *156-8372 157-8388 169-8768
169-8781 169-8783 169-8788 *169-8793 *169-8844 #189-10100 197-10463 197-10467 201-10568
*201-10580 201-10581 202-10621 *202-10623 202-10624 *202-10625 *202-10642 *202-10643 204-10693
204-10695 204-10702 *204-10707 204-10713 206-10755 *206-10757 206-10758 206-10770 206-10775
*207-10801 208-10826 209-10860 209-10868 *211-11035 213-11224 *213-11253 213-11263 *213-11273
213-11280 *213-11282 213-11285 214-11298 216-11389 216-11392 216-11403 217-11462 *217-11485
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 20
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
221-11765 224-11901 *224-11930 224-11933 *224-11935 *224-11947 226-12017 228-12075 *228-12095
229-12168 229-12170 *229-12172 230-12351 *230-12361 231-12466 231-12468 *231-12475 234-12629
234-12631 234-12633 *234-12653 236-12706 236-12708 236-12711 *236-12745 *237-12776 *237-12789
239-12847 242-12970 243-13067 244-13110 270-14307 270-14345 270-14358 270-14365 271-14409
271-14440 271-14445 271-14447
STSW2 005060 RG #29-991 246-13193
STTYDN 033676 R 201-10584 201-10584 #202-10620 209-10924
STTYO 034272 R 206-10759 #206-10762 209-10918 209-10918 209-10927
STXAS = 000000 G #49-2160 67-3027
STXCS = 000000 G #49-2161
STXDX = 000000 G 8-331 #49-2162
SWR = 177570 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
SWSLLT = 100000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
SY0PUD 011242 RG #40-1616
S.BA = 000012 G #52-2277 76-3583 257-13686
S.DI = 000011 G #52-2276 76-3631
S.DL = 000032 G #52-2285 76-3616 76-3617 257-13678 257-13680
S.DP = 000010 G #52-2275 76-3560 137-7529
S.FW = 000006 G #52-2274 *73-3221 73-3223 73-3239 *73-3274 76-3550 76-3570 *76-3588 *76-3648
139-7658
S.LZ = 000014 G #52-2278 76-3614
S.PC = 000020 G #52-2280 76-3575
S.RB = 000026 G #52-2283 128-6989
S.RF = 000024 G #52-2282 131-7140 137-7529
S.SP = 000022 G #52-2281 76-3573 76-3580
S.SS = 000030 G 43-1742 #52-2284 67-2793 67-2961 *72-3208 *133-7303
S.SZ = 000036 G #52-2288
S.TD = 000004 G #52-2273 76-3557
S.TN = 000000 G #52-2271 131-7187 131-7188 139-7668 139-7669
S.TZ = 000016 G #52-2279 77-3705
S0.ABR = 100000 G #189-10104 189-10108 222-11794
S0.CON = 040000 G #189-10105 189-10108 213-11265 224-11931 225-11975 225-11981
S0.ISP = 001700 G #189-10106 189-10109 213-11290 242-13000
S0.MSK = 140000 G #189-10108 213-11245 213-11248 223-11828 223-11836 230-12359 237-12778 243-13056
S0.OSP = 036000 G #189-10107 189-10109
S0.SPD = 037700 G #189-10109
S2.CHR = 000377 G #189-10150
S2.CNT = 001400 G #189-10148 242-13007 243-13070
S2.DDN = 100000 G #189-10141 230-12356 237-12781 237-12784 239-12851 240-12891 242-12964 242-13008 243-13042
243-13070
S2.DIP = 040000 G #189-10142 212-11112 216-11413 230-12356 237-12781 239-12851 240-12891 242-12964 242-12986
242-13007 243-13042 243-13045
S2.DIS = 020000 G #189-10143 237-12781 241-12924 242-12975 242-12984 243-13078
S2.ENB = 010000 G #189-10144 237-12781 241-12921 242-12976 243-13070 243-13077
S2.LCL = 004000 G #189-10145 232-12537 239-12853 240-12882 240-12887 240-12896 242-12998 242-13009 243-13070
S2.RES = 002000 G #189-10146
S2.SSZ = 001000 G #189-10147 238-12815 242-12994
TBIT = 000020 G #49-2158
TEDXIT 030534 R 178-9406 #178-9414
TENAD1 = 174410 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TENAD2 = 174412 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TF.OU = 000002 G 38-1412 38-1416 38-1420 38-1424 38-1428 38-1433 38-1437 38-1446 38-1451
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 21
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#50-2239 73-3230 73-3260 76-3592 76-3620 76-3629
THRED = 000000 G #189-10093
TMOCNT 002662 RG #17-869 *193-10316 *193-10318 *193-10322 *193-10324
TNAD1 = 000010 #3-129 *81-3942 *81-3970 *81-3984 *81-4011 *81-4022 *81-4028 *81-4047 *81-4070
*81-4122 *97-5027 *177-9284 *179-9452 *179-9536 *181-9656 *183-9777 *184-9814 278-14989
*279-15023 *279-15039
TNAD2 = 000012 #3-130 *81-3943 *81-3971 *81-3985 *81-4012 *81-4023 *81-4029 *81-4048 *81-4071
*81-4123 *97-5028 *177-9285 *179-9455 *179-9537 *181-9657 *183-9778 *184-9815 *279-15024
*279-15040
TN.EMT = 000012 G #58-2517 67-2798
TN.LRF = 000040 G #58-2519 71-3171
TN.TRP = 000014 G #58-2518 67-2965
TOBM = 000004 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 177-9248 177-9290
181-9677 #189-10058 #250-13319
TOD = 000003 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TOIP = 000002 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 177-9248 177-9290
179-9507 #189-10058 #250-13319
TOIT = 000001 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 178-9412 179-9549
181-9687 #189-10058 #250-13319
TOITDN 030522 R 178-9364 178-9388 #178-9411
TOXQIP 001373 RG #12-719 *81-4115 *177-9257 183-9759 *183-9783
TO10 = 000200 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO10AD = 174420 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO10AS 001316 RG #12-662 177-9229 *177-9238 *177-9280 *183-9773
TO10BC = 174414 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO10BM = 000001 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO10DB = 000400 #7-262 44-1863 #48-2092 #80-3894 81-3988 81-4032 81-4074 81-4126 #82-4186
85-4377 #86-4445 #145-8019 #175-9120 177-9298 183-9782 #189-10058 #250-13319
TO10DN = 100000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 176-9171 #189-10058
#250-13319
TO10DT = 174424 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO10ER = 020000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 176-9171 #189-10058
#250-13319
TO10PK 005564 RG #33-1062
TO10Q 001326 RG #12-672 81-4089 81-4090 147-8150 147-8151 177-9239 177-9258 177-9259 275-14673
275-14679 276-14719 276-14730
TO10QC = 001324 RG #12-669 *81-4103 179-9526 *179-9528 179-9529 180-9606
TO10SZ 001314 RG #12-660 177-9228 *177-9278 *183-9770
TO11 = 000100 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO11AD = 174422 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO11AS 001310 RG #12-656 178-9340 *186-9896
TO11BC = 174416 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO11BM = 020000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 178-9336 178-9404
180-9619 181-9681 #189-10058 #250-13319
TO11BS 001312 RG #12-658 178-9333 178-9336 *186-9895
TO11DB = 004000 #7-262 #48-2092 #80-3894 81-3955 81-4000 #82-4186 #86-4445 #145-8019 #175-9120
176-9183 #189-10058 #250-13319
TO11DN = 000200 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 176-9177 #189-10058
#250-13319
TO11DT = 174426 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
TO11DV 001300 RG #12-647 *178-9371 178-9372 187-9922
TO11ER = 000002 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 176-9177 #189-10058
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 22
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#250-13319
TO11FN 001276 RG #12-645 *178-9348 178-9377 178-9382 *178-9394 179-9509 *181-9684 187-9920
TO11FW 001304 RG #12-651 187-9923
TO11GW 001306 RG #12-654
TO11HD 001274 RG #12-643 *178-9370 178-9395 180-9618 187-9921
TO11NP 001272 RG #12-641 178-9354 178-9385 178-9391 181-9668 *185-9870
TO11Q 001334 RG #12-678 147-8136 *147-8138 178-9355 183-9756 185-9851
TO11QC = 001325 RG #12-670 *183-9780
TO11SP 001302 RG #12-649
TRPASV 001120 RG #9-486 *43-1728 *43-1729 43-1744 43-1752 43-1765 *67-2798 *67-2965
TRPXIT 011570 R #43-1759 43-1787
TRP4 011616 R 43-1770 #43-1775
TS.EXT = 000026 G #69-3124 122-6310
TS.LRF = 000006 G #69-3106
TS.LRQ = 000002 G #69-3102 76-3625 76-3644
TS.RUN = 000010 G 37-1351 37-1354 37-1358 37-1365 37-1371 37-1385 37-1392 37-1398 37-1401
#69-3108 70-3165 72-3185 76-3577 127-6919
TS.SUS = 000012 G #69-3110 127-6917
TS.TKN = 000004 G 43-1753 #69-3104 71-3172
TS.WF0 = 000014 G #69-3112 114-5869 115-5961
TS.WF1 = 000016 G #69-3116
TS.WF2 = 000020 G #69-3118
TS.WF3 = 000022 G #69-3120
TS.WF4 = 000024 G #69-3122 115-5950
TTCNT = 000205 G #28-975 29-992 39-1473 39-1485 212-11109
TTCTY 036646 R 216-11440 #218-11507
TTINI 032404 RG 190-10206 190-10206 #192-10278 200-10553
TTINO 033546 R 197-10455 #200-10552
TTINPA 036206 R #215-11340 217-11499
TTINPB 036374 R 213-11236 213-11250 213-11257 213-11266 213-11281 214-11299 214-11308 215-11344 215-11346
216-11387 216-11393 216-11397 216-11416 #216-11420 216-11436
TTINX 033542 R 197-10464 197-10468 197-10472 #200-10550
TTOUTR 034366 R 204-10694 204-10714 206-10771 206-10776 #207-10802
TTOUTX 034360 R 205-10744 #207-10800 211-11056
TTPEN 010232 RG #40-1525 40-1526 65-2695 81-3918 147-8123 190-10206 200-10534
TTPKT 002732 RG #18-886 197-10454 *197-10481 198-10500 *198-10507 211-11074
TTSAV 037332 R 206-10754 215-11336 #219-11683 224-11881
TTSTCH 036232 R 213-11274 213-11287 213-11294 #216-11383
TTTBL 002776 RG #20-928 28-975 29-986 39-1473 39-1485 161-8504 212-11108 219-11695 225-11986
229-12221 229-12237 232-12543 246-13190
TTWLO 032252 R #190-10220 192-10279
TTYDNE 034654 R #209-10909 211-11078
TTYDNX 034720 R 209-10913 #209-10921
TTYEND = 005046 RG #28-976 169-8796 230-12379 232-12541
TTYEXP = 000002 G 169-8766 169-8790 174-9043 #189-10094 201-10575 209-10917 211-11031 211-11039 219-11697
220-11728 228-12077 229-12136 229-12147 *229-12187 230-12319 *230-12394 231-12458 270-14329
270-14373
TTYHD 031736 RG 36-1335 37-1354 38-1424 #190-10205
TTYSP 032216 RG 37-1354 190-10206 #190-10206
TTYTPD 007632 RG 36-1335 #38-1423
TTYTSK 007152 RG 15-785 15-790 37-1351 #37-1353 37-1358 40-1526 *209-10910 *216-11434 *217-11476
*222-11800 *228-12083
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 23
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
TT.ABL = 000040 G 153-8284 156-8372 #189-10132 221-11765 224-11933
TT.ABW = 000010 G 169-8781 #189-10134 213-11224 213-11253 224-11935 228-12095 237-12776 270-14345
TT.CRW = 000004 G #189-10135 216-11392 217-11485 224-11930 224-11947 228-12095 229-12168 231-12466
TT.CTY = 000002 G 20-930 153-8260 157-8388 169-8783 #189-10136 201-10581 206-10758 208-10826 216-11389
234-12633 236-12711 239-12847 270-14307 270-14365 271-14409 271-14440
TT.FEC = 014000 G #189-10120 213-11273 213-11286 237-12789
TT.FEI = 004000 G #189-10122 213-11282
TT.NSA = 000400 G 152-8237 169-8768 169-8781 #189-10125 204-10702 228-12095 237-12776
TT.OUT = 000001 G 169-8788 #189-10137 197-10463 197-10467 201-10568 201-10580 204-10693 206-10755 206-10757
206-10770 207-10801 209-10860 209-10868 211-11035 214-11298 236-12708 237-12776 242-12970
243-13067 244-13110 270-14358 271-14445
TT.RIP = 002000 G #189-10123 217-11485 224-11930 224-11947 228-12095 229-12170 229-12172 231-12468 231-12475
TT.RMT = 000100 G 20-932 20-933 20-934 20-935 156-8367 #189-10131 213-11263 217-11462 224-11901
226-12017 228-12075
TT.RSI = 020000 G #189-10119 213-11280 230-12351 230-12361 237-12776
TT.SIP = 001000 G 169-8793 #189-10124 202-10621 202-10623 204-10707 234-12631 236-12708 237-12776 271-14447
TT.SND = 140000 G #189-10115 237-12776
TT.SNI = 040000 G 169-8844 #189-10116 202-10625
TT.XEN = 000020 G 151-8226 #189-10133 216-11403 237-12789
TT.XOF = 000200 G 152-8242 #189-10129 234-12653 236-12745 237-12789 270-14358
T.BA = 000004 G #50-2227
T.FW = 000010 G #50-2229 *73-3230 73-3260 76-3592 76-3620 *76-3629
T.HBCT = 000002 G *185-9869 #189-10155 *233-12580 268-14167
T.HCAD = 000004 G *170-8880 *170-8881 #189-10156 203-10660 *203-10661 205-10737 207-10797 *207-10798 *236-12729
236-12730
T.HCBC = 000006 G #189-10157 203-10659 *203-10664 205-10738 *206-10765 236-12727 *236-12731 *271-14431
T.HFCN = 000007 G #189-10158 *270-14339
T.HHDS = 000010 G 164-8591 164-8599 170-8881 #189-10159
T.HP = 000012 G #50-2230
T.HRED = 000000 G #189-10154
T.PN = 000000 G #50-2225 139-7666 139-7667 141-7776 141-7777
T.PZ = 000006 G #50-2228 77-3707 139-7655
T.RAPB = 000004 G #62-2601
T.RAPE = 000012 G #62-2604 67-2795
T.RAPF = 000016 G #62-2606
T.RAPI = 000006 G #62-2602
T.RAPM = 000002 G #62-2600
T.RAPR = 000010 G #62-2603
T.RAPT = 000014 G #62-2605 67-2963
T.RAP4 = 000000 G #62-2599
T.RB = 000016 G #50-2232
T.RF = 000014 G #50-2231 73-3263 76-3654
T.SZ = 000020 G #50-2234 77-3700 141-7785
T10AD = 000020 #3-127 177-9230 *177-9281 *183-9772
T11AD = 000022 #3-126 178-9341 178-9343 *186-9897
T11BC = 000016 #3-128 *186-9898
U = 000040 #8-396 #8-401 8-404
UC.CCL = 000002 G 40-1526 40-1608 #57-2483
UC.COM = 020000 G #57-2494
UC.DIR = 000010 G #57-2485
UC.ETB = 000100 G #57-2488
UC.F11 = 040000 G #57-2495
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 24
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
UC.INB = 000400 G #57-2489
UC.ISP = 002000 G #57-2491
UC.MNT = 100000 G #57-2496
UC.PSE = 010000 G #57-2493
UC.REC = 000001 G 40-1526 40-1608 #57-2482
UC.SDI = 000020 G #57-2486
UC.SQD = 000040 G #57-2487
UC.SWL = 001000 G #57-2490
UC.TTY = 000004 G 40-1526 #57-2484
UC.0SP = 004000 G #57-2492
UF.OFL = 000040 G #57-2478
UF.RD = 000040 G #57-2475
UF.RH = 000200 G 40-1613 #57-2476
UF.TL = 000100 G #57-2477
UNASG1 = 000032 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
UNASG2 = 000033 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
UNASG3 = 000034 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
UNASG4 = 000035 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
UNASG5 = 000036 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
UNASG6 = 000037 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
UNRGFN 025400 RG 148-8163 148-8169 148-8174 148-8181 #149-8202
UPAR0 = 177640 #49-2133
UPAR1 = 177642 #49-2134
UPAR2 = 177644 #49-2135
UPAR3 = 177646 #49-2136
UPAR4 = 177650 #49-2137
UPAR5 = 177652 #49-2138
UPAR6 = 177654 #49-2139
UPAR7 = 177656 #49-2140
UPDR0 = 177600 #49-2142
UPDR1 = 177602 #49-2143
UPDR2 = 177604 #49-2144
UPDR3 = 177606 #49-2145
UPDR4 = 177610 #49-2146
UPDR5 = 177612 #49-2147
UPDR6 = 177614 #49-2148
UPDR7 = 177616 #49-2149
UT.LG = 000004 G #57-2511
UT.PR = 000001 G #57-2509
UT.SL = 000002 G #57-2510
U.ACP = 000040 G #57-2465 124-6626
U.AF = 000014 G #57-2447 200-10534 *257-13711 *257-13721
U.AR = 000034 G #57-2463
U.CH = 000032 G #57-2461
U.C1 = 000004 G #57-2443
U.C2 = 000006 G #57-2444
U.C3 = 000010 G #57-2445
U.C4 = 000012 G #57-2446
U.DACP = 000036 G #57-2464
U.DN = 000000 G #57-2440
U.FB = 000003 G #57-2442
U.FO = 000043 G #57-2468
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 25
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
U.GC = 000031 G #57-2459
U.HA = 000020 G #57-2449 124-6613
U.LBH = 000044 G #57-2469
U.LBN = 000046 G #57-2470
U.PC = 000030 G #57-2458
U.PR = 000042 G #57-2467
U.RB = 000024 G #57-2451
U.RF = 000022 G #57-2450 76-3636 124-6660 257-13654 257-13662 257-13662 257-13705 *257-13711 *257-13721
U.RP = 000016 G #57-2448 78-3776
U.SZ = 000050 G 36-1304 #57-2471 76-3633 103-5287 257-13650 257-13661 257-13662
U.TF = 000042 G #57-2466
U.UI = 000030 G #57-2457
U.UN = 000002 G #57-2441 103-5283 257-13705
U.VA = 000026 G #57-2456
U.VP = 000032 G #57-2460
WEP = 000010 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
WFXSET 013762 R 70-3157 70-3159 70-3161 #70-3164
WI.WRV = 001000 285-15427
WTLODT 024572 R #146-8092 147-8130
W.VBN 000006 286-15500
XOFF 026166 RG 148-8177 #159-8448
XON 026202 RG 148-8178 #160-8477
X.X94 015650 R 77-3699 #77-3718
X.X95 015652 R 77-3714 #77-3719
X8X97 043146 RG 252-13393 #252-13412
X9X96 015726 R 78-3770 #78-3786
ZSTOP = 040000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
$BTMSK 002642 RG #17-847 211-11049
$CDINT = ****** GX 8-370
$CD11 = 000001 #1-38 33-1084 36-1231 36-1268 36-1328 37-1369 38-1430
$DBDTE = 000001 #1-44 12-653
$DHINP 035534 RG 8-400 8-400 8-400 8-400 8-400 8-400 8-400 8-400 #213-11194
$DHOUT 033552 RG 8-400 8-400 8-400 8-400 8-400 8-400 8-400 8-400 #201-10561
$DH11 = 000001 #1-42
$DIV = ****** GX 107-5485 107-5485 107-5489 107-5489
$DMINT 037626 RG 8-400 8-400 8-400 8-400 8-400 8-400 8-400 8-400 #224-11879
$DORBL 020502 RG 87-4506 #88-4535
$DPMYG 021110 RG 87-4509 #91-4748
$DPMYN 021160 RG 87-4512 #94-4866
$DSW = 000046 G #49-2151 *67-2980 74-3331 74-3346
$DTA = ****** 8-360 29-993 36-1235 36-1277 36-1290 37-1376 38-1438 40-1582
$DTE = 000001 #1-45 85-4376
$DTEDR = ****** 15-797 67-2885 88-4536 253-13452
$DTEOF 020504 RG 87-4507 #89-4576
$DTEON 020512 RG 87-4508 #90-4617
$DXINT = ****** GX 8-382
$EXHSG 021166 RG 87-4513 #95-4901
$EXHSM 021174 RG 87-4514 #96-4935
$EXMYG 021142 RG 87-4510 #92-4796
$EXMYN 021152 RG 87-4511 #93-4832
$FE = 000001 #1-40 36-1238 36-1274 36-1285 37-1383 38-1417 40-1610
$F11 = 000001 #1-41 36-1244 36-1255 36-1259 36-1300 36-1318 38-1409 38-1453 66-2713
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 26
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
285-15374
$KLDFC 021362 RG 97-5011 #97-5019
$KLDFR 021202 RG 87-4515 #97-4973
$KLDFW 021342 RG 87-4516 #97-5013
$KLDFX 021320 RG 87-4517 #97-5005
$LPINT = ****** GX 8-418 8-419
$LP20 = 000001 #1-36 8-417 34-1129 36-1247 36-1262 36-1323 37-1363 38-1425 40-1605
$MUL = ****** GX 81-3927 81-3927
$PRVDP 021440 RG 87-4519 #98-5061
$PRVEX 021454 RG 87-4518 #99-5091
$RP04 = 000001 #1-39 36-1251 36-1265 36-1313 37-1356 38-1448 40-1538
$RWDRG 021510 RG 87-4520 #100-5131
$RX11 = 000001 #1-61 8-381 30-1010 36-1241 36-1271 36-1295 36-1303 37-1390 38-1443
40-1592
$TOP10 = ****** 1-52 3-106 40-1621 56-2405 66-2752
$TOP20 = 000001 #1-34 1-60 3-113 40-1617
$TTINP 036166 RG 8-340 8-390 8-408 8-411 8-414 #215-11334
$TTOUT 034224 RG 8-341 8-391 8-409 8-412 8-415 #206-10752
$T1091 = ****** 1-48
$UNIT 002640 RG #17-845 211-11044
$$ = 000037 #44-1825 44-1825 #44-1828 44-1828 #44-1843 44-1843 #66-2735 66-2735 #66-2737
66-2737 #73-3236 73-3236 #73-3238 73-3238 #73-3258 73-3258 #73-3264 73-3264
#73-3272 73-3272 #73-3275 73-3275 #75-3522 75-3522 #76-3564 76-3564 #76-3596
76-3596 #76-3601 76-3601 #76-3637 76-3637 #76-3640 76-3640 #76-3655 76-3655
#79-3807 79-3807 #79-3822 79-3822 #81-3927 81-3927 #81-3944 81-3944 #81-3963
81-3963 #81-3972 81-3972 #81-3986 81-3986 #81-4014 81-4014 #81-4024 81-4024
#81-4030 81-4030 #81-4038 81-4038 #81-4040 81-4040 #81-4049 81-4049 #81-4072
81-4072 #81-4092 81-4092 #81-4099 81-4099 #81-4124 81-4124 #81-4127 81-4127
#84-4290 84-4290 #84-4291 84-4291 #84-4306 84-4306 #85-4345 85-4345 #85-4348
85-4348 #85-4349 85-4349 #85-4350 85-4350 #89-4589 89-4589 #90-4623 90-4623
#90-4634 90-4634 #90-4647 90-4647 #90-4687 90-4687 #90-4694 90-4694 #90-4714
90-4714 #91-4756 91-4756 #97-4976 97-4976 #97-5008 97-5008 #97-5016 97-5016
#97-5032 97-5032 #99-5099 99-5099 #103-5256 103-5256 #105-5396 105-5396 #107-5485
107-5485 #107-5489 107-5489 #109-5597 109-5597 #110-5647 110-5647 #111-5706 111-5706
#111-5710 111-5710 #112-5757 112-5757 #114-5859 114-5859 #118-6085 118-6085 #120-6223
120-6223 #124-6493 124-6493 #124-6516 124-6516 #124-6561 124-6561 #124-6643 124-6643
#124-6648 124-6648 #124-6652 124-6652 #124-6662 124-6662 #124-6664 124-6664 #126-6764
126-6764 #126-6774 126-6774 #127-6847 127-6847 #127-6862 127-6862 #127-6868 127-6868
#127-6893 127-6893 #128-6963 128-6963 #128-6974 128-6974 #128-6990 128-6990 #131-7148
131-7148 #131-7157 131-7157 #131-7174 131-7174 #131-7196 131-7196 #137-7469 137-7469
#137-7477 137-7477 #137-7497 137-7497 #137-7511 137-7511 #137-7519 137-7519 #137-7546
137-7546 #143-7900 143-7900 #143-7906 143-7906 #143-7913 143-7913 #147-8153 147-8153
#152-8240 152-8240 #153-8258 153-8258 #153-8269 153-8269 #153-8281 153-8281 #153-8283
153-8283 #153-8286 153-8286 #153-8293 153-8293 #154-8304 154-8304 #154-8305 154-8305
#155-8317 155-8317 #156-8332 156-8332 #156-8337 156-8337 #156-8358 156-8358 #156-8365
156-8365 #156-8368 156-8368 #156-8375 156-8375 #157-8386 157-8386 #157-8394 157-8394
#157-8397 157-8397 #157-8401 157-8401 #158-8418 158-8418 #158-8423 158-8423 #159-8449
159-8449 #159-8451 159-8451 #160-8478 160-8478 #160-8481 160-8481 #161-8508 161-8508
#161-8518 161-8518 #161-8524 161-8524 #163-8570 163-8570 #163-8572 163-8572 #164-8593
164-8593 #164-8606 164-8606 #164-8608 164-8608 #164-8617 164-8617 #165-8640 165-8640
#166-8652 166-8652 #166-8654 166-8654 #166-8659 166-8659 #169-8706 169-8706 #169-8771
169-8771 #169-8773 169-8773 #169-8792 169-8792 #169-8842 169-8842 #170-8872 170-8872
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 27
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#174-9070 174-9070 #177-9247 177-9247 #177-9253 177-9253 #177-9256 177-9256 #177-9261
177-9261 #177-9286 177-9286 #177-9292 177-9292 #178-9363 178-9363 #178-9386 178-9386
#178-9392 178-9392 #178-9405 178-9405 #178-9413 178-9413 #179-9456 179-9456 #179-9480
179-9480 #179-9490 179-9490 #179-9517 179-9517 #179-9538 179-9538 #179-9545 179-9545
#179-9550 179-9550 #180-9600 180-9600 #180-9608 180-9608 #181-9658 181-9658 #181-9661
181-9661 #181-9669 181-9669 #181-9686 181-9686 #181-9688 181-9688 #183-9779 183-9779
#183-9781 183-9781 #184-9816 184-9816 #185-9867 185-9867 #193-10319 193-10319 #193-10320
193-10320 #193-10325 193-10325 #194-10338 194-10338 #194-10340 194-10340 #194-10344 194-10344
#195-10410 195-10410 #195-10433 195-10433 #196-10441 196-10441 #196-10444 196-10444 #196-10447
196-10447 #197-10471 197-10471 #198-10505 198-10505 #200-10549 200-10549 #201-10563 201-10563
#201-10584 201-10584 #201-10594 201-10594 #201-10596 201-10596 #203-10668 203-10668 #204-10692
204-10692 #206-10754 206-10754 #206-10768 206-10768 #206-10769 206-10769 #208-10840 208-10840
#208-10846 208-10846 #209-10911 209-10911 #209-10918 209-10918 #212-11101 212-11101 #212-11111
212-11111 #212-11114 212-11114 #212-11127 212-11127 #212-11128 212-11128 #212-11137 212-11137
#212-11139 212-11139 #213-11196 213-11196 #213-11208 213-11208 #213-11254 213-11254 #213-11255
213-11255 #213-11256 213-11256 #213-11268 213-11268 #213-11293 213-11293 #215-11336 215-11336
#216-11409 216-11409 #216-11411 216-11411 #216-11412 216-11412 #216-11415 216-11415 #216-11419
216-11419 #216-11430 216-11430 #216-11435 216-11435 #217-11470 217-11470 #217-11477 217-11477
#217-11489 217-11489 #217-11495 217-11495 #219-11698 219-11698 #221-11770 221-11770 #223-11829
223-11829 #223-11830 223-11830 #224-11881 224-11881 #224-11942 224-11942 #225-11980 225-11980
#225-11991 225-11991 #226-12019 226-12019 #228-12098 228-12098 #229-12138 229-12138 #229-12150
229-12150 #229-12176 229-12176 #229-12197 229-12197 #229-12227 229-12227 #230-12330 230-12330
#230-12344 230-12344 #230-12355 230-12355 #230-12412 230-12412 #231-12470 231-12470 #231-12471
231-12471 #231-12477 231-12477 #231-12486 231-12486 #232-12536 232-12536 #233-12578 233-12578
#234-12641 234-12641 #234-12647 234-12647 #235-12676 235-12676 #236-12719 236-12719 #236-12733
236-12733 #236-12736 236-12736 #236-12743 236-12743 #237-12779 237-12779 #237-12785 237-12785
#237-12788 237-12788 #238-12817 238-12817 #241-12920 241-12920 #241-12930 241-12930 #242-12983
242-12983 #242-12996 242-12996 #243-13053 243-13053 #243-13069 243-13069 #244-13109 244-13109
#244-13112 244-13112 #244-13117 244-13117 #244-13119 244-13119 #244-13123 244-13123 #244-13129
244-13129 #245-13158 245-13158 #247-13230 247-13230 #252-13396 252-13396 #255-13530 255-13530
#255-13545 255-13545 #256-13583 256-13583 #256-13590 256-13590 #256-13592 256-13592 #256-13597
256-13597 #256-13602 256-13602 #257-13658 257-13658 #257-13703 257-13703 #257-13707 257-13707
#257-13713 257-13713 #257-13716 257-13716 #258-13748 258-13748 #262-13873 262-13873 #262-13874
262-13874 #264-13942 264-13942 #269-14248 269-14248 #270-14312 270-14312 #270-14314 270-14314
#270-14318 270-14318 #270-14374 270-14374 #271-14415 271-14415 #271-14418 271-14418 #271-14434
271-14434 #271-14459 271-14459 #272-14489 272-14489 #272-14497 272-14497 #273-14526 273-14526
#274-14580 274-14580 #274-14590 274-14590 #275-14646 275-14646 #275-14664 275-14664 #275-14677
275-14677 #275-14680 275-14680 #276-14722 276-14722 #276-14731 276-14731 #276-14734 276-14734
#277-14858 277-14858 #277-14874 277-14874 #277-14911 277-14911 #277-14921 277-14921 #278-14961
278-14961 #279-15025 279-15025 #279-15041 279-15041 #281-15091 281-15091 #282-15117 282-15117
#284-15319 284-15319 #285-15436 285-15436 #286-15517 286-15517 #286-15551 286-15551
$$$ = 010016 R #38-1412 38-1412 #38-1416 38-1416 #38-1420 38-1420 #38-1424 38-1424 #38-1428
38-1428 #38-1433 38-1433 #38-1437 38-1437 #38-1446 38-1446 #38-1451 38-1451
#38-1456 38-1456 #38-1460 38-1460
$$$ARG = 000011 #81-4133 81-4133 #81-4133 81-4133 #81-4133 81-4133 #81-4133 81-4133
$$$GLB = ****** 66-2742 66-2742 66-2742 66-2742 66-2742 66-2742 66-2746 66-2746 66-2746
66-2746 66-2746 66-2746 81-4133 81-4133 81-4133 81-4133 81-4133 81-4133
81-4133 81-4133 146-8093 146-8096 146-8096 146-8096 146-8096 146-8096 146-8096
190-10221 190-10225 190-10225 190-10225 190-10225 190-10225 190-10225 190-10227 190-10227
190-10227 190-10227 190-10227 190-10227 190-10229 190-10229 190-10229 190-10229 190-10229
190-10229
$$$OST = 000016 #66-2742 66-2742 66-2742 #66-2742 66-2742 66-2742 #66-2742 66-2742 66-2742
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 28
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#66-2742 66-2742 66-2742 #66-2742 66-2742 66-2742 #66-2742 #66-2746 66-2746
66-2746 #66-2746 66-2746 66-2746 #66-2746 66-2746 66-2746 #66-2746 66-2746
66-2746 #66-2746 66-2746 66-2746 #66-2746 #81-4133 81-4133 81-4133 #81-4133
81-4133 81-4133 #81-4133 81-4133 81-4133 #81-4133 81-4133 81-4133 #81-4133
81-4133 81-4133 #81-4133 81-4133 81-4133 #81-4133 81-4133 #146-8096 146-8096
146-8096 #146-8096 146-8096 146-8096 #146-8096 146-8096 146-8096 #146-8096 146-8096
146-8096 #146-8096 146-8096 146-8096 #146-8096 #190-10225 190-10225 190-10225 #190-10225
190-10225 190-10225 #190-10225 190-10225 190-10225 #190-10225 190-10225 190-10225 #190-10225
190-10225 190-10225 #190-10225 #190-10227 190-10227 190-10227 #190-10227 190-10227 190-10227
#190-10227 190-10227 190-10227 #190-10227 190-10227 190-10227 #190-10227 190-10227 190-10227
#190-10227 #190-10229 190-10229 190-10229 #190-10229 190-10229 190-10229 #190-10229 190-10229
190-10229 #190-10229 190-10229 190-10229 #190-10229 190-10229 190-10229 #190-10229
$$$T1 = 000000 #66-2742 66-2742 66-2742 66-2742 #66-2742 66-2742 #66-2746 66-2746 66-2746
66-2746 #66-2746 66-2746 #146-8096 146-8096 146-8096 146-8096 #146-8096 146-8096
#190-10225 190-10225 190-10225 190-10225 #190-10225 190-10225 #190-10227 190-10227 190-10227
190-10227 #190-10227 190-10227 #190-10229 190-10229 190-10229 190-10229 #190-10229 190-10229
$$$UNI = 000002 #35-1166 35-1182 35-1182 35-1182 #35-1182 35-1182 35-1182 35-1182 #35-1182
#35-1210 35-1214 35-1214 #35-1214 35-1214 35-1214 #35-1214
.ABCNT 002600 RG #17-820 *85-4353 192-10303 *222-11793
.ABFLG 002602 RG #17-822 *85-4354 *162-8537 192-10301 *192-10303
.ACKAL 001164 RG #9-537 66-2706 *81-4128 194-10332 *194-10334
.ATLLH 007106 RG #37-1345 37-1351 37-1401 69-3082 76-3589 127-6909 127-6912
.ATOTA 011317 RG #41-1655
.BGBST = 076000 G #14-741 14-748 42-1670
.BGBUF 001414 RG #14-747 42-1675
.BGLEN = 002000 G #14-742 14-749 42-1677
.BM873 = 173000 G #49-2108 83-4248
.BRCLK = 005000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.BRKCH 002630 RG #17-835 216-11432
.BTPRM 001160 RG #9-533 161-8522
.BTSCH 001162 RG #9-535 *81-3989 81-4005 *81-4026 *216-11443
.BTSTK 016312 RG 37-1398 81-3918 #81-3918
.CECLK = 004000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.CEFN 043062 RG 109-5597 109-5597 110-5647 110-5647 111-5710 111-5710 112-5757 112-5757 118-6085
118-6085 124-6516 124-6516 128-6963 128-6963 #252-13386
.CEFN3 043066 RG #252-13389 275-14664 275-14664
.CKASS 001050 RG #9-475 75-3509 *75-3511 *143-7908
.CKDEL 043150 RG 120-6223 120-6223 143-7913 143-7913 #253-13437
.CLKBA 002370 RG #15-784 118-6118 120-6213 143-7891
.CLKEA 002574 RG #15-794 118-6119 120-6215
.CLKSW 001136 RG #9-510 66-2722 *66-2724 *143-7878 *143-7881
.CLKSZ = 000007 G #15-781 15-791
.CLRMR = 006000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.CLRUN = 010000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.COMEF 001010 RG #9-445 43-1786 66-2704 70-3146 70-3151 70-3160 70-3162 81-3939 81-3957
*81-3968 *81-4082 *83-4226 *85-4374 91-4753 113-5806 113-5807 147-8147 *167-8676
*167-8680 *179-9498 195-10389 212-11131 213-11206 213-11222 216-11394 *216-11429 216-11441
222-11796 224-11903 228-12093 233-12569 252-13402 255-13523 258-13753 275-14636 278-14953
*280-15067 281-15089 *281-15094 *282-15115
.CONBT = 012000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.CPDV 001254 RG #12-625 *81-4104 274-14570 *274-14602 *276-14740
.CPFN 001252 RG #12-623 274-14568 *274-14600
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 29
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.CPUSN 011312 RG #41-1634
.CRHD 001262 RG #12-631 81-4105 276-14715 *276-14739
.CRPB 001260 RG #12-629 *81-4107 274-14573 *274-14575 274-14594 *274-14604 *276-14744
.CRPFL 005706 RG #34-1099 *85-4352
.CRQZ 001250 RG #12-621 *81-4112 *274-14577 *274-14595 276-14716 *276-14747
.CRSB 001264 RG #12-633 274-14576 *274-14597
.CRSND 002626 RG #17-833 *169-8779 *169-8799 270-14340
.CRSZ 001256 RG #12-627 *81-4111 *274-14578 274-14587 *274-14596 276-14726 *276-14746
.CRTSK 001006 RG #9-442 43-1740 43-1751 67-2791 67-2853 67-2959 73-3290 *73-3293 74-3306
74-3313 *74-3394 79-3811 147-8133 192-10281 255-13532 257-13644 257-13670 275-14662
.CSHRG = 164000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.CTYPT 002634 RG #17-839
.CYLTM = 000074 G 9-529 15-787 15-788 #54-2375
.DATE 001140 RG #9-512 165-8631
.DATE3 001140 RG #9-513 162-8535 222-11798
.DAY 001144 RG #9-518 107-5496
.DBINT = ****** GX 8-377
.DHSPD 037554 RG 156-8375 156-8375 213-11254 213-11254 221-11770 221-11770 #223-11825
.DHSPF 037514 RG 213-11255 213-11255 #222-11792
.DHSPR 037460 RG 153-8286 153-8286 #221-11764 225-11980 225-11980 231-12471 231-12471
.DHSTO 034164 RG 204-10708 #205-10736 236-12736 236-12736 244-13119 244-13119 270-14376
.DHTMO 040646 RG 85-4348 85-4348 193-10319 193-10319 #230-12291
.DHXOF 041632 RG 234-12634 234-12638 234-12641 234-12641 #234-12646
.DHXON 041754 RG 236-12712 236-12716 236-12719 236-12719 #236-12724
.DLHUP 040214 RG 153-8269 153-8269 153-8293 153-8293 #228-12074 229-12176 229-12176
.DLINT 036500 RG 215-11339 #217-11461
.DLSTO 034340 RG #207-10796 236-12743 236-12743 244-13123 244-13123 270-14384
.DLTMO 040336 RG 85-4349 85-4349 193-10320 193-10320 #229-12134
.DLXOF 041640 RG 234-12632 #234-12652
.DLXON 042020 RG 236-12734 #236-12742
.DMHUP 040144 RG 153-8283 153-8283 156-8368 156-8368 #226-12016 231-12470 231-12470
.DMTMO 041126 RG 85-4350 85-4350 193-10325 193-10325 #231-12441
.DOW 001147 RG #9-524
.DQCDR 010152 RG #39-1492
.DQDH0 010072 RG #39-1480 169-8755
.DQDLS 010112 RG #39-1484
.DQDL1 010052 RG #39-1476
.DQLPT 010132 RG #39-1488
.DQPBA 010032 RG #39-1472 39-1503 154-8305 154-8305 *155-8318 163-8572 163-8572 164-8608 164-8608
166-8654 166-8654 166-8656 174-9027 174-9028 174-9032 273-14542 273-14544
.DQPEA 010232 RG #39-1502 39-1503
.DQPSZ = 000010 G #39-1503 178-9372
.DRBEL 030540 RG 176-9186 #179-9450
.DRLTC = 015000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.DRSRN 013352 RG 8-333 #67-2953
.DR.NS 013460 RG #67-2976 90-4717 141-7814
.DSACF = 066000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.DSIOJ = 065000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.DST 001146 RG #9-522
.DTBLK 001374 RG #12-722 *81-4080 *180-9602 *181-9663 *181-9689 195-10429 212-11133 212-11137 212-11137
.DTINT 027624 RG 8-427 8-427 8-427 8-427 #176-9160
.DXRTY 001364 RG #12-701 277-14824 *277-14857 277-14878 277-14932
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 30
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.D.ASS 021564 RG 67-2862 #103-5253
.D.CEF 022034 RG 67-2874 #109-5597
.D.CMT 022452 RG 67-2872 #120-6212
.D.DSE 022070 RG 67-2876 #111-5706
.D.DTE 020344 RG 67-2863 #87-4479
.D.EXT 022520 RG 67-2884 #122-6306 131-7211
.D.GLI 021670 RG 67-2861 #105-5387
.D.GMP 024232 RG 67-2896 #141-7769
.D.GPP 024110 RG 67-2895 #139-7650
.D.GTP 021720 RG 67-2893 #107-5481
.D.MKT 022350 RG 67-2870 #118-6085
.D.PUT 023640 RG 67-2871 #135-7389
.D.QIO 022542 RG 67-2859 67-2860 #124-6487
.D.RAF 022126 RG 67-2878 #113-5804
.D.REC 023460 RG 67-2867 #131-7136
.D.REF 022112 RG 67-2877 #112-5757
.D.REQ 023662 RG 67-2864 #137-7469
.D.ROE 023460 RG 67-2868 #131-7137
.D.ROS 023460 RG 67-2869 #131-7138
.D.SAR 023226 RG 67-2866 #127-6847
.D.SEF 022052 RG 67-2875 #110-5647
.D.SEN 023212 RG 67-2865 #126-6764
.D.STV 023626 RG 67-2892 #133-7302
.D.WFL 022230 RG 67-2880 #115-5934
.D.WFO 022154 RG #114-5852 124-6673
.D.WFS 022152 RG 67-2879 #114-5850
.D.WSE 022336 RG 67-2883 #116-5998
.EBPEC 001370 RG #12-714 278-14957 *278-14959
.EBPEQ 001366 RG #12-711 196-10443 278-14964
.EBRTY 001365 RG #12-703 *277-14876 277-14905 277-14933 278-14955
.EIOJA = 067000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.ELEDN 030234 RG 176-9178 #178-9331
.EXEND 001002 RG #9-434 42-1666
.FEACK = ****** GX 39-1499
.FEACT 005666 RG #33-1077 *81-4129
.FEMOD 001170 RG #9-541
.FEPPU 015550 RG #77-3692 127-6868 127-6868 137-7477 137-7477
.FEST = ****** GX 39-1499
.FESTB 001000 RG #9-432 9-433
.FREPL 001420 RG #14-751 *42-1669 *42-1674 185-9865 212-11125 216-11398 239-12849 240-12889 267-14074
268-14172
.FSRPT = 000050 G #49-2152
.GFNR = 102000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.HRDWR 011314 RG #41-1639
.IBFLO 005054 RG #29-987 239-12849
.IBFOK 005056 RG #29-989 212-11125 240-12889
.INHDM 002576 RG #17-818 *150-8213 224-11905
.INICL = 070000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.INTEN = 000100 G #49-2113 85-4375
.IOSNP 012156 R 44-1825 44-1825 #45-1920
.IRLTC = 014000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.KACFL 001412 RG #13-735 195-10402
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 31
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.KALSC = 000005 G #54-2377 90-4711 195-10422
.KLERQ 001130 RG #9-502
.KLERW 001166 RG #9-539
.KLFCF 001173 RG #9-545
.KLFLG 001174 RG #9-547
.KLITK 001126 RG #9-499 *81-3962 *84-4304 *179-9488 *195-10416 *277-14852 *277-14856 *277-14873 *277-14898
*277-14912
.KLIWD 001132 RG #9-505
.KLNBC 001200 RG #10-560 10-580
.KLNFD 001204 RG #10-565
.KLNFT 001202 RG #10-562 10-575 167-8675
.KLNLB 001200 RG #10-559
.KLNMD 001216 RG #10-572 161-8509 208-10834
.KLNPB 001176 RG #10-556 161-8512
.KLNPE = 001220 RG #10-576
.KLNPT 002636 RG #17-842
.KLNPW 001220 RG #10-577
.KLNSW 001226 RG #10-581 44-1867 44-1875 153-8262 157-8390 169-8763 197-10460 208-10830 209-10855
209-10912 211-11027 216-11386 217-11474 228-12080 *228-12082 234-12637 236-12715 270-14309
271-14411
.KLNTD 001212 RG #10-570
.KLNTT 001210 RG #10-567
.KLRLD 001172 RG #9-543
.KPAC 001410 RG #13-733 *90-4711 *90-4712 *195-10397 *195-10400 *195-10422
.KPALV 031326 RG 180-9608 180-9608 #182-9716 195-10433 195-10433 212-11139 212-11139
.KW11S 035366 RG 8-347 #212-11100
.LCEND = 011320 RG 9-433 #41-1657
.LCRDL = 052000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LCRDR = 051000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LCRM1 = 057000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LCRM2 = 056000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LCRM3 = 055000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LCRM4 = 054000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LCRM5 = 053000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDAR = 077000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDBRL = 043000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDBRR = 042000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDCK1 = 046000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDCK2 = 047000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDDIS = 045000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDRJD = 064000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDRJV = 063000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDRM1 = 060000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDRM2 = 061000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDRM3 = 062000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LDSEL = 044000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.LPPFL 006214 RG #35-1151 *85-4351
.MEMRS = 076000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.MISC 011316 RG #41-1650 *192-10288 197-10458
.MON 001145 RG #9-520 107-5499
.MSIZE 001114 RG #9-482
.NOERR 001122 RG #9-493 9-495 *42-1678 *81-3961 *84-4305 *179-9489 195-10391 *195-10411 277-14848
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 32
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
277-14865 *277-14920
.NOHLT = 001123 RG #9-495 277-14894
.OBFLO = 001200 G #185-9846 185-9865
.PARER 011702 R 8-353 #43-1796
.PARRG = 172100 G 43-1797 #49-2109 85-4358
.PAT1. 000040 RG #8-335
.PAT2. 000120 RG #8-355
.PAT3. 000234 RG #8-372
.PAT4. 000520 RG #8-403
.PCAB1 = 150000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.PCAB2 = 151000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.PCAB3 = 152000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.PCAB4 = 153000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.PDP11 = 000050 #139-7636 139-7659
.PFAIL 001026 RG #9-464 75-3454 *83-4231 *84-4293
.PFASS 001052 RG #9-477 75-3512 75-3517 *75-3518
.PFIOW 001030 RG #9-466 *84-4294 *85-4337 *85-4356 229-12140 229-12194 230-12293 230-12342 230-12409
231-12443 231-12460 237-12774
.PFRST 020126 RG 75-3522 75-3522 #85-4329
.POLLH 001424 RG #14-755 14-761 14-771 73-3237 73-3271 76-3563 76-3600 128-6973 131-7195
137-7510 137-7516
.POLND 002330 RG 14-757 #14-770
.POLST 001430 RG 14-756 #14-759
.PRADR 001354 RG #12-690 *90-4676 176-9169 183-9765 212-11136
.PRDCT 001362 RG #12-696 *81-3969 *81-4046 *176-9185
.PRDTE 001360 RG #12-694 44-1858 81-3929 84-4289 90-4674 176-9168 183-9764 195-10432 212-11135
.PRPSE 001372 RG #12-717 66-2730 *81-3921 *81-3941 *81-3982 *85-4355 216-11396
.PRSTA 001356 RG #12-692 43-1779 44-1863 81-3930 84-4318 85-4377 176-9170 177-9298 183-9782
280-15066 281-15093
.PUDBA 010232 RG 36-1304 #40-1522 76-3632 103-5276 257-13646
.PUDEA 011312 RG #40-1628 103-5278
.PWRDN 017574 RG 8-329 75-3456 #83-4225 84-4303
.RCRM1 = 147000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.RCRM2 = 146000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.RCRM3 = 145000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.RCRM4 = 144000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.RCSPF = 141000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.RDJ14 = 134000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.RDJ71 = 135000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.RDMAB = 133000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.REQS 015046 RG 73-3275 73-3275 #76-3550 124-6652 124-6652 127-6893 127-6893 137-7497 137-7497
.RPADR 005670 RG #33-1079
.RPELC 005540 RG #32-1044
.RPELQ 005536 RG #32-1042 196-10446
.RPSIZ 005674 RG #33-1081
.RPUNT 005664 RG #33-1075
.RP1PE 010352 RG #40-1545 40-1546
.RP2PE 010422 RG #40-1550 40-1551
.RP3PE 010472 RG #40-1555 40-1556
.RP4PE 010542 RG #40-1560 40-1561
.RP5PE 010612 RG #40-1565 40-1566
.RP6PE 010662 RG #40-1570 40-1571
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 33
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.RP7PE 010732 RG #40-1575 40-1576
.RQESD 015540 RG #76-3659 127-6899 137-7500
.RQSPD 024600 RG #146-8095 162-8539 192-10305
.SECLK = 003000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.SEND 023360 RG 124-6648 124-6648 126-6774 126-6774 127-6862 127-6862 #128-6956 137-7546 137-7546
.SERFG 001014 RG #9-448 *42-1680 *69-3081 74-3308 75-3458 75-3486 75-3491 75-3498 *75-3514
*75-3521 *79-3828 *83-4232 *84-4308 *143-7916 *143-7920 *212-11102 *259-13781
.SETMR = 007000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.SETRN = 011000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.SEWFL 001016 RG #9-450 *116-5999 143-7920 *143-7921
.SNDAL 027006 RG 66-2737 66-2737 169-8706 169-8706 #169-8742
.SNDBF 002606 RG #17-829 *169-8757 *169-8841 202-10647 *202-10648 204-10705
.SNDCN 002616 RG #17-831 *169-8755 *169-8837 *202-10631
.SNDLP 002604 RG #17-827 85-4338 169-8749 *169-8754 169-8833 202-10637 204-10700
.SSCLK = 002000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.SSM 001150 RG #9-526 107-5483 *143-7873 *143-7875 143-7876
.SSTCO 013326 RG 43-1748 #67-2904
.SSTET 013320 RG 67-2796 #67-2901 67-2964
.STAST 015730 RG #79-3805 143-7906 143-7906 256-13597 256-13597
.STDHL 037416 RG #220-11727 223-11830 223-11830 235-12676 235-12676 236-12733 236-12733 242-12996 242-12996
243-13053 243-13053 244-13117 244-13117 270-14374 270-14374
.STDTA 006334 RG #36-1223 73-3242 266-14021
.STDTB 006342 RG 36-1224 #36-1230
.STDTC 006336 RG #36-1225
.STDTZ 006340 RG #36-1227 73-3243 *73-3244 *137-7540 266-14023
.STELD 031062 RG 179-9545 179-9545 #180-9597 180-9602
.STELI 031150 RG 179-9517 179-9517 #181-9653 181-9663
.STPCL = 000000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.STPDM 040174 RG 226-12019 226-12019 #227-12044 231-12477 231-12477
.STRCL = 001000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.STTNF 031370 RG 147-8153 147-8153 #183-9758
.STTNQ 031362 RG 177-9261 177-9261 #183-9755 275-14677 275-14677 276-14722 276-14722
.STTYD 040060 RG 213-11256 213-11256 217-11489 217-11489 224-11934 #225-11974
.STTYH 040074 RG 224-11942 224-11942 #225-11979 228-12098 228-12098
.SYUIC 001156 RG #9-531 124-6601 139-7661
.S2IDC 005050 RG #29-983 212-11120 *212-11129 *240-12894 *242-13011
.S2ITP 005052 RG #29-985 232-12532 *232-12547
.TENDN 027746 RG 176-9172 #177-9226
.TFXOF 043004 RG 242-12983 242-12983 #247-13226
.TFXON 042774 RG 243-13069 243-13069 #247-13221
.TICK 024364 RG 75-3489 #143-7865 143-7917
.TICKS 001134 RG #9-508 143-7865
.TKPS 001154 RG #9-528 81-3924 107-5481 143-7867 *161-8496 *161-8499
.TKTN 001124 RG #9-497 *43-1754 66-2710 *66-2712 *71-3173 *81-3960 *84-4307 *179-9491 *195-10417
*277-14922
.TKTN. 012740 R 66-2715 #66-2745
.TOD. 012722 R 66-2726 #66-2741
.TPDBA 007552 RG #38-1408 77-3697 77-3698 141-7781
.TPDEA 010032 RG #38-1462 141-7779
.TTACK 034370 RG 204-10712 206-10756 206-10764 206-10774 #208-10825
.TTBTW 042604 RG 158-8423 158-8423 241-12930 241-12930 #244-13105 247-13230 247-13230
.TTCHK 042124 RG 212-11114 212-11114 216-11415 216-11415 #238-12813
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 34
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.TTDIS 042312 RG 238-12817 238-12817 239-12854 240-12884 241-12925 #242-12960
.TTELB 002660 RG #17-864 *213-11292 *229-12226 *231-12485 233-12597 *233-12599
.TTELC 002656 RG #17-862 233-12571
.TTELQ 002654 RG #17-857 196-10439 233-12581
.TTENB 042464 RG 212-11128 212-11128 237-12785 237-12785 240-12890 241-12922 #243-13038
.TTERL 041426 RG 213-11293 213-11293 230-12412 230-12412 #233-12568
.TTFDI 041360 RG 212-11127 212-11127 #232-12531
.TTICK 042150 RG 216-11419 216-11419 #239-12846
.TTIXC 042254 RG 201-10596 201-10596 204-10692 204-10692 206-10769 206-10769 #241-12919
.TTP11 002632 RG #17-837 169-8785 *197-10473 *198-10506 201-10591 206-10760 208-10828 216-11439 234-12635
236-12713 270-14367 271-14442
.TTQDS 042204 RG 157-8402 #240-12881
.TTQEN 042214 RG 157-8405 #240-12886
.TTRNG 040044 R 217-11470 217-11470 224-11924 #224-11941
.TTRST 042034 RG 228-12102 229-12197 229-12197 230-12344 230-12344 #237-12772
.TTSCW 040050 R 217-11495 217-11495 224-11926 #224-11946
.TTSTP 041650 RG 234-12647 234-12647 #235-12675 244-13129 244-13129 271-14449
.TTSW2 042754 RG 157-8401 157-8401 212-11111 212-11111 213-11268 213-11268 216-11412 216-11412 223-11829
223-11829 230-12355 230-12355 232-12536 232-12536 237-12779 237-12779 241-12920 241-12920
244-13109 244-13109 #246-13188
.TTS2F 005046 RG #29-981 212-11103 *238-12818 *242-12987 *243-13046
.TTXOF 041554 RG 159-8451 159-8451 216-11409 216-11409 #234-12628
.TTXON 041676 RG 160-8481 160-8481 #236-12705
.VCLUN 015654 RG #78-3751 103-5256 103-5256 105-5396 105-5396 124-6493 124-6493
.VERNO 001036 RG #9-472
.WRMBX = 071000 #7-262 #48-2092 #80-3894 #82-4186 #86-4445 #145-8019 #175-9120 #189-10058 #250-13319
.X.02 023234 R 126-6770 #127-6854
.YEAR 001142 RG #9-516 107-5501
..AKCR = ****** GX 39-1493
..AKLP = ****** GX 39-1489
..ALCB 044416 RG 76-3596 76-3596 124-6561 124-6561 185-9867 185-9867 233-12578 233-12578 245-13158
245-13158 #267-14068 269-14248 269-14248 276-14734 276-14734 278-14961 278-14961
..ALC2 044432 RG #267-14075
..ALOW 044706 RG 164-8593 164-8593 170-8872 170-8872 #269-14247 269-14251 275-14646 275-14646
..BLXI 047062 RG #284-15307
..BLXO 047074 RG 256-13583 256-13583 #284-15313
..DECB 044552 RG 81-4099 81-4099 177-9256 177-9256 256-13602 256-13602 #268-14168
..DECN 044546 RG 85-4345 85-4345 164-8617 164-8617 165-8640 165-8640 169-8842 169-8842 178-9386
178-9386 203-10668 203-10668 206-10768 206-10768 255-13545 255-13545 #268-14166 270-14337
270-14349 271-14459 271-14459
..DEC2 044542 RG #268-14162
..DQRN 043432 RG 197-10471 197-10471 #257-13643 257-13717
..DSEV 044026 RG 76-3640 76-3640 79-3807 79-3807 111-5706 111-5706 124-6664 124-6664 128-6996
143-7900 143-7900 177-9247 177-9247 178-9363 178-9363 209-10911 209-10911 216-11430
216-11430 216-11435 216-11435 217-11477 217-11477 222-11801 228-12084 256-13592 256-13592
#259-13780 282-15117 282-15117
..DTP1 047036 RG 90-4714 90-4714 #282-15114
..DTP2 047006 RG 89-4589 89-4589 179-9480 179-9480 #281-15088
..DTSP 046770 RG 81-3963 81-3963 84-4306 84-4306 179-9490 179-9490 195-10410 195-10410 277-14921
277-14921 #280-15065 281-15091 281-15091
..ENB0 044302 RG 79-3822 79-3822 81-4040 81-4040 81-4127 81-4127 257-13707 257-13707 257-13713
257-13713 262-13874 262-13874 #265-13980 286-15517 286-15517 286-15551 286-15551
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 35
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
..ERLG 043212 RG 196-10441 196-10441 196-10444 196-10444 196-10447 196-10447 #255-13522 255-13546
..FSTD 044336 RG 126-6764 126-6764 127-6847 127-6847 131-7157 131-7157 137-7469 137-7469 #266-14019
..INTX 014632 RG 43-1762 #75-3449 84-4309 143-7922 176-9195 219-11705 265-13989
..IODN 043312 RG 198-10505 198-10505 #256-13573 257-13716 257-13716
..IPRI 044122 RG 76-3637 76-3637 76-3655 76-3655 124-6662 124-6662 #262-13861
..NADD 044176 RG 73-3238 73-3238 73-3258 73-3258 73-3272 73-3272 76-3601 76-3601 128-6990
128-6990 131-7196 131-7196 137-7519 137-7519 262-13873 262-13873 #263-13895 275-14680
275-14680 276-14731 276-14731
..NDEL 044062 RG 73-3236 73-3236 81-4092 81-4092 131-7174 131-7174 177-9253 177-9253 #261-13829
264-13942 264-13942
..PICK 044240 RG 73-3264 73-3264 76-3564 76-3564 128-6974 128-6974 131-7148 131-7148 137-7511
137-7511 257-13658 257-13658 #264-13936
..SACK 045372 RG 166-8659 166-8659 208-10846 208-10846 #273-14522
..SEFN 043754 RG 256-13590 256-13590 #258-13742
..SPLP = ****** GX 39-1489
..STCH 045326 RG 216-11411 216-11411 #272-14484
..STCR = ****** GX 39-1493
..STFC 045456 RG 161-8508 161-8508 161-8524 161-8524 174-9070 174-9070 194-10338 194-10338 194-10340
194-10340 194-10344 194-10344 225-11991 225-11991 272-14497 272-14497 #274-14565
..STIN 045646 RG 161-8518 161-8518 255-13530 255-13530 #275-14635
..STLP = ****** GX 39-1489
..STPT 045142 RG 39-1473 39-1477 39-1481 39-1485 237-12788 237-12788 #271-14404
..STQ 046046 RG 213-11208 213-11208 274-14580 274-14580 274-14590 274-14590 #276-14711
..STTY 044726 RG 39-1473 39-1477 39-1481 39-1485 169-8773 169-8773 169-8792 169-8792 #270-14300
..SWED 046670 RG 90-4623 90-4623 90-4634 90-4634 90-4647 90-4647 90-4687 90-4687 90-4694
90-4694 91-4756 91-4756 99-5099 99-5099 #279-15016
..VTOL 047150 RG 124-6643 124-6643 #285-15401
..VVLL 047332 RG 285-15436 285-15436 #286-15486
..VXFR 047054 RG 257-13703 257-13703 #283-15156 284-15319 284-15319
..WFED 046216 RG 81-3944 81-3944 81-3972 81-3972 81-3986 81-3986 81-4014 81-4014 81-4024
81-4024 81-4030 81-4030 81-4038 81-4038 81-4049 81-4049 81-4072 81-4072
81-4124 81-4124 97-5032 97-5032 177-9286 177-9286 179-9456 179-9456 179-9538
179-9538 181-9658 181-9658 182-9725 183-9779 183-9779 184-9816 184-9816 #277-14820
279-15025 279-15025 279-15041 279-15041
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 36
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
CALL #7-257 #44-1825 #44-1828 #44-1843 #48-2089 #66-2735 #66-2737 #73-3236 #73-3238 #73-3258
#73-3264 #73-3272 #73-3275 #75-3522 #76-3564 #76-3596 #76-3601 #76-3637 #76-3640 #76-3655
#79-3807 #79-3822 #80-3892 #81-3927 #81-3944 #81-3963 #81-3972 #81-3986 #81-4014 #81-4024
#81-4030 #81-4038 #81-4040 #81-4049 #81-4072 #81-4092 #81-4099 #81-4124 #81-4127 #82-4185
#84-4290 #84-4291 #84-4306 #85-4345 #85-4348 #85-4349 #85-4350 #86-4443 #89-4589 #90-4623
#90-4634 #90-4647 #90-4687 #90-4694 #90-4714 #91-4756 #97-4976 #97-5008 #97-5016 #97-5032
#99-5099 #102-5201 #103-5256 #104-5343 #105-5396 #106-5446 #107-5485 #107-5489 #108-5559 #109-5597
#110-5647 #111-5706 #111-5710 #112-5757 #114-5859 #117-6038 #118-6085 #119-6174 #120-6223 #121-6271
#123-6352 #124-6493 #124-6516 #124-6561 #124-6643 #124-6648 #124-6652 #124-6662 #124-6664 #125-6720
#126-6764 #126-6774 #127-6847 #127-6862 #127-6868 #127-6893 #128-6963 #128-6974 #128-6990 #131-7148
#131-7157 #131-7174 #131-7196 #132-7252 #134-7341 #136-7433 #137-7469 #137-7477 #137-7497 #137-7511
#137-7519 #137-7546 #142-7859 #143-7900 #143-7906 #143-7913 #145-8017 #147-8153 #152-8240 #153-8258
#153-8269 #153-8281 #153-8283 #153-8286 #153-8293 #154-8304 #154-8305 #155-8317 #156-8332 #156-8337
#156-8358 #156-8365 #156-8368 #156-8375 #157-8386 #157-8394 #157-8397 #157-8401 #158-8418 #158-8423
#159-8449 #159-8451 #160-8478 #160-8481 #161-8508 #161-8518 #161-8524 #163-8570 #163-8572 #164-8593
#164-8606 #164-8608 #164-8617 #165-8640 #166-8652 #166-8654 #166-8659 #169-8706 #169-8771 #169-8773
#169-8792 #169-8842 #170-8872 #174-9070 #175-9118 #177-9247 #177-9253 #177-9256 #177-9261 #177-9286
#177-9292 #178-9363 #178-9386 #178-9392 #178-9405 #178-9413 #179-9456 #179-9480 #179-9490 #179-9517
#179-9538 #179-9545 #179-9550 #180-9600 #180-9608 #181-9658 #181-9661 #181-9669 #181-9686 #181-9688
#183-9779 #183-9781 #184-9816 #185-9867 #189-10056 #193-10319 #193-10320 #193-10325 #194-10338 #194-10340
#194-10344 #195-10410 #195-10433 #196-10441 #196-10444 #196-10447 #197-10471 #198-10505 #200-10549 #201-10563
#201-10584 #201-10594 #201-10596 #203-10668 #204-10692 #206-10754 #206-10768 #206-10769 #208-10840 #208-10846
#209-10911 #209-10918 #212-11101 #212-11111 #212-11114 #212-11127 #212-11128 #212-11137 #212-11139 #213-11196
#213-11208 #213-11254 #213-11255 #213-11256 #213-11268 #213-11293 #215-11336 #216-11409 #216-11411 #216-11412
#216-11415 #216-11419 #216-11430 #216-11435 #217-11470 #217-11477 #217-11489 #217-11495 #219-11698 #221-11770
#223-11829 #223-11830 #224-11881 #224-11942 #225-11980 #225-11991 #226-12019 #228-12098 #229-12138 #229-12150
#229-12176 #229-12197 #229-12227 #230-12330 #230-12344 #230-12355 #230-12412 #231-12470 #231-12471 #231-12477
#231-12486 #232-12536 #233-12578 #234-12641 #234-12647 #235-12676 #236-12719 #236-12733 #236-12736 #236-12743
#237-12779 #237-12785 #237-12788 #238-12817 #241-12920 #241-12930 #242-12983 #242-12996 #243-13053 #243-13069
#244-13109 #244-13112 #244-13117 #244-13119 #244-13123 #244-13129 #245-13158 #247-13230 #250-13315 #252-13396
#255-13530 #255-13545 #256-13583 #256-13590 #256-13592 #256-13597 #256-13602 #257-13658 #257-13703 #257-13707
#257-13713 #257-13716 #258-13748 #262-13873 #262-13874 #264-13942 #269-14248 #270-14312 #270-14314 #270-14318
#270-14374 #271-14415 #271-14418 #271-14434 #271-14459 #272-14489 #272-14497 #273-14526 #274-14580 #274-14590
#275-14646 #275-14664 #275-14677 #275-14680 #276-14722 #276-14731 #276-14734 #277-14858 #277-14874 #277-14911
#277-14921 #278-14961 #279-15025 #279-15041 #281-15091 #282-15117 #284-15319 #285-15436 #286-15517 #286-15551
CLEF$ #189-10056
CLEF$C #48-2090
CLEF$S #48-2088 #80-3892 #81-4116
CMKT$S #48-2089
DECL$S #48-2089
DHPSW #7-305 8-400 8-400 8-400 8-400 8-400 8-400 8-400 8-400
DIR$ #48-2088 #66-2715 #66-2726 #81-3922 #81-3922 #81-3936 #81-3936 #81-3998 #81-3998 #81-4067
#81-4116 #81-4116 #81-4117 #81-4117 #142-7859 #145-8017 #147-8130 #162-8539 #189-10057 #192-10279
#192-10289 #192-10293 #192-10297 #192-10305 #192-10307 #192-10307 #195-10393 #250-13314 #255-13536 #255-13536
#269-14250 #269-14250
DMYG$ #250-13314
DTON$S #48-2089 #80-3892 81-4117
EHSG$ #189-10057 #190-10223
ERR$ #66-2715 #66-2726 #81-3922 #81-3936 #81-3998 #81-4067 #81-4116 #81-4117 #147-8130 #162-8539
#192-10279 #192-10289 #192-10293 #192-10297 #192-10305 #192-10307 #195-10393 #255-13536 #269-14250
F11DF$ #7-259 7-263 #250-13316 250-13320
IDENT$ #4-144 #6-187 #6-187 #46-1946 #46-1946 #80-3834 #80-3834 #82-4139 #82-4139 #86-4392
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 37
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
#86-4392 #102-5168 #102-5168 #104-5310 #104-5310 #106-5413 #106-5413 #108-5520 #108-5520 #117-6005
#117-6005 #119-6140 #119-6140 #121-6237 #121-6237 #123-6317 #123-6317 #125-6682 #125-6682 #132-7219
#132-7219 #134-7308 #134-7308 #136-7400 #136-7400 #138-7560 #138-7560 #140-7684 #140-7684 #144-7926
#144-7926 #175-9079 #175-9079 #188-9928 #188-9928 #249-13239 #249-13239
MFPI #48-2089 77-3692 77-3693 #86-4443 #102-5202 103-5253 103-5268 #104-5343 105-5395 #108-5559
#117-6038 118-6100 118-6101 118-6102 #123-6352 124-6492 124-6502 124-6504 124-6536 #125-6720
128-6956 128-6982 131-7142 131-7143 #132-7252 #134-7341 #140-7718 141-7769 141-7770 #250-13315
266-14024 266-14025
MFPS #7-257 43-1745 #48-2089 67-2795 67-2829 67-2963 77-3712 #86-4443 87-4483 87-4491
87-4492 87-4495 97-5020 97-5021 97-5022 98-5062 99-5092 99-5097 100-5137 #102-5202
103-5270 103-5272 #104-5343 105-5403 #106-5446 107-5510 #108-5559 115-5938 115-5941 115-5944
115-5946 115-5954 115-5956 #117-6038 #123-6352 124-6489 124-6523 124-6607 #125-6720 131-7180
#132-7252 133-7303 #134-7341 135-7389 #136-7433 137-7505 137-7506 137-7507 137-7508 137-7509
#138-7593 139-7672 #140-7718 141-7793 #250-13315 252-13388 279-15036 279-15037 279-15038
MOV$ #81-3922 #81-3922 #81-4116 #81-4116
MRKT$ #48-2090 #145-8017
MRKT$S #48-2090
MTPI #48-2089 #86-4443 #104-5343 105-5405 #106-5446 107-5512 #108-5559 #117-6038 #123-6352 124-6508
124-6510 #125-6720 #132-7252 #134-7341 #140-7718 141-7806 #250-13315
MTPS #48-2089 #86-4443 97-4991 97-4992 97-4993 97-4998 97-4999 97-5000 97-5001 100-5141
#108-5559 113-5804 113-5805 113-5806 113-5807 #117-6038 #123-6352 #125-6720 131-7187 131-7188
131-7192 #132-7252 #134-7341 #138-7593 139-7676 #140-7718 141-7809 #250-13315 279-15027 279-15028
279-15029
OFF$ #66-2742 66-2742 66-2742 66-2742 66-2742 66-2742 66-2742 #66-2746 66-2746 66-2746
66-2746 66-2746 66-2746 66-2746 #81-4133 81-4133 81-4133 81-4133 81-4133 81-4133
81-4133 81-4133 81-4133 #146-8096 146-8096 146-8096 146-8096 146-8096 146-8096 146-8096
#190-10225 190-10225 190-10225 190-10225 190-10225 190-10225 190-10225 #190-10227 190-10227 190-10227
190-10227 190-10227 190-10227 190-10227 #190-10229 190-10229 190-10229 190-10229 190-10229 190-10229
190-10229
PSW #7-292 #8-319 #8-321 #8-323 #8-325 #8-327 #8-329 #8-331 #8-333 #8-338
#8-338 #8-338 #8-338 #8-340 #8-341 #8-345 #8-345 #8-347 #8-351 #8-351
#8-353 #8-358 #8-358 #8-358 #8-358 #8-358 #8-358 #8-358 #8-358 #8-358
#8-358 #8-358 #8-358 #8-358 #8-358 #8-358 #8-363 #8-368 #8-368 #8-370
#8-375 #8-375 #8-375 #8-375 #8-377 #8-379 #8-382 #8-387 #8-388 #8-390
#8-391 #8-393 #8-394 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406
#8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406
#8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406 #8-406
#8-406 #8-406 #8-406 #8-406 #8-406 #8-408 #8-409 #8-411 #8-412 #8-414
#8-415 #8-418 #8-419 #8-427 #8-427 #8-427 #8-427
QDPB$ #81-4133 81-4133
QIOSY$ #48-2090 48-2091
QIOW$ #48-2088 #80-3892 #81-4133
RETURN #44-1883 #45-1937 #48-2089 #76-3553 #76-3568 #76-3657 #77-3716 #78-3782 #79-3825 #80-3892
#84-4321 #85-4379 #86-4443 #101-5164 #102-5201 #104-5343 #106-5446 #108-5559 #117-6038 #119-6174
#121-6271 #123-6352 #125-6720 #132-7252 #134-7341 #136-7433 #142-7859 #145-8017 #169-8803 #170-8882
#171-8919 #172-8952 #174-9054 #175-9118 #181-9691 #184-9820 #185-9873 #186-9899 #187-9924 #189-10056
#201-10578 #207-10803 #208-10842 #208-10849 #209-10872 #210-10939 #213-11210 #216-11422 #216-11445 #217-11502
#218-11524 #220-11742 #223-11842 #224-11949 #225-11993 #227-12051 #228-12087 #229-12181 #229-12241 #230-12381
#230-12414 #231-12501 #232-12548 #233-12605 #234-12655 #235-12682 #236-12747 #237-12792 #238-12820 #240-12898
#241-12933 #244-13134 #245-13169 #246-13194 #247-13232 #250-13315 #252-13410 #254-13492 #255-13549 #256-13605
#257-13708 #259-13782 #260-13810 #261-13837 #262-13876 #263-13905 #264-13945 #266-14044 #267-14128 #268-14227
#269-14254 #270-14324 #270-14379 #271-14422 #271-14463 #272-14502 #273-14551 #274-14584 #275-14688 #276-14752
RSXTOPS20 CREATED BY MACRO ON 11-NOV-81 AT 11:16 PAGE 38
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
#277-14937 #278-14991 #279-15044 #282-15120 #283-15159 #284-15364 #285-15458 #286-15557
RQST$ #48-2087 #66-2742 #66-2746 #145-8016 #146-8096 #189-10057 #190-10225 #190-10227 #190-10229
RSXVR$ #7-265 #9-473 #9-473
R50$ #66-2742 66-2742 66-2742 #66-2746 66-2746 66-2746 #146-8096 146-8096 146-8096 #190-10225
190-10225 190-10225 #190-10227 190-10227 190-10227 #190-10229 190-10229 190-10229
WSIG$S #48-2090 #80-3893 81-3936 81-3998 #145-8016 #189-10056 192-10307 #250-13317 255-13536 269-14250
WTLO$ #48-2090 #145-8017 #146-8093 #189-10056 #190-10221
WTLO$C #48-2090
WTSE$ #48-2088 #145-8017
WTSE$S #48-2088 #80-3892 81-3922 #145-8016
$DEF #7-259 7-262 #48-2088 48-2092 #80-3893 80-3894 #82-4185 82-4186 #86-4443 86-4445
#145-8016 145-8019 #175-9118 175-9120 #189-10057 189-10058 #250-13316 250-13319
.ATLEN #7-258 37-1351 37-1354 37-1358 37-1365 37-1371 37-1385 37-1392 37-1398 37-1401
.CRASH #7-257 43-1757 43-1781 43-1788 43-1791 43-1794 43-1805 #48-2087 71-3176 75-3525
#80-3892 #82-4185 84-4286 #86-4443 #142-7859 #145-8017 149-8203 #175-9118 176-9174 176-9180
177-9232 178-9345 178-9374 178-9379 179-9474 179-9511 179-9531 179-9542 #189-10057 245-13171
#250-13314 276-14736
.DQPEN #7-260 39-1473 39-1477 39-1481 39-1485 39-1489 39-1493 39-1496 39-1499 #48-2089
#145-8017
.ENB #48-2087 #86-4443 #250-13318
.ENBT #145-8026 #161-8517 #164-8592 #170-8871
.ENB0 #48-2087 79-3822 #80-3893 81-4040 81-4127 #250-13317 257-13707 257-13713 262-13874 286-15517
286-15551
.ENB5 #48-2087 #145-8016 #189-10056 193-10327 #250-13315
.ENB6 #48-2087 66-2698 66-2714 66-2725 #80-3893 81-3935 81-3964 81-3997 81-4066 #145-8017
147-8128 147-8145 #189-10056 192-10284 195-10434 197-10474 200-10551 #250-13318 261-13835 263-13903
264-13944 267-14125 268-14222 274-14582 275-14681
.INH #48-2087 #86-4443 #250-13318
.INHT #145-8033 161-8519 164-8594 170-8873
.INH0 #48-2087 #79-3810 #250-13317 #257-13655 #262-13864 #286-15490
.INH5 #48-2087 #145-8016 #189-10056 #193-10315 #250-13315
.INH6 #48-2087 #66-2703 #80-3893 #81-3938 #81-3999 #81-4068 #145-8017 #147-8132 #147-8149 #189-10056
#192-10280 #195-10431 #197-10457 #200-10548 #250-13318 #261-13831 #263-13898 #264-13938 #267-14079 #268-14177
#274-14567 #275-14672
.PUDEN #7-258 #7-260 #40-1526 #40-1540 #40-1546 #40-1551 #40-1556 #40-1561 #40-1566 #40-1571
#40-1576 #40-1596 #40-1601 #40-1608 #40-1613 #40-1618
.STDEN #7-258 #36-1284 #36-1288 #36-1298 #36-1304 #36-1316 #36-1321 #36-1326 #36-1331 #36-1335
#36-1338
.STKM #48-2088 #65-2695 #80-3892 #81-3918 #142-7859 #145-8017 #147-8123 #189-10056 #190-10206
.TPDEN #7-260 #38-1412 #38-1416 #38-1420 #38-1424 #38-1428 #38-1433 #38-1437 #38-1446 #38-1451
#38-1456 #38-1460