Commit | Line | Data |
---|---|---|
7af5ad59 PH |
1 | /DIRECT V3D FOR OS/78 V1A AND OS/8 V3D |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION | |
12 | / | |
13 | / | |
14 | / | |
15 | / | |
16 | / | |
17 | / | |
18 | / | |
19 | / | |
20 | / | |
21 | / | |
22 | /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE | |
23 | /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT | |
24 | /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY | |
25 | /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. | |
26 | / | |
27 | /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER | |
28 | /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED | |
29 | /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH | |
30 | /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. | |
31 | / | |
32 | /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE | |
33 | /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY | |
34 | /DIGITAL. | |
35 | / | |
36 | / | |
37 | / | |
38 | / | |
39 | / | |
40 | / | |
41 | / | |
42 | / | |
43 | / | |
44 | / | |
45 | \f/JANUARY 17, 1974 H.J. | |
46 | / | |
47 | /5-AUGUST-1975 MAINT. RELEASE CHANGES S.R. | |
48 | /1. UPDATED COPYRIGHT DATE | |
49 | /2. CHANGED VERSION NUMBER TO V4 | |
50 | /3. INCORPORATED PATCH (SEQ #2) OF FEB 1975 DSN | |
51 | / (FIXES BUG RE: DEFAULTING TO TTY: AND DSK:) | |
52 | / | |
53 | / 5-APR-77 MH OS/78 FIXES (V5A) | |
54 | / 18-MAY-77 MH SPR 2286 (V6A) | |
55 | / | |
56 | /DIRECTORY LISTING PROGRAM | |
57 | / | |
58 | / START ADDRESS 14600; JSW 6403 | |
59 | / | |
60 | ||
61 | PTR=20 | |
62 | CNT=21 | |
63 | INFPTR=22 | |
64 | OUHAND=23 | |
65 | INHAND=24 | |
66 | EPTR=26 | |
67 | INSCNT=27 | |
68 | TEMP=30 | |
69 | OKFLAG=31 | |
70 | IFCNT=32 | |
71 | OSWTCH=33 | |
72 | INFWDS=34 | |
73 | BDPTR=35 | |
74 | GPTR1=36 | |
75 | ||
76 | ||
77 | XR=10 | |
78 | XR1=11 | |
79 | XR2=12 | |
80 | ||
81 | ||
82 | AC2=CLA CLL CML RTL | |
83 | AC4000=CLA CLL CML RAR | |
84 | ACM2=CLA CLL CMA RAL | |
85 | ACM3=CLA CLL CMA RTL | |
86 | ||
87 | ||
88 | ALTOPT=7642 | |
89 | OPT1=7643 | |
90 | OPT2=7644 | |
91 | EQLS=7646 /EQUALS OPTION | |
92 | DATE=7666 | |
93 | BIPCCL=7777 /CONTAINS DATE EXTENSION IN BITS 3 AND 4 (MH) | |
94 | BUF=5200 /THE FILE OUTPUT BUFFER | |
95 | /5 BLOCKS LONG, TO 7577 | |
96 | ||
97 | \f | |
98 | FIELD 1 | |
99 | *2000 | |
100 | SKP CLA /NORMAL ENTRY | |
101 | JMP MSTRT /CHAIN ENTRY | |
102 | CDCALL, JMS I (200 /SEE WHAT THE PERSON WANTS | |
103 | 5 | |
104 | STAR, 5200 /IN SPECIAL MODE | |
105 | ||
106 | MSTRT, TAD I (OPT2 /GET OPTION /W | |
107 | RTR | |
108 | SNL CLA /SKIP FOR VESION NUMBER | |
109 | JMP EQUALT | |
110 | JMS I (ERROR /PRINT VERSION NUMBER | |
111 | VERNO+40 | |
112 | TAD (215 | |
113 | JMS I (TYPE | |
114 | ||
115 | /SET UP FOR MULTIPLE ENTRIES ON A LINE | |
116 | ||
117 | EQUALT, TAD I (EQLS /EQUALS OPTION WORD | |
118 | SPA /MUST BE POSITIVE | |
119 | CLA CLL CML RTR /SET AC LARGE POSITIVE | |
120 | TAD (-10 /CHECK LEGALITY OF OPTION | |
121 | SMA SZA CLA /SKIP IF GOOD | |
122 | JMP BADEQ | |
123 | ||
124 | /SUBSTITUTE .DI IF NULL EXTENSION | |
125 | ||
126 | TAD I (7604 /GET EXTENSION | |
127 | SNA /SKIP IF GIVEN | |
128 | TAD (0411 /.DI | |
129 | DCA I (7604 /PUT EXTENSION BACK | |
130 | ||
131 | / GET THE DATE INCREMENT BITS | |
132 | ||
133 | CDF 0 /GET GET WORD FORM FIELD 0(MH) | |
134 | TAD I (BIPCCL /THE BITS WITH DATE EXT. ARE 3 AND 4 (MH) | |
135 | CDF 10 /BACK TO FIELD 1 (MH) | |
136 | RTR /SHIFT THOSE BITS SO THEY CREATE A 0,10,20, OR 30(MH) | |
137 | RTR /AFTER MASKING (MH) | |
138 | AND (0030 /MASK (MH) | |
139 | DCA DATINC /SAVE THE DATE EXTENSION (MH) | |
140 | ||
141 | / CHECK FOR ? IN OUTPUT SPECIFICATION | |
142 | TAD (-10 | |
143 | DCA CNT /CNT HAVING -10 PUTS US AT FIRST CHAR | |
144 | S1C, TAD (7605 | |
145 | JMS I (GTSXBT /GET A CHAR | |
146 | TAD (-"?!7700 /CHECK FOR ? | |
147 | SNA | |
148 | JMP QINO | |
149 | TAD ("?-"* | |
150 | SNA CLA | |
151 | JMP AINO | |
152 | ISZ CNT | |
153 | JMP S1C | |
154 | ||
155 | ||
156 | / CHECK FOR EMBEDDED * IN ANY SPECIFICATION | |
157 | TAD (7605 | |
158 | S4L, DCA PTR | |
159 | TAD (-10 | |
160 | DCA CNT | |
161 | ACK, TAD PTR | |
162 | JMS I (GTSXBT | |
163 | TAD (-"*!7700 | |
164 | SZA CLA | |
165 | JMP CNTUP | |
166 | AC2 | |
167 | TAD CNT | |
168 | SZA | |
169 | TAD (6 | |
170 | SNA CLA | |
171 | ISZ CNT | |
172 | TAD PTR | |
173 | JMS I (GTSXBT | |
174 | SZA CLA | |
175 | JMP AINO | |
176 | CNTUP, ISZ CNT | |
177 | JMP ACK | |
178 | TAD I PTR | |
179 | SNA CLA | |
180 | JMP I (NULLCK | |
181 | TAD (5 | |
182 | TAD PTR | |
183 | JMP S4L | |
184 | ||
185 | /THIS IS THE END OF OPERATION CODE | |
186 | /IT CLOSES THE FILE AND HANDLES RETURNS | |
187 | ||
188 | ENDCHK, ISZ I (ECHO | |
189 | TAD (232 | |
190 | OLOOP, JMS I (OUTCHR | |
191 | TAD I (OUWDCT /GET -WORDS LEFT IN BUFFER | |
192 | AND (177 /CHECK AGAINST NEW BUFFER # | |
193 | SNA /SPR 2286, CHECK CAREFULLY (MH) | |
194 | TAD RPOS /TO SEE IF ANY TRAILING (MH) | |
195 | CIA /OR DANGLING CHARS (MH) | |
196 | TAD (RPOS-1 /ARE LEFT OVER (MH) | |
197 | SZA!CLA /(MH) | |
198 | JMP OLOOP /KEEP GOING TO DUMP ONE | |
199 | TAD I (OUWDCT | |
200 | TAD (1200 /DONT DUMP IF AT END | |
201 | SZA CLA | |
202 | JMS DUMP /DUMP BUFFER | |
203 | TAD I (7600 | |
204 | JMS I (200 | |
205 | 4 | |
206 | 7601 | |
207 | CLEN, 0 | |
208 | JMP CLOERR | |
209 | JMP ABORT /CODE MOVED TO ANOTHER PAGE (MH) | |
210 | ||
211 | PAGE | |
212 | \f | |
213 | NULLCK, TAD (7201 | |
214 | DCA AO2 | |
215 | TAD (7201 | |
216 | DCA AO1 | |
217 | TAD I (7600 | |
218 | SNA | |
219 | JMP TTYHND | |
220 | JMS I (200 | |
221 | 1 | |
222 | AO1, 7201 | |
223 | HLT | |
224 | TAD AO1 | |
225 | JMP CMN | |
226 | TTYHND, TAD (2424 | |
227 | DCA TTY1 | |
228 | TAD (3100 | |
229 | DCA TTY2 | |
230 | JMS I (200 | |
231 | 1 | |
232 | TTY1, 0 | |
233 | TTY2, 0 | |
234 | AO2, 7201 | |
235 | JMP I (IDBLVT | |
236 | TAD TTY2 | |
237 | DCA I (7600 | |
238 | TAD AO2 | |
239 | CMN, DCA OUHAND | |
240 | TAD (7601 | |
241 | DCA BLCK | |
242 | TAD I (7600 | |
243 | JMS I (200 | |
244 | 3 | |
245 | BLCK, 7601 | |
246 | LENGTH, 0 | |
247 | JMP I (NOROOM | |
248 | TAD BLCK | |
249 | DCA I (BLCKN | |
250 | TAD (BUF | |
251 | DCA I (OCPTR | |
252 | TAD (RPOS-1 /SPR 2286 (MH) | |
253 | DCA I (RPOS | |
254 | TAD (-1200 /NUMBER OF WORDS IN BUFFER | |
255 | DCA I (OUWDCT | |
256 | DCA I (CLEN | |
257 | TAD I (7605 | |
258 | SNA | |
259 | JMP FINDSK /V3C IF NO DEVICE SPECIFIED, LOOKUP 'DSK' | |
260 | SETDEV, DCA I (7605 | |
261 | TAD (7605 | |
262 | DOMOIN, DCA INFPTR | |
263 | TAD (6601 | |
264 | DCA AI1 | |
265 | TAD I INFPTR | |
266 | SNA | |
267 | JMP I (ENDCHK | |
268 | JMS I (200 | |
269 | 1 | |
270 | AI1, 6601 | |
271 | HLT | |
272 | TAD AI1 | |
273 | DCA INHAND | |
274 | TAD (OUTCHR | |
275 | DCA OSWTCH | |
276 | JMS I (CRLF | |
277 | TAD I (DATE | |
278 | DCA I (DATNOW /SAVE CURRENT DATE (MH) | |
279 | TAD I (DATE /GET DATE BACK INTO AC (MH) | |
280 | JMS I (PDATE | |
281 | JMS I (CRLF | |
282 | JMS I (CRLF | |
283 | DCA I (ECOUNT | |
284 | CMA | |
285 | TAD I (EQLS | |
286 | SMA /SET UP NEGATIVE COUNT | |
287 | CMA | |
288 | DCA I (ALNCNT /SAVE FOR LATER | |
289 | TAD I (ALNCNT /SAVE FOR LATER | |
290 | DCA I (LNCNT /SAVE FOR LATER | |
291 | JMP I (PG1 | |
292 | ||
293 | AINO, JMS I (ERROR | |
294 | ILLA+40 | |
295 | JMP EOLIN | |
296 | QINO, JMS I (ERROR | |
297 | ILLQ+40 | |
298 | EOLIN, TAD (215 /COME HERE TO ABORT DIRECTORY | |
299 | JMS I (TYPE /AND PRINT CRLF | |
300 | JMP I (ABORT /ABORT OPERATION AND GOTO ENDUP | |
301 | ||
302 | FINDSK, DCA XX /V3C | |
303 | JMS I (200 /CALL USR | |
304 | 12 /TO DO AN INQUIRE | |
305 | 5723 /TO LOCATE 'DSK' | |
306 | XX, 0 | |
307 | 0 | |
308 | JMP I (IDBLVT /NO 'DSK' IMPOSSIBLE (SO SAY NO 'TTY') | |
309 | TAD XX /RETURN DEVICE NUMBER OF DSK | |
310 | JMP SETDEV | |
311 | PAGE | |
312 | \f DIRCTY=0 /LOCATION OF INPUT DIRECTORY | |
313 | ||
314 | PG1, TAD I INFPTR | |
315 | TAD (7757 | |
316 | DCA TEMP | |
317 | TAD I TEMP | |
318 | SMA CLA | |
319 | JMP NFIN | |
320 | CIF 0 | |
321 | JMS I INHAND | |
322 | 1400 | |
323 | DIRCTY | |
324 | 1 | |
325 | JMP INDERR | |
326 | CDF 0 /CODE TO CHECK FOR | |
327 | TAD I (DIRCTY /LEGALITY OF DIRECTORY | |
328 | CMA CLL | |
329 | TAD I (DIRCTY+2 | |
330 | CDF 10 | |
331 | SNL | |
332 | TAD (7700 | |
333 | SZL CLA | |
334 | JMP BIDIR /DIRECTORY IS BAD | |
335 | ||
336 | / COUNT NUMBER OF INPUTS FROM SAME DEVICE | |
337 | TAD INFPTR | |
338 | SKP | |
339 | GETCNT, TAD PTR | |
340 | IAC | |
341 | DCA PTR | |
342 | TAD I PTR | |
343 | SZA CLA | |
344 | JMP NOSUB | |
345 | TAD (5200 | |
346 | DCA I PTR | |
347 | TAD (3 | |
348 | TAD PTR | |
349 | DCA TEMP | |
350 | TAD (5200 | |
351 | DCA I TEMP | |
352 | NOSUB, TAD PTR | |
353 | TAD (4 | |
354 | DCA PTR | |
355 | ISZ CNT | |
356 | TAD I (OPT2 | |
357 | AND (10 | |
358 | SZA CLA | |
359 | JMP NOPTIM | |
360 | TAD I PTR | |
361 | CIA | |
362 | TAD I INFPTR | |
363 | SNA CLA | |
364 | JMP GETCNT | |
365 | NOPTIM, TAD CNT | |
366 | CIA | |
367 | DCA INSCNT | |
368 | TAD PTR | |
369 | DCA I (MOIN | |
370 | DCA BDPTR | |
371 | JMP I (NBLOCK | |
372 | ||
373 | BIDIR, JMS I (ERROR | |
374 | BADDIR+40 | |
375 | JMP I (EOLIN | |
376 | NFIN, JMS I (ERROR | |
377 | NFLEIN+40 | |
378 | JMP I (EOLIN | |
379 | INDERR, JMS I (ERROR | |
380 | BADIRD+40 | |
381 | JMP I (EOLIN | |
382 | ||
383 | /THIS IS THE ERROR MESSAGE PRINTER | |
384 | ||
385 | ERROR, 0 | |
386 | ISZ I (ECHO | |
387 | CLA CLL | |
388 | TAD (TYPE | |
389 | DCA OSWTCH | |
390 | TAD (-100 | |
391 | DCA CNT | |
392 | PLOOP, TAD I ERROR | |
393 | JMS I (GTSXBT | |
394 | DCA DFLAG | |
395 | TAD DFLAG | |
396 | JMS I (CONVTP | |
397 | ISZ CNT | |
398 | TAD DFLAG | |
399 | SZA CLA | |
400 | JMP PLOOP | |
401 | ISZ ERROR | |
402 | JMP I ERROR | |
403 | ||
404 | DFLAG, 0 | |
405 | ABORT, TAD I (ALTOPT /MOVED (MH) | |
406 | SMA CLA | |
407 | JMP I (CDCALL | |
408 | CIF CDF 0 | |
409 | JMP I (7605 | |
410 | BADEQ, JMS I (ERROR | |
411 | BIGEQ+40 | |
412 | JMP I (EOLIN | |
413 | ||
414 | PAGE | |
415 | \f | |
416 | /THIS IS THE SUPERQUASIFACETED DIRECTORY PATTERN MATCHING ROUTINE | |
417 | ||
418 | /THE INPUT DIRECTORY IS SEARCHED HERE, IF A MATCH | |
419 | /IS FOUND USING THE INPUT GROUPING | |
420 | /GOT1 GETS CONTROL WITH -BLOCKS IN THE AC | |
421 | ||
422 | NBLOCK, TAD BDPTR /POINTER TO START OF DIR BLOCK | |
423 | DCA XR | |
424 | CDF 0 | |
425 | TAD I XR /GET BLOCK NUMBER FIRST FILE | |
426 | DCA BLOCK | |
427 | TAD I XR /NEXT SEGMENT NUMBER | |
428 | DCA LFLAG /IF IT 0 WE AT END | |
429 | ISZ XR /SKIP TENTATIVE FILE WORD | |
430 | TAD I XR /GET -NUMBER OF INFO WORDS | |
431 | CIA /MAKE POSITVE | |
432 | DCA INFWDS | |
433 | TAD XR /POINT TO FIRST | |
434 | IAC /ENTRY | |
435 | DCA EPTR | |
436 | ||
437 | BLOOP, TAD I EPTR /GET FILENAME WORD | |
438 | CDF 10 | |
439 | SNA CLA /SKIP IF FILE HERE | |
440 | JMP EMPTY /NO... ITS REALLY AN EMPTY | |
441 | TAD INSCNT /SET NUMBER OF INPUT TO LOOK | |
442 | DCA NCNT /AT ALL AT ONCE | |
443 | DCA MATFLG /CLEAR MATCH FLAG | |
444 | TAD INFPTR /ADDRESS OF FIRST INPUT | |
445 | SKP | |
446 | MN1, TAD GPTR2 /ADDRESS OF CURRENT INPUT | |
447 | TAD (5 /GTSXBT SUBR REQUIRES US TO | |
448 | DCA GPTR2 /POINT TO END OF FIELD | |
449 | TAD EPTR /POINT DIRECTORY POINTER TO | |
450 | TAD (4 /END OF ENTRY FOR SAME REASON | |
451 | DCA GPTR1 | |
452 | TAD GPTR1 /SET EPNEXT TO POINT TO | |
453 | TAD INFWDS /MINUS NUMBER OF BLOCKS IN | |
454 | DCA EPNEXT /FILE WORD | |
455 | TAD (-10 /NUMBER OF CHARS TO LOOK AT | |
456 | WILDNM, DCA CNT | |
457 | \f | |
458 | MLP, TAD GPTR2 /OK - GET A CHARACTER FROM | |
459 | JMS I (GTSXBT /STRING | |
460 | TAD (-"*!7700 /IS IT AN * | |
461 | SNA /SKIP IF NOT * | |
462 | JMP WILDA /YEP... ITS A WILD CARD | |
463 | TAD ("*-"? /IS IT A ? | |
464 | SNA /SKIP IF NOT | |
465 | JMP WILD /YES... FORCE MATCH ON THIS CHAR | |
466 | TAD ("?&77 /RESTORE VALUE | |
467 | CIA /NEGATE | |
468 | DCA CHAR /AND SAVE | |
469 | TAD GPTR1 /NOW GET CHAR FROM DIRECTORY | |
470 | CDF 0 | |
471 | JMS I (GTSXBT | |
472 | CDF 10 | |
473 | TAD CHAR /DO CHARS MATCH | |
474 | SZA CLA /SKIP IF THEY DO | |
475 | JMP NM1 /NO MATCH ON THIS INPUT | |
476 | WILD, ISZ CNT /BUMP COUNT OF CHARS & POINTER | |
477 | JMP MLP /COMPARE ALL 8 | |
478 | MEXT, ISZ MATFLG /A MATCH!!!!!!! | |
479 | NM1, CLA /WILD CARD COMES HERE WITH ICHY AC | |
480 | ISZ NCNT /HAVE WE CHECKED GROUP OF INPUTS | |
481 | JMP MN1 /NO CHECK WHOLE GROUP | |
482 | TAD MATFLG /HAVE THERE BEEN ANY MATCHES | |
483 | SZA CLA /SKIP IF NOT | |
484 | TAD (4 /WILL INVERT /V SWITCH | |
485 | TAD I (OPT2 /ADD SWITCH | |
486 | AND (4 /ISOLATE IT | |
487 | CDF 0 | |
488 | /SKIPS IF INPUT DIRECTORY ENTRY IS NOT CANDIDATE | |
489 | /THAT IS - IF A MATCH WAS NOT FOUND BETWEEN ANY | |
490 | /OF THE INPUTS AND /V WAS NOT SPECIFIED OR | |
491 | /A MATCH WAS FOUND AND /V WAS SPECIFIED | |
492 | ||
493 | /THIS ALLOWS /V TO MEAN EVERYTHING BUT... | |
494 | ||
495 | SZA CLA | |
496 | TAD I EPNEXT /GET -NUMBER OF BLOCKS | |
497 | CDF 10 | |
498 | SZA /SKIPS IF TENTATIVE OR NOT CANDIDATE | |
499 | JMP I (GOT1 /PROCESS FILE | |
500 | NENT, TAD EPNEXT /POINT EPTR TO BLOCK | |
501 | DCA EPTR /COUNT OF FILE | |
502 | JMP NEMPTY | |
503 | EMPTY, ISZ EPTR /ON EMPTY MAKE EPTR POINT TO BLOCK COUNT | |
504 | JMS I (HEMPTY /HANDLE EMPTY SLOTS | |
505 | NEMPTY, CDF 0 | |
506 | TAD I EPTR /GET BLOCK COUNT | |
507 | CIA /MAKE POSITIVE | |
508 | TAD BLOCK | |
509 | DCA BLOCK /KEEP SUM | |
510 | ISZ EPTR /POINT TO NEXT ENTRY | |
511 | ISZ I BDPTR /POINTS TO -NUMBER OF ENTRIES | |
512 | JMP BLOOP /NOT DONE WITH SEGMENT | |
513 | CDF 10 | |
514 | TAD (400 /BUMP TO NEXT SEGMENT | |
515 | TAD BDPTR | |
516 | DCA BDPTR | |
517 | TAD LFLAG /DID WE PROCESS LAST SEGMENT | |
518 | SZA CLA /SKIP IF WE DID | |
519 | JMP NBLOCK /PROCESS NEW SEGNENT | |
520 | JMP I (SAYNON | |
521 | \f | |
522 | /HANDLE WILD CARDS | |
523 | ||
524 | WILDA, TAD CNT /GET CURRENT CHAR POSITION | |
525 | TAD (6 /ADD SIZE OF FILENAME | |
526 | SPA /SKIP IF IN EXTENSION FIELD | |
527 | JMP WILDNM /THIS BUMPS TO EXTENSION | |
528 | JMP MEXT /THIS MEANS IT HAS TO BE A MATCH | |
529 | ||
530 | ||
531 | CHAR, 0 | |
532 | EPNEXT, 0 | |
533 | GPTR2, 0 | |
534 | LFLAG, 0 | |
535 | NCNT, 0 | |
536 | BLOCK, 0 | |
537 | MATFLG, 0 | |
538 | ||
539 | ||
540 | PAGE | |
541 | \fGOT1, DCA IFCNT /-# OF BLOCKS IN AC | |
542 | JMS I (DATCHK /VERIFY /C AND /O SWITCHES | |
543 | TAD (OUTCHR | |
544 | DCA OSWTCH | |
545 | TAD I (OPT2 | |
546 | SPA CLA | |
547 | JMP I (NENT | |
548 | JMS I (ADDINF /SEE IF ADDITIONAL INFO WORDS | |
549 | TAD I (OPT2 | |
550 | AND (100 /IS /R USED | |
551 | SNA CLA | |
552 | JMP NOR | |
553 | TAD INFPTR /FILL IN *.* FOR FILENAME | |
554 | IAC | |
555 | DCA TEMP | |
556 | TAD (5200 /* | |
557 | DCA I TEMP | |
558 | ISZ TEMP | |
559 | ISZ TEMP | |
560 | ISZ TEMP /POINT TO EXTENSION | |
561 | TAD (5200 /.* | |
562 | DCA I TEMP /SUBSTITUTE IT | |
563 | NOR, TAD GPTR1 | |
564 | CDF | |
565 | JMS I (PNMSUB | |
566 | TAD I (OPT1 | |
567 | RTL | |
568 | SNL CLA | |
569 | JMP SKPBLK | |
570 | JMS I (CONVTP | |
571 | TAD I (BLOCK | |
572 | JMS BSPACE /(MH) PATCH FOR /B/E | |
573 | SKPBLK, TAD I (OPT1 | |
574 | AND (100 | |
575 | SZA CLA | |
576 | JMP NODATE | |
577 | TAD IFCNT | |
578 | CIA | |
579 | JMS I (PRNUM | |
580 | TAD INFWDS | |
581 | SNA CLA | |
582 | JMP NODATE | |
583 | CDF | |
584 | TAD I GPTR1 | |
585 | CDF 10 | |
586 | JMS I (PDATE | |
587 | NODATE, ISZ LNCNT /IS LINE FILLED? | |
588 | JMP MOROLN /NO | |
589 | JMS CRLF | |
590 | TAD ALNCNT /RESET COUNT | |
591 | DCA LNCNT | |
592 | JMP I (NENT | |
593 | MOROLN, TAD (5 /OUTPUT 5 BLANKS | |
594 | JMS I (BLANK | |
595 | JMP I (NENT | |
596 | ||
597 | /BLANKS ROUTINE | |
598 | BLANK, 0 | |
599 | CIA | |
600 | DCA BLTMP | |
601 | JMS I (CONVTP | |
602 | ISZ BLTMP | |
603 | JMP .-2 | |
604 | JMP I BLANK | |
605 | BLTMP, 0 | |
606 | ||
607 | ||
608 | ALNCNT, 0 | |
609 | LNCNT, 0 | |
610 | ||
611 | OUTCHR, 0 | |
612 | JMP I RPOS | |
613 | RPOS1, DCA I OCPTR | |
614 | JMS RPOS | |
615 | RPOS2, DCA HOLD | |
616 | JMS RPOS | |
617 | RPOS3, RTL | |
618 | RTL | |
619 | DCA HOLD2 | |
620 | TAD HOLD2 | |
621 | AND (7400 | |
622 | TAD I OCPTR | |
623 | DCA I OCPTR | |
624 | ISZ OCPTR | |
625 | TAD HOLD2 | |
626 | RTL | |
627 | RTL | |
628 | AND (7400 | |
629 | TAD HOLD | |
630 | DCA I OCPTR | |
631 | ISZ OCPTR | |
632 | ISZ OUWDCT | |
633 | SKP | |
634 | JMS DUMP | |
635 | JMS RPOS | |
636 | JMP RPOS1 | |
637 | RPOS, RPOS1 | |
638 | JMP I OUTCHR | |
639 | ||
640 | OUWDCT, 0 | |
641 | OCPTR, 0 | |
642 | HOLD, 0 | |
643 | HOLD2, 0 | |
644 | BSPACE, 0 /(MH) PATCH FOR /B/E | |
645 | JMS I (OPRNT | |
646 | CLA!IAC | |
647 | JMS I (BLANK | |
648 | JMP I BSPACE | |
649 | ||
650 | PAGE | |
651 | \f | |
652 | GTSXBT, HLT | |
653 | CLL RAL | |
654 | TAD CNT | |
655 | CML RAR | |
656 | DCA TEMP | |
657 | TAD I TEMP | |
658 | SNL | |
659 | JMS ROTR6 | |
660 | AND (77 | |
661 | JMP I GTSXBT | |
662 | ||
663 | ||
664 | ROTR6, 0 | |
665 | RTR | |
666 | RTR | |
667 | RTR | |
668 | JMP I ROTR6 | |
669 | ||
670 | CONVTP, HLT | |
671 | SZA | |
672 | TAD (240 | |
673 | AND (77 | |
674 | TAD (240 | |
675 | JMS I OSWTCH | |
676 | JMP I CONVTP | |
677 | ||
678 | TYPE, HLT | |
679 | DCA HOLD1 | |
680 | TAD (217 | |
681 | JMS I (CTYPE | |
682 | SKP | |
683 | DCA ECHO | |
684 | TAD ECHO | |
685 | SNA CLA | |
686 | JMP I TYPE | |
687 | JMS I (CINTER | |
688 | SKP | |
689 | JMP I (ABORT | |
690 | TAD HOLD1 | |
691 | JMS TTY | |
692 | JMP I TYPE | |
693 | ||
694 | HOLD1, 0 | |
695 | ||
696 | TTY, 0 | |
697 | TLS | |
698 | TSF | |
699 | JMP .-1 | |
700 | TAD (-215 | |
701 | SZA CLA | |
702 | JMP I TTY | |
703 | TAD (12 | |
704 | JMP TTY+1 | |
705 | ||
706 | ECHO, 1 | |
707 | ||
708 | OPRNT, 0 | |
709 | DCA GTSXBT | |
710 | TAD (-4 | |
711 | DCA CNT | |
712 | OPLP, TAD GTSXBT | |
713 | RTL CLL | |
714 | RAL | |
715 | DCA GTSXBT | |
716 | TAD GTSXBT | |
717 | RAL | |
718 | AND (7 | |
719 | TAD (260 | |
720 | JMS I (CONVTP | |
721 | ISZ CNT | |
722 | JMP OPLP | |
723 | JMP I OPRNT | |
724 | ||
725 | ||
726 | /ROUTINE TO MAKE SURE USER SPECIFIED | |
727 | //C AND /O SWITCHES CAUSE CORRECT MATCH WITH DATE | |
728 | ||
729 | DATCHK, 0 | |
730 | TAD I (OPT1 /CHECK /C | |
731 | JMS MDATE | |
732 | NOP /RETURN HERE WITH AC=0 IF NO /C | |
733 | SZA CLA /RETURN HERE WITH AC=0 IF DATES MATCH | |
734 | JMP I (NENT /DATES DONT MATCH AND /C GIVEN | |
735 | TAD I (OPT2 /CHECK /V | |
736 | JMS MDATE | |
737 | CMA CLA /SET AC=-1 IF NO /V | |
738 | SNA CLA /RETURN HERE AC=0 IF DATES SAME | |
739 | JMP I (NENT /DATES SAME WITH /V-IGNORE FILE | |
740 | JMP I DATCHK /CONTINUE | |
741 | ||
742 | MDATE, 0 //O AND /V ARE AC2 | |
743 | RTL /IS IT OPTION ON? | |
744 | SMA CLA /SKIP IF IT IS | |
745 | JMP I MDATE /NO- RETURN WITH 0 AC | |
746 | ISZ MDATE /SKIP RETURN | |
747 | CDF 0 | |
748 | TAD I GPTR1 /GET DATE WORD | |
749 | CIA | |
750 | CDF 10 | |
751 | TAD I (DATE /COMPARE WITH MONITORS, 0 IF = | |
752 | JMP I MDATE | |
753 | ||
754 | PAGE | |
755 | \f | |
756 | PRNUM, 0 | |
757 | DCA NUM | |
758 | TAD (PWRTEN | |
759 | DCA PTR | |
760 | PRNTLP, ISZ MPNTCNT | |
761 | SKP | |
762 | AC4000 | |
763 | DCA PNTFLG | |
764 | DCA DIG | |
765 | DIVLPY, TAD I PTR | |
766 | SNA | |
767 | JMP I PRNUM | |
768 | CLL | |
769 | TAD NUM | |
770 | SNL | |
771 | JMP PRTDIG | |
772 | DCA NUM | |
773 | ISZ DIG | |
774 | JMP DIVLPY | |
775 | PRTDIG, CLA | |
776 | TAD DIG | |
777 | TAD PNTFLG | |
778 | SNA | |
779 | STPBLK, JMP PRBLNK | |
780 | TAD (260 | |
781 | JMS I (CONVTP | |
782 | CLA CLL CML RAR | |
783 | NXTPWR, ISZ PTR | |
784 | JMP PRNTLP | |
785 | PRBLNK, JMS I (CONVTP | |
786 | JMP NXTPWR | |
787 | ||
788 | NUM, 0 | |
789 | PNTFLG, 0 | |
790 | DIG, 0 | |
791 | MPNTCNT,0 | |
792 | ||
793 | PWRTEN, -1750;-144;-12;-1;0 | |
794 | ||
795 | PDATE, 0 | |
796 | SNA | |
797 | JMP FDATE | |
798 | DCA DATEY | |
799 | TAD DATNOW /WAS A DATE ENTERED AT BOOT TIME?(MH) | |
800 | SNA /SKIP IF SO(MH) | |
801 | JMP FDATE /NO -- DON'T PRINT DATE IF NOT ENTERED(MH) | |
802 | AND (7 /YES -- SAVE YR NEGATED(MH) | |
803 | CMA!IAC /(MH) | |
804 | DCA DATTMP /SAVE THIS RESULT TEMP(MH) | |
805 | ISZ I (STPBLK | |
806 | JMS I (CONVTP | |
807 | ACM3 | |
808 | DCA I (MPNTCNT | |
809 | TAD DATEY | |
810 | RTR | |
811 | RAR | |
812 | AND (37 | |
813 | JMS I (PRNUM | |
814 | TAD ("- | |
815 | JMS I (CONVTP | |
816 | TAD DATEY | |
817 | CLL RTL | |
818 | RTL | |
819 | RAL | |
820 | AND (17 | |
821 | DCA PRNUM | |
822 | TAD PRNUM | |
823 | TAD PRNUM | |
824 | TAD PRNUM | |
825 | TAD (DATTAB-4 | |
826 | DCA XR | |
827 | ACM3 | |
828 | DCA CNT | |
829 | TAD I XR | |
830 | JMS I OSWTCH | |
831 | ISZ CNT | |
832 | JMP .-3 | |
833 | TAD ("- | |
834 | JMS I OSWTCH | |
835 | TAD DATEY | |
836 | AND (7 | |
837 | TAD DATTMP /ADD -ENTERED YR(MH) | |
838 | CLL /CLEAR LINK FOR FLAG USE(MH) | |
839 | SZA!SMA!CLA /SKIP AND CLEAR IF ENTERED YR BIGGER,SAME(MH) | |
840 | CML /SET LINK IF DIR YR BIGGER THAN ENETERED YR (MH) | |
841 | TAD DATEY /GET DATE BACK(MH) | |
842 | AND (7 /GET THE YR(MH) | |
843 | SZL /SKIP IF ENTERED YR WAS BIG OR SAME(MH) | |
844 | TAD (-10 /SUBTRACT 10 OCTAL IF DIR YR WAS BIGGER(MH) | |
845 | TAD DATINC /ADD DATE INCREMENT(MH) | |
846 | TAD (106 | |
847 | JMS I (PRNUM | |
848 | CLA CMA | |
849 | TAD I (STPBLK | |
850 | DCA I (STPBLK | |
851 | JMP I PDATE | |
852 | FDATE, TAD I (LNCNT /SEE IF AT END OF LINE? | |
853 | IAC /AC=0 NOW IF YES | |
854 | SNA CLA /OUT PUT SPACES TO FILL DATE SLOT | |
855 | JMP I PDATE /NO NEED FOR SPACES IF AT END OF LINE | |
856 | TAD (12 /10 SPACES IS WHATS NEEDED | |
857 | JMS I (BLANK | |
858 | JMP I PDATE /LEAVE | |
859 | ||
860 | DATEY, 0 | |
861 | DATNOW, 0 /CURRENT DATE IF ONE WAS ENTERED(MH) | |
862 | DATINC, 0 /DATE ENXTENSION TO 1970 (0,10,20, OR 30) (MH) | |
863 | DATTMP, 0 /TEMP STORE (MH) | |
864 | ||
865 | PAGE | |
866 | \f | |
867 | CTYPE, 0 | |
868 | DCA T2 | |
869 | TAD (200 | |
870 | KRS | |
871 | CIA | |
872 | TAD T2 | |
873 | SNA CLA | |
874 | KSF | |
875 | JMP I CTYPE | |
876 | KCC | |
877 | TAD ("^ | |
878 | JMS I (TTY | |
879 | TAD T2 | |
880 | TAD (100 | |
881 | JMS I (TTY | |
882 | TAD (215 | |
883 | JMS I (TTY | |
884 | ISZ CTYPE | |
885 | JMP I CTYPE | |
886 | ||
887 | T2, 0 | |
888 | ||
889 | CINTER, 0 | |
890 | TAD (203 | |
891 | JMS CTYPE | |
892 | JMP UPPCK | |
893 | JMP SPURGE | |
894 | UPPCK, TAD (220 | |
895 | JMS CTYPE | |
896 | JMP I CINTER | |
897 | SKP | |
898 | SPURGE, CMA | |
899 | DCA I (ALTOPT | |
900 | ISZ CINTER | |
901 | JMP I CINTER | |
902 | ||
903 | HEMPTY, 0 | |
904 | CDF 0 | |
905 | TAD I EPTR | |
906 | CDF 10 | |
907 | CIA | |
908 | TAD ECOUNT | |
909 | DCA ECOUNT | |
910 | TAD I (OPT1 | |
911 | AND (200 | |
912 | SZA CLA | |
913 | JMP LISTEM | |
914 | TAD I (OPT2 | |
915 | SMA CLA | |
916 | JMP I HEMPTY | |
917 | LISTEM, TAD I (OPT1 | |
918 | AND (10 /IS /I GIVEN | |
919 | SNA CLA /IF YES PAD BY ADDIDTIONAL INFO WORDS | |
920 | JMP EMSG | |
921 | CLA CMA | |
922 | TAD INFWDS /NUMBER OF SPACES=5*(INFWDS-1) | |
923 | DCA DFLAG | |
924 | TAD DFLAG | |
925 | RTL CLL | |
926 | TAD DFLAG | |
927 | SZA /DONT OUTPUT 4096 BLANKS | |
928 | JMS I (BLANK | |
929 | EMSG, TAD (EMPTYM-1 | |
930 | DCA XR1 | |
931 | TAD (-11 | |
932 | DCA CNT | |
933 | EOLP, TAD I XR1 | |
934 | JMS I (OUTCHR | |
935 | ISZ CNT | |
936 | JMP EOLP | |
937 | TAD I (OPT1 | |
938 | RTL | |
939 | SNL CLA | |
940 | JMP SKIPES | |
941 | JMS I (CONVTP | |
942 | TAD I (BLOCK | |
943 | JMS I (BSPACE /(MH) PATCH FOR /B/E | |
944 | SKIPES, CDF 0 | |
945 | TAD I EPTR | |
946 | CDF 10 | |
947 | CIA | |
948 | JMS I (PRNUM | |
949 | ISZ I (LNCNT /AT END OF LINE | |
950 | JMP WORK /NO. HAVE TO DO BLANK PADDING | |
951 | JMS I (CRLF | |
952 | TAD I (ALNCNT /RESET COUNT | |
953 | DCA I (LNCNT | |
954 | JMP I HEMPTY | |
955 | WORK, TAD (5 /FORCES 5 BLANKS | |
956 | JMS I (BLANK | |
957 | TAD I (OPT1 | |
958 | AND (100 /CHECK FOR /F | |
959 | SZA CLA /ADD 10 SPACES TO COVER DATE | |
960 | JMP I HEMPTY | |
961 | TAD (12 | |
962 | JMS I (BLANK | |
963 | JMP I HEMPTY | |
964 | ||
965 | ECOUNT, 0 | |
966 | ||
967 | PAGE | |
968 | \f | |
969 | PNMSUB, 0 | |
970 | DCA NMEPLC | |
971 | RDF | |
972 | TAD (CDF | |
973 | DCA FLDFUD | |
974 | TAD (-10 | |
975 | DCA CNT | |
976 | PNLOOP, TAD NMEPLC | |
977 | FLDFUD, HLT | |
978 | JMS I (GTSXBT | |
979 | CDF 10 | |
980 | JMS I (CONVTP | |
981 | TAD (3 | |
982 | TAD CNT | |
983 | SZA CLA | |
984 | JMP .+3 | |
985 | TAD (". | |
986 | JMS I OSWTCH | |
987 | ISZ CNT | |
988 | JMP PNLOOP | |
989 | JMP I PNMSUB | |
990 | ||
991 | NMEPLC, 0 | |
992 | ||
993 | WRTERR, JMS I (ERROR | |
994 | OUERR+40 | |
995 | JMP I (EOLIN | |
996 | CLOERR, JMS I (ERROR | |
997 | CLERR+40 | |
998 | JMP I (EOLIN | |
999 | NOROOM, JMS I (ERROR | |
1000 | SPRBLM+40 | |
1001 | JMP I (EOLIN | |
1002 | IDBLVT, JMS I (ERROR | |
1003 | NOTTY+40 | |
1004 | JMP I (EOLIN | |
1005 | ||
1006 | SAYNON, TAD (OUTCHR | |
1007 | DCA OSWTCH | |
1008 | JMS I (CRLF | |
1009 | JMS I (CRLF | |
1010 | TAD (-4 /FORCE PRINTING OF ONLY 1 DIGIT | |
1011 | DCA I (MPNTCNT /FOR 0 FREE BLOCKS | |
1012 | TAD I (ECOUNT | |
1013 | JMS I (PRNUM | |
1014 | JMS I (CONVTP | |
1015 | TAD (FRBLM-1 | |
1016 | DCA XR1 | |
1017 | TAD (-13 | |
1018 | DCA CNT | |
1019 | FRBLP, TAD I XR1 | |
1020 | JMS I (OUTCHR | |
1021 | ISZ CNT | |
1022 | JMP FRBLP | |
1023 | JMS I (CRLF | |
1024 | TAD (14 /FORM FEED | |
1025 | JMS I (OUTCHR | |
1026 | TAD MOIN | |
1027 | JMP I (DOMOIN | |
1028 | ||
1029 | MOIN, 0 | |
1030 | ||
1031 | CRLF, 0 | |
1032 | TAD (215 | |
1033 | JMS OUTCHR | |
1034 | TAD (212 | |
1035 | JMS OUTCHR | |
1036 | JMP I CRLF | |
1037 | ||
1038 | /ROUTINE TO DUMP ADDITIONAL INFO WORDS IF WANTED | |
1039 | ||
1040 | ADDINF, 0 | |
1041 | TAD I (OPT1 | |
1042 | AND (10 /CHECK /I SWITCH | |
1043 | SNA CLA | |
1044 | JMP I ADDINF | |
1045 | CLA CMA | |
1046 | TAD INFWDS /GET NUMBER | |
1047 | SPA SNA /MUST BE 2 OR MORE TO PRINT | |
1048 | JMP CLARET /RETURN | |
1049 | CIA | |
1050 | DCA CNTX | |
1051 | TAD GPTR1 | |
1052 | IAC /BUMP TO FIRST ONE | |
1053 | DCA PGPTR1 | |
1054 | ADDLP, CDF 0 | |
1055 | TAD I PGPTR1 /GET WORD | |
1056 | CDF 10 | |
1057 | JMS I (OPRNT /PRINT IT IN OCTAL | |
1058 | JMS I (CONVTP /OUTPUT A BLANK | |
1059 | ISZ PGPTR1 /BUMP | |
1060 | ISZ CNTX /COUNT NUMBER | |
1061 | JMP ADDLP | |
1062 | CLARET, CLA /RETRN | |
1063 | JMP I ADDINF | |
1064 | ||
1065 | PGPTR1, 0 | |
1066 | CNTX, 0 | |
1067 | ||
1068 | PAGE | |
1069 | \f | |
1070 | VERNO, TEXT /DIRECT V6A / | |
1071 | BADIRD, TEXT /ERROR READING INPUT DIRECTORY/ | |
1072 | SPRBLM, TEXT /NO ROOM FOR OUTPUT FILE/ | |
1073 | OUERR, TEXT /ERROR WRITING FILE/ | |
1074 | CLERR, TEXT /ERROR CLOSING FILE/ | |
1075 | NFLEIN, TEXT /DEVICE DOES NOT HAVE DIRECTORY/ | |
1076 | BIGEQ, TEXT /EQUALS OPTION BAD/ | |
1077 | ILLQ, TEXT /ILLEGAL ?/ | |
1078 | ILLA, TEXT /ILLEGAL */ | |
1079 | BADDIR, TEXT /BAD INPUT DIRECTORY/ | |
1080 | NOTTY, TEXT /THERE IS NO HOPE-THERE IS NO TTY HANDLER IN YOUR SYSTEM/ | |
1081 | EMPTYM, "<;"E;"M;"P;"T;"Y;">;240;240 | |
1082 | FRBLM, "F;"R;"E;"E;240;"B;"L;"O;"C;"K;"S | |
1083 | ||
1084 | "B;"A;"D /PROTECTION AGAINST BAD DATE | |
1085 | DATTAB, "J;"A;"N | |
1086 | "F;"E;"B | |
1087 | "M;"A;"R | |
1088 | "A;"P;"R | |
1089 | "M;"A;"Y | |
1090 | "J;"U;"N | |
1091 | "J;"U;"L | |
1092 | "A;"U;"G | |
1093 | "S;"E;"P | |
1094 | "O;"C;"T | |
1095 | "N;"O;"V | |
1096 | "D;"E;"C | |
1097 | "B;"A;"D /PROTECTION AGAINST BAD DATE | |
1098 | "B;"A;"D /PROTECTION AGAINST BAD DATE | |
1099 | "B;"A;"D /PROTECTION AGAINST BAD DATE | |
1100 | ||
1101 | DUMP, 0 | |
1102 | TAD I (LENGTH /GET LENGTH AVAILABLE | |
1103 | SNA /IF ZERO ITS NON FILE STRUCTURE | |
1104 | JMP NOMATR /IF ZERO DOESNT MATTER | |
1105 | CLL | |
1106 | TAD I (CLEN /ADD CURRENT SIZE | |
1107 | TAD (5 /ADD # OF BLOCKS | |
1108 | SZL CLA /WE ARE OK IF SKIPS | |
1109 | JMP I (NOROOM | |
1110 | TAD I (CLEN /UPDATE CLOSING LENGTH | |
1111 | TAD (5 /BY NUMBER OF BLOCKS | |
1112 | DCA I (CLEN /SAVE FOR CLOSE | |
1113 | NOMATR, TAD OUWDCT | |
1114 | TAD (5210 | |
1115 | DCA CTLWD | |
1116 | CIF 0 | |
1117 | JMS I OUHAND | |
1118 | CTLWD, 5210 | |
1119 | BUFAD, BUF | |
1120 | BLCKN, 0 | |
1121 | JMP WRTERR | |
1122 | TAD (5 | |
1123 | TAD BLCKN /UPDATE BLOCK # BY 5 | |
1124 | DCA BLCKN | |
1125 | TAD (-1200 | |
1126 | DCA OUWDCT | |
1127 | TAD BUFAD | |
1128 | DCA OCPTR | |
1129 | JMP I DUMP | |
1130 | / | |
1131 | \f | |
1132 | *4600 | |
1133 | ||
1134 | JMS INIT | |
1135 | JMS INIT | |
1136 | JMP I (2000 | |
1137 | JMP I (2001 | |
1138 | INIT, 0 | |
1139 | ISZ INIT | |
1140 | CLA CLL | |
1141 | TAD (2000 | |
1142 | CDF 0 | |
1143 | DCA I (7745 | |
1144 | TAD (6403 | |
1145 | DCA I (7746 | |
1146 | CDF 10 | |
1147 | JMP I INIT | |
1148 | $ |