         TITLE    'RCMD-B00,10/16/73,DWG702985'
         SYSTEM   SIG7F
         CSECT    1
         PCC      0                 CONTROL CARDS NOT PRINTED.
RCMD@    RES      0                 ORIGIN OF ROOT-CMD MODULE.
*
*  REF'S  AND  DEF'S
*
         DEF      RCMD@             = START OF 'RCMD' MODULE.
         DEF      SYMTOFF           SYMBOL TABLE OFFSET FROM LODYN
         DEF      STACKOFF          = OFFSET FROM HI COMMON TO XEQ STACK
         DEF      CMDREC            COMMAND RECOGNIZER.
         DEF      CMDB              COMMAND BRANCH VECTOR
         DEF      NCMDS             # OF SYSTEM COMMANDS
         DEF      TEXTCLEA          'CLEA'
         DEF      TEXTOFF           'OFF '
         DEF      @@CLEAR
         DEF      @@CONT
         DEF      @@COPY
         DEF      @@LOAD
         DEF      @@OFF
         DEF      @@PCOPY
         DEF      @@SAVE
         DEF      XWLOCGLB          EXCHANGE LOCALS AND GLOBALS
         DEF      ACQCONLY          ACQUIRES CONSTANT ONLY.
         DEF      OUTORANG
         DEF      VALOUT            PUT VALUE IN IMAGE, DISPLAY, & EXIT.
         DEF      ISVAL             DISPLAY 'IS  ' & VALUE.
         DEF      GENIS             DISPLAY 'IS  ' USING VALUE IN R7.
         DEF      ISMSG             'IS  '
         DEF      WASMSG            'WAS '
         DEF      ERBDCMDA          BAD COMMAND WITH F:WS OPEN, PERHAPS.
         DEF      ERBADCMD
         DEF      CMDERR            COMMAND ERROR
         DEF      CMDEXIT
         DEF      CMDEXITO          CMD EXIT FOR ERR & ON-OFF CK.
         DEF      CMDEXITM          CMD EXIT VIA MODE.
         DEF      DONTSAVE          ERROR -- NOT SAVED, THIS WS IS ...
         DEF      ERRERASE          ERROR -- NOT ERASED.
         DEF      ERNOTFND          GENERATE  NAME-NOT FOUND MESSAGE
         DEF      ERNOTCPY          GENERATE  NAME-NOT COPIED MESSAGE
         DEF      SIDAME            ERROR -- SI DAMAGE (VIA ERASE).
         DEF      SIDAMC            ERROR -- SI DAMAGE (VIA COPY).
         DEF      SIDAMF            ERROR -- SI DAMAGE (VIA FUNDEF).
         DEF      ERRDEFN           ERROR -- DEFN ERR.
         DEF      LSCANERR          ERROR -- LINESCAN ERR.
         DEF      BBADFL            GO USE BAD FUN LINE, MAYBE.
         DEF      ERRFDSYM          ERROR -- SYM TBL FULL (VIA FUNDEF).
         DEF      ERRFDWS           ERROR -- WS FULL (VIA FUNDEF).
         DEF      BRFUNDEF          RETURN TO FUNDEF MODULE.
         DEF      CSERRH            HANDLE CODESTRING ERROR.
         DEF      BREPROMT          BRANCH TO REPROMPT.
         DEF      BCONTOFF          GO FOR )CONTINUE & OFF.
         DEF      B4CLOSE           GO FORCE CLOSE OF OPEN FUNCTION.
         DEF      OBSERVEZ          RESUME CODE EXEQ AFTER OBSERVATION.
         DEF      BCSN              GO TO CODESTRINGER FOR AUTOSTART.
         DEF      BAQCONLY          GO ACQUIRE CONSTANT ONLY.
         DEF      EBALS             TBL OF ENTRIES TO THE ERROR MODULE.
         DEF      ERRN              GO TO ERROR MOD. FOR ERR NOS.
         DEF      ERRF              GO TO ERROR MOD. FOR ERR FN'S NAME.
         DEF      ERRX              GO TO ERROR MOD. FOR I/O ERR CODE.
         DEF      CMDERRH           HANDLE COMMAND ERROR.
         DEF      ERRSET            HANDLE ERR IN EXECUTION.
         DEF      OBSERVER          GO TO ERROR MOD. FOR AN OBSERVATION.
         DEF      UNREF             GO TO ERROR MOD. FOR EXEC.ERR RETURN
 SPACE 2
