mirror of
https://github.com/livingcomputermuseum/cpus-pdp8.git
synced 2026-01-12 00:12:44 +00:00
4432 lines
213 KiB
Plaintext
4432 lines
213 KiB
Plaintext
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 1
|
||
|
||
|
||
1 /TSS-8.25 CONFIGURATION FOR UWM
|
||
2 /CONFIGURATION PARAMETERS FOR THE TSS/8 MONITOR
|
||
3 /COPYRIGHT 1971 - DIGITAL EQUIPMENT CORPORATION; MAYNARD, MASS.
|
||
4 /
|
||
5 /TSS-8 SYSTEM PARAMETERS AND OPTIONS. FOR EACH PARAMETER,
|
||
6 /THE COMMENT INIDCATES THE POSSIBLE RESPONSES.
|
||
7
|
||
8 0000 DEBUG= 0 /SYSTEM DEBUGGING CONTROL:
|
||
9 / =0, PRODUCTION SYSTEM (AUTO-RESTARTS & ERROR FIXUP)
|
||
10 / =1, SYSTEM RELIABILITY (JUST AUTO-RESTARTS)
|
||
11 / =2, SYSTEM DEBUGGING (SYSTEM HALTS ON ERROR)
|
||
12 / =3, FULL CHECKING (THOROUGH 'RETB' CHECK)
|
||
13 /BITS 0-8, AVAILABLE FOR LOCAL SWITCHES:
|
||
14 / 4000 - ENABLE MQ MEMORY DISPLAY (IN TIMER)
|
||
15
|
||
16 0002 CPU= 2 /0 IF CPU IS PDP-8/I; 1 IF PDP-8
|
||
17 / 2 IF PDP-8/E; 3 IF PDP-12; 4 IF PDP-8/A
|
||
18
|
||
19 0000 EAE= 0 /20 IF CPU INCLUDES EAE; 0 IF NOT
|
||
20
|
||
21 0070 CORMEM= 70 /HIGHEST DATA FIELD SELECT; FOR 12K SYS,
|
||
22 / RESPOND 20; FOR 16K, RESPOND 30; FOR 32K, 70
|
||
23
|
||
24 0000 D680= 0 /2 IF TTY INTERFACING IS 680 OR DC08;
|
||
25 / 0 IF TTY INTERFACING IS PT08'S
|
||
26
|
||
27 0000 PHONES= 0 /1 IF 680 OR DC08 INCLUDES 689 OR DC08F;
|
||
28 / 0 IF IT DOESN'T OR TTY INTERFACING IS PT08'S
|
||
29
|
||
30 0000 RF08= 0 /40 IF SYSTEM DISC IS DF32; 0 IF RF08
|
||
31
|
||
32 0001 RS08= 1 /# OF DISCS IN SYSTEM, WHETHER RF08 OR DF32
|
||
33
|
||
34 0001 RK05= 1 /# OF NONSYSTEM RK05 DRIVES
|
||
35
|
||
36 0000 RK8E= 0 /# OF RK8E DRIVES; ONLY FIRST IS USED FOR SYSTEM
|
||
37 / THE REMAINDER ARE TREATED AS PERIPHERALS
|
||
38
|
||
39 0001 READER= 1 /1 IF SYSTEM INCLUDES HIGH-SPEED READER; 0 IF NOT
|
||
40
|
||
41 0001 PUNCH= 1 /1 IF SYS HAS HSP, 0 IF NOT
|
||
42
|
||
43 0001 TC01= 1 /1 IF SYS HAS DECTAPES; 0 IF NOT
|
||
44
|
||
45
|
||
46 0000 TD8E= 0 /1 IF TD8E DECTAPES AVAILABLE FOR LOADING & DUMPING
|
||
47 / 0 IF NOT; NOTE THAT TD8E TAPES CANNOT BE USED UNDER
|
||
48 / TSS/8, THEY REQUIRE CONTINUOUS CPU ATTENTION
|
||
49
|
||
50 0003 LPT= 3 /0 IF NO PRINTER ON SYS; 1 IF LP08; 2 IF LS8E; 3 IF NONSTANDARD
|
||
51
|
||
52 0000 CDR= 0 /NO SYS CAN HAVE CARD READER
|
||
53 /
|
||
54 /MONITOR OPTIONS
|
||
55 /FILL IN THE FOLLOWING LINES TO INDICATE THE
|
||
56 /MONITOR CAPACITY FOR THIS SYSTEM
|
||
57
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 2
|
||
|
||
|
||
58 DECIMAL
|
||
59 0024 JOBMAX= 20 /NUMBER OF SIMULTANEOUS USERS (.LE. 20)
|
||
60
|
||
61 0001 CONTTY= 1 / (ALWAYS HAVE A CONSOLE)
|
||
62
|
||
63 0000 DC08A= 0 /NUMBER OF TERMINALS VIA DC08A (PDP-8/I ONLY, 19 MAX)
|
||
64
|
||
65 0000 DC08LO= 0 /LOWEST LINE-NUMBER USED ON DC08A
|
||
66
|
||
67 0000 PT08= 0 /NUMBER OF TERMINALS VIA PT08 (PDP-8 & PDP-8/I ONLY)
|
||
68
|
||
69 0017 KL8= 15 /NUMBER OF TERMINALS VIA KL8E (PDP-8/E ONLY, 19 MAX)
|
||
70
|
||
71 0003 CDVIN= 3 /NONSTANDARD INPUT CHARACTER DEVICES (HIGHEST USED)
|
||
72 / 1 = R2; 2 = X0; 3 = X1; 4 = X2; 5 = X3
|
||
73
|
||
74 0004 CDVOUT= 4 /NONSTANDARD OUTPUT CHARACTER DEVICES (HIGHEST USED)
|
||
75 / 1 = P2; 2 = L2; 3 = Y0; 4 = Y1; 5 = Y2; 6 = Y3
|
||
76
|
||
77 0012 TRUKBD= 10 /NUMBER OF ACTUAL KEYBOARDS ON SYSTEM (NOT COUNTING
|
||
78 / CONSOLE TTY). THIS MUST BE .LE. NULINE; NULINE
|
||
79 / MAY INCLUDE DUMMY TERMINALS, THIS MAY NOT.
|
||
80
|
||
81 0012 FRCMAX= TRUKBD /THE HIGHEST KEYBOARD # A '00XX' ACCT # MAY FORCE
|
||
82 / NOTE THAT A '000X' ACCOUNT MAY FORCE UP TO 'NULINE'
|
||
83
|
||
84 0012 TLKMAX= TRUKBD /THE HIGHEST KEYBOARD # WHICH MAY BE 'TALK'ED TO
|
||
85
|
||
86 0012 BRDMAX= TRUKBD /THE HIGHEST KEYBOARD WHICH WILL RECEIVE BROADCASTS
|
||
87 OCTAL
|
||
88
|
||
89 0002 DTAMIN= 2 /THE FIRST DECTAPE DRIVE WHICH WILL BE ASSIGNED
|
||
90 / FOR 'ASSIGN D' COMMAND; NORMALLY =0, BUT MAY
|
||
91 / VARY FOR SLIGHTLY RESTRICTED DRIVE USE.
|
||
92
|
||
93 0007 BILLNG= 7 /THE ACCOUNT NUMBER OF THE BILLING SYSTEM
|
||
94 / 0, IF NO BILLING SYSTEM USED
|
||
95 /
|
||
96 /SYSTEM CONSTANTS
|
||
97
|
||
98 0020 INFLD= 20 /FIELD SELECT THAT 'INIT' SHOULD BE BOOTED INTO
|
||
99 / MAKING IT 20 AVOIDS PROBLEMS SHOULD A
|
||
100 / FIELD NEED REPAIR & SYSTEM IS RUN ON 12K
|
||
101 0001 TTYEVEN=1 /1 INDICATES PARITY TTY MAY BE USED WITH SYS
|
||
102 / 0 ALLOWS ONLY DEC MODIFIED TTYS
|
||
103
|
||
104 /// END OF SYSTEM CONFIGURATION PARAMETERS
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 3
|
||
|
||
|
||
105
|
||
106 /PARAMETERS - UWM VERSION 25
|
||
107 /
|
||
108 /COPYRIGHT 1971 DIGITAL EQUIPMENT CORPORATION
|
||
109 / MAYNARD, MASSACHUSETTS
|
||
110 /
|
||
111 /EXTENSIVELY MODIFIED AND CORRECTED BY
|
||
112 / RICHARD BARTLEIN, 1974, 1976
|
||
113 / UNIVERSITY OF WISCONSIN - MILWAUKEE
|
||
114 /
|
||
115 0031 VERNUM= 31 /SYSTEM VERSION NUMBER
|
||
116 /
|
||
117 0000 IFZERO DC08A <D689=0>
|
||
118 IFNZRO DC08A <
|
||
119 IFNZRO PHONES <D689=4>
|
||
120 IFZERO PHONES <D689=0>>
|
||
121
|
||
122 0017 NULINE= DC08A+PT08+KL8 /NUMBER OF TERMINALS LESS CONSOLE
|
||
123 37777777772 QUANT= -6 /NUMBER OF SYSTEM TICKS PER TIME SLICE
|
||
124 0000 PLT= 0
|
||
125 0005 STOMIN= 5 /MINIMUM # FREE STORAGE BLOCKS FOR NEW JOB
|
||
126 0005 SWDEX= 5 /DISC TRACK OF FIRST SWAP AREA
|
||
127 0024 TICSPS= 24 /NUMBER OF SYSTEM TICKS PER SECOND
|
||
128
|
||
129 IFZERO RK8E <
|
||
130 IFZERO RF08-40 <
|
||
131 DSKSIZ= RS08^10
|
||
132 >
|
||
133 IFZERO RF08 <
|
||
134 0100 DSKSIZ= RS08^100 /# OF 4K DISC TRACKS
|
||
135 >>
|
||
136 IFNZRO RK8E <
|
||
137 DSKSIZ= 400 /# OF 4K DISC TRACKS
|
||
138 >
|
||
139 0062 CLOCKR= TICSPS%2+1750%TICSPS /MILLISECONDS PER SYSTEM TICK
|
||
140 0645 INCLK2= 0645 /1,728,000 TICKS PER DAY
|
||
141 17000 INCLK1= 600^TICSPS / (LOW 12 BITS OF 86,400 SECS/DAY * TICKS/SEC)
|
||
142 2260 TICMIN= 74^TICSPS /SYSTEM TICKS PER MINUTE
|
||
143
|
||
144 0010 INIDEX= 10 /INIT DISC EXTENSION
|
||
145 0030 TS8DEX= 30 /FIELD 0 DISC EXTENSION*2^3
|
||
146 0000 ERPDEX= 0 /ERP DISC EXTENSION*4
|
||
147 0000 ERPWC= 0 /ERP WORD COUNT
|
||
148 0004 FIPDEX= 4 /FIP DISC EXTENSION*4
|
||
149 0000 FIPWC= 0 /FIP WORD COUNT
|
||
150 0000 SIDEX= ERPDEX /SI DISC EXTENSION*4
|
||
151 0000 SIWC= ERPWC /SI WORD COUNT
|
||
152 0002 LIBACT= 2 /LIBRARY ACCOUNT #
|
||
153 4000 BRKINI= 4000 /INITIAL USER BREAK MASK
|
||
154 0400 WRDSEG= 400 /#WORDS PER DISC SEGMENT
|
||
155
|
||
156 /IOT DEFINITIONS
|
||
157
|
||
158 IFZERO D680-2 <
|
||
159 TTINCR= 6401 /INCREMENT LINE REGISTER
|
||
160 TTI= 6402 /TELETYPE INPUT COMMAND
|
||
161 TTO= 6404 /TELETYPE OUTPUT COMMAND
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 4
|
||
|
||
|
||
162 TTCL= 6411 /CLEAR LINE REGISTER
|
||
163 TTSL= 6412 /SET LINE REGISTER, CLEAR AC
|
||
164 TTRL= 6414 /READ LINE REGISTER
|
||
165 T8SKP= 6421 /SKIP ON CLOCK FLAG
|
||
166 T8OFF= 6422 /TURN CLOCK OFF
|
||
167 TT8ON= 6424 /TURN CLOCK ON
|
||
168 TTRINC= 6461 /INCREMENT THE R REG.
|
||
169 TT8CLR= 6473 /CLEAR AND LOAD THE R REG.
|
||
170 >
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 5
|
||
|
||
|
||
171 /EXTENDED MEMORY
|
||
172
|
||
173 6201 CDF= 6201 /CHANGE TO DATA FIELD 0
|
||
174 6202 CIF= 6202 /CHANGE TO INSTRUCTION FIELD 0
|
||
175 6203 CDI= 6203 /CHANGE DATA & INSTRUCTION FIELDS
|
||
176 6204 CINT= 6204 /CLEAR USER IOT
|
||
177
|
||
178 6214 RDF= 6214 /READ DATA FIELD
|
||
179 6224 RIF= 6224 /READ INSTRUCTION FIELD
|
||
180 6234 RIB= 6234 /READ INTERRUPT BUFFER
|
||
181 6244 RMF= 6244 /RESTORE MEMORY FIELD
|
||
182 6254 SINT= 6254 /SKIP ON USER IOT
|
||
183 6264 CUF= 6264 /USER FLAG OFF
|
||
184 6274 SUF= 6274 /USER FLAG ON
|
||
185
|
||
186 /EAE
|
||
187 IFZERO EAE-20 <
|
||
188 MUY= 7405 /MULTIPLY
|
||
189 DVI= 7407 /DIVIDE
|
||
190 NMI= 7411 /NORMALIZE
|
||
191 SHL= 7413 /SHIFT ARITHMETIC LEFT
|
||
192 ASR= 7415 /ARITHMETIC SHIFT RIGHT
|
||
193 LSR= 7417 /LOGICAL SHIFT RIGHT
|
||
194 MQL= 7421 /LOAD MQ
|
||
195 SCL= 7403 /STEP COUNTER LOAD FROM MEMORY
|
||
196 SCA= 7441 /STEP COUNTER TO AC
|
||
197 MQA= 7501 /MQ TO AC
|
||
198
|
||
199 IFZERO CPU-2 <
|
||
200 DPSZ= 7451 /SKIP IF AC=MQ=0 (MODE B ONLY)
|
||
201 SAM= 7453 /SUBTRACT AC FROM MQ
|
||
202 SKB= 7671 /SKIP IF MODE B (MESSES UP AC AND MQ)
|
||
203 SWBA= 7447 /CHANGE MODE TO A
|
||
204 SWAB= 7431 /CHANGE MODE TO B (ALSO DOES MQL)
|
||
205 ACS= 7403 /AC(7:11) TO SC; AC CLEARED
|
||
206 >>
|
||
207 IFZERO CPU-2 <
|
||
208 6003 SRQ= 6003 /SKIP ON INTERRUPT REQUEST
|
||
209 6004 GTF= 6004 /LINK TO AC0, GT FLAG TO AC1
|
||
210 6005 RTF= 6005 /AC0 TO LINK, AC1 TO GT FLAG
|
||
211 6006 SGT= 6006 /SKIP ON GT FLAG
|
||
212 6007 CAF= 6007 /CLEAR ALL FLAGS
|
||
213 6102 SPL= 6102 /SKIP ON POWER LOW
|
||
214 >
|
||
215
|
||
216 IFZERO CPU-4 <
|
||
217 SPL= 6102 /SKIP ON POWER LOW
|
||
218 CAL= 6133 /CLEAR POWER LOW FLAG
|
||
219 >
|
||
220
|
||
221 /LINE PRINTER IOTS
|
||
222 6661 LSF= 6661 /SKIP ON CHAR FLAG SET
|
||
223 6662 LCF= 6662 /CLEAR CHAR FLAG
|
||
224 6663 LSRP= 6663 /SKIP ON NOT READY OR ON ERROR
|
||
225 6664 LLC= 6664 /TRANSMIT CHAR TO PRINTER
|
||
226 6665 LIE= 6665 /AC11 TO INTERRUPT ENABLE (LS08/LS8E)
|
||
227 6665 LSP= 6665 /SET PROGRAM INTERRUPT (LP08/LE8)
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 6
|
||
|
||
|
||
228 6666 LPC= 6666 /TRANSMIT CHAR & CLEAR FLAG
|
||
229 6667 LCP= 6667 /CLEAR PROGRAM INTERRUPT
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 7
|
||
|
||
|
||
230 /CTY
|
||
231
|
||
232 6044 TPC= 6044 /LOAD TELEPRINTER AND PRINT
|
||
233
|
||
234 /DISC (DF32)
|
||
235
|
||
236 6601 DCMA= 6601 /CLEAR
|
||
237 6603 DMAR= 6603 /READ
|
||
238 6605 DMAW= 6605 /WRITE
|
||
239 6611 DCEA= 6611 /CLEAR DISC EXTENDED ADDRESS
|
||
240 6615 DEAL= 6615 /LOAD EXTENDED ADDRESS
|
||
241 6621 DFSE= 6621 /SKIP ON ERROR
|
||
242 6622 DFSC= 6622 /SKIP ON COMPLETION
|
||
243 6616 DEAC= 6616 /READ EXTENDED ADDRESS
|
||
244
|
||
245 /DISC (RF08)
|
||
246
|
||
247 6615 DIML= 6615
|
||
248 6616 DIMA= 6616
|
||
249 6643 DXAL= 6643
|
||
250
|
||
251 /RK05 DISC IOTS
|
||
252 6740 IFZERO PHONES <RKDV=6740>
|
||
253 IFNZRO PHONES <RKDV=6750>
|
||
254 6741 DSKP= RKDV+1 /SKIP IF DONE OR ERROR
|
||
255 6742 DCLR= RKDV+2 /CLEAR THE CONTROLLER
|
||
256 6743 DLAG= RKDV+3 /LOAD DISC ADDRESS & GO
|
||
257 6744 DLCA= RKDV+4 /LOAD CURRENT CORE ADDRESS
|
||
258 6745 DRST= RKDV+5 /READ THE STATUS
|
||
259 6746 DLDC= RKDV+6 /LOAD THE COMMAND REGISTER
|
||
260 6747 DMAINT= RKDV+7 /MAINTENANCE ONLY
|
||
261
|
||
262 /
|
||
263 /TC08 DECTAPE CONTROLLER IOTS
|
||
264 6761 DTRA= 6761 /READ A-REGISTER
|
||
265 6762 DTCA= 6762 /CLEAR A-REGISTER
|
||
266 6764 DTXA= 6764 /XOR INTO A-REGISTER
|
||
267 6771 DTSF= 6771 /SKIP ON DECTAPE FLAG
|
||
268 6772 DTRB= 6772 /READ STATUS-REGISTER (B)
|
||
269 6774 DTLB= 6774 /LOAD STATUS-REGISTER (B)
|
||
270
|
||
271 /CARD READER IOTS
|
||
272 6631 RCSF= 6631 /SKIP ON DATA READY
|
||
273 6632 RCRA= 6632 /READ ALPHANUMERIC
|
||
274 6634 RCRB= 6634 /READ BINARY
|
||
275 6635 RCNO= 6635 /READ CONDITIONS OUT TO CARD READER (8/E ONLY)
|
||
276 6636 RCRC= 6636 /READ COMPRESSED (8/E ONLY)
|
||
277 6637 RCNI= 6637 /READ CONDITION IN FROM CARD READER (8/E ONLY)
|
||
278 6671 RCSD= 6671 /SKIP ON CARD DONE FLAG
|
||
279 6672 RCSE= 6672 /SELECT CARD READER AND SKIP IF READY
|
||
280 6674 RCRD= 6674 /CLEAR CARD DONE FLAG
|
||
281 6675 RCSI= 6675 /SKIP IF INTERRUPT BEING GENERATED (8/E ONLY)
|
||
282 6677 RCTF= 6677 /CLEAR TRANSITION FLAGS (8/E ONLY)
|
||
283
|
||
284 IFZERO CPU <
|
||
285 /KW8I REAL TIME CLOCK
|
||
286
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 8
|
||
|
||
|
||
287 CECI= 6137 /CLEAR AND ENABLE CLOCK AND INTERRUPT
|
||
288 CSCF= 6133 /SKIP AND CLEAR FLAG IF FLAG
|
||
289 >
|
||
290
|
||
291 IFZERO CPU-1 <
|
||
292 CECI= 6315 /CLOCK ENABLE
|
||
293 CSCF= 6301 /SKIP ON CLOCK FLAG
|
||
294 CCF= 6302 /CLEAR CLOCK FLAG, CLEAR ENABLE AND CLEAR BUFFER
|
||
295 CLB= 6304 /LOAD BUFFER FROM AC
|
||
296 >
|
||
297
|
||
298 IFZERO CPU-2 <
|
||
299 6131 CECI= 6131 /CLOCK ENABLE
|
||
300 6133 CSCF= 6133 /SKIP AND CLEAR FLAG IF FLAG
|
||
301 >
|
||
302
|
||
303 IFZERO CPU-3 <
|
||
304 CLAB= 6133
|
||
305 CLLR= 6132
|
||
306 CLEN= 6134
|
||
307 CLSA= 6135
|
||
308 CLSK= 6131
|
||
309
|
||
310 MTPF= 6113
|
||
311 MINT= 6115
|
||
312 MTON= 6117
|
||
313 MKTF= 6123
|
||
314 MINS= 6125
|
||
315 MTRS= 6127
|
||
316
|
||
317 MKSF= 6111
|
||
318 MKCC= 6112
|
||
319 MKRS= 6114
|
||
320 MKRB= 6116
|
||
321
|
||
322 MTSF= 6121
|
||
323 MTCF= 6122
|
||
324 MTPC= 6124
|
||
325 MTLS= 6126
|
||
326 >
|
||
327
|
||
328 IFZERO CPU-4 <
|
||
329 CLLE= 6135 /AC11 TO CLOCK INTERRUPT ENABLE
|
||
330 CLCL= 6136 /CLEAR CLOCK FLAG
|
||
331 CLSK= 6137 /SKIP ON CLOCK FLAG
|
||
332 >
|
||
333
|
||
334 IFNZRO DC08A <
|
||
335 /689AG
|
||
336
|
||
337 SRF= 6701 /SKIP IF RING FLAG
|
||
338 SCF= 6711 /SKIP IF CARRIER FLAG
|
||
339 DFCRF= 6742 /CLEAR RING FLAG
|
||
340 CTG= 6721 /CLEAR GROUP COUNTER
|
||
341 RRS= 6702 /READ RING STATUS
|
||
342 ITG= 6731 /INCREMENT GROUP COUNTER
|
||
343 STR= 6722 /SET TERMINAL READY
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 9
|
||
|
||
|
||
344 EDF= 6704 /ENABLE DATAPHONE FEATURES
|
||
345 DDF= 6714 /DISABLE DATAPHONE FEATURES
|
||
346 CTR= 6724 /CLEAR TERMINAL FLAG
|
||
347 CCF= 6741 /CLEAR CARRIER FLAG
|
||
348 RCS= 6712 /READ CARRIER STATUS
|
||
349 >
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 10
|
||
|
||
|
||
350 /FIP IOTS (AS USED INTERNALLY)
|
||
351
|
||
352 0040 ASD= 0040 /ASSIGN DEVICE
|
||
353 0042 REL= 0042 /RELEASE DEVICE
|
||
354 0200 REN= 0200 /RENAME FILE
|
||
355 6601 OPEN= 6601 /OPEN FILE
|
||
356 0202 CLOS= 0202 /CLOSE
|
||
357 6603 RFILE= 6603 /READ FILE
|
||
358 0204 PROT= 0204 /PROTECT
|
||
359 6605 WFILE= 6605 /WRITE FILE
|
||
360 6606 XOPEN= 6606 /OPEN FILE WITH EXCLUSIVE USE
|
||
361 0207 CPASS= 0207 /CHANGE A USER'S PASSWORD
|
||
362 0210 CRF= 0210 /CREATE
|
||
363 0211 EXT= 0211 /EXTEND
|
||
364 0212 RED= 0212 /REDUCE
|
||
365 6613 FINF= 6613 /FILE INFORMATION
|
||
366 0214 LIN= 0214 /LOGIN
|
||
367 0215 LOUT= 0215 /LOGOUT
|
||
368 0220 BCLR= 0220 /CLEAR MFD BILLING INFORMATION
|
||
369
|
||
370
|
||
371 /DEVICE DATA BLOCK
|
||
372
|
||
373 0000 DDBSTS= 0 /WORD 1. STATUS AND UNIT NUMBER
|
||
374 2000 DXON= 2000 /XOFF SENT FLAG - SEND 'XON' WHEN NEEDED
|
||
375 1000 DSI= 1000 /DESTINATION IS S.I. FLAG
|
||
376 0400 DFULL= 400 /INDICATES BUFFER IS FULL
|
||
377 0200 DUPL= 200 /CONSOLE IN DUPLEX MODE
|
||
378 0100 SICOM= 100 /COMMAND WAITING
|
||
379 0040 CTRLC= 40 /USER TYPED CTRL/C
|
||
380 0020 DECHO= 20 /CAUSE 'SI' TO ECHO INPUT BUFFER
|
||
381 0010 DHALF= 10 /KEYBOARD IS HALF-DUPLEX (HARDWARE)
|
||
382 0004 DFORC= 4 /KEYBOARD WAS JUST FORCED
|
||
383 0002 CTRLB= 2 /COMMAND PRECEDED BY EXPLICIT CTRL/B
|
||
384
|
||
385 /OUTPUT SIDE:
|
||
386
|
||
387 4000 CTRLS= 4000 /CTRL-S ENTERED (OUTPUT FROZEN)
|
||
388 3000 DXOFF= 3000 /JAM 'XOFF' INTO OUTPUT
|
||
389 1000 DBELL= 1000 /JAM 'BELL' INTO OUTPUT
|
||
390 0001 DTALK= 1 /LOCK KEYBOARD AGAINST TALKS
|
||
391
|
||
392 /OUTPUT REGISTER:
|
||
393
|
||
394 / 4000 - BUFFER CHECKING REQUESTED
|
||
395 / 2000 - DEVICE INTERRUPT EXPECTED
|
||
396 / 1000 - 5-SECOND TIMEOUT FLAG
|
||
397 / 400-2 - NEXT BUFFERED CHARACTER
|
||
398 / 0001 - BUFFERED CHARACTER WAITING
|
||
399
|
||
400 0001 DDBJN= 1 /WORD 2. JOB NUMBER IN 7-11; DEVICE NUMBER IN 0-6
|
||
401 0002 DDBBRK= 2 /BREAK MASK
|
||
402 0204 SIBRKM= 204 /SI BREAK MASK
|
||
403 0003 DDBTIM= 3 /TIME THAT DEVICE WAS ASSIGNED
|
||
404 0004 DDBINP= 4 /BUFFER FILL POINTER
|
||
405 0005 DDBINC= 5 /BUFFER FILL COUNT
|
||
406 0006 DDBOUC= 6 /BUFFER EMPTY COUNT
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 11
|
||
|
||
|
||
407 0007 DDBOUP= 7 /BUFFER EMPTY POINTER
|
||
408
|
||
409 /FILE CONTROL BLOCK - POINTED TO BY JOBFX, X=0,1,2,3
|
||
410
|
||
411 0000 FILWPT= 0 /POINTER TO FILE RETRIEVAL WINDOW
|
||
412 0001 FILSCT= 1 /SEGMENT NUMBER OF FIRST WINDOW ENTRY
|
||
413 0002 FILPRO= 2 /FILE READ-ONLY (BIT 9), FILE PRIVILEGED (BIT 11)
|
||
414 0003 FILPAR= 3 /POINTER TO RFILE OR WFILE PARAMETER BLOCK
|
||
415 0004 FILDA= 4 /DISC ADDRESS OF RFILE OR WFILE
|
||
416 0006 FILWC= 6 /-WORD COUNT OF RFILE OR WFILE
|
||
417 0007 FILRES= 7 /POINTER TO FILPIF IN USER AREA
|
||
418
|
||
419 /FILE RETRIEVAL WINDOW
|
||
420 /WORD 0: UFD LINK TO NEXT GROUP OF 7 SEGMENT POINTERS
|
||
421 /WORDS 1-7: SEVEN SEGMENT ADDRESSES
|
||
422
|
||
423 /RFILE OR WFILE PARAMETER BLOCK - POINTED AT BY FILPAR
|
||
424
|
||
425 0000 FILPFN= 0 /FUNCTION: 0603 OR 0605
|
||
426 0001 FILPDX= 1 /DISC EXTENSION
|
||
427 0002 FILPIF= 2 /INTERNAL FILE # (BITS 10-11) AND FIELD # (BITS 7-9)
|
||
428 0003 FILPWC= 3 /-WORD COUNT FOR THIS TRANSFER
|
||
429 0004 FILPCA= 4 /CORE ADDRESS FOR THIS TRANSFER
|
||
430 0005 FILPDA= 5 /DISC ADDRESS
|
||
431 0006 FILPRA= 6 /EXEC RETURN ADDRESS FOR THIS TRANSFER
|
||
432 0007 FILPCT= 7 /POINTER TO FILE CONTROL BLOCK
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 12
|
||
|
||
|
||
433 /JOB DATA AREA
|
||
434
|
||
435 0000 JOBSTS= 0 /STATUS
|
||
436 /STR0
|
||
437 4000 JSRUN= 4000 /RUN BIT
|
||
438 2000 JSEREN= 2000 /USER ERROR ENABLE
|
||
439 1000 JCOMBD= 1000 /LAST TIME THE JOB RAN AS COMPUTE BOUND
|
||
440 0400 JSPRIV= 400 /LIBRARY PROGRAM (HAS PRIVILEGES)
|
||
441 0200 JSHLT= 200 /PROGRAM EXECUTED 'HLT'
|
||
442 0100 JSIOT= 100 /NON-RESIDENT IOT
|
||
443 0040 JSIOTC= 40 /COPY IOT RESULT TO USER
|
||
444 0020 JSRSEN= 20 /PROGRAMMATIC CTRL/C ENABLE
|
||
445 0010 JSINER= 10 /INHIBIT SI ERROR UNTIL NEXT COMMAND
|
||
446
|
||
447 0200 JSACC= 200
|
||
448 0100 JSBAT= 100 /BATCH-MODE
|
||
449
|
||
450 /BITS 9-11 ARE SYSTEM ERROR CODE
|
||
451
|
||
452 0001 UUOERF= 1 /IOT ERROR
|
||
453 0002 SWPRER= 2 /SWAP READ ERROR
|
||
454 0003 SWPWER= 3 /SWAP WRITE ERROR
|
||
455 0005 DSKERR= 5 /DISC ERROR
|
||
456 0006 HUNGDV= 6 /HUNG DEVICE
|
||
457
|
||
458 /STR1
|
||
459 4000 JSTIME= 4000 /TIME IS UP
|
||
460 2000 JSF0= 2000 /FILE 0 NOT BUSY
|
||
461 1000 JSF1= 1000 /FILE 1 IS NOT BUSY
|
||
462 0400 JSF2= 400 /FILE 2 IS NOT BUSY
|
||
463 0200 JSF3= 200 /FILE 3 IS NOT BUSY
|
||
464 0100 JSDEL= 100 /DELIMITER SEEN
|
||
465 0040 JSLPT= 40 /LPT BUFFER IN USE BUT NOT FULL
|
||
466 0020 JSTEL= 20 /OUTPUT BUFFER NOT FULL
|
||
467 0010 JSPTR= 10 /CHARACTER IN READER BUFFER
|
||
468 0004 JSPTP= 4 /PUNCH BUFFER IS NOT FULL
|
||
469 0002 JSERR= 2 /SYSTEM ERROR DETECTED
|
||
470 0001 JSWAIT= 1 /JOB NOT IN WAIT STATE
|
||
471
|
||
472 0002 JOBSTB= 2 /DEVICE STATUS REGISTER (RK05, DECTAPE, & CARD READER)
|
||
473 0003 JOBWMK= JOBSTB+1 /WAIT MASK
|
||
474 0004 JOBDWT= JOBWMK+1 /JOB DEVICE-WAIT
|
||
475 0005 JOBSRA= JOBDWT+1 /JOB RESTART ADDRESS
|
||
476 0006 JOBERR= JOBSRA+1 /JOB ERROR RESTART ADDRESS
|
||
477 0007 JOBLNK= JOBERR+1 /IOT LINKAGE
|
||
478 0010 JOBSWR= JOBLNK+1 /SWITCH REGISTER
|
||
479 0011 JOBREG= JOBSWR+1 /PC, AC, & LINK (W/MODE, GT, & SC)
|
||
480 0014 JOBEAE= JOBREG+3 /MQ REGISTER
|
||
481 0015 JOBACT= JOBEAE+1 /USER'S ACCOUNT #
|
||
482 0016 JOBRTM= JOBACT+1 /LOW ORDER RUN TIME
|
||
483 0017 JOBRTH= JOBRTM+1 /HIGH ORDER RUN TIME
|
||
484 0020 JOBF0= JOBRTH+1 /POINTER TO FILE 0 CONTROL
|
||
485 0021 JOBF1= JOBF0+1 /POINTER TO FILE 1 CONTROL
|
||
486 0022 JOBF2= JOBF1+1 /POINTER TO FILE 2 CONTROL
|
||
487 0023 JOBF3= JOBF2+1 /POINTER TO FILE 3 CONTROL
|
||
488 0024 JOBSCH= JOBF3+1 /SCHEDULING CONTROL-WORD
|
||
489
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 13
|
||
|
||
|
||
490
|
||
491 /CORE TABLE CONTROL FLAGS
|
||
492
|
||
493 4000 FSWP= 4000 /SWAP REQUEST
|
||
494 2000 LOCK= 2000 /LOCK IN CORE
|
||
495 1000 NOTRUN= 1000 /HAS NOT BEEN SCHEDULED TO RUN
|
||
496 0400 FIP= 400 /FILE PHANTOM (NOTE: FIP HAS BEEN ASSUMED EQUAL TO WRDSEG)
|
||
497 0200 SI= 200 /SYSTEM COMMAND INTERPRETER PHANTOM
|
||
498 0140 NOHOLD= 140 /DISC COMPLETION PRIORITY (SKIPPED EVERY 4 TRANSFERS)
|
||
499 0037 CJOB= 37 /MASK FOR JOB NUMBER
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 14
|
||
|
||
|
||
500 /FIP TABLE DEFINITIONS
|
||
501
|
||
502 0530 SATSIZ= 530
|
||
503 5600 ENTABL= 5600
|
||
504 6040 UTABLE= JOBMAX^10+ENTABL
|
||
505 6160 RTABLE= JOBMAX^4+UTABLE /*** CHANGE TO ^10 LATER ***
|
||
506
|
||
507 /TS8 TABLE DEFINITIONS
|
||
508
|
||
509 7001 CORTBL= 7001
|
||
510 7010 L2QTB= CORTBL+7
|
||
511
|
||
512 /TS8II TABLE DEFINITIONS
|
||
513 0003 IFNZRO CDVIN <CDVGAP=3> /ROOM FOR HSR, ?, AND CDR
|
||
514 IFZERO CDVIN <CDVGAP=0>
|
||
515 0000 IFZERO DC08A <DCSIZE=0>
|
||
516 IFNZRO DC08A <DCSIZE=400> /DC08A & 689AG CODE
|
||
517
|
||
518 0200 OUTREG= 200 /ACTIVE OUTPUT REGISTERS
|
||
519 0226 SKPTBL= OUTREG+NULINE+CONTTY+CDVOUT+2 /START OF IOT SKIP TABLE
|
||
520 0275 SKPTP= SKPTBL+NULINE+NULINE+CONTTY+CONTTY+CDVIN+CDVGAP+1
|
||
521 0304 RINGIN= SKPTP+CDVOUT+3 /INPUT RING BUFFER
|
||
522 0400 ENDBUF= OUTREG+200 /END OF KEYBOARD INPUT BUFFER
|
||
523 0036 INPUTS= ENDBUF-RINGIN%2 /NUMBER OF POSSIBLE RING-BUFFER ENTRIES
|
||
524 6211 DATFLD= CDF 10 /DATA FIELD SELECT
|
||
525
|
||
526 2400 DATA1= 2400+DCSIZE /START OF DATA AREA (ALMOST)
|
||
527 2600 DEVTBL= DATA1+200 /ACTUAL START OF DATA AREA
|
||
528 2640 DEVTBE= DEVTBL+NULINE+NULINE+2
|
||
529 2675 JOBTBL= DEVTBE+35
|
||
530 2722 CLKTBL= JOBTBL+JOBMAX+1
|
||
531 2747 TTYTBL= CLKTBL+JOBMAX+1
|
||
532 2774 PRGTBL= TTYTBL+JOBMAX+1
|
||
533 3061 DSUTBL= PRGTBL+JOBMAX+JOBMAX+JOBMAX-7
|
||
534 2200 OUTDIF= -OUTREG^2+DEVTBL /FOR LINKING BETWEEN OUTREG & DEVTBL
|
||
535
|
||
536 IFZERO EAE-20 <MQREG=1>
|
||
537 0001 IFZERO EAE <IFZERO CPU-2 <MQREG=1>
|
||
538 IFNZRO CPU-2 <MQREG=0>>
|
||
539
|
||
540 /// END OF SELF-DEFINING PARAMETERS -- START OF MONITOR LINKAGES ///
|
||
541
|
||
542 /A VERY FEW SELDOM CHANGED POINTERS
|
||
543
|
||
544 4201 AUTOST= 4201 /AUTOMATIC SYSTEM RESTART ENTRANCE TO 'INIT'
|
||
545 7720 FIPBLK= 7720 /THE I/O TRANSFER BLOCK FOR 'FIP'
|
||
546
|
||
547 /FREQUENTLY CHANGED POINTERS IN TS8 & TS8II; THESE ARE UPDATED
|
||
548 /BY THE 'LINK.TE' TECO MACRO. IN THE SOURCE, THEY ARE FLAGGED
|
||
549 /FOR THE MACRO TO FIND BY '/*'.
|
||
550
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 15
|
||
|
||
|
||
551
|
||
552 5200 BLT0= 5200 /BLOCK TRANSFER
|
||
553 0033 CLK1= 0033 /SYSTEM DAYCLOCK (LOW)
|
||
554 0034 CLK2= 0034 / (HIGH)
|
||
555 0030 CONDBA= 0030 /POINTER TO DEVTBL ENTRY IN USE
|
||
556 0031 CONDDB= 0031 /POINTER TO DDB IN USE
|
||
557 1317 CORSRC= 1317 /CORTBL SEARCH
|
||
558 7001 CORTBL= 7001 /CORE ALLOCATION TABLE (FIXED)
|
||
559 0035 DATE= 0035
|
||
560 7045 DEVCHK= 7045 /CHECK DEVICE OWNERSHIP
|
||
561 0036 DSBUSY= 0036 /DISC BUSY COUNT
|
||
562 0535 DTDEF0= 0535 /DECTAPE ERROR REGISTRATION
|
||
563 0541 DTDSF0= 0541 /DECTAPE BUFFER TO SWAP AREA
|
||
564 0527 DTDSK= 0527 /DECTAPE DISC COMPLETION
|
||
565 0551 DTL20= 0551 /DECTAPE LEVEL-2 DISPATCH
|
||
566 3671 DTRKHG= 3671 /ERROR SETTING FROM FIELD 1
|
||
567 5333 ENDIOT= 5333 /JMP TO EXIT HANDLER
|
||
568 0277 F1RTN= 0277 /RETURN FROM FIELD 1 INTERRUPT HANDLERS
|
||
569 0057 FIPJOB= 0057 /JOB REQUESTING 'FIP'
|
||
570 0040 FRECNT= 0040 /AVAILABLE FREE-CORE BLOCKS
|
||
571 0037 FREE= 0037 /LINK TO FIRST FREE-CORE BLOCK
|
||
572 1400 GETB= 1400 /GET A FREE-BLOCK
|
||
573 1440 GETDB0= 1440 /GET DDB BLOCK
|
||
574 7200 GETJTB= 7200 /GET ADDRESS OF LINKED ENTRY
|
||
575 6200 GIR00= 6200 /GENERAL INPUT ROUTINE
|
||
576 0062 JOB= 0062 /CURRENTLY ACTIVE JOB
|
||
577 4051 L2EXIT= 4051 /LEVEL-2 EXIT ROUTINE
|
||
578 0041 L2SF= 0041 /LEVEL 2: SAVED FIELD AND MODE
|
||
579 0042 L2SV0= 0042 /LEVEL 2: SAVED PC
|
||
580 2631 L2TIM3= 2631 /RETURN FROM 'TIMER' ROUTINE
|
||
581 5533 NFSEGS= 5533 /NUMBER OF FREE DISC SEGMENTS
|
||
582 2340 OUTIOT= 2340 /INCREMENT 'ACFLG' TO SIGNAL OUTPUT
|
||
583 5764 OVERL1= 5764
|
||
584 2364 OVERLA= 2364 /DISC TERMINATION FOR OVERLAYS
|
||
585 0572 OVRLA1= 0572 /SYSTEM OVERLAY COMPLETION DISPATCHER
|
||
586 1203 PRINT0= 1203 /TYPE CHARACTER
|
||
587 1473 QUEUE0= 1473 /REGISTER LEVEL-2 FOR FIELD 1
|
||
588 3652 READFI= 3652 /SI FILE-LOADER
|
||
589 4172 REDO0= 4172 /'REDO' AND IOT
|
||
590 3600 RELOAD= 3600 /AUTO-RESTART STARTUP
|
||
591 0600 RETB= 0600 /FREE A CORE-BLOCK
|
||
592 3676 RKL20= 3676 /LEVEL-2 DISPATCH FOR RK05
|
||
593 3640 SCHED0= 3640 /'RSCHED' ENTRY
|
||
594 4400 SICLR= 4400 /BUFFER CLEAR ROUTINE
|
||
595 0020 SIDATA= 0020 /SI CONTROL WORDS
|
||
596 2357 SLEEP= 2357 /PUT THE JOB TO SLEEP
|
||
597 2621 TIMCDR= 2621 /CARD READ TIMER
|
||
598 0032 TTCHAR= 0032 /CHARACTER FOR FEED ROUTINES
|
||
599 0172 UUDF= 0172 /USER FIELD SELECT
|
||
600 4404 UUOERR= 4404 /USER IOT ERROR
|
||
601 0336 UUOEX1= 0336 /IOT EXIT ROUTINE
|
||
602 3006 WSCHED= 3006 /'WAIT' ENTRY
|
||
603 1720 CDL11= 1720 /LEVEL-1 INTERRUPT FOR CARD READER
|
||
604 1704 CDL21= 1704 /LEVEL-2 HANDLER FOR CARD READER
|
||
605 0020 CJOBDA= 0020 /CURRENT JOB DATA POINTER
|
||
606 0027 DTJOB= 0027 /JOB HOLDING DECTAPE CONTROLLER
|
||
607 0601 DTL11= 0601 /LEVEL-1 INTERRUPT FOR DECTAPE
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 16
|
||
|
||
|
||
608 1004 DTL21= 1004 /DECTAPE LEVEL-2 COMPLETION
|
||
609 0177 F1BUF= 0177 /DDB EMPTY BLOCK
|
||
610 2512 F1DTST= 2512 /DECTAPE STOP ROUTINE
|
||
611 0176 F1ECNT= 0176 /DDB EMPTY COUNT
|
||
612 0036 F1OFFJ= 0036 /SYSTEM OFF/ON COMMAND FLAG
|
||
613 0175 F1TCNT= 0175 /DDB CHARACTER COUNT
|
||
614 0045 RKJOB= 0045 /JOB HOLDING RK05 CONTROLLER
|
||
615 2000 RKL11= 2000 /LEVEL-1 INTERRUPT FOR RK05
|
||
616 1615 RKL21= 1615 /LEVEL-2 HANDLER FOR RK05
|
||
617 2200 TIMER0= 2200 /FIELD 1 TIMER ROUTINE
|
||
618 2445 UPEEK1= 2445 /FIELD 1 PEEK IOT CODE
|
||
619 0174 UPTIM1= 0174 /SYSTEM UPTIME
|
||
620 0173 UPTIM2= 0173
|
||
621 1735 UUCDR= 1735 /UUO ENTRY FOR CARD READER
|
||
622 1415 UUDTRK= 1415 /UUO ENTRY FOR DECTAPE & RK05
|
||
623 7730 WINBAS= 7730 /BASIC RETRIEVAL WINDOW
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 17
|
||
|
||
|
||
624
|
||
625 /FIP - UWM VERSION 25
|
||
626 /
|
||
627 /COPYRIGHT 1971, 1975 DIGITAL EQUIPMENT CORPORATION
|
||
628 / MAYNARD, MASSACHUSETTS
|
||
629 /
|
||
630 /EXTENSIVELY MODIFIED AND CORRECTED BY
|
||
631 / RICHARD BARTLEIN, 1974, 1976
|
||
632 / UNIVERSITY OF WISCONSIN - MILWAUKEE
|
||
633
|
||
634 /HANDLES ALL NON RESIDENT FILE IOT'S
|
||
635 /RUNS IN EXEC MODE
|
||
636
|
||
637 0000 *0
|
||
638 00000 5401 JMP I .+1
|
||
639 00001 0200 FIP0
|
||
640 00002 3363 RETBK1, RETBKS
|
||
641 00003 3766 LNK01, LNK0
|
||
642 00004 2513 ZDS1, DSWORD /POINTER TO 'FIND' LOCATION IN DIRECTORY
|
||
643 0005 P0004= .
|
||
644 00005 0004 FIDEXP, FIPDEX /FIP DISC EXTENSION (SHIFTED 2 BITS)
|
||
645 0006 C002= .
|
||
646 00006 0002 FILPRP, FILPRO
|
||
647 0007 C0020= .
|
||
648 00007 0020 FIPFLD, 20 /FIELD WE ARE RUNNING IN
|
||
649
|
||
650 0010 *10
|
||
651 00010 0000 INDEX, 0 /ONLY REGISTER AVAILABLE IN FIP FOR INDEXING
|
||
652
|
||
653 /CONSTANTS
|
||
654
|
||
655 00011 0003 P0003, 3
|
||
656 00012 0005 C0005, 5
|
||
657 00013 0006 C0006, 6
|
||
658 00014 0007 P0007, 7
|
||
659 00015 0010 C0010, 10
|
||
660 00016 0037 P0037, 37
|
||
661 00017 0077 P0077, 77
|
||
662 00020 0200 C0200, 200
|
||
663 IFNZRO WRDSEG-400 <GLITCH>
|
||
664 0021 SEGSIZ=. /WRDSEG
|
||
665 00021 0400 C0400, 400
|
||
666 00022 0777 P0777, 777
|
||
667 00023 1000 P1000, 1000
|
||
668 00024 2000 P2000, 2000
|
||
669 00025 3777 C3777, 3777
|
||
670 00026 5400 P5400, 5400
|
||
671 00027 6603 C6603, 6603 /DMAR - DISC READ IOT
|
||
672 00030 6605 C6605, 6605 /DMAW - DISC WRITE IOT
|
||
673 00031 7000 C7000, 7000
|
||
674 00032 7400 C7400, 7400
|
||
675 00033 7700 C7700, 7700
|
||
676 00034 7770 P7770, -10
|
||
677 00035 7771 C7771, -7
|
||
678 00036 7774 C7774, -4
|
||
679
|
||
680 00037 0000 BUFSTA, 0 /BUFFER STATUS, 7777 IF FULL
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 18
|
||
|
||
|
||
681 00040 0000 BUFWRT, 0 /-1, IF BUFFER CHANGED
|
||
682 00041 7000 CORTBA, CORTBL-1
|
||
683 00042 7002 FANFLD, CORTBL-1+2 /PHANTOM FIELD ENTRY
|
||
684 00043 0031 FIBASE, SWDEX+JOBMAX /BASE ADDRESS OF ALLOCATABLE DISC STORAGE
|
||
685 00044 0000 FIUSPC, 0 /SAVED USER PC
|
||
686 00045 0000 FILINK, 0 /SAVED USER EAE MODE, LINK, GT, & SC
|
||
687 00046 0000 FIUSAC, 0 /SAVED USER AC
|
||
688 00047 0000 0 /SAVED USER MQ (IF ANY)
|
||
689 00050 0000 FIACCT, 0 /USER'S ACCOUNT NUMBER
|
||
690 00051 0000 FIJOB, 0 /JOB NUMBER FILE PHANTOM IS REPRESENTING
|
||
691 00052 0000 FIOPTR, 0 /POINTER TO FIELD 0 IOT
|
||
692 00053 0000 GDRETP, 0 /RETRIEVAL POINTER, SET BY GD0 ROUTINE
|
||
693 00054 0062 JOBA, JOB
|
||
694 00055 0020 JOBDAT, CJOBDA
|
||
695 00056 0000 OPNFLG, 0
|
||
696 00057 0000 SATSTA, 0 /SAT STATUS, 7777 IF CHANGED THIS RUN
|
||
697 00060 0000 TABSTA, 0 /TABLE STATUS, 7777 IF CHANGED THIS RUN
|
||
698 00061 0000 WNDREM, 0 /REMAINDER FROM DIVISION BY 7
|
||
699
|
||
700 /GLOBALS TO MONITOR DATA AREA
|
||
701
|
||
702 00062 2600 DEVTBA, DEVTBL
|
||
703 00063 2640 DEVEND, DEVTBE
|
||
704
|
||
705 /POINTERS TO FILE PHANTOM'S INTERNAL TABLES
|
||
706
|
||
707 ENTEND, /END OF ENTRY TABLE
|
||
708 00064 6040 UFDTBL, UTABLE /TABLE OF ALL ACCESSED UFD'S
|
||
709 UFDEND, /TOP OF UFD TABLE
|
||
710 00065 6160 RETTBL, RTABLE /TABLE OF RETRIEVAL INFORMATION FOR ALL ACCESSED UFD'S
|
||
711 00066 5570 ENTTBL, ENTABL-10 /TABLE REFLECTING STATE OF ALL POSSIBLE FILE NUMBERS
|
||
712 00067 5200 BUFFER, SEGBUF /BUFFER FOR DIRECTORY MANIPULATIONS
|
||
713 00070 7250 SATBOT, -SATSIZ /BOTTOM OF STORAGE ALLOCATION TABLE
|
||
714 DEVOVR,
|
||
715 00071 2675 JOBTBA, JOBTBL /END OF FIELD 1 DEVICE ASSIGNMENT TABLE
|
||
716
|
||
717
|
||
718 /SUBROUTINE POINTERS
|
||
719
|
||
720 00072 1141 BLDP1, BLDP /BUILD A POINTER TO RETTBL
|
||
721 4473 BLT= JMS I . /BLOCK TRANSFER
|
||
722 00073 5200 BLT0
|
||
723 4474 CHKACT= JMS I . /CHECK TYPE OF ACCOUNT NUMBER
|
||
724 00074 1162 CHKAC0
|
||
725 4475 CHKPRV= JMS I . /CHECK FOR PRIVILEGE
|
||
726 00075 5043 CHKPV0
|
||
727 4476 CHKSRC= JMS I . /CHECK SOURCE OF FIP CALL
|
||
728 00076 1363 CHKSR0
|
||
729 00077 1020 CL01, CL0 /CLOSE A FILE
|
||
730 4500 CORE= JMS I . /SEARCH THE CORTBL
|
||
731 00100 1317 CORSRC
|
||
732 00101 4000 DE01, DE0 /GET A FREE DIRECTORY ENTRY
|
||
733 00102 2475 DS01, DS0 /DIRECTORY SEARCH
|
||
734 00103 3703 DTE01, DTE0
|
||
735 00104 4565 EBLD0, EBLD /BUILD 'ENTTBL' ENTRY ADDRESS FROM FILE #
|
||
736 00105 2126 ENS01, ENS0 /COUNT NUMBER OF FILE OPENINGS
|
||
737 4506 FGETJT= JMS I . /FIND JOB STATUS-BLOCK WORD ADDRESS
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 19
|
||
|
||
|
||
738 00106 4152 FGETJ0
|
||
739 00107 3120 FIO01, FIPIO /COMMON DISC IO ROUTINE
|
||
740 00110 0350 GD01, GD0 /GET A FILE DIRECTORY ENTRY INTO CORE
|
||
741 00111 3000 GE01, GE0 /GET A DIRECTORY WORD INTO CORE
|
||
742 4512 GETBLK= JMS I . /FETCH A FREE BLOCK
|
||
743 00112 1400 GETB
|
||
744 4513 GETDDB= JMS I . /GET A DEVICE DATA-BLOCK
|
||
745 00113 1440 GETDB0
|
||
746 4514 GETJTA= JMS I . /GET A JOB-STATUS WORD ADDRESS
|
||
747 00114 7200 GETJTB
|
||
748 00115 2735 GTBLO1, GTBLOK
|
||
749 00116 0365 IFN01, IFN0
|
||
750 4517 REBOOT= JMS I . /INITIATE AUTOMATIC SYSTEM RESTART
|
||
751 00117 4170 RBOOT
|
||
752 00120 4204 REL01, REL00
|
||
753 4521 RETBLK= JMS I . /RETURN A FREE-CORE BLOCK
|
||
754 00121 0600 RETB
|
||
755 00122 2600 SATL1, SATLOK /GET A FREE SEGMENT FROM SAT
|
||
756 00123 2660 SATR1, SATREL /RELEASE A SEGMENT IN SAT
|
||
757 4524 SAVBUF= JMS I . /SET 'BUFFER CHANGED' SWITCH
|
||
758 00124 1374 SAVBF0
|
||
759 00125 3045 SCL01, SCL0 /CLEAR A DISC SEGMENT TO ZEROES
|
||
760 00126 3745 TF01, TF0 /FREE AN ENTRY ON UFD TABLE
|
||
761 00127 3200 UC01, UC0 /USER-OWNER FILE CHECK
|
||
762 00130 3400 UFO01, UFO0 /OPEN A UFD
|
||
763 00131 4121 UTS01, UTS0 /SEARCH UFD TABLE FOR PROJ,PROG NUMBER
|
||
764 5532 WAIT= JMP I . /RESCHEDULE
|
||
765 00132 3006 WSCHED
|
||
766 00133 1152 WRT1, WRITE /MAKE SURE THE BUFFER IS EMPTY
|
||
767
|
||
768 00134 3600 FIEXIT, FIX0 /EXIT ROUTINE
|
||
769 00135 2372 LGI201, LGI20 /-1 TO USER AC
|
||
770
|
||
771 /UTILITY ROUTINES
|
||
772 00136 0000 UTPRNU, 0 /USED BY UTS0 ROUTINE TO HAVE THE PTR TO UFD TABLE WHILE SEARCHING
|
||
773 00137 0000 CFH, 0 /THIS LOCATION IS USED FOR TEMP STORAGE BY MANY ROUTINES
|
||
774 6221 CFLD= 6221 /FIP IS IN FIELD 2 ALWAYS
|
||
775 00140 7730 BASWIN, WINBAS /FIELD 1 ADDRESS OF BASIC WINDOW
|
||
776
|
||
777 00141 0000 FIOSTK, 0 /STACK HOLDING IOT LINKAGE
|
||
778 00142 0000 0
|
||
779 00143 0000 0
|
||
780 00144 0000 0
|
||
781 00145 0000 0
|
||
782 00146 0000 0
|
||
783 00147 0000 0
|
||
784 00150 0000 0
|
||
785
|
||
786 00151 0000 FLPARB, 0 /TABLE FOR READ OR WRITE PARAMETER CONSTRUCTION
|
||
787 00152 0000 0
|
||
788 00153 0000 0
|
||
789 00154 0000 0
|
||
790 00155 0000 0
|
||
791 00156 0000 0
|
||
792 00157 2364 OVERLA
|
||
793 00160 0000 0
|
||
794
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 20
|
||
|
||
|
||
795 IFNZRO BILLNG <
|
||
796 00161 7771 LOGACT, -BILLNG /BILLING SYSTEM ACCOUNT NUMBER
|
||
797 >
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 21
|
||
|
||
|
||
798 0200 *200
|
||
799 /FILE PHANTOM START
|
||
800 /FIP'S FIRST JOB IS TO PICK UP THE IOT WHICH IT IS TO PERFORM
|
||
801 /AND THE PARAMETERS WHICH GO ALONG WITH IT. (IF ANY) THESE
|
||
802 /ARE MOVED INTO AN 8-WORD BLOCK CALLED 'FIOSTK' THE FIRST REG-
|
||
803 /ISTER IN THIS BLOCK CONTAINS THE IOT. PARAMETERS FOLLOW
|
||
804
|
||
805 00200 7300 FIP0, CLA CLL
|
||
806 00201 3057 DCA SATSTA /CLEAR SAT STATUS
|
||
807 00202 3060 DCA TABSTA /CLEAR TABLE STATUS
|
||
808 00203 3040 DCA BUFWRT /CLEAR THE 'WRITE BUFFER' SWITCH
|
||
809 /
|
||
810 /***** NOTE!!! IF, FOR ANY REASON, SOME PROGRAM IN THE SYSTEM
|
||
811 / WRITES INTO ANY UFD (INCLUDING THE MFD), THE FOLLOWING
|
||
812 / BUFFER STATUS-CHECK 'ISZ' SHOULD BE NOP'ED OUT. THIS WILL
|
||
813 / HELP PREVENT THE CASE WHERE FIP READS A BLOCK, THE PROGRAM
|
||
814 / WRITES INTO IT, AND THEN FIP WRITES IT BACK OUT, THUS
|
||
815 / CLOBBERING WHAT THE PROGRAM JUST WROTE OUT. NOTE THAT THIS
|
||
816 / COULD HAPPEN IN REVERSE ALSO, THEREBY MESSING UP FIP.
|
||
817 /
|
||
818 / NOTE ALSO THAT BY DISALLOWING FIP TO 'REMEMBER' WHAT'S IN
|
||
819 / ITS BUFFER CURRENTLY DOES NOT COMPLETELY PROTECT AGAINST
|
||
820 / THE ABOVE PROBLEM AND SHOULD NOT BE TAKEN LIGHTLY.
|
||
821 /***** ***** ***** ***** ***** ***** ***** ***** *****
|
||
822 00204 2037 ISZ BUFSTA /IS THERE ANYTHING IN THE BUFFER?
|
||
823 00205 5211 JMP .+4 /NO - JUST CLEAR THE SWITCH
|
||
824 00206 1722 TAD I RDCURA /YES - RE-SET THE ADDRESS BECAUSE IT
|
||
825 00207 4723 JMS I RD301 / MIGHT HAVE BEEN CLOBBERED AT LAST EXIT
|
||
826 00210 7240 CLA CMA /THEN RESET THE SWITCH
|
||
827 00211 3037 DCA BUFSTA
|
||
828 00212 6201 CDF
|
||
829 00213 1454 TAD I JOBA /GLOBAL TO "JOB"
|
||
830 00214 0016 AND P0037
|
||
831 00215 7450 SNA /IS EVERYTHING PROPER?
|
||
832 00216 4517 REBOOT /NO - ERROR *****
|
||
833 00217 3051 DCA FIJOB /SAVE IT
|
||
834 00220 4506 FGETJT /GET THE REGISTER SAVE-AREA ADDRESS
|
||
835 00221 0011 JOBREG
|
||
836 00222 3226 DCA .+4
|
||
837 00223 6202 CIF
|
||
838 00224 4473 BLT /SAVE THE USERS REGISTERS
|
||
839 00225 6211 DATFLD
|
||
840 00226 0000 FITPTR, 0
|
||
841 00227 6221 CFLD
|
||
842 00230 0044 FIUSPC
|
||
843 00231 7773 -5
|
||
844 00232 4476 CHKSRC /WHERE ARE WE COMING FROM?
|
||
845 00233 4475 CHKPRV /A PROGRAM - DOES IT HAVE PRIVILEGE?
|
||
846 00234 4721 JMS I FIPSFC /EITHER 'SI' OR NO PRIVILEGE - CLOSE SPECIAL FILES
|
||
847 00235 4506 FGETJT
|
||
848 00236 0007 JOBLNK /IOT REQUEST WORD
|
||
849 00237 3052 DCA FIOPTR /POINTER TO IOT LINKAGE
|
||
850 00240 6211 DATFLD /CDF FIELD 0
|
||
851 00241 1452 TAD I FIOPTR /PICK UP LINKAGE
|
||
852 00242 0032 AND C7400 /IS IT AN IOT? (IF IT IS, JOBDAT WILL HAVE BITS 0-3 CLEARED)
|
||
853 00243 7650 SNA CLA
|
||
854 00244 5313 JMP FIP2 /IS AN IOT, SO GO MOVE IT INTO FIOSTK (AC IS PARAMETER)
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 22
|
||
|
||
|
||
855 00245 1452 TAD I FIOPTR /IS A POINTER, PICK UP LINKAGE
|
||
856 00246 3253 DCA FIP6 /POINTER TO LINKAGE TABLE
|
||
857 00247 6221 CFLD
|
||
858 00250 6202 CIF
|
||
859 00251 4473 BLT /MOVE IOT PARAMETERS INTO FIOSTK
|
||
860 00252 6211 DATFLD
|
||
861 00253 0000 FIP6, 0
|
||
862 00254 6221 CFLD
|
||
863 00255 0141 FIOSTK /IOT LINKAGE BUFFER
|
||
864 00256 7770 -10
|
||
865 00257 1141 TAD FIOSTK
|
||
866 00260 7710 SPA CLA /WILL THE IOT PARAMETER BLOCK BE NEEDED TO RETURN PARS?
|
||
867 00261 5270 JMP FIP4 /YES, SO DON'T RETURN IT
|
||
868 00262 1253 TAD FIP6
|
||
869 00263 4402 JMS I RETBK1 /RETURN THE IOT PARAMETER BLOCK TO FREE CORE
|
||
870 00264 7300 CLA CLL
|
||
871 00265 6211 DATFLD
|
||
872 00266 3452 DCA I FIOPTR /CLEAR THE 'JOBLNK' POINTER
|
||
873 00267 6221 CFLD
|
||
874 /
|
||
875 /COMES HERE WHEN IOT AND ITS PARAMETERS ARE COMFORTABLY
|
||
876 /NESTLED IN FIOSTK
|
||
877 00270 1324 FIP4, TAD IOTABL
|
||
878 00271 3226 DCA FITPTR /TABLE POINTER
|
||
879 00272 2226 FIP5, ISZ FITPTR /PICK UP IOT FROM TABLE
|
||
880 00273 1626 TAD I FITPTR
|
||
881 00274 7450 SNA /END OF TABLE?
|
||
882 00275 4517 REBOOT /YES - ERROR *****
|
||
883 00276 7041 CIA /NO
|
||
884 00277 1141 TAD FIOSTK /IOT FROM USER
|
||
885 00300 7640 SZA CLA /DISPATCH?
|
||
886 00301 5272 JMP FIP5 /NO
|
||
887 00302 1226 TAD FITPTR /YES - GET THE DISPATCH ADDRESS
|
||
888 00303 1347 TAD IODSPA
|
||
889 00304 3226 DCA FITPTR
|
||
890 00305 1626 TAD I FITPTR
|
||
891 00306 3226 DCA FITPTR
|
||
892 00307 1141 TAD FIOSTK /DOES THIS IOT REQUIRE PARAMETERS TO BE
|
||
893 /RETURNED IN AN IOT PARAMETER BLOCK?
|
||
894 00310 7700 SMA CLA /...IF SO, USER AC CONTAINS A PTR. TO WHERE THEY WILL GO
|
||
895 00311 3046 DCA FIUSAC /CLEAR USER AC
|
||
896 00312 5626 JMP I FITPTR /DISPATCH
|
||
897
|
||
898 /COMES HERE FOR A "SHORT" IOT. SAVED AC IS ONLY PARAMETER
|
||
899 /PUT IT IN FIOSTK+1
|
||
900 00313 1452 FIP2, TAD I FIOPTR /PICK UP IOT
|
||
901 00314 3141 DCA FIOSTK /PLACE ON STACK
|
||
902 00315 1046 TAD FIUSAC /USER ACCUMULATOR
|
||
903 00316 3142 DCA FIOSTK+1 /SIMULATE LINKAGE
|
||
904 00317 6221 CFLD /CHANGE TO CURRENT FIELD
|
||
905 00320 5270 JMP FIP4
|
||
906 /
|
||
907 00321 4706 FIPSFC, PRVCLS
|
||
908 00322 3042 RDCURA, RDCURR /POINTER TO SEGMENT # IN BUFFER
|
||
909 00323 3067 RD301, RD30
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 23
|
||
|
||
|
||
910 00324 0324 IOTABL, . /TABLE OF USER FILE IOT'S
|
||
911 00325 0040 ASD /ASSIGN A DEVICE
|
||
912 00326 0042 REL /RELEASE A DEVICE
|
||
913 00327 0200 REN /RENAME A FILE
|
||
914 00330 6601 OPEN /OPEN A FILE
|
||
915 00331 0202 CLOS /CLOSE A FILE
|
||
916 00332 6603 RFILE /FILE READ (WINDOW MOVE)
|
||
917 00333 0204 PROT /FILE PROTECTION
|
||
918 00334 6605 WFILE /FILE WRITE (WINDOW MOVE)
|
||
919 00335 6606 XOPEN /OPEN A FILE WITH EXCLUSIVE USE
|
||
920 00336 0207 CPASS /CHANGE A USER'S PASSWORD
|
||
921 00337 0210 CRF /CREATE A FILE
|
||
922 00340 0211 EXT /EXTEND A FILE
|
||
923 00341 0212 RED /REDUCE A FILE
|
||
924 00342 6613 FINF /FILE INFORMATION
|
||
925 00343 0214 LIN
|
||
926 00344 0215 LOUT
|
||
927 00345 0220 BCLR /CLEAR ACCOUNT BILLING INFORMATION
|
||
928 00346 0000 0
|
||
929
|
||
930 00347 2424 IODSPA, IODISP-IOTABL-1
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 24
|
||
|
||
|
||
931 /ROUTINE TO GET A DIRECTORY ENTRY INTO CORE
|
||
932
|
||
933 /CALLING SEQUENCE:
|
||
934 / TAD (INTERNAL FILE NUMBER)
|
||
935 / JMS GD0
|
||
936 / RETURN (BUFFER POINTER IN AC, 0=ERROR)
|
||
937
|
||
938 00350 0000 GD0, 0
|
||
939 00351 4504 JMS I EBLD0
|
||
940 00352 3365 DCA GDUFDP
|
||
941 00353 1765 TAD I GDUFDP /RELATIVE POSITION IN UFD TABLE
|
||
942 00354 4472 JMS I BLDP1
|
||
943 00355 3053 DCA GDRETP /POINTER TO UFD RETRIEVAL INFORMATION
|
||
944 00356 2365 ISZ GDUFDP
|
||
945 00357 1765 TAD I GDUFDP /PICK UP ENTRY ADDRESS WITHIN UFD
|
||
946 00360 3363 DCA GD1
|
||
947 00361 1053 TAD GDRETP
|
||
948 00362 4511 JMS I GE01 /GET ENTRY INTO CORE
|
||
949 00363 0000 GD1, 0
|
||
950 00364 5750 JMP I GD0
|
||
951
|
||
952 GDUFDP,
|
||
953 00365 0000 IFN0, 0
|
||
954 00366 1142 TAD FIOSTK+1
|
||
955 00367 0011 AND P0003
|
||
956 00370 3142 DCA FIOSTK+1
|
||
957 00371 1142 TAD FIOSTK+1 /RETURN THE FILE INDEX
|
||
958 00372 5765 JMP I IFN0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 25
|
||
|
||
|
||
959 PAGE
|
||
960 /THIS HANDLES THE 'OPEN' & 'XOPEN' IOTS.
|
||
961 /THE 'XOPEN' WORKS EXACTLY LIKE THE NORMAL 'OPEN', EXCEPT
|
||
962 /THAT THE USER GAINS EXCLUSIVE USE OVER THE FILE IF HE
|
||
963 /IS ALLOWED TO WRITE IT. NO ONE ELSE MAY OPEN IT WHILE
|
||
964 /HE HAS IT EXCLUSIVELY.
|
||
965 /
|
||
966 /THERE ARE SEVERAL SPECIAL CASES WHICH ARE HANDLED:
|
||
967 /
|
||
968 /A USER NO LONGER NEEDS HIS ACCT # & PASSWORD TO OPEN HIS UFD.
|
||
969 /ALL HE NEEDS IS THE OWNER'S ACCT BE 0001 AND THE FIRST
|
||
970 /WORD OF THE NAME BE 0 OR HIS ACCT #. IF HIS IS A SYSTEM
|
||
971 /ACCOUNT, HE MAY OPEN ANY UFD (EXCEPT THE MFD) BY SETTING
|
||
972 /THE FIRST WORD OF THE NAME TO THE DESIRED ACCOUNT.
|
||
973 /
|
||
974 /EXCEPT WHEN OPENED BY THE SYSTEM MANAGER (0001), ALL UFD'S
|
||
975 /ARE WRITE-PROTECTED REGARDLESS OF THE PROTECTION CODE.
|
||
976 /THIS ALLOWS THESE BITS IN THE MFD TO BE USED FOR DISC QUOTAS.
|
||
977 /
|
||
978 /WHEN AN OPERATOR ACCOUNT TRIES TO OPEN A NON-EXISTENT
|
||
979 /UFD, HE IS RETURNED THE NUMBER OF THE NEXT UFD IN
|
||
980 /THE FOURTH WORD OF HIS OPEN PACKET.
|
||
981 /
|
||
982 /WHEN 'SI' OPENS A FILE FROM THE SYSTEM LIBRARY WHICH
|
||
983 /HAS THE ".SVP" EXTENSION, WE SET THE "JSPRIV" BIT IN
|
||
984 /THE USER'S JOB-STATUS WORD. THIS ALLOWS ONLY CERTAIN
|
||
985 /SYSTEM PROGRAMS TO USE THE "PEEK" IOT, THUS PREVENTING
|
||
986 /USERS FROM EXAMINING SYSTEM KEYBOARD BUFFERS AND
|
||
987 /STEALING PASSWORDS.
|
||
988 /
|
||
989 /A USER (OTHER THAN ACCOUNT 1 OR 7) CAN ONLY OPEN A FILE
|
||
990 /OWNED BY THE BILLING SYSTEM (ACCOUNT 7) IF HE IS RUNNING
|
||
991 /A PROGRAM WHICH ENABLES HIS 'JSPRIV' BIT. CHANGING THE
|
||
992 /PROGRAM (THUS CLEARING PRIVILEGE) DISALLOWS ANY FURTHER
|
||
993 /I-O TO A PRIVILEGED FILE AND FORCES THE FILE CLOSED AT THE
|
||
994 /NEXT CALL TO 'FIP'.
|
||
995 /
|
||
996 /THE SYSTEM MANAGER AND, IF CONFIGURED, THE BILLING SYSTEM
|
||
997 /ACCOUNT MAY OPEN ANY FILE IN THE SYSTEM AS IF THEY OWNED IT.
|
||
998 /NOTE THAT THIS IS ONLY NECESSARY FOR DELETING OTHER USERS'
|
||
999 /FILES WHEN BILLING OR REMOVING AN ACCOUNT NUMBER.
|
||
1000 /
|
||
1001 /THE SYSTEM LIBRARY FILE "BASIC" IS GIVEN ITS OWN PRIVATE
|
||
1002 /RETRIEVAL WINDOW IN FIELD 1 ONLY IF IT IS WRITE-PROTECTED
|
||
1003 /AND IT IS NOT TOO LARGE FOR THIS FIXED WINDOW.
|
||
1004 /
|
||
1005 /ANY NUMBER OF USERS MAY NOW READ-WRITE THE SAME FILE
|
||
1006 /SIMULTANEOUSLY PROVIDING THAT NO ATTEMPTS ARE MADE
|
||
1007 /TO EXTEND OR REDUCE THE FILE. OBVIOUSLY, PROGRAMS
|
||
1008 /SHARING DATA FILES MUST USE SOME METHOD OF ENSURING
|
||
1009 /GRACEFUL FILE HANDLING.
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 26
|
||
|
||
|
||
1010 /
|
||
1011 0147 OPNACT= FIOSTK+6
|
||
1012 0150 OPNBUF= FIOSTK+7
|
||
1013 /
|
||
1014 00400 7330 XOPN0, CLA CLL CML RAR /SET THE 'EXCLUSIVE USE' BIT
|
||
1015 00401 3376 OPN0, DCA XOPNSW
|
||
1016 00402 4516 JMS I IFN01 /CHECK FOR A LEGAL FILE #
|
||
1017 00403 4477 JMS I CL01 /CLOSE THE FILE IF ANY OPEN
|
||
1018 00404 1143 TAD FIOSTK+2
|
||
1019 00405 7450 SNA /IS IT ASSUMED TO BE THIS USER'S FILE?
|
||
1020 00406 1050 TAD FIACCT /YES - FILL IT IN
|
||
1021 00407 3147 DCA OPNACT
|
||
1022 00410 7240 CLA CMA
|
||
1023 00411 1147 TAD OPNACT
|
||
1024 00412 7640 SZA CLA /IS IT A FILE-DIRECTORY?
|
||
1025 00413 5243 JMP OPN2 /NO
|
||
1026 /
|
||
1027 /HE WANTS TO OPEN A DIRECTORY - WE CHECK TO SEE IF
|
||
1028 /THE DIRECTORY HE WANTS IS HIS OR, IF NOT, IF HE
|
||
1029 /IS THE MANAGER OR OTHER SYSTEM PERSONNEL OR THE
|
||
1030 /BILLING SYSTEM ACCOUNT.
|
||
1031 00414 1144 TAD FIOSTK+3
|
||
1032 00415 7450 SNA /IS IT ASSUMED TO BE HIS OWN?
|
||
1033 00416 1050 TAD FIACCT /YES - SET IT
|
||
1034 00417 3144 DCA FIOSTK+3
|
||
1035 00420 1050 TAD FIACCT
|
||
1036 00421 7041 CIA
|
||
1037 00422 1144 TAD FIOSTK+3
|
||
1038 00423 7650 SNA CLA /IS IT HIS OWN UFD?
|
||
1039 00424 5242 JMP OPN1 /YES
|
||
1040 00425 7344 CLA CLL CMA RAL
|
||
1041 00426 1144 TAD FIOSTK+3
|
||
1042 00427 7450 SNA /IS IT THE LIBRARY UFD?
|
||
1043 00430 5242 JMP OPN1 /YES - ANYONE CAN READ THAT
|
||
1044 00431 7001 IAC
|
||
1045 00432 7650 SNA CLA /NO - IS IT THE MFD?
|
||
1046 00433 5362 JMP OPNER2 /YES - "PROTECTION VIOLATION"
|
||
1047 00434 4474 CHKACT /IS THIS THE MANAGER OR BILLING SYSTEM?
|
||
1048 00435 5242 JMP OPN1 /YES - THEY GET ANYTHING ELSE
|
||
1049 00436 1050 TAD FIACCT
|
||
1050 00437 0033 AND C7700
|
||
1051 00440 7640 SZA CLA /IS THIS A SYSTEM OPERATOR OR MANAGER?
|
||
1052 00441 5362 JMP OPNER2 /NO - "PROTECTION VIOLATION"
|
||
1053 00442 7240 OPN1, CLA CMA /SET NON-ZERO FOR ONE-WORD SEARCH
|
||
1054 00443 3331 OPN2, DCA OPNTYP / OF FILE-DIRECTORY
|
||
1055 00444 1144 TAD FIOSTK+3
|
||
1056 00445 7650 SNA CLA /IS IT A NULL FILENAME?
|
||
1057 00446 5361 JMP OPNER1 /YES - "FILE NOT FOUND"
|
||
1058 00447 1147 TAD OPNACT
|
||
1059 00450 4530 JMS I UFO01 /OPEN THE OWNER'S UFD
|
||
1060 00451 5361 JMP OPNER1 /NO SUCH USER - "FILE NOT FOUND"
|
||
1061 00452 1376 TAD XOPNSW /ADD IN THE 'EXCLUSIVE USE' BIT (4000)
|
||
1062 00453 3376 DCA XOPNSW / & SAVE FOR FIRST WORD OF 'ENTTBL' ENTRY
|
||
1063 00454 1376 TAD XOPNSW
|
||
1064 00455 4472 JMS I BLDP1 /GET THE 'RETTBL' ENTRY ADDRESS
|
||
1065 00456 3143 DCA FIOSTK+2
|
||
1066 00457 1331 TAD OPNTYP /NOW GET THE SEARCH-TYPE AND DO
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 27
|
||
|
||
|
||
1067 00460 4502 JMS I DS01 / A 1- OR 3-WORD DIRECTORY SEARCH
|
||
1068 00461 0143 FIOSTK+2
|
||
1069 00462 5355 JMP OPNER0 /NO FIND - "FILE NOT FOUND"
|
||
1070 00463 1005 TAD P0004
|
||
1071 00464 3150 DCA OPNBUF /SAVE THE POINTER TO THE PROTECT-WORD
|
||
1072 /
|
||
1073 /HERE WE FIGURE OUT THE TYPE OF ACCOUNT THIS USER
|
||
1074 /HAS & THEN SEE IF THE FILE IS PROTECTED AGAINST THAT
|
||
1075 /TYPE OF ACCESS.
|
||
1076 00465 1331 TAD OPNTYP
|
||
1077 00466 7640 SZA CLA /WAS THIS AN OPEN OF A 'UFD'?
|
||
1078 00467 5304 JMP OPN3 /YES - ONLY MANAGER #1 CAN WRITE THEM
|
||
1079 00470 4774 JMS I OPNPRT /CALCULATE THE PROTECTION CHECK-MASK
|
||
1080 00471 3056 DCA OPNFLG
|
||
1081 00472 1056 TAD OPNFLG /'AND' THE PROTECTION-CODE TO THE LOW-
|
||
1082 00473 0014 AND P0007 / ORDER 3 BITS OF THE MASK
|
||
1083 00474 0550 AND I OPNBUF
|
||
1084 00475 7640 SZA CLA /IS THE FILE READ PROTECTED?
|
||
1085 00476 5362 JMP OPNER2 /YES - "PROTECTION VIOLATION"
|
||
1086 00477 1056 TAD OPNFLG /NO - CHECK FOR 'WRITE-PROTECT'
|
||
1087 00500 7104 CLL RAL
|
||
1088 00501 0550 AND I OPNBUF
|
||
1089 00502 7650 SNA CLA /IS IT WRITE-PROTECTED?
|
||
1090 00503 5314 JMP OPN4 /NO
|
||
1091 00504 1331 OPN3, TAD OPNTYP
|
||
1092 00505 1050 TAD FIACCT
|
||
1093 00506 7650 SNA CLA /IS THIS THE MANAGER #1 OPENING A UFD?
|
||
1094 00507 5314 JMP OPN4 /YES - HE MUST BE ALLOWED TO WRITE IT
|
||
1095 00510 1376 TAD XOPNSW
|
||
1096 00511 7710 SPA CLA /DOES THE USER WANT EXCLUSIVE USE?
|
||
1097 00512 5362 JMP OPNER2 /YES, TOO BAD - "PROTECTION VIOLATION"
|
||
1098 00513 1005 TAD P0004 /NO - SET 'PROTECTED' BIT
|
||
1099 00514 3056 OPN4, DCA OPNFLG
|
||
1100 00515 1147 TAD OPNACT
|
||
1101 00516 1161 TAD LOGACT
|
||
1102 00517 7650 SNA CLA /WAS THIS AN ACCOUNT #7 (BILLING ACCOUNT) FILE?
|
||
1103 00520 4474 CHKACT /YES - IS THIS A MERE ORDINARY USER?
|
||
1104 00521 5325 JMP .+4 /NO
|
||
1105 00522 4475 CHKPRV /YES - IS HE RUNNING WITH PRIVILEGE?
|
||
1106 00523 5362 JMP OPNER2 /NO - ACCOUNT 7 FILES ARE SPECIAL - "PROTECTION VIOLATION"
|
||
1107 00524 2056 ISZ OPNFLG /SET THE 'SPECIAL FILE' BIT IN THE CONTROL BLOCK
|
||
1108 00525 1404 TAD I ZDS1 /GET THE SEARCH-FIND ADDRESS
|
||
1109 00526 3331 DCA .+3
|
||
1110 00527 1143 TAD FIOSTK+2
|
||
1111 00530 4505 JMS I ENS01 /NOW CHECK FOR OTHER OPENINGS
|
||
1112 00531 0000 OPNTYP, 0
|
||
1113 00532 7650 SNA CLA /ANYONE ELSE HAVE IT OPEN?
|
||
1114 00533 5343 JMP OPN5 /NO
|
||
1115 00534 7360 CLA CLL CMA CML
|
||
1116 00535 1773 TAD I OPNFND /YES - GET THE LAST 'FIND' ENTRY (IN 'ENTTBL')
|
||
1117 00536 3137 DCA CFH
|
||
1118 00537 1537 TAD I CFH
|
||
1119 00540 1376 TAD XOPNSW
|
||
1120 00541 7730 SPA SZL CLA /DOES SOMEONE ELSE HAVE 'EXCL. USE' OR DO WE WANT IT?
|
||
1121 00542 5364 JMP OPNER3 /YES, TOO BAD - "ANOTHER USER HAS FILE"
|
||
1122 00543 1142 OPN5, TAD FIOSTK+1 /WE HAVE THE FILE - NOW FILL IN THE
|
||
1123 00544 4504 JMS I EBLD0 / 'ENTTBL' ENTRY
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 28
|
||
|
||
|
||
1124 00545 3137 DCA CFH
|
||
1125 00546 1376 TAD XOPNSW /FIRST THE 'UFDTBL' INDEX &
|
||
1126 00547 3537 DCA I CFH / THE 'EXCLUSIVE USE' BIT
|
||
1127 00550 2137 ISZ CFH
|
||
1128 00551 1404 TAD I ZDS1 /THEN THE UFD ENTRY-ADDRESS
|
||
1129 00552 3537 DCA I CFH
|
||
1130 00553 5754 JMP I .+1 / AND GO DO THE BOOKKEEPING
|
||
1131 00554 0600 OPN6
|
||
1132
|
||
1133 /COMES HERE TO RETURN VARIOUS ERROR STATUSES.
|
||
1134 00555 4476 OPNER0, CHKSRC /IS THIS 'OPEN' FROM 'SI'?
|
||
1135 00556 1331 TAD OPNTYP /NO - WAS IT A PROGRAMMATIC OPEN OF A 'UFD'?
|
||
1136 00557 7640 SZA CLA /WAS THIS A DIRECTORY OPEN?
|
||
1137 00560 5775 JMP I OPNR0A /YES - RETURN THE NEXT UFD NUMBER
|
||
1138 /NO - JUST RETURN THE ERROR CODE
|
||
1139 00561 7330 OPNER1, CLA CLL CML RAR /7000 = "FILE NOT FOUND"
|
||
1140 00562 7130 OPNER2, CLL CML RAR /6000 = "PROTECTION VIOLATION"
|
||
1141 00563 7410 SKP
|
||
1142 00564 1023 OPNER3, TAD P1000 /4400 = "ANOTHER USER HAS FILE OPEN"
|
||
1143 00565 7130 CLL CML RAR
|
||
1144 00566 3046 OPNEXT, DCA FIUSAC /SET (OR CLEAR) HIS AC
|
||
1145 00567 6211 DATFLD
|
||
1146 00570 1452 TAD I FIOPTR
|
||
1147 00571 4402 JMS I RETBK1 /RETURN THE PARAMETER BLOCK
|
||
1148 00572 5534 JMP I FIEXIT /THEN EXIT FIP
|
||
1149 /
|
||
1150 00573 2167 OPNFND, ENSFND /LOC. OF LAST 'FIND' IN ENS0
|
||
1151 00574 0752 OPNPRT, OPNPR0 /CALCULATE CHECK-MASK
|
||
1152 00575 5106 OPNR0A, OPNR01
|
||
1153 00576 0000 XOPNSW, 0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 29
|
||
|
||
|
||
1154 PAGE
|
||
1155 /
|
||
1156 /NOW WE CAN OPEN THE FILE - JUST BUILD THE FILE CONTROL-
|
||
1157 /BLOCK AND THE SEGMENT RETRIEVAL WINDOW.
|
||
1158 00600 7240 OPN6, CLA CMA
|
||
1159 00601 3060 DCA TABSTA /REMEMBER TO SAVE THE TABLES
|
||
1160 00602 4746 JMS I OPNPRV /CHECK TO SEE IF THE 'PRIVILEGE' BIT GETS SET
|
||
1161 00603 2150 ISZ OPNBUF
|
||
1162 00604 1550 TAD I OPNBUF /GET THE FILE SIZE (FOR BASIC CHECK)
|
||
1163 00605 3306 DCA OPNSIZ
|
||
1164 00606 2150 ISZ OPNBUF
|
||
1165 00607 2150 ISZ OPNBUF
|
||
1166 00610 1550 TAD I OPNBUF /GET THE RETRIEVAL WINDOW ADDRESS
|
||
1167 00611 3214 DCA .+3
|
||
1168 00612 1143 TAD FIOSTK+2
|
||
1169 00613 4511 JMS I GE01 /NOW READ IN THE FIRST WINDOW
|
||
1170 00614 0000 0
|
||
1171 00615 3333 DCA OPNWND / AND SAVE ITS IN-CORE ADDRESS
|
||
1172 00616 1142 TAD FIOSTK+1
|
||
1173 00617 1345 TAD OPNJF0 /FIND THE FILE STATUS WORD
|
||
1174 00620 3222 DCA .+2
|
||
1175 00621 4506 FGETJT / & GET ITS ADDRESS
|
||
1176 00622 0000 OPNPTR, 0
|
||
1177 00623 4515 JMS I GTBLO1 /THEN GET A LINKED-BLOCK FOR FILE CONTROL
|
||
1178 00624 3150 DCA OPNBUF / (POINTS TO WINDOW-ADDRESS)
|
||
1179 00625 7326 CLA CLL CML RTL /GET THE PROTECTION-WORD LOCATION
|
||
1180 00626 1150 TAD OPNBUF
|
||
1181 00627 3137 DCA CFH
|
||
1182 00630 1056 TAD OPNFLG / AND SET THE PROTECTION-WORD IN THE BLOCK
|
||
1183 00631 3537 DCA I CFH / 0=READ/WRITE; 4=READ ONLY
|
||
1184 /
|
||
1185 /NOW WE CHECK TO SEE IF THIS IS BASIC AND SHOULD HAVE ITS
|
||
1186 /OWN PRIVATE RETRIEVAL WINDOW.
|
||
1187 00632 1144 TAD FIOSTK+3
|
||
1188 00633 1347 TAD OPNBAS
|
||
1189 00634 7640 SZA CLA / "BA"?
|
||
1190 00635 5324 JMP OPN11 /NO
|
||
1191 00636 7344 CLA CLL CMA RAL
|
||
1192 00637 1147 TAD OPNACT
|
||
1193 00640 7650 SNA CLA /IS IT FROM THE SYSTEM LIBRARY?
|
||
1194 00641 1145 TAD FIOSTK+4 /YES
|
||
1195 00642 1350 TAD OPNBAS+1
|
||
1196 00643 7650 SNA CLA / "BASI"?
|
||
1197 00644 1146 TAD FIOSTK+5
|
||
1198 00645 1351 TAD OPNBAS+2
|
||
1199 00646 7650 SNA CLA / "BASIC "?
|
||
1200 00647 1056 TAD OPNFLG
|
||
1201 00650 7650 SNA CLA /YES - CAN HE ALTER IT?
|
||
1202 00651 5324 JMP OPN11 /YES - NO SPECIAL WINDOW
|
||
1203 00652 1306 TAD OPNSIZ
|
||
1204 00653 1140 TAD BASWIN
|
||
1205 00654 7700 SMA CLA /NO - IS IT TOO LARGE?
|
||
1206 00655 5323 JMP OPN10 /YES - INVALIDATE THE SPECIAL WINDOW
|
||
1207 /
|
||
1208 /HERE WE BUILD THE SPECIAL WINDOW FOR BASIC. NOTE THAT WHEN BASIC
|
||
1209 /IS TOO LARGE FOR THE WINDOW, WE INVALIDATE IT. TO INSURE THAT
|
||
1210 /THE SPECIAL WINDOW REFLECTS ANY CHANGES, WE ALWAYS REBUILD
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 30
|
||
|
||
|
||
1211 /IT, SINCE WE (CURRENTLY) HAVE NO GRACEFUL WAY OF DETECTING
|
||
1212 /A LONE USER CHANGING THE SIZE (SEVERAL USERS MAY NOW WRITE
|
||
1213 /INTO A FILE SIMULTANEOUSLY).
|
||
1214 00656 6221 CFLD
|
||
1215 00657 1140 TAD BASWIN /NO - SET THE WINDOW POINTER
|
||
1216 00660 3222 DCA OPNPTR
|
||
1217 00661 1333 OPN7, TAD OPNWND / AND THE RETRIEVAL-BLOCK BUFFER-ADDRESS
|
||
1218 00662 3010 DCA INDEX
|
||
1219 00663 1035 TAD C7771
|
||
1220 00664 3137 DCA CFH /SET THE SEGMENT/BLOCK COUNT (-7)
|
||
1221 00665 1410 OPN8, TAD I INDEX /NOW GET A SEGMENT NUMBER
|
||
1222 00666 7450 SNA /AT THE END OF THE SEGMENTS?
|
||
1223 00667 5311 JMP OPN9 /YES
|
||
1224 00670 2222 ISZ OPNPTR /NO - INCREMENT THE WINDOW POINTER
|
||
1225 00671 7410 SKP
|
||
1226 00672 7402 HLT /OOPS!! ERROR IN SIZE CHECK *****
|
||
1227 00673 6211 DATFLD
|
||
1228 00674 3622 DCA I OPNPTR /PLOP THE SEGMENT NUMBER INTO THE WINDOW
|
||
1229 00675 6221 CFLD
|
||
1230 00676 2137 ISZ CFH /INCREMENT COUNT
|
||
1231 00677 5265 JMP OPN8 / & CONTINUE
|
||
1232 00700 1733 TAD I OPNWND /GET THE NEXT BLOCK ADDRESS
|
||
1233 00701 7450 SNA /ARE WE DONE?
|
||
1234 00702 5311 JMP OPN9 /YES
|
||
1235 00703 3306 DCA .+3 /NO - SET NEXT ENTRY ADDRESS
|
||
1236 00704 1143 TAD FIOSTK+2
|
||
1237 00705 4511 JMS I GE01 /NOW GET THE NEXT WINDOW IN CHAIN
|
||
1238 00706 0000 OPNSIZ, 0
|
||
1239 00707 3333 DCA OPNWND / & SAVE ITS CORE-ADDRESS
|
||
1240 00710 5261 JMP OPN7 /OK - KEEP MOVING SEGMENT NUMBERS
|
||
1241 00711 6211 OPN9, DATFLD
|
||
1242 00712 7240 CLA CMA /ALL DONE - SET THE 'SET UP' SWITCH
|
||
1243 00713 3540 DCA I BASWIN
|
||
1244 00714 7410 SKP
|
||
1245 00715 3622 DCA I OPNPTR /CLEAR THE REST OF THE SPECIAL WINDOW
|
||
1246 00716 2222 ISZ OPNPTR
|
||
1247 00717 5315 JMP .-2
|
||
1248 00720 1140 TAD BASWIN /SET THE WINDOW ADDRESS IN THE
|
||
1249 00721 3550 DCA I OPNBUF / FILE CONTROL-BLOCK
|
||
1250 00722 5337 JMP OPN12 /NOW FINISH UP
|
||
1251 /
|
||
1252 /HERE WE FETCH A FREE-CORE BLOCK AND COPY THE FIRST WINDOW
|
||
1253 /INTO IT.
|
||
1254 00723 3540 OPN10, DCA I BASWIN /CLEAR THE BASIC WINDOW FLAG
|
||
1255 00724 1150 OPN11, TAD OPNBUF /GET THE WINDOW-ADDRESS POINTER
|
||
1256 00725 4515 JMS I GTBLO1 / & AND LINK A BLOCK TO IT
|
||
1257 00726 3335 DCA OPNPRW
|
||
1258 00727 6221 CFLD
|
||
1259 00730 6202 CIF
|
||
1260 00731 4473 BLT /NOW COPY OVER THE WINDOW
|
||
1261 00732 6221 CFLD
|
||
1262 00733 0000 OPNWND, 0 /SOURCE
|
||
1263 00734 6211 DATFLD
|
||
1264 00735 0000 OPNPRW, 0 /DESTINATION
|
||
1265 00736 7770 -10 /WORD-COUNT
|
||
1266 /
|
||
1267 /ALL DONE - NOW JUST INCREMENT THE UFD-USAGE COUNT & EXIT.
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 31
|
||
|
||
|
||
1268 00737 6221 OPN12, CFLD
|
||
1269 00740 7240 CLA CMA
|
||
1270 00741 1536 TAD I UTPRNU /INDICATE OUR UFD-USAGE
|
||
1271 00742 3536 DCA I UTPRNU
|
||
1272 00743 5744 JMP I .+1 /GO CLEAN UP & EXIT
|
||
1273 00744 0566 OPNEXT
|
||
1274 /
|
||
1275 00745 0020 OPNJF0, JOBF0
|
||
1276 00746 5056 OPNPRV, OPNPV0
|
||
1277 00747 3537 OPNBAS, -4241 / (-) "BASIC " IN TSS/8 6-BIT
|
||
1278 00750 1427 -6351
|
||
1279 00751 3500 -4300
|
||
1280
|
||
1281 /
|
||
1282 /SUBROUTINE TO CALCULATE THE PROTECTION CHECK-MASK. THIS
|
||
1283 /IS BASED ON WHO THE FILE OWNER IS COMPARED TO WHO IS
|
||
1284 /REQUESTING THE FILE.
|
||
1285 00752 0000 OPNPR0, 0
|
||
1286 00753 1147 TAD OPNACT
|
||
1287 00754 7041 CIA
|
||
1288 00755 1050 TAD FIACCT
|
||
1289 00756 7640 SZA CLA /IS IT HIS OWN FILE?
|
||
1290 00757 4474 CHKACT /NO - IS THIS A PRIVILEGED USER?
|
||
1291 00760 5374 JMP OPNPR1 /YES - HE OWNS EVERYTHING
|
||
1292 00761 1147 TAD OPNACT /NO - GET THE OWNER'S PROJECT
|
||
1293 00762 0033 AND C7700
|
||
1294 00763 7041 CIA
|
||
1295 00764 3335 DCA OPNPRW
|
||
1296 00765 1050 TAD FIACCT / AND THE REQUESTOR'S PROJECT
|
||
1297 00766 0033 AND C7700
|
||
1298 00767 1335 TAD OPNPRW
|
||
1299 00770 7650 SNA CLA /DO THE PROJECT NUMBERS MATCH?
|
||
1300 00771 1011 TAD P0003 /YES - MASK = 4
|
||
1301 00772 7101 CLL IAC /NO - MASK = 1
|
||
1302 00773 7410 SKP
|
||
1303 00774 1015 OPNPR1, TAD C0010 /OWNS FILE - MASK = 10
|
||
1304 00775 5752 JMP I OPNPR0 /RETURN WITH AC = MASK
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 32
|
||
|
||
|
||
1305 PAGE
|
||
1306 /ROUTINE TO CLOSE A FILE
|
||
1307
|
||
1308 01000 3216 CLS0, DCA CLSIFN /INTERNAL FILE NUMBER
|
||
1309 01001 1036 TAD C7774
|
||
1310 01002 3217 DCA CLCNTR /COUNTER FOR BIT SCAN
|
||
1311 01003 1142 CLS1, TAD FIOSTK+1 /PICK UP BIT PATTERN
|
||
1312 01004 7004 RAL
|
||
1313 01005 3142 DCA FIOSTK+1
|
||
1314 01006 7420 SNL /BIT SET FOR THIS FILE #?
|
||
1315 01007 5212 JMP .+3
|
||
1316 01010 1216 TAD CLSIFN /YES - GET THE FILE #
|
||
1317 01011 4220 JMS CL0 / AND CLOSE IT
|
||
1318 01012 2216 ISZ CLSIFN /NEXT FILE NUMBER
|
||
1319 01013 2217 ISZ CLCNTR /DONE ALL FOUR?
|
||
1320 01014 5203 JMP CLS1 /NO, KEEP AT IT
|
||
1321 01015 5534 JMP I FIEXIT /THROUGH
|
||
1322
|
||
1323 01016 0000 CLSIFN, 0
|
||
1324 01017 0000 CLCNTR, 0
|
||
1325
|
||
1326 /ROUTINE TO DO ACTUAL FILE CLOSE
|
||
1327 01020 0000 CL0, 0
|
||
1328 01021 4504 JMS I EBLD0
|
||
1329 01022 3266 DCA ENR0 /SAVE THE 'ENTTBL' POINTER
|
||
1330 01023 1137 TAD CFH
|
||
1331 01024 4403 JMS I LNK01 /RETURNS WITH PTR. TO FILE CONTROL BLOCK FROM JOB STATUS BLOCK
|
||
1332 01025 7450 SNA
|
||
1333 01026 5263 JMP CL3 /FILE WAS NOT OPEN
|
||
1334 01027 3277 DCA ENR1 /SAVE IT
|
||
1335 01030 3537 DCA I CFH /CLEAR POINTER TO FILE CONTROL BLOCK---INDICATES FILE CLOSED
|
||
1336 01031 6221 CFLD /SET DATA FIELD TO THIS FIELD
|
||
1337 01032 1277 TAD ENR1 /POINTER TO PARAMETER BLOCK
|
||
1338 01033 4402 JMS I RETBK1 /RETURN THE CONTROL-BLOCK
|
||
1339 01034 3277 DCA ENR1
|
||
1340 01035 1277 TAD ENR1 /GET THE RETRIEVAL-WINDOW ADDR.
|
||
1341 01036 7041 CIA
|
||
1342 01037 1140 TAD BASWIN
|
||
1343 01040 7650 SNA CLA /IS IT THE SPECIAL BASIC WINDOW?
|
||
1344 01041 5244 JMP .+3 /YES - DON'T FREE IT
|
||
1345 01042 1277 TAD ENR1 /NO - RETURN IT TO FREE-CORE
|
||
1346 01043 4402 JMS I RETBK1
|
||
1347 01044 7340 CLA CLL CMA
|
||
1348 01045 1666 TAD I ENR0 /RELATIVE POINTER TO UFD RETRIEVAL TABLE
|
||
1349 01046 7104 CLL RAL / * 2 (AND ZAP 'EXCLUSIVE USE' BIT)
|
||
1350 01047 7001 IAC
|
||
1351 01050 1064 TAD UFDTBL
|
||
1352 01051 3265 DCA CLUFDP /POINTER TO ACCESS COUNTER
|
||
1353 01052 3666 DCA I ENR0 /CLEAR PTR. IN ENTTBL TO INDICATE FILE IS CLOSED
|
||
1354 01053 7240 CLA CMA
|
||
1355 01054 3060 DCA TABSTA /SET TABLE STATUS TO WRITE OUT
|
||
1356 01055 2665 ISZ I CLUFDP /REMOVE THIS JOB FROM ACCESS COUNT IN UFDTBL
|
||
1357 01056 5620 JMP I CL0
|
||
1358
|
||
1359 /THIS WAS THE ONLY GUY USING THIS UFD, SO CLOSE IT OUT
|
||
1360 01057 7240 CLA CMA /NO ONE IS NOW ACCESSING THIS UFD
|
||
1361 01060 1265 TAD CLUFDP
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 33
|
||
|
||
|
||
1362 01061 4526 JMS I TF01 /FREE A TABLE ENTRY
|
||
1363 01062 5620 JMP I CL0
|
||
1364
|
||
1365 01063 6221 CL3, CFLD
|
||
1366 01064 5620 JMP I CL0
|
||
1367
|
||
1368 01065 0000 CLUFDP, 0
|
||
1369
|
||
1370 /FIND THE NUMBER OF PEOPLE ACCESSING THIS FILE
|
||
1371 /SKIPS IF EXACTLY ONE USER IS
|
||
1372 01066 0000 ENR0, 0
|
||
1373 01067 1142 TAD FIOSTK+1
|
||
1374 01070 4504 JMS I EBLD0
|
||
1375 01071 3277 DCA ENR1 /PTR. INTO ENTTBL
|
||
1376 01072 2277 ISZ ENR1
|
||
1377 01073 1677 TAD I ENR1 /GET ADDRESS IN UFD
|
||
1378 01074 3277 DCA ENR1
|
||
1379 01075 1053 TAD GDRETP /RTABLE
|
||
1380 01076 4505 JMS I ENS01 /HOW MANY PEOPLE HAVE THIS FILE OPEN?
|
||
1381 01077 0000 ENR1, 0
|
||
1382 01100 7041 CIA /RETURNS WITH # OF PEOPLE WHO HAVE THIS FILE OPEN
|
||
1383 01101 7040 CMA
|
||
1384 01102 7650 SNA CLA /IS THE PERSON TRYING TO CHANGE THE FILE THE
|
||
1385 01103 2266 ISZ ENR0 /...ONLY ONE WHO HAS IT OPEN?
|
||
1386 01104 5666 JMP I ENR0 /YES, SO SKIP
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 34
|
||
|
||
|
||
1387
|
||
1388 /CHANGE THE PROTECTION OF A FILE
|
||
1389
|
||
1390 01105 1142 PRT0, TAD FIOSTK+1 /PICK UP INTERNAL FILE NUMBER
|
||
1391 01106 7012 RTR
|
||
1392 01107 7012 RTR
|
||
1393 01110 7010 RAR
|
||
1394 01111 0011 AND P0003 /AND OFF PROTECTION BITS
|
||
1395 01112 3336 DCA PRIFNU /INTERNAL FILE NUMBER
|
||
1396 01113 1336 TAD PRIFNU
|
||
1397 01114 4527 JMS I UC01 /CHECK TO SEE IF USER IS OWNER
|
||
1398 01115 5331 JMP PRT1 /ERROR RETURN, USER IS NOT OWNER
|
||
1399 01116 1336 TAD PRIFNU
|
||
1400 01117 4510 JMS I GD01 /GET THIS DIRECTORY ENTRY INTO CORE
|
||
1401 01120 7450 SNA
|
||
1402 01121 7402 HLT /WHOOPS - ERROR *****
|
||
1403 01122 1005 TAD P0004
|
||
1404 01123 3337 DCA PRENTP /POINTER TO PROTECTION BITS OF THIS FILE
|
||
1405 01124 1340 TAD C7637
|
||
1406 01125 0142 AND FIOSTK+1 /PICK UP NEW PROTECTION BITS
|
||
1407 01126 3737 DCA I PRENTP / AND SET INTO THE DIRECTORY ENTRY
|
||
1408 01127 4524 SAVBUF /THEN RE-WRITE THE BUFFER
|
||
1409 01130 5534 JMP I FIEXIT
|
||
1410
|
||
1411 01131 7640 PRT1, SZA CLA /ERROR
|
||
1412 01132 7130 CLL CML RAR /6000 - "PROTECTION VIOLATION"
|
||
1413 01133 7130 CLL CML RAR /4000 - "NO FILE OPEN"
|
||
1414 01134 3046 DCA FIUSAC
|
||
1415 01135 5534 JMP I FIEXIT
|
||
1416
|
||
1417 01136 0000 PRIFNU, 0
|
||
1418 01137 0000 PRENTP, 0
|
||
1419 01140 7637 C7637, 7637
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 35
|
||
|
||
|
||
1420 /ROUTINE TO BUILD A RETRIEVAL POINTER FROM THE RELATIVE
|
||
1421 /POSITION IN RETTBL (WHICH IS ALSO THE ENTTBL POINTER).
|
||
1422
|
||
1423 /CALLING SEQUENCE:
|
||
1424 / TAD (RELATIVE POSITION)
|
||
1425 / JMS I BLDP1
|
||
1426 / RETURN (POINTER IN AC)
|
||
1427
|
||
1428 01141 0000 BLDP, 0
|
||
1429 01142 0025 AND C3777 /ZAP THE 'EXCLUSIVE USE' BIT
|
||
1430 01143 3137 DCA CFH
|
||
1431 01144 7240 CLA CMA
|
||
1432 01145 1137 TAD CFH /POINTER = [(PTR - 1) * 8 + RETTBL]
|
||
1433 01146 7104 CLL RAL; RTL
|
||
01147 7006
|
||
1434 01150 1065 TAD RETTBL
|
||
1435 01151 5741 JMP I BLDP /RETURN
|
||
1436
|
||
1437 /ROUTINE TO WRITE OUT THE SEGMENT-BUFFER IF NECESSARY.
|
||
1438
|
||
1439 01152 0000 WRITE, 0
|
||
1440 01153 2040 ISZ BUFWRT /NEED IT BE SAVED?
|
||
1441 01154 5752 JMP I WRITE /NO - JUST RETURN
|
||
1442 01155 1030 TAD C6605 /YES - SET THE 'WRITE' IOT
|
||
1443 01156 3151 DCA FLPARB
|
||
1444 01157 4507 JMS I FIO01 /THEN DO THE I/O
|
||
1445 01160 7402 HLT /ERROR ON WRITE - JUST CRASH *****
|
||
1446 01161 5752 JMP I WRITE / OTHERWISE RETURN
|
||
1447
|
||
1448 /ROUTINE TO CHECK THIS USER'S ACCOUNT NUMBER AND
|
||
1449 /SKIP IF HE IS A NORMAL USER; RETURN IS TO THE NEXT
|
||
1450 /INSTRUCTION IF HE IS EITHER THE SYSTEM MANAGER
|
||
1451 /(ACCOUNT NUMBER 0001) OR THE BILLING SYSTEM.
|
||
1452
|
||
1453 01162 0000 CHKAC0, 0
|
||
1454 01163 7240 CLA CMA
|
||
1455 01164 1050 TAD FIACCT
|
||
1456 01165 7650 SNA CLA /IS IT THE SYSTEM MANAGER?
|
||
1457 01166 5762 JMP I CHKAC0 /YES - SPECIAL EXIT
|
||
1458
|
||
1459 IFNZRO BILLNG <
|
||
1460 01167 1050 TAD FIACCT
|
||
1461 01170 1161 TAD LOGACT
|
||
1462 01171 7640 SZA CLA /NO - IS IT THE BILLING SYSTEM?
|
||
1463 >
|
||
1464 01172 2362 ISZ CHKAC0 /NO - NORMAL EXIT
|
||
1465 01173 5762 JMP I CHKAC0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 36
|
||
|
||
|
||
1466 PAGE
|
||
1467 /ROUTINE TO MOVE THE RETRIEVAL WINDOW IN FIELD ZERO
|
||
1468 01200 1143 WND0, TAD FIOSTK+2 /PICK UP INTERNAL FILE NUMBER
|
||
1469 01201 0011 AND P0003 /AND OFF FIELD BITS
|
||
1470 01202 4504 JMS I EBLD0
|
||
1471 01203 3340 DCA WNENTP /POINTER TO RETRIEVAL INFORMATION POINTER
|
||
1472 01204 1740 TAD I WNENTP
|
||
1473 01205 4472 JMS I BLDP1 /GENERATE ABSOLUTE PTR. INTO RETTBL
|
||
1474 01206 3341 DCA WNRETP /RETRIEVAL POINTER
|
||
1475 01207 1150 TAD FIOSTK+7
|
||
1476 01210 3337 DCA WNFCBP /PTR. TO THIS FILE'S FILE CONTROL BLOCK
|
||
1477 01211 1146 TAD FIOSTK+5
|
||
1478 01212 3324 DCA WND5 /LOW ORDER DISC ADDRESS
|
||
1479 01213 3342 DCA WNDCNT /GET INTO CORE
|
||
1480 01214 7240 STA
|
||
1481 01215 1021 TAD SEGSIZ
|
||
1482 01216 0142 AND FIOSTK+1 /GET HIGH ORDER FILE ADDRESS
|
||
1483 01217 3276 DCA WNDIRP
|
||
1484 01220 1021 TAD SEGSIZ /GET RID OF ADDRESS WITHIN SEGMENT
|
||
1485 01221 7041 CIA
|
||
1486 01222 0324 AND WND5
|
||
1487 01223 7104 CLL RAL
|
||
1488 01224 1276 TAD WNDIRP /WE NOW HAVE ALL THE NECESSARY BITS
|
||
1489 01225 7006 RTL; RTL / SO SHIFT THEM AROUND
|
||
01226 7006
|
||
1490 01227 3343 DCA WNSEGC /SAVE AS SEGMENT # TO GET
|
||
1491 01230 6211 DATFLD /WNSEGC NOW HAS SEGMENT NUMBER TO GET
|
||
1492 01231 1737 TAD I WNFCBP /PICK UP FIELD 0 WINDOW POINTER
|
||
1493 01232 3300 DCA WNDPTR /PNTS TO FILE RETRIEVAL WINDOW FOR THIS FILE
|
||
1494 01233 2337 ISZ WNFCBP
|
||
1495 01234 1737 TAD I WNFCBP /PICK UP NUMBER OF CURRENT SEGMENT IN WINDOW
|
||
1496 01235 3344 DCA WNCURS /CURRENT SEGMENT IN WINDOW
|
||
1497 01236 1343 TAD WNSEGC /SEGMENT TO GET
|
||
1498 01237 4345 JMS WND20 /DIVIDE BY 7 (IGNORE REMAINDER)
|
||
1499 01240 4327 JMS WND30 /MULTIPLY BY 7
|
||
1500 01241 3343 DCA WNSEGC /FIRST SEGMENT IN PROPER WINDOW
|
||
1501 01242 7240 CLA CMA
|
||
1502 01243 1700 TAD I WNDPTR /GET FIRST WORD OF FILE RETIEVAL WINDOW
|
||
1503 01244 7650 SNA CLA / = 1?
|
||
1504 01245 5311 JMP WND6 /INVALID WINDOW POINTER
|
||
1505 01246 1344 TAD WNCURS /CURRENT SEGMENT AT TOP OF CURRENT CORE WINDOW
|
||
1506 01247 7161 CLL CML CIA
|
||
1507
|
||
1508 /NOW SEE IF THE SEGMENT BEING SOUGHT IS ONE WHICH FOLLOWS
|
||
1509 /THOSE WHICH ARE PRESENTLY IN THE CORE WINDOW. IF THE
|
||
1510 /SOUGHT BLOCK DOES FOLLOW THE PRESENT ONE, WE CAN LOOK
|
||
1511 /THROUGH THE RETRIEVAL INFORMATION BLOCKS STARTING AT THE ONE
|
||
1512 /NOW IN CORE. OTHERWISE, WE MUST START AT THE VERY BEGINNING
|
||
1513 /OF THE LIST OF FILE RETRIEVAL INFORMATION BLOCKS
|
||
1514 01250 1343 TAD WNSEGC
|
||
1515 01251 7470 SNA SZL
|
||
1516 01252 5311 JMP WND6 /PREVIOUS BLOCK, SO MUST START AT BEGINNING OF STRING
|
||
1517 01253 4345 JMS WND20 /DIVIDE BY 7
|
||
1518 01254 7041 CIA
|
||
1519 01255 3342 DCA WNDCNT /MOVE FORWARD THIS MANY WINDOWS
|
||
1520 01256 1300 TAD WNDPTR
|
||
1521 01257 3276 WND10, DCA WNDIRP
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 37
|
||
|
||
|
||
1522 01260 1676 TAD I WNDIRP /PICK UP ADDRESS OF NEXT WINDOW
|
||
1523 01261 6221 CFLD /CHANGE TO CURRENT FIELD
|
||
1524 01262 7450 SNA
|
||
1525 01263 5273 JMP WND13 /END OF STRING
|
||
1526 01264 3267 DCA WND11
|
||
1527 01265 1341 TAD WNRETP /POINTER TO UFD RETRIEVAL INFORMATION
|
||
1528 01266 4511 JMS I GE01 /GET ENTRY INTO CORE
|
||
1529 01267 0000 WND11, 0
|
||
1530 01270 2342 ISZ WNDCNT /HAVE WE MOVED AHEAD ENOUGH BLOCKS?
|
||
1531 01271 5257 JMP WND10 /NOT PROPER WINDOW, KEEP LOOKING
|
||
1532 01272 3276 DCA WNDIRP
|
||
1533 01273 6202 WND13, CIF
|
||
1534 01274 4473 BLT
|
||
1535 01275 6221 CFLD /SOURCE FIELD
|
||
1536 01276 0000 WNDIRP, 0 /SOURCE
|
||
1537 01277 6211 DATFLD /DESTINATION FIELD
|
||
1538 01300 0000 WNDPTR, 0 /DESTINATION
|
||
1539 01301 7770 -10 /(-) WORD COUNT
|
||
1540 01302 1342 TAD WNDCNT /CORRECT FOR WINDOWS THAT WEREN'T THERE
|
||
1541 01303 4327 JMS WND30 /MULTIPLY BY 7
|
||
1542 01304 1343 TAD WNSEGC /SEGMENT NUMBER OF FIRST IN WINDOW
|
||
1543 01305 6211 DATFLD
|
||
1544 01306 3737 DCA I WNFCBP /FILE CONTROL BLOCK POINTER
|
||
1545 01307 5710 JMP I .+1 /GO SET "JSIOTC" BEFORE EXITTING
|
||
1546 01310 2266 INF6
|
||
1547
|
||
1548 01311 6221 WND6, CFLD /CHANGE TO CURRENT FIELD
|
||
1549 01312 7300 CLA CLL
|
||
1550 01313 1343 TAD WNSEGC /SEGMENT TO GET INTO IN CORE WINDOW
|
||
1551 01314 4345 JMS WND20 /DIVIDE BY 7
|
||
1552 01315 7040 CMA
|
||
1553 01316 3342 DCA WNDCNT /WINDOW NUMBER TO GET INTO CORE
|
||
1554 01317 2340 ISZ WNENTP
|
||
1555 01320 1740 TAD I WNENTP /UFD ENTRY ADDRESS OF OPEN FILE
|
||
1556 01321 3324 DCA WND5
|
||
1557 01322 1341 TAD WNRETP /RETRIEVAL INFORMATION POINTER
|
||
1558 01323 4511 JMS I GE01 /GET ENTRY INTO CORE
|
||
1559 01324 0000 WND5, 0
|
||
1560 01325 1014 TAD P0007
|
||
1561 01326 5257 JMP WND10
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 38
|
||
|
||
|
||
1562 /ROUTINE TO MULTIPLY A NUMBER BY 7
|
||
1563
|
||
1564 01327 0000 WND30, 0
|
||
1565 01330 3137 DCA CFH
|
||
1566 01331 1137 TAD CFH
|
||
1567 01332 7104 CLL RAL
|
||
1568 01333 1137 TAD CFH
|
||
1569 01334 7104 CLL RAL
|
||
1570 01335 1137 TAD CFH
|
||
1571 01336 5727 JMP I WND30
|
||
1572
|
||
1573 01337 0000 WNFCBP, 0
|
||
1574 01340 0000 WNENTP, 0
|
||
1575 01341 0000 WNRETP, 0
|
||
1576 01342 0000 WNDCNT, 0
|
||
1577 01343 0000 WNSEGC, 0
|
||
1578 01344 0000 WNCURS, 0
|
||
1579
|
||
1580 /ROUTINE TO DIVIDE A NUMBER BY 7.
|
||
1581 /QUOTIENT IS RETURNED IN THE AC; REMAINDER
|
||
1582 /IS LEFT IN 'WNDREM' ON PAGE ZERO.
|
||
1583
|
||
1584 01345 0000 WND20, 0
|
||
1585 01346 3061 DCA WNDREM /SAVE THE NUMBER
|
||
1586 01347 3137 DCA CFH /CLEAR THE QUOTIENT
|
||
1587 01350 1061 TAD WNDREM
|
||
1588 01351 7120 CLL CML
|
||
1589 01352 1035 TAD C7771 /SUBTRACT 7
|
||
1590 01353 7430 SZL /DID WE GO TOO FAR?
|
||
1591 01354 5357 JMP .+3 /YES - ALL DONE
|
||
1592 01355 2137 ISZ CFH /NO - INCREMENT THE QUOTIENT
|
||
1593 01356 5351 JMP .-5 / & TRY ANOTHER SUBTRACTION
|
||
1594 01357 1014 TAD P0007
|
||
1595 01360 3061 DCA WNDREM /SAVE THE REMAINDER
|
||
1596 01361 1137 TAD CFH /THEN RETURN WITH THE QUOTIENT
|
||
1597 01362 5745 JMP I WND20
|
||
1598
|
||
1599 /ROUTINE TO CHECK THE SOURCE OF THE FIP CALL
|
||
1600 /AND SKIP IF WE WERE CALLED BY 'SI'.
|
||
1601 01363 0000 CHKSR0, 0
|
||
1602 01364 7200 CLA
|
||
1603 01365 6201 CDF
|
||
1604 01366 1442 TAD I FANFLD /GET THE 'CORTBL' ENTRY
|
||
1605 01367 6221 CFLD
|
||
1606 01370 0021 AND FIPFIP
|
||
1607 01371 7650 SNA CLA /'FIP' BIT SET?
|
||
1608 01372 2363 ISZ CHKSR0 /NO - MUST BE FROM 'SI'
|
||
1609 01373 5763 JMP I CHKSR0
|
||
1610
|
||
1611 /ROUTINE TO SET THE 'BUFFER CHANGED' SWITCH SO THAT THE
|
||
1612 /SEGMENT BUFFER WILL BE WRITTEN BACK OUT BEFORE THE NEXT
|
||
1613 /BLOCK IS READ OR WHEN FIP EXITS.
|
||
1614 01374 0000 SAVBF0, 0
|
||
1615 01375 7240 CLA CMA
|
||
1616 01376 3040 DCA BUFWRT /'BUFFER CHANGED' = -1
|
||
1617 01377 5774 JMP I SAVBF0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 39
|
||
|
||
|
||
1618 PAGE
|
||
1619 /ROUTINE TO CREATE A NEW FILE
|
||
1620
|
||
1621 01400 1142 CRF0, TAD FIOSTK+1
|
||
1622 01401 7650 SNA CLA /IS THE NAME REASONABLE?
|
||
1623 01402 5340 JMP CRFER2 /NO - NO POINT CONTINUING
|
||
1624 01403 1050 TAD FIACCT /GET USER'S ACCT #
|
||
1625 01404 4531 JMS I UTS01 /SEARCH THE UFD TABLE
|
||
1626 01405 7402 HLT /MUST BE AN ENTRY IF WE'RE LOGGED-IN *****
|
||
1627 01406 4472 JMS I BLDP1 /BUILD A POINTER INTO RETTBL
|
||
1628 01407 3141 DCA FIOSTK / FOR THE DIRECTORY-SEARCH
|
||
1629 01410 7240 CRF1, CLA CMA
|
||
1630 01411 1050 TAD FIACCT
|
||
1631 01412 7650 SNA CLA /WILL THIS FILE BE A DIRECTORY?
|
||
1632 01413 7240 CLA CMA /YES - THEN NEW ACCOUNT NUMBER MUST BE UNIQUE
|
||
1633 01414 4502 JMS I DS01 /SEARCH THE DIRECTORY FOR THIS NAME
|
||
1634 01415 0141 FIOSTK
|
||
1635 01416 5251 JMP CRF2 /COULD NOT FIND THIS NAME, CONTINUE
|
||
1636 01417 3362 DCA CRBUFP /FILE ALREADY EXISTS - SAVE POINTER
|
||
1637 01420 7240 CLA CMA
|
||
1638 01421 1050 TAD FIACCT
|
||
1639 01422 7650 SNA CLA /ARE WE THE MANAGER (I.E. IS THIS A DIRECTORY)?
|
||
1640 01423 5341 JMP CRFER3 /YES - WE WON'T AUTOMATICALLY DELETE
|
||
1641 01424 1404 TAD I ZDS1 /GET ITS RELATIVE UFD-ENTRY LOCATION
|
||
1642 01425 3230 DCA CRFSEG /UFD ADDRESS OF DIRECTORY ENTRY
|
||
1643 01426 1141 TAD FIOSTK
|
||
1644 01427 4505 JMS I ENS01 /SEARCH ENT TABLE FOR ACCESSES TO THIS FILE
|
||
1645 01430 0000 CRFSEG, 0 /UFD ADDR. OF DIRECTORY ENTRY
|
||
1646 01431 7640 SZA CLA /RETURNS WITH # OF ACCESSES TO THIS FILE
|
||
1647 01432 5345 JMP CRFER5 /ERROR - FILE IS IN USE
|
||
1648
|
||
1649 /COMES HERE IF A FILE BY THIS NAME ALREADY EXISTS, BUT NOONE
|
||
1650 /HAS OPENED IT
|
||
1651 01433 1230 TAD CRFSEG
|
||
1652 01434 3771 DCA I CRGD11 /SET DIRECTORY-ENTRY LOCATION FOR 'RED1'
|
||
1653 01435 1141 TAD FIOSTK
|
||
1654 01436 3053 DCA GDRETP / ALONG WITH THE 'RETTBL' ENTRY ADDRESS
|
||
1655 01437 1362 TAD CRBUFP
|
||
1656 01440 1005 TAD P0004 /GET THE PROTECTION-WORD LOCATION
|
||
1657 01441 3366 DCA CRFENT
|
||
1658 01442 1766 TAD I CRFENT
|
||
1659 01443 0007 AND C0020
|
||
1660 01444 7640 SZA CLA /IS THE FILE WRITE-PROTECTED AGAINST OWNER?
|
||
1661 01445 5341 JMP CRFER3 /YES - SAY "PROTECTION VIOLATION"
|
||
1662 01446 1362 TAD CRBUFP
|
||
1663 01447 4774 JMS I RED11 /NO - DELETE THE FILE
|
||
1664 01450 5210 JMP CRF1 / AND LOOK AGAIN FOR THE CHAIN END
|
||
1665
|
||
1666 /NOW ALL SET TO CREATE THE FILE. TO DO THIS, WE NEED TWO BLOCKS OF
|
||
1667 /THE UFD--ONE FOR A NAME BLOCK AND THE SECOND FOR A FILE RETRIEVAL INFORMATION
|
||
1668 /BLOCK. THESE BLOCKS ARE OBTAINED BY TWO CALLLS TO DE0. AFTER THE FIRST,
|
||
1669 /A DUMMY 7777 IS PUT IN THE FOUND BLOCK TO PREVENT THE SECOND CALL
|
||
1670 /TO DE0 FROM FINDING THE SAME BLOCK. IF BOTH BLOCKS CANNOT BE OBTAINED,
|
||
1671 /THE CREATE CANNOT BE EXECUTED.
|
||
1672 01451 7450 CRF2, SNA /WERE WE PASSED THE LAST LINK-ADDRESS?
|
||
1673 01452 1011 TAD P0003 /NO - MUST BE EMPTY DIRECTORY
|
||
1674 01453 3367 DCA CRFLNK /ADDR. OF LINK WORD OF LAST ENTRY IN UFD CHAIN
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 40
|
||
|
||
|
||
1675 01454 1141 TAD FIOSTK /POINTER TO RETRIEVAL INFORMATION
|
||
1676 01455 4501 JMS I DE01 /FIND AN EMPTY DIRECTORY ENTRY
|
||
1677 01456 5344 JMP CRFER4+1 /ERROR - "USER DIRECTORY FULL"
|
||
1678 01457 3366 DCA CRFENT
|
||
1679 01460 1366 TAD CRFENT
|
||
1680 01461 4356 JMS CRFGET /GET THE WORD INTO CORE
|
||
1681 01462 7240 CLA CMA
|
||
1682 01463 3762 DCA I CRBUFP /SIMULATE A USED ENTRY
|
||
1683 01464 1141 TAD FIOSTK
|
||
1684 01465 4501 JMS I DE01 /NOW FIND AN ENTRY FOR THE RETRIEVAL-BLOCK
|
||
1685 01466 5343 JMP CRFER4 /NONE AVAILABLE - "DIRECTORY FULL"
|
||
1686 01467 3370 DCA CRFRET
|
||
1687 01470 1370 TAD CRFRET
|
||
1688 01471 4356 JMS CRFGET /MAKE SURE THE ENTRY IS IN CORE
|
||
1689 01472 4522 JMS I SATL1 /FIND A FREE SEGMENT IN THE SAT
|
||
1690 01473 7450 SNA
|
||
1691 01474 5336 JMP CRFER1 /NONE AVAILABLE - "DISC FULL"
|
||
1692
|
||
1693 /AT THIS POINT, WE HAVE A DISC SEGMENT AND TWO BLOCKS FROM THE
|
||
1694 /UFD. THIS IS ALL THAT IS NEEDED, SO GO AHEAD AND EXECUTE THE CREATE
|
||
1695 01475 2362 ISZ CRBUFP
|
||
1696 01476 3762 DCA I CRBUFP /SAVE THE SEGMENT NUMBER IN THE RETRIEVAL BLOCK
|
||
1697 01477 1762 TAD I CRBUFP
|
||
1698 01500 3230 DCA CRFSEG /SAVE THE INDEX FOR CLEARING LATER
|
||
1699 01501 1366 TAD CRFENT
|
||
1700 01502 4356 JMS CRFGET /GET BACK THE DIRECTORY NAME-ENTRY
|
||
1701 01503 7240 CLA CMA
|
||
1702 01504 1362 TAD CRBUFP
|
||
1703 01505 3010 DCA INDEX
|
||
1704 01506 1142 TAD FIOSTK+1 /TRANSFER FILE NAME INTO DIRECTORY ENTRY
|
||
1705 01507 3410 DCA I INDEX
|
||
1706 01510 1143 TAD FIOSTK+2
|
||
1707 01511 3410 DCA I INDEX
|
||
1708 01512 1144 TAD FIOSTK+3
|
||
1709 01513 3410 DCA I INDEX
|
||
1710 01514 3410 DCA I INDEX /LEAVE A WORD FOR THE NEXT FORWARD LINK
|
||
1711 01515 1372 TAD CRPROT
|
||
1712 01516 3410 DCA I INDEX /SET THE INITIAL PROTECTION
|
||
1713 01517 7301 CLA CLL IAC
|
||
1714 01520 3410 DCA I INDEX /INITIAL FILE-SIZE IS 1 SEGMENT
|
||
1715 01521 6201 CDF
|
||
1716 01522 1773 TAD I DATEA /PICK UP TODAY'S DATE
|
||
1717 01523 6221 CFLD
|
||
1718 01524 3410 DCA I INDEX / & SAVE AS DATE OF CREATION
|
||
1719 01525 1370 TAD CRFRET
|
||
1720 01526 3410 DCA I INDEX /SET THE RETRIEVAL-BLOCK LOCATION
|
||
1721 01527 1367 TAD CRFLNK
|
||
1722 01530 4356 JMS CRFGET /GET THE DIRECTORY FORWARD-LINK INTO CORE
|
||
1723 01531 1366 TAD CRFENT
|
||
1724 01532 3762 DCA I CRBUFP / & SET THIS ENTRY'S ADDRESS
|
||
1725 01533 1230 TAD CRFSEG
|
||
1726 01534 4525 JMS I SCL01 /NOW ZERO THE INITIAL SEGMENT
|
||
1727 01535 5534 JMP I FIEXIT / & EXIT
|
||
1728
|
||
1729 /CODE TO RETURN THE VARIOUS 'CREATE' ERROR STATUSES.
|
||
1730 01536 4351 CRFER1, JMS CRFCLR /CLEAR THE 'DUMMY ENTRY' WORD
|
||
1731 01537 7301 CLA CLL IAC /7400 - "DISC IS FULL"
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 41
|
||
|
||
|
||
1732 01540 7132 CRFER2, CLL CML RTR /6400 - "INVALID FILE NAME"
|
||
1733 01541 7130 CRFER3, CLL CML RAR /6000 - "PROTECTION VIOLATION"
|
||
1734 01542 5346 JMP .+4
|
||
1735 01543 4351 CRFER4, JMS CRFCLR /5000 - "USER DIRECTORY FULL"
|
||
1736 01544 1023 TAD P1000
|
||
1737 01545 1023 CRFER5, TAD P1000 /4400 - "ANOTHER USER HAS FILE OPEN"
|
||
1738 01546 7130 CLL CML RAR
|
||
1739 01547 3046 DCA FIUSAC /RETURN THE CODE IN HIS AC
|
||
1740 01550 5534 JMP I FIEXIT
|
||
1741
|
||
1742 /ROUTINE TO CLEAR THE 'DUMMY ENTRY' WORD WE PLACE IN THE
|
||
1743 /DIRECTORY ENTRY. WE HAVE TO DO THIS WHEN AN ERROR OCCURS.
|
||
1744 01551 0000 CRFCLR, 0
|
||
1745 01552 1366 TAD CRFENT
|
||
1746 01553 4356 JMS CRFGET /GET THE ENTRY INTO CORE
|
||
1747 01554 3762 DCA I CRBUFP / & CLEAR THE FIRST WORD
|
||
1748 01555 5751 JMP I CRFCLR /THEN JUST RETURN
|
||
1749
|
||
1750 /ROUTINE TO READ IN A SEGMENT AND SET 'CRBUFP'. IT ALSO
|
||
1751 /SETS THE 'BUFFER CHANGED' SWITCH.
|
||
1752 01556 0000 CRFGET, 0
|
||
1753 01557 3362 DCA .+3 /SET THE ENTRY-ADDRESS
|
||
1754 01560 1141 TAD FIOSTK
|
||
1755 01561 4511 JMS I GE01 /GET THE DIRECTORY WORD
|
||
1756 01562 0000 CRBUFP, 0
|
||
1757 01563 3362 DCA CRBUFP /SAVE THE BUFFER-ADDRESS
|
||
1758 01564 4524 SAVBUF / AND SET THE 'SAVE BUFFER' SWITCH
|
||
1759 01565 5756 JMP I CRFGET /THEN RETURN
|
||
1760
|
||
1761 01566 0000 CRFENT, 0
|
||
1762 01567 0000 CRFLNK, 0
|
||
1763 01570 0000 CRFRET, 0
|
||
1764 01571 0363 CRGD11, GD1
|
||
1765 01572 0012 CRPROT, 12 /INITIAL FILE PROTECTION-WORD
|
||
1766 01573 0035 DATEA, DATE
|
||
1767 01574 2040 RED11, RED1
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 42
|
||
|
||
|
||
1768 PAGE
|
||
1769 /ROUTINE TO EXTEND A FILE
|
||
1770 01600 4337 EXT0, JMS EXT1 /MAKE SURE IT'S OKAY TO EXTEND THIS FILE
|
||
1771 01601 1014 TAD P0007 /...EXT1 RETURNS WITH PTR. TO NAME BLOCK FOR THIS FILE
|
||
1772 01602 3320 DCA EXBUFP /SET THE RETRIEVAL-CHAIN POINTER
|
||
1773
|
||
1774 /NOW TRACE THRU TO LAST RETRIEVAL INFORMATION BLOCK FOR THIS FILE
|
||
1775 01603 1720 EXT4, TAD I EXBUFP
|
||
1776 01604 7450 SNA /END OF CHAIN?
|
||
1777 01605 5212 JMP EXT3 /YES
|
||
1778 01606 3336 DCA EXWNDP /WINDOW POINTER
|
||
1779 01607 1336 TAD EXWNDP
|
||
1780 01610 4314 JMS EXGE0 /GET WINDOW INTO CORE
|
||
1781 01611 5203 JMP EXT4 /KEEP LOOKING FOR END
|
||
1782
|
||
1783 01612 1143 EXT3, TAD FIOSTK+2 /NUMBER OF SEGMENTS TO ADD
|
||
1784 01613 7040 CMA
|
||
1785 01614 3335 DCA EXSEGC
|
||
1786 01615 3332 DCA EXLAST /CLEAR THE 'NEW LINK' SWITCH
|
||
1787 01616 2320 EXT5, ISZ EXBUFP
|
||
1788 01617 1720 TAD I EXBUFP /PICK UP ENTRY IN WINDOW
|
||
1789 01620 7650 SNA CLA /IS IT THE FIRST FREE ENTRY?
|
||
1790 01621 5226 JMP EXT6 /YES - START EXTENDING
|
||
1791 01622 1320 TAD EXBUFP
|
||
1792 01623 0014 AND P0007
|
||
1793 01624 7640 SZA CLA /NO - AT END OF BLOCK?
|
||
1794 01625 5216 JMP EXT5 /NO - KEEP LOOKING
|
||
1795 /
|
||
1796 /NOW AT END OF LIST OF SEGMENTS MAKING UP THIS FILE
|
||
1797 01626 2335 EXT6, ISZ EXSEGC /START EXTENDING
|
||
1798 01627 5260 JMP EXT7 /GET ANOTHER SEGMENT
|
||
1799 01630 1335 EXT20, TAD EXSEGC
|
||
1800 01631 7041 CIA
|
||
1801 01632 3046 DCA FIUSAC /NUMBER OF SEGMENTS WE FAILED TO FIND
|
||
1802 01633 1332 TAD EXLAST /GET THE LAST WINDOW ADDRESS
|
||
1803 01634 7450 SNA /IS IT LINKED TO NOTHINGNESS?
|
||
1804 01635 5241 JMP EXT21 /NO - NO PROBLEM
|
||
1805 01636 4314 JMS EXGE0 /YES - GET THE PREVIOUS BLOCK
|
||
1806 01637 3720 DCA I EXBUFP / AND CLEAR ITS FORWARD LINK
|
||
1807 01640 4524 SAVBUF /REMEMBER TO REWRITE THE BUFFER
|
||
1808 01641 1142 EXT21, TAD FIOSTK+1 /NOW UPDATE THE DIRECTORY ENTRY
|
||
1809 01642 4510 JMS I GD01 /GET DIRECTORY ENTRY INTO CORE
|
||
1810 01643 1012 TAD C0005
|
||
1811
|
||
1812 /HAVE A NEW BLOCK FOR RETRIEVAL
|
||
1813 01644 3320 DCA EXBUFP /POINTER TO SEGMENT COUNT
|
||
1814 01645 1143 TAD FIOSTK+2 /NUMBER OF WORDS TO BE ADDED
|
||
1815 01646 1720 TAD I EXBUFP /NUMBER ALREADY IN FILE
|
||
1816 01647 1335 TAD EXSEGC /MINUS NUMBER WE FAILED TO GET
|
||
1817 01650 3720 DCA I EXBUFP /UPDATE ENTRY
|
||
1818 01651 4524 SAVBUF / AND SET 'BUFFER CHANGED' SWITCH
|
||
1819 01652 6211 EXT8, DATFLD /SET DATA FIELD TO FIELD 1
|
||
1820 01653 1731 TAD I EXFCBP
|
||
1821 01654 3334 DCA EXPROP /POINTER TO RETRIEVAL WINDOW
|
||
1822 01655 7001 IAC
|
||
1823 01656 3734 DCA I EXPROP /INVALIDATE THE WINDOW
|
||
1824 01657 5534 JMP I FIEXIT
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 43
|
||
|
||
|
||
1825
|
||
1826 01660 1320 EXT7, TAD EXBUFP
|
||
1827 01661 0014 AND P0007
|
||
1828 01662 7640 SZA CLA /DO WE NEED A NEW BLOCK?
|
||
1829 01663 5304 JMP EXT12 /NO
|
||
1830 01664 1053 TAD GDRETP /RETRIEVAL POINTER
|
||
1831 01665 4501 JMS I DE01 /FIND AN EMPTY ENTRY
|
||
1832 01666 5230 JMP EXT20 /PARTIALLY SATISFIED
|
||
1833 01667 3333 DCA EXNFRE /FREE SEGMENT ADDRESS
|
||
1834 01670 1336 TAD EXWNDP /CURRENT WINDOW POINTER
|
||
1835 01671 4314 JMS EXGE0 /GET IT INTO CORE
|
||
1836 01672 1333 TAD EXNFRE /NEXT FREE WINDOW
|
||
1837 01673 3720 DCA I EXBUFP /LINK IT ONTO CHAIN
|
||
1838 01674 4524 SAVBUF / AND SET 'CHANGED' SWITCH
|
||
1839 01675 1336 TAD EXWNDP /SAVE PREVIOUS BLOCK LOCATION
|
||
1840 01676 3332 DCA EXLAST / IN CASE WE RUN OUT OF DISC NOW
|
||
1841 01677 1333 TAD EXNFRE
|
||
1842 01700 3336 DCA EXWNDP /UPDATE CURRENT WINDOW POINTER
|
||
1843 01701 1336 TAD EXWNDP
|
||
1844 01702 4314 JMS EXGE0 /GET NEW WINDOW INTO CORE
|
||
1845 01703 2320 ISZ EXBUFP /POINTER TO FIRST ENTRY OF WINDOW
|
||
1846 01704 4522 EXT12, JMS I SATL1 /GET A FREE SEGMENT FROM SAT
|
||
1847 01705 7450 SNA
|
||
1848 01706 5230 JMP EXT20 /PARTIALLY SATISFIED
|
||
1849 01707 3720 DCA I EXBUFP /SET THE SEGMENT # IN THE WINDOW
|
||
1850 01710 2320 ISZ EXBUFP
|
||
1851 01711 4524 SAVBUF /SET 'BUFFER CHANGED' SWITCH
|
||
1852 01712 3332 DCA EXLAST / AND CLEAR 'NEW LINK' SWITCH
|
||
1853 01713 5226 JMP EXT6 /FILL NEXT WORD
|
||
1854
|
||
1855
|
||
1856 01714 0000 EXGE0, 0 /GET WORD OF THIS UFD INTO CORE
|
||
1857 01715 3320 DCA .+3 /STORE THE WORD NUMBER
|
||
1858 01716 1053 TAD GDRETP
|
||
1859 01717 4511 JMS I GE01 /FETCH THE WORD
|
||
1860 01720 0000 EXBUFP, 0
|
||
1861 01721 3320 DCA EXBUFP /SET THE BUFFER POINTER
|
||
1862 01722 5714 JMP I EXGE0
|
||
1863
|
||
1864 01723 1023 EXT30, TAD P1000 /4400 - "ANOTHER USER HAS FILE OPEN"
|
||
1865 01724 7410 SKP
|
||
1866 01725 7130 EXT10, CLL CML RAR /6000 - "PROTECTION VIOLATION"
|
||
1867 01726 7130 CLL CML RAR /4000 - "NO FILE OPEN"
|
||
1868 01727 3046 DCA FIUSAC
|
||
1869 01730 5534 JMP I FIEXIT
|
||
1870
|
||
1871 01731 0000 EXFCBP, 0
|
||
1872 01732 0000 EXLAST, 0
|
||
1873 01733 0000 EXNFRE, 0
|
||
1874 01734 0000 EXPROP, 0
|
||
1875 01735 0000 EXSEGC, 0
|
||
1876 01736 0000 EXWNDP, 0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 44
|
||
|
||
|
||
1877 /ROUTINE TO SET UP TO ALTER A FILE (BY EITHER EXTENDING IT OR
|
||
1878 /REDUCING IT.) CHECK PROTECTION CODE TO SEE IF THIS IS ALLOWED. MAKE SURE
|
||
1879 /NOONE ELSE HAS THIS FILE OPEN. JMP TO ERROR EXIT ON EITHER OF THESE CON-
|
||
1880 /DITIONS. IF ALL IS OKAY, RETURN WITH PTR. TO UFD NAME BLOCK ENTRY
|
||
1881 01737 0000 EXT1, 0
|
||
1882 01740 4516 JMS I IFN01
|
||
1883 01741 4403 JMS I LNK01 /GET PTR. TO APPROPRIATE FILE CONTROL BLOCK
|
||
1884 01742 7450 SNA
|
||
1885 01743 5326 JMP EXT10+1 /ERROR, FILE NOT OPEN
|
||
1886 01744 3331 DCA EXFCBP /FILE CONTROL BLOCK POINTER
|
||
1887 01745 1006 TAD FILPRP /GLOBAL TO "FILPRO"
|
||
1888 01746 1331 TAD EXFCBP
|
||
1889 01747 3334 DCA EXPROP /POINTER TO PROTECTION BIT IN FIELD 0
|
||
1890 01750 6211 DATFLD /CDF FIELD 0
|
||
1891 01751 1734 TAD I EXPROP /PICK UP PROTECTION BIT
|
||
1892 01752 6221 CFLD /CHANGE TO CURRENT FIELD
|
||
1893 01753 0005 AND P0004 /STRAIN OFF ANY EXTRANEOUS BITS
|
||
1894 01754 7640 SZA CLA
|
||
1895 01755 5325 JMP EXT10 /WRITE PROTECTED
|
||
1896 01756 1142 TAD FIOSTK+1 /INTERNAL FILE NUMBER
|
||
1897 01757 4510 JMS I GD01 /GET DIRECTORY ENTRY INTO CORE
|
||
1898 01760 3320 DCA EXBUFP /POINTS TO WHERE UFD NAME BLOCK IS IN CORE
|
||
1899 01761 4765 JMS I ENR01 /IS THIS THE ONLY USER WHO HAS THIS FILE OPEN?
|
||
1900 01762 5323 JMP EXT30 /NO, SO ABORT AND RETURN ERROR CODE
|
||
1901 01763 1320 TAD EXBUFP
|
||
1902 01764 5737 JMP I EXT1
|
||
1903
|
||
1904 01765 1066 ENR01, ENR0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 45
|
||
|
||
|
||
1905 PAGE
|
||
1906 /ROUTINE TO REDUCE A FILE
|
||
1907
|
||
1908 02000 4723 RED0, JMS I EXT11 /MAKE SURE IT'S OKAY TO REDUCE THIS FILE
|
||
1909 02001 3325 DCA REBUFP /...IF OKAY, RETURNS WITH PTR. TO FILE NAME BLOCK
|
||
1910 02002 1325 TAD REBUFP
|
||
1911 02003 1012 TAD C0005
|
||
1912 02004 3320 DCA RELINK /NOW POINTS TO NUMBER OF SEGMENTS PRESENTLY IN FILE
|
||
1913 02005 1143 TAD FIOSTK+2 /SEGMENTS TO BE REMOVED
|
||
1914 02006 7450 SNA /IS HE REDUCING IT AT ALL?
|
||
1915 02007 5534 JMP I FIEXIT /NO - SAVE OURSELVES WORK & AVOID A BUG
|
||
1916 02010 7510 SPA /IS IT NEGATIVE?
|
||
1917 02011 7350 CLA CLL CMA RAR /REPLACE THE NEGATIVE # BY 3777.
|
||
1918 02012 7041 CIA
|
||
1919 02013 1720 TAD I RELINK
|
||
1920 02014 7540 SMA SZA /DELETE THE FILE?
|
||
1921 02015 5224 JMP RED6 /NO, REDUCE IT
|
||
1922 02016 7300 CLA CLL /YES, WIPE IT OUT AND CLOSE
|
||
1923 02017 1325 TAD REBUFP
|
||
1924 02020 4240 JMS RED1 /WIPE OUT THE FILE NAME BLOCK FROM THE UFD
|
||
1925 02021 1142 TAD FIOSTK+1 /INTERNAL FILE NUMBER
|
||
1926 02022 4477 JMS I CL01 /CLOSE THIS FILE SINCE IT NO LONGER EXISTS
|
||
1927 02023 5534 JMP I FIEXIT
|
||
1928 02024 3720 RED6, DCA I RELINK /UPDATE SEGMENT COUNT
|
||
1929 02025 4524 SAVBUF / & INDICATE BUFFER CHANGED
|
||
1930 02026 1720 TAD I RELINK
|
||
1931 02027 3137 DCA CFH
|
||
1932 02030 2320 ISZ RELINK
|
||
1933 02031 2320 ISZ RELINK
|
||
1934 02032 1720 TAD I RELINK
|
||
1935 02033 3320 DCA RELINK /POINTER TO FIRST WINDOW ON CHAIN
|
||
1936 02034 1137 TAD CFH
|
||
1937 02035 4312 JMS RED40 /WIPE OUT REST OF FILE
|
||
1938 02036 5637 JMP I .+1 /THEN GO INVALIDATE THE RETRIEVAL WINDOW
|
||
1939 02037 1652 EXT8
|
||
1940
|
||
1941 /ROUTINE TO DELETE A FILE
|
||
1942 02040 0000 RED1, 0
|
||
1943 02041 3325 DCA REBUFP /PTR. TO THE UFD ENTRY FOR THE FILE
|
||
1944 02042 1325 TAD REBUFP
|
||
1945 02043 1011 TAD P0003
|
||
1946 02044 3320 DCA RELINK /LINK TO NEXT FILE NAME IN THIS UFD
|
||
1947 02045 1720 TAD I RELINK
|
||
1948 02046 3307 DCA RED3
|
||
1949 02047 1711 TAD I REDGD1 /UFD ADDR. OF THIS DIRECTORY ENTRY
|
||
1950 02050 3310 DCA RED4
|
||
1951 02051 1325 TAD REBUFP
|
||
1952 02052 1014 TAD P0007
|
||
1953 02053 3320 DCA RELINK /NOW POINTS TO A RETRIEVAL BLOCK FOR THIS FILE
|
||
1954 02054 1720 TAD I RELINK
|
||
1955 02055 3320 DCA RELINK
|
||
1956 02056 3725 RED2, DCA I REBUFP /CLEAR OUT FIRST WORD OF ENTRY
|
||
1957 02057 2325 ISZ REBUFP
|
||
1958 02060 1325 TAD REBUFP
|
||
1959 02061 0014 AND P0007
|
||
1960 02062 7640 SZA CLA /END OF CURRENT WINDOW?
|
||
1961 02063 5256 JMP RED2 /NO, KEEP CLEARING
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 46
|
||
|
||
|
||
1962 02064 4524 SAVBUF /YES - SET 'BUFFER CHANGED'
|
||
1963 02065 3270 RED5, DCA .+3 /NOW SET THE ENTRY ADDRESS
|
||
1964 02066 1053 TAD GDRETP
|
||
1965 02067 4511 JMS I GE01 / AND GET A DIRECTORY ENTRY IN CORE
|
||
1966 02070 0000 REDPTR, 0
|
||
1967 02071 1011 TAD P0003 /GET TO THE LINK POINTER
|
||
1968 02072 3270 DCA REDPTR
|
||
1969 02073 1670 TAD I REDPTR /GET THE LINK TO THE NEXT ENTRY
|
||
1970 02074 7041 CIA
|
||
1971 02075 1310 TAD RED4
|
||
1972 02076 7650 SNA CLA /IS IT THE ENTRY WE'RE DELETING?
|
||
1973 02077 5302 JMP .+3 /YES
|
||
1974 02100 1670 TAD I REDPTR /NO - GET ITS ADDRESS
|
||
1975 02101 5265 JMP RED5 / AND KEEP SEARCHING
|
||
1976 02102 1307 TAD RED3 /SET THE NEW LINK TO NEXT ENTRY
|
||
1977 02103 3670 DCA I REDPTR / SO IT LINKS AROUND THE DELETED FILE
|
||
1978 02104 4524 SAVBUF /SET 'BUFFER CHANGED'
|
||
1979 02105 4312 JMS RED40 / AND GO DELETE THE FILE ITSELF
|
||
1980 02106 5640 JMP I RED1
|
||
1981
|
||
1982 02107 0000 RED3, 0 /UFD ADDRESS OF NEXT ENTRY IN DIRECTORY CHAIN
|
||
1983 02110 0000 RED4, 0 /UFD ADDRESS OF THIS DIRECTORY ENTRY
|
||
1984 02111 0363 REDGD1, GD1
|
||
1985
|
||
1986 /ROUTINE TO REDUCE A FILE - ENTER WITH THE NUMBER OF
|
||
1987 /SEGMENTS WHICH ARE TO REMAIN.
|
||
1988 02112 0000 RED40, 0
|
||
1989 02113 3137 DCA CFH
|
||
1990 02114 1053 TAD GDRETP /RTABLE
|
||
1991 02115 3321 DCA RERETP
|
||
1992 02116 1137 TAD CFH /# OF SEGMENTS TO REMAIN
|
||
1993 02117 4724 JMS I RED302 /ROUTINE TO DO ACTUAL REDUCTION
|
||
1994 02120 0000 RELINK, 0 /RETRIEVAL CHAIN PTR
|
||
1995 02121 0000 RERETP, 0 /UFD RETRIEVAL PTR.
|
||
1996 02122 5712 JMP I RED40
|
||
1997
|
||
1998 02123 1737 EXT11, EXT1
|
||
1999 02124 2400 RED302, RED30
|
||
2000 02125 0000 REBUFP, 0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 47
|
||
|
||
|
||
2001 /SEARCH ENTTBL FOR OPENINGS TO FILE
|
||
2002 /CALLING SEQUENCE:
|
||
2003 / TAD (RETRIEVAL POINTER)
|
||
2004 / JMS I ENS01
|
||
2005 / UFD ADDRESS OF DIRECTORY ENTRY
|
||
2006 / RETURN (COUNT OF ACCESSES IN AC)
|
||
2007
|
||
2008 02126 0000 ENS0, 0
|
||
2009 02127 4367 JMS ENS3
|
||
2010 02130 7040 CMA
|
||
2011 02131 3365 DCA ENRETP / (-) RELATIVE POINTER
|
||
2012 02132 3366 DCA ENACNT /CLEAR ACCESS COUNTER
|
||
2013 02133 1066 TAD ENTTBL
|
||
2014 02134 3364 DCA ENTPTR
|
||
2015 02135 1764 ENS2, TAD I ENTPTR /GET THE UFD POINTER FOR THIS FILE
|
||
2016 02136 0025 AND C3777 / ZAP THE 'EXCLUSIVE USE' BIT
|
||
2017 02137 1365 TAD ENRETP / AND SUBTRACT THE ONE WE WANT
|
||
2018 02140 2364 ISZ ENTPTR
|
||
2019 02141 7640 SZA CLA /FILE IN SAME UFD?
|
||
2020 02142 5353 JMP ENS1 /NO - KEEP LOOKING
|
||
2021 02143 1764 TAD I ENTPTR
|
||
2022 02144 7041 CIA
|
||
2023 02145 1726 TAD I ENS0
|
||
2024 02146 7640 SZA CLA /YES - SAME FILE LOCATION?
|
||
2025 02147 5353 JMP ENS1 /NO
|
||
2026 02150 2366 ISZ ENACNT /YES - INCREMENT ACCESS COUNT
|
||
2027 02151 1364 TAD ENTPTR / AND SAVE 'FIND' LOCATION
|
||
2028 02152 3367 DCA ENSFND
|
||
2029 02153 2364 ENS1, ISZ ENTPTR
|
||
2030 02154 1364 TAD ENTPTR
|
||
2031 02155 7041 CIA
|
||
2032 02156 1064 TAD ENTEND /END OF ENT TABLE
|
||
2033 02157 7640 SZA CLA
|
||
2034 02160 5335 JMP ENS2 /KEEP LOOKING
|
||
2035 02161 1366 TAD ENACNT /PICK UP ACCUMULATED ACCESS COUNT
|
||
2036 02162 2326 ISZ ENS0
|
||
2037 02163 5726 JMP I ENS0
|
||
2038
|
||
2039 02164 0000 ENTPTR, 0
|
||
2040 02165 0000 ENRETP, 0
|
||
2041 02166 0000 ENACNT, 0
|
||
2042
|
||
2043 /CONVERT AN ABSOLUTE PTR INTO RETTBL TO A RELATIVE ENTRY NUMBER
|
||
2044 ENSFND, /LOCATION OF LAST 'FIND' IN ENTTBL
|
||
2045 02167 0000 ENS3, 0
|
||
2046 02170 7041 CIA
|
||
2047 02171 1065 TAD RETTBL /REL. PTR. TO ADDRESS WITHIN RETTBL
|
||
2048 02172 7041 CIA
|
||
2049 02173 0034 AND P7770
|
||
2050 02174 7112 CLL RTR; RAR / DIVIDED BY 8
|
||
02175 7010
|
||
2051 02176 5767 JMP I ENS3
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 48
|
||
|
||
|
||
2052 PAGE
|
||
2053 /ROUTINE TO PROVIDE FILE INFORMATION
|
||
2054
|
||
2055 02200 4516 INF0, JMS I IFN01 /GET INTERNAL FILE NUMBER IN FIOSTK+1
|
||
2056 02201 4504 JMS I EBLD0
|
||
2057 02202 3137 DCA CFH /RELATIVE POINTER TO UFD RETRIEVAL INFORMATION
|
||
2058 02203 3141 DCA FIOSTK
|
||
2059 02204 3143 DCA FIOSTK+2 /CLEAR OWNER JUST IN CASE
|
||
2060 02205 1537 TAD I CFH /GET PTR. TO RETTBL OUT OF ENTTBL
|
||
2061 02206 7450 SNA /DOES IT EXIST?
|
||
2062 02207 5252 JMP INF5 /NO, SO FILE IS NOT OPEN
|
||
2063 02210 7041 CIA
|
||
2064 02211 7144 CLL CMA RAL / * 2 (AND ZAP 'EXCLUSIVE USE' BIT)
|
||
2065 02212 1064 TAD UFDTBL
|
||
2066 02213 3314 DCA INUFDP /POINTER TO USER PROJ,PROG NUMBER
|
||
2067 02214 7010 RAR /GET BACK THE 'EXCLUSIVE USE' BIT
|
||
2068 02215 1142 TAD FIOSTK+1 / AND SAVE IT WITH THE FILE #
|
||
2069 02216 3263 DCA INF4
|
||
2070 02217 1714 TAD I INUFDP
|
||
2071 02220 3143 DCA FIOSTK+2 /SET THE OWNER'S ACCOUNT (ALSO FOR 'GD0')
|
||
2072 02221 1142 TAD FIOSTK+1 /NOW GET THE INTERNAL FILE #
|
||
2073 02222 4510 JMS I GD01 / AND GET THE FILE'S DIRECTORY ENTRY
|
||
2074 02223 7041 CIA
|
||
2075 02224 7040 CMA
|
||
2076 02225 3010 DCA INDEX
|
||
2077 02226 1263 TAD INF4 /SEND BACK THE 'EXCLUSIVE USE' BIT
|
||
2078 02227 3142 DCA FIOSTK+1 / WITH THE FILE #
|
||
2079 02230 1410 TAD I INDEX /NOW THE
|
||
2080 02231 3144 DCA FIOSTK+3
|
||
2081 02232 1410 TAD I INDEX / FILE
|
||
2082 02233 3145 DCA FIOSTK+4
|
||
2083 02234 1410 TAD I INDEX / NAME
|
||
2084 02235 3146 DCA FIOSTK+5
|
||
2085 02236 2010 ISZ INDEX
|
||
2086 02237 1410 TAD I INDEX
|
||
2087 02240 3147 DCA FIOSTK+6 /RETURN THE PROTECTION-WORD
|
||
2088 02241 1410 TAD I INDEX
|
||
2089 02242 3150 DCA FIOSTK+7 / AND THE SIZE
|
||
2090 02243 7240 CLA CMA
|
||
2091 02244 1143 TAD FIOSTK+2
|
||
2092 02245 7640 SZA CLA /IS THIS FILE A DIRECTORY?
|
||
2093 02246 5252 JMP INF5 /NO
|
||
2094 02247 3145 DCA FIOSTK+4 /YES - CLEAR THE PASSWORD
|
||
2095 02250 1410 TAD I INDEX / AND RETURN THE DATE-WORD (CPU TIME)
|
||
2096 02251 3146 DCA FIOSTK+5 / (THE SIZE-WORD IS THE DEVICE-TIME)
|
||
2097 02252 6211 INF5, DATFLD
|
||
2098 02253 1452 TAD I FIOPTR /PICK UP JOBLNK WORD FROM JOB STATUS BLOCK
|
||
2099 02254 3263 DCA INF4 /DESTINATION IN FIELD 0
|
||
2100 02255 6221 CFLD /CHANGE TO PRESENT FIELD
|
||
2101 02256 6202 CIF
|
||
2102 02257 4473 BLT /MOVE FIOSTK INFORMATION INTO IOT PARAMETER BLOCK
|
||
2103 02260 6221 CFLD /SOURCE FIELD
|
||
2104 02261 0141 FIOSTK /SOURCE
|
||
2105 02262 6211 DATFLD /DESTINATION FIELD 0
|
||
2106 02263 0000 INF4, 0 /DESTINATION
|
||
2107 02264 7770 -10 /WORD COUNT
|
||
2108 02265 1014 TAD P0007 /GET THE NUMBER OF PARMS TO RETURN
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 49
|
||
|
||
|
||
2109 02266 7106 INF6, CLL RTL; RTL; RAL
|
||
02267 7006
|
||
02270 7004
|
||
2110 02271 3315 DCA INSPTR
|
||
2111 02272 1045 TAD FILINK /GET THE LINK-SAVE WORD
|
||
2112 02273 0313 AND C7037 / ZAP THE OLD COPY-COUNT
|
||
2113 02274 1315 TAD INSPTR
|
||
2114 02275 3045 DCA FILINK / AND SET THE NEW COUNT
|
||
2115 02276 4476 CHKSRC /WERE WE CALLED FROM 'SI'?
|
||
2116 02277 7410 SKP
|
||
2117 02300 5534 JMP I FIEXIT /YES - CAN'T SET 'JSIOTC' OR SCHEDULER FOULS UP
|
||
2118 02301 6211 DATFLD
|
||
2119 02302 1455 TAD I JOBDAT /GLOBAL TO "JOBDAT"
|
||
2120 02303 7001 IAC
|
||
2121 02304 3315 DCA INSPTR /NOW POINTS TO STATUS WORD
|
||
2122 02305 1316 TAD INIOTC /JSIOTC
|
||
2123 02306 7040 CMA
|
||
2124 02307 0715 AND I INSPTR /SET JSIOTC TO INDICATE THAT FIP
|
||
2125 02310 1316 TAD INIOTC /...IS RETURNING INFORMATION IN THE IOT PAR. BLOCK
|
||
2126 02311 3715 DCA I INSPTR
|
||
2127 02312 5534 JMP I FIEXIT
|
||
2128
|
||
2129 02313 7037 C7037, 7037
|
||
2130 02314 0000 INUFDP, 0
|
||
2131 LGIDDB,
|
||
2132 02315 0000 INSPTR, 0
|
||
2133 02316 0040 INIOTC, JSIOTC
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 50
|
||
|
||
|
||
2134 /LOGIN ROUTINE
|
||
2135
|
||
2136 02317 1065 LGI0, TAD RETTBL /MFD RETRIEVAL IS IN ENTRY 0
|
||
2137 02320 3142 DCA FIOSTK+1
|
||
2138 02321 1143 TAD FIOSTK+2
|
||
2139 02322 7650 SNA CLA /IS THE ACCOUNT # AT ALL REASONABLE?
|
||
2140 02323 5372 JMP LGI20 /NO - CAN'T LOG IN
|
||
2141 02324 1144 TAD FIOSTK+3
|
||
2142 02325 7650 SNA CLA /IS THE FIRST WORD OF THE PASSWORD ZERO?
|
||
2143 02326 1145 TAD FIOSTK+4 /YES - THE 2ND WORD NON-ZERO FLAGS NO PASSWORD NEEDED
|
||
2144 02327 4502 JMS I DS01 /SEARCH THE MFD (AC=0 TO INDICATE 3-WORD SEARCH)
|
||
2145 02330 0142 FIOSTK+1
|
||
2146 02331 5372 JMP LGI20 /COULD NOT FIND ENTRY IN MFD
|
||
2147 02332 7300 CLA CLL / (ENTRY ADDRESS RETURNED IN AC)
|
||
2148 02333 1143 TAD FIOSTK+2 /GET THE ACCOUNT NUMBER
|
||
2149 02334 4530 JMS I UFO01 / AND OPEN THE UFD (I.E. FETCH RETRIEVAL INFO)
|
||
2150 02335 5372 JMP LGI20 /COULD NOT FIND ROOM ON TABLE
|
||
2151 02336 7240 CLA CMA
|
||
2152 02337 1536 TAD I UTPRNU
|
||
2153 02340 3536 DCA I UTPRNU /ACCOUNT FOR NEW ENTRY IN ACCESS COUNT
|
||
2154 02341 1051 TAD FIJOB /NOW GET THE KEYBOARD NUMBER
|
||
2155 02342 1377 TAD TTYTBA / FOR THIS JOB
|
||
2156 02343 3315 DCA LGIDDB
|
||
2157 02344 6211 DATFLD
|
||
2158 02345 1715 TAD I LGIDDB
|
||
2159 02346 7104 CLL RAL
|
||
2160 02347 1062 TAD DEVTBA /FIND ITS DDB ADDRESS
|
||
2161 02350 3315 DCA LGIDDB
|
||
2162 02351 1715 TAD I LGIDDB /GET THE LOCATION OF THE
|
||
2163 02352 1011 TAD P0003 / 'ASSIGNED TIME' WORD
|
||
2164 02353 3315 DCA LGIDDB
|
||
2165 02354 6201 CDF
|
||
2166 02355 1775 TAD I CLK1A /NOW CALCULATE THE VALUE FOR
|
||
2167 02356 0031 AND C7000
|
||
2168 02357 7104 CLL RAL
|
||
2169 02360 3137 DCA CFH
|
||
2170 02361 1776 TAD I CLK2A
|
||
2171 02362 0022 AND P0777
|
||
2172 02363 1137 TAD CFH
|
||
2173 02364 7006 RTL
|
||
2174 02365 7004 RAL
|
||
2175 02366 6211 DATFLD
|
||
2176 02367 3715 DCA I LGIDDB /THEN SET THE CURRENT TIME IN THE DDB
|
||
2177 02370 5771 JMP I .+1 /NOW WRITE OUT THE TABLES
|
||
2178 02371 3351 TABOUT
|
||
2179
|
||
2180 02372 7240 LGI20, CLA CMA /COULD NOT LOGIN - RETURN WITH 7777
|
||
2181 02373 3046 DCA FIUSAC /INDICATE INABILITY TO LOGIN
|
||
2182 02374 5534 JMP I FIEXIT
|
||
2183
|
||
2184 02375 0033 CLK1A, CLK1
|
||
2185 02376 0034 CLK2A, CLK2
|
||
2186 02377 2747 TTYTBA, TTYTBL
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 51
|
||
|
||
|
||
2187 PAGE
|
||
2188 /ROUTINE TO PERFORM ACTUAL FILE REDUCTION
|
||
2189
|
||
2190 /CALLING SEQUENCE:
|
||
2191 / TAD (NUMBER OF SEGMENTS TO REMAIN)
|
||
2192 / JMS RED30
|
||
2193 / RETRIEVAL CHAIN POINTER
|
||
2194 / UFD RETRIEVAL POINTER
|
||
2195 / RETURN
|
||
2196
|
||
2197 DSCNTR,
|
||
2198 02400 0000 RED30, 0
|
||
2199 02401 4674 JMS I WND201 /DIVIDE BY 7
|
||
2200 02402 7040 CMA
|
||
2201 02403 3273 DCA REWNDC /WINDOW COUNT-- NUMBER OF WHOLE WINDOWS WHICH ARE TO REMAIN
|
||
2202 02404 1600 TAD I RED30 /RETRIEVAL CHAIN POINTER
|
||
2203 02405 2200 ISZ RED30
|
||
2204
|
||
2205 /NOW TRACE THRU THE LINKED LIST OF FILE INFORMATION
|
||
2206 /RETRIEVAL BLOCKS UNTIL WE GET TO THE ONE IN WHICH THE
|
||
2207 /NEW LAST SEGMENT IS
|
||
2208 02406 3211 RED32, DCA RED31 /LINKAGE TO RETRIEVAL CHAIN
|
||
2209 02407 1600 TAD I RED30 /PICK UP RETRIEVAL POINTER
|
||
2210 02410 4511 JMS I GE01 /GET THIS WORD INTO CORE
|
||
2211 DSENTP,
|
||
2212 02411 0000 RED31, 0
|
||
2213 02412 3271 DCA REBUFF
|
||
2214 02413 1671 TAD I REBUFF /PICK UP LINK TO NEXT
|
||
2215 02414 3272 DCA RELINC /SAVE LINK
|
||
2216 02415 1061 TAD WNDREM
|
||
2217 02416 7640 SZA CLA /DELETING ENTIRE WINDOW?
|
||
2218 02417 5226 JMP RED37 /NO
|
||
2219 02420 7326 CLA CLL CML RTL
|
||
2220 02421 1273 TAD REWNDC
|
||
2221 02422 7640 SZA CLA /YES - ARE WE ONE WINDOW FROM THE END YET?
|
||
2222 02423 5226 JMP RED37 /NO
|
||
2223 02424 3671 DCA I REBUFF /YES - CLEAR THE LINK TO IT
|
||
2224 02425 4524 SAVBUF / AND SET 'BUFFER CHANGED'
|
||
2225 02426 1272 RED37, TAD RELINC
|
||
2226 02427 2273 ISZ REWNDC /AT END OF CHAIN?
|
||
2227 02430 5206 JMP RED32 /NO, KEEP SAVING
|
||
2228 02431 3272 DCA RELINC /SAVE LINC
|
||
2229 02432 3671 DCA I REBUFF /YES, TERMINATE IT
|
||
2230 02433 4524 SAVBUF / AND SET 'BUFFER CHANGED' SWITCH
|
||
2231
|
||
2232 /FOUND RETRIEVAL BLOCK IN WHICH TO CHOP OFF
|
||
2233 /THE LIST OF SEGMENTS.
|
||
2234 /START DELETING THE SEGMENT NUMBERS AND RETURNING
|
||
2235 /THE ACTUAL DISC SEGMENTS TO THE POOL
|
||
2236 02434 1061 TAD WNDREM
|
||
2237 02435 7001 IAC /YES; GET POINTER TO FIRST SEGMENT TO BE DELETED
|
||
2238 02436 1271 TAD REBUFF
|
||
2239 02437 3271 DCA REBUFF /POINTER TO FIRST SEGMENT TO REMOVE
|
||
2240 02440 1671 RED33, TAD I REBUFF /PICK UP THE SEGMENT NUMBER
|
||
2241 02441 7440 SZA
|
||
2242 02442 4523 JMS I SATR1 /RELEASE IT ON SAT
|
||
2243 02443 3671 DCA I REBUFF /CLEAR THE CELL
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 52
|
||
|
||
|
||
2244 02444 2271 ISZ REBUFF
|
||
2245 02445 1271 TAD REBUFF
|
||
2246 02446 0014 AND P0007
|
||
2247 02447 7640 SZA CLA /END OF WINDOW?
|
||
2248 02450 5240 JMP RED33 /NO, CONTINUE
|
||
2249 02451 1272 TAD RELINC /YES, MOVE TO NEXT
|
||
2250 02452 7440 SZA /END OF CHAIN?
|
||
2251 02453 5256 JMP RED34 /NO, GET NEXT WINDOW
|
||
2252 02454 2200 ISZ RED30 /YES, EXIT
|
||
2253 02455 5600 JMP I RED30
|
||
2254 02456 3261 RED34, DCA RED35
|
||
2255 02457 1600 TAD I RED30
|
||
2256 02460 4511 JMS I GE01 /GET NEXT WINDOW
|
||
2257 DSKCNT,
|
||
2258 02461 0000 RED35, 0
|
||
2259 02462 3271 DCA REBUFF
|
||
2260 02463 1671 TAD I REBUFF
|
||
2261 02464 3272 DCA RELINC /SET UP LINK TO NEXT
|
||
2262 02465 3671 DCA I REBUFF /WIPE OUT THIS LINK
|
||
2263 02466 4524 SAVBUF / AND INDICATE 'BUFFER CHANGED'
|
||
2264 02467 2271 ISZ REBUFF
|
||
2265 02470 5240 JMP RED33 /KEEP WIPING OUT
|
||
2266
|
||
2267 02471 0000 REBUFF, 0
|
||
2268 02472 0000 RELINC, 0
|
||
2269 02473 0000 REWNDC, 0
|
||
2270 02474 1345 WND201, WND20
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 53
|
||
|
||
|
||
2271 /DIRECTORY SEARCH
|
||
2272
|
||
2273 /CALLING SEQUENCE:
|
||
2274 / CLA OR CMA (3 OR 1 WORD SEARCH)
|
||
2275 / JMS DS0
|
||
2276 / POINTER--------------->RETRIEVAL STACK POINTER
|
||
2277 / RETURN IF NOT FOUND NA
|
||
2278 / GOOD RETURN ME
|
||
2279 / (POINTER IN AC) XX
|
||
2280
|
||
2281 02475 0000 DS0, 0
|
||
2282 02476 7650 SNA CLA /SKIP IF ONE WORD SEARCH
|
||
2283 02477 7126 CLL CML RTL /THREE WORD COMPARE
|
||
2284 02500 7040 CMA
|
||
2285 02501 3273 DCA DSWDNR /MINUS NUMBER OF WORDS TO COMPARE
|
||
2286 02502 1675 TAD I DS0 /PICK UP POINTER TO RETRIEVAL INFORMATION
|
||
2287 02503 3272 DCA DSRETS
|
||
2288 02504 2275 ISZ DS0
|
||
2289 02505 1374 TAD DSMAX /SET UP COUNTER ON # ENTRIES CHECKED
|
||
2290 02506 3261 DCA DSKCNT
|
||
2291 02507 3375 DCA DSNEXT /CLEAR OUR NEXT-HIGHEST
|
||
2292 02510 3313 DS1, DCA DSWORD
|
||
2293 02511 1672 TAD I DSRETS /GET PTR. TO RETRIEVAL INFORMATION BLOCK
|
||
2294 02512 4511 JMS I GE01 /GET THE ENTRY INTO CORE
|
||
2295 02513 0000 DSWORD, 0 /WORD NUMBER--I.E. THE ADDR. WITHIN THE DIRECTORY
|
||
2296 02514 7450 SNA /DID WE GET THE ENTRY?
|
||
2297 02515 7402 HLT /NO, BUT THERE WAS A POINTER TO IT - ERROR *****
|
||
2298 02516 3211 DCA DSENTP /STORE POINTER TO ENTRY
|
||
2299 02517 1273 TAD DSWDNR /NUMBER OF WORDS TO COMPARE
|
||
2300 02520 3200 DCA DSCNTR
|
||
2301 02521 1272 TAD DSRETS
|
||
2302 02522 3271 DCA DSOBJT /POINTER TO OBJECT NAME
|
||
2303 02523 1211 TAD DSENTP
|
||
2304 02524 3373 DCA DSENT /POINTER TO NAME IN BUFFER
|
||
2305 02525 1773 DS2, TAD I DSENT
|
||
2306 02526 2373 ISZ DSENT
|
||
2307 02527 7041 CIA
|
||
2308 02530 2271 ISZ DSOBJT
|
||
2309 02531 1671 TAD I DSOBJT
|
||
2310 02532 7640 SZA CLA
|
||
2311 02533 5341 JMP DS3 /NOT FOUND
|
||
2312 02534 2200 ISZ DSCNTR
|
||
2313 02535 5325 JMP DS2 /LOOK AT NEXT WORD OF NAME
|
||
2314
|
||
2315 /WE FOUND IT - JUST RETURN THE POINTER
|
||
2316 02536 2275 ISZ DS0 /FOUND THE ENTRY
|
||
2317 02537 1211 TAD DSENTP /PICK UP POINTER
|
||
2318 02540 5675 JMP I DS0 / & RETURN
|
||
2319
|
||
2320 /THIS ENTRY IS NOT THE ONE WE'RE LOOKING FOR, SO WE MUST
|
||
2321 /GO LOOK AT THE NEXT ONE. UPDATE OUR 'NEXT UFD' WORD
|
||
2322 /AND THEN PICK UP THE LINK TO THE NEXT ENTRY.
|
||
2323 02541 2261 DS3, ISZ DSKCNT /BAD DIRECTORY?
|
||
2324 02542 7410 SKP /NOT YET
|
||
2325 02543 7402 HLT /LOOPING LINKS - ERROR *****
|
||
2326 02544 1611 TAD I DSENTP /GET THE LAST ENTRY
|
||
2327 02545 7161 CLL CML CIA
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 54
|
||
|
||
|
||
2328 02546 1671 TAD I DSOBJT
|
||
2329 02547 7620 SNL CLA /GREATER THAN THE ONE WE WANT?
|
||
2330 02550 5362 JMP DS5 /NO
|
||
2331 02551 1375 TAD DSNEXT
|
||
2332 02552 7450 SNA /YES - DO WE HAVE A NEXT YET?
|
||
2333 02553 5360 JMP DS4 /NO - JUST TAKE THIS ONE
|
||
2334 02554 7161 CLL CML CIA
|
||
2335 02555 1611 TAD I DSENTP
|
||
2336 02556 7620 SNL CLA /SMALLER THAN OUR PREVIOUS 'NEXT'?
|
||
2337 02557 5362 JMP DS5 /NO
|
||
2338 02560 1611 DS4, TAD I DSENTP /YES - SAVE THIS ONE INSTEAD
|
||
2339 02561 3375 DCA DSNEXT
|
||
2340 02562 1011 DS5, TAD P0003 /CREATE POINTER TO NEXT ENTRY
|
||
2341 02563 1211 TAD DSENTP
|
||
2342 02564 3200 DCA DSCNTR
|
||
2343 02565 1600 TAD I DSCNTR
|
||
2344 02566 7440 SZA /IS THIS THE END OF THE DIRECTORY CHAIN?
|
||
2345 02567 5310 JMP DS1 /NO, SO CONTINUE SEARCH
|
||
2346 02570 1011 TAD P0003
|
||
2347 02571 1313 TAD DSWORD /YES - RETURN ADDRESS OF LAST LINK-WORD
|
||
2348 02572 5675 JMP I DS0
|
||
2349
|
||
2350 02573 0000 DSENT, 0
|
||
2351 02574 7617 DSMAX, -161 / - (MAX # OF FILES USER CAN OWN + 1)
|
||
2352 02575 0000 DSNEXT, 0
|
||
2353 2471 DSOBJT= REBUFF
|
||
2354 2472 DSRETS= RELINC
|
||
2355 2473 DSWDNR= REWNDC
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 55
|
||
|
||
|
||
2356 PAGE
|
||
2357 /ROUTINE TO LOOK IN THE SAT FOR A FREE SEGMENT
|
||
2358
|
||
2359 /CALLING SEQUENCE:
|
||
2360 / JMS SATLOK
|
||
2361 / RETURN (SEGMENT NUMBER IN AC, 0=NONE AVAILABLE)
|
||
2362 02600 0000 SATLOK, 0
|
||
2363 02601 1257 TAD SATTBL /SET THE POINTER INTO THE TABLE
|
||
2364 02602 3253 DCA SATPNT
|
||
2365 02603 1654 TAD I SATCNT /# OF AVAILABLE DISC SEGMENTS
|
||
2366 02604 7450 SNA /ARE THERE ANY?
|
||
2367 02605 5600 JMP I SATLOK /NO, SO SCREW IT
|
||
2368 02606 7041 CIA
|
||
2369 02607 7040 CMA
|
||
2370 02610 3654 DCA I SATCNT /DECREMENT SATCNT
|
||
2371 02611 3255 DCA SATCT2
|
||
2372 02612 7240 CLA CMA
|
||
2373 02613 3057 DCA SATSTA /SET SAT STATUS TO WRITE OUT
|
||
2374 /LOOK FOR A WORD IN SAT TABLE WITH A ZERO BIT IN IT
|
||
2375 02614 1653 SAT1, TAD I SATPNT /GET A WORD FROM SAT TABLE
|
||
2376 02615 7040 CMA
|
||
2377 02616 7640 SZA CLA /ARE ALL BITS SET TO ONE?
|
||
2378 02617 5225 JMP SAT2 /NO, SO WE'VE FOUND A SEGMENT
|
||
2379 02620 2253 ISZ SATPNT /WAS THIS THE LAST WORD IN THE SAT TABLE?
|
||
2380 02621 5214 JMP SAT1 /NO, SO KEEP LOOKING
|
||
2381 02622 7402 HLT /YES, BUT WE SUPPOSEDLY HAD A SLOT *****
|
||
2382 02623 3654 DCA I SATCNT / (IF SYSTEM IS CONTINUED, WE'LL FIX THE COUNT)
|
||
2383 02624 5600 JMP I SATLOK
|
||
2384
|
||
2385 /WE FOUND A SAT WORD WITH A ZERO BIT. NOW FIND THAT BIT
|
||
2386 02625 7130 SAT2, CLL CML RAR /4000 INTO ACC.
|
||
2387 02626 3256 DCA SATMSK
|
||
2388 02627 2255 ISZ SATCT2 /INCREMENT THE BIT POSITION COUNT
|
||
2389 02630 1653 TAD I SATPNT /GET WORD FROM SAT TABLE
|
||
2390 02631 0256 AND SATMSK /IS THE BIT CORRESPONDING TO THE ONE IN SATMSK SET?
|
||
2391 02632 7450 SNA
|
||
2392 02633 5236 JMP SAT3 /NO, SO WE FOUND THE ZERO BIT
|
||
2393 02634 7010 RAR /MOVE MASK BIT ONE TO THE RIGHT
|
||
2394 02635 5226 JMP SAT2+1 /...AND LOOK AT THE NEXT BIT
|
||
2395
|
||
2396 /FOUND THE BIT WITHIN THE WORD - SATCNT INDICATES WHICH ONE IT IS
|
||
2397 02636 1256 SAT3, TAD SATMSK
|
||
2398 02637 1653 TAD I SATPNT /SET THE BIT IN SATTBL TO INDICATE
|
||
2399 02640 3653 DCA I SATPNT / THAT THIS SEGMENT IS ALLOCATED
|
||
2400 02641 1253 TAD SATPNT
|
||
2401 02642 1252 TAD SATFIX
|
||
2402 02643 3256 DCA SATMSK
|
||
2403 /
|
||
2404 /NOW CALCULATE THE NUMBER OF THE DISC SEGMENT
|
||
2405 /WHICH CORRESPONDS TO THIS BIT IN THE SAT TABLE
|
||
2406 02644 1256 TAD SATMSK /THE WORD-NUMBER
|
||
2407 02645 7104 CLL RAL
|
||
2408 02646 1256 TAD SATMSK
|
||
2409 02647 7006 RTL / TIMES 12
|
||
2410 02650 1255 TAD SATCT2 / PLUS THE BIT POSITION
|
||
2411 02651 5600 JMP I SATLOK /EXIT WITH DISC SEGMENT NUMBER IN ACC.
|
||
2412
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 56
|
||
|
||
|
||
2413 02652 0526 SATFIX, SATSIZ-2
|
||
2414 02653 0000 SATPNT, 0
|
||
2415 02654 7251 SATCNT, -SATSIZ+1
|
||
2416 SATEMP,
|
||
2417 02655 0000 SATCT2, 0
|
||
2418 02656 0000 SATMSK, 0
|
||
2419 02657 7252 SATTBL, -SATSIZ+2
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 57
|
||
|
||
|
||
2420 /ROUTINE TO RELEASE A SEGMENT IN SAT
|
||
2421
|
||
2422 /CALLING SEQUENCE:
|
||
2423 / TAD (SEGMENT NUMBER)
|
||
2424 / JMS SATREL
|
||
2425
|
||
2426 02660 0000 SATREL, 0
|
||
2427 02661 7450 SNA /REASONABLE SEGMENT NUMBER?
|
||
2428 02662 7402 HLT /NO - ERROR *****
|
||
2429 02663 3255 DCA SATEMP /SEGMENT NUMBER
|
||
2430 02664 7360 CLA CLL CMA CML
|
||
2431 02665 3057 DCA SATSTA /MARK SAT STATUS AS HAVING BEEN CHANGED
|
||
2432 02666 1255 TAD SATEMP
|
||
2433 02667 1334 TAD SEGMAX
|
||
2434 02670 7660 SZA SNL CLA /LEGAL SEGMENT NUMBER?
|
||
2435 02671 7402 HLT /NO - ERROR *****
|
||
2436 02672 3253 DCA SATPNT
|
||
2437 /
|
||
2438 /NOW DIVIDE SEGMENT NUMBER BY 12 DECIMAL
|
||
2439 /QUOTIENT INDICATES WHICH WORD IN SAT TABLE CORRESPONDS
|
||
2440 /TO THIS DISC SEGMENT. REMAINDER INDICATES WHICH BIT IN
|
||
2441 /THAT WORD
|
||
2442 02673 7240 CLA CMA /SUBTRACT 1 SO SEGMENT TABLE STARTS AT 0
|
||
2443 02674 1255 SATRL1, TAD SATEMP
|
||
2444 02675 7500 SMA /IS SEGMENT # > 3777?
|
||
2445 02676 5306 JMP SATRL2 /NO
|
||
2446 02677 1333 TAD CM3770 /YES - SUBTRACT 3770 FROM IT
|
||
2447 02700 3255 DCA SATEMP
|
||
2448 02701 1253 TAD SATPNT /THEN PUSH THE POINTER BY 3770 SEGMENTS
|
||
2449 02702 1331 TAD C0252 / WHICH IS 252 WORDS
|
||
2450 02703 3253 DCA SATPNT
|
||
2451 02704 5274 JMP SATRL1 /THEN CHECK AGAIN
|
||
2452
|
||
2453 /NOW FIND THE WORD-ADDRESS OF THIS BIT NUMBER.
|
||
2454 02705 2253 ISZ SATPNT
|
||
2455 02706 1332 SATRL2, TAD C7764 /-14
|
||
2456 02707 7500 SMA /IS THIS THE WORD?
|
||
2457 02710 5305 JMP .-3 /NO - ADVANCE THE POINTER & SUBTRACT AGAIN
|
||
2458 02711 3255 DCA SATEMP /YES - SAVE THE BIT-POSITION
|
||
2459 02712 1253 TAD SATPNT
|
||
2460 02713 1257 TAD SATTBL /GET THE WORD-ADDRESS
|
||
2461 02714 3253 DCA SATPNT
|
||
2462 02715 7120 CLL CML
|
||
2463 02716 7004 RAL
|
||
2464 02717 2255 ISZ SATEMP /SET UP A MASK CORRESPONDING TO PROPER BIT
|
||
2465 02720 5316 JMP .-2
|
||
2466 02721 0653 AND I SATPNT
|
||
2467 02722 7450 SNA /IS THIS SEGMENT REALLY ASSIGNED?
|
||
2468 02723 7402 HLT /NO - ERROR *****
|
||
2469 02724 7040 CMA
|
||
2470 02725 0653 AND I SATPNT /CLEAR SAT TABLE BIT
|
||
2471 02726 3653 DCA I SATPNT / THE SEGMENT IS NOW AVAILABLE
|
||
2472 02727 2654 ISZ I SATCNT /UPDATE THE AVAILABLE SEGMENTS COUNT
|
||
2473 02730 5660 JMP I SATREL
|
||
2474
|
||
2475 02731 0252 C0252, 252 / [3770 BITS / 14 BITS PER WORD (OCTAL)]
|
||
2476 02732 7764 C7764, -14
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 58
|
||
|
||
|
||
2477 02733 4010 CM3770, -3770
|
||
2478 02734 6621 SEGMAX, -DSKSIZ+JOBMAX+SWDEX^20+1 / (-) LARGEST SEGMENT NUMBER
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 59
|
||
|
||
|
||
2479 /ROUTINE TO FETCH A LINKED-BLOCK (USED BY 'OPEN').
|
||
2480 02735 0000 GTBLOK, 0
|
||
2481 02736 3350 DCA GTB1
|
||
2482 02737 6221 CFLD
|
||
2483 02740 1350 TAD GTB1
|
||
2484 02741 6202 CIF
|
||
2485 02742 4512 GETBLK
|
||
2486 02743 5747 JMP I GTBERR /NO BLOCK AVAILABLE - SAY "PROTECTION VIOLATION"
|
||
2487 02744 6211 DATFLD
|
||
2488 02745 1750 TAD I GTB1
|
||
2489 02746 5735 JMP I GTBLOK
|
||
2490 02747 0562 GTBERR, OPNER2
|
||
2491 02750 0000 GTB1, 0
|
||
2492
|
||
2493 /DISPATCH TABLE FOR IOTS
|
||
2494
|
||
2495 02751 3511 IODISP, ASD1
|
||
2496 02752 4200 REL0
|
||
2497 02753 4400 REN0
|
||
2498 02754 0401 OPN0
|
||
2499 02755 1000 CLS0
|
||
2500 02756 1200 WND0
|
||
2501 02757 1105 PRT0
|
||
2502 02760 1200 WND0
|
||
2503 02761 0400 XOPN0
|
||
2504 02762 4464 CPASS0
|
||
2505 02763 1400 CRF0
|
||
2506 02764 1600 EXT0
|
||
2507 02765 2000 RED0
|
||
2508 02766 2200 INF0
|
||
2509 02767 2317 LGI0
|
||
2510 02770 3230 LGO0
|
||
2511 02771 4543 BCLR0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 60
|
||
|
||
|
||
2512 PAGE
|
||
2513 /ROUTINE TO GET A DIRECTORY WORD INTO CORE
|
||
2514
|
||
2515 /CALLING SEQUENCE:
|
||
2516 / TAD (POINTER TO RETRIEVAL INFORMATION)
|
||
2517 / JMS GE0
|
||
2518 / WORD NUMBER
|
||
2519 / RETURN (BUFFER POINTER IN AC, 0 IF NON-EXISTENT)
|
||
2520
|
||
2521 03000 0000 GE0, 0
|
||
2522 03001 3240 DCA GERETP /STORE RETRIEVAL INFORMATION POINTER
|
||
2523 03002 1600 TAD I GE0
|
||
2524 03003 0243 AND K7400 /FIND UFD SEGMENT #
|
||
2525 03004 7106 CLL RTL; RTL; RAL
|
||
03005 7006
|
||
03006 7004
|
||
2526 03007 1240 TAD GERETP
|
||
2527 03010 3240 DCA GERETP
|
||
2528 03011 1640 TAD I GERETP /GET THE PHYSICAL SEGMENT #
|
||
2529 03012 7450 SNA
|
||
2530 03013 5236 JMP GE3
|
||
2531 03014 3241 DCA RDTEMP
|
||
2532
|
||
2533 /FILE READ ROUTINE, CHECKS TO SEE IF BUFFER IS FULL.
|
||
2534 /IF SO, IS IT THE SEGMENT WE ARE TRYING TO READ?
|
||
2535 /IF YES, LEAVE, IF NO, WRITE OUT THE BUFFER
|
||
2536 /BEFORE READING THE PROPER SEGMENT.
|
||
2537 03015 2037 ISZ BUFSTA /ANYTHING IN BUFFER?
|
||
2538 03016 5225 JMP RD0 /NO, READ
|
||
2539 03017 1242 TAD RDCURR /YES, SAME AS SEGMENT WE ARE LOOKING FOR
|
||
2540 03020 7041 CIA
|
||
2541 03021 1241 TAD RDTEMP
|
||
2542 03022 7650 SNA CLA /IS THIS THE SEGMENT WE WANT?
|
||
2543 03023 5231 JMP RD3 /YES - SEGMENT ALREADY IN CORE
|
||
2544 03024 4533 JMS I WRT1 /NO - WRITE IT OUT IF NECESSARY
|
||
2545 03025 1241 RD0, TAD RDTEMP
|
||
2546 03026 4267 JMS RD30 /SET UP PARAMETERS FOR A READ OPERATION
|
||
2547 03027 4507 JMS I FIO01 /PERFORM THE READ
|
||
2548 03030 5534 JMP I FIEXIT /ERROR ON READ
|
||
2549 03031 7240 RD3, CLA CMA
|
||
2550 03032 3037 DCA BUFSTA /SET BUFFER STATUS TO FULL
|
||
2551 03033 1244 TAD C0377
|
||
2552 03034 0600 AND I GE0 /ADDRESS WITHIN SEGMENT
|
||
2553 03035 1067 TAD BUFFER /CREATE A POINTER
|
||
2554 03036 2200 GE3, ISZ GE0
|
||
2555 03037 5600 JMP I GE0 /RETURN
|
||
2556
|
||
2557 03040 0000 GERETP, 0
|
||
2558 03041 0000 RDTEMP, 0
|
||
2559 03042 0000 RDCURR, 0
|
||
2560 03043 7400 K7400, 7400
|
||
2561 03044 0377 C0377, 0377
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 61
|
||
|
||
|
||
2562 /ROUTINE TO ZERO A DISC SEGMENT. WE DON'T ACTUALLY WRITE
|
||
2563 /OUT ZEROES, ALL WE DO IS ZERO THE CORE-BUFFER AND SET
|
||
2564 /THINGS UP SO IT WILL BE WRITTEN OUT THE NEXT TIME A BLOCK
|
||
2565 /IS NEEDED OR WHEN FIP EXITS.
|
||
2566
|
||
2567 03045 0000 SCL0, 0
|
||
2568 03046 3242 DCA SCLSEG /SAVE THE SEGMENT NUMBER
|
||
2569 03047 4533 JMS I WRT1 /WRITE OUT THE BUFFER IF NECESSARY
|
||
2570 03050 1266 TAD MSEGSZ
|
||
2571 03051 3137 DCA CFH /SET THE BUFFER LENGTH
|
||
2572 03052 1067 TAD BUFFER
|
||
2573 03053 3241 DCA SCLPTR / AND THE BUFFER POINTER
|
||
2574 03054 3641 SCL1, DCA I SCLPTR /NOW CLEAR THE BUFFER TO ZEROES
|
||
2575 03055 2241 ISZ SCLPTR
|
||
2576 03056 2137 ISZ CFH
|
||
2577 03057 5254 JMP SCL1
|
||
2578 03060 1242 TAD SCLSEG
|
||
2579 03061 4267 JMS RD30 /SET UP THE READ PARAMETERS
|
||
2580 03062 7240 CLA CMA / AND JUST INDICATE THE BUFFER IS FULL
|
||
2581 03063 3037 DCA BUFSTA
|
||
2582 03064 4524 SAVBUF /ALSO SET 'BUFFER CHANGED'
|
||
2583 03065 5645 JMP I SCL0 /THEN JUST RETURN
|
||
2584
|
||
2585 03066 7400 MSEGSZ, -WRDSEG
|
||
2586 3041 SCLPTR= RDTEMP
|
||
2587 3042 SCLSEG= RDCURR
|
||
2588
|
||
2589 /ROUTINE TO SET UP FOR A READ
|
||
2590 /ENTER WITH SEGMENT NUMBER. THIS IS CONVERTED
|
||
2591 /TO A PHYSICAL DISC ADDRESS
|
||
2592 03067 0000 RD30, 0
|
||
2593 03070 3242 DCA RDCURR /SAVE AS CURRENT BUFFERED SEGMENT
|
||
2594 03071 7240 CLA CMA
|
||
2595 03072 1242 TAD RDCURR
|
||
2596 03073 7112 CLL RTR
|
||
2597 03074 7012 RTR
|
||
2598 03075 3241 DCA RDTEMP
|
||
2599 03076 1241 TAD RDTEMP
|
||
2600 03077 7010 RAR
|
||
2601 03100 0243 AND K7400
|
||
2602 03101 3156 DCA FLPARB+5
|
||
2603 03102 1241 TAD RDTEMP
|
||
2604 03103 0244 AND C0377
|
||
2605 03104 1043 TAD FIBASE
|
||
2606 03105 7106 CLL RTL
|
||
2607 03106 3152 DCA FLPARB+1
|
||
2608 03107 6221 CFLD /CHANGE TO CURRENT FIELD
|
||
2609 03110 1243 TAD K7400
|
||
2610 03111 3154 DCA FLPARB+3 /WORD COUNT (ONE BUFFER)
|
||
2611 03112 7240 CLA CMA
|
||
2612 03113 1067 TAD BUFFER
|
||
2613 03114 3155 DCA FLPARB+4 /CORE ADDRESS
|
||
2614 03115 1027 TAD C6603 /READ IOT
|
||
2615 03116 3151 DCA FLPARB
|
||
2616 03117 5667 JMP I RD30
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 62
|
||
|
||
|
||
2617 /ACTUAL IO ROUTINE
|
||
2618 /SET UP ALL IO PARAMETERS IN "FLPARB", AND JMS FIPIO
|
||
2619
|
||
2620 03120 0000 FIPIO, 0
|
||
2621 03121 1007 TAD FIPFLD
|
||
2622 03122 7010 RAR
|
||
2623 03123 3153 DCA FLPARB+2 /='S FIELD WE'RE IN TIMES 4
|
||
2624 03124 6221 CFLD /CHANGE TO CURRENT FIELD IF NECESSARY
|
||
2625 03125 1374 TAD FIRETP /POINTER TO FIORET
|
||
2626 03126 3001 DCA 1 /RETURN ADDRESS - SET TO RETURN BELOW WHEN FIP IS RESTARTED
|
||
2627 03127 1340 TAD FIO3 /GET FIPBLK
|
||
2628 03130 6211 DATFLD
|
||
2629 03131 3773 DCA I FIUTBA
|
||
2630 03132 6221 CFLD
|
||
2631 03133 6202 CIF
|
||
2632 03134 4473 BLT /MOVE DISC TRANSFER PARMS INTO DSUTBL BLOCK
|
||
2633 03135 6221 CFLD
|
||
2634 03136 0151 FLPARB
|
||
2635 03137 6211 DATFLD /DESTINATION FIELD
|
||
2636 03140 7720 FIO3, FIPBLK /DESTINATION
|
||
2637 03141 7770 -10 /WORD COUNT
|
||
2638 03142 6203 CIF CDF
|
||
2639 03143 2771 ISZ I DSBSYA /GLOBAL TO "DSBUSY"
|
||
2640 03144 5532 WAIT
|
||
2641 03145 5775 JMP I OVER /GO TO FIELD 0, LOCATION "OVERLA+5"
|
||
2642
|
||
2643 /MONITOR RETURNS CONTROL HERE AFTER COMPLETING THE TRANSFER
|
||
2644 03146 7200 FIORET, CLA /RETURNS FROM DISC IO COME HERE
|
||
2645 03147 1020 TAD C0200 /RESET THE FIP STARTING ADDRESS
|
||
2646 03150 3001 DCA 1 /... TO 0200
|
||
2647 03151 4506 FGETJT
|
||
2648 03152 0000 JOBSTS
|
||
2649 03153 6211 DATFLD
|
||
2650 03154 3372 DCA FIPTR1
|
||
2651 03155 1772 TAD I FIPTR1 /PICK UP "JOBSTS"
|
||
2652 03156 6221 CFLD /CHANGE TO CURRENT FIELD
|
||
2653 03157 0014 AND P0007 /CHECK ERROR BITS
|
||
2654 03160 7440 SZA
|
||
2655 03161 5364 JMP FIO6 /SOME KIND OF ERROR OCCURRED
|
||
2656 03162 2320 ISZ FIPIO /NO ERROR, NORMAL RETURN
|
||
2657 03163 5720 JMP I FIPIO
|
||
2658 03164 1370 FIO6, TAD C7773 /-5, DISC ERROR CODE
|
||
2659 03165 7640 SZA CLA
|
||
2660 03166 2320 ISZ FIPIO /ERROR WAS NOT CAUSED BY DISC TRANSFER
|
||
2661 03167 5720 JMP I FIPIO /EXIT WITHOUT SKIPPING TO INDICATE DISC TRANSFER ERROR
|
||
2662
|
||
2663 03170 7773 C7773, -5
|
||
2664 03171 0036 DSBSYA, DSBUSY
|
||
2665 03172 0000 FIPTR1, 0
|
||
2666 03173 3071 FIUTBA, DSUTBL+4+4
|
||
2667 03174 3146 FIRETP, FIORET
|
||
2668 03175 0572 OVER, OVRLA1
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 63
|
||
|
||
|
||
2669 PAGE
|
||
2670 /ROUTINE TO CHECK WHETHER THE FILE A USER
|
||
2671 /IS ATTEMPTING TO ACCESS IS HIS.
|
||
2672
|
||
2673 /CALLING SEQUENCE:
|
||
2674 / TAD (INTERNAL FILE NUMBER)
|
||
2675 / JMS UC0
|
||
2676 / ERROR RETURN (AC=0 IF FILE NOT OPEN)
|
||
2677 / NORMAL RETURN
|
||
2678
|
||
2679 03200 0000 UC0, 0
|
||
2680 03201 4504 JMS I EBLD0
|
||
2681 03202 3325 DCA UCENTP
|
||
2682 03203 1725 TAD I UCENTP /PICK UP 'ENTTBL' ENTRY FOR THIS FILE
|
||
2683 03204 7450 SNA
|
||
2684 03205 5600 JMP I UC0 /FILE NOT OPEN
|
||
2685 03206 7041 CIA
|
||
2686 03207 7040 CMA
|
||
2687 03210 7104 CLL RAL / * 2 (AND ZAP 'EXCLUSIVE USE' BIT)
|
||
2688 03211 1064 TAD UFDTBL
|
||
2689 03212 3227 DCA UCUFDP /POINTER TO OPEN UFD TABLE
|
||
2690 03213 7240 CLA CMA
|
||
2691 03214 1627 TAD I UCUFDP
|
||
2692 03215 7650 SNA CLA /IS THIS A DIRECTORY?
|
||
2693 03216 5221 JMP UC1 /YES - ONLY OWNER GETS IT (NOT BILLING SYSTEM)
|
||
2694 03217 4474 CHKACT /NO - IS THIS A PRIVILEGED USER?
|
||
2695 03220 5225 JMP UC2 /YES - HE GETS ANYTHING ELSE
|
||
2696 03221 1050 UC1, TAD FIACCT /GET HIS ACCOUNT NUMBER
|
||
2697 03222 7041 CIA
|
||
2698 03223 1627 TAD I UCUFDP
|
||
2699 03224 7450 SNA /DOES HE OWN THIS?
|
||
2700 03225 2200 UC2, ISZ UC0 /YES - FIX RETURN ADDRESS
|
||
2701 03226 5600 JMP I UC0
|
||
2702
|
||
2703 03227 0000 UCUFDP, 0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 64
|
||
|
||
|
||
2704 /THIS HANDLES THE 'LOGOUT' IOT - IF THE AC IS SET TO THE
|
||
2705 /USER'S JOB NUMBER, WE LOG HIM OUT; IF THE AC IS 0, WE RETURN
|
||
2706 /THE NUMBER OF ADDITIONAL USERS LOGGED-IN UNDER HIS ACCOUNT.
|
||
2707
|
||
2708 03230 1142 LGO0, TAD FIOSTK+1 /DID HE SET HIS AC= TO HIS JOB #?
|
||
2709 03231 7041 CIA
|
||
2710 03232 1051 TAD FIJOB
|
||
2711 03233 7640 SZA CLA
|
||
2712 03234 5757 JMP I LGO1A /NO - SEE IF HE WANTS COUNT OF OTHER USERS
|
||
2713 03235 4761 JMS I LNS01 /YES - FIRST RELEASE ALL HIS DEVICES
|
||
2714 03236 5241 JMP .+3
|
||
2715 03237 4520 JMS I REL01
|
||
2716 03240 5235 JMP .-3 /KEEP GOING
|
||
2717 03241 4477 JMS I CL01 /CLOSE FILE 0
|
||
2718 03242 7001 IAC
|
||
2719 03243 4477 JMS I CL01 /CLOSE FILE1
|
||
2720 03244 7126 CLL CML RTL
|
||
2721 03245 4477 JMS I CL01 /CLOSE FILE 2
|
||
2722 03246 1011 TAD P0003
|
||
2723 03247 4477 JMS I CL01 /CLOSE FILE3
|
||
2724 03250 1050 TAD FIACCT /GET USER'S ACCOUNT NUMBER
|
||
2725 03251 3356 DCA LGOPRM+1 /DELIVER TO CALLING SEQUENCE FOR SEARCH
|
||
2726 03252 7240 CLA CMA
|
||
2727 03253 4502 JMS I DS01 /FIND MFD ENTRY; 1 WORD SEARCH
|
||
2728 03254 3355 LGOPRM
|
||
2729 03255 7402 HLT /ERROR - MASTER DIRECTORY MAY BE LOST *****
|
||
2730 03256 1013 TAD C0006
|
||
2731 03257 3356 DCA LGOPTR /POINTER TO CP TIME COUNTER
|
||
2732 03260 1404 TAD I ZDS1 /PICK UP THE RELATIVE UFD-LOCATION
|
||
2733 03261 3325 DCA LGOENT / FOR CHECKING IF REDUCTION IS POSSIBLE
|
||
2734 03262 4506 FGETJT
|
||
2735 03263 0016 JOBRTM /JOB RUN TIME IN STATUS
|
||
2736 03264 3147 DCA FIOSTK+6 /POINTS TO LOW ORDER RUN TIME
|
||
2737 03265 4506 FGETJT
|
||
2738 03266 0017 JOBRTH
|
||
2739 03267 3150 DCA FIOSTK+7 / AND HIGH-ORDER
|
||
2740 03270 6211 DATFLD
|
||
2741 03271 1547 TAD I FIOSTK+6
|
||
2742 03272 0033 AND C7700 /USE HIGH PART OF LOW-ORDER TIME
|
||
2743 03273 7104 CLL RAL
|
||
2744 03274 3147 DCA FIOSTK+6
|
||
2745 03275 1550 TAD I FIOSTK+7
|
||
2746 03276 6221 CFLD /BACK TO THIS FIELD
|
||
2747 03277 0017 AND P0077
|
||
2748 03300 1147 TAD FIOSTK+6 /NOW COMBINE THE TWO
|
||
2749 03301 7006 RTL
|
||
2750 03302 7006 RTL
|
||
2751 03303 7006 RTL
|
||
2752 03304 1756 TAD I LGOPTR /UPDATE RUNTIME (CPU TIME : DATE WORD)
|
||
2753 03305 7430 SZL /DID IT JUST OVERFLOW?
|
||
2754 03306 7240 CLA CMA /YES - FORCE IT TO THE MAXIMUM
|
||
2755 03307 3756 DCA I LGOPTR
|
||
2756 03310 4524 SAVBUF / & SET 'BUFFER CHANGED' SWITCH
|
||
2757 03311 2356 ISZ LGOPTR /NOW GET TO THE RETRIEVAL-BLOCK POINTER
|
||
2758 03312 1756 TAD I LGOPTR
|
||
2759 03313 3341 DCA LGORET / & SAVE IT FOR POSSIBLE UFD REDUCTION
|
||
2760 03314 1050 TAD FIACCT
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 65
|
||
|
||
|
||
2761 03315 4531 JMS I UTS01 /FIND OUR ACCOUNT NUMBER IN 'UFDTBL'
|
||
2762 03316 7402 HLT /ERROR - NO 'UFDTBL' ENTRY FOR US *****
|
||
2763 03317 4472 JMS I BLDP1 /CALCULATE THE 'ENTTBL' ENTRY LOCATION
|
||
2764 03320 3356 DCA LGOPTR / IN CASE WE'RE THE LAST USER OF THIS UFD
|
||
2765 03321 2536 ISZ I UTPRNU /DECREMENT THE ACCESS-COUNT FOR THIS UFD
|
||
2766 03322 5346 JMP LGO3
|
||
2767 03323 1065 TAD RETTBL /LAST USER ACCESSING THIS UFD
|
||
2768 03324 4505 JMS I ENS01 /FIND THE NUMBER OF USERS READING IT
|
||
2769 UCENTP,
|
||
2770 03325 0000 LGOENT, 0
|
||
2771 03326 7640 SZA CLA /DOES ANYONE HAVE IT OPEN AS A FILE?
|
||
2772 03327 5343 JMP LGO2 /YES - WE COULDN'T REDUCE IT NOW
|
||
2773 03330 1356 TAD LGOPTR
|
||
2774 03331 4511 JMS I GE01 /NO - GET THE INITIAL LINK-WORD IN THE UFD
|
||
2775 03332 0003 3
|
||
2776 03333 3325 DCA LGOENT
|
||
2777 03334 1725 TAD I LGOENT
|
||
2778 03335 7640 SZA CLA /IS THE UFD COMPLETELY EMPTY?
|
||
2779 03336 5343 JMP LGO2 /NO - CAN'T REDUCE IT THEN
|
||
2780 03337 7301 CLA CLL IAC
|
||
2781 03340 4762 JMS I RED301 /NOW REDUCE THE UFD TO ONE SEGMENT
|
||
2782 03341 0000 LGORET, 0
|
||
2783 03342 6160 RTABLE / (FIRST RETTBL ENTRY IS ALWAYS MFD)
|
||
2784 03343 7240 LGO2, CLA CMA
|
||
2785 03344 1136 TAD UTPRNU
|
||
2786 03345 4526 JMS I TF01 /NOW FREE THE 'UFDTBL' ENTRY
|
||
2787 03346 7200 LGO3, CLA
|
||
2788 03347 1360 TAD LGO4A /KLUDGE FIEXIT TO RETURN TO LGO4
|
||
2789 03350 3754 DCA I LGKLUJ
|
||
2790 03351 7240 TABOUT, CLA CMA
|
||
2791 03352 3060 DCA TABSTA /FORCE TABLES OUT
|
||
2792 03353 5534 JMP I FIEXIT
|
||
2793
|
||
2794 03354 3644 LGKLUJ, FIX500
|
||
2795 03355 6160 LGOPRM, RTABLE /2-WORD PARAMETER BLOCK FOR 'DS01'
|
||
2796 03356 0000 LGOPTR, 0
|
||
2797 03357 4643 LGO1A, LGO1
|
||
2798 03360 4600 LGO4A, LGO4
|
||
2799 03361 4732 LNS01, LNS0
|
||
2800 03362 2400 RED301, RED30
|
||
2801
|
||
2802 /ROUTINE TO RETURN A BLOCK TO FREE-CORE.
|
||
2803 03363 0000 RETBKS, 0
|
||
2804 03364 6221 CFLD
|
||
2805 03365 6202 CIF
|
||
2806 03366 4521 RETBLK /JUST LINK TO FIELD 0
|
||
2807 03367 5763 JMP I RETBKS / AND RETURN
|
||
2808
|
||
2809 /ROUTINE TO RETURN A LINKED LIST OF FREE-CORE BLOCKS.
|
||
2810 03370 0000 RETBLS, 0
|
||
2811 03371 7450 SNA /AT END OF CHAIN?
|
||
2812 03372 5770 JMP I RETBLS /YES - RETURN
|
||
2813 03373 4363 JMS RETBKS /NO - RELEASE THE BLOCK
|
||
2814 03374 5371 JMP .-3
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 66
|
||
|
||
|
||
2815 PAGE
|
||
2816 /ROUTINE TO OPEN A UFD & LEAVE ZERO ACCESS COUNT
|
||
2817
|
||
2818 /CALLING SEQUENCE:
|
||
2819 / TAD (PROJ,PROG NUMBER)
|
||
2820 / JMS UFO0
|
||
2821 / ERROR RETURN
|
||
2822 / NORMAL RETURN (POSITION ON TABLE IN AC)
|
||
2823
|
||
2824 03400 0000 UFO0, 0
|
||
2825 03401 3266 DCA UFORET /SAVE THE ACCOUNT NUMBER
|
||
2826 03402 1266 TAD UFORET
|
||
2827 03403 4531 JMS I UTS01 /SEARCH THE TABLE
|
||
2828 03404 7610 SKP CLA /NOT FOUND - BUILD NEW ENTRY
|
||
2829 03405 5264 JMP UFOEXT /GOT IT - JUST EXIT
|
||
2830 03406 1266 TAD UFORET
|
||
2831 03407 4270 JMS UFO6 /GET THE RETRIEVAL INFO. FOR THIS UFD
|
||
2832 03410 5231 JMP UFO5 /NO LUCK - TAKE ERROR EXIT
|
||
2833 03411 3270 DCA UOBUFP /POINTER TO RETRIEVAL INFORMATION
|
||
2834 03412 1064 TAD UFDTBL
|
||
2835 03413 3136 DCA UOUFDP /UFD TABLE POINTER
|
||
2836
|
||
2837 /SEARCH FOR A FREE SLOT IN UFDTBL
|
||
2838 03414 1536 UFO3, TAD I UOUFDP
|
||
2839 03415 7650 SNA CLA
|
||
2840 03416 5236 JMP UFO2 /FOUND A FREE SLOT ON THE TABLE
|
||
2841 03417 2136 ISZ UOUFDP
|
||
2842 03420 1536 TAD I UOUFDP
|
||
2843 03421 7650 SNA CLA /IS IT REALLY EMPTY?
|
||
2844 03422 5233 JMP UFO10 /YES - CLEAN UP
|
||
2845
|
||
2846 /NO IT IS OCCUPIED
|
||
2847 03423 2136 ISZ UOUFDP
|
||
2848 03424 1136 TAD UOUFDP
|
||
2849 03425 7041 CIA
|
||
2850 03426 1065 TAD UFDEND
|
||
2851 03427 7640 SZA CLA /HAVE WE SEARCHED THE WHOLE TABLE?
|
||
2852 03430 5214 JMP UFO3 /LOOK AT NEXT SLOT
|
||
2853 03431 7300 UFO5, CLA CLL
|
||
2854 03432 5600 JMP I UFO0 /NO ROOM ON TABLE
|
||
2855
|
||
2856 /COMES HERE WITH UOUFDP POINTING TO A FREE SLOT IN UFDTBL
|
||
2857 03433 7240 UFO10, CLA CMA
|
||
2858 03434 1136 TAD UOUFDP /BACK UP THE POINTER
|
||
2859 03435 3136 DCA UOUFDP
|
||
2860 03436 1267 UFO2, TAD UFORET+1
|
||
2861 03437 3536 DCA I UOUFDP /PUT PROJ,PROG NUMBER ON TABLE
|
||
2862 03440 2136 ISZ UOUFDP
|
||
2863 03441 3536 DCA I UOUFDP /ACCOUNT FOR THIS ACCESS
|
||
2864 03442 7240 CLA CMA
|
||
2865 03443 1064 TAD UFDTBL
|
||
2866 03444 7041 CIA
|
||
2867 03445 1136 TAD UOUFDP
|
||
2868 03446 7110 CLL RAR
|
||
2869 03447 3306 DCA UFO1 /RELATIVE POSITION ON TABLE
|
||
2870 03450 1306 TAD UFO1
|
||
2871 03451 4472 JMS I BLDP1 /GENERATE A PTR. INTO RETTBL
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 67
|
||
|
||
|
||
2872 03452 3266 DCA UFORET /RETRIEVAL POINTER
|
||
2873 03453 1035 TAD C7771
|
||
2874 03454 3137 DCA CFH /COUNTER FOR TRANSFER TO TABLE
|
||
2875
|
||
2876 /NOW MOVE RETRIEVAL INFORMATION FOR THIS GUY'S
|
||
2877 /UFD INTO RETTBL
|
||
2878 03455 2270 UFO4, ISZ UOBUFP
|
||
2879 03456 1670 TAD I UOBUFP
|
||
2880 03457 3666 DCA I UFORET
|
||
2881 03460 2266 ISZ UFORET
|
||
2882 03461 2137 ISZ CFH /ENTIRE RETRIEVAL BLOCK TRANSFERRED?
|
||
2883 03462 5255 JMP UFO4 /NO, KEEP IT UP
|
||
2884 03463 1306 TAD UFO1 /YES - PICK UP RELATIVE POSITION
|
||
2885 03464 2200 UFOEXT, ISZ UFO0 /PREPARE FOR NORMAL RETURN
|
||
2886 03465 5600 JMP I UFO0
|
||
2887
|
||
2888 03466 0000 UFORET, 0
|
||
2889 03467 0000 0
|
||
2890 0136 UOUFDP=UTPRNU
|
||
2891
|
||
2892 /ROUTINE TO READ IN THE RETRIEVAL INFORMATION FOR THE
|
||
2893 /UFD BELONGING TO THE ACCOUNT NUMBER PASSED IN THE AC.
|
||
2894 UOBUFP,
|
||
2895 03470 0000 UFO6, 0
|
||
2896 03471 3267 DCA UFORET+1 /SET UP CALLING SEQUENCE FOR MFD SEARCH
|
||
2897 03472 1065 TAD RETTBL
|
||
2898 03473 3266 DCA UFORET
|
||
2899 03474 7040 CMA
|
||
2900 03475 4502 JMS I DS01 /ONE WORD MASTER FILE DIRECTORY SEARCH FOR PROJ,PROG MATCH
|
||
2901 03476 3466 UFORET
|
||
2902 03477 5670 JMP I UFO6 /COULD NOT FIND UFD ENTRY
|
||
2903 03500 1014 TAD P0007
|
||
2904 03501 3266 DCA UFORET /POINTER TO UFD RETRIEVAL INFORMATION
|
||
2905 03502 1666 TAD I UFORET
|
||
2906 03503 3306 DCA UFO1
|
||
2907 03504 1065 TAD RETTBL /GET POINTER TO RETRIEVAL INFO FOR THE MFD
|
||
2908 03505 4511 JMS I GE01 /GET RETRIEVAL INFORMATION INTO CORE
|
||
2909 03506 0000 UFO1, 0
|
||
2910 03507 2270 ISZ UFO6
|
||
2911 03510 5670 JMP I UFO6
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 68
|
||
|
||
|
||
2912 /ROUTINE TO ASSIGN A DEVICE
|
||
2913
|
||
2914 03511 1142 ASD1, TAD FIOSTK+1
|
||
2915 03512 4503 JMS I DTE01 /IS THIS DEVICE ASSIGNED TO THIS JOB?
|
||
2916 03513 0000 ASD2, 0 /SET BY DTE01 TO POINT TO PROPER ENTRY IN DEVTBL
|
||
2917 03514 7410 SKP
|
||
2918 03515 5360 JMP ASD5 /YES
|
||
2919 03516 1713 TAD I ASD2 /GET THE DDB ADDRESS
|
||
2920 03517 7450 SNA /IS THERE A DDB?
|
||
2921 03520 5330 JMP ASD3 /NO - OKAY TO ASSIGN IT
|
||
2922 /
|
||
2923 /COMES HERE IF ONE JOB ATTEMPTS TO ASSIGN AN ALREADY ASSIGNED DEVICE
|
||
2924 03521 7001 IAC
|
||
2925 03522 3137 DCA CFH /NOW POINTS TO JOB # (OR LOC 0, IF ILLEGAL)
|
||
2926 03523 1537 TAD I CFH
|
||
2927 03524 7450 SNA /JOB NUMBER THERE?
|
||
2928 03525 7040 CMA /NO - RETURN 7777
|
||
2929 03526 3046 DCA FIUSAC /RETURN THE OWNER'S JOB NUMBER
|
||
2930 03527 5356 JMP ASD4 /EXIT
|
||
2931 /
|
||
2932 /COMES HERE IF OKAY TO MAKE THIS ASSIGNMENT
|
||
2933 03530 1142 ASD3, TAD FIOSTK+1
|
||
2934 03531 7500 SMA /IS THE DEVICE BEING ASSIGNED A TELETYPE?
|
||
2935 03532 5535 JMP I LGI201 /YES - THAT'S NOT ALLOWED
|
||
2936 03533 1370 TAD ASDCHK
|
||
2937 03534 7710 SPA CLA /IS HE TRYING TO GET THE RK05?
|
||
2938 03535 5340 JMP .+3 /NO
|
||
2939 03536 4475 CHKPRV /YES - DOES HE HAVE PRIVILEGE?
|
||
2940 03537 5535 JMP I LGI201 /NO - ERROR
|
||
2941 03540 6221 CFLD /CHANGE TO CURRENT FIELD
|
||
2942 03541 1313 TAD ASD2
|
||
2943 03542 6202 CIF
|
||
2944 03543 4513 GETDDB /GET A BLOCK FROM THE FREE LIST AND LINK IT INTO DEVTBL
|
||
2945 03544 5535 JMP I LGI201 /NO BLOCK - JUST RETURN A BAD STATUS
|
||
2946 03545 6211 DATFLD
|
||
2947 03546 1713 TAD I ASD2 /PICK DDB ADDRESS FROM DEVTBL
|
||
2948 03547 3137 DCA CFH /SAVE IT
|
||
2949 03550 1142 TAD FIOSTK+1
|
||
2950 03551 0016 AND P0037
|
||
2951 03552 3537 DCA I CFH /SET TO REFLECT THE DEVICE NUMBER
|
||
2952 03553 2137 ISZ CFH
|
||
2953 03554 1051 TAD FIJOB
|
||
2954 03555 3537 DCA I CFH / AND STORE THE JOB NUMBER
|
||
2955 03556 6221 ASD4, CFLD
|
||
2956 03557 5534 JMP I FIEXIT /THEN JUST EXIT
|
||
2957 /
|
||
2958 /USER ALREADY OWNS THE DEVICE - IF IT'S THE HSR, JUST CLEAR THE BUFFER.
|
||
2959 03560 1142 ASD5, TAD FIOSTK+1
|
||
2960 03561 7104 CLL RAL
|
||
2961 03562 7640 SZA CLA /HSR?
|
||
2962 03563 5356 JMP ASD4 /NO - JUST EXIT
|
||
2963 03564 1713 TAD I ASD2 /GET THE DDB POINTER
|
||
2964 03565 6202 CIF
|
||
2965 03566 4771 JMS I ASDCLR /CLEAR THE BUFFER
|
||
2966 03567 5356 JMP ASD4
|
||
2967
|
||
2968 03570 3750 ASDCHK, -4030 /RK05 DRIVE 0 ASSIGN CODE
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 69
|
||
|
||
|
||
2969 03571 4400 ASDCLR, SICLR
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 70
|
||
|
||
|
||
2970
|
||
2971 PAGE
|
||
2972
|
||
2973 /EXIT ROUTINE
|
||
2974 /COMES HERE WHEN FIP HAS COMPLETED ITS TASK
|
||
2975 /FIRST, SEE IF ANY INTERNAL FILE HAVE BEEN CHANGED
|
||
2976 /THOSE THAT HAVE CHANGED MUST BE WRITTEN BACK OUT TO DISC
|
||
2977
|
||
2978 03600 6221 FIX0, CFLD
|
||
2979 03601 7200 CLA
|
||
2980 03602 4533 JMS I WRT1 /MAKE SURE THE BUFFER IS EMPTY
|
||
2981 03603 2060 ISZ TABSTA /CHECK TABLE STATUS
|
||
2982 03604 5207 JMP FIX1 /NOTHING CHANGED IN TABLES
|
||
2983 03605 1277 TAD FIPTBS /BOTTOM OF TABLE AREA
|
||
2984 03606 5212 JMP FIX2 /SAVE TABLES BEFORE EXIT
|
||
2985
|
||
2986 03607 2057 FIX1, ISZ SATSTA /CHECK SAT STATUS
|
||
2987 03610 5221 JMP FIX20 /NOTHING TO BE SAVED, EXIT
|
||
2988 03611 1070 TAD SATBOT /BOTTOM OF SAT
|
||
2989 03612 4266 FIX2, JMS FIX40
|
||
2990 03613 1005 TAD FIDEXP /GLOBAL TO "FIPDEX"
|
||
2991 03614 3152 DCA FLPARB+1 /MEMORY FIELD
|
||
2992 03615 1030 TAD C6605
|
||
2993 03616 3151 DCA FLPARB /WRITE IOT
|
||
2994 03617 4507 JMS I FIO01 /PERFORM THE WRITE
|
||
2995 03620 7402 HLT /ERROR ON WRITE, FATAL
|
||
2996 /ALL DISC TABLES ARE NOW UP TO DATE
|
||
2997 03621 4506 FIX20, FGETJT
|
||
2998 03622 0000 JOBSTS
|
||
2999 03623 3052 DCA FIOPTR
|
||
3000 03624 6211 DATFLD
|
||
3001 03625 1452 TAD I FIOPTR
|
||
3002 03626 0300 AND FISIOT /CLEAR 'FIP IOT' BIT
|
||
3003 03627 3452 DCA I FIOPTR
|
||
3004 03630 6221 CFLD
|
||
3005 03631 4506 FGETJT /RESTORE USER REGISTERS
|
||
3006 03632 0011 JOBREG
|
||
3007 03633 3241 DCA FIX21
|
||
3008 03634 6202 CIF
|
||
3009 03635 4473 BLT
|
||
3010 03636 6221 CFLD
|
||
3011 03637 0044 FIUSPC
|
||
3012 03640 6211 DATFLD
|
||
3013 03641 0000 FIX21, 0
|
||
3014 03642 7773 -5
|
||
3015 03643 5644 JMP I .+1
|
||
3016 03644 3645 FIX500, FIX50 /CHANGED TO 'LGO4' DURING LOGOUT PROCESSING
|
||
3017 03645 6221 FIX50, CFLD
|
||
3018 03646 1702 TAD I SEGCNT
|
||
3019 03647 6201 CDF
|
||
3020 03650 3701 DCA I FIXCNT /STORE # FREE SEGMENTS IN FIELD 0
|
||
3021 03651 4476 CHKSRC /WHO CALLED US?
|
||
3022 03652 5260 JMP FIX30 /A USER - JUST CLEAR THE ENTRY
|
||
3023 03653 1027 TAD C6603 /'SI' - SET UP TO READ IT IN
|
||
3024 03654 3151 DCA FLPARB
|
||
3025 03655 3152 DCA FLPARB+1 /SI IS IN THE TRACK 0 OF THE DISC
|
||
3026 03656 4266 JMS FIX40
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 71
|
||
|
||
|
||
3027 03657 4507 JMS I FIO01 /RETURN WILL BE TO SI
|
||
3028
|
||
3029 /FIP WAS CALLED BY A USER - JUST CLEAR THE 'CORTBL' ENTRY
|
||
3030 03660 6201 FIX30, CDF
|
||
3031 03661 1442 TAD I FANFLD /A USER - GET THE 'CORTBL' ENTRY
|
||
3032 03662 0276 AND FIPCLR / AND CLEAR THE JOB NUMBER & LOCK BIT
|
||
3033 03663 3442 DCA I FANFLD
|
||
3034 03664 5665 JMP I .+1 /NOW GO CHECK FOR OTHER 'FIPJOB'S
|
||
3035 03665 5000 FIXSCH
|
||
3036
|
||
3037 /ROUTINE TO SET UP THE PARAMETERS IN 'FLPARB'.
|
||
3038 03666 0000 FIX40, 0
|
||
3039 03667 3154 DCA FLPARB+3 /SET (-) WORD-COUNT
|
||
3040 03670 1154 TAD FLPARB+3
|
||
3041 03671 3156 DCA FLPARB+5 /SET DISC ADDRESS
|
||
3042 03672 7240 CLA CMA
|
||
3043 03673 1156 TAD FLPARB+5
|
||
3044 03674 3155 DCA FLPARB+4 /SET CORE ADDRESS - 1
|
||
3045 03675 5666 JMP I FIX40
|
||
3046
|
||
3047 03676 5600 FIPCLR, FSWP+NOTRUN+FIP+SI
|
||
3048 0021 FIPFIP= C0400
|
||
3049 03677 5600 FIPTBS, ENTABL /LOWEST TABLE IN FIP
|
||
3050 03700 7677 FISIOT, -JSIOT-1
|
||
3051 03701 5533 FIXCNT, NFSEGS /VALUE FOR RESIDENT 'SEGS'
|
||
3052 03702 7251 SEGCNT, -SATSIZ+1 /POINTER TO # FREE SEGMENTS
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 72
|
||
|
||
|
||
3053 /ROUTINE TO DETERMINE IF A DEVICE IS ASSIGNED TO THIS JOB
|
||
3054
|
||
3055 /CALLING SEQUENCE:
|
||
3056 / TAD (DEVICE NUMBER)
|
||
3057 / JMS DTE0
|
||
3058 / RETURN (DEVICE NOT ASSIGNED TO THIS JOB)
|
||
3059 / RETURN (DEVICE ASSIGNED)
|
||
3060
|
||
3061 03703 0000 DTE0, 0
|
||
3062 03704 7510 SPA /IS IT A TTY?
|
||
3063 03705 5311 JMP .+4 /NO
|
||
3064 03706 7104 CLL RAL /YES - GET THE DEVTBL ENTRY-ADDRESS
|
||
3065 03707 1062 TAD DEVTBA
|
||
3066 03710 5313 JMP DTE1
|
||
3067 03711 0017 AND P0077 /EXTRACT THE DEVICE NUMBER
|
||
3068 03712 1063 TAD DEVEND / & FIND THE DEVTBL ENTRY
|
||
3069 03713 3345 DTE1, DCA DTE2 /POINTER TO DEVTBL ENTRY
|
||
3070 03714 1345 TAD DTE2
|
||
3071 03715 7041 CIA
|
||
3072 03716 1071 TAD DEVOVR
|
||
3073 03717 7700 SMA CLA /IS IT A LEGAL DEVICE NUMBER?
|
||
3074 03720 5323 JMP .+3 /YES
|
||
3075 03721 1344 TAD DTEBAD
|
||
3076 03722 3345 DCA DTE2 /NO - FUDGE SO JOB=0 (CHANGED TO 7777)
|
||
3077 03723 1345 TAD DTE2
|
||
3078 03724 6221 CFLD
|
||
3079 03725 3703 DCA I DTE0 /PASS BACK THE DEVTBL POINTER
|
||
3080 03726 2303 ISZ DTE0
|
||
3081 03727 6211 DATFLD
|
||
3082 03730 1745 TAD I DTE2 /GET THE DDB ADDRESS
|
||
3083 03731 7450 SNA /IS THERE A DDB?
|
||
3084 03732 5703 JMP I DTE0 /NO - DEVICE NOT ASSIGNED TO ANYONE
|
||
3085 03733 3345 DCA DTE2
|
||
3086 03734 2345 ISZ DTE2
|
||
3087 03735 1745 TAD I DTE2
|
||
3088 03736 0017 AND P0077 /EXTRACT JOB NUMBER
|
||
3089 03737 7041 CIA
|
||
3090 03740 1051 TAD FIJOB /NUMBER OF CURRENT JOB
|
||
3091 03741 7650 SNA CLA
|
||
3092 03742 2303 ISZ DTE0 /"ASSIGNED" RETURN
|
||
3093 03743 5703 JMP I DTE0 /NOT OWNED BY THIS JOB
|
||
3094
|
||
3095 03744 2674 DTEBAD, JOBTBL-1
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 73
|
||
|
||
|
||
3096 /ROUTINE TO FREE AN ENTRY ON THE UFD TABLE
|
||
3097
|
||
3098 /CALLING SEQUENCE:
|
||
3099 / TAD (POSITION ON UFDTBL)
|
||
3100 / JMS TF0
|
||
3101 / RETURN
|
||
3102
|
||
3103 DTE2,
|
||
3104 03745 0000 TF0, 0
|
||
3105 03746 3366 DCA TFUFDP /POSITION ON TABLE
|
||
3106 03747 3766 DCA I TFUFDP /CLEAR OWNERS PROJ,PROG NUMBER
|
||
3107 03750 1064 TAD UFDTBL /BEGINNING OF TABLE
|
||
3108 03751 7041 CIA
|
||
3109 03752 1366 TAD TFUFDP
|
||
3110 03753 7110 CLL RAR /RELATIVE POSITION ON TABLE
|
||
3111 03754 7001 IAC
|
||
3112 03755 4472 JMS I BLDP1 /BUILD A PTR. TO ENTTBL
|
||
3113 03756 3366 DCA TFUFDP /POINTER TO RETRIEVAL INFORMATION
|
||
3114 03757 1034 TAD P7770 /SET # WORDS PER ENTTBL ENTRY
|
||
3115 03760 3372 DCA TFCNTR
|
||
3116 03761 3766 TF1, DCA I TFUFDP /ZERO OUT THE ENTRY
|
||
3117 03762 2366 ISZ TFUFDP
|
||
3118 03763 2372 ISZ TFCNTR
|
||
3119 03764 5361 JMP TF1
|
||
3120 03765 5745 JMP I TF0
|
||
3121
|
||
3122
|
||
3123 /ROUTINE TO GET THE FILE CONTROL-BLOCK FOR THE
|
||
3124 /FILE WHOSE INTERNAL FILE NUMBER IS IN THE AC.
|
||
3125
|
||
3126 TFUFDP,
|
||
3127 03766 0000 LNK0, 0 /GET FILE LINKAGE
|
||
3128 03767 1377 TAD LNKF
|
||
3129 03770 3372 DCA LNK1
|
||
3130 03771 4506 FGETJT
|
||
3131 TFCNTR,
|
||
3132 03772 0000 LNK1, 0
|
||
3133 03773 3137 DCA CFH
|
||
3134 03774 6211 DATFLD
|
||
3135 03775 1537 TAD I CFH /PTR TO FILE CONTROL BLOCK
|
||
3136 03776 5766 JMP I LNK0
|
||
3137
|
||
3138 03777 0020 LNKF, JOBF0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 74
|
||
|
||
|
||
3139
|
||
3140 PAGE
|
||
3141
|
||
3142 /ROUTINE TO FIND AN EMPTY DIRECTORY ENTRY; THE UFD
|
||
3143 /IS EXTENDED IF NECESSARY.
|
||
3144 /CALL: TAD (POINTER TO UFD RETRIEVAL INFORMATION)
|
||
3145 / JMS DE0
|
||
3146 / BAD RETURN (NO FREE ENTRY OR NO DISC FOR UFD)
|
||
3147 / NORMAL RETURN (POINTER TO ENTRY IN AC)
|
||
3148
|
||
3149 04000 0000 DE0, 0
|
||
3150 04001 3316 DCA DERETP /SAVE THE RETRIEVAL POINTER
|
||
3151 04002 3321 DCA DEBEGG /CLEAR THE 'FROM BEGINNING' SWITCH
|
||
3152 04003 1316 TAD DERETP
|
||
3153 04004 3010 DCA INDEX
|
||
3154 /
|
||
3155 /IN ORDER TO SAVE DISC I/O, WE START THE SEARCH FROM THE
|
||
3156 /MIDDLE OF THE UFD IF WE ALREADY HAVE ONE OF ITS SEGMENTS
|
||
3157 /IN OUR SEGMENT BUFFER. IF WE DON'T FIND AN ENTRY FROM THE
|
||
3158 /MIDDLE, WE RE-CHECK THE UFD FROM THE BEGINNING; IF WE STILL
|
||
3159 /DON'T FIND AN ENTRY, WE EXTEND THE UFD.
|
||
3160 04005 1021 DE1, TAD SEGSIZ
|
||
3161 04006 3226 DCA DEWORD /SET INITIAL ADDRESS TO SECOND SEGMENT IN UFD
|
||
3162 04007 1410 TAD I INDEX /GET THE NEXT SEGMENT INDEX IN THE UFD
|
||
3163 04010 7450 SNA /IS THERE A NEXT?
|
||
3164 04011 5220 JMP DE2 /NO - WE SEARCH FROM THE TOP
|
||
3165 04012 7041 CIA
|
||
3166 04013 1714 TAD I DECURR
|
||
3167 04014 7650 SNA CLA /YES - IS IT OUR BUFFERED SEGMENT?
|
||
3168 04015 5224 JMP DE4 /YES - START SEARCH FROM WHERE WE ARE
|
||
3169 04016 1226 TAD DEWORD /NO - UPDATE OUR ADDRESS BY ONE SEGMENT
|
||
3170 04017 5205 JMP DE1 / & CONTINUE CHECKING
|
||
3171 /
|
||
3172 /THE BUFFERED SEGMENT IS NOT ANY OF THIS UFD'S OR WE COULDN'T
|
||
3173 /FIND A FREE ENTRY STARTING FROM THE MIDDLE OF THE UFD,
|
||
3174 /SO WE SEARCH THE UFD FROM THE BEGINNING.
|
||
3175 04020 7240 DE2, CLA CMA
|
||
3176 04021 3321 DCA DEBEGG /SET THE 'FROM BEGINNING' SWITCH
|
||
3177 04022 1015 DE3, TAD C0010
|
||
3178 04023 3226 DCA DEWORD /SET THE NEW READ ADDRESS
|
||
3179 04024 1316 DE4, TAD DERETP
|
||
3180 04025 4511 JMS I GE01 /GET THE NEXT ENTRY
|
||
3181 04026 0000 DEWORD, 0
|
||
3182 04027 7450 SNA /WAS IT WITHIN THE UFD?
|
||
3183 04030 5246 JMP DE6 /NO - GO TRY TO EXTEND IT
|
||
3184 04031 3137 DCA CFH /YES - SAVE ITS CORE LOCATION
|
||
3185 04032 1537 TAD I CFH /GET THE FIRST ENTRY-WORD
|
||
3186 04033 7640 SZA CLA /IS IT CLEAR?
|
||
3187 04034 5244 JMP DE5 /NO - TRY THE NEXT
|
||
3188 04035 2137 ISZ CFH
|
||
3189 04036 1537 TAD I CFH /YES - CHECK THE SECOND WORD
|
||
3190 04037 7640 SZA CLA /IS THAT OK ALSO?
|
||
3191 04040 5244 JMP DE5 /NO
|
||
3192 04041 1226 TAD DEWORD /YES - WE HAVE AN EMPTY ENTRY
|
||
3193 04042 2200 ISZ DE0 / SO SKIP TO INDICATE IT
|
||
3194 04043 5600 JMP I DE0 / AND RETURN WITH ITS LOCATION IN THE AC
|
||
3195 04044 1226 DE5, TAD DEWORD /NOT THIS ENTRY - UPDATE THE ADDRESS
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 75
|
||
|
||
|
||
3196 04045 5222 JMP DE3 / AND CONTINUE SEARCH
|
||
3197 /
|
||
3198 /WE'VE RUN PAST THE END OF THE UFD - WE MAY HAVE TO EXTEND IT.
|
||
3199 04046 2321 DE6, ISZ DEBEGG /WAS THIS SEARCH FROM THE FRONT OF THE UFD?
|
||
3200 04047 5220 JMP DE2 /NO - SEARCH AGAIN, THIS TIME FROM THE FRONT
|
||
3201 04050 1316 TAD DERETP
|
||
3202 04051 3315 DCA DEPTR /YES - FIND THE NEXT SEGMENT SLOT
|
||
3203 04052 1035 TAD C7771
|
||
3204 04053 3137 DCA CFH /SET THE COUNTER (7 SEGMENTS MAXIMUM PER UFD)
|
||
3205 04054 1715 DE7, TAD I DEPTR /GET THE NEXT SEGMENT POINTER
|
||
3206 04055 7650 SNA CLA /IS THERE A NEXT?
|
||
3207 04056 5263 JMP DE8 /NO - WE HAVE ROOM FOR A SEGMENT
|
||
3208 04057 2315 ISZ DEPTR /YES - INCREMENT THE POINTER
|
||
3209 04060 2137 ISZ CFH
|
||
3210 04061 5254 JMP DE7 / & TRY AGAIN
|
||
3211 04062 5600 JMP I DE0 /CAN'T EXTEND THE UFD - TAKE ERROR EXIT
|
||
3212 /
|
||
3213 /WE HAVE ROOM FOR ANOTHER SEGMENT - GET ONE FROM SAT.
|
||
3214 04063 4522 DE8, JMS I SATL1 /FIND A FREE SEGMENT
|
||
3215 04064 7450 SNA /WAS ONE AVAILABLE?
|
||
3216 04065 5600 JMP I DE0 /NO - TAKE ERROR EXIT
|
||
3217 04066 3715 DCA I DEPTR /YES - SAVE IT IN THE RETRIEVAL TABLE
|
||
3218 04067 1316 TAD DERETP
|
||
3219 04070 4717 JMS I ENS31 /GET THE RELATIVE ENTRY NUMBER
|
||
3220 04071 7104 CLL RAL
|
||
3221 04072 1064 TAD UFDTBL / & THE POINTER INTO 'UFDTBL'
|
||
3222 04073 3137 DCA CFH
|
||
3223 04074 1537 TAD I CFH /GET THE OWNER'S ACCOUNT NUMBER
|
||
3224 04075 4720 JMS I UFO61 / & FETCH THE UFD RETRIEVAL BLOCK
|
||
3225 04076 7402 HLT /ACCOUNT NOT FOUND - ERROR *****
|
||
3226 04077 3137 DCA CFH /SAVE THE BUFFER POINTER
|
||
3227 04100 2137 ISZ CFH
|
||
3228 04101 1537 TAD I CFH /GET THE SEGMENT NUMBERS
|
||
3229 04102 7640 SZA CLA /IS THIS THE END OF THE POINTERS?
|
||
3230 04103 5300 JMP .-3 /NO - KEEP LOOKING
|
||
3231 04104 1715 TAD I DEPTR /YES - SET OUR NEW SEGMENT NUMBER
|
||
3232 04105 3537 DCA I CFH / INTO THE RETRIEVAL BLOCK
|
||
3233 04106 4524 SAVBUF /NOW SET THE SWITCH TO WRITE BACK THE BUFFER
|
||
3234 04107 7240 CLA CMA
|
||
3235 04110 3060 DCA TABSTA / AND INDICATE THE TABLES HAVE BEEN CHANGED
|
||
3236 04111 1715 TAD I DEPTR
|
||
3237 04112 4525 JMS I SCL01 /FINALLY WE ZERO THE NEW UFD SEGMENT
|
||
3238 04113 5224 JMP DE4 / AND THEN FINISH OUR SEARCH
|
||
3239
|
||
3240 04114 3042 DECURR, RDCURR
|
||
3241 04115 0000 DEPTR, 0
|
||
3242 04116 0000 DERETP, 0
|
||
3243 04117 2167 ENS31, ENS3
|
||
3244 04120 3470 UFO61, UFO6
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 76
|
||
|
||
|
||
3245
|
||
3246 /ROUTINE TO SEARCH UFD TABLE FOR PROJ,PROG NUMBER
|
||
3247
|
||
3248 /CALLING SEQUENCE:
|
||
3249 / TAD (PROJ,PROG NUMBER)
|
||
3250 / JMS UTS0
|
||
3251 / NOT FOUND RETURN
|
||
3252 / NORMAL RETURN (RETRIEVAL POSITION IN AC)
|
||
3253
|
||
3254 DEBEGG,
|
||
3255 04121 0000 UTS0, 0
|
||
3256 04122 3352 DCA UTPR1 /PROJ,PROG NUMBER
|
||
3257 04123 1064 TAD UFDTBL /PTR. TO HEAD OF UFDTBL
|
||
3258 04124 3136 DCA UTUPTR
|
||
3259 04125 1065 UTS1, TAD UFDEND /END OF UFD TABLE
|
||
3260 04126 7041 CIA
|
||
3261 04127 1136 TAD UTUPTR
|
||
3262 04130 7650 SNA CLA
|
||
3263 04131 5721 JMP I UTS0 /COULD NOT FIND PROJ,PROG NUMBER ON TABLE
|
||
3264 04132 1536 TAD I UTUPTR
|
||
3265 04133 7041 CIA
|
||
3266 04134 1352 TAD UTPR1
|
||
3267 04135 7650 SNA CLA
|
||
3268 04136 5342 JMP UTS3 /FOUND ENTRY, GET POINTER
|
||
3269 04137 2136 ISZ UTUPTR /STEP UP ONE SLOT
|
||
3270 04140 2136 ISZ UTUPTR
|
||
3271 04141 5325 JMP UTS1 /LOOK IN THE NEXT ENTRY
|
||
3272 04142 1064 UTS3, TAD UFDTBL
|
||
3273 04143 7041 CIA
|
||
3274 04144 1136 TAD UTUPTR
|
||
3275 04145 7110 CLL RAR /RELATIVE POSITION ON TABLE
|
||
3276 04146 7001 IAC /THE RELATIVE POSITION
|
||
3277 04147 2136 ISZ UTPRNU /UTPRNU POINTS TO ACCESS COUNT OF THIS PROJ, PROG #
|
||
3278 04150 2321 ISZ UTS0
|
||
3279 04151 5721 JMP I UTS0
|
||
3280
|
||
3281 0136 UTUPTR= UTPRNU
|
||
3282
|
||
3283
|
||
3284 /ROUTINE TO FIND THE ADDRESS OF A WORD IN THE
|
||
3285 /JOB STATUS BLOCKS FOR THIS JOB.
|
||
3286
|
||
3287 UTPR1,
|
||
3288 04152 0000 FGETJ0, 0
|
||
3289 04153 6211 DATFLD
|
||
3290 04154 1455 TAD I JOBDAT
|
||
3291 04155 7650 SNA CLA /IS EVERYTHING PROPER?
|
||
3292 04156 4517 REBOOT /NO - ERROR *****
|
||
3293 04157 6221 CFLD
|
||
3294 04160 1752 TAD I FGETJ0 /GET THE RELATIVE WORD NUMBER
|
||
3295 04161 3365 DCA .+4
|
||
3296 04162 1055 TAD JOBDAT /NOW GET THE ADDRESS OF A 'JOBTBL' POINTER
|
||
3297 04163 6202 CIF
|
||
3298 04164 4514 GETJTA / AND LET THE FIELD 0 ROUTINE DO THE WORK
|
||
3299 04165 0000 0
|
||
3300 04166 2352 ISZ FGETJ0
|
||
3301 04167 5752 JMP I FGETJ0 /THEN JUST RETURN; AC=ADDRESS
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 77
|
||
|
||
|
||
3302
|
||
3303
|
||
3304 /ROUTINE TO INITIATE AN AUTOMATIC SYSTEM RESTART.
|
||
3305 /
|
||
3306 04170 0000 RBOOT, 0
|
||
3307 04171 6002 IOF
|
||
3308 04172 7200 CLA
|
||
3309 04173 1370 TAD RBOOT
|
||
3310 04174 6202 CIF
|
||
3311 04175 5776 JMP I .+1 /OFF TO FIELD 0 WITH ERROR ADDRESS IN THE AC
|
||
3312 04176 3600 RELOAD
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 78
|
||
|
||
|
||
3313
|
||
3314 PAGE
|
||
3315
|
||
3316 /THIS HANDLES THE 'REL' IOT - RELEASE A DEVICE.
|
||
3317 04200 1142 REL0, TAD FIOSTK+1 /GET THE DEVICE NUMBER
|
||
3318 04201 7510 SPA /IS IT A TTY?
|
||
3319 04202 4204 JMS REL00 /NO - GO AHEAD AND RELEASE IT
|
||
3320 04203 5534 JMP I FIEXIT
|
||
3321
|
||
3322 /ROUTINE WHICH ACTUALLY RELEASES THE DEVICE.
|
||
3323 04204 0000 REL00, 0
|
||
3324 04205 4503 JMS I DTE01 /IS THIS DEVICE ASSIGNED TO THIS USER?
|
||
3325 04206 0000 RELDVT, 0 /SET BY DTE0 TO POINT TO DEVTBL ENTRY FOR THIS DEVICE
|
||
3326 04207 5357 JMP REL8 /NO - TAKE ERROR EXIT IF SI
|
||
3327 04210 1606 TAD I RELDVT
|
||
3328 04211 3363 DCA RELBLK /SAVE ADDRESS OF DDB
|
||
3329 04212 1363 TAD RELBLK
|
||
3330 04213 1011 TAD P0003 /POSITION OF TIME IN DDB
|
||
3331 04214 3362 DCA RELASD
|
||
3332 04215 1762 TAD I RELASD /GET TIME ASSIGNED
|
||
3333 04216 7041 CIA
|
||
3334 04217 3362 DCA RELASD /-TIME ASSIGNED
|
||
3335 04220 6201 CDF
|
||
3336 04221 1766 TAD I RELCK1 /GET TIME NOW
|
||
3337 04222 0031 AND C7000 /JUST SIGNIFICANT PART OF LOW-ORDER
|
||
3338 04223 7104 CLL RAL
|
||
3339 04224 3365 DCA RELNOW
|
||
3340 04225 1767 TAD I RELCK2
|
||
3341 04226 6221 CFLD /BACK TO THIS FIELD
|
||
3342 04227 0022 AND P0777 / AND INSIGNIFICANT PART OR HIGH ORDER
|
||
3343 04230 1365 TAD RELNOW /TIME AT RELEASE
|
||
3344 04231 7006 RTL
|
||
3345 04232 7004 RAL
|
||
3346 04233 1362 TAD RELASD /-TIME AT ASSIGNMENT (13-BIT SUBTRACT)
|
||
3347 04234 7420 SNL /GONE THROUGH MIDNIGHT?
|
||
3348 04235 1371 TAD RELCON /YES - ADD FUDGE FACTOR
|
||
3349 04236 7450 SNA /ANYTHING TO RECORD?
|
||
3350 04237 5260 JMP REL1 /NO
|
||
3351 04240 3362 DCA RELASD /YES - SAVE IT
|
||
3352 04241 1050 TAD FIACCT
|
||
3353 04242 3365 DCA RELRTB+1 /NOW BUILD THE PACKET FOR 'DS0'
|
||
3354 04243 7240 CLA CMA
|
||
3355 04244 4502 JMS I DS01 /FIND THE MASTER DIRECTORY ENTRY
|
||
3356 04245 4364 RELRTB
|
||
3357 04246 7402 HLT /MFD IS LOST *****
|
||
3358 04247 1012 TAD C0005
|
||
3359 04250 3137 DCA CFH /NOW POINTS TO DEVICE TIME WORD
|
||
3360 04251 7300 CLA CLL
|
||
3361 04252 1362 TAD RELASD
|
||
3362 04253 1537 TAD I CFH /ADD IN THE NEW TIME
|
||
3363 04254 7430 SZL /DID IT OVERFLOW?
|
||
3364 04255 7240 CLA CMA /YES - FORCE IT TO ITS LARGEST
|
||
3365 04256 3537 DCA I CFH
|
||
3366 04257 4524 SAVBUF /REMEMBER TO WRITE BACK THE BLOCK
|
||
3367 04260 6211 REL1, DATFLD
|
||
3368 04261 7320 CLA CLL CML
|
||
3369 04262 1206 TAD RELDVT
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 79
|
||
|
||
|
||
3370 04263 1372 TAD RELDTA
|
||
3371 04264 7510 SPA /IS IT THE DTA, OR RK05
|
||
3372 04265 7010 RAR /NO - MUST BE HSR, ?, CDR, OR CHARACTER DEVICE
|
||
3373 04266 7420 SNL /IS IT A CHARACTER OUTPUT DEVICE?
|
||
3374 04267 5336 JMP REL6 /NO - MUST BE KEYBOARD, HSR, ?, CDR, R2, OR X DEVICE
|
||
3375 04270 1373 TAD RELREG
|
||
3376 04271 3363 REL2, DCA RELBLK /POINTS TO ENTRY IN 'OUTREG' (OR 0 FOR KEYBOARD OUTPUT)
|
||
3377 04272 7240 CLA CMA
|
||
3378 04273 1606 TAD I RELDVT
|
||
3379 04274 3010 DCA INDEX /POINTS TO WORD 0 OF DDB
|
||
3380 04275 1410 TAD I INDEX
|
||
3381 04276 7710 SPA CLA /IS THE TTY IN ^S MODE?
|
||
3382 04277 5311 JMP REL3 /YES - FLUSH IT OUT
|
||
3383 04300 3410 DCA I INDEX /CLEAR THE JOB NUMBER
|
||
3384 04301 2010 ISZ INDEX
|
||
3385 04302 2010 ISZ INDEX
|
||
3386 04303 1410 TAD I INDEX
|
||
3387 04304 7640 SZA CLA /IS THE FILL-POINTER ZERO?
|
||
3388 04305 5322 JMP REL4 /NO - LET 'CONOUT' RELEASE THE BLOCK
|
||
3389 04306 1363 TAD RELBLK
|
||
3390 04307 7640 SZA CLA /ASSIGNABLE DEVICE?
|
||
3391 04310 5324 JMP REL5 /YES
|
||
3392 04311 1606 REL3, TAD I RELDVT
|
||
3393 04312 6202 CIF
|
||
3394 04313 4770 JMS I RELCLR /FLUSH THE DEVICE BUFFER
|
||
3395 04314 6211 DATFLD
|
||
3396 04315 1606 TAD I RELDVT
|
||
3397 04316 4402 JMS I RETBK1 / AND RELEASE THE BLOCK
|
||
3398 04317 7200 CLA
|
||
3399 04320 6211 DATFLD
|
||
3400 04321 3606 DCA I RELDVT /THEN CLEAR THE DEVTBL ENTRY
|
||
3401 04322 6221 REL4, CFLD
|
||
3402 04323 5604 JMP I REL00 / AND RETURN
|
||
3403
|
||
3404 04324 6222 REL5, CIF 20 / (JUST INHIBIT INTERRUPTS WHEN CHECKING OUTREG)
|
||
3405 04325 1763 TAD I RELBLK
|
||
3406 04326 7104 CLL RAL
|
||
3407 04327 7450 SNA /IS AN INTERRUPT EXPECTED OR A CHARACTER BUFFERED?
|
||
3408 04330 5311 JMP REL3 /NO - JUST CLEAR OUT THE DDB
|
||
3409 04331 7510 SPA /YES - IS AN INTERRUPT PENDING?
|
||
3410 04332 7120 CLL CML /YES - INSURE DEVICE SERVICING
|
||
3411 04333 7010 RAR
|
||
3412 04334 3763 DCA I RELBLK / AND RESTORE THE WORD
|
||
3413 04335 5322 JMP REL4
|
||
3414
|
||
3415 04336 7700 REL6, SMA CLA /IS IT A KEYBOARD OR THE HSR?
|
||
3416 04337 5343 JMP REL7
|
||
3417 04340 1363 TAD RELBLK
|
||
3418 04341 6202 CIF
|
||
3419 04342 4770 JMS I RELCLR /YES - CLEAR THE BUFFER
|
||
3420 04343 1363 REL7, TAD RELBLK
|
||
3421 04344 4402 JMS I RETBK1 /RETURN THE FREE-BLOCK
|
||
3422 04345 7200 CLA
|
||
3423 04346 6211 DATFLD
|
||
3424 04347 3606 DCA I RELDVT / AND CLEAR THE DEVTBL ENTRY
|
||
3425 04350 1063 TAD DEVEND
|
||
3426 04351 7041 CIA
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 80
|
||
|
||
|
||
3427 04352 1206 TAD RELDVT
|
||
3428 04353 7700 SMA CLA /IS THIS A KEYBOARD?
|
||
3429 04354 5322 JMP REL4 /NO - JUST RETURN
|
||
3430 04355 2206 ISZ RELDVT /YES - SET THE POINTER TO THE OUTPUT SIDE
|
||
3431 04356 5271 JMP REL2 / AND RUN IT ALL AGAIN
|
||
3432
|
||
3433 /DEVICE RELEASED IS NOT OWNED BY THIS USER.
|
||
3434 04357 4476 REL8, CHKSRC /IS HE USING A KEYBOARD COMMAND?
|
||
3435 04360 5604 JMP I REL00 /NO - JUST RETURN
|
||
3436 04361 5535 JMP I LGI201 /YES - TELL 'SI' HE BLEW IT
|
||
3437
|
||
3438 04362 0000 RELASD, 0
|
||
3439 04363 0000 RELBLK, 0
|
||
3440 04364 6160 RELRTB, RTABLE /TWO-WORD PACKET FOR 'DS0'
|
||
3441 04365 0000 RELNOW, 0
|
||
3442 04366 0033 RELCK1, CLK1
|
||
3443 04367 0034 RELCK2, CLK2
|
||
3444 04370 4400 RELCLR, SICLR
|
||
3445 0007 RC1= INCLK1%1000
|
||
3446 04371 6457 RELCON, INCLK2^10+RC1 /FUDGE FOR MIDNIGHT OVERFLOW
|
||
3447 04372 5120 RELDTA, -DEVTBE-20
|
||
3448 04373 0230 RELREG, DEVTBE+20-DEVTBL%2+OUTREG / = OUTREG+NULINE+CONTTY+10
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 81
|
||
|
||
|
||
3449 PAGE
|
||
3450 /RENAME ROUTINE
|
||
3451
|
||
3452 04400 4516 REN0, JMS I IFN01
|
||
3453 04401 4527 JMS I UC01 /DOES HE OWN THE FILE?
|
||
3454 04402 5252 JMP REN1 /NO - ERROR
|
||
3455 04403 1142 TAD FIOSTK+1 /YES - SAVE THE INTERNAL FILE #
|
||
3456 04404 3141 DCA FIOSTK
|
||
3457 04405 1662 TAD I RENUCP /GET THE OWNER'S ACCOUNT NUMBER
|
||
3458 04406 3263 DCA REPRTP
|
||
3459 04407 1663 TAD I REPRTP
|
||
3460 04410 4531 JMS I UTS01 / AND FIND THE 'UFDTBL' ENTRY
|
||
3461 04411 7402 HLT /BAD - IF THE FILE'S OPEN, THERE MUST BE ONE *****
|
||
3462 04412 4472 JMS I BLDP1 /GET THE 'RETTBL' ENTRY ADDRESS
|
||
3463 04413 3142 DCA FIOSTK+1
|
||
3464 04414 7240 CLA CMA
|
||
3465 04415 1663 TAD I REPRTP /CHECK THE OWNER'S ACCOUNT
|
||
3466 04416 7650 SNA CLA /IS IT A DIRECTORY (I.E. OWNED BY ACCT # 1)?
|
||
3467 04417 7240 CLA CMA /YES - THE FIRST WORD (ACCOUNT) MUST BE UNIQUE
|
||
3468 04420 4502 JMS I DS01 /NOW CHECK IF THE NAME ALREADY EXISTS
|
||
3469 04421 0142 FIOSTK+1
|
||
3470 04422 7610 SKP CLA /NOPE - OK TO RENAME
|
||
3471 04423 5257 JMP REN2 /YES - "INVALID FILE NAME"
|
||
3472 04424 1141 TAD FIOSTK
|
||
3473 04425 4510 JMS I GD01 /GET THIS DIRECTORY ENTRY INTO CORE
|
||
3474 04426 3261 DCA REENTP / AND SAVE THE POINTER
|
||
3475 04427 1261 TAD REENTP
|
||
3476 04430 1005 TAD P0004
|
||
3477 04431 3263 DCA REPRTP /POINTER TO PROTECTION BITS
|
||
3478 04432 1663 TAD I REPRTP /PICK UP PROTECTION BITS
|
||
3479 04433 0007 AND C0020
|
||
3480 04434 7640 SZA CLA /WRITE-PROTECTED AGAINST OWNER?
|
||
3481 04435 5253 JMP REN1+1 /YES - "PROTECTION VIOLATION"
|
||
3482 04436 1143 TAD FIOSTK+2 /TRANSFER NEW NAME TO DIRECTORY
|
||
3483 04437 7450 SNA /IS IT A NULL NAME?
|
||
3484 04440 5257 JMP REN2 /YES, DON'T RENAME
|
||
3485 04441 3661 DCA I REENTP
|
||
3486 04442 2261 ISZ REENTP
|
||
3487 04443 1144 TAD FIOSTK+3
|
||
3488 04444 3661 DCA I REENTP
|
||
3489 04445 2261 ISZ REENTP
|
||
3490 04446 1145 TAD FIOSTK+4
|
||
3491 04447 3661 DCA I REENTP
|
||
3492 04450 4524 SAVBUF /SET 'BUFFER CHANGED' SWITCH
|
||
3493 04451 5534 JMP I FIEXIT /EXIT FROM FILE PHANTOM
|
||
3494
|
||
3495 04452 7640 REN1, SZA CLA /WHICH ERROR?
|
||
3496 04453 7130 CPERR2, CLL CML RAR /6000 - PROTECTION VIOLATION
|
||
3497 04454 7130 CLL CML RAR /4000 - NO FILE OPEN
|
||
3498 04455 3046 DCA FIUSAC
|
||
3499 04456 5534 JMP I FIEXIT
|
||
3500
|
||
3501 04457 7332 REN2, CLA CLL CML RTR /6400 - INVALID FILE NAME
|
||
3502 04460 5253 JMP REN1+1
|
||
3503
|
||
3504 04461 0000 REENTP, 0
|
||
3505 04462 3227 RENUCP, UCUFDP
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 82
|
||
|
||
|
||
3506 04463 0000 REPRTP, 0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 83
|
||
|
||
|
||
3507 /THIS HANDLES THE 'CPASS' IOT - CHANGE PASSWORD.
|
||
3508 /IF THE SYSTEM MANAGER PASSES THE INCORRECT CURRENT
|
||
3509 /PASSWORD, HE IS SIMPLY RETURNED AN ERROR CODE;
|
||
3510 /IF ANYONE ELSE PASSES US AN INCORRECT CURRENT
|
||
3511 /PASSWORD, THEY ARE AUTOMATICALLY LOGGED-OUT.
|
||
3512
|
||
3513 04464 1142 CPASS0, TAD FIOSTK+1
|
||
3514 04465 7650 SNA CLA /RATIONAL ACCOUNT NUMBER?
|
||
3515 04466 5253 JMP CPERR2 /NO - RETURN ERROR CODE
|
||
3516 04467 7240 CLA CMA
|
||
3517 04470 1050 TAD FIACCT
|
||
3518 04471 7650 SNA CLA /IS THIS THE MANAGER?
|
||
3519 04472 5300 JMP CPASS1 /YES
|
||
3520 04473 1050 TAD FIACCT
|
||
3521 04474 7041 CIA
|
||
3522 04475 1142 TAD FIOSTK+1
|
||
3523 04476 7640 SZA CLA /NO - IS THIS HIS OWN PASSWORD?
|
||
3524 04477 5253 JMP CPERR2 /NO - JUST SAY "PROTECTION VIOLATION"
|
||
3525 04500 1065 CPASS1, TAD RETTBL
|
||
3526 04501 3141 DCA FIOSTK /MFD IS ALWAYS FIRST ENTRY
|
||
3527 04502 4502 JMS I DS01 /SEARCH FOR ACCT & PASSWORD IN MFD
|
||
3528 04503 0141 FIOSTK
|
||
3529 04504 5327 JMP CPERR1 /NOT THERE - ERROR!
|
||
3530 04505 3010 DCA INDEX /SAVE THE ENTRY CORE-ADDRESS
|
||
3531 04506 7240 CLA CMA
|
||
3532 04507 1050 TAD FIACCT
|
||
3533 04510 7650 SNA CLA /IS THIS THE MANAGER (#1)?
|
||
3534 04511 5321 JMP CPASS2 /YES - HE CAN CHANGE ANYONE'S PASSWORD
|
||
3535 04512 1010 TAD INDEX /NO - GET THE UFD PROTECTION
|
||
3536 04513 1005 TAD P0004
|
||
3537 04514 3137 DCA CFH
|
||
3538 04515 1537 TAD I CFH
|
||
3539 04516 0341 AND CPBIT /CHECK THE 'CHANGE PASSWORD DISABLE' BIT
|
||
3540 04517 7640 SZA CLA /CAN HE CHANGE HIS OWN PASSWORD?
|
||
3541 04520 5253 JMP CPERR2 /NO - "PROTECTION VIOLATION"
|
||
3542 04521 1145 CPASS2, TAD FIOSTK+4 /YES - SET THE NEW PASSWORD
|
||
3543 04522 3410 DCA I INDEX
|
||
3544 04523 1146 TAD FIOSTK+5
|
||
3545 04524 3410 DCA I INDEX
|
||
3546 04525 4524 SAVBUF /SET THE 'BUFFER CHANGED' SWITCH
|
||
3547 04526 5534 JMP I FIEXIT / AND EXIT
|
||
3548
|
||
3549 04527 7240 CPERR1, CLA CMA
|
||
3550 04530 1050 TAD FIACCT
|
||
3551 04531 7650 SNA CLA /IS THIS THE MANAGER?
|
||
3552 04532 5253 JMP CPERR2 /YES - JUST RETURN ERROR CODE
|
||
3553 04533 1342 TAD CPLOUT /NO - SET UP THE 'LOGOUT' PARMS
|
||
3554 04534 3141 DCA FIOSTK
|
||
3555 04535 1051 TAD FIJOB
|
||
3556 04536 3142 DCA FIOSTK+1
|
||
3557 04537 5740 JMP I .+1 /THEN LOG HIM OUT
|
||
3558 04540 3230 LGO0
|
||
3559
|
||
3560 04541 2000 CPBIT, 2000 /BIT IN UFD PROTECTION - IF SET, PROHIBITS CPASS
|
||
3561 04542 0215 CPLOUT, LOUT
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 84
|
||
|
||
|
||
3562 /THIS HANDLES THE 'BCLR' IOT - THIS ALLOWS THE SYSTEM MANAGER
|
||
3563 /AND THE BILLING SYSTEM TO CLEAR THE BILLING INFORMATION IN
|
||
3564 /THE MFD TO ZEROES. BY USING AN IOT FOR THIS, WE AVOID THE
|
||
3565 /NEED FOR ANY USER PROGRAM TO WRITE INTO THE MFD OR ANY UFD
|
||
3566 /DIRECTLY (THUS AVOIDING ANY CONFLICT WITH FIP). WE THEREFORE
|
||
3567 /NORMALLY SET THE PROTECTION CODES TO PREVENT ANYONE FROM
|
||
3568 /WRITING ANY UFD.
|
||
3569
|
||
3570 04543 4474 BCLR0, CHKACT /IS THIS A PRIVILEGED ACCOUNT?
|
||
3571 04544 7410 SKP /YES
|
||
3572 04545 5253 JMP CPERR2 /NO - SAY "PROTECTION VIOLATION"
|
||
3573 04546 1142 TAD FIOSTK+1
|
||
3574 04547 7650 SNA CLA /DID HE PASS US AN ACCOUNT NUMBER?
|
||
3575 04550 5257 JMP REN2 /NO - BOO, HISS!!
|
||
3576 04551 1065 TAD RETTBL /YES - THE MFD IS ALWAYS THE FIRST ENTRY
|
||
3577 04552 3141 DCA FIOSTK
|
||
3578 04553 7240 CLA CMA /NOW DO A ONE-WORD SEARCH FOR THE ACCOUNT
|
||
3579 04554 4502 JMS I DS01
|
||
3580 04555 0141 FIOSTK
|
||
3581 04556 5257 JMP REN2 /NO FIND - ERROR!!
|
||
3582 04557 1005 TAD P0004
|
||
3583 04560 3010 DCA INDEX /SET THE POINTER TO THE INFORMATION
|
||
3584 04561 3410 DCA I INDEX / AND ZERO THE DEVICE TIME
|
||
3585 04562 3410 DCA I INDEX / AND THE CPU TIME
|
||
3586 04563 4524 SAVBUF /NOW SET THE 'BUFFER CHANGED' SWITCH
|
||
3587 04564 5534 JMP I FIEXIT / AND EXIT
|
||
3588
|
||
3589
|
||
3590 /ROUTINE TO CALCULATE A POINTER INTO 'ENTTBL'.
|
||
3591 /AC = [JOB * 4 + FILEID] * 2 + 'ENTTBL'
|
||
3592 04565 0000 EBLD, 0
|
||
3593 04566 3137 DCA CFH
|
||
3594 04567 1051 TAD FIJOB
|
||
3595 04570 7106 CLL RTL
|
||
3596 04571 1137 TAD CFH
|
||
3597 04572 7004 RAL
|
||
3598 04573 1066 TAD ENTTBL
|
||
3599 04574 5765 JMP I EBLD
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 85
|
||
|
||
|
||
3600 PAGE
|
||
3601 /COMPLETION OF LOGOUT ROUTINE
|
||
3602 /REMOVES JOB FROM PERMANENT MONITOR TABLES
|
||
3603 /MUST BE DONE LAST, SINCE WE NEED THE JOB STATUS BLOCKS
|
||
3604 /TO INDICATE ANY ERRORS IN THE FIP I/O
|
||
3605
|
||
3606 04600 1236 LGO4, TAD LGO500 /RESTORE THE FIP EXIT
|
||
3607 04601 6221 CFLD
|
||
3608 04602 3641 DCA I LGOFIX
|
||
3609 04603 1051 TAD FIJOB /SEE IF HE OWNS ANY CORE FIELDS
|
||
3610 04604 6202 CIF
|
||
3611 04605 4500 CORE /SEARCH CORE TABLE FOR HIM
|
||
3612 04606 0637 SI+FIP+CJOB
|
||
3613 04607 5215 JMP LGO5 /NO; NOTHING TO RELEASE
|
||
3614 04610 0014 AND P0007 /YES; RELEASE THE FIELD
|
||
3615 04611 1041 TAD CORTBA
|
||
3616 04612 3137 DCA CFH /POINTS TO ENTRY IN CORTBL
|
||
3617 04613 6201 CDF
|
||
3618 04614 3537 DCA I CFH /ZERO THE ENTRY
|
||
3619 04615 1051 LGO5, TAD FIJOB /RETURN STATUS BLOCKS
|
||
3620 04616 1071 TAD JOBTBA /START OF JOB TABLE (END OF DEVTBL)
|
||
3621 04617 3242 DCA LGO6 /POINTS TO JOB TABLE ENTRY
|
||
3622 04620 6211 DATFLD
|
||
3623 04621 1642 TAD I LGO6 /GET ADDRESS OF JOB STATUS
|
||
3624 04622 4637 JMS I LGOBLS /RETURN STATUS
|
||
3625 04623 6211 DATFLD
|
||
3626 04624 3455 DCA I JOBDAT /CLEAR JOBDAT
|
||
3627 04625 3642 DCA I LGO6 /CLEAR POINTER IN 'JOBTBL'
|
||
3628 04626 1051 TAD FIJOB
|
||
3629 04627 1240 TAD LGOCLK
|
||
3630 04630 3242 DCA LGO6
|
||
3631 04631 3642 DCA I LGO6 /CLEAR ANY 'CLKTBL' ENTRY
|
||
3632 04632 6201 CDF
|
||
3633 04633 3454 DCA I JOBA /CLEAR JOB (SO SAVJOB WON'T SAVE US)
|
||
3634 04634 3051 DCA FIJOB / AND AVOID MISTAKING US FOR LOGGED-IN
|
||
3635 04635 5636 JMP I .+1 /AND NOW GO DO FIX50
|
||
3636 04636 3645 LGO500, FIX50
|
||
3637 04637 3370 LGOBLS, RETBLS
|
||
3638 04640 2722 LGOCLK, CLKTBL
|
||
3639 04641 3644 LGOFIX, FIX500
|
||
3640 04642 0000 LGO6, 0
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 86
|
||
|
||
|
||
3641 /
|
||
3642 /ROUTINE TO HANDLE THE LOGOUT IOT WHEN THE PASSED AC = 0.
|
||
3643 /WE COUNT UP THE NUMBER OF ADDITIONAL USERS ON THIS ACCOUNT.
|
||
3644 04643 1142 LGO1, TAD FIOSTK+1 /LOGOUT WITH AC = 0?
|
||
3645 04644 7640 SZA CLA
|
||
3646 04645 5535 JMP I LGI201 /NO, SO IT'S AN ERROR
|
||
3647 04646 1305 TAD LGOMAX /YES - COUNT # OF OTHER USERS
|
||
3648 04647 3303 DCA LGOCNT / OF HIS ACCOUNT #
|
||
3649 04650 1071 TAD DEVOVR /ADDRESS OF JOBTBL
|
||
3650 04651 3055 DCA JOBDAT /INITIALIZE 'JOBDAT' TO LOOK AT ALL JOBS
|
||
3651 04652 3046 DCA FIUSAC /ZERO 'FIND' COUNTER
|
||
3652 04653 2055 LGOLP, ISZ JOBDAT
|
||
3653 04654 6211 DATFLD
|
||
3654 04655 1455 TAD I JOBDAT
|
||
3655 04656 6221 CFLD
|
||
3656 04657 7650 SNA CLA /IS THE JOB SLOT IN USE?
|
||
3657 04660 5273 JMP LGOLPE /NO - ON TO THE NEXT
|
||
3658 04661 4506 FGETJT /GET LOCATION OF USER'S ACCOUNT NUMBER
|
||
3659 04662 0015 JOBACT
|
||
3660 04663 3137 DCA CFH
|
||
3661 04664 6211 DATFLD
|
||
3662 04665 1537 TAD I CFH /PICK UP THE ACCOUNT NUMBER
|
||
3663 04666 6221 CFLD
|
||
3664 04667 7041 CIA
|
||
3665 04670 1050 TAD FIACCT
|
||
3666 04671 7650 SNA CLA /SAME AS OURS?
|
||
3667 04672 2046 ISZ FIUSAC /YES - INCREMENT COUNT
|
||
3668 04673 2303 LGOLPE, ISZ LGOCNT
|
||
3669 04674 5253 JMP LGOLP /CONTINUE
|
||
3670 04675 7240 CLA CMA
|
||
3671 04676 1046 TAD FIUSAC /NOW DISCOUNT OUR OWN JOB
|
||
3672 04677 3046 DCA FIUSAC
|
||
3673 04700 1304 TAD LGODAT /THEN RESTORE JOBDAT
|
||
3674 04701 3055 DCA JOBDAT
|
||
3675 04702 5534 JMP I FIEXIT
|
||
3676
|
||
3677 04703 0000 LGOCNT, 0
|
||
3678 04704 0020 LGODAT, CJOBDA
|
||
3679 04705 7754 LGOMAX, -JOBMAX
|
||
3680
|
||
3681
|
||
3682 /ROUTINE TO CLOSE ANY SPECIAL (ACCOUNT 7) FILES LEFT OPEN.
|
||
3683 04706 0000 PRVCLS, 0
|
||
3684 04707 1036 TAD C7774
|
||
3685 04710 3303 DCA PCNUM /SET FOR 4 FILES
|
||
3686 04711 1303 PRVCL1, TAD PCNUM
|
||
3687 04712 1005 TAD P0004
|
||
3688 04713 4403 JMS I LNK01 /GET THE FILE CONTROL-BLOCK
|
||
3689 04714 7450 SNA
|
||
3690 04715 5327 JMP PRVCL2
|
||
3691 04716 1006 TAD FILPRP
|
||
3692 04717 3137 DCA CFH /NOW POINTS TO THE PROTECTION & PRIVILEGE WORD
|
||
3693 04720 1537 TAD I CFH
|
||
3694 04721 7110 CLL RAR
|
||
3695 04722 7620 SNL CLA /IS THIS A PRIVILEGED FILE?
|
||
3696 04723 5327 JMP PRVCL2 /NO
|
||
3697 04724 1303 TAD PCNUM
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 87
|
||
|
||
|
||
3698 04725 1005 TAD P0004
|
||
3699 04726 4477 JMS I CL01 /YES - CLOSE IT
|
||
3700 04727 2303 PRVCL2, ISZ PCNUM
|
||
3701 04730 5311 JMP PRVCL1
|
||
3702 04731 5706 JMP I PRVCLS
|
||
3703 /
|
||
3704 4703 PCNUM= LGOCNT
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 88
|
||
|
||
|
||
3705 /
|
||
3706 /ROUTINE TO GET THE NUMBER OF A DEVICE ATTACHED TO THIS JOB
|
||
3707 /CALLING SEQUENCE:
|
||
3708 / JMS LNS0
|
||
3709 / RETURN IF NONE AVAILABLE
|
||
3710 / NORMAL RETURN (LINE NUMBER IN AC)
|
||
3711
|
||
3712 04732 0000 LNS0, 0
|
||
3713 04733 1062 TAD DEVTBA /GLOBAL TO "DEVTBL"
|
||
3714 04734 3137 DCA CFH
|
||
3715 04735 6211 DATFLD /CDF FIELD 0
|
||
3716 04736 1537 LNS4, TAD I CFH /PICK UP POINTER TO DDB
|
||
3717 04737 7450 SNA
|
||
3718 04740 5351 JMP LNS2 /DEVICE UNASSIGNED
|
||
3719 04741 7001 IAC
|
||
3720 04742 3303 DCA LNS3 /POINTER TO SECOND WORD OF DDB
|
||
3721 04743 1703 TAD I LNS3
|
||
3722 04744 0016 AND P0037 /PICK OFF THE JOB NUMBER OF OWNER
|
||
3723 04745 7041 CIA
|
||
3724 04746 1051 TAD FIJOB /NUMBER OF CURRENT JOB
|
||
3725 04747 7650 SNA CLA
|
||
3726 04750 5361 JMP LNS5 /THIS DEVICE IS OURS
|
||
3727 04751 2137 LNS2, ISZ CFH
|
||
3728 04752 1137 TAD CFH
|
||
3729 04753 7040 CMA
|
||
3730 04754 1071 TAD DEVOVR /GLOBAL TO "JOBTBL"
|
||
3731 04755 7640 SZA CLA
|
||
3732 04756 5336 JMP LNS4 /CONTINUE LOOKING DOWN TABLE
|
||
3733 04757 6221 LNS7, CFLD /MAKE SURE WE ARE IN THIS FIELD
|
||
3734 04760 5732 JMP I LNS0 /FOUND NO DEVICES
|
||
3735
|
||
3736 04761 1063 LNS5, TAD DEVEND
|
||
3737 04762 7041 CIA
|
||
3738 04763 1137 TAD CFH
|
||
3739 04764 7500 SMA
|
||
3740 04765 5372 JMP LNS6
|
||
3741 04766 1375 TAD LNS10
|
||
3742 04767 7110 CLL RAR
|
||
3743 04770 2332 LNS8, ISZ LNS0
|
||
3744 04771 5357 JMP LNS7
|
||
3745
|
||
3746 04772 1374 LNS6, TAD C4000
|
||
3747 04773 5370 JMP LNS8
|
||
3748
|
||
3749 04774 4000 C4000, 4000
|
||
3750 04775 0040 LNS10, DEVTBE-DEVTBL
|
||
3751 4703 LNS3= LGOCNT
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 89
|
||
|
||
|
||
3752
|
||
3753 PAGE
|
||
3754
|
||
3755 /HERE WE CHECK FOR OTHER JOBS NEEDING 'FIP' TO TRY AND
|
||
3756 /MINIMIZE THE NUMBER OF TIMES FIP NEEDS TO BE SWAPPED IN.
|
||
3757
|
||
3758 05000 1240 FIXSCH, TAD FIXJMX
|
||
3759 05001 7650 SNA CLA /HAVE WE ALREADY EXHAUSTED OUR PRIORITY RIGHTS?
|
||
3760 05002 5234 JMP FIXOUT /YES
|
||
3761 05003 1051 TAD FIJOB
|
||
3762 05004 1071 TAD JOBTBA
|
||
3763 05005 3010 DCA INDEX
|
||
3764 05006 6211 DATFLD
|
||
3765 05007 1010 FIXSC1, TAD INDEX
|
||
3766 05010 1242 TAD FIXSTE
|
||
3767 05011 7640 SZA CLA /REACHED END OF THE JOBTBL?
|
||
3768 05012 5215 JMP .+3
|
||
3769 05013 1071 TAD JOBTBA /YES - RESET THE POINTER AT THE BEGINNING
|
||
3770 05014 3010 DCA INDEX
|
||
3771 05015 1410 TAD I INDEX
|
||
3772 05016 7450 SNA /IS THERE A JOB IN THIS SLOT?
|
||
3773 05017 5232 JMP FIXSC2 /NO
|
||
3774 05020 7001 IAC
|
||
3775 05021 3137 DCA CFH /YES - SET POINTER TO STR0 (JOBSTS)
|
||
3776 05022 1537 TAD I CFH
|
||
3777 05023 0241 AND FIXSJS
|
||
3778 05024 7650 SNA CLA /IS THE JOB WAITING FOR 'FIP'?
|
||
3779 05025 5232 JMP FIXSC2 /NO
|
||
3780 05026 1071 TAD JOBTBA
|
||
3781 05027 7041 CIA
|
||
3782 05030 1010 TAD INDEX /YES - GET HIS JOB NUMBER
|
||
3783 05031 5234 JMP FIXOUT / AND EXIT (SETTING 'FIPJOB')
|
||
3784 05032 2240 FIXSC2, ISZ FIXJMX
|
||
3785 05033 5207 JMP FIXSC1
|
||
3786
|
||
3787 /ALL DONE - SET (OR CLEAR) 'FIPJOB' IN FIELD 0 AND EXIT.
|
||
3788 05034 6203 FIXOUT, CIF CDF
|
||
3789 05035 3637 DCA I FIPJBA
|
||
3790 05036 5532 WAIT
|
||
3791
|
||
3792 05037 0057 FIPJBA, FIPJOB
|
||
3793 05040 7754 FIXJMX, -JOBMAX /GETS CLOBBERED, BUT RESET EVERY TIME FIP IS RELOADED
|
||
3794 05041 0100 FIXSJS, JSIOT
|
||
3795 05042 5057 FIXSTE, -JOBTBL-JOBMAX
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 90
|
||
|
||
|
||
3796
|
||
3797 /ROUTINE TO CHECK THE USERS 'PRIVILEGE' FLAG AND SKIP IF SET.
|
||
3798
|
||
3799 05043 0000 CHKPV0, 0
|
||
3800 05044 4506 FGETJT /GET HIS STR0 LOCATION
|
||
3801 05045 0000 JOBSTS
|
||
3802 05046 3137 DCA CFH
|
||
3803 05047 6211 DATFLD
|
||
3804 05050 1537 TAD I CFH
|
||
3805 05051 0305 AND CHKJSP
|
||
3806 05052 7640 SZA CLA /IS HE PRIVILEGED NOW?
|
||
3807 05053 2243 ISZ CHKPV0 /YES - SKIP ON RETURN
|
||
3808 05054 6221 CFLD
|
||
3809 05055 5643 JMP I CHKPV0
|
||
3810
|
||
3811 /SUBROUTINE TO CHECK THE FILE EXTENSION AND POSSIBLY
|
||
3812 /SET THE PRIVILEGE BIT FOR THIS JOB.
|
||
3813
|
||
3814 05056 0000 OPNPV0, 0
|
||
3815 05057 1550 TAD I OPNBUF /GET THE FILE PROTECTION CODE
|
||
3816 05060 0033 AND C7700
|
||
3817 05061 1304 TAD OPNSVP
|
||
3818 05062 7640 SZA CLA /IS EXTENSION .SVP (34)?
|
||
3819 05063 5656 JMP I OPNPV0 /NO - JUST RETURN
|
||
3820 05064 7344 CLA CLL CMA RAL
|
||
3821 05065 1147 TAD OPNACT
|
||
3822 05066 7650 SNA CLA /IS THE FILE FROM THE SYSTEM LIBRARY?
|
||
3823 05067 4476 CHKSRC /YES - WHO CALLED US?
|
||
3824 05070 5656 JMP I OPNPV0 /A USER - CAN'T SET 'PRIVILEGE'
|
||
3825 05071 4506 FGETJT /'SI' - GET THE JOB STATUS-WORD
|
||
3826 05072 0000 JOBSTS
|
||
3827 05073 3137 DCA CFH
|
||
3828 05074 6211 DATFLD
|
||
3829 05075 1305 TAD OPNJSP
|
||
3830 05076 7040 CMA
|
||
3831 05077 0537 AND I CFH /CLEAR THE 'PRIVILEGE' BIT
|
||
3832 05100 1305 TAD OPNJSP / AND THEN SET IT
|
||
3833 05101 3537 DCA I CFH
|
||
3834 05102 6221 CFLD
|
||
3835 05103 5656 JMP I OPNPV0 /THEN JUST RETURN
|
||
3836
|
||
3837 05104 4400 OPNSVP, -3400 /.SVP FILE EXTENSION
|
||
3838 CHKJSP,
|
||
3839 05105 0400 OPNJSP, JSPRIV
|
||
3840
|
||
3841 /WE GET HERE WHEN THE 'UFD' HE TRIED TO OPEN DIDN'T
|
||
3842 /EXIST. WE GIVE HIM THE NUMBER OF THE NEXT 'UFD'.
|
||
3843
|
||
3844 05106 6211 OPNR01, DATFLD
|
||
3845 05107 1452 TAD I FIOPTR /GET THE PARAMETER BLOCK
|
||
3846 05110 3150 DCA OPNBUF
|
||
3847 05111 1031 TAD C7000
|
||
3848 05112 3550 DCA I OPNBUF /SET THE FINAL AC CONTENTS
|
||
3849 05113 1150 TAD OPNBUF
|
||
3850 05114 1005 TAD P0004
|
||
3851 05115 3150 DCA OPNBUF
|
||
3852 05116 6221 CFLD
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 91
|
||
|
||
|
||
3853 05117 1725 TAD I OPNNXT /GET THE NEXT ACCOUNT
|
||
3854 05120 6211 DATFLD
|
||
3855 05121 3550 DCA I OPNBUF
|
||
3856 05122 1005 TAD P0004 /GET THE NUMBER OF PARAMETERS
|
||
3857 05123 5724 JMP I .+1 / TO RETURN TO THE USER
|
||
3858 05124 2266 INF6
|
||
3859
|
||
3860 05125 2575 OPNNXT, DSNEXT /WORD IN 'DS0'
|
||
3861
|
||
3862 IFZERO .-5200&4000 <GLITCH>
|
||
3863 5200 *5200
|
||
3864 SEGBUF, /SEGMENT-SIZE BUFFER
|
||
3865 5600 *WRDSEG+SEGBUF
|
||
3866 ENTABL, /4 2-WORD ENTRIES PER JOB
|
||
3867 6040 *JOBMAX^10+ENTABL
|
||
3868 UTABLE, /A 2-WORD ENTRY FOR EACH UFD ACCESSED
|
||
3869 6160 *JOBMAX^4+UTABLE
|
||
3870 RTABLE, /1 8-WORD ENTRY FOR EACH 'UTABLE' ENTRY
|
||
3871 6660 *JOBMAX^20+RTABLE
|
||
3872 FIPTOP, /END OF FIP TABLES (EXCEPT 'SAT')
|
||
3873 IFZERO FIPTOP+SATSIZ&4000 <GLITCH>
|
||
3874 7250 *-SATSIZ /START OF DISC ALLOCATION TABLE
|
||
3875 ///// $$$$$
|
||
|
||
No detected errors
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 92
|
||
Symbol Table
|
||
|
||
1 ASD 0040 CHKPV0 05043 CSCF 6133 DS1 02510 ENTABL 05600
|
||
2 ASD1 03511 CHKSR0 01363 CTRLB 0002 DS2 02525 ENTEND 00064
|
||
3 ASD2 03513 CHKSRC 4476 CTRLC 0040 DS3 02541 ENTPTR 02164
|
||
4 ASD3 03530 CINT 6204 CTRLS 4000 DS4 02560 ENTTBL 00066
|
||
5 ASD4 03556 CJOB 0037 CUF 6264 DS5 02562 ERPDEX 0000
|
||
6 ASD5 03560 CJOBDA 0020 D680 0000 DSBSYA 03171 ERPWC 0000
|
||
7 ASDCHK 03570 CL0 01020 D689 0000 DSBUSY 0036 EXBUFP 01720
|
||
8 ASDCLR 03571 CL01 00077 DATA1 2400 DSCNTR 02400 EXFCBP 01731
|
||
9 AUTOST 4201 CL3 01063 DATE 0035 DSENT 02573 EXGE0 01714
|
||
10 BASWIN 00140 CLCNTR 01017 DATEA 01573 DSENTP 02411 EXLAST 01732
|
||
11 BCLR 0220 CLK1 0033 DATFLD 6211 DSI 1000 EXNFRE 01733
|
||
12 BCLR0 04543 CLK1A 02375 DBELL 1000 DSKCNT 02461 EXPROP 01734
|
||
13 BILLNG 0007 CLK2 0034 DC08A 0000 DSKERR 0005 EXSEGC 01735
|
||
14 BLDP 01141 CLK2A 02376 DC08LO 0000 DSKP 6741 EXT 0211
|
||
15 BLDP1 00072 CLKTBL 2722 DCLR 6742 DSKSIZ 0100 EXT0 01600
|
||
16 BLT 4473 CLOCKR 0062 DCSIZE 0000 DSMAX 02574 EXT1 01737
|
||
17 BLT0 5200 CLOS 0202 DDBBRK 0002 DSNEXT 02575 EXT10 01725
|
||
18 BRDMAX 0012 CLS0 01000 DDBINC 0005 DSOBJT 2471 EXT11 02123
|
||
19 BRKINI 4000 CLS1 01003 DDBINP 0004 DSRETS 2472 EXT12 01704
|
||
20 BUFFER 00067 CLSIFN 01016 DDBJN 0001 DSUTBL 3061 EXT20 01630
|
||
21 BUFSTA 00037 CLUFDP 01065 DDBOUC 0006 DSWDNR 2473 EXT21 01641
|
||
22 BUFWRT 00040 CM3770 02733 DDBOUP 0007 DSWORD 02513 EXT3 01612
|
||
23 C0005 00012 CONDBA 0030 DDBSTS 0000 DTALK 0001 EXT30 01723
|
||
24 C0006 00013 CONDDB 0031 DDBTIM 0003 DTAMIN 0002 EXT4 01603
|
||
25 C0010 00015 CONTTY 0001 DE0 04000 DTDEF0 0535 EXT5 01616
|
||
26 C002 0006 CORE 4500 DE01 00101 DTDSF0 0541 EXT6 01626
|
||
27 C0020 0007 CORMEM 0070 DE1 04005 DTDSK 0527 EXT7 01660
|
||
28 C0200 00020 CORSRC 1317 DE2 04020 DTE0 03703 EXT8 01652
|
||
29 C0252 02731 CORTBA 00041 DE3 04022 DTE01 00103 EXWNDP 01736
|
||
30 C0377 03044 CORTBL 7001 DE4 04024 DTE1 03713 F1BUF 0177
|
||
31 C0400 00021 CPASS 0207 DE5 04044 DTE2 03745 F1DTST 2512
|
||
32 C3777 00025 CPASS0 04464 DE6 04046 DTEBAD 03744 F1ECNT 0176
|
||
33 C4000 04774 CPASS1 04500 DE7 04054 DTJOB 0027 F1OFFJ 0036
|
||
34 C6603 00027 CPASS2 04521 DE8 04063 DTL11 0601 F1RTN 0277
|
||
35 C6605 00030 CPBIT 04541 DEBEGG 04121 DTL20 0551 F1TCNT 0175
|
||
36 C7000 00031 CPERR1 04527 DEBUG 0000 DTL21 1004 FANFLD 00042
|
||
37 C7037 02313 CPERR2 04453 DECHO 0020 DTRKHG 3671 FGETJ0 04152
|
||
38 C7400 00032 CPLOUT 04542 DECURR 04114 DUPL 0200 FGETJT 4506
|
||
39 C7637 01140 CPU 0002 DEPTR 04115 DXOFF 3000 FIACCT 00050
|
||
40 C7700 00033 CRBUFP 01562 DERETP 04116 DXON 2000 FIBASE 00043
|
||
41 C7764 02732 CRF 0210 DEVCHK 7045 EAE 0000 FIDEXP 00005
|
||
42 C7771 00035 CRF0 01400 DEVEND 00063 EBLD 04565 FIEXIT 00134
|
||
43 C7773 03170 CRF1 01410 DEVOVR 00071 EBLD0 00104 FIJOB 00051
|
||
44 C7774 00036 CRF2 01451 DEVTBA 00062 ENACNT 02166 FILDA 0004
|
||
45 CDL11 1720 CRFCLR 01551 DEVTBE 2640 ENDBUF 0400 FILINK 00045
|
||
46 CDL21 1704 CRFENT 01566 DEVTBL 2600 ENDIOT 5333 FILPAR 0003
|
||
47 CDR 0000 CRFER1 01536 DEWORD 04026 ENR0 01066 FILPCA 0004
|
||
48 CDVGAP 0003 CRFER2 01540 DFORC 0004 ENR01 01765 FILPCT 0007
|
||
49 CDVIN 0003 CRFER3 01541 DFULL 0400 ENR1 01077 FILPDA 0005
|
||
50 CDVOUT 0004 CRFER4 01543 DHALF 0010 ENRETP 02165 FILPDX 0001
|
||
51 CECI 6131 CRFER5 01545 DLAG 6743 ENS0 02126 FILPFN 0000
|
||
52 CFH 00137 CRFGET 01556 DLCA 6744 ENS01 00105 FILPIF 0002
|
||
53 CFLD 6221 CRFLNK 01567 DLDC 6746 ENS1 02153 FILPRA 0006
|
||
54 CHKAC0 01162 CRFRET 01570 DMAINT 6747 ENS2 02135 FILPRO 0002
|
||
55 CHKACT 4474 CRFSEG 01430 DRST 6745 ENS3 02167 FILPRP 00006
|
||
56 CHKJSP 05105 CRGD11 01571 DS0 02475 ENS31 04117 FILPWC 0003
|
||
57 CHKPRV 4475 CRPROT 01572 DS01 00102 ENSFND 02167 FILRES 0007
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 93
|
||
Symbol Table
|
||
|
||
58 FILSCT 0001 GD0 00350 JOBSRA 0005 LGOENT 03325 OPNER0 00555
|
||
59 FILWC 0006 GD01 00110 JOBSTB 0002 LGOFIX 04641 OPNER1 00561
|
||
60 FILWPT 0000 GD1 00363 JOBSTS 0000 LGOLP 04653 OPNER2 00562
|
||
61 FINF 6613 GDRETP 00053 JOBSWR 0010 LGOLPE 04673 OPNER3 00564
|
||
62 FIO01 00107 GDUFDP 00365 JOBTBA 00071 LGOMAX 04705 OPNEXT 00566
|
||
63 FIO3 03140 GE0 03000 JOBTBL 2675 LGOPRM 03355 OPNFLG 00056
|
||
64 FIO6 03164 GE01 00111 JOBWMK 0003 LGOPTR 03356 OPNFND 00573
|
||
65 FIOPTR 00052 GE3 03036 JSACC 0200 LGORET 03341 OPNJF0 00745
|
||
66 FIORET 03146 GERETP 03040 JSBAT 0100 LIBACT 0002 OPNJSP 05105
|
||
67 FIOSTK 00141 GETB 1400 JSDEL 0100 LIE 6665 OPNNXT 05125
|
||
68 FIP 0400 GETBLK 4512 JSEREN 2000 LIN 0214 OPNPR0 00752
|
||
69 FIP0 00200 GETDB0 1440 JSERR 0002 LLC 6664 OPNPR1 00774
|
||
70 FIP2 00313 GETDDB 4513 JSF0 2000 LNK0 03766 OPNPRT 00574
|
||
71 FIP4 00270 GETJTA 4514 JSF1 1000 LNK01 00003 OPNPRV 00746
|
||
72 FIP5 00272 GETJTB 7200 JSF2 0400 LNK1 03772 OPNPRW 00735
|
||
73 FIP6 00253 GIR00 6200 JSF3 0200 LNKF 03777 OPNPTR 00622
|
||
74 FIPBLK 7720 GTB1 02750 JSHLT 0200 LNS0 04732 OPNPV0 05056
|
||
75 FIPCLR 03676 GTBERR 02747 JSINER 0010 LNS01 03361 OPNR01 05106
|
||
76 FIPDEX 0004 GTBLO1 00115 JSIOT 0100 LNS10 04775 OPNR0A 00575
|
||
77 FIPFIP 0021 GTBLOK 02735 JSIOTC 0040 LNS2 04751 OPNSIZ 00706
|
||
78 FIPFLD 00007 HUNGDV 0006 JSLPT 0040 LNS3 4703 OPNSVP 05104
|
||
79 FIPIO 03120 IFN0 00365 JSPRIV 0400 LNS4 04736 OPNTYP 00531
|
||
80 FIPJBA 05037 IFN01 00116 JSPTP 0004 LNS5 04761 OPNWND 00733
|
||
81 FIPJOB 0057 INCLK1 7000 JSPTR 0010 LNS6 04772 OUTDIF 2200
|
||
82 FIPSFC 00321 INCLK2 0645 JSRSEN 0020 LNS7 04757 OUTIOT 2340
|
||
83 FIPTBS 03677 INDEX 00010 JSRUN 4000 LNS8 04770 OUTREG 0200
|
||
84 FIPTOP 06660 INF0 02200 JSTEL 0020 LOCK 2000 OVER 03175
|
||
85 FIPTR1 03172 INF4 02263 JSTIME 4000 LOGACT 00161 OVERL1 5764
|
||
86 FIPWC 0000 INF5 02252 JSWAIT 0001 LOUT 0215 OVERLA 2364
|
||
87 FIRETP 03174 INF6 02266 K7400 03043 LPC 6666 OVRLA1 0572
|
||
88 FISIOT 03700 INFLD 0020 KL8 0017 LPT 0003 P0003 00011
|
||
89 FITPTR 00226 INIDEX 0010 L2EXIT 4051 LSF 6661 P0004 0005
|
||
90 FIUSAC 00046 INIOTC 02316 L2QTB 7010 LSP 6665 P0007 00014
|
||
91 FIUSPC 00044 INPUTS 0036 L2SF 0041 LSRP 6663 P0037 00016
|
||
92 FIUTBA 03173 INSPTR 02315 L2SV0 0042 MQREG 0001 P0077 00017
|
||
93 FIX0 03600 INUFDP 02314 L2TIM3 2631 MSEGSZ 03066 P0777 00022
|
||
94 FIX1 03607 IODISP 02751 LCF 6662 NFSEGS 5533 P1000 00023
|
||
95 FIX2 03612 IODSPA 00347 LCP 6667 NOHOLD 0140 P2000 00024
|
||
96 FIX20 03621 IOTABL 00324 LGI0 02317 NOTRUN 1000 P5400 00026
|
||
97 FIX21 03641 JCOMBD 1000 LGI20 02372 NULINE 0017 P7770 00034
|
||
98 FIX30 03660 JOB 0062 LGI201 00135 OPEN 6601 PCNUM 4703
|
||
99 FIX40 03666 JOBA 00054 LGIDDB 02315 OPN0 00401 PHONES 0000
|
||
100 FIX50 03645 JOBACT 0015 LGKLUJ 03354 OPN1 00442 PLT 0000
|
||
101 FIX500 03644 JOBDAT 00055 LGO0 03230 OPN10 00723 PRENTP 01137
|
||
102 FIXCNT 03701 JOBDWT 0004 LGO1 04643 OPN11 00724 PRGTBL 2774
|
||
103 FIXJMX 05040 JOBEAE 0014 LGO1A 03357 OPN12 00737 PRIFNU 01136
|
||
104 FIXOUT 05034 JOBERR 0006 LGO2 03343 OPN2 00443 PRINT0 1203
|
||
105 FIXSC1 05007 JOBF0 0020 LGO3 03346 OPN3 00504 PROT 0204
|
||
106 FIXSC2 05032 JOBF1 0021 LGO4 04600 OPN4 00514 PRT0 01105
|
||
107 FIXSCH 05000 JOBF2 0022 LGO4A 03360 OPN5 00543 PRT1 01131
|
||
108 FIXSJS 05041 JOBF3 0023 LGO5 04615 OPN6 00600 PRVCL1 04711
|
||
109 FIXSTE 05042 JOBLNK 0007 LGO500 04636 OPN7 00661 PRVCL2 04727
|
||
110 FLPARB 00151 JOBMAX 0024 LGO6 04642 OPN8 00665 PRVCLS 04706
|
||
111 FRCMAX 0012 JOBREG 0011 LGOBLS 04637 OPN9 00711 PT08 0000
|
||
112 FRECNT 0040 JOBRTH 0017 LGOCLK 04640 OPNACT 0147 PUNCH 0001
|
||
113 FREE 0037 JOBRTM 0016 LGOCNT 04703 OPNBAS 00747 QUANT 7772
|
||
114 FSWP 4000 JOBSCH 0024 LGODAT 04704 OPNBUF 0150 QUEUE0 1473
|
||
|
||
/TSS-8.25 CONFIGURATION FOR UWM Page 94
|
||
Symbol Table
|
||
|
||
115 RBOOT 04170 REL6 04336 SATRL1 02674 UC2 03225 WNSEGC 01343
|
||
116 RC1 0007 REL7 04343 SATRL2 02706 UCENTP 03325 WRDSEG 0400
|
||
117 RCNI 6637 REL8 04357 SATSIZ 0530 UCUFDP 03227 WRITE 01152
|
||
118 RCNO 6635 RELASD 04362 SATSTA 00057 UFDEND 00065 WRT1 00133
|
||
119 RCRA 6632 RELBLK 04363 SATTBL 02657 UFDTBL 00064 WSCHED 3006
|
||
120 RCRB 6634 RELCK1 04366 SAVBF0 01374 UFO0 03400 XOPEN 6606
|
||
121 RCRC 6636 RELCK2 04367 SAVBUF 4524 UFO01 00130 XOPN0 00400
|
||
122 RCRD 6674 RELCLR 04370 SCHED0 3640 UFO1 03506 XOPNSW 00576
|
||
123 RCSD 6671 RELCON 04371 SCL0 03045 UFO10 03433 ZDS1 00004
|
||
124 RCSE 6672 RELDTA 04372 SCL01 00125 UFO2 03436
|
||
125 RCSF 6631 RELDVT 04206 SCL1 03054 UFO3 03414
|
||
126 RCSI 6675 RELINC 02472 SCLPTR 3041 UFO4 03455
|
||
127 RCTF 6677 RELINK 02120 SCLSEG 3042 UFO5 03431
|
||
128 RD0 03025 RELNOW 04365 SEGBUF 05200 UFO6 03470
|
||
129 RD3 03031 RELOAD 3600 SEGCNT 03702 UFO61 04120
|
||
130 RD30 03067 RELREG 04373 SEGMAX 02734 UFOEXT 03464
|
||
131 RD301 00323 RELRTB 04364 SEGSIZ 0021 UFORET 03466
|
||
132 RDCURA 00322 REN 0200 SI 0200 UOBUFP 03470
|
||
133 RDCURR 03042 REN0 04400 SIBRKM 0204 UOUFDP 0136
|
||
134 RDTEMP 03041 REN1 04452 SICLR 4400 UPEEK1 2445
|
||
135 READER 0001 REN2 04457 SICOM 0100 UPTIM1 0174
|
||
136 READFI 3652 RENUCP 04462 SIDATA 0020 UPTIM2 0173
|
||
137 REBOOT 4517 REPRTP 04463 SIDEX 0000 UTABLE 06040
|
||
138 REBUFF 02471 RERETP 02121 SINT 6254 UTPR1 04152
|
||
139 REBUFP 02125 RETB 0600 SIWC 0000 UTPRNU 00136
|
||
140 RED 0212 RETBK1 00002 SKPTBL 0226 UTS0 04121
|
||
141 RED0 02000 RETBKS 03363 SKPTP 0275 UTS01 00131
|
||
142 RED1 02040 RETBLK 4521 SLEEP 2357 UTS1 04125
|
||
143 RED11 01574 RETBLS 03370 SPL 6102 UTS3 04142
|
||
144 RED2 02056 RETTBL 00065 STOMIN 0005 UTUPTR 0136
|
||
145 RED3 02107 REWNDC 02473 SUF 6274 UUCDR 1735
|
||
146 RED30 02400 RF08 0000 SWDEX 0005 UUDF 0172
|
||
147 RED301 03362 RFILE 6603 SWPRER 0002 UUDTRK 1415
|
||
148 RED302 02124 RINGIN 0304 SWPWER 0003 UUOERF 0001
|
||
149 RED31 02411 RK05 0001 TABOUT 03351 UUOERR 4404
|
||
150 RED32 02406 RK8E 0000 TABSTA 00060 UUOEX1 0336
|
||
151 RED33 02440 RKDV 6740 TC01 0001 VERNUM 0031
|
||
152 RED34 02456 RKJOB 0045 TD8E 0000 WAIT 5532
|
||
153 RED35 02461 RKL11 2000 TF0 03745 WFILE 6605
|
||
154 RED37 02426 RKL20 3676 TF01 00126 WINBAS 7730
|
||
155 RED4 02110 RKL21 1615 TF1 03761 WNCURS 01344
|
||
156 RED40 02112 RS08 0001 TFCNTR 03772 WND0 01200
|
||
157 RED5 02065 RTABLE 06160 TFUFDP 03766 WND10 01257
|
||
158 RED6 02024 SAT1 02614 TICMIN 2260 WND11 01267
|
||
159 REDGD1 02111 SAT2 02625 TICSPS 0024 WND13 01273
|
||
160 REDO0 4172 SAT3 02636 TIMCDR 2621 WND20 01345
|
||
161 REDPTR 02070 SATBOT 00070 TIMER0 2200 WND201 02474
|
||
162 REENTP 04461 SATCNT 02654 TLKMAX 0012 WND30 01327
|
||
163 REL 0042 SATCT2 02655 TRUKBD 0012 WND5 01324
|
||
164 REL0 04200 SATEMP 02655 TS8DEX 0030 WND6 01311
|
||
165 REL00 04204 SATFIX 02652 TTCHAR 0032 WNDCNT 01342
|
||
166 REL01 00120 SATL1 00122 TTYEVE 0001 WNDIRP 01276
|
||
167 REL1 04260 SATLOK 02600 TTYTBA 02377 WNDPTR 01300
|
||
168 REL2 04271 SATMSK 02656 TTYTBL 2747 WNDREM 00061
|
||
169 REL3 04311 SATPNT 02653 UC0 03200 WNENTP 01340
|
||
170 REL4 04322 SATR1 00123 UC01 00127 WNFCBP 01337
|
||
171 REL5 04324 SATREL 02660 UC1 03221 WNRETP 01341
|