A large commit.
[pdp8.git] / sw / os8 / v3d / sources / devext / dectapes / dectape1 / ccl.ma
diff --git a/sw/os8/v3d/sources/devext/dectapes/dectape1/ccl.ma b/sw/os8/v3d/sources/devext/dectapes/dectape1/ccl.ma
new file mode 100644 (file)
index 0000000..800e5c9
--- /dev/null
@@ -0,0 +1,785 @@
+/5     MACREL VERSION OF CCL FOR OS/8 V3D
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/COPYRIGHT  (C)  1974,1975,1976,1977,1978 BY DIGITAL EQUIPMENT CORPORATION
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
+/AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
+/CORPORATION.  DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
+/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
+/
+/THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
+/UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
+/(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
+/SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
+/
+/DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
+/OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
+/DIGITAL.
+/
+/
+/
+/
+/
+/
+/
+/
+/
+/
+\f      MIFILE=7617
+       .GLOBAL OUTLIM,OUTSW,COLSET,FNAME1
+       .GLOBAL LPTDEV,TTYDEV,DMPDEV,NULDEV,PTPDEV,TVDEV
+       .GLOBAL EXSUB,BLK,IOERR
+       .GLOBAL LOOK
+       .GLOBAL SETLPT,SETPTP,SETTTY,YFORT,YF4,YLOAD,YLOADER
+       .GLOBAL DEFILE
+       .GLOBAL YAT,ZOW,BATCH,FLAG,RDMON,REGO,REMD,CHAIN
+       .GLOBAL DECODE,SCAN,LBEGIN
+       .GLOBAL DEFALT,MOVE,TWAIT,NAMPTR
+       BEGLN==1000
+       XFERV==70       /LOCATION INSIDE USR WHICH IS FREE
+       .EXTERNAL SWAPER
+/      .EXTERNAL SEMI
+       .EXTERNAL MONFIX
+       .EXTERNAL TABLES
+       .EXTERNAL AT,CCLBLC,PTBL,SAVL,LEAVE,VERTN,NOCCL
+       .EXTERNAL SETDEV,RECALL
+       .EXTERNAL CD,CCER1,REMEM,ARLOC
+       .EXTERNAL PRMESG,PRINT,CCSUB
+       .GLOBAL YCCL
+
+       XR2=15
+       XR=16
+       AMFLAG=17
+       T=20
+       DELIM=32
+       DEFALT=33       /POINTS TO DEFAULT EXTENSION LIST
+       PTR=36
+       BATSPL=7200     /JMS HERE TO PERFORM SPOOLING WITH DEFAULT EXT IN AC
+       SOFSET=7747
+
+/CCL STARTING ADDRESS: 12000
+/STARTING ADDRESS:     12001
+/CHAIN STARTING ADDRESS:12002
+
+/      JOB STATUS WORD = 2003
+
+/**************************************************
+/
+/              SAVING CCL
+/
+/              .LOAD CCL
+/              .SAVE SYS CCL;12001=2103
+/              .R CCL
+/
+/**************************************************
+
+       OV=1375
+       MSOVL2=55
+       CCLTAB="H       /MUST BE UPDATED IF TABLES CHANGE
+       CCLNUM="3
+       CCLVER="A       /CCL VERSION #
+
+/*** NOTE: VERSION E OF CCL WAS FOR IN-HOUSE USE ONLY.
+/USE OF SEMICOLONS WITH CCL VERSION I OR LATER
+/REQUIRES BATCH VERSION 7 OR LATER.
+/USE OF BASIC COMMAND REQUIRES V3D BASIC OR LATER
+
+/MEMORY ALLOCATION:
+
+/0 0000-0777   KBM
+/0 1000-1777   COMMAND LINE [EACH @ FILE RESTRICTED TO 1 BLOCK]
+/0 2000-2777   LINE BUFFER EXTENSION
+/0 3000-3177   PRE-EXTENSION @ BUFFER
+/0 3200-3577   @ BUFFER
+/0 4000-4377   REM-LINES
+/0 4400-4777   INPUT HANDLER FOR CD
+/              ALSO, SEMICOLON BUFFER
+/0 5000-5777   LONGWORD TABLE
+/0 6000-7277   MORE TABLES
+/0 7300-7577   SWITCH POINTER TABLE
+\f/     CHANGES SINCE FIELD RELEASE VERSION:
+
+/1.    RECURSIVE 'U' BUG FIXED
+/2.    INTERNAL STRUCTURE OF CCL KEYWORD TABLE CHANGED
+/3.    BUG RE REWRITING BLOCK CONTAINING PTR TO CORRECT FORTRAN FIXED
+/4.    .SV PARTS OF FILENAMES REMOVED FROM TABLE TO SAVE SPACE
+/5.    COMPARE PASSES ALTMODE
+/6.    TTY BECAME DEFAULT FOR COMPAR, DIRECT, AND MAP
+/7.    BUG RE PASSING DEFAULT * FIXED
+/8.    .LS FORM OF .CREF COMMAND REMOVED
+/9.    BUG CONCERNING PROCESSOR SWITCHES FIXED
+/10.   CCL SWITCH ALLOWED AFTER =N OPTION
+/11.   BUG RE 'BAD SWITCH OPTION' MESSAGE FIXED
+/12.   EXTRA SPACES NOW ALLOWED BEFORE CCL ARGUMENT
+/13.   'DOES NOT EXIST' MESSAGE NOW SPELLED CORRECTLY
+/14.   'BAD CCL SWITCH' MESSAGE ADDED
+/15.   CCL EDIT # CHANGED TO CCL VERSION #
+/16.   .EX CHAINS TO BCOMP NOT BASIC FOR .BA FILES
+/17.   MUNG PTR: NOW WORKS
+/18.   FIXED BUG RE MUNG <CR>
+/19.   FIXED BUG RE CD FOR FILE > 2047 BLKS
+/20.   FIXED BUG RE MAKE PTR:
+
+/VERSION B FIXES:
+
+/21.   ALLOWED 'EDIT' TO COPY FILE EXTENSION
+/22.   FIXED BUG RE .CCL ON WRITE-LOCKED DEVICE
+/23.   FIXED DATE PROBLEM
+/24.   ALLOWED FF AND VT IN AN INDIRECT FILE TO BE IGNORED
+
+/VERSION C FIXES:
+
+/25.   FIXED BUG RE SPACES AND SLASHES IN MUNG TEXT ARGUMENT
+/26.   ALLOWED EDIT COMMAND TO USE SAME OUT DEVICE
+/       AS IN DEVICE (IF NONE SPECIFIED)
+/27.   ADDED MORE SYNTAX CHECKING TO ZERO COMMAND
+
+/VERSION D CHANGES:
+
+/28.   ALLOWED EDIT A<B COMMAND TO REMEMBER ONLY UP TO '<' .
+
+/VERSION E CHANGES: (IN-HOUSE ONLY VERSION)
+
+/29.   WARNING MSG IF SQUISH SYS: UNDER BATCH
+/30.   ADDED SOME NOTES ON HOW TO ALLOW = AS WELL AS <
+/31.   ADDED HOOKS FOR ; TO BE READY FOR V4
+/32.   FIX BUG RE CMD STARTING WITH SPACES
+
+/CHANGES FOR MAINTENANCE RELEASE (OS/8 V3C):
+
+/33.   FIXED BUG ABOUT @ NOT FOLLOWED BY FILESPEC
+/34.   INCORPORATED ALL PREVIOUS EDITS
+/35.   ALLOWED ' TO TERMINATE AN INDIRECT REQUEST (AND BE IGNORED)
+/36.   FIXED BUG ABOUT EDIT DEV1:_DEV2:FOO LOSING DEV1:
+/37.   CORRECTED SPELLING OF SUPERSEDING
+/38.   ADDED .LD EXTENSION TO EXECUTE TABLES [USES FRTS]
+
+/VERSION G CHANGES:
+
+/39.   FIXED BUG WITH HELP COMMAND
+/40.   FIXED BUG CONCERNING EDIT DEV:_FILE
+
+/VERSION H CHANGES:
+
+/41.   ADDED MAC AND LINK COMMANDS
+/42.   ADDED MACREL AND LINKER INTO COMPILE/LOAD/EXECUTE COMMANDS
+/43.   ALLOWED UX COMMANDS TO CONTAIN KBM COMMANDS
+/44.   ALLOWED PASSING A KBM COMMAND TO CCL ON CHAINING
+/45.   ALLOWED @ AT BEGINNING OF LINE
+/46.   MOVED MOST OF 'DETCOR' TO FIELD 0
+/47.   WAIT ROUTINE  NOW GIVES UP IF TTY FLAG ISN'T UP WITHIN 0.1 SEC
+/48.   ALLOWED EXEC .BI TO USE BATCH
+/49.   TENTATIVELY ADDED SEMICOLON STUFF
+/50.   PUT BACK WARNING MESSAGE IF TRY TO SQUISH UNDER BATCH
+\f/VERSION I CHANGES:
+
+/51.   FIRMED UP SEMICOLON STUFF
+
+/VERSION J CHANGES:
+
+/52.   DEFAULT DEVICE FOR COMPIL, PAL, ETC. IS NOW LOGICAL DSK: NOT SYS:
+/53.   -L, -S, AND -P SWITCHES NOW SET OUTPUT NAME TO CURRENT INPUT NAME
+
+/VERSION K CHANGES:
+
+/54.   DATE NOW HANDLES DATE/78 ALGORITHM
+/55.   TOOK OUT 'TCF' WHICH WAS CAUSING BATCH TO HANG
+
+/VERSION 1A CHANGES:
+
+/56.   FIXED BUG RE NULL INDIRECT CMD FILE
+/57.   FIXED BUG TO NOW ALLOW DATE WITH ARGS IN INIT.CM
+/58.   PRINT "OS78" FOR VERSION NAME IF APPLICABLE
+/59.   ADDED -N AND -D AND REWROTE LOGIC A BIT
+/60.   HELP COMMAND NOW USES HELP.SV
+/61.   SET COMMAND NOW USES SET.SV
+/62.   'CORE' BECOMES 'MEMORY' IN 3 MSGS AND 1 CMD
+/63.   ADDED BASIC COMMAND (CHAINS TO BASIC.SV WITH Q SWITCH)
+/64.   ALLOWED FOR TERMINATE COMMAND (OS78 REPLACES BACKSPACE)
+/65.   ADDED DUPLICATE COMMAND (USES RXCOPY)
+
+/V1B CHANGES:
+
+/66.   MODIFIED FORMAT OF MAIN TABLE
+/67.   GIVE ERROR MESSAGE IF NO FILENAME IS GIVEN WITH INDIRECT
+/      FILE (EVEN IF NON-FS)
+/68.   PRINT KBM VERSION #
+/69.   ADDED TERMINATE COMMAND
+
+/V1F CHANGE:
+
+/70.   DUPL CALLS RXCOPY IN SPECIAL MODE
+
+/V1G CHANGES:
+
+/71.   SOURCE CODE IS NOW MACREL
+/72    LINKER OVERLAYS ADDED
+/73.   = ALLOWED IN ADDITION TO _ AND < (IF NOT FOLLOWED BY A DIGIT)
+/74.   /C:NNNN ALLOWED FOR NUMERIC ARGUMENT IN ADDITION TO =
+/75.   HOOKS FOR MULTIPLE CHARACTER SWITCHES ADDED
+/76.   SWITCHES MAY NO LONGER BE EMBEDDED IN A FILENAME
+/77.   KNOWN BUG IF SAY MAKE #
+/78    A+B IS IDENTICAL TO A-NB,B
+/79.   KNOWN BUG THAT /A-L USES A
+/80.   TEMPORARILY REMOVED SEMICOLON STUFF
+\f/     FORMAT OF CCL TABLE
+
+/ENTRY PURPOSE
+
+/      TABLE WIDTH=7 (BUT VARIES)
+
+/0     FLAG WORD
+
+       /BIT    MEANING IF ON
+
+       /0      PERFORM CD (IF 0, OMIT ENTRIES 1-6)
+       /1      DON'T PERMIT SPOOLING
+       /2      ALLOW .LS, .NB, .MP SWITCHES
+       /3      ADD _ TO END OF COMMAND STRING
+       /4      SET OUTPUT EXTENSION = INPUT EXTENSION (IF BIT 2 ON)
+       /6-8    SPECIFIES AUTOMATIC INPUT REMEMBERING (REM LINE MINUS 1)
+       /       0 MEANS NONE.  7 RESERVED FOR SPECIAL USE.
+       /10     CAUSE -L, ETC. TO GO TO 2ND OUTPUT FILE & COPIES NAME
+       /11     WANT DEFAULT ALTMODE (COMPL IF AMFLAG=1)
+
+/1     PTR TO DEFAULT EXTENSION LIST FOR INPUT FILES.
+/      IF PTS TO 0, NONE.   IF PTS TO 5200, USE SPECIAL MODE.
+
+/2-4   DEFAULT SWITCHES TO BE OR'ED INTO THOSE
+/      EXPLICITLY GIVEN.
+
+/5     ADDRESS OF SUBROUTINE TO BE CALLED
+/      AFTER C.D. HAS BEEN DONE.  0 IF NONE.
+
+/6     PTR TO FILENAME OF PROGRAM
+/      TO BE CHAINED TO.  0 IF NONE.
+
+/      FIELD 0
+
+/1000-1777     LINE BUFFER
+/2000-2777     LINE BUFFER EXTENSION
+/4000-4377     REM-LINES
+/4400-4777     HANDLER
+/5000-5577     BUFFER
+/6000-7577     MORE CCL (7 PAGES)
+
+       REST=5000
+\f      .ASECT CCL
+       *2000
+       .JSW 2103
+       .VERSION CCLNUM&77^100+<CCLVER&77>
+
+       FIELD 1
+
+       FAKBM=404       /PLACE TO FAKE OUT KBM
+
+START, JMP .+3         /START FROM MONITOR
+       JMP MONF        /START FROM .RUN COMMAND
+       JMP MONCHN      /START WHEN CHAINED TO
+       CLA
+       CDF 0           /READ IN REST OF CCL
+       TAD I (CCLBLC   /GET BLOCK OF START
+       DCA I (SOFSET   /ALLOW LINKER OVERLAY DRIVER TO WORK
+       TAD (7607
+       DCA I (7756
+       TAD I (SOFSET
+       CDF 10
+       TAD CCLREM
+       DCA CCLREM      /GET BLOCK OF REST
+       CIF 0
+       JMS I (7607
+       1300            /READ 11 MORE PAGES
+       REST
+WFL,
+CCLREM,        1+5+1           /SKIP CCB AND *400 STUFF
+       JMP I (ERR2
+       JMS FIXX
+       JMS TWAIT
+       CDF 0
+       TAD I LVNO
+       CDF 10
+       TAD (-CCLTAB    /DO VERSION #'S AGREE?
+       SZA CLA
+       JMP I (BADVNO
+       JMS I (AT
+       TAD (BEGLN-1
+       DCA XR
+L$:    CDF 0
+       TAD I XR
+       CDF 10
+       SNA
+       JMP 2$
+       TAD (-";
+       SZA CLA
+       JMP L$
+/      JMS I (SEMI
+       NOP
+2$:    STA
+       DCA I (REMD     /ALLOW RECURSIVE U'S
+       CDF 0
+       TAD I KENTRY    /GET ENTRY #
+       CIF CDF 10
+       TAD (PTBL       /GET ADDRESS OF PTR TO START OF ENTRY
+       DCA PTR
+       CDF TABLES
+       TAD I PTR       /GET PTR TO START OF ENTRY
+       CDF 10
+       DCA PTR
+       TAD PTR
+BASPTR,        DCA BASPTR
+       JMP I (GO
+
+FIXX,  0
+       DCA I (XFERV    /SET UP STUFF FOR OVERLAY DRIVER
+       TAD (SWAPER
+       DCA I (XFERV+1
+       JMP I FIXX
+
+MONF,  JMS FIXX
+       JMP I (MONFIX
+\fMONCHN,
+       CIF 0
+       JMS I (7607     /READ IN KBM
+       1000            /4 BLOCKS
+       0               /0-1777
+       7               /BLOCK 7 ON SYS:
+       HLT             /NO WAY TO RECOVER (EVEN 7605 DOES THIS)
+       TAD (-44
+       JMS I (MOVE     /ASSUME COMMAND LINE IS IN
+       CDF 10          /17600-17643
+       7600
+       CDF 0
+       1000            /MOVE TO OS/8 LINE BUFFER
+       CIF CDF 0
+YAT,   JMP I KFAKBM    /@ DESTROYS THIS CODE (MUST BE ONE BEFORE 'REGO')
+       TAD I (SAVL     /'YAT' IS JMS'ED TO
+       SNA CLA         /BY INITIAL @ COMMAND
+       JMP I (LEAVE    /DO NOTHING IF NO @ GOT EXPANDED (NULL LINE)
+REGO,  CIF 0
+       JMS I (7607
+       200             /READ ONE BLOCK
+       400             /400-777
+       10              /RESTORE PART OF KBM WHICH WAS DESTROYED BY OVERLAY
+       HLT
+       JMP I (FAKE
+
+/REGO, TAD KCIDF
+/      CDF 0
+/      DCA I (RETCIF   /ALLOW 'FINDIT' TO RETURN TO FIELD 1
+/      CIF CDF 0
+/      STA
+/      DCA I (HALF
+/      DCA I (ENTRY
+/      TAD (KEYWRD
+/      DCA I (KPTR
+/      JMS I (FINDIT   /LOOK UP KEYWORD
+/      SMA CLA
+/      JMP PREGO       /FOUND IT
+/CMDERR,       JMS I (PRMESG   /NOT A LEGAL KEYWORD
+/      ERRCMD
+
+       .START START+1,1
+\fTWAIT,        0
+       DCA WFL
+       JMS I (BATCH
+       JMP TW          /BATCH NOT RUNNING
+       CLA             /WE'RE RUNNING UNDER BATCH
+       JMP I TWAIT
+TW,    TSF
+       SKP             /WAIT FOR THINGS TO QUIET DOWN
+       JMP I TWAIT
+LVNO,  AND I 0         /WASTE SOME TIME
+KFAKBM,        AND I 4
+KENTRY,        600
+       ISZ WFL
+       JMP TW
+       JMP I TWAIT     /CAN'T WAIT TOO LONG
+FILDMY,        FILENAME DUMMY.SV
+       0               /EXTRA EXTENSION WORD
+       PAGE
+\fBADVNO,       JMS I (PRINT
+       BADVMS
+       JMS I (VERTN
+       JMP I (LEAVE    /GO AWAY
+\f/THIS ROUTINE DETERMINES IF THE CHARACTER IN THE AC IS A LETTER OR DIGIT
+/IF LETTER, RETURNS TO RET+1 WITH LETTER-"A IN AC AND LINK=0
+/IF DIGIT, RETURNS TO RET+1 WITH DIGIT-"0 IN AC AND LINK=1
+/IF NEITHER, RETURNS TO RET WITH CHAR-"A IN AC.
+DECODE,        0
+       TAD (-"9-1      /MIGHT BE CALLED WITH ANY DF
+       CLL
+       TAD ("9+1-"0
+       SZL
+       JMP YES$
+       TAD ("0-"Z-1
+       CLL CML
+       TAD ("Z-"A+1
+       SNL
+YES$:  ISZ DECODE
+       JMP I DECODE
+\fLBEGIN,       0               /PTS TO 1 CHAR BEFORE COMMAND KEYWORD ARGUMENT
+
+SCAN,  0
+       TAD (BEGLN
+       DCA T
+       CDF 0
+       JMS BLSCAN      /IGNORE INITIAL SPACES
+       JMP 2$
+1$:    CLA
+       ISZ T
+       TAD I T
+2$:    SNA
+       JMP 3$
+       JMS I (DECODE
+       SKP CLA
+       JMP 1$
+       JMS BLSCAN
+3$:    DCA DELIM
+       STA
+       TAD T
+       CDF 10
+       DCA I (LBEGIN
+       JMP I SCAN
+
+BLSCAN,        0
+       TAD I T
+       TAD (-240
+       SZA
+       JMP 1$
+       ISZ T
+       JMP BLSCAN+1
+1$:    TAD (240
+       JMP I BLSCAN    /LEAVE CHAR IN AC
+\fSETLPT,       0               /COULD BE ONCE ONLY
+       TAD (LPTDEV
+       JMS I (SETDEV
+       JMP I SETLPT
+
+SETTTY,        0
+       TAD (TTYDEV
+       JMS I (SETDEV
+       JMP I SETTTY
+
+SETPTP,        0
+       TAD (PTPDEV
+       JMS I (SETDEV
+       JMP I SETPTP
+
+FAKE,  CIF CDF 0
+       TAD (MSOVL2
+       DCA I (OV       /RESTORE LOC SO DATE CMD W ARGS WILL WORK
+       JMP I (FAKBM
+\fSYSER,        TEXT    \#I/O ERROR ON SYS:\
+\fGO,   JMS I (SCAN     /ADVANCE SCAN UNTIL AFTER SPACES
+GO2,   CDF TABLES
+       TAD I PTR       /GET FLAG
+       CDF 10
+       DCA FLAG        /SAVE IT
+       TAD DELIM
+       SNA CLA         /IS TYPED LINE EMPTY AFTER KEYWORD?
+       TAD FLAG        /AND IS SPECIAL REMEMBERING BITS ON?
+       CLL RTR
+       RAR             /AND HAS GOD WILLED US TO REMEMBER?
+       AND (7          /AND ARE THE ZODIAK SIGNS FAVORABLE?
+       SNA
+       JMP I (NORM     /NO
+       TAD REMD        /YES, GET REM-LINE (SUBTRACT 1)
+       DCA REMD
+       CDF 0
+       TAD I (BEGLN
+       CDF 10
+       DCA I (NMPTR
+       JMS I (RECALL   /RECALL LINE
+REMD,  -1              /-1 MEANS DIDN'T RETRIEVE A REMEMBER LINE
+       DCA DEPN        /SAVE DEPENDENT INFO
+       TAD I (NMPTR
+       SZA CLA         /EG COMMAND?
+       JMP I (NORM     /NO
+       ISZ DELIM       /YES
+       TAD DEPN
+       DCA PTR         /RESET PTR FROM CMD DEPENDENT WORD
+       JMP GO2
+
+DEPN,  0               /REM LINE DEPENDENT INFORMATION
+       PAGE
+\f      COLWRD          /NEEDED FOR SET TTY COL
+NORM,  TAD FLAG
+L7700, SMA CLA
+       JMP CHAINN      /SKIP ENTRIES IF NO CD
+       ISZ PTR         /POINT TO DEFAULT INPUT EXTENSION
+       CDF TABLES
+       TAD I PTR       /GET DEFAULT INPUT EXTENSION PTR
+       CDF 10
+       DCA DEFALT      /SAVE IT
+       TAD (7641
+       DCA XR
+       TAD FLAG
+       CDF 0
+       TAD I PAMFLAG   /COMBINE ALTMODE BITS
+       CDF 10
+       RAR             /IN POSITION 11
+       CLA RAR         /PUT NEW ALTMODE BIT ALONE IN BIT 0
+       DCA I XR        /STORE AWAY IN C.D. OPTION TABLE
+       DCA I XR        /V3D ZERO OPTION WORDS
+       DCA I XR
+       DCA I XR
+       DCA I XR        /ZERO L.O. =
+L$:    ISZ PTR
+       CDF TABLES
+       TAD I PTR
+       SNA
+       JMP 2$
+       DCA NTEMP
+       ISZ PTR
+       TAD I PTR       /GET VALUE
+       CDF 10
+       TAD I NTEMP
+       DCA I NTEMP     /STORE IN SPECIFIED LOCATION
+       JMP L$
+2$:    CDF 10
+       TAD FLAG
+       AND (400
+       SZA CLA
+       JMS I (INSARR   /INSERT BACK ARROW IF FLAG BIT SET
+       JMS I (CD       /PERFORM COMMAND DECODE IF FLAG BIT
+                       /0 SET
+       TAD FLAG
+       RAL
+       SMA CLA         /IS SPOOLING PROHIBITED?
+       JMS I (SPOOLIT  /NO
+CHAINN,        ISZ PTR         /POINT TO AFTER CD SUBR
+       CDF TABLES
+       TAD I PTR       /GET SUBR ADDRESS
+       CDF 10
+       JMS I (JMSUB
+       TAD I (DEFILE
+       SZA             /IS THERE A FILENAME SET TO CHAIN TO?
+       JMP ZOW         /YES
+       ISZ PTR         /NO, POINT TO FILENAME
+       CDF TABLES
+       TAD I PTR
+       CDF 10
+       SNA
+       JMP I (LEAVE    /NO FILE TO CHAIN TO
+ZOW,   DCA NMPTR
+       JMS LOOK        /LOOKUP FILE
+NMPTR, 0
+       JMP I (CCER1    /NOT FOUND
+CHAIN, JMS I (200      /CHAIN TO IT
+       6               /CHAIN
+
+BLK,   0
+/      -----
+PAMFLAG,AMFLAG
+\f/LOOK, LOOKS UP FILE ON DEVICE .  POINTER IS IN ARG1
+/      ARG2 IS ERROR RETURN IF NOT FOUND
+/DEVICE NUMBER IS IN AC.  IF 0, USE SYS:
+
+LOOK,  0
+       SNA
+       IAC
+       DCA DEV
+       TAD I LOOK      /GET PTR TO FILE NAME IN FIELD 0
+       DCA HISFIL
+       TAD HISFIL
+       AND L7700
+       SNA CLA
+       JMP FLD1        /PTR LT 100 MEANS IN FIELD 1
+       TAD (-3
+       JMS I (MOVE     /MOVE IT UP
+       CDF 0
+BWORD,
+HISFIL,        0
+       CDF 10
+PFILDMY,FILDMY
+       TAD PFILDMY
+SETN,  DCA NAMPTR      /STORE AWAY PTR TO FILENAME
+       ISZ LOOK        /POINT TO ERROR RETURN
+       TAD DEV         /GET DEVICE NUMBER
+       JMS I (200
+       2               /LOOKUP
+NTEMP,
+NAMPTR,        0
+       0
+       JMP I LOOK      /TAKE ERROR RETURN IF NOT FOUND
+       TAD NAMPTR      /STORE STARTING BLOCK # IN 'BLK'
+       DCA BLK
+       ISZ LOOK        /POINT TO NORMAL RETURN
+       JMP I LOOK      /RETURN
+\fFLAG, 0
+DEV,   0
+
+FLD1,  TAD HISFIL
+       JMP SETN
+
+/SKIP IF BATCH IS RUNNING AND PUT CIF BATCH FIELD IN AC
+
+BATCH, 0
+       CDF 0
+       TAD I (7777
+       CDF 10
+       DCA BWORD
+       TAD BWORD
+       RTL
+       SNL CLA         /IS BATCH RUNNING?
+       JMP I BATCH     /NO
+       TAD BWORD       /YES
+       AND (70         /ISOLATE FIELD OF BATCH
+       TAD (CIF        /FORM CIF TO THE HIGHEST FIELD
+       ISZ BATCH       /AND TAKE SKIP RETURN WITH IT IN AC
+       JMP I BATCH
+       PAGE
+\fDEFILE,       0               /PTR TO FILENAME TO CHAIN TO
+
+TEMP,
+RDMON, 0
+       CDF 10
+       CIF 0
+       CLA
+       JMS I (7607
+       0400            /READ 2 RECORD
+       2000            /LOCATION 2000 FIELD 0
+       7               /BLOCK 7,10
+       JMP IOERR
+       JMP I RDMON
+
+ERR2,  CIF CDF 0
+       JMP I (NOCCL
+\fEXSUB,        0
+       TAD BASPTR      /PUSH PTR BACK TO BEGIN OF ENTRIES
+       JMS I (REMEM    /REMEMBER THIS IN DEPENDENT WORD
+       2
+       JMP I EXSUB
+
+JMSUB, 0
+       SNA
+       JMP I JMSUB
+       DCA TEMP
+       JMS I (CCSUB    /LOAD OVERLAY
+       JMS I TEMP
+       JMP I JMSUB
+
+SPOOLIT,0
+       JMS I (BATCH    /IS BATCH RUNNING?
+       JMP I SPOOLIT   /NO
+       DCA CB          /YES
+       CDF 0
+       TAD I DEFALT
+       TAD (-5200
+       SNA CLA
+       TAD I DEFALT    /LEAVE 5200 IN AC IF SPECIAL MODE
+       CDF 10
+CB,    HLT             /CIF TO FIELD OF BATCH
+       JMS I (BATSPL   /ALLOW BATCH TO SPOOL STUFF
+       JMP I SPOOLIT
+\fINSARR,       0
+       TAD (BEGLN
+       DCA XR
+       CDF 0
+       TAD I XR
+       SZA CLA
+       JMP .-2
+       STA
+       TAD XR
+       DCA XR
+       TAD ("<
+       DCA I XR
+       DCA I XR
+       CDF 10
+       STA
+       TAD XR
+       DCA I (ARLOC    /REMEMBER WHERE WE INSERTED A "_"
+       JMP I INSARR
+\f/     TAD (-# OF LOCS TO MOVE
+/      JMS MOVE
+/      FROM CDF
+/      FROM LOC
+/      TO CDF
+/      TO LOC
+
+MOVE,  0
+       DCA T
+       TAD I MOVE      /GET FROM CDF
+       DCA FRCDF
+       ISZ MOVE
+       STA
+       TAD I MOVE      /GET FROM LOC-1
+       DCA XR
+       ISZ MOVE
+       TAD I MOVE      /GET TO CDF
+       DCA TOCDF
+       ISZ MOVE
+       STA
+       TAD I MOVE      /GET TO LOC-1
+       DCA XR2
+       ISZ MOVE        /POINT TO RETURN
+       TAD T
+       SNA CLA
+       JMP I MOVE      /V1A IGNORE 0 MOVE
+FRCDF, HLT
+       TAD I XR
+TOCDF, HLT
+       DCA I XR2
+       ISZ T
+       JMP FRCDF
+       CDF 10
+       JMP I MOVE
+\fOUTSW,        -1              /-1 MEANS ON OUTPUT SIDE, 0 ON INPUT SIDE
+
+OUTLIM,        1-MIFILE
+\fIOERR,        JMS I (PRMESG
+       SYSER
+BADVMS,        TEXT    /#CCL 3X OVERLAY AND CCL INCOMPATIBLE/
+       AAAA=.
+       *BADVMS+3
+       CCLTAB&77^100+40
+       *AAAA
+COLWRD,        1
+
+COLSET,        0
+/      JMS I (CCSUB
+       JMS I (SETTTY
+       TAD I (7646
+       SNA
+       TAD COLWRD
+       DCA I (7646
+       JMP I COLSET
+       PAGE
+\f      .ASECT CCLMOR
+       FIELD 0
+       *6740
+YCCL,  FILENAME CCL.SV
+       *.-1
+YFORT, FILENAME FORT.SV
+       *.-1
+YF4,   FILENAME F4.SV
+       *.-1
+YLOADER,FILENAME LOADER.SV
+       *.-1
+YLOAD, FILENAME LOAD.SV
+       *.-1
+LPTDEV,        DEVICE LPT
+TVDEV, DEVICE TV
+TTYDEV,        DEVICE TTY
+PTPDEV,        DEVICE PTP
+DMPDEV,        DEVICE DUMP
+NULDEV,        DEVICE NULL
+FNAME1,        ZBLOCK 5
+\f\f