*                             REFS TO PROCEDURE:
         REF      ACQCONST          ACQUIRE CONSTANT ROUTINE
         REF      ACQIT             ACQUIRES NAME OR NUMERIC ITEM.
         REF      ACQNXNB           ACQUIRES NEXT NON-BLANK CHAR.
         REF      CINTIM            CONVERT INTEGER TO IMAGE.
         REF      CLOSR              CLOSE AND RELEASE
         REF      CMDRETRN          RESUMES IN CMD MODULE.
         REF      CONTOFF           DOES )CONTINUE & OFF.
         REF      CSN                    CODESTRINGER
         REF      DUMPLING          LINE OUTPUT ROUTINE.
         REF      ENTEREM           THE ENTRY PT INTO ERROR MODULE.
         REF      ERXEQ             ERROR VIA EXECUTE-OPERATION.
         REF      FORCLOSE          FORCE CLOSE ON OPEN FUNCTION
         REF      FOROPEN           FORCE OPEN THE FORCE-CLOSED FUNCTION
         REF      INPDIR            DIRECT INPUT PROCESSOR.
         REF      INPEVAL           EVALUATED INPUT DRIVER
         REF      KCLEAR            CLEAR COMMAND PROCESSOR.
         REF      OBSERVED          RESUME IN CODEXEQ MOD. AFTER OBSERV.
         REF      RCSIDAM           RESUME COPYING AFTER SI DAMAGE.
         REF      REPROMPT          FUNCTION DEF-ISSUE REPROMPT
         REF      RERASE            RESUME ERASING AFTER 'NOT ERASED'.
         REF      RESIDAM           RESUME ERASING AFTER SI DAMAGE.
         REF      RFSIDAM           RESUME FUN DEFN AFTER SI DAMAGE.
         REF      RFUNDEF           RESUME FUN DEFN.
         REF      RNOTCPY           RESUME AFTER 'NOT COPIED'.
         REF      RNOTFND           RESUME AFTER 'NOT FOUND'.
         REF      SAVEREL           RESUME AFTER CS FOR AUTOSTART.
         REF      USEBADFL          USE BAD FUNCTION LINE, PERHAPS.
         REF      XEQNIL            SUCCESSFUL XEQ-OPER, USE EMPTY RES.
         REF      @CATCH            CATCH    COMMAND PROCESSOR.
         REF      @CONTINU          CONTINUE COMMAND PROCESSOR.
         REF      @COPY             COPY     COMMAND PROCESSOR.
         REF      @DIGITS           DIGITS   COMMAND PROCESSOR.
         REF      @DROP             DROP     COMMAND PROCESSOR.
         REF      @ERASE            ERASE    COMMAND PROCESSOR.
         REF      @FNS              FNS      COMMAND PROCESSOR.
         REF      @GROUP            GROUP    COMMAND PROCESSOR.
         REF      @GRP              GRP      COMMAND PROCESSOR.
         REF      @GRPS             GRPS     COMMAND PROCESSOR.
         REF      @LIB              LIB      COMMAND PROCESSOR.
         REF      @LOAD             LOAD     COMMAND PROCESSOR.
         REF      @OBSERVE          OBSERVE  COMMAND PROCESSOR.
         REF      @OFF              OFF      COMMAND PROCESSOR.
         REF      @OPR              OPR      COMMAND PROCESSOR.
         REF      @OPRN             OPRN     COMMAND PROCESSOR.
         REF      @ORIGIN           ORIGIN   COMMAND PROCESSOR.
         REF      @PCOPY            PCOPY    COMMAND PROCESSOR.
         REF      @SAVE             SAVE     COMMAND PROCESSOR.
         REF      @SI               SI       COMMAND PROCESSOR.
         REF      @SIV              SIV      COMMAND PROCESSOR.
         REF      @SYMBOLS          SYMBOLS  COMMAND PROCESSOR.
         REF      @TABS             TABS     COMMAND PROCESSOR.
         REF      @TERM             TERMINAL COMMAND PROCESSOR.
         REF      @VARS             VARS     COMMAND PROCESSOR.
         REF      @WIDTH            WIDTH    COMMAND PROCESSOR.
         REF      @WSID             WSID     COMMAND PROCESSOR.
