/ CCLX1.PA - Command Control Language
/ Version 01.80  (Aerospace version number for this file.)

/ CCLX "Instruction" Definitions.

        LLS=6666        / Lineprinter load sequence.
        LSF=6661        / Lineprinter skip if flag.
        NIL=0           / Load in uninitialized registers.
        OVSUBR=1226     / Load in overlay subrtn entry pts.
        SUBR=0          / Load in subroutine entry points.

/ OS/8 Address Definitions.

        BATERR=7000     / JMP here to abort BATCH.
        BATOUT=7400     / JMS here to print on batch log.
        BATSPL=7200     / JMS here to do spooling (default
                        / extension in Ac).
        BATWD=07777
        BEGLN=1000      / Addr of command line buffer.
        DATWD=7666
        MIFILE=7617
        MOFILE=7600
        MPARAM=7643
        OS78BIT=7771

/ CCLX Address Definitions.

        ALTMODE=233
        AMFLAG=17
        BFR=5000
        CCLBLK=67       / Block on SYS: used by CCL.
        CCLSW=435
        CCLVER="G       / CCL version number.
        CCLNUM="1
        DEASADR=427
        DEF=22
        DEFALT=33       / Points to default extension list.
        DELIM=32
        DEV1=30
        DEV2=31
        FAKBM=404
        FAKBMP=1375
        GETCCL=1362
        HNDLR=4400
        MSOVL2=55
        NMBASE=27
        PRQMRK=1357
        PTR=36
/ CCLX Temporary and Index Registers.

        CLXR=35
        LXR=34
        NAME1=23        / Temporary
        NAME2=24        / file
        NAME3=25        / name
        NAME4=26        / with extension.
        T=20            / Very temporary register.
        TT=21           / Very temporary register.
        TXR=17
        XR=16
        XR2=15
/ Keyword Table
/ Commands must begin on word boundary.

        FIELD 1
        *2000
        OVLBAS=.        / Overlays are loaded at this addr.
        RELOC 1400      / Keywords eventually load at 01400.


/ Trap erroneous CCL calls.
        NOP
        NOP
        NOP
        JMP I .+1
        BADENT


/ Keyword Table
/ Change table version if commands changed!!!!!
        CCLTAB="M

