.
.         COMMAND TABLE
.
.
.         (C)  Copyright 1972-1978  John Walker
.
.         This software is in the public domain
.
          AXR$
          DEFUNCT$
          FANG
lctr      equ       1                   location counter base for command tables
.
REPEAT    EQU       1                   REPEAT MODE BIT
OMIT      EQU       2                   OMIT LEGAL BIT
READ      EQU       4                   READ-ONLY PARAMETER USE BIT
SECRET    EQU       8                   DON'T PRINT THIS PARAMETER FOR BATCH
.
F         FUNC      .                   MODE(P(1,1),REPEAT) TESTS THAT MODE
MODE*     NAME      0
          END       F(2)=(F(1)**F(2))
.
P         PROC      .
COMMAND*  NAME      0
$(LCTR).
          LJSF$2    P(1,1)
A(1)      EQU       P-2
          DO        MODE(P(2,2),REPEAT) ,A(1) EQU -1
          *         A(1),$(LCTR+2)
F1        FORM      6,6,6,18
          F1        0,P(0,1),P(1,*2),P(1,2)
$(LCTR+2).
I         DO        (P>2)*(P-2) , F1 P(I+1,1),MODE(P(I+1,2),OMIT),;
                    PBFRO*MODE(P(I+1,2),READ)+PBFSEC*MODE(P(I+1,2),SECRET)
          END
.
.         GENERATE THE COMMAND TABLE
.
$(LCTR).
CMDTAB*   .
.
. 3                20                  40
.
  COMMAND          'ASK',ASKP          STRING
  COMMAND          'BLK',*BLKP         BLOCK,OMIT
  COMMAND,UO+VO    'CHECK',CHECK       FILE FILE NUMBER,OMIT
  COMMAND,CL       'CLEAR',COMPLETE    FILE,REPEAT
  COMMAND          'CLOSE',CLOSE       FILE,REPEAT
  COMMAND,CL       'COMMANDS',*CMDST
  COMMAND,UO+VO    'COMPARE',CHECK     FILE FILE NUMBER,OMIT
  COMMAND,CL       'CONNECT',CONNECT   FILE STRING,OMIT
  COMMAND,UO       'COPY',COPY         FILE FILE NUMBER,OMIT
  COMMAND,IU+UO    'COR',CORX          BLOCK,OMIT
  COMMAND          'CYCLE',CYCLE       EITHER NUMBER
  COMMAND          'DELETE',DELETE     EITHER,REPEAT
  COMMAND,CL       'DISCONNECT',DISCT  FILE,REPEAT
  COMMAND,UO       'DUMP',DUMP         FILE NUMBER,OMIT
          ON        DEBUG
  COMMAND          'EABT',*EABTP       NUMBER,OMIT
          OFF       DEBUG
  command          'EMBED',embed       either either number,omit
  COMMAND          'ERASE',ERASE       FILE,REPEAT
  COMMAND          'FAC',*FACP         NUMBER,OMIT
  COMMAND          'FIND',FIND         EITHER,REPEAT
  COMMAND,UO       'GET',GETX          CURBLK FILE NUMBER,OMIT
  COMMAND,CL       'INTERCHANGE',ICHG  FILE FILE
  COMMAND          'LENGTH',LENGTH     FILE NUMBER
  COMMAND,UO       'LIST',LIST         FILE NUMBER,OMIT
  COMMAND          'LOAD',LOADX        CURBLK BLOCK
  COMMAND,UO+VO    'LOCATE',LOCATE     FILE NUMBER,OMIT KEY
  COMMAND          'LST',LSTX          NUMBER,OMIT NUMBER,OMIT BLOCK,OMIT
  COMMAND          'MARK',MARK         FILE,REPEAT
  COMMAND,CL       'MESSAGE',MESAIS    FILE STRING
  COMMAND          'OPTION',*OPTSET    STRING
  COMMAND          'PACK',PACK         EITHER,REPEAT
  COMMAND          'POSITION',POSITION FILE NUMBER,OMIT
  COMMAND          'PREPARE',PREPARE   EITHER,REPEAT
  COMMAND          'PRINT',PRINTP      EITHER,REPEAT+READ
  COMMAND          'PROTECT',PROTECT   FILE STRING,OMIT+SECRET
  COMMAND          'PUT',PUTX          CURBLK FILE NUMBER,OMIT
  COMMAND          'RENAME',RENAMP     EITHER ELEMENT
  COMMAND          'REP',REPX          NUMBER BLOCK,OMIT DATA
  COMMAND          'REWIND',REWIND     FILE,REPEAT
  COMMAND,UO+VO    'SEARCH',SEARCH     FILE NUMBER,OMIT KEY
  COMMAND,OP+CL    'STATUS',*STATD     FILE,REPEAT
  COMMAND          'STORE',STOREX      CURBLK BLOCK
  COMMAND          'SWAP',SWAP         FILE,REPEAT
  COMMAND          'TELL',*TELLP       STRING
  COMMAND          'TIME',*TIMEP
  COMMAND          'TOC',TOCP          EITHER,REPEAT+READ
  COMMAND          'TRANSFER',TRANSFER EITHER,READ EITHER NUMBER,OMIT
  COMMAND          'TYPE',TYPESET      EITHER ELTYPE
  COMMAND          'UNDELETE',UNDELETE EITHER NUMBER,OMIT
  COMMAND          'WRITE',WRITE       FILE NUMBER,OMIT DATA
.
$(LCTR).
CMDTLEN*  EQU       ($-CMDTAB)/CMDEL
          END