*                             REFS TO CONTEXT:
         REF      BRNVAL            ERR-CTRL BRANCH VALUE OR NEG.
         REF      CMNDTYPE          COMMAND TYPE.
         REF      CONSTBUF          CONSTANT BUFFER.
         REF      CONSTTYP          CONSTANT TYPE
         REF      COPYSAVE          SCRATCH DBLWD.
         REF      EREGS             REG. SAVE AREA FOR ERROR WORK.
         REF      ERRORID           ERROR I.D. HOLDER.
         REF      F:WS              F:WS DCB.
         REF      HICOMMON          HIGHEST ADDR. IN COMMON REGION.
         REF      IMAGE             IMAGE BUFFER
         REF      LINKOLAY          LINK HOLDER FOR OVERLAY SWITCHING.
         REF      LINKWS            SAVE LOC FOR LINK
         REF      MODE              EXECUTION MODE.
         REF      NAMEBUF           HOLDS ITEM ACQUIRED BY ACQIT.
         REF      ON%OFF            ON-LINE/OFF-LINE FLAG
         REF      STATEPTR          PTS AT TOP STATE-ENTRY IN XEQ STACK.
         REF      SYMT              PTS AT 1ST WD OF SYM TBL.
         REF      TOPOSTAK          PTS AT TOP OF EXECUTION STACK.
*                             REFS TO CONSTANTS:
         REF      BITPOS            TBL OF BITS--BITPOS-K HAS ONLY BIT K
         REF      IDBADCMD          ERROR I.D. FOR -- BAD COMMAND.
         REF      IDSYMFUL          ERROR I.D. FOR -- SYM TBL FULL.
         REF      IDWSFULL          ERROR I.D. FOR -- WS FULL.
         REF      MAXREAL           X'7FFFFFFF'
*
*  STANDARD EQU'S
*                   REGISTERS
R1       EQU      1
R2       EQU      2
R3       EQU      3
R4       EQU      4
R5       EQU      5
R6       EQU      6
R7       EQU      7
R8       EQU      8
R9       EQU      9
R10      EQU      10
R11      EQU      11
R12      EQU      12
R13      EQU      13
R14      EQU      14
R15      EQU      15
*
*  OTHER EQU'S
*
SYMTOFF  EQU      20                OFFSET FROM LODYN TO SYMT
*                           NOTE--  MUST BE AN EVEN NUMBER --
 SPACE
STACKOFF EQU      32  OFFSET FROM END OF COMMON TO THE EXECUTION STACK.
 SPACE
EFLAG    EQU      X'10000'          MARKS 'EXECUTE-OPER' TYPE OF Q-STATE
*
*  CONSTANTS
*
         PAGE
*
* COMMAND RECOGNITION DRIVER
*
*  PROCESSES COMMAND OR GIVES APPROPRIATE ERROR MESSAGE
*   EXITS VIA CMDEXIT,ACCORDING TO MODE
*    INDIVIDUAL COMMAND PROCESSORS ARE LABELLED:  @-----
*
CMDREC   LI,R4    0
         STW,R4   ERRORID           CLEAR ERROR IDENTIFIER.
         BAL,R4   ACQNXNB               ACQUIRE NEXT NON-BLANK
         BAL,R14  ACQIT             ACQUIRE CMD IDENTIFIER.
         LW,R8    NAMEBUF           GET 1ST 4 LETTERS OR WHATEVER.
         LI,R6    -NCMDS            = - NO.OF CMD IDENTIFIERS TABLED.
CMDQ     CW,R8    CMDTBL+NCMDS,R6   HUNT FOR A MATCH...
         BNE      CMDLOOP             NOT YET
         STW,R6   CMNDTYPE             OK-SAVE TYPE FOR POSSIBLE REF.
         B        CMDB+NCMDS,R6         VECTOR OUT
CMDLOOP  BIR,R6   CMDQ              LOOP
         B        ERBADCMD            NO MATCH -- INCORRECT COMMAND.
CMDTBL   RES      0           NOTE--TABLE OF CMD ID'S, ASSOCIATE W/ CMDB
TEXTCLEA TEXT     'CLEA'
TEXTOFF  TEXT     'OFF '
         TEXT     'SAVE'            SAVE
         TEXT     'WIDT'
         TEXT     'ORIG'
         TEXT     'DIGI'
         TEXT     'TABS'
         TEXT     'CONT'
         TEXT     'QLOA'            QUIET LOAD
         TEXT     'LOAD'
         TEXT     'WSID'
         TEXT     'QCOP'            QUIET COPY
         TEXT     'COPY'
         TEXT     'QPCO'            QUIET PCOPY
         TEXT     'PCOP'
         TEXT     'DROP'
         TEXT     'LIB '
         TEXT     'FNS '
         TEXT     'VARS'
         TEXT     'GRPS'
         TEXT     'GROU'
         TEXT     'GRP '
         TEXT     'ERAS'
         TEXT     'SYMB'
         TEXT     'SI  '
         TEXT     'SIV '
         TEXT     'OPR '
         TEXT     'OPRN'
         TEXT     'TERM'
         TEXT     'CATC'            CATCH
         TEXT     'OBSE'            OBSERVE
