Trailing-Edge
-
PDP-10 Archives
-
AP-4178E-RM
-
swskit-sources/instal.lis
There are no other files named instal.lis in the archive.
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03
TABLE OF CONTENTS
1- 2 TITLE PAGE
2- 42 MACROS AND PARAMETERS
3- 131 TASK DATA
4- 184 FIND THE TASK FILE
5- 317 INITIALIZE TASK FILE
6- 369 SETUP STD ENTRY
7- 477 SETUP LOGICAL UNIT TABLE FOR TASK
8- 595 RE-REQUEST TASK
9- 620 TASK FILE I/O ROUTINES
10- 709 ERROR PROCESSING
11- 799 END STATEMENT
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 1
1 .TITLE INSTAL -- TASK INSTALLER FOR RSX-20F
2 .SBTTL TITLE PAGE
3 .IDENT /010010/
4 ;
5 ; COPYRIGHT (C) 1975, 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 ; MODULE: INSTALL TASK FOR RSX-20F
22 ;
23 ; VERSION: 10-01
24 ;
25 ; AUTHOR: TOM PORCHER
26 ;
27 ; DATE: 1-OCT-75
28 ;
29 ;
30 ; THIS MODULE CONTAINS:
31 ;
32 ; -- CODE TO INSTALL A TASK IN RSX-20F
33 ;
34 ; MODIFICATIONS:
35 ;
36 ; NO. DATE PROGRAMMER PURPOSE
37 ; --- ---- ---------- -------
38 ; 001 14-MAR-77 R. BELANGER DEFINE THE END OF "INSTAL"
39 ; TO ALLOW DYNAMIC ALLOCATION
40 ; OF FREE POOL SPACE
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 2
MACROS AND PARAMETERS
42 .SBTTL MACROS AND PARAMETERS
43 ;
44 ; SETUP ASSEMBLY CONDITIONS
45 ;
46 .ENABLE AMA
47 .LIST MEB
48 ;
49 ; MISC. MCALL'S
50 ;
51 .MCALL QIOSY$,ALUN$S,QIOW$S,RCVX$S,RQST$S,WSIG$S,.INH0,.ENB0,CALL,RETURN,PUSH,POP,.STKM,$DEF
52 000000 $DEF
53 000000 QIOSY$
54 ;
55 ; MACROS
56 ;
57 .MACRO MSG A,B
58 .PSECT TEXT
59 $$$=.
60 .ASCIZ \B\
61 .PSECT
62 PUSH #$$$
63 CALL TYPMSG
64 .ENDM MSG
65 ;
66 .MACRO ERR A,B
67 MSG <A>,<B>
68 .ENDM ERR
69 ;
70 .MACRO ERRF A,B
71 ERR <A>,<B>
72 BR CLSFIL
73 .ENDM ERRF
74 ;
75 .MACRO ERRN A,B
76 ERR <A>,<B>
77 BR RETNOD
78 .ENDM ERRN
79 ;
80 ; PARAMETERS
81 ;
82 000062 DEFPRI= 50. ;DEFAULT TASK PRIORITY
83 ;
84 000050 U.SZ=50 ;LOCAL DEF OF U.SZ
85 000001 SF.TA=1 ;LOCAL DEF OF TASK ACTIVE
86 040000 SF.IR=40000 ;LOCAL DEF FOR INSTAL REQUESTED
87 ; LOGICAL UNIT NUMBER ASSIGNMENTS
88 ;
89 000001 CTYLUN= 1 ;FOR I/O TO THE CTY **** MUST BE UNIT 1 ****
90 000002 TSKLUN= 2 ;FOR I/O TO TASK IMAGE FILE
91 ;
92 ; EVENT FLAGS
93 ;
94 000001 E.FQIO= 1 ;WAIT FOR QUEUE I/O TO COMPLETE
95 000001 EF.QIO=BIT0
96 ;
97 ; HEADER BLOCK DEFINITIONS
98 ;
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 2-1
MACROS AND PARAMETERS
99 000076 H.IPC= 76 ;INITIAL PC
100 000100 H.ISP= 100 ;INITIAL SP
101 000130 H.NLUN= 130 ;NUMBER OF LUNS FOR TASK
102 000132 H.LUN= 132 ;START OF LUN TABLE AREA
103 ;
104 ; LABEL BLOCK DEFINITIONS
105 ;
106 000000 L$BTSK= 0 ;TASK NAME IN RAD50 (TWO WORDS)
107 000004 L$BPAR= 4 ;PARTITION NAME IN RAD50 (TWO WORDS)
108 000010 L$BFLG= 10 ;FLAG WORD
109 000012 L$BPRI= 12 ;DEFAULT TASK RUN PRIORITY
110 000014 L$BLDZ= 14 ;LOAD SIZE OF TASK IMAGE
111 000016 L$BMXZ= 16 ;MAX SIZE OF TASK
112 000020 L$BSA= 20 ;BASE ADDRESS OF TASK
113 000022 L$BHRB= 22 ;HEADER RELATIVE BLOCK IN TASK FILE
114 000024 L$BBLK= 24 ;# BLOCKS IN LABEL GROUP
115 ;
116 ; ACCESS CONTROL BITS
117 ;
118 000200 AC.ENA= BIT7 ;ENABLE ACCESS
119 ;
120 ; FILENAME BLOCK OFFSETS
121 ;
122 000000 N.FID= 0 ;FILE-ID / SEQUENCE #
123 000006 N.FNAM= 6 ;FILENAME IN RADIX 50 (3 WORDS)
124 000014 N.FTYP= 14 ;FILE TYPE IN RADIX 50
125 000016 N.FVER= 16 ;FILE VERSION NUMBER
126 000020 N.STAT= 20 ;FLAGS
127 000022 N.NEXT= 22 ;CONTEXT SAVE FOR .FIND
128 000024 N.DID= 24 ;DIRECTORY ID
129 000034 S.DRFN=34 ;WORDS OF FILE-NAME BLOCK USED FOR IO.FNA
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 3
TASK DATA
131 .SBTTL TASK DATA
132 ;
133 ; TASK HEADER AND STACK
134 ;
135 000000 INSHD:: .STKM 0,0,0,0,0,0,40,INSTAL,174000,INSTK
000046 000000 000000 000000 .WORD 0,0,0,0
000054 000000
000074 174000 000622' 000260' .WORD 174000,INSTAL,INSTK
000130 000005 .WORD 5
000132 000000G .WORD TTPEN
000134 000000 .WORD 0
000136 000000 .WORD 0
000140 000000 .WORD 0
000142 000000 .WORD 0
000144 000000 .WORD 0
000146 000000 .WORD 0
000150 000000 .WORD 0
000152 000000 .WORD 0
000154 000000 .WORD 0
000156 000000 .WORD 0
000260 000000 .WORD 0
000262 000000 .WORD 0
000264 000000 .WORD 0
000266 000000 .WORD 0
000270 000000 .WORD 0
000272 000000 .WORD 0
000274 000622' .WORD INSTAL
000276 174000 .WORD 174000
136 ;
137 .BLKB 40
138 000340 EXSP:
139 ;
140 ; LOCAL DATA
141 ;
142 000340 RCVBLK: .BLKW 2 ;RECEIVE DATA BUFFER: TRASH
143 000344 REQBLK: .BLKW 13. ;REQUEST BLOCK FROM EXEC
144 000356' STDADR=REQBLK+12 ;ADDRESS OF OUR SYSTEM TASK DIRECTORY ENTRY
145 000376 PUDADR: .BLKW 1 ;PUD ENTRY ADDRESS OF DEVICE WHERE TASK FILE WAS FOUND
146 000400 LBLBLK: .BLKW 1 ;CURRENT VIRTUAL BLOCK NUMBER TO READ LABEL GROUP
147 000402 LBLNUM: .BLKW 1 ;NUMBER OF BLOCKS IN LABEL GROUP
148 000404 LBLBUF: .BLKW 1 ;ADDRESS OF LABEL BUFFER
149 000406 LBLBFE: .BLKW 1 ;ADDRESS OF END OF BUFFER (LBLBUF)+512.
150 000410 HDRBLK: .BLKW 1 ;CURRENT VIRTUAL BLOCK NUMBER TO READ HEADER
151 000412 HDRBUF: .BLKW 1 ;ADDRESS OF HEADER BLOCK BUFFER
152 000414 HDRBFE: .BLKW 1 ;ADDRESS OF END OF HEADER BUFFER
153 000416 FILBLK: .BLKB S.DRFN ;FILE-NAME BLOCK FOR TASK IMAGE FILE
154 000452 FILADR: .BLKW 2 ;STATISTISTICS BLOCK: DISK ADDRESS
155 000456 QIOSTS: .BLKW 2 ;I/O STATUS
156 000462 TYPBUF: .BLKB 60. ;BUFFER FOR CTY OUTPUT
157 ;
158 ; PURE DATA
159 ;
160 000556 000000 000000 .EXEND:: .LIMIT ; +++001 DEFINE THE END OF RSX20F
161 ; +++001 "INSTLAL" MUST ALWAYS
162 ; +++001 BE THE LAST MODULE TO LOADED IN
163 ; +++001 THE TASK BUILD
164 ;
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 3-1
TASK DATA
165 000562 367 ATCBLK: .BYTE -9. ;ATTIBUTE CONTROL: STATISTICS BLOCK, READ
166 000563 004 .BYTE 4. ;4 BYTES OF INFO
167 000564 000452' .WORD FILADR ;WHERE TO INFO TO
168 000566 000 000 .BYTE 0,0 ;END OF ATTRIBUTE CONTROL BLOCK
169 ;
170 000570 001 MNTBLK: .BYTE 1 ;ACP CONTROL: MOUNT FUNCTION
171 000571 001 .BYTE 1 ;STRING LENGTH: 1
172 000572 000574' .WORD 1$ ;ADDRESS OF STRING
173 000574 072 1$: .ASCII /:/
174 .EVEN
175 ;
176 ; DEVICE CONVERSION TABLE
177 ;
178 000576 124 111 124 CNVTBL: .ASCII /TI//TT/
000601 124
179 000602 103 117 124 .ASCII /CO//TT/
000605 124
180 000606 103 111 124 .ASCII /CI//TT/
000611 124
181 000612 103 114 114 .ASCII /CL//LP/
000615 120
182 000616 000000 000000 .WORD 0,0
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 4
FIND THE TASK FILE
184 .SBTTL FIND THE TASK FILE
185 ;
186 ;
187 ; HERE ON A REQUEST TO INSTALL A TASK FROM THE EXECUTIVE
188 ;
189 ; A SEND DATA PACKET IS SENT TO THIS TASK .INST. IN REQUEST
190 ; FOR A TASK WHICH IS NOT CURRENTLY INSTALLED. THE PACKET
191 ; HAS THE FOLLOWING FORMAT:
192 ;
193 ; WORD 0 TASK NAME IN RADIX 50 FORMAT
194 ; 1 (SECOND HALF)
195 ; 2 PARTITION NAME IN RADIX 50 (IF SPECIFIED, OTHERWISE 0)
196 ; 3 (SECOND HALF)
197 ; 4 RUN PRIORITY (IF SPECIFIED, OTHERWISE 0)
198 ; 5 STD ADDRESS
199 ;
200 ;
201 ; GET THE PACKET, OR EXIT IF NOTHING TO DO
202 ;
203 000622 012706 000340' INSTAL::MOV #EXSP,SP ;;ADD EXTRA STACK SPACE
204 000626 RCVX$S ,#RCVBLK ;;GET THE REQUEST OR EXIT IF NONE
000626 012746 000340' MOV #RCVBLK,-(SP)
000632 005046 CLR -(SP)
000634 005046 CLR -(SP)
000636 012746 MOV (PC)+,-(SP)
000640 023 004 .BYTE 19.,$$$T1
000642 104375 EMT 375
205 000644 103766 BCS INSTAL ;OOPS-- TRY AGAIN
206 ;
207 000646 CALL CLRBUF ; AND NO BUFFERS ALLOCATED
000646 004737 002330' JSR PC,CLRBUF
208 ;
209 ; SETUP TO LOOK ON DEVICE SY FOR THE TASK FIRST
210 ;
211 000652 012705 177730G MOV #.PUDBA-U.SZ,R5 ;POINT TO START OF PUD'S TO SCAN IF NOT ON SY
212 ;MINUS 1 FOR SY
213 ;
214 000656 ALUN$S #TSKLUN,#"SY,#0 ;ASSIGN DEVICE SY0 TO TASK LUN
000656 005046 CLR -(SP)
000660 012746 054523 MOV #"SY,-(SP)
000664 012746 000002 MOV #TSKLUN,-(SP)
000670 012746 MOV (PC)+,-(SP)
000672 007 004 .BYTE 7.,4
000674 104375 EMT 375
215 000676 103530 BCS TASKNF ;NO DICE-- JUST TRY PUD SCAN
216 ;
217 000700 013704 000000G MOV .CRTSK,R4 ;GOT IT-- GET ADDRESS
218 000704 016404 000000G MOV A.HA(R4),R4 ; OF OUR HEADER TO
219 000710 016404 000136 MOV H.LUN+<4*<TSKLUN-1>>+0(R4),R4 ; FIND PUD ADDRESS OF SY
220 000714 016404 000000G MOV U.RP(R4),R4 ; BUT GET THE REAL DEVICE PUD ENTRY
221 000720 010437 000376' MOV R4,PUDADR ;SAVE THIS PUD ADDRESS IN CASE WE DO FIND THE TASK
222 000724 005764 000000G TST U.VA(R4) ;IS SY MOUNTED?
223 000730 001035 BNE FNDFIL ;YES-- JUST LOOK FOR FILE
224 ;
225 ; SY IS NOT MOUNTED. WE MUST MOUNT IT BEFORE WE CAN FIND ANYTHING
226 ;
227 000732 012701 000344' MOV #RCVBLK+4,R1 ;GET A SCRATCH AREA
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 4-1
FIND THE TASK FILE
228 000736 012741 MOV (PC)+,-(R1) ;STORE
229 000740 003310 .RAD50 /ACP/ ; THE NAME OF AN ACP
230 000742 016441 000000G MOV U.DACP(R4),-(R1) ; AND THE NAME OF THE ACP FOR THIS DEVICE
231 000746 CALL ..FSTD ;FIND THE STD ENTRY ADDRESS OF THE ACP
000746 004737 000000G JSR PC,..FSTD
232 000752 010264 000000G MOV R2,U.ACP(R4) ;STORE THE STD ADDRESS OF THE ACP
233 ;
234 000756 012700 014010 MOV #IO.APV,R0 ;SET TO DO PRIVILEGED ACP CONTROL
235 000762 005001 CLR R1 ;NO FILE-ID
236 000764 012702 000570' MOV #MNTBLK,R2 ;ACP CONTROL FUNCTION BLOCK TO MOUNT
237 000770 005003 CLR R3 ;NO ACCESS
238 000772 005004 CLR R4 ;NO FILE-NAME BLOCK
239 000774 CALL FILQIO ;DO A MOUNT ON SY
000774 004737 002630' JSR PC,FILQIO
240 001000 103005 BCC SYMNTD ;SUCCESS-- SAY WE DID THE MOUNT SO WE DON'T SCARE ANYBODY
241 001002 ERR MSF,<MOUNT SY FAILED>
000000 115 117 125 .ASCIZ \MOUNT SY FAILED\
000003 116 124 040
000006 123 131 040
000011 106 101 111
000014 114 105 104
000017 000
001002 012746 000000' MOV #$$$,-(SP)
001006 004737 002710' JSR PC,TYPMSG
242 001012 000462 BR TASKNF ;CERTAINLY NOT FOUND
243 ;
244 001014 SYMNTD: MSG SYM,<SY MOUNTED>
000020 123 131 040 .ASCIZ \SY MOUNTED\
000023 115 117 125
000026 116 124 105
000031 104 000
001014 012746 000020' MOV #$$$,-(SP)
001020 004737 002710' JSR PC,TYPMSG
245 ;
246 ; SET UP FILENAME BLOCK TO LOOK FOR [5,5] DIRECTORY IN MFD
247 ;
248 001024 012702 000424' FNDFIL: MOV #FILBLK+N.FNAM,R2 ;POINT TO FILE-NAME BLOCK
249 001030 012712 MOV (PC)+,(R2) ;SET FILENAME TO
250 001032 140123 .RAD50 /005/ ; 005005
251 001034 012222 MOV (R2)+,(R2)+ ; BOTH HALVES
252 001036 005022 CLR (R2)+ ;ONLY SIX CHARS
253 001040 012722 MOV (PC)+,(R2)+ ;SET TYPE TO DIRECTORY
254 001042 015172 .RAD50 /DIR/ ; FILE
255 001044 005022 CLR (R2)+ ;VERSION, DON'T CARE
256 001046 005022 CLR (R2)+ ;NO FLAGS
257 001050 005022 CLR (R2)+ ;UNKOWN STUFF
258 001052 012712 177777 MOV #-1,(R2) ;DIRECTORY ID:
259 001056 012222 MOV (R2)+,(R2)+ ; (-1,-1) IS MFD
260 001060 012722 MOV (PC)+,(R2)+ ;ALSO SET OWNER TO US
261 001062 005 005 .BYTE 5,5 ;THE UIC
262 ;
263 001064 CALL FILFNA ;LOOK UP DIRECTORY FOR [5,5]
001064 004737 002460' JSR PC,FILFNA
264 001070 103433 BCS TASKNF ;GIVE UP NOW IF NO DIRECTORY FOR US
265 ;
266 ; SETUP FILE-NAME BLOCK TO <TASK-NAME>.TSK[5,5]
267 ;
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 4-2
FIND THE TASK FILE
268 001072 012701 000344' MOV #REQBLK,R1 ;ADDRESS REQUEST BLOCK
269 001076 012702 000424' MOV #FILBLK+N.FNAM,R2 ; AND FILE-NAME BLOCK FOR LOOKUP
270 001102 021127 CMP (R1),(PC)+ ;IS THIS
271 001104 131574 .RAD50 /.../ ; AN MCR FUNCTION TASK?
272 001106 001004 BNE 20$ ;NO-- JUST LOOKUP THE TASK NAME
273 001110 005721 TST (R1)+ ;YES-- SKIP THE DOTS
274 001112 012122 MOV (R1)+,(R2)+ ;COPY THE LAST THREE CHARACTERS
275 001114 005022 CLR (R2)+ ; AS THE WHOLE NAME
276 001116 000402 BR 25$ ;PROCEED.
277 ;
278 001120 012122 20$: MOV (R1)+,(R2)+ ;COPY TASK NAME
279 001122 012122 MOV (R1)+,(R2)+ ; AS FILE NAME
280 001124 005022 25$: CLR (R2)+ ;ONLY SIX CHARACTERS
281 001126 012722 MOV (PC)+,(R2)+ ;SET FILE TYPE
282 001130 100003 .RAD50 /TSK/ ; TO A TASK FILE
283 001132 005022 CLR (R2)+ ;NO VERSION CARE
284 001134 005022 CLR (R2)+ ;NO FLAGS
285 001136 005022 CLR (R2)+ ;NO NOTHING
286 001140 012701 000416' MOV #FILBLK+N.FID,R1 ;POINT TO FILE-ID OF DIRECTORY
287 001144 012122 MOV (R1)+,(R2)+ ;COPY FILE-ID
288 001146 012122 MOV (R1)+,(R2)+ ; SEQ #
289 001150 012122 MOV (R1)+,(R2)+ ; OWNER
290 ;
291 ; DO A FIND FILE IN DIRECTORY FUNCTION TO GET FILE ID
292 ;
293 001152 CALL FILFNA ;FIND THE TASK (IF IT'S THERE)
001152 004737 002460' JSR PC,FILFNA
294 001156 103051 BCC TSKFND ;FOUND FILE-- GO READ IT AND CHECK IT OUT
295 ;
296 ; THE TASK FILE WAS NOT FOUND ON THIS DEVICE. CONTINUE TO SCAN PUD
297 ; FOR ALL FILES-11 DEVICES SUCH THAT WE FIND THE TASK.
298 ;
299 001160 062705 000050 TASKNF: ADD #U.SZ,R5 ;BUMP TO NEXT PUD ENTRY
300 001164 020527 000000G CMP R5,#.PUDEA ;ARE WE AT THE END OF THE PUD?
301 001170 103027 BHIS TNFERR ;YES-- TASK NOT FOUND
302 001172 026505 000000G CMP U.RP(R5),R5 ;THIS DEVICE REDIRECTED?
303 001176 001370 BNE TASKNF ;YES-- WE WILL FIND THE REAL DEVICE
304 001200 132765 000000G 000000G BITB #UF.TL,U.FB(R5) ;TASK LOADS ALLOWED FROM THIS DEVICE?
305 001206 001764 BEQ TASKNF ;NO-- DON'T EVEN TRY
306 001210 005765 000000G TST U.VA(R5) ;VOLUME MOUNTED?
307 001214 001761 BEQ TASKNF ;NO-- DON'T TRY TO FIND FILE
308 ;
309 001216 ALUN$S #TSKLUN,U.DN(R5),U.UN(R5) ;YES-- ASSIGN TH CURRENT DEVICE TO US
001216 016546 000000G MOV U.UN(R5),-(SP)
001222 016546 000000G MOV U.DN(R5),-(SP)
001226 012746 000002 MOV #TSKLUN,-(SP)
001232 012746 MOV (PC)+,-(SP)
001234 007 004 .BYTE 7.,4
001236 104375 EMT 375
310 001240 103747 BCS TASKNF ;THIS SHOULD REALLY NEVER HAPPN
311 001242 010537 000376' MOV R5,PUDADR ;OK-- SAVE THIS PUD ADDRESS IN CASE WE FIND THE FILE
312 001246 000666 BR FNDFIL ;OK-- GO LOOK FOR THE TASK FILE
313 ;
314 001250 TNFERR: ERR TNF,<TASK NOT FOUND>
000033 124 101 123 .ASCIZ \TASK NOT FOUND\
000036 113 040 116
000041 117 124 040
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 4-3
FIND THE TASK FILE
000044 106 117 125
000047 116 104 000
001250 012746 000033' MOV #$$$,-(SP)
001254 004737 002710' JSR PC,TYPMSG
315 001260 000137 002164' JMP RETNOD ;GIVE UP
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 5
INITIALIZE TASK FILE
317 .SBTTL INITIALIZE TASK FILE
318 ;
319 ; FILE ERRORS END UP HERE, GOING ON THERE WAY TO THERE
320 ;
321 001264 000137 002150' FILERA: JMP FILERR ;OOPS
322 ;
323 ; ONE OF THE NODE/BUFFER REQUESTS FAILED-- GIVE ALL OF THEM BACK AND WAIT
324 ;
325 001270 BUFAIL: CALL RETBUF ;RETURN ALL BUFFERS
001270 004737 002274' JSR PC,RETBUF
326 001274 WSIG$S ;WAIT FOR FREE
001274 012746 MOV (PC)+,-(SP)
001276 061 001 .BYTE 49.,1
001300 104375 EMT 375
327 ;
328 ; HERE WHEN A TASK FILE FOUND
329 ;
330 ; GET TWO BUFFERS FOR THE HEADER AND LABEL BLOCKS
331 ;
332 001302 012700 000000G TSKFND: MOV #.BGBUF,R0 ;POINT TO BIG FREE SPACE
333 001306 012701 001000 MOV #512.,R1 ;SET TO GET A BLOCK
334 001312 CALL ..ALC2 ;GET ONE
001312 004737 000000G JSR PC,..ALC2
335 001316 103764 BCS BUFAIL ;FAILED-- RELEASE NODE AND WAIT
336 001320 010037 000404' MOV R0,LBLBUF ;OK-- STORE THE ADDRESS FOR LABEL BLOCK BUFFER
337 001324 060100 ADD R1,R0 ;GET END ADDRESS, TOO
338 001326 010037 000406' MOV R0,LBLBFE ;SAVE THAT AS END OF BLOCK
339 001332 012700 000000G MOV #.BGBUF,R0 ;POINT TO BIG FREE LIST HEAD
340 ;
341 001336 CALL ..ALC2 ;GET A HEADER BUFFER, TOO
001336 004737 000000G JSR PC,..ALC2
342 001342 103752 BCS BUFAIL ;NONE-- GIVE IT ALL AWAY
343 001344 010037 000412' MOV R0,HDRBUF ;GOT IT-- SAVE ADDRESS OF BLOCK
344 001350 060100 ADD R1,R0 ;GET END, TOO
345 001352 010037 000414' MOV R0,HDRBFE ;SAVE THE END OF HEADER BUFFER
346 ;
347 ; DO AN ACCESS FOR READ, WRITE ON THE TASK FILE THAT WE FOUND
348 ;
349 001356 012700 007000 MOV #IO.ACW,R0 ;DO AN ACCESS FOR READ,WRITE
350 001362 012701 000416' MOV #FILBLK+N.FID,R1 ;FILE BLOCK NOW HAS FILE-ID, SEQ# IN IT
351 001366 012702 000562' MOV #ATCBLK,R2 ;ATTRRIBUTE CONTROL BLOCK TO GET DISK ADDR OF FILE
352 001372 012703 MOV (PC)+,R3 ;ENABLE
353 001374 000 200 .BYTE 0,AC.ENA ; ACCESS
354 001376 005004 CLR R4 ;NO FILE-NAME BLOCK NOW
355 001400 CALL FILQIO ;DO THE ACCESS
001400 004737 002630' JSR PC,FILQIO
356 001404 103727 BCS FILERA ;NO DICE-- GIVE UP
357 ;
358 ; READ THE FIRST LABEL BLOCK AND THE FIRST BLOCK OF THE TASK HEADER
359 ;
360 001406 005037 000400' CLR LBLBLK ;START WITH BLOCK 0 (WILL BUMP TO VBN 1)
361 001412 CALL REDLBL ;READ THE LABEL BLOCK
001412 004737 002556' JSR PC,REDLBL
362 001416 103722 BCS FILERA ;ERROR-- REPORT IT
363 ;
364 001420 016137 000022 000410' MOV L$BHRB(R1),HDRBLK ;GET FIRST BLOCK OF HEADER
365 001426 CALL REDHDR ;READ THE FIRST BLOCK OF THE HEADER
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 5-1
INITIALIZE TASK FILE
001426 004737 002514' JSR PC,REDHDR
366 001432 103714 BCS FILERA ;THAT'S-A-NO-GOOD
367 ; BR SETSTD ;OK-- SET UP THE STD
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 6
SETUP STD ENTRY
369 .SBTTL SETUP STD ENTRY
370 ;
371 ; WE HAVE THE LABEL BLOCK OF THE TASK FILE AND THE FIRST HEADER BLOCK
372 ; R1 -- ADDRESS OF LABEL BLOCK BUFFER
373 ; R2 -- ADDRESS OF HEADER BLOCK BUFFER
374 ;
375 001434 013704 000356' SETSTD: MOV STDADR,R4 ;ADDRESS OUR NEW-FOUND STD
376 ;
377 001440 012703 000350' MOV #REQBLK+4,R3 ;POINT TO THE REQUEST INFO BLOCK
378 001444 022424 CMP (R4)+,(R4)+ ;MOVE OVER NAME
379 001446 022121 CMP (R1)+,(R1)+ ;(L$BTSK+0) (L$BTSK+2) SKIP OVER TASK NAME IN LABEL BLOCK
380 ;
381 ; FIND WHICH PARTITION TO INSTALL THE TASK INTO
382 ; IF REQUEST DID NOT SPECIFY ONE, USE THE ONE SPECIFIED IN THE TASK FILE
383 ;
384 001450 005713 TST (R3) ;PARTITION SPECIFIED IN REQUEST?
385 001452 001001 BNE 20$ ;YES-- LOOK FOR THAT ONE
386 001454 010103 MOV R1,R3 ;NO-- (L$BPAR) USE PARTITION FROM TASK FILE
387 ;
388 ; FIND THE PARTITION WHERE WE BELONG
389 ;
390 001456 022121 20$: CMP (R1)+,(R1)+ ;(L$BPAR+0) (L$BPAR+2) SKIP OVER PARTITION NAME IN LABEL
391 001460 012705 000000G MOV #.TPDBA,R5 ;START AT BEGINNING OF THE TASK PARTITION DIRECTORY
392 ;
393 001464 026513 000000G 21$: CMP T.PN+0(R5),(R3) ;FIRST HALF OF NAME MATCH?
394 001470 001004 BNE 25$ ;NO-- GO ON TO NEXT ENTRY
395 001472 026563 000002G 000002 CMP T.PN+2(R5),2(R3) ;YES-- SECOND HALF MATCH?
396 001500 001432 BEQ PARFND ;YES-- WE FOUND THE PARTITION
397 ;
398 001502 062705 000000G 25$: ADD #T.SZ,R5 ;NO-- BUMP TO NEXT ENTRY IN TPD
399 001506 020527 000000G CMP R5,#.TPDEA ;ARE WE AT THE END OF THE DIRECTORY?
400 001512 103764 BLO 21$ ;NO-- KEEP LOOKING FOR OUR PARTITION
401 001514 010324 MOV R3,(R4)+ ;YES-- PARTITION NOT FOUND-- SAVE ADDR OF NAME FOR ERR
402 001516 ERRF PNF,<PARTITION NOT FOUND>
000052 120 101 122 .ASCIZ \PARTITION NOT FOUND\
000055 124 111 124
000060 111 117 116
000063 040 116 117
000066 124 040 106
000071 117 125 116
000074 104 000
001516 012746 000052' MOV #$$$,-(SP)
001522 004737 002710' JSR PC,TYPMSG
001526 000416 BR CLSFIL
403 ;
404 .IF NDF KT11
405 001530 IPAERR: ERRF IPA,<INVALID PARITITION ADR>
000076 111 116 126 .ASCIZ \INVALID PARITITION ADR\
000101 101 114 111
000104 104 040 120
000107 101 122 111
000112 124 111 124
000115 111 117 116
000120 040 101 104
000123 122 000
001530 012746 000076' MOV #$$$,-(SP)
001534 004737 002710' JSR PC,TYPMSG
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 6-1
SETUP STD ENTRY
001540 000411 BR CLSFIL
406 .ENDC
407 ;
408 001542 TTBERR: ERRF TTB,<TASK TOO BIG>
000125 124 101 123 .ASCIZ \TASK TOO BIG\
000130 113 040 124
000133 117 117 040
000136 102 111 107
000141 000
001542 012746 000125' MOV #$$$,-(SP)
001546 004737 002710' JSR PC,TYPMSG
001552 000404 BR CLSFIL
409 ;
410 001554 TNCERR: ERR TNC,<TASK FILE NOT CONTIGUOUS>
000142 124 101 123 .ASCIZ \TASK FILE NOT CONTIGUOUS\
000145 113 040 106
000150 111 114 105
000153 040 116 117
000156 124 040 103
000161 117 116 124
000164 111 107 125
000167 117 125 123
000172 000
001554 012746 000142' MOV #$$$,-(SP)
001560 004737 002710' JSR PC,TYPMSG
411 ;
412 001564 000575 CLSFIL: BR FILERX ;CLOSE FILE IF FILE OPERN & ERROR
413 ;
414 ; PARTITION FOUND-- SAVE THE ADDRESS IN THE STD AND CHECK IT OUT
415 ;
416 001566 010524 PARFND: MOV R5,(R4)+ ;(S.TD) SET ADDRESS OF TPD ENTRY
417 ;
418 001570 022121 CMP (R1)+,(R1)+ ;(L$BFLG) SKIP TASK FLAGS
419 001572 005724 TST (R4)+ ;(S.TF) FLAG TASK TO RETSTE ON EXIT
420 ;
421 001574 112724 000062 MOVB #DEFPRI,(R4)+ ;NONE-- USE DEFAULT
422 ;
423 001600 013700 000376' MOV PUDADR,R0 ;GET THE ADDRESS WHERE WE FOUND OUR FILE
424 001604 012703 177777 MOV #-1,R3 ;START THE COUNT AT ZERO
425 001610 162700 000000G SUB #.PUDBA,R0 ;MAKE R0 INDEX INTO PUD
426 001614 005203 30$: INC R3 ;BUMP THE INDEX
427 001616 162700 000050 SUB #U.SZ,R0 ;DIVIDE PUD ADDRESS
428 001622 002374 BGE 30$ ; BY THE ENTRY SIZE
429 001624 110324 MOVB R3,(R4)+ ;(S.DI) SYSTEM DISK INDICATOR
430 ;
431 001626 016524 000000G MOV T.BA(R5),(R4)+ ;(S.BA) BASE ADDRESS OF TASK (NO KT-11)
432 .IF DF HDR64
433 MOV (R1)+,(R4)+ ;(L$BLDZ) (S.LZ) LOAD SIZE OF TASK
434 .IFF
435 001632 012114 MOV (R1)+,(R4) ;(L$BLDZ) (S.LZ) LOAD SIZE OF TASK
436 001634 006314 ASL (R4) ;MAKE IT REAL ADDRESS (*64)
437 001636 006314 ASL (R4) ; . .
438 001640 006314 ASL (R4) ; . .
439 001642 006314 ASL (R4) ; . .
440 001644 006314 ASL (R4) ; . .
441 001646 006324 ASL (R4)+ ; . .
442 .IFTF
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 6-2
SETUP STD ENTRY
443 001650 012114 MOV (R1)+,(R4) ;(L$BMXZ) (S.MZ) MAXIMUM SIZE OF TASK
444 .IFF
445 001652 006314 ASL (R4) ;MAKE REAL ADDRESS (*64)
446 001654 006314 ASL (R4) ; . .
447 001656 006314 ASL (R4) ; . .
448 001660 006314 ASL (R4) ; . .
449 001662 006314 ASL (R4) ; . .
450 001664 006314 ASL (R4) ; . .
451 .ENDC
452 001666 026524 000000G CMP T.PZ(R5),(R4)+ ;WILL TASK FIT IN PARTITION SPECIFIED?
453 001672 103723 BLO TTBERR ;NO-- DON'T TRY TO INSTALL IT
454 .IF NDF KT11
455 001674 026521 000000G CMP T.BA(R5),(R1)+ ;(L$BSA) IS TASK ADDRESS SAME AS PARTITION ADDRESS?
456 001700 001313 BNE IPAERR ;NO-- DON'T INSTALL IT
457 .IFF
458 TST (R1)+ ;(L$BSA) KT-11 CAN FIX THAT
459 .ENDC
460 ;
461 001702 016224 000076 MOV H.IPC(R2),(R4)+ ;(S.PC) SET INTIAL PC FROM HEADER
462 001706 016224 000100 MOV H.ISP(R2),(R4)+ ;(S.SP) ALSO INITIAL SP
463 001712 022424 CMP (R4)+,(R4)+ ;MOVE OVER SEND/REQUEST LISTHEAD
464 001714 005024 CLR (R4)+ ;(S.SS) SST VECTOR TABLE ADDRESS
465 ;
466 001716 013714 000452' MOV FILADR+0,(R4) ;(S.DL+0) DISK ADDRESS OF TASK IMAGE
467 001722 012400 MOV (R4)+,R0 ;COPY IT IN CASE IT'S ZERO
468 001724 013714 000454' MOV FILADR+2,(R4) ;(S.DL+2) SECOND HALF OF DISK ADDRESS
469 001730 051400 BIS (R4),R0 ;WERE BOTH WORDS ZERO?
470 001732 001710 BEQ TNCERR ;YES-- TASK FILE IS NOT CONTIGUOUS
471 001734 062114 ADD (R1)+,(R4) ;(L$BHRB) + RELATIVE BLOCK IN FILE= REAL ADDRESS
472 001736 005544 ADC -(R4) ;ADD THE CARRY BACK TO HIGH ORDER WORD
473 ;
474 001740 012137 000402' MOV (R1)+,LBLNUM ;(L$BBLK) SAVE # BLOCKS IN LABEL GROUP FOR LATER
475 ; BR SETLUN ;NOW SET UP THE LUN'S
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 7
SETUP LOGICAL UNIT TABLE FOR TASK
477 .SBTTL SETUP LOGICAL UNIT TABLE FOR TASK
478 ;
479 ; LOOP THROUGH SECOND AND THIRD LABEL BLOCKS FOR ALL 255 LUNS
480 ; R2 -- ADDRESS OF HEADER BLOCK BUFFER
481 ;
482 001744 062702 000130 SETLUN: ADD #H.NLUN,R2 ;POINT TO # LUNS, AND LUN TABLE IN HEADER
483 001750 012205 MOV (R2)+,R5 ;(H.NLUN) GET # LUNS TO SET UP, POINT TO LUN TABLE IN HEADER
484 001752 001471 BEQ 80$ ;NONE-- JUST CLOSE FILE
485 001754 013701 000406' MOV LBLBFE,R1 ;FORCE READ OF NEXT LABEL BLOCK
486 ;
487 ; SEE IF WE MUST WRITE OUT THIS BLOCK AND READ NEXT BLOCK OF HEADER
488 ;
489 001760 10$: CALL NXTHDR ;GO ON TO NEXT BLOCK?
001760 004737 002500' JSR PC,NXTHDR
490 001764 103471 BCS FILERR ;FAILED
491 ;
492 ; SEE IF WE NEED TO READ ANOTHER LABEL BLOCK
493 ;
494 001766 020137 000406' 20$: CMP R1,LBLBFE ;HAVE WE FINISHED THIS LABEL BLOCK?
495 001772 103410 BLO 30$ ;NO-- JUST GET ANOTHER ENTRY FROM IT
496 001774 005004 CLR R4 ;YES-- ASSUME NO MORE TO DO
497 001776 023737 000400' 000402' CMP LBLBLK,LBLNUM ;HAVE WE RUN OUT OF LABEL BLOCKS?
498 002004 002043 BGE 60$ ;YES-- READ NO MORE-- JUST ZERO
499 002006 CALL REDLBL ;YES-- READ NEXT ONE
002006 004737 002556' JSR PC,REDLBL
500 002012 103456 BCS FILERR ;SPLAT
501 ;
502 ; FIND THE PUD ADDRESS OF THE DEVICE FROM THE LABEL BLOCK
503 ;
504 002014 005711 30$: TST (R1) ;IS THIS A ZERO ENTRY?
505 002016 001434 BEQ 40$ ;YES-- JUST STORE ZERO
506 002020 013704 000376' MOV PUDADR,R4 ;ASSUME DEVICE OV
507 002024 022711 053117 CMP #"OV,(R1) ;THIS OVERLAY DEVICE?
508 002030 001430 BEQ 50$ ;YES-- WE HAVE PUD ADDRESS
509 ;
510 002032 012704 000000G 31$: MOV #.PUDBA,R4 ;NO-- START SEARCHING THROUGH THE PUD
511 ;
512 002036 021164 000000G 33$: CMP (R1),U.DN(R4) ;THIS OUR DEVICE?
513 002042 001004 BNE 35$ ;NO-- TRY ANOTHER ONE
514 002044 126164 000002 000000G CMPB 2(R1),U.UN(R4) ;YES-- RIGHT UNIT #
515 002052 001417 BEQ 50$ ;YES-- WE HAVE PUD ADDRESS IN R4
516 ;
517 002054 062704 000050 35$: ADD #U.SZ,R4 ;NO-- BUMP TO NEXT PUD ENTRY
518 002060 020427 000000G CMP R4,#.PUDEA ;END OF PUD YET?
519 002064 103764 BLO 33$ ;NO-- LOOK AT THIS ENTRY
520 ;
521 002066 012704 000576' MOV #CNVTBL,R4 ;ENTRY NOT FOUND-- SEE IF CONVERTIBLE DEVICE
522 ;
523 002072 022411 37$: CMP (R4)+,(R1) ;DEVICE MATCH?
524 002074 001403 BEQ 38$ ;YES-- GET THE CONVERTED NAME AND GO AWAY
525 002076 005724 TST (R4)+ ;NO-- IS THIS END OF TABLE?
526 002100 001374 BNE 37$ ;NO-- KEEP ON LOOKING
527 002102 000402 BR 40$ ;YES-- DEVICE NOT FOUND-- STORE 0
528 ;
529 002104 011411 38$: MOV (R4),(R1) ;DEVICE FOUND IN CONVERSION TABLE--
530 002106 000751 BR 31$ ; SAVE AS NEW DEVICE AND SCAN PUD FOR IT
531 ;
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 7-1
SETUP LOGICAL UNIT TABLE FOR TASK
532 002110 005004 40$: CLR R4 ;ENTRY NOT FOUND-- CLEAR THE PUD ADDRESS
533 ;
534 002112 022121 50$: CMP (R1)+,(R1)+ ;SKIP OVER ENTRY IN LABEL BLOCK
535 ;
536 002114 010422 60$: MOV R4,(R2)+ ;STORE THE PUD ADDRESS IN LUT IN HEADER
537 002116 CALL NXTHDR ;SEE IF WE NEED ANOTHER HEADER BLOCK
002116 004737 002500' JSR PC,NXTHDR
538 002122 103412 BCS FILERR ;I/O ERROR-- GIVE UP
539 002124 005022 CLR (R2)+ ;CLEAR SECOND WORD OF HEADER ENTRY
540 ;
541 002126 077564 SOB R5,10$ ;LOOP FOR ALL LUNS IN HEADER
542 002130 CALL WRTHDR ;WRITE OTU THE LAST HEADER BLOCK
002130 004737 002526' JSR PC,WRTHDR
543 002134 103405 BCS FILERR ;FAILED
544 ;
545 ; ALL DONE WITH THE TASK FILE-- CLOSE IT UP
546 ;
547 002136 80$: CALL RETBUF ;RETURN THE BUFFERS
002136 004737 002274' JSR PC,RETBUF
548 002142 CALL FILCLS ;CLOSE THE FILE
002142 004737 002616' JSR PC,FILCLS
549 002146 103075 BCC REQTSK ;OK-- GO PUT US IN THE STD
550 ;
551 ; ALL FILE I/O ERRORS END UP HERE
552 ;
553 002150 FILERR: ERR IOE,<I/O ERROR ON TASK FILE>
000173 111 057 117 .ASCIZ \I/O ERROR ON TASK FILE\
000176 040 105 122
000201 122 117 122
000204 040 117 116
000207 040 124 101
000212 123 113 040
000215 106 111 114
000220 105 000
002150 012746 000173' MOV #$$$,-(SP)
002154 004737 002710' JSR PC,TYPMSG
554 002160 FILERX: CALL FILCLS ;GIVE CLOSE A TRY
002160 004737 002616' JSR PC,FILCLS
555 ;
556 002164 012746 002454' RETNOD: MOV #ALLDON,-(SP) ;RETURN ALL BUFFERS AND STD NODE
557 002170 .INH0 ;;OTHER ERROR-- MUST REMOVE TASK FROM THE STD
002170 013746 177776 MOV @#PS,-(SP)
002174 112737 000140 177776 MOVB #140,@#PS
558 002202 012701 000344' MOV #REQBLK,R1 ;FIND THE STD OF THIS TASK
559 002206 CALL ..FSTD
002206 004737 000000G JSR PC,..FSTD
560 002212 001015 BNE 60$ ;CAN'T FIND IT?????
561 002214 162737 000002 000000G SUB #2,.STDTZ ;;ONE LESS ENTRY IN THE STD NOW
562 002222 013705 000000G MOV .STDTZ,R5 ;; SO GET NEW LENGTH
563 002226 063705 000000G ADD .STDTA,R5 ;;MAKE ADDRESS OF LAST ENTRY IN THE TABLE
564 002232 005743 TST -(R3) ;;BACK UP THE POINTER
565 ;
566 002234 020305 50$: CMP R3,R5 ;;AT END OF TABLE YET?
567 002236 101003 BHI 60$ ;;YES-- ALL DONE
568 002240 016323 000002 MOV 2(R3),(R3)+ ;;NO-- MOVE ANOTHER ENTRY DOWN
569 002244 000773 BR 50$ ;;LOOP TO MOVE WHOLE TABLE DOWN
570 ;
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 7-2
SETUP LOGICAL UNIT TABLE FOR TASK
571 002246 60$: .ENB0 ;;RESTORE TASK SWITCHING
002246 004737 000000G JSR PC,..ENB0
572 ;
573 ; RETALL -- RETURN ALL BUFFERS AND STD NODE
574 ;
575 002252 013701 000356' RETALL: MOV STDADR,R1 ;GET THE STD ADDRESS
576 002256 001406 BEQ RETBUF ;NONE-- JUST RETURN THE BUFFERS
577 002260 012704 000000G MOV #.POLLH,R4 ;ADD IT TO THE FREE POOL
578 002264 CALL ..NADD ;PUT IT BACK
002264 004737 000000G JSR PC,..NADD
579 002270 005037 000356' CLR STDADR ;NO MORE STD NODE
580 ;
581 002274 012701 001000 RETBUF: MOV #512.,R1 ;SET TO RETURN A BLOCK
582 002300 012703 000000G MOV #.BGBUF,R3 ; TO THE BIG BUFFER LIST HEAD
583 002304 013700 000404' MOV LBLBUF,R0 ;GET ADDRESS OF LABEL BLOCK BUFFER
584 002310 001402 BEQ 20$ ;NONE-- TRY HEADER BUFFER
585 002312 CALL ..DEC2 ;DE-ALLOCATE THE BUFFER
002312 004737 000000G JSR PC,..DEC2
586 ;
587 002316 013700 000412' 20$: MOV HDRBUF,R0 ;ALSO THE HEADER BUFFER
588 002322 001402 BEQ CLRBUF ;NONE-- JUST CLEAN UP
589 002324 CALL ..DEC2 ;DE-ALLOCATE THE HEADER BUFFER
002324 004737 000000G JSR PC,..DEC2
590 ;
591 002330 005037 000404' CLRBUF: CLR LBLBUF ;NO MORE LABEL BUFFER
592 002334 005037 000412' CLR HDRBUF ; OR HEADER BUFFER
593 002340 RETURN ;THAT'S IT
002340 000207 RTS PC
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 8
RE-REQUEST TASK
595 .SBTTL RE-REQUEST TASK
596 ;
597 ; TASK REQUEST BLOCK IS STILL SET UP FROM CALL
598 ;
599 002342 REQTSK: .INH0 ;INHIBIT TASK SWITCHING
002342 013746 177776 MOV @#PS,-(SP)
002346 112737 000140 177776 MOVB #140,@#PS
600 002354 013704 000356' MOV STDADR,R4 ;FIND STD ADDRESS
601 002360 042764 040001 000000G BIC #SF.TA!SF.IR,S.FW(R4) ;CLEAR ACTIVE BIT SO IT CAN BE REQUESTED
602 002366 012700 000344' MOV #REQBLK,R0
603 002372 RQST$S R0,,REQBLK+10 ;RE-REQUEST TASK
002372 005046 CLR -(SP)
002374 013746 000354' MOV REQBLK+10,-(SP)
002400 005046 CLR -(SP)
002402 005046 CLR -(SP)
002404 016046 000002 MOV 2(R0),-(SP)
002410 011046 MOV (R0),-(SP)
002412 012746 MOV (PC)+,-(SP)
002414 013 007 .BYTE 11.,7
002416 104375 EMT 375
604 002420 .ENB0 ;ENABLE TASK SWITCHING
002420 004737 000000G JSR PC,..ENB0
605 002424 005737 000000G TST $DSW ;SUCCESS/FAILURE?
606 002430 100011 BPL ALLDON ;SUCCESS -- ALL OK
607 ;
608 ; REQUEST FAILED-- IF TASK ALREADY ACTIVE, THAT'S OK
609 ;
610 002432 023727 000000G 177771 CMP $DSW,#IE.ACT ;TASK ALREADY ACTIVE?
611 002440 001405 BEQ ALLDON ;YES-- WE ARE HAPPY
612 ;
613 002442 ERRN TRF,<TASK REQUEST FAILED>
000222 124 101 123 .ASCIZ \TASK REQUEST FAILED\
000225 113 040 122
000230 105 121 125
000233 105 123 124
000236 040 106 101
000241 111 114 105
000244 104 000
002442 012746 000222' MOV #$$$,-(SP)
002446 004737 002710' JSR PC,TYPMSG
002452 000644 BR RETNOD
614 ;
615 ; ALL DONE-- GO BACK TO WAITING
616 ;
617 002454 000137 000622' ALLDON: JMP INSTAL ;RETURN AND EXIT IF NO MORE TO DO
618 ;
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 9
TASK FILE I/O ROUTINES
620 .SBTTL TASK FILE I/O ROUTINES
621 ;
622 ; FILFNA -- DO A 'FIND NAME IN DIRECTORY' FUNCTION TO FIND A FILE
623 ; FILBLK -- FILE-NAME BLOCK SET UP FOR DESIRED FILE
624 ;
625 002460 012700 004400 FILFNA: MOV #IO.FNA,R0 ;DO A FIND FILE IN DIRECTORY
626 002464 005001 CLR R1 ;NO FILE-ID
627 002466 005002 CLR R2 ;NO ATTRIBUTES
628 002470 005003 CLR R3 ;NO ACCESS
629 002472 012704 000416' MOV #FILBLK,R4 ;SET TO DO IT TO THE RIGHT FILE
630 002476 000454 BR FILQIO ;GO DO IT AND RETURN
631 ;
632 ; NXTHDR -- ROUTINE TO WRITE OUT CURRENT HEADER BLOCK AND READ NEXT ONE
633 ; IF AT END OF BLOCK.
634 ; R2 -- POINTER TO HEADER BUFFER (HDR). UPDATED TO HDR+0 IF END OF BLOCK
635 ;
636 002500 023702 000414' NXTHDR: CMP HDRBFE,R2 ;END OF HEADER BUFFER?
637 002504 101023 BHI RETXXX ;NO-- JUST RETURN
638 002506 CALL WRTHDR ;YES-- WRITE OUT OLD HEADER
002506 004737 002526' JSR PC,WRTHDR
639 002512 103420 BCS RETXXX ;ERROR-- RETURN WITH IT
640 ; BR REDHDR ;READ THE NEXT ONE
641 ;
642 ; REDHDR -- READ NEXT HEADER BLOBK
643 ;
644 002514 005237 000410' REDHDR: INC HDRBLK ;BUMP TO NEXT BLOCK OF HEADER
645 002520 012700 010400 MOV #IO.RVB,R0 ;DO A READ
646 002524 000402 BR RWRHDR ;DO IT TO HEADER BLOCK
647 ;
648 ; WRTHDR -- WRITE CURRENT HEADER BLOCK
649 ;
650 002526 012700 011000 WRTHDR: MOV #IO.WVB,R0 ;DO A WRITE
651 ; BR RWRHDR ;READ/WRITE A BLOCK
652 ;
653 ; RWRHDR -- READ/WRITE HEADER BLOCK
654 ; R0 -- READ/WRTIE FUNCTION CODE
655 ;
656 002532 RWRHDR: PUSH R1 ;SAVE THE LABEL POINTER
002532 010146 MOV R1,-(SP)
657 002534 013701 000412' MOV HDRBUF,R1 ;POINT TO HEADER BUFFER
658 002540 013703 000410' MOV HDRBLK,R3 ;SET PROPER VBN
659 002544 CALL RWRBLK ;DO A BLOCK
002544 004737 002610' JSR PC,RWRBLK
660 002550 010102 MOV R1,R2 ;POINT R2 TO HDR BUFFER
661 002552 POP R1 ;RESTORE LABEL POINTER
002552 012601 MOV (SP)+,R1
662 002554 RETXXX: RETURN ;WITH CC-C SET/CLEAR BY RWRBLK
002554 000207 RTS PC
663 ;
664 ; REDLBL -- READ NEXT LABEL BLOCK
665 ;
666 002556 REDLBL: PUSH R2 ;SAVE THE HEADER POINTER
002556 010246 MOV R2,-(SP)
667 002560 012700 010400 MOV #IO.RVB,R0 ;DO A READ
668 002564 013701 000404' MOV LBLBUF,R1 ; TO THE LABEL BUFFER
669 002570 005237 000400' INC LBLBLK ;BUMP TO NEXT LABEL BLOCK
670 002574 013703 000400' MOV LBLBLK,R3 ; AND SAVE AS VBN TO READ
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 9-1
TASK FILE I/O ROUTINES
671 002600 CALL RWRBLK ;READ THE BLOCK
002600 004737 002610' JSR PC,RWRBLK
672 002604 POP R2 ;RESTORE THE HEADER POINTER
002604 012602 MOV (SP)+,R2
673 002606 RETURN ;CC-C SET/CLEAR BY RWRBLK, R1 POINTS TO LBL BUFFER
002606 000207 RTS PC
674 ;
675 ; RWRBLK -- READ/WRITE A BLOCK
676 ; R0 -- READ/WRITE FUNCTION CODE
677 ; R1 -- ADDRESS OF BUFFER
678 ; R3 -- VIRTUAL BLOCK NUMBER IN TASK FILE
679 ;
680 002610 012702 001000 RWRBLK: MOV #512.,R2 ;SET TO READ ONE BLOCK
681 002614 000405 BR FILQIO ;DO IT TO TASK FILE
682 ;
683 ; FILCLS -- DE-ACCESS THE TASK FILE
684 ;
685 002616 012700 010000 FILCLS: MOV #IO.DAC,R0 ;DE-ACCESS FUNCTION
686 002622 005001 CLR R1 ;NO FILE-ID BLOCK
687 002624 005002 CLR R2 ;NO ATTRIBUTES ALLOWED
688 002626 005004 CLR R4 ;NO FILE-NAME BLOCK EITHER
689 ; BR FILQIO ;DO IT TO TASK FILE
690 ;
691 ; FILQIO -- PERFORM QUEUE I/O FUNCTION ON THE TASK FILE
692 ; R0 -- FUNCTION CODE
693 ; R1 -- PARAMETER #1 (FILE-ID BLOCK OR BUFFER ADDRESS)
694 ; R2 -- PARAMETER #2 (ATTRIBUTE CONTROL BLOCK OR BUFFER LENGTH)
695 ; R3 -- PARAMETER #5 (ACCESS CONTROL OR VIRTUAL BLOCK NUMBER)
696 ; R4 -- PARAMETER #6 (FILENAME BLOCK)
697 ;
698 ; CC-C CLEAR IF SUCCESS, SET IF FAILURE.
699 ;
700 002630 FILQIO: QIOW$S R0,#TSKLUN,#E.FQIO,,#QIOSTS,,<R1,R2,,,R3,R4>
002630 010446 MOV R4,-(SP)
002632 010346 MOV R3,-(SP)
002634 005046 CLR -(SP)
002636 005046 CLR -(SP)
002640 010246 MOV R2,-(SP)
002642 010146 MOV R1,-(SP)
002644 005046 CLR -(SP)
002646 012746 000456' MOV #QIOSTS,-(SP)
002652 005046 CLR -(SP)
002654 112716 000001 MOVB #E.FQIO,(SP)
002660 012746 000002 MOV #TSKLUN,-(SP)
002664 010046 MOV R0,-(SP)
002666 012746 MOV (PC)+,-(SP)
002670 003 014 .BYTE 3,$$$T1
002672 104375 EMT 375
701 002674 103404 BCS 90$ ;GIVE UP
702 ;
703 002676 105737 000456' 30$: TSTB QIOSTS+0 ;I/O SUCCESSFUL?
704 002702 002001 BGE 90$ ;YES-- JUST RETURN WITH CC-C CLEAR
705 ;
706 002704 000261 80$: SEC ;NO-- RETURN ERROR
707 002706 90$: RETURN ;RETURN FROM FILQIO
002706 000207 RTS PC
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 10
ERROR PROCESSING
709 .SBTTL ERROR PROCESSING
710 ;
711 ; TYPMSG -- TYPE A MESSAGE
712 ;
713 ; CALL: PUSH #<ADDRESS OF ASCIZ TEXT>
714 ; CALL TYPMSG
715 ;
716 002710 TYPMSG: PUSH <R0,R1,R2,R3,R4> ;SAVE USED REGISTERS
002710 010046 MOV R0,-(SP)
002712 010146 MOV R1,-(SP)
002714 010246 MOV R2,-(SP)
002716 010346 MOV R3,-(SP)
002720 010446 MOV R4,-(SP)
717 002722 012704 000462' MOV #TYPBUF,R4 ;SET ADDRESS OF TYPEOUT BUFFER
718 002726 012703 003220' MOV #INSMSG,R3 ;GET 'INS --'
719 002732 CALL PUTSTR ;PUT IT IN STRING
002732 004737 003112' JSR PC,PUTSTR
720 002736 016603 000014 MOV 14(SP),R3 ;GET ADDRESS OF THE TEXT TO TYPE
721 002742 CALL PUTSTR ;TYPE IT
002742 004737 003112' JSR PC,PUTSTR
722 002746 012703 003232' MOV #TSKMSG,R3 ;GET 'TSK= '
723 002752 CALL PUTSTR ;PUT IT TOO
002752 004737 003112' JSR PC,PUTSTR
724 002756 012703 000344' MOV #REQBLK,R3 ;POINT TO .RAD50 /TASK-NAME/
725 002762 CALL PUTR50 ;PUT IT IN THERE, TOO
002762 004737 003122' JSR PC,PUTR50
726 002766 013702 000356' MOV STDADR,R2 ;GET THE ADDRESS OF THE STD
727 002772 016202 000000G MOV S.TD(R2),R2 ;GET ADDRESS OF .RAD50/PARTITION/
728 002776 001407 BEQ 20$ ;NONE-- SKIP THIS
729 003000 012703 003241' MOV #PARMSG,R3 ;SAY 'PAR= '
730 003004 CALL PUTSTR ; . .
003004 004737 003112' JSR PC,PUTSTR
731 003010 010203 MOV R2,R3 ;GET THE NAME ADDRESS
732 003012 CALL PUTR50 ;PUT IT IN STRING
003012 004737 003122' JSR PC,PUTR50
733 ;
734 003016 112724 000012 20$: MOVB #12,(R4)+ ;STORE LF
735 003022 112724 000015 MOVB #15,(R4)+ ;STORE CR
736 003026 012700 000462' MOV #TYPBUF,R0 ;GET ADDRESS OF BUFFER BACK
737 003032 160004 SUB R0,R4 ;COMPUTE LENGTH OF STRING
738 003034 QIOW$S #IO.WLB,#CTYLUN,#E.FQIO,,,,<R0,R4,#40>
003034 012746 000040 MOV #40,-(SP)
003040 010446 MOV R4,-(SP)
003042 010046 MOV R0,-(SP)
003044 005046 CLR -(SP)
003046 005046 CLR -(SP)
003050 005046 CLR -(SP)
003052 112716 000001 MOVB #E.FQIO,(SP)
003056 012746 000001 MOV #CTYLUN,-(SP)
003062 012746 000400 MOV #IO.WLB,-(SP)
003066 012746 MOV (PC)+,-(SP)
003070 003 011 .BYTE 3,$$$T1
003072 104375 EMT 375
739 003074 POP <R4,R3,R2,R1,R0> ;RESTORE THE REGISTERS
003074 012604 MOV (SP)+,R4
003076 012603 MOV (SP)+,R3
003100 012602 MOV (SP)+,R2
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 10-1
ERROR PROCESSING
003102 012601 MOV (SP)+,R1
003104 012600 MOV (SP)+,R0
740 003106 POP (SP) ;RESTORE PC OVER MESSAGE ADDRESS
003106 012616 MOV (SP)+,(SP)
741 003110 RETURN ;THAT'S IT FOR TYPMSG
003110 000207 RTS PC
742 ;
743 ; PUTSTR -- PUT STRING IN TYPE-OUT BUFFER
744 ; R3 -- ADDRESS OF ASCIZ STRING
745 ; R4 -- CURRENT POINTER TO TYPE-OUT BUFFER
746 ;
747 003112 112324 PUTSTR: MOVB (R3)+,(R4)+ ;COPY A CHARACTER
748 003114 001376 BNE PUTSTR ; UNTIL ASCIZ
749 003116 105744 TSTB -(R4) ;BACK OVER ZERO BYTE
750 003120 RETURN ;RETURN FROM PUTSTR
003120 000207 RTS PC
751 ;
752 ; PUTR50 -- PUT RADIX 50 NAME IN TYPE-OUT BUFFER
753 ; R3 -- ADDRESS OF TWO-WORD RADIX 50 BLOCK
754 ; R4 -- CURRENT POINTER TO TYPE-OUT BUFFER
755 ;
756 003122 012300 PUTR50: MOV (R3)+,R0 ;GET FIRST 3 CHARS
757 003124 CALL PUTR51 ;TYPE 'EM
003124 004737 003132' JSR PC,PUTR51
758 003130 012300 MOV (R3)+,R0 ;GET NEXT THREE CHARS
759 ; BR PUTR51 ;PUT THEM, TOO
760 ;
761 ; PUTR51 -- PUT 3 RADIX 50 CHARACTERS IN TYPE-OUT BUFFER
762 ; R0 -- RADIX 50 TEXT
763 ; R4 -- CURRENT POINTER TO TYPE-OUT BUFFER
764 ;
765 003132 012702 003174' PUTR51: MOV #T50TBL,R2 ;POINT TO TABLE OF DIVISORS
766 ;
767 003136 012201 20$: MOV (R2)+,R1 ;GET NEXT DIVISOR
768 003140 001414 BEQ 90$ ;THREE HAVE BEEN DONE-- RETURN
769 003142 CALL $DIV ;DIVIDE CURRENT TEXT BY 50**N
003142 004737 000000G JSR PC,$DIV
770 003146 PUSH R1 ;SAVE THE REMAINDER
003146 010146 MOV R1,-(SP)
771 003150 012701 003204' MOV #R50TBL,R1 ;POINT TO CONVERSION TABLE
772 ;
773 003154 061100 30$: ADD (R1),R0 ;CONVERT THE CHARACTER
774 003156 105721 TSTB (R1)+ ;SKIP THE BYTE
775 003160 120021 CMPB R0,(R1)+ ;HAVE WE FOUND THE CHAR YET?
776 003162 103774 BLO 30$ ;NO-- LOOP UNTIL WE DO
777 ;
778 003164 110024 MOVB R0,(R4)+ ;YES-- SAVE THE CHAR IN TEXT
779 003166 POP R0 ;RESTORE LAST REMAINDER AS NEW DIVIDEND
003166 012600 MOV (SP)+,R0
780 003170 000762 BR 20$ ;GET ANOTHER CHARACTER
781 ;
782 003172 90$: RETURN ;FROM PUTR50/PUTR51
003172 000207 RTS PC
783 ;
784 003174 003100 000050 000001 T50TBL: .WORD 50*50,50,1,0 ;TABLE OF DIVISORS
003202 000000
785 ;
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 10-2
ERROR PROCESSING
786 003204 022 060 R50TBL: .BYTE <'0-36>-<50-50>,'0 ;36-47: 0-9
787 003206 366 045 .BYTE <'%-35>-<'0-36>,'% ;35 : %
788 003210 012 056 .BYTE <'.-34>-<'%-35>,'. ;34 : .
789 003212 367 044 .BYTE <'$-33>-<'.-34>,'$ ;33 : $
790 003214 067 101 .BYTE <'A-01>-<'$-33>,'A ;01-32: A-Z
791 003216 340 040 .BYTE <' -00>-<'A-01>,' ;00 : <SPACE>
792 .EVEN
793 ;
794 003220 015 012 111 INSMSG: .ASCIZ <15><12>/INS -- /
003223 116 123 040
003226 055 055 040
003231 000
795 003232 040 040 124 TSKMSG: .ASCIZ / TSK=/
003235 123 113 075
003240 000
796 003241 040 120 101 PARMSG: .ASCIZ / PAR=/
003244 122 075 000
797 .EVEN
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 11
END STATEMENT
799 .SBTTL END STATEMENT
800 000001 .END
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 11-1
SYMBOL TABLE
AC.ENA= 000200 DIAG3 = 174436 IE.AST= 177660 IE.ONP= 177773 IO.ENA= 006000
ALLDON 002454R DIKL10= 000010 IE.BAD= 177777 IE.OVR= 177756 IO.EOF= 003000
ATCBLK 000562R DLYCNT= 174400 IE.BBE= 177710 IE.PRI= 177760 IO.ESA= 002500
A.HA = ****** GX DON10C= 040000 IE.BDI= 177714 IE.RAC= 177724 IO.EXT= 011400
BIT0 = 000001 DON10S= 100000 IE.BDR= 177716 IE.RAT= 177723 IO.FDX= 003020
BIT1 = 000002 DON11C= 000100 IE.BDV= 177711 IE.RBG= 177730 IO.FNA= 004400
BIT10 = 002000 DON11S= 000200 IE.BHD= 177700 IE.RCN= 177722 IO.HDX= 003010
BIT11 = 004000 DPS4 = 040000 IE.BLK= 177754 IE.RER= 177740 IO.HIS= 015000
BIT12 = 010000 DRESET= 000100 IE.BNM= 177712 IE.RNM= 177715 IO.INL= 002400
BIT13 = 020000 DR.DTE= 000011 IE.BTF= 177675 IE.RSU= 177757 IO.ITI= 017000
BIT14 = 040000 DSEND = 000004 IE.BTP= 177725 IE.SDP= 177635 IO.KIL= 000012
BIT15 = 100000 DS04 = 004000 IE.BVR= 177701 IE.SNC= 177735 IO.LED= 012000
BIT2 = 000004 DS05 = 002000 IE.BYT= 177755 IE.SPC= 177772 IO.LOV= 001010
BIT3 = 000010 DS06 = 001000 IE.CKP= 177766 IE.SQC= 177734 IO.LTK= 000050
BIT4 = 000020 DTECMD= 000451 IE.CKS= 177742 IE.SRE= 177762 IO.MCS= 013400
BIT5 = 000040 DTEFLG= 000444 IE.CLO= 177732 IE.STK= 177706 IO.MDA= 016000
BIT6 = 000100 DTEF11= 000450 IE.CON= 177752 IE.ULN= 177773 IO.MDI= 014400
BIT7 = 000200 DTEMTD= 000455 IE.DAA= 177770 IE.UPN= 177777 IO.MDO= 015400
BIT8 = 000400 DTEMTI= 000456 IE.DAO= 177763 IE.VER= 177774 IO.MLO= 006000
BIT9 = 001000 DUPE = 000020 IE.DFU= 177750 IE.WAC= 177743 IO.MOD= 003000
BPARER= 000020 DURE = 000004 IE.DNA= 177771 IE.WAT= 177741 IO.MSO= 005000
BUFAIL 001270R DXWRD1= 002000 IE.DNR= 177775 IE.WER= 177737 IO.RAL= 001010
CDD = 000020 D1011 = 000040 IE.DUN= 177767 IE.WLK= 177764 IO.RAT= 013000
CHNPNT= 000001 EBSEL = 000100 IE.DUP= 177707 IE.2DV= 177720 IO.RBC= 003000
CLRBUF 002330R EBUSPC= 000020 IE.EBX= 177776 IFLOP = 100000 IO.RCI= 015000
CLSFIL 001564R EBUSPS= 000004 IE.EOF= 177766 INSHD 000000RG IO.RCV= 015000
CNUPE = 000002 EDONES= 040000 IE.EOT= 177702 INSMSG 003220R IO.RDB= 001200
CNVTBL 000576R EF.QIO= 000001 IE.EOV= 177765 INSTAL 000622RG IO.RDN= 000022
CS.EXP= 177670 EPTR = 000000 IE.EXP= 177676 INSTK 000260RG IO.REL= 013400
CTYLUN= 000001 ERR10C= 010000 IE.FEX= 177717 INTROF= 000010 IO.RHD= 001010
CYCLS = 000002 ERR10S= 020000 IE.FHE= 177705 INTRON= 000040 IO.RLB= 001000
DATE = 000004 ERR11C= 000001 IE.FOP= 177713 INTSON= 000001 IO.RLV= 001100
DCOMST= 000001 ERR11S= 000002 IE.HFU= 177744 INT10S= 000400 IO.RNA= 005400
DEFPRI= 000062 EXSP 000340R IE.HWR= 177772 INT11C= 002000 IO.RNC= 001004
DEP = 010000 E.FQIO= 000001 IE.IDU= 177644 INT11S= 004000 IO.RNE= 001020
DEX = 000400 FILADR 000452R IE.IEF= 177637 IO.ACE= 007400 IO.RTC= 003400
DEXDON= 000004 FILBLK 000416R IE.IFC= 177776 IO.ACR= 006400 IO.RTI= 016400
DEXWD1= 174406 FILCLS 002616R IE.IFU= 177747 IO.ACW= 007000 IO.RTK= 000060
DEXWD2= 174404 FILERA 001264R IE.ILL= 177726 IO.ADS= 014000 IO.RVB= 010400
DEXWD3= 174402 FILERR 002150R IE.ILU= 177640 IO.APC= 014000 IO.RWD= 002400
DFUNC = 000200 FILERX 002160R IE.INS= 177776 IO.APV= 014010 IO.RWU= 002540
DF.DMG= 000004 FILFNA 002460R IE.IPR= 177641 IO.ATT= 001400 IO.R1C= 002400
DF.DMN= 000007 FILQIO 002630R IE.ISQ= 177703 IO.CCI= 014000 IO.SAO= 004000
DF.DOR= 000001 FNDFIL 001024R IE.ITI= 177643 IO.CCT= 002460 IO.SCS= 013000
DF.EHG= 000010 FORPRO= 000020 IE.ITS= 177770 IO.CLN= 003400 IO.SDI= 013000
DF.EHM= 000011 HDRBFE 000414R IE.LCK= 177745 IO.CON= 015400 IO.SDO= 012400
DF.EMG= 000005 HDRBLK 000410R IE.LNL= 177646 IO.CRC= 001020 IO.SEC= 002520
DF.EMN= 000006 HDRBUF 000412R IE.MBK= 177721 IO.CRE= 012000 IO.SEM= 002440
DF.KLR= 000012 HIBYTE= 177400 IE.MOD= 177753 IO.CTI= 015400 IO.SHT= 002410
DF.KLW= 000013 H.IPC = 000076 IE.NBF= 177731 IO.CTL= 016400 IO.SLO= 005400
DF.KLX= 000014 H.ISP = 000100 IE.NBK= 177727 IO.DAC= 010000 IO.SMO= 002560
DF.OFF= 000002 H.LUN = 000132 IE.NFI= 177704 IO.DCI= 014400 IO.SNM= 002450
DF.ON = 000003 H.NLUN= 000130 IE.NLN= 177733 IO.DCT= 002470 IO.SPB= 002420
DF.PDP= 000016 IE.ABO= 177761 IE.NNC= 177674 IO.DEL= 012400 IO.SPF= 002440
DF.PEX= 000015 IE.ACT= 177771 IE.NOD= 177751 IO.DET= 002000 IO.SSO= 004400
DIAG1 = 174430 IE.ADP= 177636 IE.NSF= 177746 IO.DIS= 016000 IO.SST= 002430
DIAG2 = 174432 IE.ALN= 177736 IE.OFL= 177677 IO.DTI= 016000 IO.STC= 002500
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 11-2
SYMBOL TABLE
IO.STP= 016400 PARMSG 003241R RWRHDR 002532R T.PN = ****** GX .LCRM2= 056000
IO.SYN= 003040 PERCLR= 001000 R50TBL 003204R T.PZ = ****** GX .LCRM3= 055000
IO.TRM= 002410 PHYS = 100000 SCD = 000040 T.SZ = ****** GX .LCRM4= 054000
IO.UNL= 000042 PIDENT= 000000 SETLUN 001744R T50TBL 003174R .LCRM5= 053000
IO.WAT= 013400 PRI7 = 000340 SETSTD 001434R UF.TL = ****** GX .LDAR = 077000
IO.WLB= 000400 PROPNT= 000021 SF.IR = 040000 UNASG1= 000032 .LDBRL= 043000
IO.WLS= 000410 PRTOFF= 004000 SF.TA = 000001 UNASG2= 000033 .LDBRR= 042000
IO.WLV= 000500 PR0 = 000000 STAT = 174434 UNASG3= 000034 .LDCK1= 046000
IO.WVB= 011000 PR1 = 000040 STATUS= 000022 UNASG4= 000035 .LDCK2= 047000
IO.XMT= 014400 PR2 = 000100 STDADR= 000356R UNASG5= 000036 .LDDIS= 045000
IO.XNA= 014410 PR3 = 000140 SWR = 177570 UNASG6= 000037 .LDRJD= 064000
IPAERR 001530R PR4 = 000200 SWSLLT= 100000 U.ACP = ****** GX .LDRJV= 063000
IQ.Q = 000002 PR5 = 000240 SYMNTD 001014R U.DACP= ****** GX .LDRM1= 060000
IQ.X = 000001 PR6 = 000300 S.DRFN= 000034 U.DN = ****** GX .LDRM2= 061000
IS.BV = 000005 PR7 = 000340 S.FW = ****** GX U.FB = ****** GX .LDRM3= 062000
IS.CLR= 000000 PS = 177776 S.TD = ****** GX U.RP = ****** GX .LDSEL= 044000
IS.CR = 006401 PSWW1 = 000005 TASKNF 001160R U.SZ = 000050 .MEMRS= 076000
IS.ESC= 015401 PSWW10= 000014 TENAD1= 174410 U.UN = ****** GX .PCAB1= 150000
IS.PND= 000000 PSWW11= 000015 TENAD2= 174412 U.VA = ****** GX .PCAB2= 151000
IS.RDD= 000002 PSWW12= 000016 TNCERR 001554R WEP = 000010 .PCAB3= 152000
IS.SET= 000002 PSWW13= 000017 TNFERR 001250R WRTHDR 002526R .PCAB4= 153000
IS.SUC= 000001 PSWW2 = 000006 TOBM = 000004 ZSTOP = 040000 .POLLH= ****** GX
KLPWRF= 000010 PSWW3 = 000007 TOD = 000003 $DIV = ****** GX .PUDBA= ****** GX
LBLBFE 000406R PSWW4 = 000010 TOIP = 000002 $DSW = ****** GX .PUDEA= ****** GX
LBLBLK 000400R PSWW5 = 000011 TOIT = 000001 $$ = 000037 .RCRM1= 147000
LBLBUF 000404R PSWW6 = 000012 TO10 = 000200 $$MSG = 000000 .RCRM2= 146000
LBLNUM 000402R PSWW7 = 000013 TO10AD= 174420 $$$ = 000222R 002 .RCRM3= 145000
LOAD11= 000004 PUDADR 000376R TO10BC= 174414 $$$ARG= 000003 .RCRM4= 144000
L$BBLK= 000024 PULSE = 000020 TO10BM= 000001 $$$T1 = 000011 .RCSPF= 141000
L$BFLG= 000010 PUTR50 003122R TO10DB= 000400 $$$T2 = 000000 .RDJ14= 134000
L$BHRB= 000022 PUTR51 003132R TO10DN= 100000 .BGBUF= ****** GX .RDJ71= 135000
L$BLDZ= 000014 PUTSTR 003112R TO10DT= 174424 .BRCLK= 005000 .RDMAB= 133000
L$BMXZ= 000016 QIOSTS 000456R TO10ER= 020000 .CECLK= 004000 .SECLK= 003000
L$BPAR= 000004 QSIZE = 000023 TO11 = 000100 .CLRMR= 006000 .SETMR= 007000
L$BPRI= 000012 RAMIS0= 010000 TO11AD= 174422 .CLRUN= 010000 .SETRN= 011000
L$BSA = 000020 RCVBLK 000340R TO11BC= 174416 .CONBT= 012000 .SSCLK= 002000
L$BTSK= 000000 REDHDR 002514R TO11BM= 020000 .CRTSK= ****** GX .STDTA= ****** GX
MNTBLK 000570R REDLBL 002556R TO11DB= 004000 .CSHRG= 164000 .STDTZ= ****** GX
MPE11 = 001000 REQBLK 000344R TO11DN= 000200 .DRLTC= 015000 .STPCL= 000000
NULSTP= 000040 REQTSK 002342R TO11DT= 174426 .DSACF= 066000 .STRCL= 001000
NUPE = 000002 RETALL 002252R TO11ER= 000002 .DSIOJ= 065000 .TPDBA= ****** GX
NXTHDR 002500R RETBUF 002274R TSKFND 001302R .EIOJA= 067000 .TPDEA= ****** GX
N.DID = 000024 RETNOD 002164R TSKLUN= 000002 .EXEND 000556RG .WRMBX= 071000
N.FID = 000000 RETXXX 002554R TSKMSG 003232R .GFNR = 102000 ..ALC2= ****** GX
N.FNAM= 000006 RFMAD0= 100000 TTBERR 001542R .INICL= 070000 ..DEC2= ****** GX
N.FTYP= 000014 RFMAD1= 040000 TTPEN = ****** GX .IRLTC= 014000 ..ENB0= ****** GX
N.FVER= 000016 RFMAD2= 020000 TYPBUF 000462R .LCRDL= 052000 ..FSTD= ****** GX
N.NEXT= 000022 RFMAD3= 010000 TYPMSG 002710R .LCRDR= 051000 ..NADD= ****** GX
N.STAT= 000020 RM = 000010 T.BA = ****** GX .LCRM1= 057000 ...GBL= 000000
PARFND 001566R RWRBLK 002610R
. ABS. 000000 000
003250 001
TEXT 000246 002
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 7794 WORDS ( 31 PAGES)
DYNAMIC MEMORY: 8384 WORDS ( 32 PAGES)
INSTAL -- TASK INSTALLER FOR RS MACRO M1108 13-JAN-78 14:03 PAGE 11-3
SYMBOL TABLE
ELAPSED TIME: 00:02:16
,[100,20]INSTALLIS/-SP/CRF=[100,30]INSTAL
INSTALLIS CREATED BY MACRO ON 13-JAN-78 AT 14:05 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
AC.ENA = 000200 #2-118 5-353
ALLDON 002454 R 7-556 8-606 8-611 #8-617
ATCBLK 000562 R #3-165 5-351
A.HA = ****** GX 4-218
BIT0 = 000001 #2-52 2-95
BIT1 = 000002 #2-52
BIT10 = 002000 #2-52
BIT11 = 004000 #2-52
BIT12 = 010000 #2-52
BIT13 = 020000 #2-52
BIT14 = 040000 #2-52
BIT15 = 100000 #2-52
BIT2 = 000004 #2-52
BIT3 = 000010 #2-52
BIT4 = 000020 #2-52
BIT5 = 000040 #2-52
BIT6 = 000100 #2-52
BIT7 = 000200 #2-52 2-118
BIT8 = 000400 #2-52
BIT9 = 001000 #2-52
BPARER = 000020 #2-52
BUFAIL 001270 R #5-325 5-335 5-342
CDD = 000020 #2-52
CHNPNT = 000001 #2-52
CLRBUF 002330 R 4-207 4-207 7-588 #7-591
CLSFIL 001564 R 6-402 6-405 6-408 #6-412
CNUPE = 000002 #2-52
CNVTBL 000576 R #3-178 7-521
CS.EXP = 177670 #2-52
CTYLUN = 000001 #2-89 10-738
CYCLS = 000002 #2-52
DATE = 000004 #2-52
DCOMST = 000001 #2-52
DEFPRI = 000062 #2-82 6-421
DEP = 010000 #2-52
DEX = 000400 #2-52
DEXDON = 000004 #2-52
DEXWD1 = 174406 #2-52
DEXWD2 = 174404 #2-52
DEXWD3 = 174402 #2-52
DFUNC = 000200 #2-52
DF.DMG = 000004 #2-52
DF.DMN = 000007 #2-52
DF.DOR = 000001 #2-52
DF.EHG = 000010 #2-52
DF.EHM = 000011 #2-52
DF.EMG = 000005 #2-52
DF.EMN = 000006 #2-52
DF.KLR = 000012 #2-52
DF.KLW = 000013 #2-52
DF.KLX = 000014 #2-52
DF.OFF = 000002 #2-52
INSTALLIS CREATED BY MACRO ON 13-JAN-78 AT 14:05 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DF.ON = 000003 #2-52
DF.PDP = 000016 #2-52
DF.PEX = 000015 #2-52
DIAG1 = 174430 #2-52
DIAG2 = 174432 #2-52
DIAG3 = 174436 #2-52
DIKL10 = 000010 #2-52
DLYCNT = 174400 #2-52
DON10C = 040000 #2-52
DON10S = 100000 #2-52
DON11C = 000100 #2-52
DON11S = 000200 #2-52
DPS4 = 040000 #2-52
DRESET = 000100 #2-52
DR.DTE = 000011 #2-52
DSEND = 000004 #2-52
DS04 = 004000 #2-52
DS05 = 002000 #2-52
DS06 = 001000 #2-52
DTECMD = 000451 #2-52
DTEFLG = 000444 #2-52
DTEF11 = 000450 #2-52
DTEMTD = 000455 #2-52
DTEMTI = 000456 #2-52
DUPE = 000020 #2-52
DURE = 000004 #2-52
DXWRD1 = 002000 #2-52
D1011 = 000040 #2-52
EBSEL = 000100 #2-52
EBUSPC = 000020 #2-52
EBUSPS = 000004 #2-52
EDONES = 040000 #2-52
EF.QIO = 000001 #2-95
EPTR = 000000 #2-52
ERR10C = 010000 #2-52
ERR10S = 020000 #2-52
ERR11C = 000001 #2-52
ERR11S = 000002 #2-52
EXSP 000340 R #3-138 4-203
E.FQIO = 000001 #2-94 9-700 10-738
FILADR 000452 R #3-154 3-167 6-466 6-468
FILBLK 000416 R #3-153 4-248 4-269 4-286 5-350 9-629
FILCLS 002616 R 7-548 7-548 7-554 7-554 #9-685
FILERA 001264 R #5-321 5-356 5-362 5-366
FILERR 002150 R 5-321 7-490 7-500 7-538 7-543 #7-553
FILERX 002160 R 6-412 #7-554
FILFNA 002460 R 4-263 4-263 4-293 4-293 #9-625
FILQIO 002630 R 4-239 4-239 5-355 5-355 9-630 9-681 #9-700
FNDFIL 001024 R 4-223 #4-248 4-312
FORPRO = 000020 #2-52
HDRBFE 000414 R #3-152 *5-345 9-636
HDRBLK 000410 R #3-150 *5-364 *9-644 9-658
INSTALLIS CREATED BY MACRO ON 13-JAN-78 AT 14:05 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
HDRBUF 000412 R #3-151 *5-343 7-587 *7-592 9-657
HDR64 = ****** 6-432
HIBYTE = 177400 #2-52
H.IPC = 000076 #2-99 6-461
H.ISP = 000100 #2-100 6-462
H.LUN = 000132 #2-102 4-219
H.NLUN = 000130 #2-101 7-482
IE.ACT = 177771 8-610
IFLOP = 100000 #2-52
INSHD 000000 RG #3-135
INSMSG 003220 R 10-718 #10-794
INSTAL 000622 RG 3-135 3-135 #4-203 4-205 8-617
INSTK 000260 RG 3-135 #3-135
INTROF = 000010 #2-52
INTRON = 000040 #2-52
INTSON = 000001 #2-52
INT10S = 000400 #2-52
INT11C = 002000 #2-52
INT11S = 004000 #2-52
IO.ACW = 007000 5-349
IO.APV = 014010 4-234
IO.DAC = 010000 9-685
IO.FNA = 004400 9-625
IO.RVB = 010400 9-645 9-667
IO.WLB = 000400 10-738
IO.WVB = 011000 9-650
IPAERR 001530 R #6-405 6-456
KLPWRF = 000010 #2-52
KT11 = ****** 6-404 6-454
LBLBFE 000406 R #3-149 *5-338 7-485 7-494
LBLBLK 000400 R #3-146 *5-360 7-497 *9-669 9-670
LBLBUF 000404 R #3-148 *5-336 7-583 *7-591 9-668
LBLNUM 000402 R #3-147 *6-474 7-497
LOAD11 = 000004 #2-52
L$BBLK = 000024 #2-114
L$BFLG = 000010 #2-108
L$BHRB = 000022 #2-113 5-364
L$BLDZ = 000014 #2-110
L$BMXZ = 000016 #2-111
L$BPAR = 000004 #2-107
L$BPRI = 000012 #2-109
L$BSA = 000020 #2-112
L$BTSK = 000000 #2-106
MNTBLK 000570 R #3-170 4-236
MPE11 = 001000 #2-52
NULSTP = 000040 #2-52
NUPE = 000002 #2-52
NXTHDR 002500 R 7-489 7-489 7-537 7-537 #9-636
N.DID = 000024 #2-128
N.FID = 000000 #2-122 4-286 5-350
N.FNAM = 000006 #2-123 4-248 4-269
N.FTYP = 000014 #2-124
INSTALLIS CREATED BY MACRO ON 13-JAN-78 AT 14:05 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
N.FVER = 000016 #2-125
N.NEXT = 000022 #2-127
N.STAT = 000020 #2-126
PARFND 001566 R 6-396 #6-416
PARMSG 003241 R 10-729 #10-796
PERCLR = 001000 #2-52
PHYS = 100000 #2-52
PIDENT = 000000 #2-52
PRI7 = 000340 #2-52
PROPNT = 000021 #2-52
PRTOFF = 004000 #2-52
PR0 = 000000 #2-52
PR1 = 000040 #2-52
PR2 = 000100 #2-52
PR3 = 000140 #2-52
PR4 = 000200 #2-52
PR5 = 000240 #2-52
PR6 = 000300 #2-52
PR7 = 000340 #2-52
PS = 177776 #2-52 7-557 7-557 8-599 8-599
PSWW1 = 000005 #2-52
PSWW10 = 000014 #2-52
PSWW11 = 000015 #2-52
PSWW12 = 000016 #2-52
PSWW13 = 000017 #2-52
PSWW2 = 000006 #2-52
PSWW3 = 000007 #2-52
PSWW4 = 000010 #2-52
PSWW5 = 000011 #2-52
PSWW6 = 000012 #2-52
PSWW7 = 000013 #2-52
PUDADR 000376 R #3-145 *4-221 *4-311 6-423 7-506
PULSE = 000020 #2-52
PUTR50 003122 R 10-725 10-725 10-732 10-732 #10-756
PUTR51 003132 R 10-757 10-757 #10-765
PUTSTR 003112 R 10-719 10-719 10-721 10-721 10-723 10-723 10-730 10-730 #10-747
10-748
QIOSTS 000456 R #3-155 9-700 9-703
QSIZE = 000023 #2-52
RAMIS0 = 010000 #2-52
RCVBLK 000340 R #3-142 4-204 4-227
REDHDR 002514 R 5-365 5-365 #9-644
REDLBL 002556 R 5-361 5-361 7-499 7-499 #9-666
REQBLK 000344 R #3-143 3-144 4-268 6-377 7-558 8-602 8-603 10-724
REQTSK 002342 R 7-549 #8-599
RETALL 002252 R #7-575
RETBUF 002274 R 5-325 5-325 7-547 7-547 7-576 #7-581
RETNOD 002164 R 4-315 #7-556 8-613
RETXXX 002554 R 9-637 9-639 #9-662
RFMAD0 = 100000 #2-52
RFMAD1 = 040000 #2-52
RFMAD2 = 020000 #2-52
INSTALLIS CREATED BY MACRO ON 13-JAN-78 AT 14:05 PAGE 5
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
RFMAD3 = 010000 #2-52
RM = 000010 #2-52
RWRBLK 002610 R 9-659 9-659 9-671 9-671 #9-680
RWRHDR 002532 R 9-646 #9-656
R50TBL 003204 R 10-771 #10-786
SCD = 000040 #2-52
SETLUN 001744 R #7-482
SETSTD 001434 R #6-375
SF.IR = 040000 #2-86 8-601
SF.TA = 000001 #2-85 8-601
STAT = 174434 #2-52
STATUS = 000022 #2-52
STDADR = 000356 R #3-144 6-375 7-575 *7-579 8-600 10-726
SWR = 177570 #2-52
SWSLLT = 100000 #2-52
SYMNTD 001014 R 4-240 #4-244
S.DRFN = 000034 #2-129 3-153
S.FW = ****** GX *8-601
S.TD = ****** GX 10-727
TASKNF 001160 R 4-215 4-242 4-264 #4-299 4-303 4-305 4-307 4-310
TENAD1 = 174410 #2-52
TENAD2 = 174412 #2-52
TNCERR 001554 R #6-410 6-470
TNFERR 001250 R 4-301 #4-314
TOBM = 000004 #2-52
TOD = 000003 #2-52
TOIP = 000002 #2-52
TOIT = 000001 #2-52
TO10 = 000200 #2-52
TO10AD = 174420 #2-52
TO10BC = 174414 #2-52
TO10BM = 000001 #2-52
TO10DB = 000400 #2-52
TO10DN = 100000 #2-52
TO10DT = 174424 #2-52
TO10ER = 020000 #2-52
TO11 = 000100 #2-52
TO11AD = 174422 #2-52
TO11BC = 174416 #2-52
TO11BM = 020000 #2-52
TO11DB = 004000 #2-52
TO11DN = 000200 #2-52
TO11DT = 174426 #2-52
TO11ER = 000002 #2-52
TSKFND 001302 R 4-294 #5-332
TSKLUN = 000002 #2-90 4-214 4-219 4-309 9-700
TSKMSG 003232 R 10-722 #10-795
TTBERR 001542 R #6-408 6-453
TTPEN = ****** GX 3-135
TYPBUF 000462 R #3-156 10-717 10-736
TYPMSG 002710 R 4-241 4-241 4-244 4-244 4-314 4-314 6-402 6-402 6-405
6-405 6-408 6-408 6-410 6-410 7-553 7-553 8-613 8-613
INSTALLIS CREATED BY MACRO ON 13-JAN-78 AT 14:05 PAGE 6
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#10-716
T.BA = ****** GX 6-431 6-455
T.PN = ****** GX 6-393 6-395
T.PZ = ****** GX 6-452
T.SZ = ****** GX 6-398
T50TBL 003174 R 10-765 #10-784
UF.TL = ****** GX 4-304
UNASG1 = 000032 #2-52
UNASG2 = 000033 #2-52
UNASG3 = 000034 #2-52
UNASG4 = 000035 #2-52
UNASG5 = 000036 #2-52
UNASG6 = 000037 #2-52
U.ACP = ****** GX *4-232
U.DACP = ****** GX 4-230
U.DN = ****** GX 4-309 7-512
U.FB = ****** GX 4-304
U.RP = ****** GX 4-220 4-302
U.SZ = 000050 #2-84 4-211 4-299 6-427 7-517
U.UN = ****** GX 4-309 7-514
U.VA = ****** GX 4-222 4-306
WEP = 000010 #2-52
WRTHDR 002526 R 7-542 7-542 9-638 9-638 #9-650
ZSTOP = 040000 #2-52
$DIV = ****** GX 10-769 10-769
$DSW = ****** GX 8-605 8-610
$$ = 000037 #4-207 4-207 #4-231 4-231 #4-239 4-239 #4-241 4-241 #4-244
4-244 #4-263 4-263 #4-293 4-293 #4-314 4-314 #5-325 5-325
#5-334 5-334 #5-341 5-341 #5-355 5-355 #5-361 5-361 #5-365
5-365 #6-402 6-402 #6-405 6-405 #6-408 6-408 #6-410 6-410
#7-489 7-489 #7-499 7-499 #7-537 7-537 #7-542 7-542 #7-547
7-547 #7-548 7-548 #7-553 7-553 #7-554 7-554 #7-559 7-559
#7-571 7-571 #7-578 7-578 #7-585 7-585 #7-589 7-589 #8-604
8-604 #8-613 8-613 #9-638 9-638 #9-659 9-659 #9-671 9-671
#10-719 10-719 #10-721 10-721 #10-723 10-723 #10-725 10-725 #10-730
10-730 #10-732 10-732 #10-757 10-757 #10-769 10-769
$$$ = 000222 R #4-241 4-241 #4-244 4-244 #4-314 4-314 #6-402 6-402 #6-405
6-405 #6-408 6-408 #6-410 6-410 #7-553 7-553 #8-613 8-613
$$$ARG = 000003 #4-214 4-214 #4-214 4-214 #4-214 4-214 #4-214 4-214 4-214
4-214 4-214 4-214 4-214 4-214 4-214 4-214 4-214 #4-309
4-309 #4-309 4-309 #4-309 4-309 #4-309 4-309 4-309 4-309
4-309 4-309 4-309 4-309 4-309 4-309 4-309 #9-700 9-700
9-700 9-700 9-700 9-700 9-700 9-700 9-700 9-700 9-700
9-700 #10-738 10-738 10-738 10-738 10-738 10-738 10-738 10-738
10-738 10-738 10-738 10-738
$$$T1 = 000011 #4-204 4-204 #9-700 9-700 #10-738 10-738
$$$T2 = 000000 #8-603 8-603
.BGBUF = ****** GX 5-332 5-339 7-582
.BRCLK = 005000 #2-52
.CECLK = 004000 #2-52
.CLRMR = 006000 #2-52
.CLRUN = 010000 #2-52
INSTALLIS CREATED BY MACRO ON 13-JAN-78 AT 14:05 PAGE 7
SYMBOL CROSS REFERENCE