Trailing-Edge
-
PDP-10 Archives
-
bb-m403a-bk
-
red.lst
There are 2 other files named red.lst in the archive. Click here to see a list.
REDIRECT MACRO M1113 14-APR-81 10:37
TABLE OF CONTENTS
3- 78 REDIRECT -- MACRO DEFINITIONS
4- 110 REDIRECT -- TASK CODE
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 1
1 .IDENT "V003000"
2 .LIST MEB
3 .TITLE REDIRECT
4 ;
5 ; COPYRIGHT (C) 1973, 1978 BY
6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
7 ;
8 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
9 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
10 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
11 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
12 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
13 ;
14 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
15 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
16 ; CORPORATION.
17 ;
18 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
19 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
20 ;
21 ; VERSION: V003000
22 ;
23 ; AUTHOR: R. MCLEAN
24 ;
25 ; DATE: 19 MAR 73
26 ;
27 ; MODIFIED BY ELLEN R GORDON
28 ;
29 ; DATE: 5 NOV 1973
30 ;
31 ; RSX20F -- R. MCLEAN
32 ; DATE 20-OCT-75
33 ;
34 ; VERSION V001A
35 ;
36 ; MODIFICATIONS:
37 ; -------------
38 ;
39 ; TCO NUMBER DATE PROGRAMMER REASON
40 ; ---------- ---- ---------- ------
41 ; TCO 4.2250 17-MAY-79 K. LEFEBVRE FIX ACP TIMEOUT COUNT
42 ; 001 08-APR-81 S. LEAPLINE REMOVE "RED" STOPCODE
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 2
44 ;+
45 ; MCR FUNCTION -- REDIRECT
46 ;
47 ;NOTE -- REDIRECT IS A PRIVILEDGED TASK
48 ;
49 ;NOTE -- REDIRECT USES 1 LUN.
50 ;
51 ; THIS IS ONLY SUPPOSED TO BE USED
52 ; TO REDIRECT SY FOR RSX20F!
53 ;
54 ;
55 ;TASK NAME "...RED" TO REDIRECT ALL I/O REQUESTS
56 ;FROM ONE PHYSICAL DEVICE-UNIT TO ANOTHER.
57 ;ONE LINE OF COMMAND INPUT OF THE FOLLOWING SYNTAX IS USED:
58 ;
59 ; REDIRECT ::= "RED" $ <NBC> <BC>
60 ; <NEW DEVICE> ("_"/"=") <OLD DEVICE> <LT>;
61 ;
62 ; <OLD DEVICE> ::= <DEVICE-UNIT SYMBOL>;
63 ; <NEW DEVICE> ::= <DEVICE-UNIT SYMBOL>;
64 ; <DEVICE-UNIT SYMBOL> ::= <LETTER><LETTER>;
65 ; (OCTAL VALUE/NUL);
66 ; / INDICATES ALTERNATION (OR)
67 ; '$' INDICATES ANY NUMBER OF (INCLUNDING ZERO) OF
68 ; 'NUL' INDICATES THE EMPTY SET
69 ; <BC> ::= SPACE [BREAK CHARACTER]
70 ; <NBC> ::= NON-BREAK CHARACTER
71 ; <LT> ::= <CR>/<AM>; [LINE TERMINATOR]
72 ; <CR> ::= CARRAGE RETURN
73 ; <AM> ::= ALTMODE
74 ; <LETTER> ::= 'A'/'B'/.....'Z'
75 ; <OCTAL VALUE> ::= 1-3 OCTAL DIGITS
76 ;-
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 3
REDIRECT -- MACRO DEFINITIONS
78 .SBTTL REDIRECT -- MACRO DEFINITIONS
79
80 .MACRO .QIO WRIT,LUN,EFN,PRI,IOS,AST,PAR1,PAR2
81 .BYTE IO,9.
82 .WORD WRIT
83 .WORD LUN
84 .BYTE EFN,PRI
85 .WORD IOS
86 .WORD AST
87 .WORD PAR1
88 .WORD PAR2
89 .WORD 40
90 .ENDM
91 ;
92 .MCALL CALL,RETURN,DIR$,ALUN$S,QIOW$,WSIG$S,EXIT$S,RQST$,.CRASH
93 .MCALL QIO$,.INH
94 ;
95 ;
96 ; DIRECTIVE DEFINITIONS
97 ;
98 024577 RDMCB=41.*400+127. ;READ MCR COMMAND BUFFER
99 000026 U.VA=26
100 000463 EXIT=1.*400+51. ;EXIT
101 000003 IO=3. ;Q I/O
102 000001 EFN1=1 ;EVENT FLAG 1
103 000400 WRIT=400 ;WRITE
104 000002 LUN=2 ;LOGICAL UNIT
105 000015 CR=15 ;CAR RTN
106 000012 LF=12 ;LINE FEED
107 000033 AM=33 ;ALTMODE
108 000040 SPA=40 ;SPACE
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4
REDIRECT -- TASK CODE
110 .SBTTL REDIRECT -- TASK CODE
111
112 000000 032767 000000G 000002G REDIR:: BIT #EF.PR1,.COMEF+2 ;PRIMARY PROTOCOL?
113 000006 001404 BEQ 10$ ;YES -- ALL OK
114 000010 012746 001556' MOV #SECMSG,-(SP) ;NO -- COMPLAIN
115 000014 000167 000632 5$: JMP EXITMS
116 ;
117 000020 012746 001256' 10$: MOV #RDMCR,-(SP) ;READ THE MCR COMMAND LINE
118 000024 104375 EMT 375
119 000026 103417 BCS MCRER1 ;ERROR ON TRYING TO READ MCR LINE
120 000030 012700 001263' MOV #MCRBH+3,R0 ;SET UP TO LOOK AT THE MCR BUFFER
121 000034 112001 REDSL: MOVB (R0)+,R1 ;PICK UP A CHARACTER FROM THE BUFFER
122 000036 022701 000040 CMP #SPA,R1 ;IS THIS A BREAK CHARACTER?
123 000042 001426 BEQ FNDBC ;YES -- START DECODING LINE
124 000044 022701 000015 CMP #CR,R1 ;NO -- IS IT A CARRAGE RETURN?
125 000050 001404 BEQ SYNER4 ;YES -- SYNTAX ERROR
126 000052 022701 000033 CMP #AM,R1 ;NO -- IS IT AN ALTMODE?
127 000056 001401 BEQ SYNER4 ;YES -- SYNTAX ERROR
128 000060 000765 BR REDSL ;NO -- THEN IT IS AN NBC
129 ;
130 000062 000167 000666 SYNER4: JMP SYNER
131 ;
132 000066 MCRER1: DIR$ #QIOWMC ;PROMPT
000066 012746 002162' MOV #QIOWMC,-(SP)
000072 104375 EMT 375
133 000074 DIR$ #QIORMC ;READ COMMAND LINE
000074 012746 002210' MOV #QIORMC,-(SP)
000100 104375 EMT 375
134 000102 012700 001260' MOV #MCRBH,R0 ;POINT TO THE COMMAND LINE
135 000106 016701 002232 MOV STATUS+2,R1 ;SET THE TERMINATING CHAR IN BUFFER
136 000112 116761 002225 001260' MOVB STATUS+1,MCRBH(R1)
137 ;
138 ;
139 000120 112067 001254 FNDBC: MOVB (R0)+,NEWDEV ;PICK UP THE DEVICE NAME (NEW DEVICE
140 000124 112067 001251 MOVB (R0)+,NEWDEV+1 ;BOTH CHARACTERS
141 000130 012703 001414' MOV #NEWUNA,R3 ;SAVE THE ASCII
142 000134 CALL PC,GETVAL ;FIND THE UNIT NUMBER
000134 004767 001044 JSR PC,GETVAL
143 000140 120127 000072 CMPB R1,#': ;ALLOW COLON AFTER DEVICE
144 000144 001001 BNE 1$
145 000146 112001 MOVB (R0)+,R1 ;MOVE PAST COLON
146 000150 120127 000075 1$: CMPB R1,#'= ;IS THE CHARACTER AN =?
147 000154 001051 BNE SYNER7 ;NO -- NEITHER = OR _ THEREFORE SYNTAX ERROR
148 000156 010267 001222 10$: MOV R2,NEWUNT ;YES -- SAVE THE NEW UNIT NUMBER
149 000162 112067 001214 MOVB (R0)+,OLDDEV ;SAVE THE OLD DEVICE NAME
150 000166 112067 001211 MOVB (R0)+,OLDDEV+1
151 000172 012703 001417' MOV #OLDUNA,R3 ;SAVE THE ASCII DEVICE NAME
152 000176 CALL PC,GETVAL ;GET THE UNIT NUMBER OF THE OLD DEVICE
000176 004767 001002 JSR PC,GETVAL
153 000202 010267 001200 MOV R2,OLDUNT ;SAVE THE OLD UNIT NUMBER
154 000206 120127 000072 CMPB R1,#': ;ALLOW COLON AFTER DEVICE
155 000212 001001 BNE 2$
156 000214 112001 MOVB (R0)+,R1 ;MOVE PAST COLON
157 000216 120127 000015 2$: CMPB R1,#CR ;IS THE TERMINATING CHARACTER A CARRTN?
158 000222 001403 BEQ SYNOK ;YES -- SYNTAX IS OK
159 000224 120127 000033 CMPB R1,#AM ;NO -- IS IT ALTMODE?
160 000230 001021 BNE SYNER8 ;NO -- SYNTAX ERROR
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-1
REDIRECT -- TASK CODE
161 000232 012700 000000G SYNOK: MOV #.PUDBA,R0 ;YES -- FIND THE BEGINNING OF THE PUD
162 000236 026067 000000G 001134 COTSCN: CMP U.DN(R0),NEWDEV ;SEARCH FOR A MATCH
163 000244 001431 BEQ FNDNEW ;FOUND MATCH ON NEW UNIT
164 000246 026067 000000G 001126 CNTSCN: CMP U.DN(R0),OLDDEV ;SEARCH FOR MATCH ON OLD UNIT ALSO
165 000254 001413 BEQ FNDOLD ;FOUND OLD UNIT MATCH
166 000256 062700 000000G CNTNXT: ADD #U.SZ,R0 ;ADD THE PUD SIZE TO POINTER FOR NEXT ENTRY
167 000262 020027 000000G CMP R0,#.PUDEA ;IS THIS THE END OF THE TABLE?
168 000266 001363 BNE COTSCN ;NO -- CONTINUE SCAN
169 000270 000167 000474 JMP NTFND ;YES -- CAN'T FIND BOTH ENTRIES
170 ;
171 000274 000167 000432 SYNER8: JMP SYNER2
172 000300 000167 000366 SYNER7: JMP SYNER1
173 ;
174 000304 126067 000000G 001074 FNDOLD: CMPB U.UN(R0),OLDUNT ;DO THE UNITS MATCH?
175 000312 001361 BNE CNTNXT ;NO -- CONTINUE SCAN
176 000314 010067 001072 MOV R0,OLDADR ;YES -- SAVE THE PUD POINTER
177 000320 005767 001064 TST NEWADR ;HAVE WE FOUND BOTH?
178 000324 001015 BNE FNDBTH ;YES -- STOP SCAN
179 000326 000753 BR CNTNXT ;NO -- CONTINUE SCAN
180 ;
181 000330 126067 000000G 001046 FNDNEW: CMPB U.UN(R0),NEWUNT ;DO THE UNITS MATCH?
182 000336 001343 BNE CNTSCN ;NO -- CONTINUE SCAN
183 000340 005760 000026 TST U.VA(R0) ;MOUNTED ?
184 000344 001546 BEQ NOTMNT ;BRANCH IF NOT
185 000346 010067 001036 MOV R0,NEWADR ;YES -- SAVE THE PUD POINTER
186 000352 005767 001034 TST OLDADR ;FOUND BOTH?
187 000356 001733 BEQ CNTSCN ;NO -- CONTINUE SCAN
188 000360 016700 001026 FNDBTH: MOV OLDADR,R0 ;SAVE REDIRECTED ADDRESS
189 000364 016004 000000G MOV U.RP(R0),R4
190 000370 012700 000000G MOV #.PUDBA,R0 ;YES -- SEARCH PUD FOR ENTRIES REDIRECTED TO OLD
191 000374 026067 000000G 001010 RDLP: CMP U.RP(R0),OLDADR ;AND CHANGE TO THE NEW UNIT
192 000402 001003 BNE RDNXT ;NO MATCH -- DON'T UPDATE REDIRECT POINTER
193 000404 016760 001000 000000G MOV NEWADR,U.RP(R0) ;YES -- SET UP A NEW REDIRECT POINTER
194 000412 062700 000000G RDNXT: ADD #U.SZ,R0 ;LOOK AT THE NEXT ENTRY
195 000416 022700 000000G CMP #.PUDEA,R0 ;AT THE END OF THE TABLE?
196 000422 001364 BNE RDLP ;NO -- CONTINUE SCAN
197 000424 022767 054523 000750 CMP #"SY,OLDDEV ;OLD DEVICE SY?
198 000432 001100 BNE 40$ ;NO -- FORGET IT
199 000434 016401 000000G MOV U.ACP(R4),R1 ;FIND THE ACP STD ADDRESS
200 000440 005211 INC @R1 ;CHANGE THE NAME OF THE FCP TASK
201 000442 016700 000744 MOV OLDADR,R0 ;YES -- REDIRECT THE OLD PUD
202 000446 005264 000000G INC U.DACP(R4) ;UPDATE ACP
203 000452 016705 000732 MOV NEWADR,R5
204 000456 010560 000000G 3$: MOV R5,U.RP(R0)
205 000462 005067 001630 CLR COUNT ; [TCO 4.2250] SET THE TIMEOUT COUNT TO ZERO
206 000466 010146 MOV R1,-(SP) ;SAVE STD ADDRESS
207 000470 DIR$ #F11RQ ;REQUEST NEW F11ACP
000470 012746 002320' MOV #F11RQ,-(SP)
000474 104375 EMT 375
208 000476 5$: WSIG$S ;WAIT A WHILE
000476 012746 MOV (PC)+,-(SP)
000500 061 001 .BYTE 49.,1
000502 104375 EMT 375
209 000504 012701 002336' MOV #F11NM,R1 ;SEARCH FOR F11ACP TO BE INSTALLED
210 000510 CALL ..FSTD ;SEARCH
000510 004767 000000G JSR PC,..FSTD
211 000514 001011 BNE 10$ ;FOUND IT -- NOW CAN WORK
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-2
REDIRECT -- TASK CODE
212 000516 005367 001574 7$: DEC COUNT
213 000522 001365 BNE 5$
214 000524 8$: DIR$ #VOLMS
000524 012746 002006' MOV #VOLMS,-(SP)
000530 104375 EMT 375
215 000532 005364 000000G DEC U.DACP(R4)
216 000536 000446 BR EXITA ;AND EXIT
217
218 ;
219 000540 032762 000000G 000000G 10$: BIT #SF.IR,S.FW(R2) ;REALLY INSTALLED YET?
220 000546 001363 BNE 7$ ;NOPE -- CONTINUE WAITING
221 000550 042762 000000G 000000G BIC #SF.EX,S.FW(R2) ;CLEAR THE REMOVEON EXIT FLAG
222 000556 005364 000000G DEC U.DACP(R4) ;RESET NAME
223 000562 012600 MOV (SP)+,R0 ;RESTORE OLD STD ADDRESS
224 000564 012705 000000G MOV #.PUDBA,R5 ;SET UP ALL THE STD ADDRESSES
225 000570 026500 000000G 20$: CMP U.ACP(R5),R0 ;CORRECT ACP?
226 000574 001002 BNE 30$
227 000576 010265 000000G MOV R2,U.ACP(R5) ;YES -- SET NEW ACP STD ADDRESS
228 000602 062705 000000G 30$: ADD #U.SZ,R5 ;LOOK AT THE NEXT PUD ENTRY
229 000606 022705 000000G CMP #.PUDEA,R5 ;END?
230 000612 101366 BHI 20$ ;NO -- TRY NEXT ONE
231 000614 052760 000000G 000000G BIS #SF.EX,S.FW(R0) ;SET REMOVE ON EXIT FOR OLD ONE
232 000622 005267 001474 INC F11RQ+2 ;RUN THIS ONE SO IT GETS REMOVED
233 000626 DIR$ #F11RQ
000626 012746 002320' MOV #F11RQ,-(SP)
000632 104375 EMT 375
234 000634 016700 000550 40$: MOV NEWADR,R0 ;CHECK FOR HANDLER RESIDENT
235 000640 005760 000000G TST U.HA(R0)
236 000644 001003 BNE EXITA ;YES -- NO WARNING MESSAGE
237 000646 012746 001422' MOV #HNRMSG,-(SP) ;PRINT WARNING MESSAGE
238 000652 104375 EXITMS: EMT 375
239 000654 012746 000463 EXITA: MOV #EXIT,-(SP) ;EXIT
240 000660 104375 EMT 375
241 000662 NOTMNT: DIR$ #VOLNM ;NOT MOUNTED MESSAGE
000662 012746 001502' MOV #VOLNM,-(SP)
000666 104375 EMT 375
242 000670 000771 BR EXITA
243 ;
244 000672 116767 000502 001011 SYNER1: MOVB NEWDEV,SYNDEV ;SET UP TO PRINT THE DEVICE NAME
245 000700 116767 000475 001004 MOVB NEWDEV+1,SYNDEV+1
246 000706 012703 001404' MOV #NEWUNTA,R3 ;SET UP TO FIND THE UNIT NUMBER
247 000712 012702 001713' SYNCOM: MOV #SYNUNT,R2 ;SET UP THE BUFFER POINTER TO UNIT
248 000716 012746 002116' MOV #SYNMS1,-(SP) ;PUSH THE DPB ADDRESS
249 000722 112322 MOVB (R3)+,(R2)+ ;MOVE IN THE UNIT NUMBER
250 000724 112322 MOVB (R3)+,(R2)+
251 000726 112322 MOVB (R3)+,(R2)+
252 000730 000750 BR EXITMS ;PRINT THE MESSAGE AND WAIT
253 ;
254 000732 116767 000444 000751 SYNER2: MOVB OLDDEV,SYNDEV ;SET UP THE DEVICE NAME
255 000740 116767 000437 000744 MOVB OLDDEV+1,SYNDEV+1
256 000746 012703 001417' MOV #OLDUNA,R3 ;AND UNIT NUMBER
257 000752 000757 BR SYNCOM ;AND PRINT THE MESSAGE
258 000754 012746 001640' SYNER: MOV #SYNMSG,-(SP) ;PRINT SYNTAX ERROR
259 000760 000734 BR EXITMS ;WAIT FOR MESSAGE AND EXIT
260 ;
261 ;
262 000762 012746 002230' MCRERR: MOV #MCRERM,-(SP) ;WRITE MCR ERROR
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-3
REDIRECT -- TASK CODE
263 000766 000731 BR EXITMS ;AND EXIT
264 ;
265 000770 005767 000414 NTFND: TST NEWADR ;DIDN'T FIND A MATCH IS IT NEW?
266 000774 001005 BNE NTFNDO ;NO -- MUST BE OLD WE DIDN'T FIND
267 000776 016700 000376 MOV NEWDEV,R0 ;YES -- PRINT DEVICE NAME AND UNIT
268 001002 016701 000376 MOV NEWUNT,R1 ;ON ERROR MESSAGE TTY
269 001006 000404 BR OUTPUU ;BRANCH TO COMMON ERROR ROUTINE
270 ;
271 001010 016700 000366 NTFNDO: MOV OLDDEV,R0 ;PICK UP THE OLD UNIT NUMBER
272 001014 016701 000366 MOV OLDUNT,R1 ;AND DEVICE NAME
273 001020 010067 000716 OUTPUU: MOV R0,INCMSG ;STORE THE DEVICE NAME
274 001024 012702 001744' MOV #INCMSG+2,R2 ;SET UP TO STORE THE UNIT NUMBER
275 000012 .REPT 10.
276 ROL R1
277 ROL R0
278 .ENDR
001030 006101 ROL R1
001032 006100 ROL R0
001034 006101 ROL R1
001036 006100 ROL R0
001040 006101 ROL R1
001042 006100 ROL R0
001044 006101 ROL R1
001046 006100 ROL R0
001050 006101 ROL R1
001052 006100 ROL R0
001054 006101 ROL R1
001056 006100 ROL R0
001060 006101 ROL R1
001062 006100 ROL R0
001064 006101 ROL R1
001066 006100 ROL R0
001070 006101 ROL R1
001072 006100 ROL R0
001074 006101 ROL R1
001076 006100 ROL R0
279 001100 042700 177770 BIC #177770,R0 ;MASK OFF GARGAGE
280 001104 005700 TST R0 ;ZERO SUPPRESS
281 001106 001403 BEQ OUTP1
282 001110 052700 000060 BIS #60,R0 ;MAKE OCTAL
283 001114 110022 MOVB R0,(R2)+ ;STORE DIGIT
284 001116 006101 OUTP1: ROL R1
285 001120 006100 ROL R0
286 001122 006101 ROL R1
287 001124 006100 ROL R0
288 001126 006101 ROL R1
289 001130 006100 ROL R0
290 001132 042700 177770 BIC #177770,R0 ;MASK OFF GARBAGE
291 001136 005700 TST R0 ;ZERO SUPPRESS
292 001140 001403 BEQ OUTP2
293 001142 052700 000060 BIS #60,R0 ;MAKE OCTAL
294 001146 110022 MOVB R0,(R2)+ ;STORE
295 001150 006101 OUTP2: ROL R1
296 001152 006100 ROL R0
297 001154 006101 ROL R1
298 001156 006100 ROL R0
299 001160 006101 ROL R1
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-4
REDIRECT -- TASK CODE
300 001162 006100 ROL R0
301 001164 042700 177770 BIC #177770,R0 ;MASK OFF GARBAGE
302 001170 052700 000060 BIS #60,R0 ;NO SUPPRESS
303 001174 110022 MOVB R0,(R2)+ ;STORE
304 001176 012746 002140' MOV #IDVERR,-(SP) ;PRINT MESSAGE
305 001202 000623 BR EXITMS
306 ;
307 ;
308 ; GETVAL -- ROUTINE TO PICK UP A UNIT NUMBER
309 ; CALLING SEQUENCE:
310 ; R0 -- LINE BUFFER POINTER
311 ; R3 -- POINTER TO SAVE AREA FOR UNTI NUMBER
312 ; JSR PC,GETVAL
313 ;
314 ; EXIT CONDITIONS
315 ; R0 -- POINTER TO NEXT CHARACTER IN BUFFER
316 ; R2 -- OCTAL NUMBER
317 ;
318 001204 012704 000004 GETVAL: MOV #4.,R4 ;3 OCTAL DIGITS MAX
319 001210 005002 CLR R2 ;DEFAULT IS 0
320 001212 112001 NXTDIG: MOVB (R0)+,R1 ;PICK UP A CHARACTER
321 001214 122701 000057 CMPB #57,R1 ;IS IT LT 60?
322 001220 100015 BPL VALEND ;YES -- END OF DIGIT
323 001222 122701 000067 CMPB #67,R1 ;IS IT GT 67?
324 001226 100412 BMI VALEND ;YES -- END OF DIGIT
325 001230 110123 MOVB R1,(R3)+ ;SAVE THE ASCII CHARACTER
326 001232 042701 177770 BIC #177770,R1 ;CONVERT TO OCTAL
327 001236 006302 ASL R2
328 001240 006302 ASL R2
329 001242 006302 ASL R2
330 001244 042702 000007 BIC #7,R2 ;CLEAR OUT JUNK
331 001250 074102 XOR R1,R2 ;MOVE IN NEW DIGIT
332 001252 077421 SOB R4,NXTDIG ;END OF SCAN?
333 001254 VALEND: RETURN PC ;YES RETURN TO CALLER
001254 000207 RTS PC
334 ;
335 ; TEMP STORAGE
336 ;
337 001256 024577 RDMCR: .WORD RDMCB
338 001260 MCRBH: .BLKB 80. ;MCR COMMAND BUFFER
339 001400 040 040 NEWDEV: .ASCII / / ;NEW DEVICE NAME
340 001402 040 040 OLDDEV: .ASCII / / ;OLD DEVICE NAME
341 001404 NEWUNT: .BLKW 1 ;NEW UNIT NUMBER
342 001406 OLDUNT: .BLKW 1 ;OLD UNIT NUMBER
343 001410 NEWADR: .BLKW 1 ;ADDRESS OF NEW PUD
344 001412 OLDADR: .BLKW 1 ;ADDRESS OF OLD PUD
345 001414 040 040 040 NEWUNA: .ASCII / /
346 001417 040 040 040 OLDUNA: .ASCII / / ;ASCII SAVE AREA FOR UNIT NUMBER
347 ;
348 ; DIRECTIVES AND MESSAGES
349 ;
350 ;
351 001422 HNRMSG: .QIO WRIT,LUN,EFN1,0,0,0,HNRBF,HNRSZ
001422 003 011 .BYTE IO,9.
001424 000400 .WORD WRIT
001426 000002 .WORD LUN
001430 001 000 .BYTE EFN1,0
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-5
REDIRECT -- TASK CODE
001432 000000 .WORD 0
001434 000000 .WORD 0
001436 001444' .WORD HNRBF
001440 000036 .WORD HNRSZ
001442 000040 .WORD 40
352 ;
353 001444 122 105 104 HNRBF: .ASCII /RED /
001447 040
354 001450 000000 HNRDEV: .WORD 0
355 001452 040 055 055 .ASCII / -- HANDLER NOT RESIDENT/
001455 040 110 101
001460 116 104 114
001463 105 122 040
001466 116 117 124
001471 040 122 105
001474 123 111 104
001477 105 116 124
356 .EVEN
357 000036 HNRSZ=.-HNRBF
358 ;
359 001502 VOLNM: .QIO WRIT,LUN,EFN1,0,0,0,VNMSG,VNSZ
001502 003 011 .BYTE IO,9.
001504 000400 .WORD WRIT
001506 000002 .WORD LUN
001510 001 000 .BYTE EFN1,0
001512 000000 .WORD 0
001514 000000 .WORD 0
001516 001524' .WORD VNMSG
001520 000031 .WORD VNSZ
001522 000040 .WORD 40
360 ;
361 001524 122 105 104 VNMSG: .ASCII /RED -- NEW SY NOT MOUNTED/
001527 040 055 055
001532 040 116 105
001535 127 040 123
001540 131 040 116
001543 117 124 040
001546 115 117 125
001551 116 124 105
001554 104
362 000031 VNSZ=.-VNMSG
363 .EVEN
364 ;
365 ;
366 001556 SECMSG: .QIO WRIT,LUN,EFN1,0,0,0,SECBF,SECSZ
001556 003 011 .BYTE IO,9.
001560 000400 .WORD WRIT
001562 000002 .WORD LUN
001564 001 000 .BYTE EFN1,0
001566 000000 .WORD 0
001570 000000 .WORD 0
001572 001600' .WORD SECBF
001574 000037 .WORD SECSZ
001576 000040 .WORD 40
367 ;
368 001600 122 105 104 SECBF: .ASCII /RED -- PRIMARY PROTOCOL RUNNING/
001603 040 055 055
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-6
REDIRECT -- TASK CODE
001606 040 120 122
001611 111 115 101
001614 122 131 040
001617 120 122 117
001622 124 117 103
001625 117 114 040
001630 122 125 116
001633 116 111 116
001636 107
369 000037 SECSZ=.-SECBF
370 .EVEN
371 ;
372 ;
373 001640 SYNMSG: .QIO WRIT,LUN,EFN1,0,0,0,SYNBF,SYNSZ
001640 003 011 .BYTE IO,9.
001642 000400 .WORD WRIT
001644 000002 .WORD LUN
001646 001 000 .BYTE EFN1,0
001650 000000 .WORD 0
001652 000000 .WORD 0
001654 001662' .WORD SYNBF
001656 000023 .WORD SYNSZ
001660 000040 .WORD 40
374 ;
375 001662 122 105 104 SYNBF: .ASCII /RED -- SYNTAX ERROR/
001665 040 055 055
001670 040 123 131
001673 116 124 101
001676 130 040 105
001701 122 122 117
001704 122
376 000023 SYNSZ=.-SYNBF
377 ;
378 001705 122 105 104 SYNBF1: .ASCII /RED /
001710 040
379 001711 040 040 SYNDEV: .ASCII / /
380 001713 040 040 040 SYNUNT: .ASCII / /
381 001716 040 055 055 .ASCII / -- SYNTAX ERROR/
001721 040 123 131
001724 116 124 101
001727 130 040 105
001732 122 122 117
001735 122
382 ;
383 000031 SYNSZ1=.-SYNBF1
384 ;
385 001736 122 105 104 INCMS: .ASCII /RED /
001741 040
386 001742 040 040 040 INCMSG: .ASCII / /
001745 040 040
387 001747 040 055 055 .ASCII / -- DEVICE NOT KNOWN TO SYSTEM/
001752 040 104 105
001755 126 111 103
001760 105 040 116
001763 117 124 040
001766 113 116 117
001771 127 116 040
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-7
REDIRECT -- TASK CODE
001774 124 117 040
001777 123 131 123
002002 124 105 115
388 000047 INCSZ=.-INCMS
389 .EVEN
390 002006 VOLMS: .QIO WRIT,LUN,EFN1,0,0,0,VOLMSG,VOLMSZ
002006 003 011 .BYTE IO,9.
002010 000400 .WORD WRIT
002012 000002 .WORD LUN
002014 001 000 .BYTE EFN1,0
002016 000000 .WORD 0
002020 000000 .WORD 0
002022 002030' .WORD VOLMSG
002024 000065 .WORD VOLMSZ
002026 000040 .WORD 40
391 ;
392 002030 106 061 061 VOLMSG: .ASCII /F11ACP NOT FOUND ON SYSTEM/<12><15>
002033 101 103 120
002036 040 116 117
002041 124 040 106
002044 117 125 116
002047 104 040 117
002052 116 040 123
002055 131 123 124
002060 105 115 012
002063 015
393 002064 123 131 123 .ASCII /SYSTEM MUST BE RELOADED/<12><15>
002067 124 105 115
002072 040 115 125
002075 123 124 040
002100 102 105 040
002103 122 105 114
002106 117 101 104
002111 105 104 012
002114 015
394 000065 VOLMSZ=.-VOLMSG
395 .EVEN
396 ;
397 ;
398 002116 SYNMS1: .QIO WRIT,LUN,EFN1,0,0,0,SYNBF1,SYNSZ1
002116 003 011 .BYTE IO,9.
002120 000400 .WORD WRIT
002122 000002 .WORD LUN
002124 001 000 .BYTE EFN1,0
002126 000000 .WORD 0
002130 000000 .WORD 0
002132 001705' .WORD SYNBF1
002134 000031 .WORD SYNSZ1
002136 000040 .WORD 40
399 ;
400 002140 IDVERR: .QIO WRIT,LUN,EFN1,0,0,0,INCMS,INCSZ
002140 003 011 .BYTE IO,9.
002142 000400 .WORD WRIT
002144 000002 .WORD LUN
002146 001 000 .BYTE EFN1,0
002150 000000 .WORD 0
002152 000000 .WORD 0
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-8
REDIRECT -- TASK CODE
002154 001736' .WORD INCMS
002156 000047 .WORD INCSZ
002160 000040 .WORD 40
401 ;
402 002162 QIOWMC: QIOW$ IO.WLB,LUN,EFN1,0,0,0,<MCMS,MCSZ,0>
002162 003 011 .BYTE 3,$$$ARG
002164 000000G .WORD IO.WLB
002166 000002 .WORD LUN
002170 001 000 .BYTE EFN1,0
002172 000000 .WORD 0
002174 000000 .WORD 0
002176 002204' .WORD MCMS
002200 000004 .WORD MCSZ
002202 000000 .WORD 0
403 ;
404 002204 122 105 104 MCMS: .ASCII /RED>/
002207 076
405 000004 MCSZ=.-MCMS
406 .EVEN
407 ;
408 002210 QIORMC: QIOW$ IO.RLB,LUN,EFN1,0,STATUS,0,<MCRBH,80.>
002210 003 010 .BYTE 3,$$$ARG
002212 000000G .WORD IO.RLB
002214 000002 .WORD LUN
002216 001 000 .BYTE EFN1,0
002220 002342' .WORD STATUS
002222 000000 .WORD 0
002224 001260' .WORD MCRBH
002226 000120 .WORD 80.
409 ;
410 ;
411 002230 MCRERM: .QIO WRIT,LUN,EFN1,0,0,0,MCREMS,MCRBSZ
002230 003 011 .BYTE IO,9.
002232 000400 .WORD WRIT
002234 000002 .WORD LUN
002236 001 000 .BYTE EFN1,0
002240 000000 .WORD 0
002242 000000 .WORD 0
002244 002252' .WORD MCREMS
002246 000044 .WORD MCRBSZ
002250 000040 .WORD 40
412 002252 122 105 104 MCREMS: .ASCII /RED -- CAN'T READ MCR COMMAND BUFFER/
002255 040 055 055
002260 040 103 101
002263 116 047 124
002266 040 122 105
002271 101 104 040
002274 115 103 122
002277 040 103 117
002302 115 115 101
002305 116 104 040
002310 102 125 106
002313 106 105 122
413 000044 MCRBSZ=.-MCREMS
414 .EVEN
415 ;
416 002316 000000 COUNT: .WORD 0
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-9
REDIRECT -- TASK CODE
417 002320 F11RQ: RQST$ F11ACP
002320 013 007 .BYTE 11.,7
002322 025167 003310 .RAD50 /F11ACP/
002326 000000 000000 .WORD 0,0
002332 000000 .WORD
002334 000 000 .BYTE ,
418 002336 025167 003310 F11NM: .RAD50 /F11ACP/
419 002342 STATUS: .BLKW 2
420 000000' .END REDIR
REDIRECT MACRO M1113 14-APR-81 10:37 PAGE 4-10
SYMBOL TABLE
AM = 000033 INCSZ = 000047 OLDUNT 001406R SECBF 001600R U.ACP = ****** GX
CNTNXT 000256R IO = 000003 OUTPUU 001020R SECMSG 001556R U.DACP= ****** GX
CNTSCN 000246R IO.RLB= ****** GX OUTP1 001116R SECSZ = 000037 U.DN = ****** GX
COTSCN 000236R IO.WLB= ****** GX OUTP2 001150R SF.EX = ****** GX U.HA = ****** GX
COUNT 002316R LF = 000012 QIORMC 002210R SF.IR = ****** GX U.RP = ****** GX
CR = 000015 LUN = 000002 QIOWMC 002162R SPA = 000040 U.SZ = ****** GX
EFN1 = 000001 MCMS 002204R Q.IOAE= 000012 STATUS 002342R U.UN = ****** GX
EF.PR1= ****** GX MCRBH 001260R Q.IOEF= 000006 SYNBF 001662R U.VA = 000026
EXIT = 000463 MCRBSZ= 000044 Q.IOFN= 000002 SYNBF1 001705R VALEND 001254R
EXITA 000654R MCREMS 002252R Q.IOLU= 000004 SYNCOM 000712R VNMSG 001524R
EXITMS 000652R MCRERM 002230R Q.IOPL= 000014 SYNDEV 001711R VNSZ = 000031
FNDBC 000120R MCRERR 000762R Q.IOPR= 000007 SYNER 000754R VOLMS 002006R
FNDBTH 000360R MCRER1 000066R Q.IOSB= 000010 SYNER1 000672R VOLMSG 002030R
FNDNEW 000330R MCSZ = 000004 RDLP 000374R SYNER2 000732R VOLMSZ= 000065
FNDOLD 000304R NEWADR 001410R RDMCB = 024577 SYNER4 000062R VOLNM 001502R
F11NM 002336R NEWDEV 001400R RDMCR 001256R SYNER7 000300R WRIT = 000400
F11RQ 002320R NEWUNA 001414R RDNXT 000412R SYNER8 000274R $$ = 000067
GETVAL 001204R NEWUNT 001404R REDIR 000000RG SYNMSG 001640R $$$ARG= 000010
HNRBF 001444R NOTMNT 000662R REDSL 000034R SYNMS1 002116R $$$OST= 000016
HNRDEV 001450R NTFND 000770R R.QSGC= 000015 SYNOK 000232R $$$T1 = 000000
HNRMSG 001422R NTFNDO 001010R R.QSPC= 000014 SYNSZ = 000023 .COMEF= ****** GX
HNRSZ = 000036 NXTDIG 001212R R.QSPN= 000006 SYNSZ1= 000031 .PUDBA= ****** GX
IDVERR 002140R OLDADR 001412R R.QSPR= 000012 SYNUNT 001713R .PUDEA= ****** GX
INCMS 001736R OLDDEV 001402R R.QSTN= 000002 S.FW = ****** GX ..FSTD= ****** GX
INCMSG 001742R OLDUNA 001417R
. ABS. 000000 000
002346 001
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 2369 WORDS ( 10 PAGES)
DYNAMIC MEMORY: 3574 WORDS ( 13 PAGES)
ELAPSED TIME: 00:00:16
[47,10]RED,[47,20]RED/-SP/CR=[47,30]RED
RED CREATED BY MACRO ON 14-APR-81 AT 10:37 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
AM = 000033 #3-107 4-126 4-159
CNTNXT 000256 R #4-166 4-175 4-179
CNTSCN 000246 R #4-164 4-182 4-187
COTSCN 000236 R #4-162 4-168
COUNT 002316 R *4-205 *4-212 #4-416
CR = 000015 #3-105 4-124 4-157
EFN1 = 000001 #3-102 4-351 4-359 4-366 4-373 4-390 4-398 4-400 4-402
4-408 4-411
EF.PR1 = ****** GX 4-112
EXIT = 000463 #3-100 4-239
EXITA 000654 R 4-216 4-236 #4-239 4-242
EXITMS 000652 R 4-115 #4-238 4-252 4-259 4-263 4-305
FNDBC 000120 R 4-123 #4-139
FNDBTH 000360 R 4-178 #4-188
FNDNEW 000330 R 4-163 #4-181
FNDOLD 000304 R 4-165 #4-174
F11NM 002336 R 4-209 #4-418
F11RQ 002320 R 4-207 *4-232 4-233 #4-417
GETVAL 001204 R 4-142 4-152 #4-318
HNRBF 001444 R 4-351 #4-353 4-357
HNRDEV 001450 R #4-354
HNRMSG 001422 R 4-237 #4-351
HNRSZ = 000036 4-351 #4-357
IDVERR 002140 R 4-304 #4-400
INCMS 001736 R #4-385 4-388 4-400
INCMSG 001742 R *4-273 4-274 #4-386
INCSZ = 000047 #4-388 4-400
IO = 000003 #3-101 4-351 4-359 4-366 4-373 4-390 4-398 4-400 4-411
IO.RLB = ****** GX 4-408
IO.WLB = ****** GX 4-402
LF = 000012 #3-106
LUN = 000002 #3-104 4-351 4-359 4-366 4-373 4-390 4-398 4-400 4-402
4-408 4-411
MCMS 002204 R 4-402 #4-404 4-405
MCRBH 001260 R 4-120 4-134 *4-136 #4-338 4-408
MCRBSZ = 000044 4-411 #4-413
MCREMS 002252 R 4-411 #4-412 4-413
MCRERM 002230 R 4-262 #4-411
MCRERR 000762 R #4-262
MCRER1 000066 R 4-119 #4-132
MCSZ = 000004 4-402 #4-405
NEWADR 001410 R 4-177 *4-185 4-193 4-203 4-234 4-265 #4-343
NEWDEV 001400 R *4-139 *4-140 4-162 4-244 4-245 4-267 #4-339
NEWUNA 001414 R 4-141 #4-345
NEWUNT 001404 R *4-148 4-181 4-246 4-268 #4-341
NOTMNT 000662 R 4-184 #4-241
NTFND 000770 R 4-169 #4-265
NTFNDO 001010 R 4-266 #4-271
NXTDIG 001212 R #4-320 4-332
OLDADR 001412 R *4-176 4-186 4-188 4-191 4-201 #4-344
OLDDEV 001402 R *4-149 *4-150 4-164 4-197 4-254 4-255 4-271 #4-340
OLDUNA 001417 R 4-151 4-256 #4-346
RED CREATED BY MACRO ON 14-APR-81 AT 10:37 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
OLDUNT 001406 R *4-153 4-174 4-272 #4-342
OUTPUU 001020 R 4-269 #4-273
OUTP1 001116 R 4-281 #4-284
OUTP2 001150 R 4-292 #4-295
QIORMC 002210 R 4-133 #4-408
QIOWMC 002162 R 4-132 #4-402
Q.IOAE = 000012 #4-402 #4-408
Q.IOEF = 000006 #4-402 #4-408
Q.IOFN = 000002 #4-402 #4-408
Q.IOLU = 000004 #4-402 #4-408
Q.IOPL = 000014 #4-402 #4-408
Q.IOPR = 000007 #4-402 #4-408
Q.IOSB = 000010 #4-402 #4-408
RDLP 000374 R #4-191 4-196
RDMCB = 024577 #3-98 4-337
RDMCR 001256 R 4-117 #4-337
RDNXT 000412 R 4-192 #4-194
REDIR 000000 RG #4-112 4-420
REDSL 000034 R #4-121 4-128
R.QSGC = 000015 #4-417
R.QSPC = 000014 #4-417
R.QSPN = 000006 #4-417
R.QSPR = 000012 #4-417
R.QSTN = 000002 #4-417
SECBF 001600 R 4-366 #4-368 4-369
SECMSG 001556 R 4-114 #4-366
SECSZ = 000037 4-366 #4-369
SF.EX = ****** GX 4-221 4-231
SF.IR = ****** GX 4-219
SPA = 000040 #3-108 4-122
STATUS 002342 R 4-135 4-136 4-408 #4-419
SYNBF 001662 R 4-373 #4-375 4-376
SYNBF1 001705 R #4-378 4-383 4-398
SYNCOM 000712 R #4-247 4-257
SYNDEV 001711 R *4-244 *4-245 *4-254 *4-255 #4-379
SYNER 000754 R 4-130 #4-258
SYNER1 000672 R 4-172 #4-244
SYNER2 000732 R 4-171 #4-254
SYNER4 000062 R 4-125 4-127 #4-130
SYNER7 000300 R 4-147 #4-172
SYNER8 000274 R 4-160 #4-171
SYNMSG 001640 R 4-258 #4-373
SYNMS1 002116 R 4-248 #4-398
SYNOK 000232 R 4-158 #4-161
SYNSZ = 000023 4-373 #4-376
SYNSZ1 = 000031 #4-383 4-398
SYNUNT 001713 R 4-247 #4-380
S.FW = ****** GX 4-219 *4-221 *4-231
U.ACP = ****** GX 4-199 4-225 *4-227
U.DACP = ****** GX *4-202 *4-215 *4-222
U.DN = ****** GX 4-162 4-164
U.HA = ****** GX 4-235
RED CREATED BY MACRO ON 14-APR-81 AT 10:37 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
U.RP = ****** GX 4-189 4-191 *4-193 *4-204
U.SZ = ****** GX 4-166 4-194 4-228
U.UN = ****** GX 4-174 4-181
U.VA = 000026 #3-99 4-183
VALEND 001254 R 4-322 4-324 #4-333
VNMSG 001524 R 4-359 #4-361 4-362
VNSZ = 000031 4-359 #4-362
VOLMS 002006 R 4-214 #4-390
VOLMSG 002030 R 4-390 #4-392 4-394
VOLMSZ = 000065 4-390 #4-394
VOLNM 001502 R 4-241 #4-359
WRIT = 000400 #3-103 4-351 4-359 4-366 4-373 4-390 4-398 4-400 4-411
$$ = 000067 #4-142 4-142 #4-152 4-152 #4-210 4-210
$$$ARG = 000010 #4-402 4-402 #4-402 4-402 #4-402 4-402 #4-402 4-402 #4-408
4-408 #4-408 4-408 #4-408 4-408
$$$GLB = ****** 4-402 4-402 4-402 4-402 4-402 4-402 4-402 4-402 4-408
4-408 4-408 4-408 4-408 4-408 4-408 4-408 4-417 4-417
4-417 4-417 4-417 4-417
$$$OST = 000016 #4-402 4-402 4-402 #4-402 4-402 4-402 #4-402 4-402 4-402
#4-402 4-402 4-402 #4-402 4-402 4-402 #4-402 4-402 4-402
#4-402 4-402 #4-408 4-408 4-408 #4-408 4-408 4-408 #4-408
4-408 4-408 #4-408 4-408 4-408 #4-408 4-408 4-408 #4-408
4-408 4-408 #4-408 4-408 #4-417 4-417 4-417 #4-417 4-417
4-417 #4-417 4-417 4-417 #4-417 4-417 4-417 #4-417 4-417
4-417 #4-417
$$$T1 = 000000 #4-417 4-417 4-417 4-417 #4-417 4-417
.COMEF = ****** GX 4-112
.PUDBA = ****** GX 4-161 4-190 4-224
.PUDEA = ****** GX 4-167 4-195 4-229
..FSTD = ****** GX 4-210 4-210
RED CREATED BY MACRO ON 14-APR-81 AT 10:37 PAGE 4
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
ALUN$S #3-92
CALL #3-92 4-142 4-152 4-210
DIR$ #3-92 #4-132 #4-133 #4-207 #4-208 #4-208 #4-214 #4-233 #4-241
ERR$ #4-132 #4-133 #4-207 #4-208 #4-214 #4-233 #4-241
EXIT$S #3-92
OFF$ #4-402 #4-402 #4-402 #4-402 #4-402 #4-402 #4-402 #4-402 #4-402 #4-408
#4-408 #4-408 #4-408 #4-408 #4-408 #4-408 #4-408 #4-408 #4-417 #4-417
#4-417 #4-417 #4-417 #4-417 #4-417
QDPB$ #4-402 #4-402 #4-408 #4-408
QIOW$ #3-92 #4-402 #4-408
QIO$ #3-93
RETURN #3-92 4-333
RQST$ #3-92 4-417
R50$ #4-417 #4-417 #4-417
WSIG$S #3-92 #4-208
.CRASH #3-92
.INH #3-93
.QIO #3-80 4-351 4-359 4-366 4-373 4-390 4-398 4-400 4-411