NCMDS    EQU      %-CMDTBL          = NO.OF CMD ID'S.
CMDB     RES      0           NOTE--BRANCH TBL ASSOCIATED W/ CMDTBL.
@@CLEAR  B        KCLEAR
@@OFF    B        @OFF
@@SAVE   B        @SAVE
@@WIDTH  B        @WIDTH
@@ORIGIN B        @ORIGIN
@@DIGITS B        @DIGITS
@@TABS   B        @TABS
@@CONT   B        @CONTINU
         MTW,1    CMNDTYPE          USE @LOAD
@@LOAD   B        @LOAD
@@WSID   B        @WSID
         MTW,1    CMNDTYPE          USE @COPY
@@COPY   B        @COPY
         MTW,1    CMNDTYPE          USE @PCOPY
@@PCOPY  B        @PCOPY
@@DROP   B        @DROP
@@LIB    B        @LIB
@@FNS    B        @FNS
@@VARS   B        @VARS
@@GRPS   B        @GRPS
@@GROUP  B        @GROUP
@@GRP    B        @GRP
@@ERASE  B        @ERASE
@@SYMB   B        @SYMBOLS
@@SI     B        @SI
@@SIV    B        @SIV
@@OPR    B        @OPR
@@OPRN   B        @OPRN
@@TERM   B        @TERM
@@CATCH  B        @CATCH
@@OBSERV B        @OBSERVE
         PAGE
*
* XWLOCGLB-PERFORM LOCAL-GLOBAL EXCHANGE ON SYMBOL TABLE
*      USED WHEN COMMANDS REQUIRE SURFACING- AND SUBSEQUENT
*      RESUBMERGING-OF GLOBAL SYMBOLS SHADOWED BY LOCALS
*
*  R14=LINK    R6,R7,R8,R9,R10,R11 USED-NOT SAVED
*
XWLOCGLB LW,R11   HICOMMON
         AI,R11   -STACKOFF
         SW,R11   TOPOSTAK          ESTABLISH LOOP COUNT
         BLEZ    *R14               EMPTY STACK-NO PROBLEM
         LW,R9    MAXREAL           MASK OFF SIGN BIT
         LW,R6    TOPOSTAK
CHKSTAK  LW,R8    1,R6              GET STACK ENTRY
         BGEZ     NOSHADOW           NOT A SHADOWED GLOBAL
         LW,R7    0,R6              EXCHANGE CANDIDATE-GET SYMT PTR
         LW,R10  *SYMT,R7           GET SYMT REFERENT
         OR,R10   BITPOS-0          MERGE 'G' BIT
         STW,R10  1,R6              SET SYMT ENTRY IN STACK
         STS,R8  *SYMT,R7           SET STACK ENTRY LESS 'G' BIT-IN SYMT
         AI,R6    1                 KICK STACK POINTER
         AI,R11   -1                DECREMENT LOOP COUNT
NOSHADOW AI,R6    1                 KICK STACK POINTER
         BDR,R11  CHKSTAK           LOOP
         B       *R14                RETURN
         PAGE
*
* ACQCONLY-ACQUIRE CONSTANT(S) ONLY
*        USED IN SCAN OF SYSTEM COMMANDS
*
*        R14=LINK, ACQCONST USED
*
*        MOST REGISTERS VOLATILE
*
ACQCONLY STW,R14  LINKWS            SAVE LINK
         STW,R14  CONSTBUF
         BAL,R4   ACQCONST           GET CONSTANT(S)
         B        ERBADCMD          OVERFLOW
         CI,R2    X'15'
         BNE      ERBADCMD          RESIDUAL GARBAGE
         LW,R14   CONSTTYP
         BLZ      ERBADCMD          NON-INTEGER CONST. FOUND
         LW,R7    CONSTBUF          GET FIRST CONSTANT
         BLZ      ERBADCMD           NEGATIVE-BAD SCENE
         CI,R6    1                 CHECK HOW MANY CONSTANTS FOUND
         B       *LINKWS             RETURN WITH CC'S SET
 PAGE
