software: Added more and more
[pdp8.git] / sw / os8 / v3d / sources / system / dectapes / dectape5 / CCL.PA
CommitLineData
7af5ad59
PH
1/56 CCL FOR OS/8 V3D
2/
3/
4/
5/
6/
7/
8/
9/
10/
11/COPYRIGHT (C) 1974,1975,1976,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 MOFILE=7600
46 MIFILE=7617
47 MPARAM=7643
48
49 XR2=15
50 XR=16
51 TXR=17
52 AMFLAG=17
53 T=20
54 TT=21
55 DEF=22
56 NAME1=23
57 NAME2=24
58 NAME3=25
59 NAME4=26
60 NMBASE=27
61 DEV1=30
62 DEV2=31
63 DELIM=32
64 DEFALT=33 /POINTS TO DEFAULT EXTENSION LIST
65 LXR=34
66 CLXR=35
67 PTR=36
68 DATWD=7666
69 BATERR=7000 /JMP HERE TO ABORT BATCH
70 BATOUT=7400 /JMS HERE TO PRINT ON BATCH LOG
71 BATSPL=7200 /JMS HERE TO PERFORM SPOOLING WITH DEFAULT EXT IN AC
72 OS78BIT=7771
73
74 BEGLN=1000
75
76/CCL STARTING ADDRESS: 12000
77/STARTING ADDRESS: 12001
78/CHAIN STARTING ADDRESS:12002
79
80/ JOB STATUS WORD = 2003
81
82/**************************************************
83/
84/ SAVING CCL
85/
86/ .LOAD CCL
87/ .SAVE SYS CCL;12001=2103
88/ .R CCL
89/
90/**************************************************
91
92 CCLSW=435
93 DEASADR=427
94 PRQMRK=1357
95 GETCCL=1362
96 OV=1375
97 MSOVL2=55
98
99 CCLBLK=67 /BLOCK ON SYS: USED BY CCL
100 CCLTAB="G /MUST BE UPDATED IF TABLES CHANGE
101 CCLNUM="1
102 CCLVER="F /CCL VERSION #
103
104/*** NOTE: VERSION E OF CCL WAS FOR IN-HOUSE USE ONLY.
105/USE OF SEMICOLONS WITH CCL VERSION I OR LATER
106/REQUIRES BATCH VERSION 7 OR LATER.
107/USE OF BASIC COMMAND REQUIRES V3D BASIC OR LATER
108
109 HNDLR=4400
110 BFR=5000
111
112/MEMORY ALLOCATION:
113
114/0 4400-4777 INPUT HANDLER FOR CD
115/ ALSO, SEMICOLON BUFFER
116/0 5000-5177 PRE-EXTENSION @ BUFFER
117/0 5200-5577 @ BUFFER
118/0 1000-1777 /COMMAND LINE [EACH @ FILE RESTRICTED TO 1 BLOCK]
119/0 2000-2777 /LINE BUFFER EXTENSION
120\f/ CHANGES SINCE FIELD RELEASE VERSION:
121
122/1. RECURSIVE 'U' BUG FIXED
123/2. INTERNAL STRUCTURE OF CCL KEYWORD TABLE CHANGED
124/3. BUG RE REWRITING BLOCK CONTAINING PTR TO CORRECT FORTRAN FIXED
125/4. .SV PARTS OF FILENAMES REMOVED FROM TABLE TO SAVE SPACE
126/5. COMPARE PASSES ALTMODE
127/6. TTY BECAME DEFAULT FOR COMPAR, DIRECT, AND MAP
128/7. BUG RE PASSING DEFAULT * FIXED
129/8. .LS FORM OF .CREF COMMAND REMOVED
130/9. BUG CONCERNING PROCESSOR SWITCHES FIXED
131/10. CCL SWITCH ALLOWED AFTER =N OPTION
132/11. BUG RE 'BAD SWITCH OPTION' MESSAGE FIXED
133/12. EXTRA SPACES NOW ALLOWED BEFORE CCL ARGUMENT
134/13. 'DOES NOT EXIST' MESSAGE NOW SPELLED CORRECTLY
135/14. 'BAD CCL SWITCH' MESSAGE ADDED
136/15. CCL EDIT # CHANGED TO CCL VERSION #
137/16. .EX CHAINS TO BCOMP NOT BASIC FOR .BA FILES
138/17. MUNG PTR: NOW WORKS
139/18. FIXED BUG RE MUNG <CR>
140/19. FIXED BUG RE CD FOR FILE > 2047 BLKS
141/20. FIXED BUG RE MAKE PTR:
142
143/VERSION B FIXES:
144
145/21. ALLOWED 'EDIT' TO COPY FILE EXTENSION
146/22. FIXED BUG RE .CCL ON WRITE-LOCKED DEVICE
147/23. FIXED DATE PROBLEM
148/24. ALLOWED FF AND VT IN AN INDIRECT FILE TO BE IGNORED
149
150/VERSION C FIXES:
151
152/25. FIXED BUG RE SPACES AND SLASHES IN MUNG TEXT ARGUMENT
153/26. ALLOWED EDIT COMMAND TO USE SAME OUT DEVICE
154/ AS IN DEVICE (IF NONE SPECIFIED)
155/27. ADDED MORE SYNTAX CHECKING TO ZERO COMMAND
156
157/VERSION D CHANGES:
158
159/28. ALLOWED EDIT A<B COMMAND TO REMEMBER ONLY UP TO '<' .
160
161/VERSION E CHANGES: (IN-HOUSE ONLY VERSION)
162
163/29. WARNING MSG IF SQUISH SYS: UNDER BATCH
164/30. ADDED SOME NOTES ON HOW TO ALLOW = AS WELL AS <
165/31. ADDED HOOKS FOR ; TO BE READY FOR V4
166/32. FIX BUG RE CMD STARTING WITH SPACES
167
168/CHANGES FOR MAINTENANCE RELEASE (OS/8 V3C):
169
170/33. FIXED BUG ABOUT @ NOT FOLLOWED BY FILESPEC
171/34. INCORPORATED ALL PREVIOUS EDITS
172/35. ALLOWED ' TO TERMINATE AN INDIRECT REQUEST (AND BE IGNORED)
173/36. FIXED BUG ABOUT EDIT DEV1:_DEV2:FOO LOSING DEV1:
174/37. CORRECTED SPELLING OF SUPERSEDING
175/38. ADDED .LD EXTENSION TO EXECUTE TABLES [USES FRTS]
176
177/VERSION G CHANGES:
178
179/39. FIXED BUG WITH HELP COMMAND
180/40. FIXED BUG CONCERNING EDIT DEV:_FILE
181
182/VERSION H CHANGES:
183
184/41. ADDED MAC AND LINK COMMANDS
185/42. ADDED MACREL AND LINKER INTO COMPILE/LOAD/EXECUTE COMMANDS
186/43. ALLOWED UX COMMANDS TO CONTAIN KBM COMMANDS
187/44. ALLOWED PASSING A KBM COMMAND TO CCL ON CHAINING
188/45. ALLOWED @ AT BEGINNING OF LINE
189/46. MOVED MOST OF 'DETCOR' TO FIELD 0
190/47. WAIT ROUTINE NOW GIVES UP IF TTY FLAG ISN'T UP WITHIN 0.1 SEC
191/48. ALLOWED EXEC .BI TO USE BATCH
192/49. TENTATIVELY ADDED SEMICOLON STUFF
193/50. PUT BACK WARNING MESSAGE IF TRY TO SQUISH UNDER BATCH
194
195/VERSION I CHANGES:
196
197/51. FIRMED UP SEMICOLON STUFF
198
199/VERSION J CHANGES:
200
201/52. DEFAULT DEVICE FOR COMPIL, PAL, ETC. IS NOW LOGICAL DSK: NOT SYS:
202/53. -L, -S, AND -P SWITCHES NOW SET OUTPUT NAME TO CURRENT INPUT NAME
203
204/VERSION K CHANGES:
205
206/54. DATE NOW HANDLES DATE/78 ALGORITHM
207/55. TOOK OUT 'TCF' WHICH WAS CAUSING BATCH TO HANG
208
209/VERSION 1A CHANGES:
210
211/56. FIXED BUG RE NULL INDIRECT CMD FILE
212/57. FIXED BUG TO NOW ALLOW DATE WITH ARGS IN INIT.CM
213/58. PRINT "OS78" FOR VERSION NAME IF APPLICABLE
214/59. ADDED -N AND -D AND REWROTE LOGIC A BIT
215/60. HELP COMMAND NOW USES HELP.SV
216/61. SET COMMAND NOW USES SET.SV
217/62. 'CORE' BECOMES 'MEMORY' IN 3 MSGS AND 1 CMD
218/63. ADDED BASIC COMMAND (CHAINS TO BASIC.SV WITH Q SWITCH)
219/64. ALLOWED FOR TERMINATE COMMAND (OS78 REPLACES BACKSPACE)
220/65. ADDED DUPLICATE COMMAND (USES RXCOPY)
221
222/V1B CHANGES:
223
224/66. MODIFIED FORMAT OF MAIN TABLE
225/67. GIVE ERROR MESSAGE IF NO FILENAME IS GIVEN WITH INDIRECT
226/ FILE (EVEN IF NON-FS)
227/68. PRINT KBM VERSION #
228/69. ADDED TERMINATE COMMAND
229
230/V1F CHANGE:
231
232/70. DUPL CALLS RXCOPY IN SPECIAL MODE
233\f/ FORMAT OF CCL TABLE
234
235/ENTRY PURPOSE
236
237/ TABLE WIDTH=7 (BUT VARIES)
238
239/0 FLAG WORD
240
241 /BIT MEANING IF ON
242
243 /0 PERFORM CD (IF 0, OMIT ENTRIES 1-6)
244 /1 DON'T PERMIT SPOOLING
245 /2 ALLOW .LS, .NB, .MP SWITCHES
246 /3 ADD _ TO END OF COMMAND STRING
247 /4 SET OUTPUT EXTENSION = INPUT EXTENSION (IF BIT 2 ON)
248 /6-8 SPECIFIES AUTOMATIC INPUT REMEMBERING (REM LINE MINUS 1)
249 / 0 MEANS NONE. 7 RESERVED FOR SPECIAL USE.
250 /10 CAUSE -L, ETC. TO GO TO 2ND OUTPUT FILE & COPIES NAME
251 /11 WANT DEFAULT ALTMODE (COMPL IF AMFLAG=1)
252
253/1 PTR TO DEFAULT EXTENSION LIST FOR INPUT FILES.
254/ IF PTS TO 0, NONE. IF PTS TO 5200, USE SPECIAL MODE.
255
256/2-4 DEFAULT SWITCHES TO BE OR'ED INTO THOSE
257/ EXPLICITLY GIVEN.
258
259/5 ADDRESS OF SUBROUTINE TO BE CALLED
260/ AFTER C.D. HAS BEEN DONE. 0 IF NONE.
261
262/6 PTR TO FILENAME OF PROGRAM
263/ TO BE CHAINED TO. 0 IF NONE.
264
265/ FIELD 0
266
267/1000-1777 LINE BUFFER
268/2000-2777 LINE BUFFER EXTENSION
269/4000-4377 REM-LINES
270/4400-4777 HANDLER
271/5000-5577 BUFFER
272/6000-7577 MORE CCL (7 PAGES)
273
274 REST=6000
275\f FIELD 1
276
277 *2000
278
279 FAKBM=404 /PLACE TO FAKE OUT KBM
280
281START, JMP .+3 /START FROM MONITOR
282 JMP (CCLBLC /START FROM .RUN COMMAND
283 /THIS LITERAL IS AT END OF PAGE
284 JMP MONCHN /START WHEN CHAINED TO
285 CLA
286 CDF 0 /READ IN REST OF CCL
287 TAD I (CCLBLC /GET BLOCK OF START
288 CDF 10
289 TAD CCLREM
290 DCA CCLREM /GET BLOCK OF REST
291 CIF 0
292 JMS I (7607
293 700 /READ 7 MORE PAGES
294 REST
295CCLREM, 1+14+1 /SKIP CCB AND *400 STUFF
296 JMP ERR2
297 JMS TWAIT
298 CDF 0
299 TAD I LVNO
300 CDF 10
301 TAD (-CCLTAB /DO VERSION #'S AGREE?
302 SZA CLA
303 JMP BADVNO
304PREGO, JMS I (AT
305 STA
306 DCA I (REMD /ALLOW RECURSIVE U'S
307 CDF 0
308 TAD I KENTRY /GET ENTRY #
309KCIDF, CIF CDF 10
310 TAD (PTBL /GET ADDRESS OF PTR TO START OF ENTRY
311 DCA PTR
312 TAD I PTR /GET PTR TO START OF ENTRY
313 DCA PTR
314 JMP I (GOO
315MONCHN,
316KCIF, CIF 0
317 JMS I (7607 /READ IN KBM
318 1000 /4 BLOCKS
319 0 /0-1777
320 7 /BLOCK 7 ON SYS:
321 HLT /NO WAY TO RECOVER (EVEN 7605 DOES THIS)
322 TAD (-44
323 JMS I (MOVE /ASSUME COMMAND LINE IS IN
324 CDF 10 /17600-17643
325 7600
326 CDF 0
327 1000 /MOVE TO OS/8 LINE BUFFER
328 CIF CDF 0
329YAT, JMP I KFAKBM /@ DESTROYS THIS CODE (MUST BE ONE BEFORE 'REGO')
330 TAD I (ASSIGN /'YAT' IS JMS'ED TO
331 SNA CLA /BY INITIAL @ COMMAND
332 JMP I (LEAVE /DO NOTHING IF NO @ GOT EXPANDED (NULL LINE)
333REGO, CIF 0
334 JMS I (7607
335 200 /READ ONE BLOCK
336 400 /400-777
337 10 /RESTORE PART OF KBM WHICH WAS DESTROYED BY OVERLAY
338 HLT
339 JMP I (FAKE
340
341/REGO, TAD KCIDF
342/ CDF 0
343/ DCA I (RETCIF /ALLOW 'FINDIT' TO RETURN TO FIELD 1
344/ CIF CDF 0
345/ STA
346/ DCA I (HALF
347/ DCA I (ENTRY
348/ TAD (KEYWRD
349/ DCA I (KPTR
350/ JMS I (FINDIT /LOOK UP KEYWORD
351/ SMA CLA
352/ JMP PREGO /FOUND IT
353/CMDERR, JMS I (PRMESG /NOT A LEGAL KEYWORD
354/ ERRCMD
355\fERR2, CIF CDF 0
356 JMP I (NOCCL
357
358BADVNO, JMS I (PRINT
359 BADVMS
360 JMS I (VERTN
361 JMP I (LEAVE /GO AWAY
362\f/TEST END OF TABLE
363
364USRSUB, 0
365 TAD I (REMD
366 SMA CLA
367 JMP REGO /REMEMBERED A NEW LINE
368 TAD I (FLAG /WANT TO
369 AND (70
370 CLL RTR
371 RAR
372 TAD (-1 /IN THIS REM-LINE
373 DCA UREM
374 JMS I (FOREVER /NO DATE
375 JMS I (REMEM
376UREM, 0
377 JMP I USRSUB
378\fTWAIT, 0
379 DCA WFL
380 JMS BATCH
381 JMP TW /BATCH NOT RUNNING
382 CLA /WE'RE RUNNING UNDER BATCH
383 JMP I TWAIT
384TW, TSF
385 SKP /WAIT FOR THINGS TO QUIET DOWN
386 JMP I TWAIT
387LVNO, AND I 0 /WASTE SOME TIME
388KFAKBM, AND I 4
389KENTRY, 600
390 ISZ WFL
391 JMP TW
392 JMP I TWAIT /CAN'T WAIT TOO LONG
393WFL, 0
394
395/SKIP IF BATCH IS RUNNING AND PUT CIF BATCH FIELD IN AC
396
397BATCH, 0
398 CDF 0
399 TAD I (7777
400 CDF 10
401 DCA BWORD
402 TAD BWORD
403 RTL
404 SNL CLA /IS BATCH RUNNING?
405 JMP I BATCH /NO
406 TAD BWORD /YES
407 AND (70 /ISOLATE FIELD OF BATCH
408 TAD KCIF /FORM CIF TO THE HIGHEST FIELD
409 ISZ BATCH /AND TAKE SKIP RETURN WITH IT IN AC
410 JMP I BATCH
411\fBWORD, 0
412 PAGE
413\f/WE FALL INTO THIS FROM LITERAL ON PREVIOUS PAGE
414MONFIX, JMS I (RDMON
415 CDF 0
416 TAD I ZERO
417 TAD (-7607
418 SNA CLA
419 JMP I PCCER3 /ALWAYS WRITE OUT CCL BLOCK
420 CDF 10
421 CIF 0
422 JMS I L7607
423 4200 /WRITE 1 RECORD FROM FIELD 0
424 400 /LOCATIONS 400-777
425 CCLBLK /INTO THE SYSTEM'S CCL BLOCK
426 JMP I (IOERR
427 CDF 0
428 TAD I (2000+CCLSW
429 TAD (-PRQMRK
430 SNA
431 JMP MONOK
432 TAD (PRQMRK-GETCCL
433 SZA CLA
434 JMP I PCCER3
435/ CIF CDF 0
436/ JMP I L7605
437MONOK, TAD (GETCCL
438 DCA I (2000+CCLSW
439 STA
440 DCA I (2000+DEASADR /DELETE DEASSIGN
441 JMS WRMON
442 JMS I (LOOK
443 YFORT /LOOK FOR FORT.SV
444 TAD (YF4-YFORT /NOT FOUND, USE F4
445 TAD (YFORT /FOUND USE IT
446 DCA I (FORTE
447 TAD I (FORTE
448 TAD (-YFORT
449 SZA CLA
450 TAD (YLOAD-YLOADER /F4
451 TAD (YLOADER
452 DCA I (LOADE
453 JMP I (WRITFT /UNKLUTZ
454\fL200,
455WRMON, 200
456 CDF 10
457 CIF 0
458 JMS I L7607
459 4200
460L2400, 2400
461 10
462 JMP I (IOERR
463 JMP I WRMON
464\fMONRES, 0
465 JMS I (RDMON
466 CDF 0
467 TAD (PRQMRK
468 DCA I (2000+CCLSW
469 TAD (-405
470 DCA I (2000+DEASADR
471 JMS WRMON
472 JMP I MONRES
473
474L7605,
475SETLPT, 7605 /COULD BE ONCE ONLY
476 TAD KLPTDEV
477 JMS SETDEV
478 JMP I SETLPT
479
480L7607, 7607
481
482M7607,
483SETTTY, -7607
484 TAD KTTYDEV
485 JMS SETDEV
486 JMP I SETTTY
487
488PCCER3,
489SETPTP, CCER3
490 TAD (PTPDEV
491 JMS SETDEV
492 JMP I SETPTP
493
494ZERO, /STAYS 0 FOR A WHILE
495SETDEV, 0 /V1A ARG NOW IN AC
496 DCA DEVPTR
497 CLL STA RAL /-2
498 JMS I (MOVE
499 CDF 0
500DEVPTR, LOC78
501 CDF 10
502 DVNM1
503 JMS I (SETOUT
504 JMP I SETDEV
505
506P4, SETDEV
507KLPTDEV,LPTDEV
508
509P5, SETDEV
510KTTYDEV,TTYDEV
511\fFAKE, CIF CDF 0
512 TAD (MSOVL2
513 DCA I (OV /RESTORE LOC SO DATE CMD W ARGS WILL WORK
514 JMP I (FAKBM
515
516PTCH, CDF 0
517 DCA I (VLOC
518 TAD I (OS78BIT
519 AND (200 / 78
520 SZA CLA / OR
521 TAD (1000 / /8
522 TAD (5770
523 DCA I DEVPTR
524 CDF 10
525 JMS I (PRMESG
526 VMES
527 PAGE
528\f COLWRD /NEEDED BY SET
529GO, JMS I (SCAN /ADVANCE SCAN UNTIL AFTER SPACES
530GO2, TAD I PTR /GET FLAG
531 DCA FLAG /SAVE IT
532 TAD DELIM
533 SNA CLA /IS TYPED LINE EMPTY AFTER KEYWORD?
534 TAD FLAG /AND IS SPECIAL REMEMBERING BITS ON?
535 CLL RTR
536 RAR /AND HAS GOD WILLED US TO REMEMBER?
537 AND (7 /AND ARE THE ZODIAK SIGNS FAVORABLE?
538 SNA
539 JMP NORM /NO
540 TAD REMD /YES, GET REM-LINE (SUBTRACT 1)
541 DCA REMD
542 CDF 0
543 TAD I (BEGLN
544 CDF 10
545 DCA NMPTR
546 JMS I (RECALL /RECALL LINE
547REMD, -1 /-1 MEANS DIDN'T RETRIEVE A REMEMBER LINE
548 DCA DEPN /SAVE DEPENDENT INFO
549 TAD NMPTR
550 SZA CLA /EG COMMAND?
551 JMP NORM /NO
552 ISZ DELIM /YES
553 TAD DEPN
554 DCA PTR /RESET PTR FROM CMD DEPENDENT WORD
555 JMP GO2
556\fNORM, TAD FLAG
557L7700, SMA CLA
558 JMP CHAINN /SKIP ENTRIES IF NO CD
559 ISZ PTR /POINT TO DEFAULT INPUT EXTENSION
560 TAD I PTR /GET DEFAULT INPUT EXTENSION PTR
561 DCA DEFALT /SAVE IT
562 TAD (7641
563 DCA XR
564 TAD FLAG
565 JMS I (GAMFLG
566 DCA I XR /STORE AWAY IN C.D. OPTION TABLE
567 DCA I XR /V3D ZERO OPTION WORDS
568 DCA I XR
569 DCA I XR
570 DCA I XR /ZERO L.O. =
571STOLUP, ISZ PTR
572 TAD I PTR
573 SNA
574 JMP STODON
575 DCA NTEMP
576 ISZ PTR
577 TAD I PTR /GET VALUE
578 DCA I NTEMP /STORE IN SPECIFIED LOCATION
579 JMP STOLUP
580STODON, TAD FLAG
581 AND (400
582 SZA CLA
583 JMS I (INSARR /INSERT BACK ARROW IF FLAG BIT SET
584 JMS I (CD /PERFORM COMMAND DECODE IF FLAG BIT
585 /0 SET
586CHAI, TAD FLAG
587 RAL
588 SMA CLA /IS SPOOLING PROHIBITED?
589 JMS I (SPOOLIT /NO
590CHAINN, ISZ PTR /POINT TO AFTER CD SUBR
591 TAD I PTR /GET SUBR ADDRESS
592 JMS I (JMSUB
593 TAD I (DEFILE
594 SZA /IS THERE A FILENAME SET TO CHAIN TO?
595 JMP ZOW /YES
596 ISZ PTR /NO, POINT TO FILENAME
597 TAD I PTR
598 SNA
599 JMP I (LEAVE /NO FILE TO CHAIN TO
600ZOW, DCA NMPTR
601 JMS LOOK /LOOKUP FILE
602NMPTR, 0
603 JMP I (CCER1 /NOT FOUND
604CHAIN, JMS I (200 /CHAIN TO IT
605 6 /CHAIN
606DEPN, /REM LINE DEPENDENT INFO
607BLK, 0
608/ -----
609\f/LOOK, LOOKS UP FILE ON DEVICE . POINTER IS IN ARG1
610/ ARG2 IS ERROR RETURN IF NOT FOUND
611/DEVICE NUMBER IS IN AC. IF 0, USE SYS:
612
613LOOK, 0
614 SNA
615 IAC
616 DCA DEV
617 TAD I LOOK /GET PTR TO FILE NAME IN FIELD 0
618 DCA HISFIL
619 TAD HISFIL
620 AND L7700
621 SNA CLA
622 JMP FLD1 /PTR LT 100 MEANS IN FIELD 1
623 TAD (-3
624 JMS I (MOVE /MOVE IT UP
625 CDF 0
626HISFIL, 0
627 CDF 10
628PFILDMY,FILDMY
629 TAD PFILDMY
630SETN, DCA NAMPTR /STORE AWAY PTR TO FILENAME
631 ISZ LOOK /POINT TO ERROR RETURN
632 TAD DEV /GET DEVICE NUMBER
633 JMS I (200
634 2 /LOOKUP
635NTEMP,
636NAMPTR, 0
637 0
638 JMP I LOOK /TAKE ERROR RETURN IF NOT FOUND
639 TAD NAMPTR /STORE STARTING BLOCK # IN 'BLK'
640 DCA BLK
641 ISZ LOOK /POINT TO NORMAL RETURN
642 JMP I LOOK /RETURN
643\fFLAG, 0
644DEV, 0
645
646FLD1, TAD HISFIL
647 JMP SETN
648 PAGE
649\fXEXE, 5033; EXTEXE; 7643;40;0; EXSUB; YPAL8 /EXECUTE MUST BE FIRST FOR TECO EG
650XBAC, 0; TRMSUB; YCAMP /BACKSPACE (OR TERMINATE)
651 /MUST BE 2ND FOR OS78
652XBAS, 0; BASUB; YBASIC /BASIC
653XDUPL, 4001; STAR; 0; 0; YRXCOP /DUPLIC
654XBOO, 0; 0; YBOOT /BOOT
655XCCL, 0; MONRES; 0 /CCL
656XCOMPA, 4001; EXTNUL; 0; SETTTY; YSRCCOM /COMPARE
657XCOMPI, 5033; EXTCOM; 0; EXSUB; YPAL8 /COM
658XCOP, 4001; STAR; 7643;1;0; MOVRT; YFOTP /COPY
659XCOR, 0; DETCOR; 0 /MEMORY
660XCREA, 4400; EXTNUL; 0; CRSUB; YEDIT /CREATE
661XCREF, 4002; EXTCF; 7643;1000;0; 0; YPAL8 /CREF
662XDAT, 0; DATE; 0 /DATE
663XDEL, 4001; STAR; 7643;401;0; KILRT; YFOTP /DELETE
664XDEA, 0; DEASSIG;0 /DEASSIGN
665XDIR, 4001; STAR; 7646;COLWRD,0;0;SETTTY; YDIRECT /DIRECT
666XEDI, 5220; EXTNUL; 0; EDSUB; YEDIT /EDIT
667XEOF, 0; 0; YCAMP /EOF
668XHEL, 4001; STAR; 7644;20;0; SETTTY; YHELP /HELP
669XLINK, 5033; EXTLI; 0; EXSUB; YLINK /LINK
670XMAC, 5033; EXTMA; 0; EXSUB; YMACREL /MAC
671XLIS, 4001; STAR; 7644;10;0; SETLPT; YFOTP /LIST
672XLOA, 5031; EXTLO; 0; EXSUB; YABSLDR /LOAD
673XMAK, 0; MAKSUB; YTECO /MAKE
674XMAP, 4001; EXTBN; 0; SETTTY; YBITMAP /MAP
675XMUN, 0; MNGSUB; YTECO /MUNG
676XPAL, 5033; EXTPA; 0; EXSUB; YPAL8 /PAL
677XPRI, 4000; STAR; 0; SETLPT; YLPTSPL /PRINT
678XPUN, 4001; EXTNUL; 0; SETPTP; YPIP /PUNCH
679XREN, 4001; STAR; 7643;1;7644;100;0;RENRT;YFOTP /RENAME
680XRES, 4001; EXTSY; 0; SETTTY; YRESORC /RESOURCES
681XREW, 0; 0; YCAMP /REWIND
682XSET, 0; 0; YSET /SET
683XSKI, 0; 0; YCAMP /SKIP
684XSQU, 4001; EXTNUL; 7644;40;0; SQSUB; YPIP /SQUISH
685XSUB, 4000; EXTBI; 0; 0; YBATCH /SUBMIT
686XTEC, 10; TECSUB; YTECO /TECO
687XTYP, 4001; STAR; 7644;10;0; SETTTY; YFOTP /TYPE
688XUNL, 0; 0; YCAMP /UNLOAD
689XUA, 40; USRSUB; 0 /UA
690XUB, 50; USRSUB; 0 /UB
691XUC, 60; USRSUB; 0 /UC
692XVER, 0; VERTN; 0 /VERSION
693XZER, 4401; EXTNUL; 7645;2000;0; ZERSUB; YPIP /ZERO
694XAT, 0; YAT; 0 /@
695 ZBLOCK 13
696
697GAMFLG, 0
698 CDF 0
699 TAD I PAMFLAG /COMBINE ALTMODE BITS
700 CDF 10
701 RAR /IN POSITION 11
702 CLA RAR /PUT NEW ALTMODE BIT ALONE IN BIT 0
703 JMP I GAMFLG
704PAMFLAG,AMFLAG
705\fTRMSUB, 0
706 CDF 0
707 TAD I POS78
708 CDF 10
709 AND R200
710 SNA CLA
711 JMP I TRMSUB /BACKSPACE, NOT TERMINATE
712 6073
713 6002
714 CLA /JUST IN CASE WE'RE NOT ON A VT-78
715 JMS I PPRM
716 BADEV
717POS78, OS78BIT
718R200, 200
719PPRM, PRMESG
720\fPTBL, XEXE
721 XBAC
722 XBAS
723 XDUPL
724 XBOO
725 XCCL
726 XCOMPA
727 XCOMPI
728 XCOP
729 XCOR
730 XCREA
731 XCREF
732 XDAT
733 XDEL
734 XDEA
735 XDIR
736 XEDI
737 XEOF
738 XHEL
739 XLINK
740 XMAC
741 XLIS
742 XLOA
743 XMAK
744 XMAP
745 XMUN
746 XPAL
747 XPRI
748 XPUN
749 XREN
750 XRES
751 XREW
752 XSET
753 XSKI
754 XSQU
755 XSUB
756 XTEC
757 XTYP
758 XUNL
759 XUA
760 XUB
761 XUC
762 XVER
763 XZER
764 XAT
765 ZBLOCK 4
766\fSTAR, 5200; 0
767 0; 0
768
769
770EXTSY, 2331; 0
771 0; 0
772EXTBI, 0211; 0
773 0; 0
774EXTCF, 2001; COMPA
775/EXTLS, 1423; COMLS
776 0; COMPA
777EXTMA, 1501; COMMA
778 0; COMMA
779EXTPA, 2001; COMPA
780 0; COMPA
781EXTBN, 0216; 0
782 0; COMBN
783/EXTHL, 1014; 0
784/ 0; 0
785EXTNUL, 0; 0
786EXTLO, 0216; COMBN /BN
787 2214; COMRL /RL
788EXTLI, 2202; COMRB /RB
789 0; 0
790EXTCM, 0315; 0
791 0; 0
792\fEXTEXE, 2001; COMPA /PA
793 0624; COMFT /FT
794 0201; COMBA /BA
795 1501; COMMA /MA
796 0216; COMBN /BN
797 2214; COMRL /RL
798 2201; COMRA /RA
799 2302; COMSB /SB
800 2202; COMRB /RB
801 1404; COMLD /LD V3C
802 0211; COMBI /BI
803 0; 0
804 ZBLOCK 4
805EXTCOM, 2001; COMPA /PA
806 0624; COMFT /FT
807 1501; COMMA /MA
808 0201; COMBA /BA
809 2201; COMRA /RA
810 2302; COMSB /SB
811 0; 0
812 ZBLOCK 4
813 IFZERO .&7600-3200 <PAGE>
814\fCOMBN, 0
815 JMS USUAL
816 0216
817 YABSLDR
818 JMP I COMBN
819
820COMRL, 0
821 JMS USUAL
822 2214
823LOADE, YLOAD /MAY BECOME YLOADER
824 JMP I COMRL
825
826COMPA, 0
827 JMS USUAL
828 2001
829 YPAL8
830 JMP I COMPA
831
832COMFT, 0
833 JMS USUAL
834 0624
835FORTE, YF4 /COULD BE CHANGED TO YFORT BY .R CCL
836 JMP I COMFT
837
838COMBA, 0
839 JMS USUAL
840 0201
841 YBCOMP
842 JMP I COMBA
843
844COMRA, 0
845 JMS USUAL
846 2201
847 YRALF
848 JMP I COMRA
849\fCOMSB, 0
850 JMS USUAL
851 2302
852 YSABR
853 JMP I COMSB
854
855COMRB, 0
856 JMS USUAL
857 2202
858 YLINK
859 JMP I COMRB
860
861COMMA, 0
862 JMS USUAL
863 1501
864 YMACREL
865 JMP I COMMA
866
867COMBI, 0
868 JMS USUAL
869 0211
870 YBATCH
871 JMP I COMBI
872
873COMLD, 0
874 JMS USUAL
875 1404
876 YFRTS
877 JMP I COMLD
878\fDEFILE, 0 /PTR TO FILENAME TO CHAIN TO
879
880/COMLS, 0
881/ TAD I (EXTLS
882/ DCA SETEXT
883/ TAD (YCREF
884/ DCA DEFILE
885/ ISZ I (DONB /CREF FOO.LS MAKES NO BINARY
886/ JMP I COMLS
887
888RDMON, 0
889 CDF 10
890 CIF 0
891 CLA
892 JMS I (7607
893 0400 /READ 2 RECORD
894 2000 /LOCATION 2000 FIELD 0
895 7 /BLOCK 7,10
896 JMP I (IOERR
897 JMP I RDMON
898
899USUAL, 0
900 TAD I USUAL
901 DCA SETEXT
902 ISZ USUAL
903 TAD I USUAL
904 DCA DEFILE
905 ISZ USUAL
906 JMP I USUAL
907\fUNKN, 0
908 TAD SETEXT
909 SZA
910 TAD T /NEG OF SWITCH REQUEST
911 SZA CLA
912 JMP I (CCERA /CAN'T HAVE 2ND DEFAULT EXTENSION
913 TAD T
914 CIA
915 DCA SETEXT /SET DEFAULT EXTENSION
916 TAD DEFALT /SEE IF IT'S IN COMMAND'S SEARCH LIST
917 DCA DEF
918 TAD SETEXT
919 JMS I (EXTLUK
920 SNA CLA /DID WE FIND IT?
921 JMP I (CDER4 /NO
922 ISZ DEF /YES
923/ TAD I (JMSUB /ALLOW RECURSIVE CALL
924/ DCA HOLD
925 TAD I DEF
926 JMS I (JMSUB /CALL ITS SUBR
927/ TAD HOLD
928/V1A RECURSIVE CALL NO LONGER THREATENS
929/ DCA I (JMSUB
930 JMP I UNKN
931
932SETEXT, 0 /EXT WHICH HAS BEEN SET BY A CCL SWITCH
933
934SEMERR, TAD (SEMSG-1
935 DCA UNKN
936 TAD I UNKN
937 DCA .+2
938 JMS I (PRMESG
939 SEMSG1
940\fWRITFT, JMS I (LOOK
941 YCCL
942 JMP I (IOERR /CCL.SV NOT FOUND
943 TAD I (BLK
944 TAD (4 /*3400 IS 4TH BLOCK OF CCL NOT COUNTING CCB
945 DCA FBLK
946 CDF 10
947 CIF 0
948 JMS I (7607
949 4210 /WRITE 1 RECORD FROM FIELD 1
950 3400 /LOCS 3400-3777
951FBLK, 0
952 JMP I (IOERR
953 CIF CDF 0
954 JMP I (7605
955 PAGE
956\fCD, 0
957 JMS I (200
958 13 /RESET ALL HANDLERS
959 JMS I (CDINIT
960BEGGRP, TAD OUTSW
961 SNA CLA
962 TAD I (BEGDIF /DIFF BETWEEN INPUT & OUTPUT AREAS
963 TAD (MOFILE-1
964 DCA CLXR
965 JMS I (GETSPC
966 JMS I (ASSIGN
967 TAD OUTSW
968 SNA CLA
969 TAD I (LIMDIF /DIFF BETWWEN END OF OUTPUT & INPUT AREAS
970 TAD I (OUTLIM /END OF OUTPUT AREA
971 TAD CLXR
972 SMA CLA
973 JMP I (CDER1
974 JMS I (CCLSWT
975 TAD OUTSW
976 SNA CLA
977LKUPSW, JMP INFILE /ZEROED IF IN "SPECIAL DECODE" MODE
978 TAD I (DVICE
979 JMS PCLXR
980 TAD NAME1
981 JMS PCLXR
982 TAD NAME2
983 JMS PCLXR
984 TAD NAME3
985 JMS PCLXR
986 TAD NAME4
987 JMP LSTPUT
988INFILE, JMS I (LOOKUP
989 JMS PCLXR /STORE LENGTH AND DEV NUMBER
990 TAD I (LNAME /GET BLOCK
991LSTPUT, JMS PCLXR
992 TAD OUTSW
993 SNA CLA
994 TAD I (FLAG
995 CLL RTL
996 SPA CLA /FEATURE ENABLED?
997 TAD LKUPSW
998 SNA CLA
999 JMP DLOOK /IN SPECIAL MODE OR ON OUTPUT SIDE
1000 TAD DONB
1001 SZA CLA
1002 JMP NBS
1003 TAD (7600 /V1A NOW TAKES ARG IN AC
1004 JMS I (NMOVE /MOVE NAME TO OUTPUT FILE NAMES
1005 JMP DLOOK
1006\fNBS, DCA DONB /ZERO 1ST OUTPUT FILE
1007 TAD (7577
1008 DCA XR2
1009 DCA I XR2
1010 DCA I XR2
1011 DCA I XR2
1012 DCA I XR2
1013 DCA I XR2
1014DLOOK, STA
1015 DCA I (DVFLAG
1016 TAD DELIM
1017 SNA
1018 JMP I CD
1019 TAD (-"[
1020 SNA
1021 JMP I (OLENGT
1022 TAD ("[-",
1023 SNA
1024 JMP I (FILLP /**** JUMPING INTO ROUTINE (IS THIS A BUG?)
1025 TAD (",-"<
1026 SNA
1027 JMP BKAROW
1028 TAD ("<-"=
1029 SZA CLA
1030 JMP I (CDER2 /BAD CHAR
1031/ THIS STUFF WOULD ALLOW = AS WELL AS < AND _
1032/*** HAVE TO FIX 'BKA' ROUTINE
1033/ JMS I (GLXR
1034/ JMS I (DECODE
1035/ STL
1036/ STA /LINK=0 MEANS LETTER
1037/ TAD LXR /NOW LINK=1 MEANS LETTER
1038/ DCA LXR
1039/ SZL
1040/ JMP BKAROW
1041 DCA I (NUMFUJ
1042 JMS I (NUMBER
1043 DCA I (MPARAM+3
1044 CLA CLL CML RAR
1045 AND I (MPARAM-1 /PRESERVE ALTMODE
1046 TAD I (HIORD
1047 DCA I (MPARAM-1
1048 JMS I (CCLSWT
1049 JMP DLOOK
1050BKAROW, ISZ OUTSW
1051 JMP I (CDER2 /TWO BACK-ARROWS
1052 TAD LXR /GET PTR TO ARROW
1053 DCA I (ARLOC /SAVE IT ('EDIT' MIGHT NEED IT)
1054 JMP BEGGRP
1055
1056PCLXR, 0
1057 ISZ CLXR
1058 DCA I CLXR
1059 JMP I PCLXR
1060\fDONB, 0 /ENTRY PT USED AS FLAG
1061 JMP I DONB
1062
1063OUTSW, -1 /-1 MEANS ON OUTPUT SIDE, 0 ON INPUT SIDE
1064
1065P6, SETDEV
1066 TVDEV
1067 PAGE
1068\fNUMBER, 0
1069 SZA CLA
1070 TAD (NUM&177+1200-SKP
1071 TAD (SKP
1072 DCA NUMADD/SET NUMADD TO EITHER "SKP" OR "TAD NUM"
1073 DCA HIORD
1074NUMLP, DCA NUM
1075 JMS I (GCH
1076 ISZ NUMKNT
1077 SKP
1078 JMP EONUM2
1079 CMA
1080 TAD NUMFUJ
1081 TAD ("8 /TEST INPUT CHARACTER FOR RANGE
1082 CLL CMA /0-7 IF NUMFUJ=0
1083 TAD (10 /0-9 IF NUMFUJ=2
1084 TAD NUMFUJ
1085 SNL
1086 JMP EONUM
1087 DCA T
1088 CLA CLL CMA RTL
1089 DCA DELIM
1090 TAD NUM
1091ROTLP, CLL RAL
1092 DCA NUMX
1093 TAD HIORD
1094 RAL
1095NUMSKP, SPA /MODIFIED BY #
1096 JMP I (CDER5
1097 DCA HIORD
1098 TAD NUMX
1099 ISZ DELIM
1100 JMP ROTLP
1101NUMADD, TAD NUM /SKP IF OCTAL
1102 TAD NUM
1103 TAD T
1104 JMP NUMLP
1105EONUM, TAD ("0
1106EONUM2, DCA DELIM
1107 TAD NUMKNT
1108 SPA CLA
1109 JMP I (CDER5 /FEWER THAN CORRECT NUMBER OF DIGITS
1110 TAD NUM
1111 JMP I NUMBER
1112
1113NUM, 0
1114NUMFUJ, 0
1115NUMKNT, 0 /SET TO -N-1 TO FORCE N DIGITS
1116HIORD, 0
1117\fASSIGN, 0
1118 TAD CLXR
1119 AND I (DVFLAG
1120 TAD I (OUTLIM
1121 SMA SZA CLA /CHECK FOR OUTPUT OR FIRST INPUT
1122 JMP ASNORM /IF DEVICE WAS SPECIFIC,
1123 /OR IF WE ARE ON THE INPUT SIDE,
1124 /PROCEED NORMALLY
1125 TAD NAME1
1126 SNA CLA
1127 JMP ASGNST
1128 TAD DFLTNM+1
1129 DCA DEV2
1130 TAD DFLTNM
1131 DCA DEV1
1132ASNORM, TAD DEV1
1133 DCA AS+1
1134 TAD DEV2
1135 DCA AS+2
1136 TAD I (OUTSW
1137 SNA CLA /DON'T LOAD HANDLER
1138 /IF WE ARE ON OUTPUT SIDE OF "_"
1139 TAD NAME1
1140SPKLG1, SNA CLA /OR THERE IS NO FILE NAME TO LOOK UP
1141 TAD GETHND /GETHND=11 NORMALLY,
1142 /0 IF IN "SPECIAL DECODE" MODE
1143 IAC
1144 DCA AS
1145 TAD (HNDLR+1 /ALLOW TWO PAGE HANDLERS
1146 DCA ASADR
1147 CIF 10
1148 JMS I (200
1149NUMX,
1150AS, 0
1151 0
1152 0
1153ASADR, HNDLR+1
1154 JMP I (CDER0
1155 TAD AS+2
1156ASGNST, DCA I (DVICE
1157 JMP I ASSIGN
1158\fDFLTNM, DEVICE DSK
1159GETHND, 11 /1+11=12 (1=FETCH, 12=INQUIRE)
1160
1161LOVE, 0
1162 TAD NAME1
1163 TAD (-1417
1164 SZA CLA
1165 JMP I LOVE
1166 TAD NAME2
1167 TAD (-2605
1168 SZA CLA
1169 JMP I LOVE
1170 TAD NAME3
1171 TAD NAME4
1172 SZA CLA
1173 JMP I LOVE
1174 JMS I (PRINT
1175 LOVMES
1176 JMP I LOVE
1177
1178FILDMY, FILENAME DUMMY.SV
1179
1180SEMSG, SEMSG1
1181 SEMSG2
1182 SEMSG3
1183 SEMSG4
1184 PAGE
1185\f/GETS A NAME FROM FIELD ZERO BUFFER VIA LXR
1186/RETURNS WITH DELIMETER IN AC
1187/GIVES ERROR MESSAGE IF NAME IS BAD
1188
1189TN, /DON'T CALL CCLSWT FROM GNAME UNLESS THIS IS MOVED
1190GNAME, 0
1191 DCA NAME1
1192 DCA NAME2
1193 DCA NAME3
1194 DCA NAME4
1195 TAD (NAME1
1196 DCA NMBASE
1197 CLA CMA
1198 DCA PERDSW
1199 DCA NAMECT
1200 JMS I (GCH
1201 TAD (-"#
1202 SNA
1203 JMP NUMCON
1204 TAD ("#
1205 SKP
1206GTNMLP, JMS I (GCH
1207 DCA DELIM
1208 TAD DELIM
1209 TAD (-"?
1210 SZA
1211 TAD ("?-"*
1212 SNA
1213STARSW, JMP I (CDER6 /"JMP STARNM"
1214 /IF "SPECIAL DECODE" MODE
1215 TAD ("*-".
1216 SNA CLA
1217 JMP PERIOD
1218 TAD DELIM
1219 JMS I (DECODE
1220 JMP LV
1221STARNM, CLA /THIS CODE HANDLES *'S AND ?'S CORRECTLY
1222 TAD DELIM
1223 AND (77
1224 DCA DELIM
1225 TAD NAMECT
1226 TAD (-6
1227 SMA CLA
1228 JMP GTNMLP
1229 TAD NAMECT
1230 CLL RAR
1231 TAD NMBASE
1232 DCA TT
1233 TAD DELIM
1234 SNL
1235 JMS I (ROTL
1236 TAD I TT
1237 DCA I TT
1238 ISZ NAMECT
1239 JMP GTNMLP
1240PERIOD, TAD NAME1
1241 SZA CLA
1242 ISZ PERDSW
1243 JMP I (CDER7 /NULL NAME OR DOUBLE EXTENSION
1244 ISZ NMBASE
1245 TAD (4
1246 DCA NAMECT
1247 JMP GTNMLP
1248\fCCLSWT, 0
1249 TAD DELIM
1250 TAD (-"-
1251 SZA CLA
1252 JMP I CCLSWT
1253 TAD I (OUTSW
1254 SZA CLA
1255 JMP I (CDER4 /CCL EXT ON OUTPUT FILE
1256 TAD (SWTCHS
1257 DCA DEF
1258 JMS GETL
1259 JMP I (CDER44 /NON-ALPHANUMERIC CCL SWITCH
1260 JMS I (ROTL
1261 DCA TN
1262 JMS GETL
1263 JMP XLK2 /ONE CHAR CCL SWITCH
1264 TAD TN
1265 DCA TN
1266 JMS GETL
1267XLK2, SKP CLA /2 CHAR CCL SWITCH
1268 JMP I (CDER44 /3 CHAR CCL-SWITCH
1269 TAD TN
1270 JMS I (EXTLUK
1271 CLA
1272 ISZ DEF
1273 TAD I DEF
1274 DCA GETL /GET PTR TO ARGUMENT PAIR
1275 TAD I GETL /GET SUBROUTINE
1276 DCA PERDSW
1277 ISZ GETL
1278 TAD I GETL /GET ARGUMENT
1279 JMS I PERDSW /CALL SUBR, ARG IN AC
1280 JMP CCLSWT+1
1281\fGETL, 0
1282 JMS I (GCH
1283 DCA DELIM
1284 TAD DELIM
1285 JMS I (DECODE
1286 JMP I GETL /NON-ALPHANUM IN CCL SWITCH
1287 CLA
1288 TAD DELIM
1289 AND (77
1290 ISZ GETL
1291 JMP I GETL
1292
1293NUMCON, JMS I (NUMC
1294LV, CLA
1295 TAD DELIM
1296 JMP I GNAME
1297
1298PERDSW, 0
1299NAMECT, 0
1300 PAGE
1301\fLOOKUP, 0
1302 DCA LNAME
1303 TAD NAME1
1304 SNA CLA
1305 JMP LKUPST
1306 TAD I (PERDSW
1307 TAD NAME4
1308 SNA CLA
1309 CLA IAC /FORCE NAMERM NON-0 IF . AND NO EXT
1310 TAD NAME4
1311 DCA NAMERM /REMEMBER TYPED EXTENSION
1312 TAD DEFALT
1313 DCA DEF
1314 TAD I (SETEXT
1315 SNA /HAS AN EXTENSION BEEN SET?
1316 TAD NAMERM /NO
1317 SNA /DOES FILE HAVE EXTENSION?
1318 JMP EXT2 /NO EXTENSION TYPED OR SET, DO SUCCESSIVE LOOK-UPS
1319 JMS EXTLUK /LOOK FOR EXTENSION
1320 SNA CLA /DID WE FIND IT?
1321 JMP EXT3 /NO, FORCE NULL EXTENSION TO MATCH
1322EXT2, TAD I DEF
1323 IAC
1324 SNA CLA
1325 JMP NEXTEXT /IGNORE -1'S
1326 TAD NAMERM
1327 SZA CLA
1328 JMP EXT3
1329 TAD I DEF
1330 DCA NAME4 /SET NEW EXTENSION
1331EXT3, TAD (NAME1
1332 DCA LNAME
1333 TAD I (AS+2
1334 JMS I (200
1335 2
1336LNAME, 0 /NAME1
1337LENGTH, 0
1338 JMP LFAILD
1339 ISZ DEF /POINT TO FOLLOW-UP SUBROUTINE
1340 TAD I DEF
1341 JMS JMSUB /CALL IT
1342 TAD LENGTH
1343 CLL
1344 TAD (400
1345 SNL
1346CLACON, 7600 /CLA
1347 CLL RTL
1348 RTL
1349 AND (7760
1350LKUPST, TAD DVICE
1351 JMP I LOOKUP
1352\fLFAILD, TAD NAMERM
1353 SNA CLA /WAS THERE AN EXPLICIT EXTENSION?
1354 TAD I DEF /NO - WAS THERE A DEFAULT EXTENSION?
1355 SNA CLA
1356 JMP I (CDER3 /NO DEFALT EXTENSION OR YES EXPLICIT EXTENSION
1357NEXTEXT,ISZ DEF /NO EXPLICIT EXT AND YES DEFAULT EXT
1358 ISZ DEF /POINT TO NEXT POSSIBLE DEFAULT EXTENSION
1359 JMP EXT2 /AND TRY FOR IT
1360
1361NAMERM, 0
1362DVICE, 0
1363
1364EXTLUK, 0
1365 CIA
1366 DCA T
1367XLUK, TAD I DEF
1368 SNA /AT NULL?
1369 JMP I EXTLUK /YES
1370 TAD T /NO
1371 SNA CLA /MATCH?
1372 JMP MAT /YES
1373 ISZ DEF /NO
1374 ISZ DEF /POINT TO NEXT ENTRY
1375 JMP XLUK /TRY AGAIN
1376MAT, TAD I DEF /RETURN WITH IT IN AC
1377 JMP I EXTLUK
1378
1379TS,
1380ZERSUB, 0
1381 TAD I (7601
1382 SNA CLA /WAS FILENAME SPECIFIED ON ZERO CMD?
1383 TAD I CLACON /OR WAS NO OUT DEVICE SPECIFIED?
1384 SNA CLA
1385 JMP I (CDER2 /YES... ERROR
1386 JMP I ZERSUB /NO, OKAY.
1387\fIOERR, JMS I (PRMESG
1388 SYSER
1389
1390EXSUB, 0
1391 TAD BASPTR /PUSH PTR BACK TO BEGIN OF ENTRIES
1392 JMS I (REMEM /REMEMBER THIS IN DEPENDENT WORD
1393 2
1394 JMP I EXSUB
1395
1396JMSUB, 0
1397 SNA
1398 JMP I JMSUB
1399 DCA TS
1400 JMS I TS
1401 JMP I JMSUB
1402\fSPOOLIT,0
1403 JMS I (BATCH /IS BATCH RUNNING?
1404 JMP I SPOOLIT /NO
1405 DCA CB /YES
1406 TAD I DEFALT
1407 TAD (-5200
1408 SNA CLA
1409 TAD I DEFALT /LEAVE 5200 IN AC IF SPECIAL MODE
1410CB, HLT /CIF TO FIELD OF BATCH
1411 JMS I (BATSPL /ALLOW BATCH TO SPOOL STUFF
1412 JMP I SPOOLIT
1413
1414GOO, TAD PTR
1415BASPTR, DCA BASPTR
1416 JMP I (GO
1417 PAGE
1418\fSLSHCH, 0
1419 DCA DELIM
1420 TAD (MPARAM-1
1421 DCA T
1422 TAD DELIM
1423 JMS DECODE
1424 JMP CDER8
1425 SZL
1426 TAD (32
1427 CMA STL /THE FOLLOWING TURNS
1428 /ON THE CORRECT OPTION BIT
1429 DCA TT
1430SLSHLP, SZL
1431 ISZ T
1432 RAR
1433 SNL
1434 ISZ TT
1435 JMP SLSHLP
1436 DCA TT
1437 TAD TT
1438 CMA
1439 AND I T
1440 TAD TT
1441 DCA I T
1442 JMP I SLSHCH
1443
1444/THIS ROUTINE DETERMINES IF THE CHARACTER IN THE AC IS A LETTER OR DIGIT
1445/IF LETTER, RETURNS TO RET+1 WITH LETTER-"A IN AC AND LINK=0
1446/IF DIGIT, RETURNS TO RET+1 WITH DIGIT-"0 IN AC AND LINK=1
1447/IF NEITHER, RETURNS TO RET WITH CHAR-"A IN AC.
1448DECODE, 0
1449 TAD (-"9-1 /MIGHT BE CALLED WITH ANY DF
1450 CLL
1451 TAD ("9+1-"0
1452 SZL
1453 JMP DCDYES
1454 TAD ("0-"Z-1
1455 CLL CML
1456 TAD ("Z-"A+1
1457 SNL
1458DCDYES, ISZ DECODE
1459 JMP I DECODE
1460
1461CDER8, CLA
1462 JMS I (PRMESG
1463 BADOPT
1464\fZEROCD, 0
1465 TAD (-42 /AC MAY BE NON-0
1466 DCA T
1467 TAD (MOFILE-1
1468 DCA XR
1469 DCA I XR /ZERO THE COMMAND DECODER OUTPUT AREA
1470 ISZ T
1471 JMP .-2
1472 JMP I ZEROCD
1473
1474GCH, 0
1475 JMS GLXR
1476 TAD (-240
1477 SNA
1478 JMP GCH+1
1479 TAD (240-"/
1480 SNA
1481 JMP SLASH
1482 TAD ("/-"(
1483 SNA
1484 JMP OPENP
1485 TAD ("(
1486 JMP I GCH
1487SLASH, JMS GLXR
1488 JMS SLSHCH
1489/*** CAN'T PUT /A:VAL HERE BECAUSE GCH AINT RECURSIVE
1490 JMP GCH+1
1491OPENP, JMS GLXR
1492 TAD (-")
1493 SNA
1494 JMP GCH+1
1495 TAD (")
1496 JMS SLSHCH
1497 JMP OPENP
1498
1499GLXR, 0
1500 CDF 0
1501 ISZ LXR
1502 TAD I LXR
1503 CDF 10
1504 JMP I GLXR
1505\fOLENGT, TAD I (OUTSW
1506 AND NAME1 /[N] IS ONLY LEGAL
1507 /ON THE OUTPUT SIDE OF THE "_"
1508 SNA CLA /AND ONLY AFTER A FILE NAME
1509 JMP I (CDER2
1510 TAD (-4
1511 TAD CLXR
1512 DCA NMBASE
1513 CLA CLL CML RTL
1514 DCA I (NUMFUJ /SET "NUMBER" TO ACCEPT
1515 /DIGITS 8 AND 9
1516 STA /ALLOW DECIMAL
1517 JMS I (NUMBER
1518 CLL RTL
1519 RTL
1520 AND (7760
1521 TAD I NMBASE
1522 DCA I NMBASE
1523 CDF 0
1524 TAD DELIM
1525 TAD (-"] /IS THERE A CLOSING BRACKET?
1526 SNA /IF NOT,
1527 /"DLOOK" ROUTINE WILL DETECT IT
1528 JMS GCH
1529 DCA DELIM
1530 JMP I (DLOOK
1531\fBASUB, 0
1532 TAD (200 /SET /Q SWITCH
1533 DCA I (MPARAM+1
1534 JMP I BASUB
1535 PAGE
1536\fPRMESG, 0
1537 CLA
1538 TAD I PRMESG
1539 DCA .+2
1540 JMS PRINT
1541 HLT
1542LEAVE, JMS I (TWAIT
1543/V3D TCF
1544 CIF CDF 0
1545 TAD FATALFLG
1546 SNA CLA
1547 JMP I (7605
1548FATALFLG,0 /CIF CDF BATCH FIELD IF WANT TO ABORT
1549 JMP I (BATERR
1550
1551PRWD, 0
1552 DCA T
1553 TAD T
1554TTY212, RTR
1555 RTR
1556 RTR
1557 JMS PCHAR
1558 TAD T
1559 JMS PCHAR
1560 JMP I PRWD
1561
1562PCHAR, 0
1563 AND (77
1564 SNA
1565 JMP I PCHAR /IGNORE NULLS
1566 TAD (240
1567 AND (77
1568 TAD (240 /CAN'T USE 'TTY240'
1569 JMS TYPE
1570 JMP I PCHAR
1571
1572PRNAME, 0
1573 TAD NAME1
1574 JMS PRWD
1575 TAD NAME2
1576 JMS PRWD
1577 TAD NAME3
1578 JMS PRWD
1579 TAD NAME4
1580 SNA CLA
1581 JMP I PRNAME
1582 TAD (256
1583 JMS PCHAR
1584 TAD NAME4
1585 JMS PRWD
1586 JMP I PRNAME
1587\fTYPE, 0
1588 DCA TE2
1589 JMS I (BATCH
1590 JMP TTYOUT
1591 DCA CIFB
1592CIFB, HLT /REPLACED BY CIF BATCH FIELD
1593 TAD TE2
1594 JMS I (BATOUT
1595 TAD TE2
1596 TAD (-"#
1597TTY240, SZA CLA
1598 JMP I TYPE
1599 TAD CIFB
1600 IAC /CONVERT CIF TO CIF CDF
1601 DCA FATALFLG
1602 JMP I TYPE
1603
1604TTYOUT, TAD TE2
1605 TAD (-"# /DON'T TYPE #'S
1606 SNA CLA
1607 JMP I TYPE
1608 TAD T7600
1609 KRS
1610 TAD (-7603
1611 SNA
1612 JMP LEAVE
1613 TAD (203-217
1614 SNA CLA
1615 JMP I TYPE
1616 TAD TE2
1617TJUMP, JMP .+3
1618 TSF
1619 JMP .-1
1620 TLS
1621T7600, 7600
1622 TAD (7000
1623 DCA TJUMP
1624 JMP I TYPE
1625\fPRINT, 0
1626 DCA CRLF /AC NON-0 MEANS DON'T CRLF
1627 TAD I PRINT
1628 ISZ PRINT
1629 DCA TE
1630PRINTP, CDF 0
1631 TAD I TE
1632 CDF 10
1633 JMS PRWD
1634 CDF 0
1635 TAD I TE
1636 CDF 10
1637 ISZ TE
1638 AND (77
1639 SZA CLA
1640 JMP PRINTP
1641 TAD CRLF
1642 SNA CLA
1643 JMS CRLF
1644 JMP I PRINT
1645TE, 0
1646TE2, 0
1647\fCRLF, 0
1648 TAD (215
1649 JMS TYPE
1650 TAD TTY212
1651 JMS TYPE
1652 JMP I CRLF
1653
1654CDER2, JMS PRMESG
1655 BADSYN
1656
1657P1, NMOVE
1658 7605
1659 PAGE
1660\fCCERB, JMS I (PRMESG
1661 BADSW
1662CDER1, JMS I (PRMESG
1663 TOOMAN
1664CDER5, JMS I (PRMESG
1665 BADNUM
1666CCER1, TAD I (NAMPTR
1667 DCA NMX
1668 TAD (-4
1669 JMS I (MOVE
1670 CDF 10
1671NMX, 0
1672 CDF 10
1673 NAME1
1674CDER3, TAD (4300
1675 JMS I (PRWD /#
1676 JMS I (PRNAME
1677 JMS I (PRMESG
1678 NF
1679
1680CCER2, TAD I (DVNM1
1681 DCA DEV1
1682 TAD I (DVNM2
1683 DCA DEV2
1684CDER0, TAD DEV1
1685 SNA CLA
1686 JMP I (CDER2 /B DOES NOT EXIST
1687 TAD (4300 /#
1688 JMS I (PRWD
1689 TAD DEV1
1690 JMS I (PRWD
1691 TAD DEV2
1692 JMS I (PRWD
1693 JMS I (PRMESG
1694 DNE
1695\fKILRT, 0
1696 JMS I (PRINT
1697 KILMES
1698 JMP I KILRT
1699
1700RENRT, 0
1701 JMS I (PRINT
1702 RENMES
1703 JMP I RENRT
1704
1705MOVRT, 0
1706 JMS I (PRINT
1707 MOVMES
1708 JMP I MOVRT
1709
1710SWTCHS, 1423; P1 /LS
1711 1602; P2 /NB
1712 1520; P3 /MP
1713 1400; P4 /L
1714 2400; P5 /T
1715 2300; P6 /S
1716 2000; P7 /P
1717 0400; P8 /D
1718 1600; P9 /N
1719 0000; P10 /UNKNOWN
1720 ZBLOCK 2 /PATCH ROOM FOR USER
1721
1722P2, DONB
1723 0
1724
1725P3, NMOVE
1726 7612
1727
1728P7, SETDEV
1729 PTPDEV
1730
1731P9, SETDEV
1732 NULDEV
1733
1734P10, UNKN
1735 0
1736\fSCAN, 0
1737 TAD (BEGLN
1738 DCA T
1739 CDF 0
1740 JMS BLSCAN /IGNORE INITIAL SPACES
1741 JMP CHK
1742NOBLUP, CLA
1743 ISZ T
1744 TAD I T
1745CHK, SNA
1746 JMP ENDOFB
1747 JMS I (DECODE
1748 SKP CLA
1749 JMP NOBLUP
1750 JMS BLSCAN
1751ENDOFB, DCA DELIM
1752 STA
1753 TAD T
1754 CDF 10
1755 DCA I (LBEGIN
1756 JMP I SCAN
1757
1758BLSCAN, 0
1759 TAD I T
1760 TAD (-240
1761 SZA
1762 JMP BL2
1763 ISZ T
1764 JMP BLSCAN+1
1765BL2, TAD (240
1766 JMP I BLSCAN /LEAVE CHAR IN AC
1767 PAGE
1768\f ALTMODE=233
1769
1770SETPA, 0
1771 JMS I (SETX
1772 "P;"A /KEEP HERE TO MAKE EASY TO PATCH
1773 JMP I SETPA
1774
1775MAKSUB, 0
1776 TAD DELIM
1777 SNA CLA
1778 JMP CMDERR /DON'T ALLOW MAKE <CR>
1779 JMS SETLXR
1780 JMS I (GETSPC
1781 JMS I (LOVE
1782 JMS TECPUT
1783 "E;"W;0
1784 JMS TECMOV
1785 JMS SETPA
1786 JMS TECPUT
1787 ALTMODE;0
1788 JMS I (CHKSUP
1789 JMS I (REMEM
1790 0
1791 JMP I MAKSUB
1792
1793SETLXR, 0
1794 TAD I (LBEGIN
1795 DCA LXR
1796 TAD (MOFILE-1
1797 DCA I (TYR
1798 TAD (-5 /ZERO OPTION TABLE TOO
1799 JMS I (ZEROCD
1800 TAD LXR
1801 DCA SAVLXR
1802 JMP I SETLXR
1803
1804/PUT FOLLOWING CHARS INTO TECO BUFFER VIA TXR
1805
1806TECPUT, 0
1807/ TAD NAME1
1808/ SNA CLA
1809/ JMP I (CDER2
1810 TAD I TECPUT
1811 ISZ TECPUT
1812 SNA
1813 JMP I TECPUT
1814 JMS I (TPUT
1815 JMP TECPUT+1
1816\f/MOVE CHARS FROM FIELD 0 LINE BUFFER
1817/FROM SAVLXR+1 TO LXR-1 INCLUSIVE
1818/INTO TECO LINE BUFFER AT 17600
1819
1820TECMOV, 0
1821 TAD SAVLXR
1822 DCA XR2
1823 TAD SAVLXR
1824 CMA
1825 TAD LXR
1826 SNA CLA
1827 JMP I (CDER2 /NO FILE SPEC
1828TECL, CDF 0
1829 TAD I XR2
1830 CDF 10
1831 JMS I (TPUT
1832 TAD XR2
1833 CMA
1834 TAD LXR
1835 SNA CLA
1836 JMP I TECMOV
1837 JMP TECL
1838\fTECSUB, 0
1839 JMS SETLXR
1840 JMS I (GETSPC
1841 TAD DELIM
1842 SNA
1843 JMP TECNORM
1844 TAD (-"< /ALLOW "_" AS WELL AS "<"
1845 SNA
1846 JMP EXTEN
1847 TAD ("<-"_
1848 SZA CLA
1849 JMP I (CDER2
1850EXTEN, CDF 0
1851 DCA I LXR /CHANGE < TO 0
1852 CDF 10
1853 JMS TECPUT
1854 "E;"W;0
1855 JMS TECMOV
1856 JMS SETPA
1857 TAD LXR
1858 DCA SAVLXR
1859 JMS I (CHKSUP
1860 JMS I (GETSPC
1861 JMS TECPUT
1862 ALTMODE;"E;"R;0
1863 JMS TECMOV
1864 JMS SETPA
1865 JMS TECPUT
1866 ALTMODE;"Y;0
1867 JMP TECLV
1868\fTECNORM,JMS TECPUT
1869 "E;"B;0
1870 JMS TECMOV
1871 JMS SETPA
1872 JMS TECPUT
1873 ALTMODE;"Y;0
1874TECLV, JMS I (REMEM
1875 0
1876 JMP I TECSUB
1877SAVLXR, 0
1878
1879CMDERR, JMS I (PRMESG /NOT A LEGAL KEYWORD
1880 ERRCMD
1881 PAGE
1882\fTPUT, 0
1883 AND (177 /TECO LIKES 7-BIT
1884 ISZ TYR
1885 DCA I TYR
1886 TAD TYR
1887 TAD (-7646 /CHECK FOR OVERFLOW OF CD AREA
1888 SZA CLA
1889 JMP I TPUT
1890CDER9, JMS I (PRMESG
1891 TOOLNG
1892
1893MNGSUB, 0
1894 JMS I (SETLXR
1895 JMS I (GETSPC
1896 JMS I (TECPUT
1897 "E;"R;0
1898 JMS I (TECMOV
1899 JMS SETX
1900 "T;"E
1901EXTOK, JMS I (TECPUT
1902 ALTMODE;"Y;"H;"X;"Y;"H;"K;"I;0
1903 TAD DELIM
1904 SNA
1905 JMP IFIN
1906 TAD (-",
1907 SZA CLA
1908 JMP I (CDER2
1909G, STL CLA RAR /PREVENT 'GCH' FROM HANDLING SPACE AND /
1910 JMS I (GCH
1911 AND (177 /GET RID OF HIGH ORDER BIT
1912 SNA
1913 JMP IFIN
1914 JMS TPUT
1915 JMP G
1916IFIN, JMS I (TECPUT
1917 ALTMODE;"M;"Y;0 /MACRO GETS CALLED WITH POINTER PAST CHARS
1918 JMP I MNGSUB
1919TYR, 0
1920\f/SET DEFAULT EXTENSION
1921
1922SETX, 0
1923 TAD I SETX
1924 DCA C1
1925 ISZ SETX
1926 TAD I SETX
1927 DCA C2 /FALL THRU 2ND EXT
1928 TAD NAME4
1929 SNA CLA
1930 TAD NAME1
1931 SNA CLA
1932 JMP I SETX
1933 TAD I TYR /GET LAST CHAR (NO EXT)
1934 TAD (-56 /WAS IT A DOT?
1935 SNA CLA
1936 JMP I SETX /YES
1937 JMS I (TECPUT /NO, USE DEFAULT EXTENSION
1938 ".
1939C1, 0
1940C2, 0
1941 0
1942 TAD C1
1943 AND (77
1944 JMS I (ROTL
1945 DCA C1
1946 TAD C2
1947 AND (77
1948 TAD C1
1949 DCA NAME4
1950 JMP I SETX
1951
1952CCERA, JMS I (PRMESG
1953 CONTRA
1954\fCRSUB, 0
1955 TAD I (7617
1956 SNA CLA /BETTER BE NO INPUT
1957 TAD I (7600 /ANYTHING THERE?
1958 SNA CLA
1959 JMP I (CDER2 /NO OUTPUT OR YES INPUT
1960 JMS EDSUB /REMOVE BACK-ARROW AND REMEMBER CREATE LINE
1961 JMP I CRSUB
1962
1963EDSUB, 0
1964 CDF 0
1965 DCA I ARLOC /REPLACE ARROW BY NULL
1966 CDF 10
1967 JMS I (REMEM /REMEMBER NEW COMMAND LINE
1968 1
1969 JMP I EDSUB
1970
1971ARLOC, . /LOCATION OF BACK-ARROW IN COMMAND LINE
1972 /'.' IS HARMLESS PTR IN CASE NO ARROW
1973
1974CCER3, CDF 10
1975 JMS I (PRMESG
1976 BADMON
1977
1978CDER4, CLA
1979 JMS I (PRMESG
1980 BADSW
1981CDER44, CLA
1982 JMS I (PRMESG
1983 BADSW2
1984CDER7, JMS I (PRMESG
1985 BADX
1986CDER6, JMS I (PRMESG
1987 BADSTR
1988 PAGE
1989\fINSARR, 0
1990 TAD (BEGLN
1991 DCA XR
1992 CDF 0
1993 TAD I XR
1994 SZA CLA
1995 JMP .-2
1996 STA
1997 TAD XR
1998 DCA XR
1999 TAD ("<
2000 DCA I XR
2001 DCA I XR
2002 CDF 10
2003 STA
2004 TAD XR
2005 DCA I (ARLOC /REMEMBER WHERE WE INSERTED A "_"
2006 JMP I INSARR
2007
2008BKA, 0
2009 TAD I (LBEGIN
2010 DCA CLXR
2011GG, CDF 0
2012 ISZ CLXR
2013 TAD I CLXR
2014 CDF 10
2015 SNA
2016 JMP NOBKAR
2017 TAD (-"<
2018 SNA
2019 JMP I BKA
2020 TAD ("<-"_
2021 SZA CLA
2022 JMP GG
2023 TAD ("<
2024 CDF 0
2025 DCA I CLXR
2026 CDF 10
2027 JMP I BKA
2028NOBKAR, ISZ BKA
2029 JMP I BKA
2030\fAT, 0
2031 CIF CDF 0
2032 JMS I (SEMI
2033ATMORE, TAD (BEGLN-1
2034 DCA LXR
2035ATLOOP, JMS I (GLXR
2036 SNA
2037 JMP I AT
2038 TAD (-300
2039 SZA CLA
2040 JMP ATLOOP
2041 TAD LXR
2042 DCA I (SAVL
2043 JMS I (FUDG
2044 JMS I (GETSPC
2045 JMS I (ASSIGN
2046 DCA I (SETEXT
2047 TAD (EXTCM
2048 DCA DEFALT
2049 JMS I (LOOKUP
2050 SZA CLA /V3C
2051 TAD I (ASADR
2052 SNA
2053 JMP I (ATERR /IF NO FILESPEC AFTER @, ERROR
2054 DCA T
2055 TAD I (LNAME /GET BLOCK NUMBER
2056 DCA BLN
2057 CIF 0
2058 JMS I T
2059 200 /READ 2 PAGES
2060NWB, BFR+200 /INTO BUFFER
2061COUNT,
2062BLN, 0 /FROM THIS BLOCK
2063 JMP I (ATERR / I/O ERROR
2064 TAD (-200
2065 DCA COUNT
2066 TAD (BFR-1
2067 DCA XR
2068 TAD NWB
2069 DCA T
2070 CDF 0
2071ALP, TAD I T
2072 JMS I (P
2073 CLL RTR
2074 RTR
2075 DCA BKA
2076 ISZ T
2077 TAD I T
2078 JMS I (P
2079 CLL RTL
2080 RTL
2081 RAL
2082 TAD BKA
2083 JMS I (P
2084 CLA
2085 ISZ T
2086 ISZ COUNT
2087 JMP ALP
2088 JMP I (ATOVER
2089
2090/ATFIN, TAD LXR
2091/ TAD (-BEGLN
2092/ SZA CLA
2093/ JMP I AT /LEAVE
2094/ JMP I (LEAVE /LEAVE BECAUSE LINE NOW EMPTY
2095 PAGE
2096\fP, 0
2097 AND (177
2098 SNA
2099 JMP CTZ /END AT 0 OR ^Z
2100 TAD (-32
2101 SNA
2102 JMP CTZ
2103 TAD (32-16 /IGNORE CR,LF,FF,VT
2104 CLL
2105 TAD (16-12
2106 SZL
2107 JMP POGO
2108 TAD (212 /FORCE 8-BIT
2109 DCA I XR
2110POGO, CLA
2111 TAD I T
2112 AND (7400
2113 JMP I P
2114\fCTZ, CDF 10
2115 TAD LXR
2116 DCA ATEND
2117 STA
2118 TAD LXR
2119 DCA LXR /INCASE @ GOES TO EOL
2120 JMS I (GLXR /SEARCH FOR EOL
2121 SZA CLA
2122 JMP .-2
2123 TAD LXR
2124 CMA
2125 TAD ATEND
2126 DCA ENDLEN
2127 TAD XR
2128 CMA
2129 TAD (BFR /GET LENGTH OF INSERTED STUFF
2130 DCA NEWLEN
2131 CDF 0
2132 TAD I ATEND /GET NEXT CHAR AFTER FILESPEC
2133 CDF 10 /V3C
2134 TAD (-"'
2135 SZA CLA /IS IT AN APOSTROPHE?
2136 JMP .+3 /NO
2137 ISZ ENDLEN /YES
2138 ISZ ATEND /MAKE IT GO AWAY
2139 TAD ENDLEN
2140 JMS I (MOVE /MOVE REST OF LINE UP
2141 CDF 0
2142ATEND, 0 /FIRST CHAR POSITION AFTER @ SPEC
2143 CDF 0
2144 BEGLN+1000
2145 TAD NEWLEN /IF 0, 'MOVE' WILL IGNORE IT
2146 JMS I (MOVE /MOVE IN NEW STUFF
2147 CDF 0
2148 BFR
2149 CDF 0
2150SAVL, 0 /POINTS TO @
2151 TAD NEWLEN
2152 CIA
2153 TAD SAVL
2154 DCA NEWEND
2155 CLL
2156 TAD NEWEND
2157 TAD (-BEGLN-1000
2158 SZL CLA
2159 JMP ATOVER
2160 TAD ENDLEN
2161 JMS I (MOVE /MOVE BACK END
2162 CDF 0
2163 BEGLN+1000
2164 CDF 0
2165NEWEND, 0 /FIRST POSITION AFTER NEW STUFF
2166 JMP I (ATMORE /LOOK FOR MORE
2167\fATOVER, JMS I (PRMESG
2168 OVFLOW
2169GETMP,
2170ENDLEN, 0 /- NO. OF CHARS AT END INCLUDING 0
2171
2172NUMC, 0
2173 TAD (SKP
2174 DCA I (NUMSKP
2175 TAD (-11
2176 DCA I (NUMKNT
2177 JMS I (NUMBER
2178 DCA NAME2
2179 TAD I (HIORD
2180 DCA NAME1
2181 STA
2182 TAD LXR
2183 DCA LXR
2184 TAD (-11
2185 DCA I (NUMKNT
2186 JMS I (NUMBER
2187 DCA NAME4
2188 TAD I (HIORD
2189 DCA NAME3
2190 TAD (SPA
2191 DCA I (NUMSKP
2192 JMP I NUMC
2193\fNEWLEN, /- NO. OF CHARS BEING INSERTED
2194GETYR, 0
2195 AND (7
2196 DCA GETMP
2197 CDF 0
2198 TAD I (7777
2199 CDF 10
2200 CLL RTR
2201 RTR
2202 AND (30
2203 TAD GETMP
2204 JMP I GETYR
2205 PAGE
2206\f/ TAD (-# OF LOCS TO MOVE
2207/ JMS MOVE
2208/ FROM CDF
2209/ FROM LOC
2210/ TO CDF
2211/ TO LOC
2212
2213MOVE, 0
2214 DCA T
2215 TAD I MOVE /GET FROM CDF
2216 DCA FRCDF
2217 ISZ MOVE
2218 STA
2219 TAD I MOVE /GET FROM LOC-1
2220 DCA XR
2221 ISZ MOVE
2222 TAD I MOVE /GET TO CDF
2223 DCA TOCDF
2224 ISZ MOVE
2225 STA
2226 TAD I MOVE /GET TO LOC-1
2227 DCA XR2
2228 ISZ MOVE /POINT TO RETURN
2229 TAD T
2230 SNA CLA
2231 JMP I MOVE /V1A IGNORE 0 MOVE
2232FRCDF, HLT
2233 TAD I XR
2234TMP1,
2235TOCDF, HLT
2236 DCA I XR2
2237 ISZ T
2238 JMP FRCDF
2239 CDF 10
2240 JMP I MOVE
2241\fDETCOR, 0
2242 CIF 0
2243 JMP I (CORE
2244 JMP I DETCOR
2245
2246BADCOR, JMS I (PRINT
2247 NOCORE
2248GOEQ, CIF CDF 0
2249 JMP I (COREQ
2250
2251ABSCOR, JMS I (PRINT
2252 CORMES
2253 JMP I DETCOR
2254
2255WRSCOR, JMS I (PRINT
2256 BATCOR
2257 JMP GOEQ
2258
2259SCRM, JMS I (PRINT
2260 SCRMES
2261 JMP I DETCOR
2262\fSQSUB, 0
2263 TAD I K7600
2264 SZA CLA
2265 JMP I SQSUB
2266 TAD I (7617
2267 DCA I K7600
2268 JMS I (BATCH /IS BATCH RUNNING?
2269 JMP I SQSUB /NO
2270K7600, 7600 /YES (CLEAR AC)
2271 TAD I K7600
2272 TAD (7647-1 /POINT INTO DEVICE HANDLER RESIDENCY TABLE
2273 DCA TMP1
2274 TAD I TMP1 /GET HANDLER STARTING ADDRESS
2275 TAD (-7607
2276 SZA CLA /IS SQUISHED DEVICE SYS:?
2277 JMP I SQSUB /NO
2278 JMS I (PRINT
2279 SQWARN /YES, WARN USER
2280 JMP I SQSUB
2281\fSETOUT, 0
2282 TAD I (FLAG
2283 RTR
2284 SZL CLA
2285 TAD (5
2286 TAD K7600
2287 DCA OLOC
2288 TAD I OLOC
2289 SZA CLA
2290 JMP I SETOUT /HE'S SPECIFIED SOMETHING
2291 JMS I (200
2292 12 /INQUIRE
2293DVNM1, 0
2294DVNM2, 0
2295 0
2296 JMP I (CCER2 /NO SUCH DEVICE
2297 TAD DVNM2
2298 DCA I OLOC
2299 TAD OLOC
2300 AND (5
2301 SNA CLA /USING 2ND OUT DEV?
2302 JMP I SETOUT /NO
2303 ISZ OLOC /YES
2304 TAD (-4
2305 JMS MOVE
2306 CDF 10
2307 NAME1
2308 CDF 10
2309OLOC, 7600 /INITIALLY 7600 OR 7605
2310 JMP I SETOUT
2311\fENGOA, TAD (-5
2312 JMS I (ZEROCD
2313 CDF 0
2314 TAD I (BLKNO
2315 CDF 10
2316 DCA I (7620
2317 CLA IAC
2318 DCA I (7617 /'CCBTCH' IS ON SYS:
2319 TAD (20 / /T OPTION
2320 DCA I (7644
2321 TAD (20 / ALSO /H (HUSH) OPTION
2322 DCA I (7643
2323 TAD (YBATCH
2324 JMP I (ZOW /CHAIN TO BATCH
2325 PAGE
2326\fDATE, 0
2327 TAD I (DATWD
2328 SNA
2329 JMP NODATE
2330 DCA DATEM
2331 TAD DATEM
2332 CLL RTL
2333 RTL
2334 RAL
2335 AND (17
2336 DCA TM1
2337 TAD TM1
2338 TAD (MONLST-1
2339 DCA TM2
2340 CDF 0
2341 TAD I TM2
2342 CDF 10
2343 DCA MONP
2344 TAD DATEM
2345 JMS I (GETYR /V3D DATE/78 ALGORITHM
2346 DCA TM2
2347 TAD TM2
2348 TAD (106 /70.
2349 CIF CDF 0
2350 JMS I (OTODY
2351 DCA YEAR
2352 TAD DATEM
2353 CLL RTR
2354 RAR
2355 AND (37
2356 DCA DATEM
2357 TAD DATEM
2358 CIF CDF 0
2359 JMS I (OTODY
2360 DCA DAY
2361 CDF 0
2362 STL CLA RTL /2
2363 TAD TM2
2364 CLL RTR
2365 SNL SMA
2366 JMP LEAP
2367 ISZ I (JAN
2368 ISZ I (FEB
2369LEAP, AND (37
2370 TAD TM2
2371 TAD (3
2372 TAD DATEM
2373 DCA DATEM
2374 TAD TM1
2375 TAD (JAN-1
2376 DCA TM1
2377 TAD I TM1
2378 CDF 10
2379 TAD DATEM
2380DIV7, CLL
2381 TAD (-7
2382 SZL
2383 JMP DIV7
2384 TAD (7
2385 TAD (WEEKLST
2386 DCA TM2
2387 CDF 0
2388 TAD I TM2
2389 CDF 10
2390 DCA WKP
2391 STA /DON'T CRLF
2392 JMS I (PRINT
2393WKP, 0
2394 STA
2395 JMS I (PRINT
2396 DAYDAY
2397 STA
2398 JMS I (PRINT
2399MONP, 0
2400 STL CLA RAR
2401 JMS I (PRWD /SPACE
2402 TAD DAY
2403 JMS I (PRWD
2404 STA
2405 JMS I (PRINT
2406 COM19
2407 TAD YEAR
2408 JMS I (PRWD
2409 JMS I (CRLF
2410 JMS I (LOOK /LOOKUP SYS:DATE.SV
2411 YDATE
2412 JMP I DATE /DO NOTHING IF IT'S NOT THERE
2413 JMP I (CHAIN /CHAIN TO IT, IF IT'S THERE
2414\fNODATE, JMS I (PRMESG
2415 NONE
2416DT, 0
2417TM2, 0
2418DATEM, 0
2419DAY, 0
2420YEAR, 0
2421\fSETDSK, 0
2422 TAD DSKDEV
2423 SZA
2424 JMP I SETDSK
2425 JMS I (200
2426 12 /INQUIRE
2427 5723 /PACKED ENCODING FOR 'DSK:'
2428DSKDEV, 0 /SET TO DEVICE NUMBER
2429 0
2430TM1, HLT /NO 'DSK' !
2431 TAD DSKDEV
2432 JMP I SETDSK
2433 PAGE
2434\f/CCL REMEMBERS UP TO 8 COMMAND LINES (EACH UP TO 55 DECIMAL
2435/SIXBIT CHARACTERS LONG) IN BLOCK 65 ON THE SYSTEM DEVICE.
2436/THIS BLOCK WHEN READ INTO 04000-04377 HAS THE FOLLOWING FORMAT:
2437
2438/4000-4037 REM-LINE 0
2439/4040-4177 REM-LINE 1
2440/4100-4137 REM-LINE 2
2441/4140-4177 REM-LINE 3
2442/4200-4237 REM-LINE 4
2443/4240-4277 REM-LINE 5
2444/4300-4337 REM-LINE 6
2445/4340-4377 REM-LINE 7
2446
2447/EACH REM-LINE HAS THE FOLLOWING FORMAT:
2448
2449/WORD 0: IN-USE FLAG, MUST BE '1234' TO INDICATE LINE WAS REMEMBERED HERE
2450/WORD 1: DATE LINE WAS REMEMBERED
2451/WORD 2: COMMAND DEPENDENT INFORMATION
2452/WORD 3: RESERVED FOR FUTURE EXPANSION
2453/WORDS 4-37 COMMAND LINE NOT INCLUDING KEYWORD OR FOLLOWING SPACES
2454/ PACKED IN 6-BIT AND TERMINATED BY A 6-BIT 0.
2455
2456/ROUTINES:
2457
2458/ TAD (DEP
2459/ JMS REMEM
2460/ N
2461
2462/REMEMBERS CURRENT LINE IN REM-LINE N. AC IS LINE DEPENDENT INFORMATION.
2463/IF LINE IS TOO BIG, THIS PRINTS A WARNING MESSAGE AND RETURNS AS IF OK.
2464
2465/ JMS RECALL
2466/ N
2467
2468/RECALLS REM-LINE N INTO BUFFER
2469/IF NOTHING THERE, PRINTS A BAD SYNTAX MESSAGE AND RETURNS TO OS/8.
2470/UPON RETURN, LINE-DEPENDENT INFO IS IN AC.
2471/IF DATES DON'T MATCH, IT'S NOT THERE UNLESS DATE = -1
2472
2473/0 USED BY TECO, MAKE COMMANDS
2474/1 USED BY EDIT, CREATE COMMANDS
2475/2 USED BY COMPILE, EXECUTE COMMANDS & PAL.
2476/ DEPENDENT WORD IS PTR TO FIRST ENTRY IN MAIN TABLE
2477
2478/3 USED BY 'UA' COMMAND
2479/4 USED BY UB
2480/5 USED BY UC
2481
2482/ JMS FOREVER
2483
2484/CAUSES NEXT CALL TO REMEM TO INSERT -1 AS DATE
2485\f REMSPACE=4000
2486 REMBLOCK=65
2487
2488REMEM, 0
2489 DCA DEP
2490 TAD I (REMD
2491 SMA CLA
2492 JMP I REMEM /DON'T REMEMBER IF JUST RECALLED
2493 JMS I (RDREM
2494 JMP I (MEMBIG
2495 TAD I REMEM
2496 ISZ REMEM
2497 CLL RTL
2498 RTL
2499 RAL /MULTIPLY BY 40
2500 TAD (REMSPACE
2501 DCA LPTR
2502 TAD (1234
2503 CDF 0
2504 DCA I LPTR
2505 CDF 10
2506 ISZ LPTR
2507FORVR, TAD I (DATWD /REPLACED BY CMA IF WANT NO DATE
2508 JMS LPUT /STORE DATE
2509 TAD DEP
2510 JMS LPUT /STORE DEPENDENT INFO
2511 JMS LPUT /RESERVED
2512 JMS I (SCAN /GO PAST KEYWORD AND BLANKS
2513 TAD I (LBEGIN
2514 DCA XR
2515RELUP, JMS I (GETF
2516 JMP LZER
2517 JMS I (ROTL
2518 DCA TML
2519 JMS I (GETF
2520 JMP RZER
2521 TAD TML
2522 JMS LPUT
2523 JMP RELUP
2524RZER, TAD TML
2525LZER, JMS LPUT
2526 JMS I (WRREM
2527 JMP I (MEMBIG
2528REMGO, JMP I REMEM
2529\fDEP, 0
2530LPTR, 0 /PTS TO REM-LINE
2531TML, 0 /TEMP
2532
2533/PUT INTO REM-LINE
2534
2535LPUT, 0
2536 DCA TML
2537 TAD LPTR
2538 AND (37
2539 SNA CLA
2540 JMP I (MEMBIG
2541 TAD TML
2542 CDF 0
2543 DCA I LPTR
2544 CDF 10
2545 ISZ LPTR
2546 JMP I LPUT
2547
2548FOREVER,0
2549 TAD LCMA
2550 DCA FORVR
2551 JMP I FOREVER /NON-ZERO MEANS SET DATE TO -1
2552\fRECALL, 0
2553 JMS I (RDREM
2554 JMP I (REMERR
2555 TAD I RECALL
2556 ISZ RECALL
2557 JMS I (ROTL
2558 RAR
2559 TAD (REMSPACE
2560 DCA LPTR
2561 JMS LGET
2562 TAD (-1234
2563 SZA CLA
2564 JMP I (REMER2
2565 JMS LGET
2566 SNA
2567 JMP I (REMER2
2568LCMA, CMA
2569 SNA
2570 JMP FOREV
2571 IAC
2572 TAD I (DATWD /SAME DAY?
2573 SZA CLA
2574 JMP I (REMER2
2575FOREV, JMS LGET
2576 DCA DEP
2577 JMS LGET /IGNORE RESERVED WORD
2578 CLA
2579 TAD (BEGLN-1
2580 DCA XR
2581 TAD (BEGLN-1
2582 DCA I (LBEGIN
2583RECLUP, JMS LGET
2584 DCA TML
2585 TAD TML
2586 JMS I (ROTL
2587 RAL
2588 JMS I (PUTF
2589 JMP RECLV
2590 TAD TML
2591 JMS I (PUTF
2592 JMP RECLV
2593 JMP RECLUP
2594
2595RECLV, TAD DEP
2596 JMP I RECALL
2597\fLGET, 0
2598 CDF 0
2599 TAD I LPTR
2600 CDF 10
2601 ISZ LPTR
2602 JMP I LGET
2603 PAGE
2604\fPUTF, 0
2605 AND (77
2606 SNA
2607 JMP PUTZ
2608 ISZ PUTF
2609 TAD (240
2610 AND (77
2611 TAD (240
2612PUTZ, CDF 0
2613 DCA I XR
2614 CDF 10
2615 JMP I PUTF
2616
2617CHKSUP, 0
2618 JMS FUDG
2619 JMS I (ASSIGN
2620 TAD NAME1
2621 SNA CLA
2622 JMP I CHKSUP /CAN'T SUP IF NO FILENAME
2623 TAD I (DVICE
2624 JMS I (LOOK /LOOK UP FILE
2625 NAME1
2626 JMP I CHKSUP /NOT FOUND (GOOD)
2627 JMS I (PRINT
2628 SUP
2629 JMP I CHKSUP
2630
2631REMERR, JMS I (PRMESG
2632 REMBAD
2633REMER2, JMS I (PRMESG
2634 BADREM
2635\fMEMBIG, CLA
2636 JMS I (PRINT
2637 MEMWARN
2638 JMP I (REMGO
2639
2640RDREM, 0
2641 CIF 0
2642 JMS I (7607
2643 200 /READ 2 PAGES INTO FIELD 0
2644 4000 /LOCATION 4000
2645 REMBLOCK
2646 SKP CLA
2647 ISZ RDREM
2648 JMP I RDREM
2649
2650WRREM, 0
2651 CIF 0
2652 JMS I (7607
2653 4200 /WRITE 2 PAGES FROM FIELD 0
2654 4000 /LOCATION 4000
2655 REMBLOCK
2656 SKP CLA
2657 ISZ WRREM
2658 JMP I WRREM
2659
2660FUDG, 0
2661 DCA I (OUTSW /LOAD HANDLER
2662 TAD I (OUTLIM
2663 CIA
2664 DCA CLXR
2665 JMP I FUDG
2666\fK8, 0
2667 TAD (1716
2668 JMS I (PRWD
2669 TAD (1431
2670 JMS I (PRWD
2671 CIF CDF 0
2672 JMP I K8
2673
2674ROTL, 0
2675 CLL RTL
2676 RTL
2677 RTL
2678 JMP I ROTL
2679
2680/GET FROM INPUT LINE VIA XR
2681
2682GETF, 0
2683 CDF 0
2684 TAD I XR
2685 CDF 10
2686 SZA
2687 ISZ GETF
2688 AND (77
2689 JMP I GETF
2690\f/THIS GETS A DEV:NAME.EXT SPECIFICATION (USING LXR)
2691/PUTTING RESULT IN DEV1,DEV2, NAME1-4.
2692/IT GIVES A FATAL ERRORR MESSAGE IF BAD.
2693GETSPC, 0
2694 STA
2695 DCA DVFLAG
2696 DCA DEV1
2697FILLP1, DCA DEV2
2698FILLP, JMS I (GNAME
2699 TAD (-": /AC CONTAINED DELIM
2700 SNA CLA
2701 JMP DEVNAM
2702 DCA I (NUMC
2703 JMP I GETSPC
2704DEVNAM, CLA IAC
2705 TAD I (PERDSW
2706 TAD I (NUMC
2707 SZA CLA
2708 JMP CDERA /. OR # IN DEVICE NAME
2709 TAD NAME1
2710 DCA DEV1
2711 ISZ DVFLAG
2712 JMP CDERA /CATCHES A:B:
2713 TAD NAME2
2714 JMP FILLP1
2715
2716DVFLAG, 0
2717\fCDERA, JMS I (PRMESG
2718 BADEV
2719
2720ATERR, CDF 10
2721 CLA
2722 JMS I (PRMESG
2723 ATIO
2724 PAGE
2725\fCDINIT, 0
2726 TAD I DEFALT
2727 TAD (-5200
2728 SZA CLA /IS THIS A REQUEST FOR A
2729 /"SPECIAL DECODE"?
2730 JMP CDCONT /NO
2731 TAD ALTLIM
2732 DCA OUTLIM /YES, SET UP THE PROPER LOCATIONS
2733 TAD ALTDF1
2734 DCA LIMDIF /TO GET 1 OUTPUT AND 5 INPUT FILES
2735 TAD ALTDF2
2736 DCA BEGDIF /ALL OF WHICH ARE
2737 /5-WORD <DEVICE,NAME> ENTRIES
2738 DCA I PLKUPS
2739 TAD STARJM
2740 DCA I PSTARS /AND ALLOW *
2741 /AS A FILE OR EXTENSION NAME
2742 TAD CCLA /STOPS FETCHES IN SPECIAL MODE
2743 DCA I PSPKG1 /NO HANDLER FETCHES NECESSARY EITHER
2744 /SINCE NO LOOKUPS
2745CDCONT, JMS I (BKA
2746 STA
2747 DCA I (OUTSW
2748 JMS I (ZEROCD
2749 TAD LBEGIN
2750 DCA LXR
2751 JMP I CDINIT
2752/CONSTANTS NECESSARY TO SUPPORT "SPECIAL DECODE" MODE
2753ALTLIM, 1-MOFILE-5
2754ALTDF1, MOFILE+5-MPARAM+5
2755ALTDF2, 5
2756PLKUPS, LKUPSW
2757PSTARS, STARSW
2758PSPKG1, SPKLG1
2759
2760BEGDIF, MIFILE-MOFILE
2761LIMDIF, MIFILE-MPARAM+2
2762OUTLIM, 1-MIFILE
2763LBEGIN, 0 /PTS TO 1 CHAR BEFORE COMMAND KEYWORD ARGUMENT
2764\fNMOVE, 0
2765 DCA PT1 /V1A ARG IN AC
2766 TAD I (FLAG
2767 RTL
2768 SMA CLA /FEATURE ENABLED?
2769 JMP I (CCERB /NO
2770 TAD I (OUTSW
2771 SZA CLA
2772 JMP I (CCERB /ON OUTPUT SIDE
2773 TAD I CCLA /V3C
2774 SNA CLA /DON'T CHANGE OUT DEV IF SPECIFIED
2775 TAD I (FLAG /LOOK AT 'COPY EXT' BIT
2776 AND (200
2777 SNA CLA
2778 JMP NMXXX /IT WASN'T SET
2779 TAD I (7617 /GET FIRST INPUT DEVICE
2780 AND (17 /ISOLATE DEVICE BITS
2781 DCA I CCLA /FORCE THIS TO BE FIRST OUTPUT DEVICE
2782NMXXX, TAD I PT1
2783 SNA
2784 JMS I (SETDSK /CHANGE TO 'IAC' TO ALWAYS USE SYS:
2785 DCA I PT1 /SET DEVICE TO SYS IF NONE
2786 ISZ PT1
2787 TAD I PT1 /WAS THERE A SPECIFICATION THERE?
2788 SZA CLA
2789 JMP I NMOVE /YES, DO NOTHING
2790 TAD I (FLAG
2791 AND (200 /GET 'COPY EXTENSION' BIT
2792L7740, SMA SZA CLA /'SMA' IS UNNECESSARY
2793 STA /COPY 4 WORDS IF BIT 4 WAS ON
2794 TAD (-3 /OTHERWISE ONLY COPY 3 WORDS
2795 JMS I (MOVE
2796 CDF 10
2797 NAME1
2798 CDF 10
2799TEM,
2800PT1, 0
2801 JMP I NMOVE
2802
2803P8, SETDEV
2804 DMPDEV
2805\fVERTN, 0
2806 JMS I (RDMON /READ MONITOR
2807 CDF 0
2808 TAD I (2031 /GET PATCH LEVEL
2809 SNA
2810 TAD ("!
2811 AND (77
2812 DCA TEM
2813 TAD I (2000 /GET VERSION #
2814 CDF 10
2815 SPA
2816CCLA, 7600 /"0" MEANS OLD
2817 TAD (60
2818 JMS I (ROTL
2819 TAD TEM
2820 JMP I (PTCH
2821\f/ALLOW DEASSIGN FOO ?
2822
2823DEASSIGN,0
2824 TAD L7740
2825 DCA XR
2826 TAD (-17
2827 DCA T
2828 DCA I XR
2829 ISZ T
2830 JMP .-2
2831 CDF 0
2832 TAD I (7746
2833 AND (6777
2834 TAD (1000
2835 DCA I (7746
2836 CDF 10
2837 JMP I DEASSIGN
2838\fSTARJM, RELOC STARNM /DUMP LITERALS AT LAST POSSIBLE MOMENT
2839 JMP STARNM
2840 RELOC
2841 PAGE
2842 ZBLOCK 7600-.
2843\f/CCL.SV (THE IMPORTANT PART) MUST BE A SINGLE CORE-LOAD
2844/CONTIGUOUS LOAD, BECAUSE OF THE WAY THE MONITOR LOADS IT.
2845/FORTUNATELY, FIELD 0 STUFF OCCURS AFTER FIELD 1 STUFF IN THE
2846/OS/8 CORE-IMAGE FORMAT.
2847/FOR VERSION OF THE MONITOR BEFORE LEVEL A,
2848/THE TOTAL LENGTH OF CCL.SV MUST BE LESS THAN14 BLOCKS
2849/OR IT READS OVER 7600.
2850/BUT NOW CCL COMES IN AND READS THE REMAINDER OF ITSELF
2851/INTO FIELD 0. 400-777 IS IGNORED BY SKIPPING A BLOCK,
2852/THEN THER REST OF CCL (7 PAGES) IS READ IN.
2853
2854 FIELD 0
2855
2856 *400
2857
2858/IT LOADS OVER THE SAVE, DATE OVERLAY
2859/AND STARTS AT LOCATION 600
2860
2861/KEYWORD TABLE IN 400-
2862
2863/CONSISTS OF COMMANDS 2 CHARS PER LOCATION
2864/IN 5-BIT ASCII (ONLY LETTERS ARE LEGAL)
2865/SEPARATED FROM EACH OTHER BY 6-BIT 00'S.
2866/EACH ENTRY STARTS ON A WORD BOUNDARY, BUT IF YOU
2867/NEED THE ROOM, THEY NEED NOT WITH A SIMPLE FIX
2868/BIT 40 ON MEANS THAT THE CHARACTER ISN'T REQUIRED
2869/BUT IF THE USER DOES TYPE A LETTER, IT MUST MATCH.
2870\fVNO, CCLTAB
2871KEYWRD,
28720530 /EX ECUT
28734543
28746564
28750002 /BA CKSP OR TER MIN
28760143
28775363
28786000
28790201 /BAS IC
28802351
28814300
28820425 /DU PLICATE
28836054
28845143
28854164
28864500
28870217 /BO OT
28885764
28890003 /CCL
28900314
28910003 /COMPA R
28921715
28932001
28946200
28950317 /COM PIL
28961560
28975154
28980003 /COP Y
28991720
29007100
29011505 /MEM ORY
29021557
29036271
29040003 /CREA TE
29052205
29060164
29074500
29080322 /CREF
29090506
29100004 /DA TE
29110164
29124500
29130405 /DEL ETE
29141445
29156445
29160004 /DE A
29170541
29180004 /DIR ECT
29191122
29204543
29216400
29220504 /ED IT
29235164
29240005 /EO F
29251746
29260010 /HE LP
29270554
29286000
29291411 /LIN K
29301653
29310015 /MAC R
29320103
29336200
29341411 /LI ST
29356364
29360014 /LO AD
29371741
29384400
29391501 /MAK E
29401345
29410015 /MAP
29420120
29430015 /MUNG
29442516
29450700
29462001 /PAL
29471400
29482022 /PRI NT
29491156
29506400
29512025 /PU NCH
29525643
29535000
29542205 /REN AME
29551641
29565545
29570022 /RES
29580523
29590022 /REW IND
29600527
29615156
29624400
29632305 /SET
29642400
29652313 /SK IP
29665160
29670023 /SQ UISH
29682165
29695163
29705000
29712325 /SU BMIT
29724255
29735164
29740024 /TE CO
29750543
29765700
29772431 /TY PE
29786045
29790025 /UN LOAD
29801654
29815741
29824400
29832501 /UA
29840025 /UB
29850200
29862503 /UC
29870026 /VE R
29880562
29890032 /ZERO
29900522
29911700
29924000 /@
2993 ZBLOCK 600-.
2994\f IFDEF XYZMCR <
2995
2996THIS IS THE TECO MACRO WHICH WAS USED TO CREATE THE ABOVE TABLE:
2997
2998
2999HKGYJ2S\ 1\eR0,.KHXAHKMA
3000\ 1TYPE COMMANDS, SPACE SEPARATES MANDATORY PART FROM
3001OPTIONAL PART, CR TERMINATES COMMANDS, ^Z TERMINATES ALL.
3002** NO EDITING **
3003\ 1HKHXYHXN0UO0UB0UN
3004!CHLP!^TUL\eQL-32"EOBLANK\e'QL-13"EOCR\e'QL-26"EOEND\e'
3005!CHLP0!QL&63+QBUT\e QT/8UX\eQX+48I\eQT-(8*QX)+48I\e
3006QL"NZJ.UZGNQLI\eQZJXNK%N\e'
3007%O&1"NOCHLP\e' QN-3"LZUH'I
3008\eOCHLP\e
3009!BLANK! 32UBZJ.UZGNQLI\eQZJXNK%N\eOCHLP\e
3010!CR! \ 1
3011\ 1QHJ /\eGNZJXN0UN0UB0ULOCHLP0\e
3012!END!I00
3013\e
3014
3015
3016 >
3017\f *600
3018
3019 JSBITS=7746
3020 SYSTEM=22
3021 PRMES=330
3022 ERRET=33 /THESE ARE LOCATIONS FROM OS/8 MONITOR
3023
3024/RUNS IN FIELD 0 ONLY.
3025
3026ENTRY, 0 /INITIALLY 0 MEANS 'EX' COMMAND
3027LINPTR, JMP ENTREE /OS/8 JUMPS HERE (ACTUALLY TO 600)
3028TEMM,
3029TEKLDG, ISZ CCLNHR /TECO 'EG' JUMPS HERE
3030 DCA I (BEGLN /ZERO COMMAND LINE
3031 JMP TEGO /FIRST WE DISABLE CALLS TO MONITOR
3032ENTREE, TAD (7605
3033 DCA ERRET
3034 TAD SYSTEM
3035 DCA MYSYS
3036 JMS FINDIT
3037 SPA CLA /WAS IT A LEGAL COMMAND?
3038 JMP I (PRQMRK /NO
3039TEGO, TAD (6003 /YES
3040 DCA I (JSBITS
3041 CIF 10
3042 JMS I MYSYS /CALL USR AND LOCK IN CORE
3043 10
3044 CLA IAC
3045 CIF 10
3046 JMS I (200
3047 2
3048CCLBLC, CCLSV
3049CCLEN, 0
3050CCLNHR, JMP NOCCL /ISZ'ED IF KBM NOT IN MEMORY
3051 CLA IAC
3052 TAD CCLBLC
3053 DCA CCLRDB
3054 JMS I (7607
3055CCLCCW, 2711 /READ 27 PAGES OF CCL.SV
3056CCLSTR, 2000
3057MYSYS,
3058CCLRDB, 7700 /INITIALLY POINTS TO USR
3059 JMP NOCCL
3060 CIF CDF 10
3061 JMP I CCLSTR
3062\fCCLSV, FILENAME CCL.SV
3063
3064NOCCL, CLA SKP
3065 JMP I (7605 /GO BACK TO MON IF CCL NOT FOUND ON TECO EG COMMAND
3066 JMS I (PRMES /PRINT ERROR MESSAGE OTHERWISE
3067 TEXT /NO CCL!/
3068 0
3069\f/FINDS IF INPUT LINE STARTS WITH A COMMAND
3070/LEAVES ENTRY # IN AC, -1 IF NOT FOUND
3071/ENTRIES START AT ENTRY 0.
3072/CALLABLE FROM ANY FIELD
3073
3074FINDIT, 0
3075MORE, TAD (BEGLN-1
3076 DCA LINPTR
3077 ISZ LINPTR
3078 TAD I LINPTR
3079 TAD (-240
3080 SNA CLA
3081 JMP .-4
3082 JMS GETKAR
3083 JMP ENDOFT /NO MATCH
3084 JMP INTO
3085FNLUP, TAD I LINPTR
3086 TAD (-301
3087 STL
3088 TAD (-32
3089 SNL CLA
3090 JMP NOLET /NOT A LETTER
3091 JMS GETKAR
3092 JMP MATCH
3093INTO, CIA
3094 TAD I LINPTR
3095 AND (37 /5-BIT ASCII
3096 ISZ LINPTR
3097 SNA CLA /DO THEY MATCH?
3098 JMP FNLUP /YES
3099NOMT, JMS GETKAR
3100 SKP
3101 JMP .-2 /SCAN TO NEXT ENTRY
3102 ISZ ENTRY
3103 JMP MORE
3104
3105NOLET, JMS GETKAR
3106 JMP MATCH
3107 CLA
3108 ISZ SIGNIF
3109 JMP NOMT
3110MATCH, TAD ENTRY
3111 SKP
3112ENDOFT, STA
3113RETCIF, CDF 0 /RETURN TO CALLING FIELD (MAY BE OVERLAID)
3114 JMP I FINDIT
3115KPTR, KEYWRD
3116\fHALF, -1 /0 MEANS LEFT HALF
3117SIGNIF, 0 /1 MEANS 40 BIT ON WHICH MEANS CHAR IS SIGNIF ONLY IF PRESENT
3118
3119/GETKAR GETS NEXT 5-BIT CHAR, LEAVES IT IN AC
3120/SETS SIGNIF TO -1 IF 40 BIT WAS PRESENT
3121/TAKES RETURN 1 IF CHAR IS 0
3122/TAKES RETURN 2 OTHERWISE
3123
3124GETKAR, 0
3125 ISZ HALF
3126 JMP RTHALF
3127 TAD I KPTR
3128 RTR
3129 RTR
3130 RTR
3131 JMP INSIDE
3132RTHALF, STA
3133 DCA HALF
3134 TAD I KPTR
3135 ISZ KPTR
3136INSIDE, AND (77
3137 DCA TEMM
3138 TAD TEMM
3139 AND X40
3140X40, SZA CLA
3141 STA
3142 DCA SIGNIF
3143 TAD TEMM
3144 SZA
3145 ISZ GETKAR
3146 AND (37
3147 JMP I GETKAR
3148 PAGE
3149\f *REST
3150CORLOC, CORX
3151CORV, 1400
3152CORSIZ, 1
3153
3154CORE, CDF 0
3155 TAD CORSIZ
3156 CLL RTL
3157 RAL
3158 AND COR70
3159 TAD COREX
3160 DCA .+1
3161COR1, CDF
3162 TAD I CORLOC
3163COR2, NOP
3164 DCA COR1
3165 TAD COR2
3166 DCA I CORLOC
3167COR70, 70
3168 TAD I CORLOC
3169CORX, 7400
3170 TAD CORX
3171 TAD CORV
3172 SZA CLA
3173 JMP COREX
3174 TAD COR1
3175 DCA I CORLOC
3176 ISZ CORSIZ
3177 JMP CORE
3178COREX, CDF 0
3179 TAD CORSIZ
3180 CLL RTL
3181 TAD (-10
3182 JMP I (DETC2 /GO TO NEXT PAGE
3183\fMONLST, MON1
3184 MON2
3185 MON3
3186 MON4
3187 MON5
3188 MON6
3189 MON7
3190 MON8
3191 MON9
3192 MON10
3193 MON11
3194 MON12
3195\fMON1, TEXT /JANUARY/
3196MON2, TEXT /FEBRUARY/
3197MON3, TEXT /MARCH/
3198MON4, TEXT /APRIL/
3199MON5, TEXT /MAY/
3200MON6, TEXT /JUNE/
3201MON7, TEXT /JULY/
3202MON8, TEXT /AUGUST/
3203MON9, TEXT /SEPTEMBER/
3204MON10, TEXT /OCTOBER/
3205MON11, TEXT /NOVEMBER/
3206MON12, TEXT /DECEMBER/
3207\fCOM19, TEXT /, 19/
3208
3209WEEKLST,DAY1
3210 DAY2
3211 DAY3
3212 DAY4
3213 DAY5
3214 DAY6
3215 DAY7
3216
3217DAY1, TEXT /SATUR/
3218DAY2, TEXT /SUN/
3219DAY3, TEXT /MON/
3220DAY4, TEXT /TUES/
3221DAY5, TEXT /WEDNES/
3222DAY6, TEXT /THURS/
3223DAY7, TEXT /FRI/
3224BADMON, TEXT /#BAD MONITOR/
3225 PAGE
3226\fHISIZ, 0 /HIGHEST MEMORY BANK
3227NEWCOR, 0 /PROPOSED NEW MEMORY BANK
3228
3229DETC2, SNA
3230 JMS KEIGHT
3231 TAD (-30
3232 SNA
3233 JMS K32
3234 TAD (40
3235 JMS OTOD
3236 DCA I (CORMES
3237 CDF 10
3238 TAD I (LBEGIN
3239 DCA XRL
3240 CDF 0
3241 STA
3242 TAD I (CORSIZ
3243 DCA HISIZ
3244 ISZ XRL
3245 TAD I XRL /GET NEXT CHAR
3246 SNA
3247 JMP COREQ /NOT SETTING CORE SIZE
3248 TAD (-260
3249 DCA NEWCOR
3250 TAD NEWCOR
3251 AND (7770
3252 SZA CLA
3253 JMP DETER /TRIED TO SET CORE SIZE GT 7
3254 TAD NEWCOR
3255 CIA
3256 TAD HISIZ
3257 SPA CLA
3258 JMP BADKOR /TRIED TO SET SOFTWARE CORE SIZE GT REAL CORE SIZE
3259 TAD I (7777
3260 RTL /BATCH BIT TO LINK
3261 SZL CLA
3262 JMP WRSKOR /CAN'T CHANGE CORE SIZE UNDER BATCH
3263 TAD NEWCOR
3264 CLL RTL
3265 RAL
3266 DCA NEWCOR
3267 TAD I (7777
3268 AND (7707
3269 TAD NEWCOR
3270 DCA I (7777
3271COREQ, TAD I (7777
3272 AND (70
3273 SNA
3274 JMP ABSKOR
3275 TAD (10
3276 CLL RAR
3277 JMS OTOD
3278 DCA I (SCRMES
3279 TAD I (SCRMES
3280 CIA
3281 TAD I (CORMES
3282ABSKOR, CIF CDF 10
3283 SNA CLA
3284 JMP I (ABSCOR /DON'T PRINT SOFT IF = REAL
3285 JMP I (SCRM
3286
3287BADKOR, CIF CDF 10
3288 JMP I (BADCOR
3289WRSKOR, CIF CDF 10
3290 JMP I (WRSCOR
3291
3292DETER, CIF CDF 10
3293 JMP I (CMDERR
3294
3295KEIGHT, 0
3296 CIF CDF 10
3297 JMS I (K8
3298 JMP I KEIGHT
3299
3300XRL, 0
3301\fOTOD, 0
3302 DCA TTX
3303 DCA TX
3304 TAD TTX
3305 TAD (-12
3306 ISZ TX
3307 SMA
3308 JMP .-3
3309 TAD (72
3310 DCA CORETM
3311 STA
3312 TAD TX
3313 SNA
3314 TAD (40-60
3315 TAD (60
3316 CLL RTL
3317 RTL
3318 RTL
3319 TAD CORETM
3320 JMP I OTOD
3321
3322TX, 0
3323TTX, 0
3324CORETM,
3325K32, 0
3326 TAD (4100
3327 DCA I (CORMES+5
3328 JMP I K32
3329\fOTODY, 0
3330 JMS OTOD
3331 CIF CDF 10
3332 JMP I OTODY
3333 PAGE
3334\fERRCMD, TEXT /#ERROR IN COMMAND/
3335BADVMS, TEXT /#CCL 3X OVERLAY AND MONITOR INCOMPATIBLE/
3336 AAAA=.
3337 *BADVMS+3
3338 CCLTAB&77^100+40
3339 *AAAA
3340\fLOVMES, TEXT /NOT WAR?/
3341KILMES, TEXT /FILES DELETED:/
3342RENMES, TEXT /FILES RENAMED:/
3343MOVMES, TEXT /FILES COPIED:/
3344SCRMES, TEXT \00K/\
3345 *.-1
3346CORMES, TEXT /00K MEMORY/
3347DAYDAY, TEXT /DAY /
3348\fNOCORE, TEXT /# NOT ENOUGH MEMORY/
3349BATCOR, TEXT /#CANNOT CHANGE MEMORY LIMIT WHILE RUNNING BATCH/
3350JAN, 0
3351FEB, 3
3352 4;0;2;5;0;3;6;1;4;6
3353\fSUP, TEXT /%SUPERSEDING/
3354MEMWARN,TEXT /%CAN'T REMEMBER/
3355SQWARN, TEXT /%BATCH SQUISHING SYS:!/
3356SYSER, TEXT \#I/O ERROR ON SYS:\
3357BADSYN, TEXT /#ILLEGAL SYNTAX/
3358TOOMAN, TEXT /#TOO MANY FILES/
3359NF, TEXT / NOT FOUND/
3360DNE, TEXT / DOES NOT EXIST/
3361SEMSG1, TEXT /? ENTER ERROR/
3362SEMSG2, TEXT \?I/O ERROR\
3363SEMSG3, TEXT /?DEVICE FULL/
3364SEMSG4, TEXT /?CLOSE ERROR/
3365\fATIO, TEXT /#BAD FILENAME OR ERROR READING INDIRECT FILE/
3366OVFLOW, TEXT /#COMMAND LINE OVERFLOW/
3367BADNUM, TEXT /#BAD NUMBER/
3368BADSTR, TEXT /#ILLEGAL * OR ?/
3369\fBADX, TEXT /#BAD EXTENSION/
3370BADOPT, TEXT /#BAD SWITCH OPTION/
3371TOOLNG, TEXT /#COMMAND TOO LONG/
3372REMBAD, TEXT \#I/O ERROR TRYING TO RECALL\
3373\fBADSW, TEXT /#SWITCH NOT ALLOWED HERE/
3374BADSW2, TEXT /#BAD CCL SWITCH/
3375NONE, TEXT /NONE/
3376BADREM, TEXT /#BAD RECOLLECTION/
3377BADEV, TEXT /#BAD DEVICE/
3378CONTRA, TEXT /#CONTRADICTORY SWITCHES/
3379\fVMES, TEXT \OS/8 - KBM V3A - CCL V1A\
3380 LOC78=VMES+1
3381 VLOC=VMES+6
3382 *.-2
3383 CV=CCLVER&77
3384 CCLNUM&77^100+CV
3385 *.+1
3386\fYEDIT, FILENAME EDIT.SV
3387 *.-1
3388YBOOT, FILENAME BOOT.SV
3389 *.-1
3390YFORT, FILENAME FORT.SV
3391 *.-1
3392YF4, FILENAME F4.SV
3393 *.-1
3394YBITMAP,FILENAME BITMAP.SV
3395 *.-1
3396YSRCCOM,FILENAME SRCCOM.SV
3397 *.-1
3398YBCOMP, FILENAME BCOMP.SV
3399 *.-1
3400YPAL8, FILENAME PAL8.SV
3401 *.-1
3402YFOTP, FILENAME FOTP.SV
3403 *.-1
3404/YCREF, FILENAME CREF.SV
3405/ *.-1
3406YDIRECT,FILENAME DIRECT.SV
3407 *.-1
3408\fYPIP, FILENAME PIP.SV
3409 *.-1
3410YABSLDR,FILENAME ABSLDR.SV
3411 *.-1
3412YLOADER,FILENAME LOADER.SV
3413 *.-1
3414YLOAD, FILENAME LOAD.SV
3415 *.-1
3416YTECO, FILENAME TECO.SV
3417 *.-1
3418YLPTSPL,FILENAME LPTSPL.SV
3419 *.-1
3420YCAMP, FILENAME CAMP.SV
3421 *.-1
3422YSET, FILENAME SET.SV
3423 *.-1
3424YBASIC, FILENAME BASIC.SV
3425 *.-1
3426YRXCOP, FILENAME RXCOPY.SV
3427 *.-1
3428YRESORC,FILENAME RESORC.SV
3429 *.-1
3430YBATCH, FILENAME BATCH.SV
3431 *.-1
3432YRALF, FILENAME RALF.SV
3433 *.-1
3434YSABR, FILENAME SABR.SV
3435 *.-1
3436YFRTS, FILENAME FRTS.SV
3437 *.-1
3438YDATE, FILENAME DATE.SV
3439 *.-1
3440YCCL, FILENAME CCL.SV
3441 *.-1
3442YHELP, FILENAME HELP.SV
3443 *.-1
3444YMACREL,FILENAME MACREL.SV
3445 *.-1
3446YLINK, FILENAME LINK.SV
3447 *.-1
3448\fBATHED, "$;"J;"O;"B;215;212;".;0
3449BATAIL, ".;"R;240;"F;"O;"T;"P;215;212
3450 "*;"S;"Y;"S;":;"C;"C;"B;"T;"C;"H;".;"T;"M;"/;"D;"$;215;212
3451 "$;"E;"N;"D;215;212;32;0
3452TEMNAM, FILENAME CCBTCH.TM
3453\fLPTDEV, DEVICE LPT
3454TVDEV, DEVICE TV
3455TTYDEV, DEVICE TTY
3456PTPDEV, DEVICE PTP
3457DMPDEV, DEVICE DUMP
3458NULDEV, DEVICE NULL
3459\f BATBUF=4400 /LOCATION OF ONE BLOCK BATCH TEMP BUFFER
3460 USR=200
3461 GLINE=1200 /LOCATION FROM KBM
3462 CTRLCK=1241 /LOC FROM KBM, PTS TO PLACE TO BRANCH ON ^C
3463BATPTR, BATBUF-1
3464LCHAR, 0
3465
3466SEMGO, CIF CDF 10
3467 JMP I SEMI
3468
3469SEMI, 0
3470 TAD (BEGLN-1
3471 DCA XR
3472SEMLUP, TAD I XR
3473 SNA
3474 JMP SEMGO /NO SEMICOLONS
3475 TAD (-";
3476 SZA CLA
3477 JMP SEMLUP
3478 CIF 10
3479 CLA IAC /SYS
3480 JMS I (USR
3481 3 /ENTER
3482BLKNO, TEMNAM
3483BLKLEN, 0 /NEG OF LENGTH
3484 JMP SEMER1 /ENTER ERROR
3485 TAD BLKNO
3486 DCA BATBLK
3487 TAD (BEGLN-1
3488 DCA XR
3489 TAD (7600
3490 DCA I (CTRLCK /FORCE ^C TO GLINE TO GO TO 7600
3491 JMS BATLST
3492 BATHED
3493S2, TAD I XR
3494 SNA
3495 JMP LINEND
3496 DCA LCHAR /SAVE CHAR
3497 TAD LCHAR
3498 TAD (-";
3499 SNA CLA
3500 JMP GOTSEM
3501 TAD LCHAR
3502S3, JMS BATPUT
3503 JMP S2
3504\fLINEND, TAD LCHAR
3505 TAD (-"; /LOOK AT LAST CHAR
3506 SZA CLA /WAS IT SEMICOLON?
3507 JMP BATEND /NO, END OF TEMP BATCH STREAM
3508 JMS I (GLINE /YES, READ NEW LINE FROM KEYBOARD
3509/**** WHAT IF WE'RE RUNNING UNDER BATCH ****
3510 TAD (BEGLN-1
3511 DCA XR
3512 JMP S2
3513
3514GOTSEM, JMS KRLF
3515 TAD (".
3516 JMP S3
3517
3518KRLF, 0
3519 TAD (215
3520 JMS BATPUT
3521 TAD (212
3522 JMS BATPUT
3523 JMP I KRLF
3524
3525BATPUT, 0
3526 ISZ BATPTR
3527 DCA I BATPTR
3528 TAD BATPTR
3529 TAD (-BATBUF-377
3530 SNA CLA
3531 JMS BATWRIT /WRITE OUT BUFFER IF FULL
3532 JMP I BATPUT
3533\fBATWRIT,0
3534 JMS I (7607
3535 4200 /WRITE 1 BLOCK
3536 BATBUF
3537BATBLK, 0
3538 JMP SEMER2 / I/O ERROR
3539 ISZ BATBLK /POINT TO NEXT BLOCK
3540 ISZ BATLEN /BUMP LENGTH
3541 ISZ BLKLEN
3542 SKP
3543 JMP SEMER3 /DEVICE FULL
3544 TAD (BATBUF-1
3545 DCA BATPTR
3546 JMP I BATWRIT
3547
3548BATEND, JMS KRLF
3549 JMS BATLST
3550 BATAIL
3551 JMS BATWRIT
3552 CIF 10
3553 CLA IAC /SYS
3554 JMS I (USR
3555 4 /CLOSE
3556 TEMNAM
3557BATLEN, 0 /LENGTH OF TEMPORARY FILE
3558 JMP SEMER4 /CLOSE ERROR
3559 CIF CDF 10
3560 JMP I (ENGOA
3561\fBATLST, 0
3562 TAD I BATLST
3563 DCA BTPT
3564 ISZ BATLST
3565BTLP, TAD I BTPT
3566 SNA
3567 JMP I BATLST
3568 JMS BATPUT
3569 ISZ BTPT
3570 JMP BTLP
3571
3572BTPT, 0
3573
3574SEMER4, IAC /CLOSE ERROR
3575SEMER3, IAC /DEVICE FULL
3576SEMER2, IAC / I/O ERROR
3577SEMER1, IAC /ENTER ERROR
3578 CIF CDF 10
3579 JMP I (SEMERR
3580 PAGE
3581\f FIELD 1
3582 *2001
3583 $
3584\f