.TITLE CMTAB .IDENT /M03.0/ ; ; ; Original AUTHOR: D. N. CUTLER 15-FEB-76 ; ; extensive rewriting ; J. CLEMENT ; 1. added many new commands (DEFINE,FLAGS,ENABLE,HEADER,UNDERLINE..) ; 2. Table is compressed!!! ; 3. Non DSR commands and non standard commands are commented ; ; RUNOFF COMMAND TABLE ; ; LOCAL MACRO DEFINITIONS ; ; The table structure goes as follows: ; CM is a table entry ; CMSUB is a common entry pointing to subentries ; Mandatory characters are in uppercase ; Lowercase chars mark end of abbreviated name ; Each string is preceeded by a string count ; CM strings are terminated by a negative byte plus status bits ; CMSUB strings are terminated by 37. ; CMSUB string is only first word of command ; ; GENERATE COMMAND TABLE ENTRY ; .MACRO CM EP,NAM,FLAGS .PSECT STRING,gbl,D,RO .BYTE 1$-. .ASCII ^NAM^ 1$: .PSECT DSPTCH,gbl,D,RO .WORD EP .ENDM ; ; Synonym entry (follows regular entry) ; Must not be last entry in a table ; .MACRO SYN NAM,FLAGS .PSECT STRING,GBL,D,RO .BYTE 1$-.+200 .ASCII ^NAM^ 1$: .PSECT DSPTCH,gbl,D,RO .ENDM ; ; Start subtable ; .MACRO CMSUB EP,NAM .PSECT STRING,GBL,D,RO .BYTE 1$-. .ASCII ^NAM^<37> 1$: .psect DSPTCH,gbl,d,ro .WORD EP .ENDM ; ; Macro to set up start of table ; .MACRO CMBEG .PSECT STRING,GBL,D,RO $$$=. .psect DSPTCH,gbl,d,ro .WORD $$$ .ENDM ; ; COMMAND TABLE ; .psect STRING,GBL,D,RO .even COMTAB::.WORD ACTAB,BCTAB,CCTAB,DCTAB,ECTAB,FCTAB,GCTAB,HCTAB .WORD ICTAB,JCTAB,KCTAB,LCTAB,MCTAB,NCTAB,OCTAB,PCTAB .WORD QCTAB,RCTAB,SCTAB,TCTAB,UCTAB,VCTAB,WCTAB,XCTAB .WORD YCTAB,ZCTAB .PSECT DSPTCH,gbl,D,RO DSPAT:: ACTAB: CMBEG CM APNDX,,BRKF!FOTF!NOTF SYN ,BRKF!FOTF!NOTF CMSUB A1, .WORD 0 ; marks end of table ; ; ; ; If this is changed must change N2A ; .psect STRING,GBL,D,RO A1STR: ; String address this .psect DSPTCH,gbl,D,RO A1: CMBEG CM AUBRK,,FOTF!NOTF CM AUHYP,,FOTF!NOTF CM AUTOP,,FOTF CM AUSTL,,FOTF!RELF SYN ,FOTF!RELF CM AUTTL,,FOTF!RELF .WORD 0 BCTAB: CMBEG CM BGBAR,<egin Bar> CM LINSKP,<lank>,BRKF CM BREAK,<Reak>,BRKF .WORD 0 ; marks end of table CCTAB: CMBEG CM CLAYOU,<Hapter LAYOut>,FOTF!NOTF!LCKF ; Non dsr SYN <HLO>,FOTF!NOTF!LCKF ; Non dsr CM CHPTR,<Hapter>,BRKF!FOTF!NOTF CM COMNT,<Omment> CMSUB C1,<enter > CMSUB C1,<entre > .WORD 0 ; marks end of table C1: CMBEG CM CENTRT,<Text>,BRKF!RELF ; Non dsr CM CENTER,<line>,BRKF!RELF ; Non dsr .WORD 0 ; marks end of table DCTAB: CMBEG CM DSAPN,<AX>,FOTF!LCKF CM DSCHP,<CH>,FOTF!LCKF CMSUB D3,<EFine > CMSUB D4,<ELete > CMSUB D1,<ISAble > CMSUB D2,<ISPlay > CM DSLEV,<HL>,FOTF!LCKF CM DSELE,<LE>,FOTF!LCKF CM DSNUM,<NM>,FOTF!LCKF CM DSSUBP,<SP>,FOTF!LCKF CM DOINX,<X>,BRKF!FOTF!TEXF SYN <O INDEX>,BRKF!FOTF!TEXF CMSUB D1,<> .WORD 0 ; marks end of table ; ; <DISABLE > ; ; If E1 is changed this must be changed also ; D1: .WORD E1STR .WORD DSCBR .WORD DSESC ; Non dsr .WORD DSEQU ; Non dsr .WORD DSHYP .WORD DSINX .word DNMCH ; Non dsr .word DNMPG ; Non dsr .word DISODD ; Non dsr .WORD DSOVR .WORD DSSUB .WORD DSTAB ; Non dsr .WORD DSTOC .WORD DSUNC ; Non dsr .WORD DSUNL .WORD 0 ; marks end of table ; ; <DISPLAY > ; D2: CMBEG CM DSAPN,<APpendix>,FOTF!LCKF CM DSCHP,<CHapter>,FOTF!LCKF CM DSELE,<ELements>,FOTF!LCKF CM DSLEV,<LEvels>,FOTF!LCKF CM DSNUM,<NUMbers>,FOTF!LCKF CM DSSUBP,<SUBPage>,FOTF!LCKF CM DSSTL,<SUBTitle>,FOTF!LCKF ; Non DSR CM DSTTL,<TITle>,FOTF!LCKF ; Non DSR .WORD 0 ; marks end of table ; ; <DEFINE > ; D3: CMBEG CM DFCOM,<COMmand>,FOTF!BRKF!NOTF!TEXF CM DFESC,<ESCape>,FOTF!BRKF!NOTF!TEXF ; Non dsr CM DFSUB,<SUBSCript>,FOTF!BRKF!NOTF!TEXF ; Non dsr CM DFMAC,<SUBSTitute>,FOTF!BRKF!NOTF!TEXF ; Non dsr CM DFSUP,<SUPerscript>,FOTF!BRKF!NOTF!TEXF ; Non dsr CM DFVSP,<VARiable SPace>,FOTF!BRKF!NOTF!TEXF ; Non dsr .WORD 0 ; marks end of table ; ; <DELETE> ; D4: CMBEG CM DELCOM,<COMmand>,FOTF!NOTF!TEXF ; Non dsr CM DLINDX,<INDEX>,FOTF!NOTF!TEXF CM DELSUB,<SUBStitute>,FOTF!NOTF!TEXF ; Non dsr .word 0 ECTAB: CMBEG CM ENBAR,<B> CM ECENT,<CN>,BRKF ; Non dsr CM FOOTE,<FN>TEXF!BRKF CM ELIPS,<LLipses>,FOTF ; Non dsr CM ELIST,<LS>,BRKF ELSCMD::CM ELSE,<LSE> CM ELTRL,<Literal>,BRKF CMSUB E1,<NAble > CMSUB E2,<ND > CM ENTRY,<NTry> CM ENOTC,<N>,BRKF CM ERIGHT,<R>,BRKF ; Non dsr CM ENDEQ,<SEQ>,BRKF!FOTF!NOTF ; Non dsr CM PAGEC,<S>,BRKF!FOTF CM ENTEX,<TX>,BRKF!FOTF!NOTF ; Non dsr CMSUB E1,<> .WORD 0 ; marks end of table ; ; <ENABLE > ; If this is changed D1 may need to be changed ; .psect STRING,GBL,D,RO E1STR: ; String address this .psect DSPTCH,gbl,D,RO E1: CMBEG CM ENCBR,<BAR> SYN <BB> CM ENESC,<EScape> ; Non dsr CM ENEQU,<EQuations>,FOTF ; Non dsr CM ENHYP,<HYphenation>,BRKF CM ENINX,<INDEXing> SYN <IX> CM ENMCH,<NUMbering CHapter>,FOTF!LCKF!NOTF!TEXF ; Non dsr SYN <NMCH>,FOTF!LCKF!NOTF!TEXF CM ENMPG,<NUMbering>,FOTF!LCKF!NOTF!TEXF ; Non dsr SYN <NMPG>,FOTF!LCKF!NOTF!TEXF CM ENODD,<ODd>,FOTF!LCKF!NOTF!TEXF ; Non dsr CM ENOVR,<OVerstriking> CM ENSUB,<SUBSTitution> ; Non dsr SYN <SST> ; Non dsr CM ENTAB,<TABs> ; Non dsr SYN <TB> ; Non dsr CM ENTOC,<TOC> SYN <TC> ENUCMD::CM ENUNC,<UNConditional>,FOTF!NOTF!TEXF!BRKF ; Non dsr CM ENUNL,<UNderlining> SYN <UL> ; *** This must be last entry this table !!!!! CM ENALV,<LEvels>,FOTF!RELF!LCKF ; Non dsr .WORD 0 ; marks end of table ; ; <END > ; E2: CMBEG CM ENBAR,<Bar> CM ECENT,<Center>,BRKF ; Non dsr CM FOOTE,<Footnote>BRKF!TEXF EICMD:: CM ENDIF,<If> CM ELIST,<LISt>,BRKF ELCMD:: CM ELTRL,<LITeral>,BRKF CM ENOTC,<Note>,BRKF CM ENDEQ,<SEparated EQuations>,BRKF!FOTF!NOTF; Non dsr CM PAGEC,<SUBPage>,BRKF!FOTF CM ENTEX,<TEXt>,BRKF!FOTF!NOTF ; Non dsr CM ENDTOC,<TOC>,BRKF!FOTF ; Non dsr CM ERIGHT,<Right>,BRKF ; Non dsr .WORD 0 ; marks end of table FCTAB: CMBEG CM FIGDF,<GD>,BRKF!FOTF!TEXF!NOTF SYN <IGure Deferred>,BRKF!FOTF!TEXF!NOTF ; Non dsr CM FIGUR,<G>,BRKF!FOTF SYN <IGure>,BRKF!FOTF CM FTITL,<irst Title>,FOTF CM FILLN,<ill>,BRKF CM TXDMP,<LUSH>,BRKF!FOTF!TEXF!NOTF ; Non dsr CM FOOTN,<N>,FOTF!TEXF SYN <OOTNote>,FOTF!TEXF CMSUB F1,<Lags > .WORD 0 ; marks end of table ; ; <FLAGS > or <FL > ; ; If this table is changed N2B must be changed also ; .psect STRING,GBL,D,RO F1STR: ; String address this .PSECT DSPTCH,gbl,D,RO F1: CMBEG CM ENACFL,<ACCept>,FOTF CM ENBRFL,<BReak>,FOTF CM ENCFL,<CAPitalize>,FOTF CM ENNFL,<CONtrol>,FOTF CM ENEFL,<ESCape>,FOTF ; Non dsr CM FLEQU,<EQuations>,FOTF ; Non dsr CM ENHFL,<HYphenate>,FOTF CM ENIFL,<INDex>,FOTF CM ENLFL,<LOWercase>,FOTF CM ENOFL,<OVerstrike>,FOTF CM ENQFL,<SPAce>,FOTF CM ESPFL,<SPECial>,FOTF ; Non dsr CM ENSIFL,<SUBIndex>,FOTF CM ENSBFL,<SUBStitute>,FOTF CM ENTBFL,<TAB>,FOTF ; Non dsr CM ENUFL,<UNderline>,FOTF CM ENSFL,<UPpercase>,FOTF CM ENAFL,<ALl>,FOTF CM ENAFL,<>,FOTF .WORD 0 ; marks end of table HCTAB: CMBEG CM HSPSW,<Alf SPacing>,NOTF!FOTF!TEXF ; Non dsr CM HEADR,<eader Level>,BRKF!FOTF!NOTF!RELF CM ENHYP,<Yphenation>,BRKF ; NON STANDARD CMSUB H1,<EADers > CMSUB H1,<D > .WORD 0 ; marks end of table ; ; <HEADER > ; H1: CMBEG CM HNOPG,<No PAge>,FOTF!LCKF ; Non dsr CM HPAGE,<PAge>,FOTF!LCKF ; Non dsr CM HEDSP,<SPacing>,FOTF!LCKF ; Non dsr CM HEADU,<UPper>,FOTF!LCKF CM HEADL,<LOwer>,FOTF!LCKF CM HEADM,<MIxed>,FOTF!LCKF CM HEADP,<on>,FOTF!LCKF ; Non dsr .WORD 0 ; marks end of table ICTAB: CMBEG IFNCMD::CM IFNOT,<F Not> IFCMD:: CM IF,<F> CM TSTPG,<mmediate Test Page>,FOTF!TEXF ; Non dsr CM TSTTX,<mmediate Test Text>,FOTF!TEXF ; Non dsr CM INDLV,<NDENt LEVels>,FOTF!LCKF ; Non dsr CM INDENT,<ndent>,BRKF CM INDEX,<NDEX> .WORD 0 ; marks end of table JCTAB: CMBEG CM JUSTN,<ustify>,BRKF .WORD 0 ; marks end of table KCTAB: CMBEG CM KEEPN,<eep> .WORD 0 ; marks end of table LCTAB: CMBEG CM LSTEL,<ist Element>,BRKF!FOTF CM LAYOU,<AYOut>,BRKF!FOTF!LCKF SYN <O>,BRKF!FOTF!LCKF CM LISTC,<S>,BRKF!FOTF SYN <ISt>,BRKF!FOTF CM LWCAS,<ower Case> CM SETLM,<eft Margin>,BRKF!RELF CM INDENT,<eft>,BRKF CM LITRL,<ITeral>,BRKF!FOTF!NOTF SYN <T>,BRKF!FOTF!NOTF CM LOCKP,<OCK>,FOTF!LCKF!NOTF!LCKF ; Non dsr .WORD 0 ; marks end of table NCTAB: CMBEG CM NAPDX,<MAX>,RELF!FOTF CM NCHPT,<MCH>,RELF!FOTF CM NUMON,<M>,RELF!FOTF ; NON STANDARD CM NLEVL,<MLV>,RELF!FOTF CM NULST,<MLS>,RELF!FOTF CM NUMON,<MPG>,RELF!FOTF CM NSPAG,<MSPG>,RELF!FOTF CM NUMOF,<NM>,FOTF!LCKF CM NOTE,<T>,BRKF!NOTF SYN <OTe>,BRKF!NOTF CM DSCFL,<FC>,FOTF ; NON STANDARD CM DSHFL,<FH>,FOTF ; NON STANDARD CMSUB N1,<UMber > CMSUB N2,<o > .WORD 0 ; marks end of table ; ; <NUMBER > ; N1: CMBEG CM NAPDX,<APpendix>,RELF!FOTF CM NCHPT,<CHapter>,RELF!FOTF CM NLEVL,<LEVel>,RELF!FOTF CM NULST,<LISt>,RELF!FOTF CM NUMON,<PAGe>,RELF!FOTF CM NSPAG,<SUBPage>,RELF!FOTF CM NUMON,<>,RELF!FOTF ; NON STANDARD .WORD 0 ; marks end of table ; ; <NO > ; N2: CMBEG CMSUB N2A,<Auto> CM NELIP,<ELLipses>,FOTF ; Non dsr CMSUB N2B,<FLags > CM FILOF,<Fill>,BRKF CM NHSPSW,<HALf SPacing>,FOTF!NOTF!TEXF ; Non dsr CM NHEAD,<HEADers on>,FOTF!LCKF SYN <HD>,FOTF!LCKF CM DSHYP,<HYphenation>,BRKF ; NON STANDARD CM JUSOF,<Justify>,BRKF CM NKEEP,<Keep> CM NOCHP,<NUMber CHapter>,FOTF!LCKF ; Non dsr CM NUMOF,<NUMber>,FOTF!LCKF CM NPERS,<PERiod>,FOTF SYN <PR>,FOTF CM NOPGNG,<PAging>,FOTF!NOTF!TEXF CM NOSPC,<SPaCE> CM NTITL,<TITle>,FOTF!LCKF!NOTF ; Non dsr CM UNLNC,<UNderline>,FOTF ; Non dsr CM NVSP,<VARiable SPacing>,BRKF!FOTF!LCKF ; Non dsr CM NOVARN,<VARIANt> ; Non dsr .WORD 0 ; marks end of table ; ; <Auto> ; ; If this is changed must also change A1STR N2A: .WORD A1STR .WORD NAUBRK .WORD NAUHYP .WORD NAUTO .WORD NAUSTL .WORD NAUTL .WORD 0 ; ; either <NO FLAGS> or <NFL> ; ; Note if table F1 is changed this must also change ; N2B: .WORD F1STR .WORD DSACFL .WORD DSBRFL .WORD DSCFL .WORD DSNFL .WORD DSEFL ; Non dsr .WORD NFLEQ ; Non dsr .WORD DSHFL .WORD DSIFL .WORD DSLFL .WORD DSOFL .WORD DSQFL .WORD DSPFL ; Non dsr .WORD DSSIFL .WORD DSSBFL .WORD DSTBFL ; Non dst .WORD DSUFL .WORD DSSFL .WORD DSAFL .WORD DSAFL .WORD 0 ; marks end of table PCTAB: CMBEG CM PARAG,<aragraph>,BRKF CM SETPG,<age Size>,BRKF!FOTF!LCKF!RELF SYN <APer Size>,BRKF!FOTF!LCKF!RELF CM PAGEV,<AGe Even>,BRKF!FOTF!TEXF ; Non DSR SYN <GE>,BRKF!FOTF!TEXF ; Non DSR CM PAGOD,<AGe Odd>,BRKF!FOTF!TEXF ; Non DSR SYN <GO>,BRKF!FOTF!TEXF ; Non DSR CM NEWPAG,<G>,BRKF!FOTF SYN <AGE>,BRKF!FOTF CM PGNG,<Aging>,FOTF!NOTF!BRKF CM PERSP,<R>,FOTF SYN <ERiod>,FOTF CM PERFN,<ERmanent FOOTNote>,FOTF!NOTF SYN <FN>,FOTF!NOTF CM PINDX,<X>,BRKF!FOTF!TEXF CM PINDX,<Rint INDex>,BRKF!FOTF!TEXF .WORD 0 ; marks end of table RCTAB: CMBEG CM RSTU,<ESTore STatus>,FOTF!NOTF ; Non dsr CM SETRM,<ight Margin>,BRKF!RELF CM RIGHT,<ight TEXt>,BRKF ; Non dsr CM RIGHJ,<ight>,BRKF CM REQUR,<EQuire>,FOTF!NOTF CMSUB RC1,<ESEt > .WORD 0 ; marks end of table RC1: CMBEG CM RSESC,<ESCape>,FOTF ; Non dsr CM RSINDX,<INDEX>,FOTF ; Non dsr CM RSSUB,<SUBSTitute>,FOTF ; Non dsr .word 0 SCTAB: CMBEG CMSUB S1,<AVe > CM BEGEQ,<EParateD EQuations>,BRKF!FOTF!NOTF; Non dsr SYN <EQ> CM SSP,<Pacing>,BRKF CM SKIP,<kip>,BRKF CM SENTC,<end TOC> SYN <TC> CM SENPTC,<end PAGe TOC> CM SETPR,<ET PARagraph>,FOTF SYN <PR>,FOTF CM SETSTL,<T>,FOTF SYN <UBTTL>,FOTF ; NON STANDARD SYN <UBTitle>,FOTF CM TPAGE,<UBPage>,BRKF!FOTF SYN <PG>,BRKF!FOTF CM STAND,<D>,BRKF!FOTF!RELF ; NON STANDARD SYN <TANDard>,BRKF!FOTF!LCKF!RELF ; NON STANDARD CM STYCH,<Tyle CHapter>,BRKF!FOTF!LCKF ; NON STANDARD CM STYHD,<Tyle HEADers>,BRKF!FOTF!LCKF SYN <THL>,BRKF!FOTF!LCKF .WORD 0 ; marks end of table ; ; <SAVE> commands ; s1: CMBEG CM APSVST,<APpendix>,FOTF!NOTF ; Non dsr CM CHSVST,<CHapter>,FOTF!NOTF ; Non dsr CM LVSVST,<LEVels>,FOTF!NOTF ; Non dsr CM SAVU,<STatus>,FOTF!NOTF ; Non dsr CM HDSVST,<HEADers>,FOTF!NOTF ; Non dsr .word 0 TCTAB: CMBEG CM TSTPG,<est Page>,BRKF!FOTF!TEXF CM TSTTX,<est Text>,BRKF!FOTF!TEXF ; Non dsr CM TEXTD,<EXt Deferred>,BRKF!FOTF!NOTF ; Non dsr SYN <XD>,BRKF!FOTF!NOTF ; Non dsr CM TEXTC,<EXt>,BRKF!FOTF!NOTF ; Non dsr SYN <X>,BRKF!FOTF!NOTF ; Non dsr CM SETTL,<itle>,FOTF CM SETTM,<op Margin>,BRKF!RELF!FOTF!LCKF CM TABPR,<ABs Proportional>,FOTF ; Non dsr CM SETTAB,<aB Stops>,FOTF!RELF CM TABRI,<aB Right>,FOTF ; Non dsr CM TABLF,<aB Left>,FOTF ; Non dsr CM BETOC,<OC>,FOTF ; Non dsr CM TRACE,<RACE> ; Non dsr CM TYPE,<YPE> ; Non dsr .WORD 0 ; marks end of table UCTAB: CMBEG CM UPCAS,<pper Case> ; Non dsr CMSUB U1,<Nderline > CMSUB U1,<L> ; Non dsr .WORD 0 ; marks end of table U1: CMBEG CM UNLSP,<SPaces>,FOTF ; Non dsr CM UNLNS,<No SPaces>,FOTF ; Non dsr CM UNLCH,<>,FOTF ; Non dsr .WORD 0 ; marks end of table VCTAB: CMBEG CM VARSP,<ARiable SPacing>,BRKF!FOTF!LCKF ; Non dsr CM VARIAN,<ARIANT>,LCKF ; Non dsr .WORD 0 ; marks end of table XCTAB: CMBEG CM INDEX,<>, ; ; Nonexistant char entries ; GCTAB: MCTAB: OCTAB: QCTAB: ; Q is reserved for user commands so do not use it WCTAB: .word 0 YCTAB: CMBEG CM ENTRY,<> ZCTAB: .WORD 0 ; marks end of table .END �����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������