*
*  OUTORANG -- DUAL RETURN PT FOR PARAMETER-CHANGE COMMANDS.
*
*  VALOUT  -- ALT.ENTRY, PUTS VALUE IN R8 IN IMAGE, DISPLAYS, & EXITS.
*  ISVAL  -- ALT.ENTRY TO DISPLAY 'IS  ' & VALUE.
*  GENIS  -- ALT.ENTRY TO DISPLAY 'IS  ' USING VALUE IN R7.
*
OUTORANG B        ERBADCMD        @ RETURN PT IF -- BAD COMMAND.
         LW,R3    WASMSG          @ RETURN PT IF OK.  GET 'WAS ' MSG.
MSGIM    STW,R3   IMAGE             PUT MSG IN IMAGE.
         LI,R3    4                 SET POSITION IN IMAGE.
         LW,R8    R7                GET VALUE IN R8.
VALOUT   BAL,R13  CINTIM            PUT VALUE IN IMAGE.
         BAL,R12  DUMPLING          DISPLAY MSG NOW IN IMAGE.
         B        CMDEXIT           COMMAND EXIT.
ISVAL    LW,R7    COPYSAVE+1        GET VALUE IN R7.
GENIS    LW,R3    ISMSG             GET 'IS  ' MSG.
         B        MSGIM
WASMSG   TEXT     'WAS '
ISMSG    TEXT     'IS  '
         PAGE
*
* ERBADCMD-ILLEGAL COMMAND-AND CMDEXIT-COMMAND EXIT
*
*
*  RETURNS TO DRIVER INDICATED BY MODE:FORCE OPEN
*                                      DEFINITION REPROMPT
*                                      DIRECT INPUT
*                                      EVALUATED NPUT
*
ERBDCMDA LI,R5    F:WS                  CLOSE
         BAL,R6   CLOSR                  OPEN DCB
ERBADCMD LI,R8    IDBADCMD          ERROR I.D. FOR 'BAD COMMAND'.
CMDERR   BAL,R7   CMDERRH           HANDLE COMMAND ERROR.
CMDEXIT  LCW,R8   ERRORID           CK ERROR I.D...
         BEZ      CMDEXITM            ZERO -- NO ERROR.
         BLZ      CMDEXITC            POS -- ERR-CTRL TESTED ALREADY.
         BAL,R7   IDECTEST        @   NEG -- ERR DISPLAYED, CK ERR-CTRL:
         B        CTRL            @     CONTROL THIS ERROR.
         B        CMDEXITO        @     UNCONTROLLED.
CMDEXITC LW,R8    BRNVAL            WAS ERROR CONTROLLED...
         BGEZ     CTRL                YES.
CMDEXITO LW,R8    ON%OFF            DID ERROR OCCUR IN OFF-LINE OPERATN.
         BEZ      BCONTOFF            YES -- SIMULATE )CONTINUE CMD.
CMDEXITM LW,R7    MODE              EXIT CMD ACCORDING TO THE MODE:
         B        CMDXVECT,R7
         B        FOROPEN        -1 FORCE OPEN THE FUN FORCED CLOSE.
CMDXVECT B        REPROMPT        0 FUN DEFN MODE.
         B        INPDIR          1 DIRECT INPUT MODE.
         LI,R7    EFLAG           2 EVAL-INPUT OR EXECUTE-OPERATOR MODE:
         CW,R7   *STATEPTR
         BAZ      INPEVAL             EVALUATED INPUT.
         LW,R7    ERRORID             EXECUTE-OP, DID ERROR OCCUR...
         BEZ      XEQNIL                NO -- EMPTY VECTOR RESULTS.
         B        ERXEQ                 YES.
DONTSAVE EQU      DONTSAVH          HANDLE 'NOT SAVED, ETC.' ERROR.
ERRERASE STW,R1   EREGS             SAVE R1.
         BAL,R14  DERASE            DISPLAY 'NAME NOT ERASED'.
         LW,R1    EREGS             RESTORE R1.
         B        RERASE            RESUME ERASING; DO ERR-CTRL LATER.
ERNOTFND BAL,R14  DNOTFND           DISPLAY 'NAME NOT FOUND'.
         B        RNOTFND           RESUME COPYING; DO ERR-CTRL LATER.
ERNOTCPY BAL,R14  DNOTCPY           DISPLAY 'NAME NOT COPIED'.
         B        RNOTCPY           RESUME COPYING; DO ERR-CTRL LATER.