KEYVNO, CCLTAB
KEYWRD,
IFDEF   CM68 <  TEXT =AS3)'.=   /AS SIGN>/*CM68
IFNDEF  CM49 <  TEXT =BAC+30=   /BAC KSP>/*CM49
                TEXT =BAS)#=    /BAS IC
                TEXT =BO/4=     /BO OT
                TEXT =CCL8=     /CCL X
IFDEF   CM11 <  TEXT =COMM!.$3= /COMM ANDS>/*CM11
IFNDEF  CM33 <  TEXT =COMPA2%=  /COMPA RE>/*CM33
IFDEF   CM48 <  TEXT =C/-0),%=  /C OMPILE>/*CM48
IFNDEF  CM48 <  TEXT =COM0),%=  /COM PILE>/*CM48
                TEXT =COP9=     /COP Y
IFDEF   CM33 <  TEXT =CR%!4%=   /CR EATE>/*CM33
IFNDEF  CM33 <  TEXT =CREA4%=   /CREA TE
                TEXT =CREF=     /CREF   >/*CM33
                TEXT =DA4%=     /DA TE
                TEXT =DE!33)'.= /DE ASSIGN
IFDEF   CM21 <  TEXT =DEF).%=   /DEF INE>/*CM21
                TEXT =DEL%4%=   /DEL ETE
IFDEF   CM25 <  TEXT =DES#2)"%= /DES CRIBE>/*CM25
IFDEF   CM33 <  TEXT =DIF&%2=   /DIF FER>/*CM33
IFDEF   CM48 <  TEXT =D)2%#4=   /D IRECT>/*CM48
IFNDEF  CM48 <  TEXT =DIR%#4=   /DIR ECT>/*CM48
IFDEF   CM63 <  TEXT =DSK=      /DSK    >/*CM63
IFDEF	CM72 <	TEXT =DUM0=	/DUM P  >/*CM72
                TEXT =DUP,)#!4%=/DUP LICATE
IFDEF   CM48 <  TEXT =E$)4=     /E DIT  >/*CM48
IFNDEF  CM48 <  TEXT =ED)4=     /ED IT  >/*CM48
IFDEF   CM14 <  TEXT =EJ%#4=    /EJ ECT >/*CM14
IFNDEF  CM49 <  TEXT =EOF=      /EOF    >/*CM49
                TEXT =EX%#54%=  /EX ECUTE
IFDEF   CM61 <  TEXT =FILL=     /FILL   >/*CM61
IFDEF   CM59 <  TEXT =FI8=      /FI X   >/*CM59
IFDEF   CM52 <  TEXT =FL)34=    /FL IST >/*CM52
IFDEF   CM53 <
IFDEF   CM48 <  TEXT =F/2-!4=   /F ORMAT>/*CM48
IFNDEF  CM48 <  TEXT =FO2-!4=   /FO RMAT>/*CM48
                                        >/*CM53
IFDEF   CM35 <  TEXT =FU4),=    /FU TIL >/*CM35
IFDEF   CM68 <  TEXT =GE4=      /GE T   >/*CM68
IFDEF   CM48 <  TEXT =H%,0=     /H ELP  >/*CM48
IFNDEF  CM48 <  TEXT =HE,0=     /HE LP  >/*CM48
IFDEF	CM73 <	TEXT =KER-)4=	/KER MIT>/*CM73
IFDEF   CM38 <  TEXT =LDF=      /LDF    >/*CM38
IFDEF   CM23 <  TEXT =LG/=      /LG O   >/*CM23
                TEXT =LIN+=     /LIN K
IFDEF   CM48 <  TEXT =L)34=     /L IST  >/*CM48
IFNDEF  CM48 <  TEXT =LI34=     /LI ST  >/*CM48
                TEXT =LO!$=     /LO AD
                TEXT =MAC2%,=   /MAC REL
                TEXT =MAK%=     /MAK E
                TEXT =MAP=      /MAP
                TEXT =MEM/29=   /MEM ORY
                TEXT =MU.'=     /MU NG
IFDEF   CM68 <  TEXT =OD4=      /OD T   >/*CM68
                TEXT =PA,=      /PA L
IFDEF   CM57 <  TEXT =PIP=      /PIP    >/*CM57
IFDEF   CM43 <  TEXT =PL/4=     /PL OT  >/*CM43
IFDEF   CM48 <  TEXT =P2).4=    /P RINT >/*CM48
IFNDEF  CM48 <  TEXT =PR).4=    /PR INT >/*CM48
IFNDEF  CM58 <  TEXT =PU.#(=    /PU NCH >/*CM58
IFDEF   CM7  <  TEXT =RE#!,,=   /RE CALL>/*CM7*
                TEXT =REN!-%=   /REN AME
IFDEF   CM70 <  TEXT =RENUM"%2= /RENUM BER>/*CM70
                TEXT =RES/52#%S=/RES OURCES
IFNDEF  CM49 <  TEXT =REW).$=   /REW IND>/*CM49
IFDEF   CM37 <  TEXT =RT0)0=    /RT PIP >/*CM37
IFDEF   CM68 <  TEXT =R5.=      /R UN   >/*CM68
IFDEF   CM68 <  TEXT =SA6%=     /SA VE  >/*CM68
                TEXT =SET=      /SET
IFNDEF  CM49 <  TEXT =SKIP=     /SKIP   >/*CM49
IFDEF   CM44 <  TEXT =SP//,=    /SP OOL >/*CM44
                TEXT =SQ5)3(=   /SQ UISH
IFDEF   CM68 <  TEXT =ST!24=    /ST ART >/*CM68
IFDEF   CM48 <  TEXT =S5"-)4=   /S UBMIT>/*CM48
IFNDEF  CM48 <  TEXT =SU"-)4=   /SU BMIT>/*CM48
                TEXT =TE#/=     /TE CO
IFDEF   CM36 <  TEXT =TER-).=   /TER MIN>/*CM36
IFDEF   CM19 <  TEXT =TIDY=     /TIDY   >/*CM19
IFDEF   CM18 <  TEXT =TOM/22/7= /TOM ORROW>/*CM18
IFDEF   CM48 <  TEXT =T90%=     /T YPE  >/*CM48
IFNDEF  CM48 <  TEXT =TY0%=     /TY PE  >/*CM48
                TEXT =UA=       /UA
                TEXT =UB=       /UB
                TEXT =UC=       /UC
IFNDEF  CM49 <  TEXT =UN,/!$=   /UN LOAD>/*CM49
                TEXT =VER3)/.=  /VER SION
IFDEF   CM34 <
IFDEF   CM48 <  TEXT =V)%7=     /V IEW  >/*CM48
IFNDEF  CM48 <  TEXT =VI%7=     /VI EW  >/*CM48
                                >/*CM34
IFDEF   CM33 <  TEXT =XR%&=     /XR EF  >/*CM33
IFDEF   CM18 <  TEXT =YES4%2=   /YES TER>/*CM18
                TEXT =ZERO=     /ZERO

KEYLWA, ZBLOCK .+377&7400-.
                RELOC
        IFNZRO .+377&7400-2400 <KEYTBL,OVERFLOW>
/ CCLX entry from KBM at 12400.

        *2400
        JMP I CSTART
        HLT
        HLT
CSTART, START

/ Fix remember area definitions for command table.
        C=C&17^10
        D=D&17^10
        E=E&17^10
        E0=E0&17^10
        L=L&17^10
        L0=L0&17^10
        P=P&17^10
        S=S&17^10
        UA=UA&17^10
        UB=UB&17^10
        UC=UC&17^10

        SUM=AREA1+AREA2+AREA3+AREA4+AREA5+AREA6+AREA7
        SUM=SUM+AREA8+AREA9+AREA10+AREA11+AREA12+AREA13
        SUM=SUM+AREA14+AREA15
IFNZRO  SUM-400 <ADDERR, REM LENGTHS DONT ADD TO 256!>


/ Fix up the /O switch for .SQUISH,
        O=0
        IFDEF   CM45 < O=1000 >/*CM45

/ and the /T switch for .SUBMIT.
        SU=0
        IFDEF   CM26 < SU=20 >/*CM26
/ Command Table

/ Fake Command Table, for Teco EG, KBM return and unknown
/ command processing.  These three entries must each be
/ three words.
XUNKNOW,0;                      UNKNOW; 0       /? command.
XKBMRET,0;                      KBMRET; 0       /KBM return.
XTECOEG,C;                      EGSUB;  0       /Teco EG.

/ Command table (normal entries).
XTABLE,
IFDEF   CM68 <                                  /ASSIGN
XASSIGN,0;                      KBMRET; 0       >/*CM68
IFNDEF  CM49 </ Remove mag tape commands.       /BACKSPACE
XBACKSP,0;                      0;      YCAMP   >/*CM49
XBASIC, 0;                      BASIC;  YBASIC  /BASIC
IFDEF   CM60 </ Insert "/" for .BOOT.           /BOOT
XBOOT,  0;                      BOOT;   YBOOT   >/*CM60
IFNDEF  CM60 </ Insert "/" for .BOOT.           /BOOT
XBOOT,  0;                      0;      YBOOT   >/*CM60
XCCL,   0;                      CCLSUB; 0       /CCL
IFDEF   CM11 <                                  /COMMANDS
XCOMMAN,0;                      COMMAN; 0       >/*CM11
IFNDEF  CM33 <                                  /COMPARE
XCOMPAR,4001;   NULL;   0;0;0;  SETTTY; YSRCCOM >/*CM33
XCOMPIL,4003+C; EXTCOM; 0;0;0;  EXSUB;  YFORT   /COMPILE
XCOPY,  4001;   STAR;   1;0;0;  COPY;   YFOTP   /COPY
IFDEF   CM40 </ .EDIT calls VISTA.SV.           /CREATE
XCREATE,4400+E; STAR;   0;0;0;  CREATE; YVISTA  >/*CM40
IFNDEF  CM40 </ .EDIT calls EDIT.SV.            /CREATE
XCREATE,4400+E; NULL;   0;0;0;  CREATE; YEDIT   >/*CM40
IFNDEF  CM33 <                                  /CREF
XCREF,  4005;   EXTLS;  0;0;0;  0;      YCREF   >/*CM33
XDATE,  0;                      DATE;   0       /DATE
XDEASSI,0;                      DEASSI; 0       /DEASSIGN
IFDEF   CM21 <                                  /DEFINE
XDEFINE,0;                      DEFINE; 0       >/*CM21
XDELETE,4001;   STAR; 401;0;0;  DELETE; YFOTP   /DELETE
IFDEF	CM25 <					/DESCRIBE
XDESCRI,4001;   EXTHLP; 0;0;0;  DESCRI; YPIP    >/*CM25
IFDEF   CM33 <                                  /DIFFER
XDIFFER,4001;   NULL;   0;0;0;  SETTTY; YSRCCOM >/*CM33
XDIRECT,4001+D; STAR;   0;0;0;  0;      YDIRECT /DIRECT
IFDEF   CM63 <                                  /DSK
XDSK,   4001;   STAR;   0;0;0;  0;      YDIRECT >/*CM63
IFDEF	CM72 <					/DUMP
XDUMP,	4001;	STAR;	0;0;0;	0;	YDUMP	>/*CM72
IFDEF   CM62 <                                  /DUPLICATE
XDUPLIC,4001;   STAR;   0;0;0;  DUPLIC; YRXCOP  >/*CM62
IFNDEF  CM62 <                                  /DUPLICATE
XDUPLIC,4001;   STAR;   0;0;0;  0;      YRXCOP  >/*CM62
IFDEF   CM40 </ .EDIT calls VISTA.SV.           /EDIT
XEDIT,  4200+E; STAR;   0;0;0;  0;      YVISTA  >/*CM40
IFNDEF  CM40 </ .EDIT calls EDIT.SV.            /EDIT
XEDIT,  4200+E; NULL;   0;0;0;  0;      YEDIT   >/*CM40
IFDEF   CM14 <                                  /EJECT
XEJECT, 0;                      EJEKT;  0       >/*CM14
IFNDEF  CM49 </ Remove mag tape commands.       /EOF
XEOF,   0;                      0;      YCAMP   >/*CM49
XEXECUT,4003+C; EXTEXE; 40;0;0; EXSUB;  YFORT   /EXECUTE
IFDEF   CM61 <                                  /FILL
XFILL,  4401;   NULL;   10;0;0; FILL;   YPIP    >/*CM61
IFDEF   CM59 <                                  /FIX
XFIX,   0;                      FIXSUB; 0       >/*CM59
IFDEF   CM52 <                                  /FLIST
XFLIST, 5001+C; EXTFT;  0;0;0;  FLIST;  YFLIST  >/*CM52
IFDEF   CM53 <                                  /FORMAT
XFORMAT,4005+P; EXTFMT; 0;0;0;  EXSUB;  YACID   >/*CM53
IFDEF   CM35 <                                  /FUTIL
XFUTIL, 4400;   STAR;   0;0;0;  0;      YFUTIL  >/*CM35
IFDEF   CM68 <                                  /GET
XGET,   0;                      KBMRET; 0       >/*CM68
IFNDEF  CM65 <                                  /HELP
XHELP,  4001;   STAR;   0;0;0;  0;      YHELP   >/*CM65
IFDEF   CM65 <                                  /HELP
XHELP,  4001;   STAR;   0;0;0;  HELP;   YHELP   >/*CM65
IFDEF	CM73 <					/KERMIT
XKERMIT,0;			0;	YKERMIT	>/*CM73
IFDEF   CM38 <                                  /LDF
XLDF,   0;                      LDFOCA; YLDF    >/*CM38
IFDEF   CM23 <                                  /LGO
XLGO,   4003+L0;EXTLGO; 40;0;0; EXSUB;  YABSLDR >/*CM23
XLINK,  4003+L; EXTLI;  0;0;0;  EXSUB;  YLINK   /LINK
IFDEF   CM41 </ .LIST calls PRINT.SV with /0.   /LIST
XLISTX, 4001+P; STAR; 0;0;1000; 0;      YPRINT  >/*CM41
IFNDEF  CM41 </ .LIST calls FOTP.SV.            /LIST
XLISTX, 4001+P; STAR;   0;10;0; SETLPT; YFOTP   >/*CM41
XLOAD,  4003+L; EXTLOA; 0;0;0;  EXSUB;  YABSLDR /LOAD
XMACREL,4003+C; EXTMA;  0;0;0;  EXSUB;  YMACRE  /MACREL
XMAKE,  400+E0;                 MAKE;   YTECO   /MAKE
XMAP,   4001;   EXTBN;  0;0;0;  SETTTY; YBITMAP /MAP
XMEMORY,0;                      MEMORY; 0       /MEMORY
XMUNG,  0;                      MUNG;   YTECO   /MUNG
IFDEF   CM68 <                                  /ODT
XODT,   0;                      OS8ERR; 0       >/*CM68
XPAL,   4003+C; EXTPA;  0;0;0;  EXSUB;  YPAL8   /PAL
IFDEF   CM57 <                                  /PIP
XPIP,   4001;   NULL;   0;0;0;  0;      YPIP    >/*CM57
IFDEF   CM43 <                                  /PLOT
XPLOT,  4001;   STAR;   0;0;0;  0;      YPLOT   >/*CM43
IFDEF   CM41 </ .PRINT calls FOTP.SV or PRINT.SV.
IFDEF   CM42 </ .PRINT calls FOTP.SV.           /PRINT
XPRINT, 4001+P; STAR;   0;10;0; SETLPT; YFOTP   >/*CM42
IFNDEF  CM42 </ .PRINT calls PRINT.SV.          /PRINT
XPRINT, 4001+P; STAR;   0;0;0;  0;      YPRINT  >/*CM42
                                                >/*CM41
IFNDEF  CM41 </ .PRINT calls LPTSPL.SV.         /PRINT
XPRINT, 4001+P; STAR;   O;0;0   0;      YLPTSPL >/*CM41
IFNDEF  CM58 <                                  /PUNCH
XPUNCH, 4001;   NULL;   0;0;0;  SETPTP; YPIP    >/*CM58
IFDEF   CM7  <                                  /RECALL
XRECALL,0;                      RECALL; 0       >/*CM7
XRENAME,4001;   STAR; 1;100;0;  RENAME; YFOTP   /RENAME
IFDEF   CM70 <                                  /RENUMBER
XRENUM, 5201+C; EXTFT;  0;0;0;  0;      YRENUM  >/*CM70
XRESOUR,4001;   EXTSY;  0;0;0;  SETTTY; YRESORC /RESOURCES
IFNDEF  CM49 </ Remove mag tape commands.       /REWIND
XREWIND,0;                      0;      YCAMP   >/*CM49
IFDEF   CM37 <                                  /RTPIP
XRTPIP, 0;                      0;      YRTPIP  >/*CM37
IFDEF   CM68 <                                  /RUN
XRUN,   0;                      KBMRET; 0       >/*CM68
IFDEF   CM68 <                                  /SAVE
XSAVE,  0;                      OS8ERR; 0       >/*CM68
XSET,   0;                      0;      YSET    /SET
IFNDEF  CM49 </ Remove mag tape commands.       /SKIP
XSKIP,  0;                      0;      YCAMP   >/*CM49
IFDEF   CM44 <                                  /SPOOL
XSPOOL, 4000;   5200; 0020;0;0; 0;      YSPOOLR >/*CM44
XSQUISH,4001;   NULL; 0;40+O;0; SQUISH; YPIP    /SQUISH
IFDEF   CM68 <                                  /START
XSTART, 0;                      OS8ERR; 0       >/*CM68
XSUBMIT,4000+S; EXTBI;  0;SU;0; 0;      YBATCH  /SUBMIT
XTECO,  200+E0;                 TECO;   YTECO   /TECO
IFDEF   CM36 <                                  /TERMIN
XTERMIN,0;                      0;      YTERMIN >/*CM37
IFDEF   CM19 <                                  /TIDY
XTIDY,  4001;   STAR; 401;0;0;  TIDY;   YFOTP   >/*CM19
IFDEF   CM18 <                                  /TOMORROW
XTOMORR,0;                      TOMORR; 0       >/*CM18
XTYPE,  4001+P; STAR;   0;10;0; SETTTY; YFOTP   /TYPE
XUA,    UA;                     USRSUB; 0       /UA
XUB,    UB;                     USRSUB; 0       /UB
XUC,    UC;                     USRSUB; 0       /UC
IFNDEF  CM49 </ Remove mag tape commands.       /UNLOAD
XUNLOAD,0;                      0;      YCAMP   >/*CM49
XVERSIO,4000;   STAR;   0;0;0;  VERSIO; 0       /VERSION
IFDEF   CM34 <                                  /VIEW
XVIEW,  4001+P; STAR;   0;10;0; SETTV;  YFOTP   >/*CM34
IFDEF   CM33 <                                  /XREF
IFNDEF  CM71 </ Do not call KREF for Macrel files.
XXREF,  6005;   EXTLS;  0;0;0;  0;      YCREF   >/*CM71
IFDEF   CM71 </ Call KREF for MACREL files.
XXREF,  6005;   EXTKR;  0;0;0;  EXSUB;  YCREF   >/*CM71
                                                >/*CM33
IFDEF   CM18 <                                  /YESTERDAY
XYESTER,0;                      YESTER; 0       >/*CM18
XZERO,  4401;   NULL; 0;0;2000; ZERO;   YPIP    /ZERO
/ Dummy entries for define commands.
XFILES, 0;                      FILSUB; YDUMMY  / W/o CD.
XFILCD, 4001;   NULL;   0;0;0;  0;      YDUMMY  / With CD.
/ Extension Recognition Lists.
/ Each element is two words and a list is terminated by a
/ zero element (in which both words are 0).
/       Word 1  : Extension--two six bit characters.
/       Word 2  : Extension vector or 0.
/ Extension vectors specify a subroutine to be executed
/ immediately after the associated extension is recognized.
/ See the next page for the vectors.

EXTBI,  0211;   0       /BI
        0;      0
EXTBN,  0216;   0       /BN
        0;      0
EXTCM,  0315;   0       /CM     / For @ processing.
        0;      0
EXTCOM, 0624;   COMFT   /FT     / .COMPILE list.
        2001;   COMPA   /PA
        2302;   COMSB   /SB
        1501;   COMMA   /MA
        2201;   COMRA   /RA
        0201;   COMBA   /BA
        0;      0
EXTEXE, 0624;   COMFT   /FT     / .EXECUTE list.
        2001;   COMPA   /PA
        2302;   COMSB   /SB
        1501;   COMMA   /MA
        2201;   COMRA   /RA
        0201;   COMBA   /BA
EXTLGO, 1404;   COMLD   /LD     / .LGO list.
EXTLOA, 0216;   COMBN   /BN     / .LOAD list.
        2214;   COMRL   /RL
EXTLI,  2202;   COMRB   /RB
        0;      0
        IFDEF   CM53 </ .FORMAT
EXTFMT, 0103;   COMAC   /AC     / .FORMAT list.
        2217;   COMRO   /RO
        0;      0       >/*CM53
        IFDEF   CM52 </ .FLIST
EXTFT,  0624;   0       /FT
        0;      0       >/*CM52
EXTHLP, 1014;   0       /HL     / .DESCRIBE list.
        2725;   0       /WU
        0403;   0       /DC
        0;      0
        IFDEF   CM71 </ .XREF
EXTKR,  1322;   COMKR   /KR
        1423;   COMLS   /LS
        / Fall through. >/*CM71
EXTLS,  1423;   0       /LS
        0;      0
EXTMA,  1501;   COMMA   /MA
        0;      0
EXTPA,  2001;   COMPA   /PA
        0;      0
EXTSY,  2331;   0       /SY
NULL,   0;      0
STAR,   5200;   0       /*
        0;      0
/ Extension Vectors
/ Extension vectors specify a subroutine to execute
/ immediately after an extension has been recognized.  The
/ subroutine may expect arguments at words 2 and 3.
/       Word 1  : Subroutine address.
/       Word 2  : Default extension.
/       Word 3  : Pointer to name of file to chain to.

        IFDEF   CM53 </ .FORMAT
COMAC,  COMSUB; 0103;   YACID   >/*CM53
COMBA,  COMSUB; 0201;   YBCOMP
COMBN,  COMSUB; 0216;   YABSLDR
COMFT,  COMSUB; 0624;   YFORT
        IFDEF   CM71 </ .XREF
COMKR,  COMSUB; 1322;   YKREF   >/*CM71
COMLD,  COMSUB; 1404;   YFRTS
        IFDEF   CM71 </ .XREF
COMLS,  COMSUB; 1423;   YCREF   >/*CM71
COMMA,  COMSUB; 1501;   YMACRE
COMPA,  COMSUB; 2001;   YPAL8
COMRA,  COMSUB; 2201;   YRALF
COMRB,  COMSUB; 2202;   YLINK
COMRL,  COMSUB; 2214;   YLOADER
        IFDEF   CM53 </ .FORMAT
COMRO,  COMSUB; 2217;   YRUNOFF >/*CM53
COMSB,  COMSUB; 2302;   YSABR
/ Switch Recognition List.
/ Each element is two words and the list is terminated by a
/ zero element (in which the first word is 0).
/       Word 1  : Switch--two six bit characters.
/       Word 2  : Switch vector or 0.
/ Switch vectors specify a subroutine to be executed
/ immediately after the associated extension is recognized.

SWTCHS, 1423;   DASHLS
        1520;   DASHMP
        1602;   DASHNB
        1617;   DASHNO
        0400;   DASHD
        1400;   DASHL
        1600;   DASHN
        2000;   DASHP
        IFDEF   CM56 </ -R switch.
        2200;   DASHR   >/*CM56
        2300;   DASHS
        2400;   DASHT
        0000;   DASH

/ Switch vectors.
/ CCLSWT executes the subroutine whose address is word 1.
/ The subroutine may expect word 2 to be an argument.

/ Vectors for two-character switches.
DASH,   UNKN
DASHLS, SWCOMP; 7605
DASHMP, SWCOMP; 7612
DASHNB, DONBNO; 2
DASHNO, DONBNO; 6

/ Vectors for one-character switches.
DASHD,  SETDEV; DEVICE DUMP
DASHN,  SETDEV; DEVICE NULL
        IFDEF   CM56 </ -R switch.
DASHR,  NOREM           >/*CM56
/ Order must be DASHL, DASHP, DASHS, DASHT:
DASHL,  SETDEV
LPTDEV, DEVICE LPT
DASHP,  SETDEV
PTPDEV, DEVICE PTP
DASHS,  SETDEV
TVDEV,
IFNDEF  CM3  <DEVICE TV >/*CM3
IFDEF   CM3  <DEVICE CRT>/*CM3
DASHT,  SETDEV
TTYDEV, DEVICE TTY
/ Filenames

YABSLD, FILENAME ABSLDR.SV
        IFDEF   CM53 </ .FORMAT
YACID,  FILENAME ACID.SV        >/*CM53
YBASIC, FILENAME BASIC.SV
YBATCH, FILENAME BATCH.SV
YBCOMP, FILENAME BCOMP.SV
YBITMA, FILENAME BITMAP.SV
YBOOT,  FILENAME BOOT.SV
        IFNDEF  CM49 </ Remove mag tape commands.
YCAMP,  FILENAME CAMP.SV        >/*CM49
YCCLX,  IFNDEF  CM67 < FILENAME CCLX.SV >
        IFDEF   CM67 < FILENAME CCL.SV >
YCREF,  FILENAME CREF.SV
YDIREC, FILENAME DIRECT.SV
	IFDEF	CM72 </ .DUMP
YDUMP,	FILENAME DUMP.SV	>/*CM72
        IFNDEF  CM40 </ .EDIT calls EDIT.SV.
YEDIT,  FILENAME EDIT.SV        >/*CM40
	IFDEF	CM73 </ .KERMIT
YKERMIT,FILENAME KERMIT.SV	>/*CM73
        IFDEF   CM52 </ .FLIST
YFLIST, FILENAME FLIST.SV       >/*CM52
YFRTS,  FILENAME FRTS.SV
        /MAKE SURE FORT AND LOADER ARE IN SAME BLOCK.
        IFNZRO .&7400+400-.-10&4000 <*.&7400+400>
YFORT,  FILENAME FORT.SV        /LOADER is next!
YLOADE, FILENAME LOADER.SV      /See MONFIX.
YFOTP,  FILENAME FOTP.SV
        IFDEF   CM35 </ .FUTIL
YFUTIL, FILENAME FUTIL.SV       >/*CM35
YHELP,  FILENAME HELP.SV
        IFDEF CM71 </ .XREF
YKREF,  FILENAME KREF.SV        >/*CM71
        IFDEF   CM38 </ .LDF
YLDF,   FILENAME LDF.SV         >/*CM38
YLINK,  FILENAME LINK.SV
        IFNDEF  CM41 </ .PRINT calls FOTP.SV or PRINT.SV.
YLPTSP, FILENAME LPTSPL.SV      >/*CM41
YMACRE, FILENAME MACREL.SV
YPAL8,  FILENAME PAL8.SV
YPIP,   FILENAME PIP.SV
        IFDEF   CM43 </ .PLOT
YPLOT,  FILENAME PLOT.SV        >/*CM43
        IFDEF   CM41 </ .PRINT calls PRINT.SV.
        IFNDEF  CM42 </ Unless it calls FOTP.SV.
YPRINT, FILENAME PRINT.SV       >/*CM42
                                >/*CM41
YRESOR, FILENAME RESORC.SV
YRALF,  FILENAME RALF.SV
        IFDEF   CM70 </ .RENUMBER
YRENUM, FILENAME RENUM.SV       >/*CM70
        IFDEF   CM53 </ .FORMAT
YRUNOF, FILENAME RUNOFF.SV      >/*CM53
YRXCOP, FILENAME RXCOPY.SV
        IFDEF   CM37 </ .RTPIP
YRTPIP, FILENAME RTPIP.SV       >/*CM37
YSABR,  FILENAME SABR.SV
YSET,   FILENAME SET.SV
        IFDEF   CM44 </ .SPOOL
YSPOOL, FILENAME SPOOLR.SV      >/*CM44
YSRCCO, FILENAME SRCCOM.SV
YTECO,  FILENAME TECO.SV
        IFDEF   CM36 </ .TERMIN
YTERMI, FILENAME TERMIN.SV      >/*CM36
        IFDEF   CM40 </ .EDIT calls VISTA.SV.
YVISTA, FILENAME VISTA.SV       >/*CM40
/ Error Messages

BADEV,  TEXT    /#BAD DEVICE/
BADMON, TEXT    /#BAD MONITOR/
BADNUM, TEXT    /#BAD NUMBER/
BADOPT, TEXT    /#BAD SWITCH OPTION/
BADREM, TEXT    /#BAD RECOLLECTION/
BADSTR, TEXT    /#ILLEGAL * OR ?/
BADSW,  TEXT    /#SWITCH NOT ALLOWED HERE/
BADSW2, TEXT    /#BAD ^CCL^ SWITCH/
BADSYN, TEXT    /#ILLEGAL SYNTAX/
BADX,   TEXT    /#BAD EXTENSION/
CONTRA, TEXT    /#CONTRADICTORY SWITCHES/
DNE,    TEXT    / DOES NOT EXIST/
MEMWARN,TEXT    /%CAN'T REMEMBER/
NF,     TEXT    / NOT FOUND/
OLDCCL, TEXT    /#WRONG ^KBM^ OVERLAY FOR ^CCLX/
IFDEF   CM69 </
OOPS,   TEXT    /#UNKNOWN COMMAND (FOR HELP, TYPE "^HELP^")
                >/*CM69
OVLMES, TEXT    /#OVL ERR/
REMBAD, TEXT    \#I/O ERROR TRYING TO RECALL\
SYSER,  TEXT    \#I/O ERROR ON ^SYS:\
TOOLNG, TEXT    /#COMMAND TOO LONG/
TOOMAN, TEXT    /#TOO MANY FILES/

IFZERO  .-4200&4000     <PAGE21, TABLES ARE TOO LONG!>
