Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | /5 MACREL VERSION OF CCL FOR OS/8 V3D |
2 | / | |
3 | / | |
4 | / | |
5 | / | |
6 | / | |
7 | / | |
8 | / | |
9 | / | |
10 | / | |
11 | /COPYRIGHT (C) 1974,1975,1976,1977,1978 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 MIFILE=7617 | |
46 | .GLOBAL OUTLIM,OUTSW,COLSET,FNAME1 | |
47 | .GLOBAL LPTDEV,TTYDEV,DMPDEV,NULDEV,PTPDEV,TVDEV | |
48 | .GLOBAL EXSUB,BLK,IOERR | |
49 | .GLOBAL LOOK | |
50 | .GLOBAL SETLPT,SETPTP,SETTTY,YFORT,YF4,YLOAD,YLOADER | |
51 | .GLOBAL DEFILE | |
52 | .GLOBAL YAT,ZOW,BATCH,FLAG,RDMON,REGO,REMD,CHAIN | |
53 | .GLOBAL DECODE,SCAN,LBEGIN | |
54 | .GLOBAL DEFALT,MOVE,TWAIT,NAMPTR | |
55 | BEGLN==1000 | |
56 | XFERV==70 /LOCATION INSIDE USR WHICH IS FREE | |
57 | .EXTERNAL SWAPER | |
58 | / .EXTERNAL SEMI | |
59 | .EXTERNAL MONFIX | |
60 | .EXTERNAL TABLES | |
61 | .EXTERNAL AT,CCLBLC,PTBL,SAVL,LEAVE,VERTN,NOCCL | |
62 | .EXTERNAL SETDEV,RECALL | |
63 | .EXTERNAL CD,CCER1,REMEM,ARLOC | |
64 | .EXTERNAL PRMESG,PRINT,CCSUB | |
65 | .GLOBAL YCCL | |
66 | ||
67 | XR2=15 | |
68 | XR=16 | |
69 | AMFLAG=17 | |
70 | T=20 | |
71 | DELIM=32 | |
72 | DEFALT=33 /POINTS TO DEFAULT EXTENSION LIST | |
73 | PTR=36 | |
74 | BATSPL=7200 /JMS HERE TO PERFORM SPOOLING WITH DEFAULT EXT IN AC | |
75 | SOFSET=7747 | |
76 | ||
77 | /CCL STARTING ADDRESS: 12000 | |
78 | /STARTING ADDRESS: 12001 | |
79 | /CHAIN STARTING ADDRESS:12002 | |
80 | ||
81 | / JOB STATUS WORD = 2003 | |
82 | ||
83 | /************************************************** | |
84 | / | |
85 | / SAVING CCL | |
86 | / | |
87 | / .LOAD CCL | |
88 | / .SAVE SYS CCL;12001=2103 | |
89 | / .R CCL | |
90 | / | |
91 | /************************************************** | |
92 | ||
93 | OV=1375 | |
94 | MSOVL2=55 | |
95 | CCLTAB="H /MUST BE UPDATED IF TABLES CHANGE | |
96 | CCLNUM="3 | |
97 | CCLVER="A /CCL VERSION # | |
98 | ||
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 | |
103 | ||
104 | /MEMORY ALLOCATION: | |
105 | ||
106 | /0 0000-0777 KBM | |
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: | |
118 | ||
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: | |
139 | ||
140 | /VERSION B FIXES: | |
141 | ||
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 | |
146 | ||
147 | /VERSION C FIXES: | |
148 | ||
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 | |
153 | ||
154 | /VERSION D CHANGES: | |
155 | ||
156 | /28. ALLOWED EDIT A<B COMMAND TO REMEMBER ONLY UP TO '<' . | |
157 | ||
158 | /VERSION E CHANGES: (IN-HOUSE ONLY VERSION) | |
159 | ||
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 | |
164 | ||
165 | /CHANGES FOR MAINTENANCE RELEASE (OS/8 V3C): | |
166 | ||
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] | |
173 | ||
174 | /VERSION G CHANGES: | |
175 | ||
176 | /39. FIXED BUG WITH HELP COMMAND | |
177 | /40. FIXED BUG CONCERNING EDIT DEV:_FILE | |
178 | ||
179 | /VERSION H CHANGES: | |
180 | ||
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: | |
192 | ||
193 | /51. FIRMED UP SEMICOLON STUFF | |
194 | ||
195 | /VERSION J CHANGES: | |
196 | ||
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 | |
199 | ||
200 | /VERSION K CHANGES: | |
201 | ||
202 | /54. DATE NOW HANDLES DATE/78 ALGORITHM | |
203 | /55. TOOK OUT 'TCF' WHICH WAS CAUSING BATCH TO HANG | |
204 | ||
205 | /VERSION 1A CHANGES: | |
206 | ||
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) | |
217 | ||
218 | /V1B CHANGES: | |
219 | ||
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 | |
225 | ||
226 | /V1F CHANGE: | |
227 | ||
228 | /70. DUPL CALLS RXCOPY IN SPECIAL MODE | |
229 | ||
230 | /V1G CHANGES: | |
231 | ||
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 | |
243 | ||
244 | /ENTRY PURPOSE | |
245 | ||
246 | / TABLE WIDTH=7 (BUT VARIES) | |
247 | ||
248 | /0 FLAG WORD | |
249 | ||
250 | /BIT MEANING IF ON | |
251 | ||
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) | |
261 | ||
262 | /1 PTR TO DEFAULT EXTENSION LIST FOR INPUT FILES. | |
263 | / IF PTS TO 0, NONE. IF PTS TO 5200, USE SPECIAL MODE. | |
264 | ||
265 | /2-4 DEFAULT SWITCHES TO BE OR'ED INTO THOSE | |
266 | / EXPLICITLY GIVEN. | |
267 | ||
268 | /5 ADDRESS OF SUBROUTINE TO BE CALLED | |
269 | / AFTER C.D. HAS BEEN DONE. 0 IF NONE. | |
270 | ||
271 | /6 PTR TO FILENAME OF PROGRAM | |
272 | / TO BE CHAINED TO. 0 IF NONE. | |
273 | ||
274 | / FIELD 0 | |
275 | ||
276 | /1000-1777 LINE BUFFER | |
277 | /2000-2777 LINE BUFFER EXTENSION | |
278 | /4000-4377 REM-LINES | |
279 | /4400-4777 HANDLER | |
280 | /5000-5577 BUFFER | |
281 | /6000-7577 MORE CCL (7 PAGES) | |
282 | ||
283 | REST=5000 | |
284 | \f .ASECT CCL | |
285 | *2000 | |
286 | .JSW 2103 | |
287 | .VERSION CCLNUM&77^100+<CCLVER&77> | |
288 | ||
289 | FIELD 1 | |
290 | ||
291 | FAKBM=404 /PLACE TO FAKE OUT KBM | |
292 | ||
293 | START, JMP .+3 /START FROM MONITOR | |
294 | JMP MONF /START FROM .RUN COMMAND | |
295 | JMP MONCHN /START WHEN CHAINED TO | |
296 | CLA | |
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 | |
300 | TAD (7607 | |
301 | DCA I (7756 | |
302 | TAD I (SOFSET | |
303 | CDF 10 | |
304 | TAD CCLREM | |
305 | DCA CCLREM /GET BLOCK OF REST | |
306 | CIF 0 | |
307 | JMS I (7607 | |
308 | 1300 /READ 11 MORE PAGES | |
309 | REST | |
310 | WFL, | |
311 | CCLREM, 1+5+1 /SKIP CCB AND *400 STUFF | |
312 | JMP I (ERR2 | |
313 | JMS FIXX | |
314 | JMS TWAIT | |
315 | CDF 0 | |
316 | TAD I LVNO | |
317 | CDF 10 | |
318 | TAD (-CCLTAB /DO VERSION #'S AGREE? | |
319 | SZA CLA | |
320 | JMP I (BADVNO | |
321 | JMS I (AT | |
322 | TAD (BEGLN-1 | |
323 | DCA XR | |
324 | L$: CDF 0 | |
325 | TAD I XR | |
326 | CDF 10 | |
327 | SNA | |
328 | JMP 2$ | |
329 | TAD (-"; | |
330 | SZA CLA | |
331 | JMP L$ | |
332 | / JMS I (SEMI | |
333 | NOP | |
334 | 2$: STA | |
335 | DCA I (REMD /ALLOW RECURSIVE U'S | |
336 | CDF 0 | |
337 | TAD I KENTRY /GET ENTRY # | |
338 | CIF CDF 10 | |
339 | TAD (PTBL /GET ADDRESS OF PTR TO START OF ENTRY | |
340 | DCA PTR | |
341 | CDF TABLES | |
342 | TAD I PTR /GET PTR TO START OF ENTRY | |
343 | CDF 10 | |
344 | DCA PTR | |
345 | TAD PTR | |
346 | BASPTR, DCA BASPTR | |
347 | JMP I (GO | |
348 | ||
349 | FIXX, 0 | |
350 | DCA I (XFERV /SET UP STUFF FOR OVERLAY DRIVER | |
351 | TAD (SWAPER | |
352 | DCA I (XFERV+1 | |
353 | JMP I FIXX | |
354 | ||
355 | MONF, JMS FIXX | |
356 | JMP I (MONFIX | |
357 | \fMONCHN, | |
358 | CIF 0 | |
359 | JMS I (7607 /READ IN KBM | |
360 | 1000 /4 BLOCKS | |
361 | 0 /0-1777 | |
362 | 7 /BLOCK 7 ON SYS: | |
363 | HLT /NO WAY TO RECOVER (EVEN 7605 DOES THIS) | |
364 | TAD (-44 | |
365 | JMS I (MOVE /ASSUME COMMAND LINE IS IN | |
366 | CDF 10 /17600-17643 | |
367 | 7600 | |
368 | CDF 0 | |
369 | 1000 /MOVE TO OS/8 LINE BUFFER | |
370 | CIF CDF 0 | |
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) | |
375 | REGO, CIF 0 | |
376 | JMS I (7607 | |
377 | 200 /READ ONE BLOCK | |
378 | 400 /400-777 | |
379 | 10 /RESTORE PART OF KBM WHICH WAS DESTROYED BY OVERLAY | |
380 | HLT | |
381 | JMP I (FAKE | |
382 | ||
383 | /REGO, TAD KCIDF | |
384 | / CDF 0 | |
385 | / DCA I (RETCIF /ALLOW 'FINDIT' TO RETURN TO FIELD 1 | |
386 | / CIF CDF 0 | |
387 | / STA | |
388 | / DCA I (HALF | |
389 | / DCA I (ENTRY | |
390 | / TAD (KEYWRD | |
391 | / DCA I (KPTR | |
392 | / JMS I (FINDIT /LOOK UP KEYWORD | |
393 | / SMA CLA | |
394 | / JMP PREGO /FOUND IT | |
395 | /CMDERR, JMS I (PRMESG /NOT A LEGAL KEYWORD | |
396 | / ERRCMD | |
397 | ||
398 | .START START+1,1 | |
399 | \fTWAIT, 0 | |
400 | DCA WFL | |
401 | JMS I (BATCH | |
402 | JMP TW /BATCH NOT RUNNING | |
403 | CLA /WE'RE RUNNING UNDER BATCH | |
404 | JMP I TWAIT | |
405 | TW, TSF | |
406 | SKP /WAIT FOR THINGS TO QUIET DOWN | |
407 | JMP I TWAIT | |
408 | LVNO, AND I 0 /WASTE SOME TIME | |
409 | KFAKBM, AND I 4 | |
410 | KENTRY, 600 | |
411 | ISZ WFL | |
412 | JMP TW | |
413 | JMP I TWAIT /CAN'T WAIT TOO LONG | |
414 | FILDMY, FILENAME DUMMY.SV | |
415 | 0 /EXTRA EXTENSION WORD | |
416 | PAGE | |
417 | \fBADVNO, JMS I (PRINT | |
418 | BADVMS | |
419 | JMS I (VERTN | |
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. | |
425 | DECODE, 0 | |
426 | TAD (-"9-1 /MIGHT BE CALLED WITH ANY DF | |
427 | CLL | |
428 | TAD ("9+1-"0 | |
429 | SZL | |
430 | JMP YES$ | |
431 | TAD ("0-"Z-1 | |
432 | CLL CML | |
433 | TAD ("Z-"A+1 | |
434 | SNL | |
435 | YES$: ISZ DECODE | |
436 | JMP I DECODE | |
437 | \fLBEGIN, 0 /PTS TO 1 CHAR BEFORE COMMAND KEYWORD ARGUMENT | |
438 | ||
439 | SCAN, 0 | |
440 | TAD (BEGLN | |
441 | DCA T | |
442 | CDF 0 | |
443 | JMS BLSCAN /IGNORE INITIAL SPACES | |
444 | JMP 2$ | |
445 | 1$: CLA | |
446 | ISZ T | |
447 | TAD I T | |
448 | 2$: SNA | |
449 | JMP 3$ | |
450 | JMS I (DECODE | |
451 | SKP CLA | |
452 | JMP 1$ | |
453 | JMS BLSCAN | |
454 | 3$: DCA DELIM | |
455 | STA | |
456 | TAD T | |
457 | CDF 10 | |
458 | DCA I (LBEGIN | |
459 | JMP I SCAN | |
460 | ||
461 | BLSCAN, 0 | |
462 | TAD I T | |
463 | TAD (-240 | |
464 | SZA | |
465 | JMP 1$ | |
466 | ISZ T | |
467 | JMP BLSCAN+1 | |
468 | 1$: TAD (240 | |
469 | JMP I BLSCAN /LEAVE CHAR IN AC | |
470 | \fSETLPT, 0 /COULD BE ONCE ONLY | |
471 | TAD (LPTDEV | |
472 | JMS I (SETDEV | |
473 | JMP I SETLPT | |
474 | ||
475 | SETTTY, 0 | |
476 | TAD (TTYDEV | |
477 | JMS I (SETDEV | |
478 | JMP I SETTTY | |
479 | ||
480 | SETPTP, 0 | |
481 | TAD (PTPDEV | |
482 | JMS I (SETDEV | |
483 | JMP I SETPTP | |
484 | ||
485 | FAKE, CIF CDF 0 | |
486 | TAD (MSOVL2 | |
487 | DCA I (OV /RESTORE LOC SO DATE CMD W ARGS WILL WORK | |
488 | JMP I (FAKBM | |
489 | \fSYSER, TEXT \#I/O ERROR ON SYS:\ | |
490 | \fGO, JMS I (SCAN /ADVANCE SCAN UNTIL AFTER SPACES | |
491 | GO2, CDF TABLES | |
492 | TAD I PTR /GET FLAG | |
493 | CDF 10 | |
494 | DCA FLAG /SAVE IT | |
495 | TAD DELIM | |
496 | SNA CLA /IS TYPED LINE EMPTY AFTER KEYWORD? | |
497 | TAD FLAG /AND IS SPECIAL REMEMBERING BITS ON? | |
498 | CLL RTR | |
499 | RAR /AND HAS GOD WILLED US TO REMEMBER? | |
500 | AND (7 /AND ARE THE ZODIAK SIGNS FAVORABLE? | |
501 | SNA | |
502 | JMP I (NORM /NO | |
503 | TAD REMD /YES, GET REM-LINE (SUBTRACT 1) | |
504 | DCA REMD | |
505 | CDF 0 | |
506 | TAD I (BEGLN | |
507 | CDF 10 | |
508 | DCA I (NMPTR | |
509 | JMS I (RECALL /RECALL LINE | |
510 | REMD, -1 /-1 MEANS DIDN'T RETRIEVE A REMEMBER LINE | |
511 | DCA DEPN /SAVE DEPENDENT INFO | |
512 | TAD I (NMPTR | |
513 | SZA CLA /EG COMMAND? | |
514 | JMP I (NORM /NO | |
515 | ISZ DELIM /YES | |
516 | TAD DEPN | |
517 | DCA PTR /RESET PTR FROM CMD DEPENDENT WORD | |
518 | JMP GO2 | |
519 | ||
520 | DEPN, 0 /REM LINE DEPENDENT INFORMATION | |
521 | PAGE | |
522 | \f COLWRD /NEEDED FOR SET TTY COL | |
523 | NORM, TAD FLAG | |
524 | L7700, SMA CLA | |
525 | JMP CHAINN /SKIP ENTRIES IF NO CD | |
526 | ISZ PTR /POINT TO DEFAULT INPUT EXTENSION | |
527 | CDF TABLES | |
528 | TAD I PTR /GET DEFAULT INPUT EXTENSION PTR | |
529 | CDF 10 | |
530 | DCA DEFALT /SAVE IT | |
531 | TAD (7641 | |
532 | DCA XR | |
533 | TAD FLAG | |
534 | CDF 0 | |
535 | TAD I PAMFLAG /COMBINE ALTMODE BITS | |
536 | CDF 10 | |
537 | RAR /IN POSITION 11 | |
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 | |
541 | DCA I XR | |
542 | DCA I XR | |
543 | DCA I XR /ZERO L.O. = | |
544 | L$: ISZ PTR | |
545 | CDF TABLES | |
546 | TAD I PTR | |
547 | SNA | |
548 | JMP 2$ | |
549 | DCA NTEMP | |
550 | ISZ PTR | |
551 | TAD I PTR /GET VALUE | |
552 | CDF 10 | |
553 | TAD I NTEMP | |
554 | DCA I NTEMP /STORE IN SPECIFIED LOCATION | |
555 | JMP L$ | |
556 | 2$: CDF 10 | |
557 | TAD FLAG | |
558 | AND (400 | |
559 | SZA CLA | |
560 | JMS I (INSARR /INSERT BACK ARROW IF FLAG BIT SET | |
561 | JMS I (CD /PERFORM COMMAND DECODE IF FLAG BIT | |
562 | /0 SET | |
563 | TAD FLAG | |
564 | RAL | |
565 | SMA CLA /IS SPOOLING PROHIBITED? | |
566 | JMS I (SPOOLIT /NO | |
567 | CHAINN, ISZ PTR /POINT TO AFTER CD SUBR | |
568 | CDF TABLES | |
569 | TAD I PTR /GET SUBR ADDRESS | |
570 | CDF 10 | |
571 | JMS I (JMSUB | |
572 | TAD I (DEFILE | |
573 | SZA /IS THERE A FILENAME SET TO CHAIN TO? | |
574 | JMP ZOW /YES | |
575 | ISZ PTR /NO, POINT TO FILENAME | |
576 | CDF TABLES | |
577 | TAD I PTR | |
578 | CDF 10 | |
579 | SNA | |
580 | JMP I (LEAVE /NO FILE TO CHAIN TO | |
581 | ZOW, DCA NMPTR | |
582 | JMS LOOK /LOOKUP FILE | |
583 | NMPTR, 0 | |
584 | JMP I (CCER1 /NOT FOUND | |
585 | CHAIN, JMS I (200 /CHAIN TO IT | |
586 | 6 /CHAIN | |
587 | ||
588 | BLK, 0 | |
589 | / ----- | |
590 | PAMFLAG,AMFLAG | |
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: | |
594 | ||
595 | LOOK, 0 | |
596 | SNA | |
597 | IAC | |
598 | DCA DEV | |
599 | TAD I LOOK /GET PTR TO FILE NAME IN FIELD 0 | |
600 | DCA HISFIL | |
601 | TAD HISFIL | |
602 | AND L7700 | |
603 | SNA CLA | |
604 | JMP FLD1 /PTR LT 100 MEANS IN FIELD 1 | |
605 | TAD (-3 | |
606 | JMS I (MOVE /MOVE IT UP | |
607 | CDF 0 | |
608 | BWORD, | |
609 | HISFIL, 0 | |
610 | CDF 10 | |
611 | PFILDMY,FILDMY | |
612 | TAD PFILDMY | |
613 | SETN, DCA NAMPTR /STORE AWAY PTR TO FILENAME | |
614 | ISZ LOOK /POINT TO ERROR RETURN | |
615 | TAD DEV /GET DEVICE NUMBER | |
616 | JMS I (200 | |
617 | 2 /LOOKUP | |
618 | NTEMP, | |
619 | NAMPTR, 0 | |
620 | 0 | |
621 | JMP I LOOK /TAKE ERROR RETURN IF NOT FOUND | |
622 | TAD NAMPTR /STORE STARTING BLOCK # IN 'BLK' | |
623 | DCA BLK | |
624 | ISZ LOOK /POINT TO NORMAL RETURN | |
625 | JMP I LOOK /RETURN | |
626 | \fFLAG, 0 | |
627 | DEV, 0 | |
628 | ||
629 | FLD1, TAD HISFIL | |
630 | JMP SETN | |
631 | ||
632 | /SKIP IF BATCH IS RUNNING AND PUT CIF BATCH FIELD IN AC | |
633 | ||
634 | BATCH, 0 | |
635 | CDF 0 | |
636 | TAD I (7777 | |
637 | CDF 10 | |
638 | DCA BWORD | |
639 | TAD BWORD | |
640 | RTL | |
641 | SNL CLA /IS BATCH RUNNING? | |
642 | JMP I BATCH /NO | |
643 | TAD BWORD /YES | |
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 | |
647 | JMP I BATCH | |
648 | PAGE | |
649 | \fDEFILE, 0 /PTR TO FILENAME TO CHAIN TO | |
650 | ||
651 | TEMP, | |
652 | RDMON, 0 | |
653 | CDF 10 | |
654 | CIF 0 | |
655 | CLA | |
656 | JMS I (7607 | |
657 | 0400 /READ 2 RECORD | |
658 | 2000 /LOCATION 2000 FIELD 0 | |
659 | 7 /BLOCK 7,10 | |
660 | JMP IOERR | |
661 | JMP I RDMON | |
662 | ||
663 | ERR2, CIF CDF 0 | |
664 | JMP I (NOCCL | |
665 | \fEXSUB, 0 | |
666 | TAD BASPTR /PUSH PTR BACK TO BEGIN OF ENTRIES | |
667 | JMS I (REMEM /REMEMBER THIS IN DEPENDENT WORD | |
668 | 2 | |
669 | JMP I EXSUB | |
670 | ||
671 | JMSUB, 0 | |
672 | SNA | |
673 | JMP I JMSUB | |
674 | DCA TEMP | |
675 | JMS I (CCSUB /LOAD OVERLAY | |
676 | JMS I TEMP | |
677 | JMP I JMSUB | |
678 | ||
679 | SPOOLIT,0 | |
680 | JMS I (BATCH /IS BATCH RUNNING? | |
681 | JMP I SPOOLIT /NO | |
682 | DCA CB /YES | |
683 | CDF 0 | |
684 | TAD I DEFALT | |
685 | TAD (-5200 | |
686 | SNA CLA | |
687 | TAD I DEFALT /LEAVE 5200 IN AC IF SPECIAL MODE | |
688 | CDF 10 | |
689 | CB, HLT /CIF TO FIELD OF BATCH | |
690 | JMS I (BATSPL /ALLOW BATCH TO SPOOL STUFF | |
691 | JMP I SPOOLIT | |
692 | \fINSARR, 0 | |
693 | TAD (BEGLN | |
694 | DCA XR | |
695 | CDF 0 | |
696 | TAD I XR | |
697 | SZA CLA | |
698 | JMP .-2 | |
699 | STA | |
700 | TAD XR | |
701 | DCA XR | |
702 | TAD ("< | |
703 | DCA I XR | |
704 | DCA I XR | |
705 | CDF 10 | |
706 | STA | |
707 | TAD XR | |
708 | DCA I (ARLOC /REMEMBER WHERE WE INSERTED A "_" | |
709 | JMP I INSARR | |
710 | \f/ TAD (-# OF LOCS TO MOVE | |
711 | / JMS MOVE | |
712 | / FROM CDF | |
713 | / FROM LOC | |
714 | / TO CDF | |
715 | / TO LOC | |
716 | ||
717 | MOVE, 0 | |
718 | DCA T | |
719 | TAD I MOVE /GET FROM CDF | |
720 | DCA FRCDF | |
721 | ISZ MOVE | |
722 | STA | |
723 | TAD I MOVE /GET FROM LOC-1 | |
724 | DCA XR | |
725 | ISZ MOVE | |
726 | TAD I MOVE /GET TO CDF | |
727 | DCA TOCDF | |
728 | ISZ MOVE | |
729 | STA | |
730 | TAD I MOVE /GET TO LOC-1 | |
731 | DCA XR2 | |
732 | ISZ MOVE /POINT TO RETURN | |
733 | TAD T | |
734 | SNA CLA | |
735 | JMP I MOVE /V1A IGNORE 0 MOVE | |
736 | FRCDF, HLT | |
737 | TAD I XR | |
738 | TOCDF, HLT | |
739 | DCA I XR2 | |
740 | ISZ T | |
741 | JMP FRCDF | |
742 | CDF 10 | |
743 | JMP I MOVE | |
744 | \fOUTSW, -1 /-1 MEANS ON OUTPUT SIDE, 0 ON INPUT SIDE | |
745 | ||
746 | OUTLIM, 1-MIFILE | |
747 | \fIOERR, JMS I (PRMESG | |
748 | SYSER | |
749 | BADVMS, TEXT /#CCL 3X OVERLAY AND CCL INCOMPATIBLE/ | |
750 | AAAA=. | |
751 | *BADVMS+3 | |
752 | CCLTAB&77^100+40 | |
753 | *AAAA | |
754 | COLWRD, 1 | |
755 | ||
756 | COLSET, 0 | |
757 | / JMS I (CCSUB | |
758 | JMS I (SETTTY | |
759 | TAD I (7646 | |
760 | SNA | |
761 | TAD COLWRD | |
762 | DCA I (7646 | |
763 | JMP I COLSET | |
764 | PAGE | |
765 | \f .ASECT CCLMOR | |
766 | FIELD 0 | |
767 | *6740 | |
768 | YCCL, FILENAME CCL.SV | |
769 | *.-1 | |
770 | YFORT, FILENAME FORT.SV | |
771 | *.-1 | |
772 | YF4, FILENAME F4.SV | |
773 | *.-1 | |
774 | YLOADER,FILENAME LOADER.SV | |
775 | *.-1 | |
776 | YLOAD, FILENAME LOAD.SV | |
777 | *.-1 | |
778 | LPTDEV, DEVICE LPT | |
779 | TVDEV, DEVICE TV | |
780 | TTYDEV, DEVICE TTY | |
781 | PTPDEV, DEVICE PTP | |
782 | DMPDEV, DEVICE DUMP | |
783 | NULDEV, DEVICE NULL | |
784 | FNAME1, ZBLOCK 5 | |
785 | \f\f |