BSIDAM   B        DSIDAM      *BREF*
SIDAME   BAL,R7   BSIDAM            DISPLAY 'SI DAMAGE'.
         B        RESIDAM           RESUME ERASING; DO ERR-CTRL LATER.
SIDAMC   BAL,R7   BSIDAM            DISPLAY 'SI DAMAGE'.
         B        RCSIDAM           RESUME COPYING; DO ERR-CTRL LATER.
SIDAMF   BAL,R7   BSIDAM            DISPLAY 'SI DAMAGE'.
         B        RFSIDAM           RESUME FUN DEF; DO ERR-CTRL LATER.
ERRDEFN  EQU      DEFNERRH          HANDLE 'DEFN ERR' ERROR.
LSCANERR EQU      LSCANERH          HANDLE 'LINESCAN ERR' ERROR.
BBADFL   B        USEBADFL    *BREF*  USE BAD FUNCTION LINE, MAYBE.
ERRFDSYM LI,R8    IDSYMFUL          = ERROR I.D. FOR 'SYM TBL FULL'.
         B        ERRFUNDF
ERRFDWS  LI,R8    IDWSFULL          = ERRORI.D. FOR 'WS FULL'.
ERRFUNDF BAL,R7   FUNDERRH          HANDLE FUN DEFN ERROR 6
BRFUNDEF B        RFUNDEF    *BREF*   RETURN TO FUNDEF MODULE.
CSERRH   LI,R5    F:WS              CLOSE & RELEASE IN CASE THIS
         LI,R6    CMDERR              CODESTRING ERR OCCURRED DURING
         B        CLOSR               AN AUTOCONTINUE SAVE; HANDLE ERR
*                                     AS IF A CMD OR FUN DEF MISTAKE.
BREPROMT EQU      CMDXVECT          (TO SAVE A BRANCHING REF)
BCONTOFF LI,R2    -1                FLAG FOR ABORT
         B        CONTOFF  *BREF*    AND GO TO 'CONTINUE'
B4CLOSE  STW,R14  LINKOLAY          SAVE LINK BACK TO CMD MODULE.
         BAL,R14  FORCLOSE   *BREF* FORCE CLOSE OF OPEN FUNCTION.
CMDVIA14 STCF     LINKOLAY          SAVE COND.CODE.
         LW,R14   LINKOLAY          RESTORE LINK BACK TO CMD MODULE.
         LC       LINKOLAY          RECOVER COND.CODE.
         B        CMDRETRN   *BREF* RETURN TO CMD MODULE.
OBSERVEZ B        OBSERVED   *BREF* RETURN TO CODEXEQ MODULE.
BCSN     BAL,R12  CSN               CODESTRING (FOR AUTOSTART), THEN
         B        SAVEREL             RESUME THE SAVE COMMAND WORK.
BAQCONLY STW,R14  LINKOLAY          SAVE LINK BACK TO CMD MODULE.
         LI,R14   CMDVIA14          PREPARE TO RESUME AFTER
         B        ACQCONLY            ACQUIRING A CONSTANT.
 PAGE
*
*  COMMUNICATION REGION -- FROM ROOT INTO ERROR MODULE -- VIA R15.
*
EBALS    RES      0                 ERROR-ENTRY BAL'S.  (ORDERING MUST
ERRN     BAL,R15  BENTEREM            BE MATCHED IN ERROR MODULE).
ERRF     BAL,R15  BENTEREM
ERRX     BAL,R15  BENTEREM
CMDERRH  BAL,R15  BENTEREM
IDECTEST BAL,R15  BENTEREM
CTRL     BAL,R15  BENTEREM
DONTSAVH BAL,R15  BENTEREM
DERASE   BAL,R15  BENTEREM
DNOTFND  BAL,R15  BENTEREM
DNOTCPY  BAL,R15  BENTEREM
DSIDAM   BAL,R15  BENTEREM
DEFNERRH BAL,R15  BENTEREM
LSCANERH BAL,R15  BENTEREM
UNREF    BAL,R15  BENTEREM
ERRSET   BAL,R15  BENTEREM
OBSERVER BAL,R15  BENTEREM
FUNDERRH BAL,R15  BENTEREM
 SPACE 2
BENTEREM B        ENTEREM           ENTER ERROR MODULE WITH R15 SET.
 PAGE
************************************************************************
 SPACE 2
Z        SET      %-RCMD@           SIZE OF RCMD MODULE IN HEX.
 SPACE
Z        SET      Z+Z/10*6+Z/100*96+Z/1000*1536  SIZE IN DECIMAL.
 SPACE 3
         END

