1 /5 MACREL VERSION OF CCL FOR OS/8 V3D
11 /COPYRIGHT (C) 1974,1975,1976,1977,1978 BY DIGITAL EQUIPMENT CORPORATION
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.
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.
32 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
33 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
46 .GLOBAL OUTLIM,OUTSW,COLSET,FNAME1
47 .GLOBAL LPTDEV,TTYDEV,DMPDEV,NULDEV,PTPDEV,TVDEV
48 .GLOBAL EXSUB,BLK,IOERR
50 .GLOBAL SETLPT,SETPTP,SETTTY,YFORT,YF4,YLOAD,YLOADER
52 .GLOBAL YAT,ZOW,BATCH,FLAG,RDMON,REGO,REMD,CHAIN
53 .GLOBAL DECODE,SCAN,LBEGIN
54 .GLOBAL DEFALT,MOVE,TWAIT,NAMPTR
56 XFERV==70 /LOCATION INSIDE USR WHICH IS FREE
61 .EXTERNAL AT,CCLBLC,PTBL,SAVL,LEAVE,VERTN,NOCCL
62 .EXTERNAL SETDEV,RECALL
63 .EXTERNAL CD,CCER1,REMEM,ARLOC
64 .EXTERNAL PRMESG,PRINT,CCSUB
72 DEFALT=33 /POINTS TO DEFAULT EXTENSION LIST
74 BATSPL=7200 /JMS HERE TO PERFORM SPOOLING WITH DEFAULT EXT IN AC
77 /CCL STARTING ADDRESS: 12000
78 /STARTING ADDRESS: 12001
79 /CHAIN STARTING ADDRESS:12002
81 / JOB STATUS WORD = 2003
83 /**************************************************
88 / .SAVE SYS CCL;12001=2103
91 /**************************************************
95 CCLTAB="H /MUST BE UPDATED IF TABLES CHANGE
97 CCLVER="A /CCL VERSION #
99 /*** NOTE: VERSION E OF CCL WAS FOR IN-HOUSE USE ONLY.
100 /USE OF SEMICOLONS WITH CCL VERSION I OR LATER
101 /REQUIRES BATCH VERSION 7 OR LATER.
102 /USE OF BASIC COMMAND REQUIRES V3D BASIC OR LATER
107 /0 1000-1777 COMMAND LINE [EACH @ FILE RESTRICTED TO 1 BLOCK]
108 /0 2000-2777 LINE BUFFER EXTENSION
109 /0 3000-3177 PRE-EXTENSION @ BUFFER
110 /0 3200-3577 @ BUFFER
111 /0 4000-4377 REM-LINES
112 /0 4400-4777 INPUT HANDLER FOR CD
113 / ALSO, SEMICOLON BUFFER
114 /0 5000-5777 LONGWORD TABLE
115 /0 6000-7277 MORE TABLES
116 /0 7300-7577 SWITCH POINTER TABLE
117 \f/ CHANGES SINCE FIELD RELEASE VERSION:
119 /1. RECURSIVE 'U' BUG FIXED
120 /2. INTERNAL STRUCTURE OF CCL KEYWORD TABLE CHANGED
121 /3. BUG RE REWRITING BLOCK CONTAINING PTR TO CORRECT FORTRAN FIXED
122 /4. .SV PARTS OF FILENAMES REMOVED FROM TABLE TO SAVE SPACE
123 /5. COMPARE PASSES ALTMODE
124 /6. TTY BECAME DEFAULT FOR COMPAR, DIRECT, AND MAP
125 /7. BUG RE PASSING DEFAULT * FIXED
126 /8. .LS FORM OF .CREF COMMAND REMOVED
127 /9. BUG CONCERNING PROCESSOR SWITCHES FIXED
128 /10. CCL SWITCH ALLOWED AFTER =N OPTION
129 /11. BUG RE 'BAD SWITCH OPTION' MESSAGE FIXED
130 /12. EXTRA SPACES NOW ALLOWED BEFORE CCL ARGUMENT
131 /13. 'DOES NOT EXIST' MESSAGE NOW SPELLED CORRECTLY
132 /14. 'BAD CCL SWITCH' MESSAGE ADDED
133 /15. CCL EDIT # CHANGED TO CCL VERSION #
134 /16. .EX CHAINS TO BCOMP NOT BASIC FOR .BA FILES
135 /17. MUNG PTR: NOW WORKS
136 /18. FIXED BUG RE MUNG <CR>
137 /19. FIXED BUG RE CD FOR FILE > 2047 BLKS
138 /20. FIXED BUG RE MAKE PTR:
142 /21. ALLOWED 'EDIT' TO COPY FILE EXTENSION
143 /22. FIXED BUG RE .CCL ON WRITE-LOCKED DEVICE
144 /23. FIXED DATE PROBLEM
145 /24. ALLOWED FF AND VT IN AN INDIRECT FILE TO BE IGNORED
149 /25. FIXED BUG RE SPACES AND SLASHES IN MUNG TEXT ARGUMENT
150 /26. ALLOWED EDIT COMMAND TO USE SAME OUT DEVICE
151 / AS IN DEVICE (IF NONE SPECIFIED)
152 /27. ADDED MORE SYNTAX CHECKING TO ZERO COMMAND
156 /28. ALLOWED EDIT A<B COMMAND TO REMEMBER ONLY UP TO '<' .
158 /VERSION E CHANGES: (IN-HOUSE ONLY VERSION)
160 /29. WARNING MSG IF SQUISH SYS: UNDER BATCH
161 /30. ADDED SOME NOTES ON HOW TO ALLOW = AS WELL AS <
162 /31. ADDED HOOKS FOR ; TO BE READY FOR V4
163 /32. FIX BUG RE CMD STARTING WITH SPACES
165 /CHANGES FOR MAINTENANCE RELEASE (OS/8 V3C):
167 /33. FIXED BUG ABOUT @ NOT FOLLOWED BY FILESPEC
168 /34. INCORPORATED ALL PREVIOUS EDITS
169 /35. ALLOWED ' TO TERMINATE AN INDIRECT REQUEST (AND BE IGNORED)
170 /36. FIXED BUG ABOUT EDIT DEV1:_DEV2:FOO LOSING DEV1:
171 /37. CORRECTED SPELLING OF SUPERSEDING
172 /38. ADDED .LD EXTENSION TO EXECUTE TABLES [USES FRTS]
176 /39. FIXED BUG WITH HELP COMMAND
177 /40. FIXED BUG CONCERNING EDIT DEV:_FILE
181 /41. ADDED MAC AND LINK COMMANDS
182 /42. ADDED MACREL AND LINKER INTO COMPILE/LOAD/EXECUTE COMMANDS
183 /43. ALLOWED UX COMMANDS TO CONTAIN KBM COMMANDS
184 /44. ALLOWED PASSING A KBM COMMAND TO CCL ON CHAINING
185 /45. ALLOWED @ AT BEGINNING OF LINE
186 /46. MOVED MOST OF 'DETCOR' TO FIELD 0
187 /47. WAIT ROUTINE NOW GIVES UP IF TTY FLAG ISN'T UP WITHIN 0.1 SEC
188 /48. ALLOWED EXEC .BI TO USE BATCH
189 /49. TENTATIVELY ADDED SEMICOLON STUFF
190 /50. PUT BACK WARNING MESSAGE IF TRY TO SQUISH UNDER BATCH
191 \f/VERSION I CHANGES:
193 /51. FIRMED UP SEMICOLON STUFF
197 /52. DEFAULT DEVICE FOR COMPIL, PAL, ETC. IS NOW LOGICAL DSK: NOT SYS:
198 /53. -L, -S, AND -P SWITCHES NOW SET OUTPUT NAME TO CURRENT INPUT NAME
202 /54. DATE NOW HANDLES DATE/78 ALGORITHM
203 /55. TOOK OUT 'TCF' WHICH WAS CAUSING BATCH TO HANG
207 /56. FIXED BUG RE NULL INDIRECT CMD FILE
208 /57. FIXED BUG TO NOW ALLOW DATE WITH ARGS IN INIT.CM
209 /58. PRINT "OS78" FOR VERSION NAME IF APPLICABLE
210 /59. ADDED -N AND -D AND REWROTE LOGIC A BIT
211 /60. HELP COMMAND NOW USES HELP.SV
212 /61. SET COMMAND NOW USES SET.SV
213 /62. 'CORE' BECOMES 'MEMORY' IN 3 MSGS AND 1 CMD
214 /63. ADDED BASIC COMMAND (CHAINS TO BASIC.SV WITH Q SWITCH)
215 /64. ALLOWED FOR TERMINATE COMMAND (OS78 REPLACES BACKSPACE)
216 /65. ADDED DUPLICATE COMMAND (USES RXCOPY)
220 /66. MODIFIED FORMAT OF MAIN TABLE
221 /67. GIVE ERROR MESSAGE IF NO FILENAME IS GIVEN WITH INDIRECT
222 / FILE (EVEN IF NON-FS)
223 /68. PRINT KBM VERSION #
224 /69. ADDED TERMINATE COMMAND
228 /70. DUPL CALLS RXCOPY IN SPECIAL MODE
232 /71. SOURCE CODE IS NOW MACREL
233 /72 LINKER OVERLAYS ADDED
234 /73. = ALLOWED IN ADDITION TO _ AND < (IF NOT FOLLOWED BY A DIGIT)
235 /74. /C:NNNN ALLOWED FOR NUMERIC ARGUMENT IN ADDITION TO =
236 /75. HOOKS FOR MULTIPLE CHARACTER SWITCHES ADDED
237 /76. SWITCHES MAY NO LONGER BE EMBEDDED IN A FILENAME
238 /77. KNOWN BUG IF SAY MAKE #
239 /78 A+B IS IDENTICAL TO A-NB,B
240 /79. KNOWN BUG THAT /A-L USES A
241 /80. TEMPORARILY REMOVED SEMICOLON STUFF
242 \f/ FORMAT OF CCL TABLE
246 / TABLE WIDTH=7 (BUT VARIES)
252 /0 PERFORM CD (IF 0, OMIT ENTRIES 1-6)
253 /1 DON'T PERMIT SPOOLING
254 /2 ALLOW .LS, .NB, .MP SWITCHES
255 /3 ADD _ TO END OF COMMAND STRING
256 /4 SET OUTPUT EXTENSION = INPUT EXTENSION (IF BIT 2 ON)
257 /6-8 SPECIFIES AUTOMATIC INPUT REMEMBERING (REM LINE MINUS 1)
258 / 0 MEANS NONE. 7 RESERVED FOR SPECIAL USE.
259 /10 CAUSE -L, ETC. TO GO TO 2ND OUTPUT FILE & COPIES NAME
260 /11 WANT DEFAULT ALTMODE (COMPL IF AMFLAG=1)
262 /1 PTR TO DEFAULT EXTENSION LIST FOR INPUT FILES.
263 / IF PTS TO 0, NONE. IF PTS TO 5200, USE SPECIAL MODE.
265 /2-4 DEFAULT SWITCHES TO BE OR'ED INTO THOSE
268 /5 ADDRESS OF SUBROUTINE TO BE CALLED
269 / AFTER C.D. HAS BEEN DONE. 0 IF NONE.
271 /6 PTR TO FILENAME OF PROGRAM
272 / TO BE CHAINED TO. 0 IF NONE.
276 /1000-1777 LINE BUFFER
277 /2000-2777 LINE BUFFER EXTENSION
281 /6000-7577 MORE CCL (7 PAGES)
287 .VERSION CCLNUM&77^100+<CCLVER&77>
291 FAKBM=404 /PLACE TO FAKE OUT KBM
293 START, JMP .+3 /START FROM MONITOR
294 JMP MONF /START FROM .RUN COMMAND
295 JMP MONCHN /START WHEN CHAINED TO
297 CDF 0 /READ IN REST OF CCL
298 TAD I (CCLBLC /GET BLOCK OF START
299 DCA I (SOFSET /ALLOW LINKER OVERLAY DRIVER TO WORK
305 DCA CCLREM /GET BLOCK OF REST
308 1300 /READ 11 MORE PAGES
311 CCLREM, 1+5+1 /SKIP CCB AND *400 STUFF
318 TAD (-CCLTAB /DO VERSION #'S AGREE?
335 DCA I (REMD /ALLOW RECURSIVE U'S
337 TAD I KENTRY /GET ENTRY #
339 TAD (PTBL /GET ADDRESS OF PTR TO START OF ENTRY
342 TAD I PTR /GET PTR TO START OF ENTRY
350 DCA I (XFERV /SET UP STUFF FOR OVERLAY DRIVER
359 JMS I (7607 /READ IN KBM
363 HLT /NO WAY TO RECOVER (EVEN 7605 DOES THIS)
365 JMS I (MOVE /ASSUME COMMAND LINE IS IN
369 1000 /MOVE TO OS/8 LINE BUFFER
371 YAT, JMP I KFAKBM /@ DESTROYS THIS CODE (MUST BE ONE BEFORE 'REGO')
372 TAD I (SAVL /'YAT' IS JMS'ED TO
373 SNA CLA /BY INITIAL @ COMMAND
374 JMP I (LEAVE /DO NOTHING IF NO @ GOT EXPANDED (NULL LINE)
379 10 /RESTORE PART OF KBM WHICH WAS DESTROYED BY OVERLAY
385 / DCA I (RETCIF /ALLOW 'FINDIT' TO RETURN TO FIELD 1
392 / JMS I (FINDIT /LOOK UP KEYWORD
394 / JMP PREGO /FOUND IT
395 /CMDERR, JMS I (PRMESG /NOT A LEGAL KEYWORD
402 JMP TW /BATCH NOT RUNNING
403 CLA /WE'RE RUNNING UNDER BATCH
406 SKP /WAIT FOR THINGS TO QUIET DOWN
408 LVNO, AND I 0 /WASTE SOME TIME
413 JMP I TWAIT /CAN'T WAIT TOO LONG
414 FILDMY, FILENAME DUMMY.SV
415 0 /EXTRA EXTENSION WORD
417 \fBADVNO, JMS I (PRINT
420 JMP I (LEAVE /GO AWAY
421 \f/THIS ROUTINE DETERMINES IF THE CHARACTER IN THE AC IS A LETTER OR DIGIT
422 /IF LETTER, RETURNS TO RET+1 WITH LETTER-"A IN AC AND LINK=0
423 /IF DIGIT, RETURNS TO RET+1 WITH DIGIT-"0 IN AC AND LINK=1
424 /IF NEITHER, RETURNS TO RET WITH CHAR-"A IN AC.
426 TAD (-"9-1 /MIGHT BE CALLED WITH ANY DF
437 \fLBEGIN, 0 /PTS TO 1 CHAR BEFORE COMMAND KEYWORD ARGUMENT
443 JMS BLSCAN /IGNORE INITIAL SPACES
469 JMP I BLSCAN /LEAVE CHAR IN AC
470 \fSETLPT, 0 /COULD BE ONCE ONLY
487 DCA I (OV /RESTORE LOC SO DATE CMD W ARGS WILL WORK
489 \fSYSER, TEXT \#I/O ERROR ON SYS:\
490 \fGO, JMS I (SCAN /ADVANCE SCAN UNTIL AFTER SPACES
496 SNA CLA /IS TYPED LINE EMPTY AFTER KEYWORD?
497 TAD FLAG /AND IS SPECIAL REMEMBERING BITS ON?
499 RAR /AND HAS GOD WILLED US TO REMEMBER?
500 AND (7 /AND ARE THE ZODIAK SIGNS FAVORABLE?
503 TAD REMD /YES, GET REM-LINE (SUBTRACT 1)
509 JMS I (RECALL /RECALL LINE
510 REMD, -1 /-1 MEANS DIDN'T RETRIEVE A REMEMBER LINE
511 DCA DEPN /SAVE DEPENDENT INFO
517 DCA PTR /RESET PTR FROM CMD DEPENDENT WORD
520 DEPN, 0 /REM LINE DEPENDENT INFORMATION
522 \f COLWRD /NEEDED FOR SET TTY COL
525 JMP CHAINN /SKIP ENTRIES IF NO CD
526 ISZ PTR /POINT TO DEFAULT INPUT EXTENSION
528 TAD I PTR /GET DEFAULT INPUT EXTENSION PTR
535 TAD I PAMFLAG /COMBINE ALTMODE BITS
538 CLA RAR /PUT NEW ALTMODE BIT ALONE IN BIT 0
539 DCA I XR /STORE AWAY IN C.D. OPTION TABLE
540 DCA I XR /V3D ZERO OPTION WORDS
543 DCA I XR /ZERO L.O. =
554 DCA I NTEMP /STORE IN SPECIFIED LOCATION
560 JMS I (INSARR /INSERT BACK ARROW IF FLAG BIT SET
561 JMS I (CD /PERFORM COMMAND DECODE IF FLAG BIT
565 SMA CLA /IS SPOOLING PROHIBITED?
567 CHAINN, ISZ PTR /POINT TO AFTER CD SUBR
569 TAD I PTR /GET SUBR ADDRESS
573 SZA /IS THERE A FILENAME SET TO CHAIN TO?
575 ISZ PTR /NO, POINT TO FILENAME
580 JMP I (LEAVE /NO FILE TO CHAIN TO
582 JMS LOOK /LOOKUP FILE
584 JMP I (CCER1 /NOT FOUND
585 CHAIN, JMS I (200 /CHAIN TO IT
591 \f/LOOK, LOOKS UP FILE ON DEVICE . POINTER IS IN ARG1
592 / ARG2 IS ERROR RETURN IF NOT FOUND
593 /DEVICE NUMBER IS IN AC. IF 0, USE SYS:
599 TAD I LOOK /GET PTR TO FILE NAME IN FIELD 0
604 JMP FLD1 /PTR LT 100 MEANS IN FIELD 1
606 JMS I (MOVE /MOVE IT UP
613 SETN, DCA NAMPTR /STORE AWAY PTR TO FILENAME
614 ISZ LOOK /POINT TO ERROR RETURN
615 TAD DEV /GET DEVICE NUMBER
621 JMP I LOOK /TAKE ERROR RETURN IF NOT FOUND
622 TAD NAMPTR /STORE STARTING BLOCK # IN 'BLK'
624 ISZ LOOK /POINT TO NORMAL RETURN
632 /SKIP IF BATCH IS RUNNING AND PUT CIF BATCH FIELD IN AC
641 SNL CLA /IS BATCH RUNNING?
644 AND (70 /ISOLATE FIELD OF BATCH
645 TAD (CIF /FORM CIF TO THE HIGHEST FIELD
646 ISZ BATCH /AND TAKE SKIP RETURN WITH IT IN AC
649 \fDEFILE, 0 /PTR TO FILENAME TO CHAIN TO
658 2000 /LOCATION 2000 FIELD 0
666 TAD BASPTR /PUSH PTR BACK TO BEGIN OF ENTRIES
667 JMS I (REMEM /REMEMBER THIS IN DEPENDENT WORD
675 JMS I (CCSUB /LOAD OVERLAY
680 JMS I (BATCH /IS BATCH RUNNING?
687 TAD I DEFALT /LEAVE 5200 IN AC IF SPECIAL MODE
689 CB, HLT /CIF TO FIELD OF BATCH
690 JMS I (BATSPL /ALLOW BATCH TO SPOOL STUFF
708 DCA I (ARLOC /REMEMBER WHERE WE INSERTED A "_"
710 \f/ TAD (-# OF LOCS TO MOVE
719 TAD I MOVE /GET FROM CDF
723 TAD I MOVE /GET FROM LOC-1
726 TAD I MOVE /GET TO CDF
730 TAD I MOVE /GET TO LOC-1
732 ISZ MOVE /POINT TO RETURN
735 JMP I MOVE /V1A IGNORE 0 MOVE
744 \fOUTSW, -1 /-1 MEANS ON OUTPUT SIDE, 0 ON INPUT SIDE
747 \fIOERR, JMS I (PRMESG
749 BADVMS, TEXT /#CCL 3X OVERLAY AND CCL INCOMPATIBLE/
768 YCCL, FILENAME CCL.SV
770 YFORT, FILENAME FORT.SV
774 YLOADER,FILENAME LOADER.SV
776 YLOAD, FILENAME LOAD.SV