home *** CD-ROM | disk | FTP | other *** search
/ ftp.update.uu.se / ftp.update.uu.se.2014.03.zip / ftp.update.uu.se / pub / pdp8 / os278-src.tar.Z / os278-src.tar / ccl.ma < prev    next >
Text File  |  1992-09-18  |  16KB  |  788 lines

  1. /CCL   MACREL VERSION OF CCL FOR OS78 V4
  2. /
  3. /
  4. /
  5. /
  6. /
  7. /
  8. /
  9. /
  10. /
  11. /COPYRIGHT (C) 1974,1975,1976,1977,1978,1982 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.  
  46.  
  47.     MIFILE=7617
  48.     .GLOBAL OUTLIM,OUTSW,COLSET,FNAME1
  49.     .GLOBAL LPTDEV,TTYDEV,DMPDEV,NULDEV,PTPDEV,TVDEV
  50.     .GLOBAL EXSUB,BLK,IOERR
  51.     .GLOBAL LOOK
  52.     .GLOBAL SETLPT,SETPTP,SETTTY,YFORT,YF4,YLOAD,YLOADER
  53.     .GLOBAL DEFILE
  54.     .GLOBAL YAT,ZOW,BATCH,FLAG,RDMON,REGO,REMD,CHAIN
  55.     .GLOBAL DECODE,SCAN,LBEGIN
  56.     .GLOBAL DEFALT,MOVE,TWAIT,NAMPTR
  57.     BEGLN==1000
  58.     XFERV==70    /LOCATION INSIDE USR WHICH IS FREE
  59.     .EXTERNAL SWAPER
  60. /    .EXTERNAL SEMI
  61.     .EXTERNAL MONFIX
  62.     .EXTERNAL TABLES
  63.     .EXTERNAL AT,CCLBLC,PTBL,SAVL,LEAVE,VERTN,NOCCL
  64.     .EXTERNAL SETDEV,RECALL
  65.     .EXTERNAL CD,CCER1,REMEM,ARLOC
  66.     .EXTERNAL PRMESG,PRINT,CCSUB
  67.     .GLOBAL YCCL
  68.  
  69.     XR2=15
  70.     XR=16
  71.     AMFLAG=17
  72.     T=20
  73.     DELIM=32
  74.     DEFALT=33    /POINTS TO DEFAULT EXTENSION LIST
  75.     PTR=36
  76.     BATSPL=7200    /JMS HERE TO PERFORM SPOOLING WITH DEFAULT EXT IN AC
  77.     SOFSET=7747
  78.  
  79. /CCL STARTING ADDRESS:    12000
  80. /STARTING ADDRESS:    12001
  81. /CHAIN STARTING ADDRESS:12002
  82.  
  83. /    JOB STATUS WORD = 2003
  84.  
  85. /**************************************************
  86. /
  87. /        SAVING CCL
  88. /
  89. /        .LOAD CCL
  90. /        .SAVE SYS CCL;12001=2103
  91. /        .R CCL
  92. /
  93. /**************************************************
  94.  
  95.     OV=1375
  96.     MSOVL2=55
  97.     CCLNUM="B    /VERSION = B3
  98.     CCLVER="3
  99.     CCLTAB=CCLNUM&77^100+<CCLVER&77>
  100.  
  101. /*** NOTE: VERSION E OF CCL WAS FOR IN-HOUSE USE ONLY.
  102. /USE OF SEMICOLONS WITH CCL VERSION I OR LATER
  103. /REQUIRES BATCH VERSION 7 OR LATER.
  104. /USE OF BASIC COMMAND REQUIRES V3D BASIC OR LATER
  105.  
  106. /MEMORY ALLOCATION:
  107.  
  108. /0 0000-0777    KBM
  109. /0 1000-1777    COMMAND LINE [EACH @ FILE RESTRICTED TO 1 BLOCK]
  110. /0 2000-2777    LINE BUFFER EXTENSION
  111. /0 3000-3177    PRE-EXTENSION @ BUFFER
  112. /0 3200-3577    @ BUFFER
  113. /0 4000-4377    REM-LINES
  114. /0 4400-4777    INPUT HANDLER FOR CD
  115. /        ALSO, SEMICOLON BUFFER
  116. /0 5000-5777    LONGWORD TABLE
  117. /0 6000-7277    MORE TABLES
  118. /0 7300-7577    SWITCH POINTER TABLE
  119. /    CHANGES SINCE FIELD RELEASE VERSION:
  120.  
  121. /1.    RECURSIVE 'U' BUG FIXED
  122. /2.    INTERNAL STRUCTURE OF CCL KEYWORD TABLE CHANGED
  123. /3.    BUG RE REWRITING BLOCK CONTAINING PTR TO CORRECT FORTRAN FIXED
  124. /4.    .SV PARTS OF FILENAMES REMOVED FROM TABLE TO SAVE SPACE
  125. /5.    COMPARE PASSES ALTMODE
  126. /6.    TTY BECAME DEFAULT FOR COMPAR, DIRECT, AND MAP
  127. /7.    BUG RE PASSING DEFAULT * FIXED
  128. /8.    .LS FORM OF .CREF COMMAND REMOVED
  129. /9.    BUG CONCERNING PROCESSOR SWITCHES FIXED
  130. /10.    CCL SWITCH ALLOWED AFTER =N OPTION
  131. /11.    BUG RE 'BAD SWITCH OPTION' MESSAGE FIXED
  132. /12.    EXTRA SPACES NOW ALLOWED BEFORE CCL ARGUMENT
  133. /13.    'DOES NOT EXIST' MESSAGE NOW SPELLED CORRECTLY
  134. /14.    'BAD CCL SWITCH' MESSAGE ADDED
  135. /15.    CCL EDIT # CHANGED TO CCL VERSION #
  136. /16.    .EX CHAINS TO BCOMP NOT BASIC FOR .BA FILES
  137. /17.    MUNG PTR: NOW WORKS
  138. /18.    FIXED BUG RE MUNG <CR>
  139. /19.    FIXED BUG RE CD FOR FILE > 2047 BLKS
  140. /20.    FIXED BUG RE MAKE PTR:
  141.  
  142. /VERSION B FIXES:
  143.  
  144. /21.    ALLOWED 'EDIT' TO COPY FILE EXTENSION
  145. /22.    FIXED BUG RE .CCL ON WRITE-LOCKED DEVICE
  146. /23.    FIXED DATE PROBLEM
  147. /24.    ALLOWED FF AND VT IN AN INDIRECT FILE TO BE IGNORED
  148.  
  149. /VERSION C FIXES:
  150.  
  151. /25.    FIXED BUG RE SPACES AND SLASHES IN MUNG TEXT ARGUMENT
  152. /26.    ALLOWED EDIT COMMAND TO USE SAME OUT DEVICE
  153. /     AS IN DEVICE (IF NONE SPECIFIED)
  154. /27.    ADDED MORE SYNTAX CHECKING TO ZERO COMMAND
  155.  
  156. /VERSION D CHANGES:
  157.  
  158. /28.    ALLOWED EDIT A<B COMMAND TO REMEMBER ONLY UP TO '<' .
  159.  
  160. /VERSION E CHANGES: (IN-HOUSE ONLY VERSION)
  161.  
  162. /29.    WARNING MSG IF SQUISH SYS: UNDER BATCH
  163. /30.    ADDED SOME NOTES ON HOW TO ALLOW = AS WELL AS <
  164. /31.    ADDED HOOKS FOR ; TO BE READY FOR V4
  165. /32.    FIX BUG RE CMD STARTING WITH SPACES
  166.  
  167. /CHANGES FOR MAINTENANCE RELEASE (OS/8 V3C):
  168.  
  169. /33.    FIXED BUG ABOUT @ NOT FOLLOWED BY FILESPEC
  170. /34.    INCORPORATED ALL PREVIOUS EDITS
  171. /35.    ALLOWED ' TO TERMINATE AN INDIRECT REQUEST (AND BE IGNORED)
  172. /36.    FIXED BUG ABOUT EDIT DEV1:_DEV2:FOO LOSING DEV1:
  173. /37.    CORRECTED SPELLING OF SUPERSEDING
  174. /38.    ADDED .LD EXTENSION TO EXECUTE TABLES [USES FRTS]
  175.  
  176. /VERSION G CHANGES:
  177.  
  178. /39.    FIXED BUG WITH HELP COMMAND
  179. /40.    FIXED BUG CONCERNING EDIT DEV:_FILE
  180.  
  181. /VERSION H CHANGES:
  182.  
  183. /41.    ADDED MAC AND LINK COMMANDS
  184. /42.    ADDED MACREL AND LINKER INTO COMPILE/LOAD/EXECUTE COMMANDS
  185. /43.    ALLOWED UX COMMANDS TO CONTAIN KBM COMMANDS
  186. /44.    ALLOWED PASSING A KBM COMMAND TO CCL ON CHAINING
  187. /45.    ALLOWED @ AT BEGINNING OF LINE
  188. /46.    MOVED MOST OF 'DETCOR' TO FIELD 0
  189. /47.    WAIT ROUTINE  NOW GIVES UP IF TTY FLAG ISN'T UP WITHIN 0.1 SEC
  190. /48.    ALLOWED EXEC .BI TO USE BATCH
  191. /49.    TENTATIVELY ADDED SEMICOLON STUFF
  192. /50.    PUT BACK WARNING MESSAGE IF TRY TO SQUISH UNDER BATCH
  193. /VERSION I CHANGES:
  194.  
  195. /51.    FIRMED UP SEMICOLON STUFF
  196.  
  197. /VERSION J CHANGES:
  198.  
  199. /52.    DEFAULT DEVICE FOR COMPIL, PAL, ETC. IS NOW LOGICAL DSK: NOT SYS:
  200. /53.    -L, -S, AND -P SWITCHES NOW SET OUTPUT NAME TO CURRENT INPUT NAME
  201.  
  202. /VERSION K CHANGES:
  203.  
  204. /54.    DATE NOW HANDLES DATE/78 ALGORITHM
  205. /55.    TOOK OUT 'TCF' WHICH WAS CAUSING BATCH TO HANG
  206.  
  207. /VERSION 1A CHANGES:
  208.  
  209. /56.    FIXED BUG RE NULL INDIRECT CMD FILE
  210. /57.    FIXED BUG TO NOW ALLOW DATE WITH ARGS IN INIT.CM
  211. /58.    PRINT "OS78" FOR VERSION NAME IF APPLICABLE
  212. /59.    ADDED -N AND -D AND REWROTE LOGIC A BIT
  213. /60.    HELP COMMAND NOW USES HELP.SV
  214. /61.    SET COMMAND NOW USES SET.SV
  215. /62.    'CORE' BECOMES 'MEMORY' IN 3 MSGS AND 1 CMD
  216. /63.    ADDED BASIC COMMAND (CHAINS TO BASIC.SV WITH Q SWITCH)
  217. /64.    ALLOWED FOR TERMINATE COMMAND (OS78 REPLACES BACKSPACE)
  218. /65.    ADDED DUPLICATE COMMAND (USES RXCOPY)
  219.  
  220. /V1B CHANGES:
  221.  
  222. /66.    MODIFIED FORMAT OF MAIN TABLE
  223. /67.    GIVE ERROR MESSAGE IF NO FILENAME IS GIVEN WITH INDIRECT
  224. /    FILE (EVEN IF NON-FS)
  225. /68.    PRINT KBM VERSION #
  226. /69.    ADDED TERMINATE COMMAND
  227.  
  228. /V1F CHANGE:
  229.  
  230. /70.    DUPL CALLS RXCOPY IN SPECIAL MODE
  231.  
  232. /V1G CHANGES:
  233.  
  234. /71.    SOURCE CODE IS NOW MACREL
  235. /72    LINKER OVERLAYS ADDED
  236. /73.    = ALLOWED IN ADDITION TO _ AND < (IF NOT FOLLOWED BY A DIGIT)
  237. /74.    /C:NNNN ALLOWED FOR NUMERIC ARGUMENT IN ADDITION TO =
  238. /75.    HOOKS FOR MULTIPLE CHARACTER SWITCHES ADDED
  239. /76.    SWITCHES MAY NO LONGER BE EMBEDDED IN A FILENAME
  240. /77.    KNOWN BUG IF SAY MAKE #
  241. /78    A+B IS IDENTICAL TO A-NB,B
  242. /79.    KNOWN BUG THAT /A-L USES A
  243. /80.    TEMPORARILY REMOVED SEMICOLON STUFF
  244. /    FORMAT OF CCL TABLE
  245.  
  246. /ENTRY    PURPOSE
  247.  
  248. /    TABLE WIDTH=7 (BUT VARIES)
  249.  
  250. /0    FLAG WORD
  251.  
  252.     /BIT    MEANING IF ON
  253.  
  254.     /0    PERFORM CD (IF 0, OMIT ENTRIES 1-6)
  255.     /1    DON'T PERMIT SPOOLING
  256.     /2    ALLOW .LS, .NB, .MP SWITCHES
  257.     /3    ADD _ TO END OF COMMAND STRING
  258.     /4    SET OUTPUT EXTENSION = INPUT EXTENSION (IF BIT 2 ON)
  259.     /6-8    SPECIFIES AUTOMATIC INPUT REMEMBERING (REM LINE MINUS 1)
  260.     /    0 MEANS NONE.  7 RESERVED FOR SPECIAL USE.
  261.     /10    CAUSE -L, ETC. TO GO TO 2ND OUTPUT FILE & COPIES NAME
  262.     /11    WANT DEFAULT ALTMODE (COMPL IF AMFLAG=1)
  263.  
  264. /1    PTR TO DEFAULT EXTENSION LIST FOR INPUT FILES.
  265. /    IF PTS TO 0, NONE.   IF PTS TO 5200, USE SPECIAL MODE.
  266.  
  267. /2-4    DEFAULT SWITCHES TO BE OR'ED INTO THOSE
  268. /    EXPLICITLY GIVEN.
  269.  
  270. /5    ADDRESS OF SUBROUTINE TO BE CALLED
  271. /    AFTER C.D. HAS BEEN DONE.  0 IF NONE.
  272.  
  273. /6    PTR TO FILENAME OF PROGRAM
  274. /    TO BE CHAINED TO.  0 IF NONE.
  275.  
  276. /    FIELD 0
  277.  
  278. /1000-1777    LINE BUFFER
  279. /2000-2777    LINE BUFFER EXTENSION
  280. /4000-4377    REM-LINES
  281. /4400-4777    HANDLER
  282. /5000-5577    BUFFER
  283. /6000-7577    MORE CCL (7 PAGES)
  284.  
  285.     REST=5000
  286.     .ASECT CCL
  287.     *2000
  288.     .JSW 2103
  289.     .VERSION CCLNUM&77^100+<CCLVER&77>
  290.  
  291.     FIELD 1
  292.  
  293.     FAKBM=404    /PLACE TO FAKE OUT KBM
  294.  
  295. START,    JMP .+3        /START FROM MONITOR
  296.     JMP MONF    /START FROM .RUN COMMAND
  297.     JMP MONCHN    /START WHEN CHAINED TO
  298.     CLA
  299.     CDF 0        /READ IN REST OF CCL
  300.     TAD I (CCLBLC    /GET BLOCK OF START
  301.     DCA I (SOFSET    /ALLOW LINKER OVERLAY DRIVER TO WORK
  302.     TAD (7607
  303.     DCA I (7756
  304.     TAD I (SOFSET
  305.     CDF 10
  306.     TAD CCLREM
  307.     DCA CCLREM    /GET BLOCK OF REST
  308.     CIF 0
  309.     JMS I (7607
  310.     1300        /READ 11 MORE PAGES
  311.     REST
  312. WFL,
  313. CCLREM,    1+5+1        /SKIP CCB AND *400 STUFF
  314.     JMP I (ERR2
  315.     JMS FIXX
  316.     JMS TWAIT
  317.     CDF 0
  318.     TAD I LVNO
  319.     CDF 10
  320.     TAD (-CCLTAB    /DO VERSION #'S AGREE?
  321.     SZA CLA
  322.     JMP I (BADVNO
  323.     JMS I (AT
  324.     TAD (BEGLN-1
  325.     DCA XR
  326. L$:    CDF 0
  327.     TAD I XR
  328.     CDF 10
  329.     SNA
  330.     JMP 2$
  331.     TAD (-";
  332.     SZA CLA
  333.     JMP L$
  334. /    JMS I (SEMI
  335.     NOP
  336. 2$:    STA
  337.     DCA I (REMD    /ALLOW RECURSIVE U'S
  338.     CDF 0
  339.     TAD I KENTRY    /GET ENTRY #
  340.     CIF CDF 10
  341.     TAD (PTBL    /GET ADDRESS OF PTR TO START OF ENTRY
  342.     DCA PTR
  343.     CDF TABLES
  344.     TAD I PTR    /GET PTR TO START OF ENTRY
  345.     CDF 10
  346.     DCA PTR
  347.     TAD PTR
  348. BASPTR,    DCA BASPTR
  349.     JMP I (GO
  350.  
  351. FIXX,    0
  352.     DCA I (XFERV    /SET UP STUFF FOR OVERLAY DRIVER
  353.     TAD (SWAPER
  354.     DCA I (XFERV+1
  355.     JMP I FIXX
  356.  
  357. MONF,    JMS FIXX
  358.     JMP I (MONFIX
  359. MONCHN,
  360.     CIF 0
  361.     JMS I (7607    /READ IN KBM
  362.     1000        /4 BLOCKS
  363.     0        /0-1777
  364.     7        /BLOCK 7 ON SYS:
  365.     HLT        /NO WAY TO RECOVER (EVEN 7605 DOES THIS)
  366.     TAD (-44
  367.     JMS I (MOVE    /ASSUME COMMAND LINE IS IN
  368.     CDF 10        /17600-17643
  369.     7600
  370.     CDF 0
  371.     1000        /MOVE TO OS/8 LINE BUFFER
  372.     CIF CDF 0
  373. YAT,    JMP I KFAKBM    /@ DESTROYS THIS CODE (MUST BE ONE BEFORE 'REGO')
  374.     TAD I (SAVL    /'YAT' IS JMS'ED TO
  375.     SNA CLA        /BY INITIAL @ COMMAND
  376.     JMP I (LEAVE    /DO NOTHING IF NO @ GOT EXPANDED (NULL LINE)
  377. REGO,    CIF 0
  378.     JMS I (7607
  379.     200        /READ ONE BLOCK
  380.     400        /400-777
  381.     10        /RESTORE PART OF KBM WHICH WAS DESTROYED BY OVERLAY
  382.     HLT
  383.     JMP I (FAKE
  384.  
  385. /REGO,    TAD KCIDF
  386. /    CDF 0
  387. /    DCA I (RETCIF    /ALLOW 'FINDIT' TO RETURN TO FIELD 1
  388. /    CIF CDF 0
  389. /    STA
  390. /    DCA I (HALF
  391. /    DCA I (ENTRY
  392. /    TAD (KEYWRD
  393. /    DCA I (KPTR
  394. /    JMS I (FINDIT    /LOOK UP KEYWORD
  395. /    SMA CLA
  396. /    JMP PREGO    /FOUND IT
  397. /CMDERR,    JMS I (PRMESG    /NOT A LEGAL KEYWORD
  398. /    ERRCMD
  399.  
  400.     .START START+1,1
  401. TWAIT,    0
  402.     DCA WFL
  403.     JMS I (BATCH
  404.     JMP TW        /BATCH NOT RUNNING
  405.     CLA        /WE'RE RUNNING UNDER BATCH
  406.     JMP I TWAIT
  407. TW,    TSF
  408.     SKP        /WAIT FOR THINGS TO QUIET DOWN
  409.     JMP I TWAIT
  410. LVNO,    AND I 0        /WASTE SOME TIME
  411. KFAKBM,    AND I 4
  412. KENTRY,    600
  413.     ISZ WFL
  414.     JMP TW
  415.     JMP I TWAIT    /CAN'T WAIT TOO LONG
  416. FILDMY,    FILENAME DUMMY.SV
  417.     0        /EXTRA EXTENSION WORD
  418.     PAGE
  419. BADVNO,    JMS I (PRINT
  420.     BADVMS
  421.     JMS I (VERTN
  422.     JMP I (LEAVE    /GO AWAY
  423. /THIS ROUTINE DETERMINES IF THE CHARACTER IN THE AC IS A LETTER OR DIGIT
  424. /IF LETTER, RETURNS TO RET+1 WITH LETTER-"A IN AC AND LINK=0
  425. /IF DIGIT, RETURNS TO RET+1 WITH DIGIT-"0 IN AC AND LINK=1
  426. /IF NEITHER, RETURNS TO RET WITH CHAR-"A IN AC.
  427. DECODE,    0
  428.     TAD (-"9-1    /MIGHT BE CALLED WITH ANY DF
  429.     CLL
  430.     TAD ("9+1-"0
  431.     SZL
  432.     JMP YES$
  433.     TAD ("0-"Z-1
  434.     CLL CML
  435.     TAD ("Z-"A+1
  436.     SNL
  437. YES$:    ISZ DECODE
  438.     JMP I DECODE
  439. LBEGIN,    0        /PTS TO 1 CHAR BEFORE COMMAND KEYWORD ARGUMENT
  440.  
  441. SCAN,    0
  442.     TAD (BEGLN
  443.     DCA T
  444.     CDF 0
  445.     JMS BLSCAN    /IGNORE INITIAL SPACES
  446.     JMP 2$
  447. 1$:    CLA
  448.     ISZ T
  449.     TAD I T
  450. 2$:    SNA
  451.     JMP 3$
  452.     JMS I (DECODE
  453.     SKP CLA
  454.     JMP 1$
  455.     JMS BLSCAN
  456. 3$:    DCA DELIM
  457.     STA
  458.     TAD T
  459.     CDF 10
  460.     DCA I (LBEGIN
  461.     JMP I SCAN
  462.  
  463. BLSCAN,    0
  464.     TAD I T
  465.     TAD (-240
  466.     SZA
  467.     JMP 1$
  468.     ISZ T
  469.     JMP BLSCAN+1
  470. 1$:    TAD (240
  471.     JMP I BLSCAN    /LEAVE CHAR IN AC
  472. SETLPT,    0        /COULD BE ONCE ONLY
  473.     TAD (LPTDEV
  474.     JMS I (SETDEV
  475.     JMP I SETLPT
  476.  
  477. SETTTY,    0
  478.     TAD (TTYDEV
  479.     JMS I (SETDEV
  480.     JMP I SETTTY
  481.  
  482. SETPTP,    0
  483.     TAD (PTPDEV
  484.     JMS I (SETDEV
  485.     JMP I SETPTP
  486.  
  487. FAKE,    CIF CDF 0
  488.     TAD (MSOVL2
  489.     DCA I (OV    /RESTORE LOC SO DATE CMD W ARGS WILL WORK
  490.     JMP I (FAKBM
  491. SYSER,    TEXT    \#I/O ERROR ON SYS:\
  492. GO,    JMS I (SCAN    /ADVANCE SCAN UNTIL AFTER SPACES
  493. GO2,    CDF TABLES
  494.     TAD I PTR    /GET FLAG
  495.     CDF 10
  496.     DCA FLAG    /SAVE IT
  497.     TAD DELIM
  498.     SNA CLA        /IS TYPED LINE EMPTY AFTER KEYWORD?
  499.     TAD FLAG    /AND IS SPECIAL REMEMBERING BITS ON?
  500.     CLL RTR
  501.     RAR        /AND HAS GOD WILLED US TO REMEMBER?
  502.     AND (7        /AND ARE THE ZODIAK SIGNS FAVORABLE?
  503.     SNA
  504.     JMP I (NORM    /NO
  505.     TAD REMD    /YES, GET REM-LINE (SUBTRACT 1)
  506.     DCA REMD
  507.     CDF 0
  508.     TAD I (BEGLN
  509.     CDF 10
  510.     DCA I (NMPTR
  511.     JMS I (RECALL    /RECALL LINE
  512. REMD,    -1        /-1 MEANS DIDN'T RETRIEVE A REMEMBER LINE
  513.     DCA DEPN    /SAVE DEPENDENT INFO
  514.     TAD I (NMPTR
  515.     SZA CLA        /EG COMMAND?
  516.     JMP I (NORM    /NO
  517.     ISZ DELIM    /YES
  518.     TAD DEPN
  519.     DCA PTR        /RESET PTR FROM CMD DEPENDENT WORD
  520.     JMP GO2
  521.  
  522. DEPN,    0        /REM LINE DEPENDENT INFORMATION
  523.     PAGE
  524.     COLWRD    //KEEP AT 2400. USED BY SET TTY COL AS POINTER TO COLWRD.
  525. NORM,    TAD FLAG
  526. L7700,    SMA CLA
  527.     JMP CHAINN    /SKIP ENTRIES IF NO CD
  528.     ISZ PTR        /POINT TO DEFAULT INPUT EXTENSION
  529.     CDF TABLES
  530.     TAD I PTR    /GET DEFAULT INPUT EXTENSION PTR
  531.     CDF 10
  532.     DCA DEFALT    /SAVE IT
  533.     TAD (7641
  534.     DCA XR
  535.     TAD FLAG
  536.     CDF 0
  537.     TAD I PAMFLAG    /COMBINE ALTMODE BITS
  538.     CDF 10
  539.     RAR        /IN POSITION 11
  540.     CLA RAR        /PUT NEW ALTMODE BIT ALONE IN BIT 0
  541.     DCA I XR    /STORE AWAY IN C.D. OPTION TABLE
  542.     DCA I XR    /V3D ZERO OPTION WORDS
  543.     DCA I XR
  544.     DCA I XR
  545.     DCA I XR    /ZERO L.O. =
  546. L$:    ISZ PTR
  547.     CDF TABLES
  548.     TAD I PTR
  549.     SNA
  550.     JMP 2$
  551.     DCA NTEMP
  552.     ISZ PTR
  553.     TAD I PTR    /GET VALUE
  554.     CDF 10
  555.     TAD I NTEMP
  556.     DCA I NTEMP    /STORE IN SPECIFIED LOCATION
  557.     JMP L$
  558. 2$:    CDF 10
  559.     TAD FLAG
  560.     AND (400
  561.     SZA CLA
  562.     JMS I (INSARR    /INSERT BACK ARROW IF FLAG BIT SET
  563.     JMS I (CD    /PERFORM COMMAND DECODE IF FLAG BIT
  564.             /0 SET
  565.     TAD FLAG
  566.     RAL
  567.     SMA CLA        /IS SPOOLING PROHIBITED?
  568.     JMS I (SPOOLIT    /NO
  569. CHAINN,    ISZ PTR        /POINT TO AFTER CD SUBR
  570.     CDF TABLES
  571.     TAD I PTR    /GET SUBR ADDRESS
  572.     CDF 10
  573.     JMS I (JMSUB
  574.     TAD I (DEFILE
  575.     SZA        /IS THERE A FILENAME SET TO CHAIN TO?
  576.     JMP ZOW        /YES
  577.     ISZ PTR        /NO, POINT TO FILENAME
  578.     CDF TABLES
  579.     TAD I PTR
  580.     CDF 10
  581.     SNA
  582.     JMP I (LEAVE    /NO FILE TO CHAIN TO
  583. ZOW,    DCA NMPTR
  584.     JMS LOOK    /LOOKUP FILE
  585. NMPTR,    0
  586.     JMP I (CCER1    /NOT FOUND
  587. CHAIN,    JMS I (200    /CHAIN TO IT
  588.     6        /CHAIN
  589.  
  590. BLK,    0
  591. /    -----
  592. PAMFLAG,AMFLAG
  593. /LOOK, LOOKS UP FILE ON DEVICE .  POINTER IS IN ARG1
  594. /    ARG2 IS ERROR RETURN IF NOT FOUND
  595. /DEVICE NUMBER IS IN AC.  IF 0, USE SYS:
  596.  
  597. LOOK,    0
  598.     SNA
  599.     IAC
  600.     DCA DEV
  601.     TAD I LOOK    /GET PTR TO FILE NAME IN FIELD 0
  602.     DCA HISFIL
  603.     TAD HISFIL
  604.     AND L7700
  605.     SNA CLA
  606.     JMP FLD1    /PTR LT 100 MEANS IN FIELD 1
  607.     TAD (-3
  608.     JMS I (MOVE    /MOVE IT UP
  609.     CDF 0
  610. BWORD,
  611. HISFIL,    0
  612.     CDF 10
  613. PFILDMY,FILDMY
  614.     TAD PFILDMY
  615. SETN,    DCA NAMPTR    /STORE AWAY PTR TO FILENAME
  616.     ISZ LOOK    /POINT TO ERROR RETURN
  617.     TAD DEV        /GET DEVICE NUMBER
  618.     JMS I (200
  619.     2        /LOOKUP
  620. NTEMP,
  621. NAMPTR,    0
  622.     0
  623.     JMP I LOOK    /TAKE ERROR RETURN IF NOT FOUND
  624.     TAD NAMPTR    /STORE STARTING BLOCK # IN 'BLK'
  625.     DCA BLK
  626.     ISZ LOOK    /POINT TO NORMAL RETURN
  627.     JMP I LOOK    /RETURN
  628. FLAG,    0
  629. DEV,    0
  630.  
  631. FLD1,    TAD HISFIL
  632.     JMP SETN
  633.  
  634. /SKIP IF BATCH IS RUNNING AND PUT CIF BATCH FIELD IN AC
  635.  
  636. BATCH,    0
  637.     CDF 0
  638.     TAD I (7777
  639.     CDF 10
  640.     DCA BWORD
  641.     TAD BWORD
  642.     RTL
  643.     SNL CLA        /IS BATCH RUNNING?
  644.     JMP I BATCH    /NO
  645.     TAD BWORD    /YES
  646.     AND (70        /ISOLATE FIELD OF BATCH
  647.     TAD (CIF    /FORM CIF TO THE HIGHEST FIELD
  648.     ISZ BATCH    /AND TAKE SKIP RETURN WITH IT IN AC
  649.     JMP I BATCH
  650.     PAGE
  651. DEFILE,    0        /PTR TO FILENAME TO CHAIN TO
  652.  
  653. TEMP,
  654. RDMON,    0
  655.     CDF 10
  656.     CIF 0
  657.     CLA
  658.     JMS I (7607
  659.     0400        /READ 2 RECORD
  660.     2000        /LOCATION 2000 FIELD 0
  661.     7        /BLOCK 7,10
  662.     JMP IOERR
  663.     JMP I RDMON
  664.  
  665. ERR2,    CIF CDF 0
  666.     JMP I (NOCCL
  667. EXSUB,    0
  668.     TAD BASPTR    /PUSH PTR BACK TO BEGIN OF ENTRIES
  669.     JMS I (REMEM    /REMEMBER THIS IN DEPENDENT WORD
  670.     2
  671.     JMP I EXSUB
  672.  
  673. JMSUB,    0
  674.     SNA
  675.     JMP I JMSUB
  676.     DCA TEMP
  677.     JMS I (CCSUB    /LOAD OVERLAY
  678.     JMS I TEMP
  679.     JMP I JMSUB
  680.  
  681. SPOOLIT,0
  682.     JMS I (BATCH    /IS BATCH RUNNING?
  683.     JMP I SPOOLIT    /NO
  684.     DCA CB        /YES
  685.     CDF 0
  686.     TAD I DEFALT
  687.     TAD (-5200
  688.     SNA CLA
  689.     TAD I DEFALT    /LEAVE 5200 IN AC IF SPECIAL MODE
  690.     CDF 10
  691. CB,    HLT        /CIF TO FIELD OF BATCH
  692.     JMS I (BATSPL    /ALLOW BATCH TO SPOOL STUFF
  693.     JMP I SPOOLIT
  694. INSARR,    0
  695.     TAD (BEGLN
  696.     DCA XR
  697.     CDF 0
  698.     TAD I XR
  699.     SZA CLA
  700.     JMP .-2
  701.     STA
  702.     TAD XR
  703.     DCA XR
  704.     TAD ("<
  705.     DCA I XR
  706.     DCA I XR
  707.     CDF 10
  708.     STA
  709.     TAD XR
  710.     DCA I (ARLOC    /REMEMBER WHERE WE INSERTED A "_"
  711.     JMP I INSARR
  712. /    TAD (-# OF LOCS TO MOVE
  713. /    JMS MOVE
  714. /    FROM CDF
  715. /    FROM LOC
  716. /    TO CDF
  717. /    TO LOC
  718.  
  719. MOVE,    0
  720.     DCA T
  721.     TAD I MOVE    /GET FROM CDF
  722.     DCA FRCDF
  723.     ISZ MOVE
  724.     STA
  725.     TAD I MOVE    /GET FROM LOC-1
  726.     DCA XR
  727.     ISZ MOVE
  728.     TAD I MOVE    /GET TO CDF
  729.     DCA TOCDF
  730.     ISZ MOVE
  731.     STA
  732.     TAD I MOVE    /GET TO LOC-1
  733.     DCA XR2
  734.     ISZ MOVE    /POINT TO RETURN
  735.     TAD T
  736.     SNA CLA
  737.     JMP I MOVE    /V1A IGNORE 0 MOVE
  738. FRCDF,    HLT
  739.     TAD I XR
  740. TOCDF,    HLT
  741.     DCA I XR2
  742.     ISZ T
  743.     JMP FRCDF
  744.     CDF 10
  745.     JMP I MOVE
  746. OUTSW,    -1        /-1 MEANS ON OUTPUT SIDE, 0 ON INPUT SIDE
  747.  
  748. OUTLIM,    1-MIFILE
  749. IOERR,    JMS I (PRMESG
  750.     SYSER
  751. BADVMS,    TEXT    /#CCL 3X TABLE AND V4CCL INCOMPATIBLE/
  752.     AAAA=.
  753.     *BADVMS+3
  754.     CCLTAB&77^100+40
  755.     *AAAA
  756. COLWRD,    3    //V4 DEFAULT IS 3
  757.  
  758. COLSET,    0
  759. /    JMS I (CCSUB
  760.     JMS I (SETTTY
  761.     TAD I (7646
  762.     SNA
  763.     TAD COLWRD
  764.     DCA I (7646
  765.     JMP I COLSET
  766.     PAGE
  767.     .ASECT CCLMOR
  768.     FIELD 0
  769.     *6740
  770. YCCL,    FILENAME CCL.SV
  771.     *.-1
  772. YFORT,    FILENAME FORT.SV
  773.     *.-1
  774. YF4,    FILENAME F4.SV
  775.     *.-1
  776. YLOADER,FILENAME LOADER.SV
  777.     *.-1
  778. YLOAD,    FILENAME LOAD.SV
  779.     *.-1
  780. LPTDEV,    DEVICE LPT
  781. TVDEV,    DEVICE TV
  782. TTYDEV,    DEVICE TTY
  783. PTPDEV,    DEVICE PTP
  784. DMPDEV,    DEVICE DUMP
  785. NULDEV,    DEVICE NULL
  786. FNAME1,    ZBLOCK 5
  787.  
  788.