DataMuseum.dk

Presents historical artifacts from the history of:

IBM System/3

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about IBM System/3

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦513fa015f⟧ s3xseg

    Length: 17272 (0x4378)
    Types: s3xseg
    Names: »S$EFAC«

Derivation

└─⟦827b5bd03⟧ Bits:30009184 5702-sc1.V16.ccp
    └─⟦f17e99db6⟧ 
        └─⟦this⟧ »S$EFAC« 

TextSegment

       MACRO                                                            00010000                
.********************************************************************** 00020000                
.*                                                                    * 00030000                
.* NAME:  $EFAC                                                       * 00040000                
.*                                                                    * 00050000                
.* MODIFICATION LEVEL:  VERSION 8, MODIFICATION LEVEL 0 OF 5702-SC1   * 00060000                
.*                                                                    * 00070000                
.* FUNCTION:                                                          * 00080000                
.*                                                                    * 00090000                
.*   . CCP GENERATION FIRST PASS MACRO-INSTRUCTION -- DEFINE          * 00100000                
.*     FUNCTIONAL FACILITIES DESIRED IN USER'S VERSION OF CCP.        * 00110000                
.*                                                                    * 00120000                
.* INPUT OPERANDS:                                                    * 00130000                
.*                                                                    * 00140000                
.*   . MAXEUP-1/N                                                     * 00150000                
.*                                                                    * 00160000                
.*     MAXIMUM NUMBER OF CONCURRENTLY EXECUTING USER PROGRAMS.        * 00170000                
.*     DEFAULT IS 1.                                                  * 00180000                
.*                                                                    * 00190000                
.*   . DPF-YES/Y/NO/N                                                 * 00200000                
.*                                                                    * 00210000                
.*     CCP IS TO RUN ON A MACHINE EQUIPPED WITH THE DUAL PROGRAM      * 00220000                
.*     FEATURE.  DEFAULT IS NO.                                       * 00230000                
.*                                                                    * 00240000                
.*   . ESCAPE-NO/'6 CHARACTERS'/X'12 HEX DIGITS'                      * 00250000                
.*                                                                    * 00260000                
.*     DATA MODE ESCAPE FEATURE IS TO BE SUPPORTED AND THE INPUT      * 00270000                
.*     STRING FROM A TERMINAL WHICH SIGNALS THE REQUEST FOR ESCAPE    * 00280000                
.*     IS SPECIFIED.  DEFAULT IS NO (FEATURE IS NOT TO BE SUPPORTED.  * 00290000                
.*                                                                    * 00300000                
.*   . PGMCNT-YES/Y/NO/N                                              * 00310000                
.*                                                                    * 00320000                
.*     COUNTS ARE TO BE KEPT, PER USER PROGRAM, OF REQUESTS FOR THAT  * 00330000                
.*     PROGRAM.  DEFAULT IS NO.                                       * 00340000                
.*                                                                    * 00350000                
.*   . FSHARE-YES/Y/NO/N                                              * 00360000                
.*                                                                    * 00370000                
.*     IN A MULTIPROGRAMMING VERSION OF CCP (MAXEUP GT 1) SHARING     * 00380000                
.*     OF FILES BY CONCURRENT PROGRAMS WHICH ATTEMPT TO UPDATE        * 00390000                
.*     THOSE FILES IS TO BE SUPPORTED.  DEFAULT IS NO.                * 00400000                
.*                                                                    * 00410000                
.*   . SYMFIL-YES/Y/NO/N                                              * 00420000                
.*                                                                    * 00430000                
.*     THE SYMBOLIC FILE REFERENCE FACILITY IS TO BE SUPPORTED.       * 00440000                
.*     DEFAULT IS NO.                                                 * 00450000                
.*                                                                    * 00460000                
.*   . FORMAT-YES/Y/NO/N                                              * 00470000                
.*                                                                    * 00480000                
.*     THE DISPLAY FORMAT FACILITY FOR 3270 IS TO BE INCLUDED.        * 00490000                
.*     DEFAULT IS NO.                                                 * 00500000                
.*   .                                                                  00510000                
.*   . PRUF-YES/Y/NO/N                                                  00520000                
.*                                                                      00530000                
.*     THE 'PROGRAM READ UNDER FORMAT' FACILITY IS TO BE INCLUDED.      00540000                
.*     DEFAULT IS NO.                                                   00550000                
.*                                                                    * 00560000                
.********************************************************************** 00570000                
       $EFAC &MAXEUP-1,&DPF-NO,&ESCAPE-NO,&PGMCNT-NO,                  X00580000                
             &FSHARE-NO,&SYMFIL-NO,&FORMAT-NO,&PRUF-NO                  00590000                
.*                                                                      00600000                
       GBLB  &TERR                     . TERMINATION ERROR SWITCH       00610000                
       GBLA  &SEQ                      . STATEMENT SEQUENCE CONTROL     00620000                
.*                                     .   MUST BE 1 UPON ENTRY         00630000                
.*                                     .   IS MADE 2 AFTER PROCESSING   00640000                
.*                                                                      00650000                
       GBLA  &NUTSK                    . NUMBER USER TASKS (MAXEUP)     00660000                
       GBLB  &FDPF                     . DUAL PGM FEATURE (DPF)         00670000                
       GBLB  &FDME                     . DATA-MODE ESCAPE USED (ESCAPE) 00680000                
       GBLB  &FPGC                     . PGM-RQST COUNTS USED (PGMCNT)  00690000                
       GBLB  &FSHR                     . FILE SHARE FACILITY (FSHARE)   00700000                
       GBLB  &FSYM                     . SYMBOLIC FILES USED (SYMFIL)   00710000                
       GBLB  &FDFF                     . DISPLAY FORMAT USED (FORMAT)   00720000                
       GBLB  &FRUF                     . 'PROGRAM READ UNDER FORMAT'    00730000                
.*                                     . (PRUF)                         00740000                
       GBLC  &X1DME,&X2DME             . DATA MAOE ESCAPE STRING        00750000                
.*                                                                      00760000                
       LCLA  &N                        . USED FOR LENGTH OF ESCAPE CHAR 00770000                
       LCLA  &NUM                      FOR TESTING NUMERIC OPERANDS     00780000                
.*                                                                      00790000                
.*---------  PARAMETER TRANSFORMATION TABLES  ------------------------* 00800000                
.*                                                                      00810000                
       TABLE &DPF                      . DUAL PROGRAMMING FEATURE       00820000                
YES    TABDF 1                                                          00830000                
Y      TABDF 1                                                          00840000                
NO     TABDF 0                                                          00850000                
N      TABDF 0                                                          00860000                
       TABDF *                         . ERRONEOUS PARAMETER            00870000                
.*                                                                      00880000                
       TABLE &FSHARE                   . (UPDATE) FILE SHARING          00890000                
YES    TABDF 1                                                          00900000                
Y      TABDF 1                                                          00910000                
NO     TABDF 0                                                          00920000                
N      TABDF 0                                                          00930000                
       TABDF *                         . ERRONEOUS PARAMETER            00940000                
.*                                                                      00950000                
       TABLE &SYMFIL                   . SYMBOLIC DISK FILE FEATURE     00960000                
YES    TABDF 1                                                          00970000                
Y      TABDF 1                                                          00980000                
NO     TABDF 0                                                          00990000                
N      TABDF 0                                                          01000000                
       TABDF *                         . ERRONEOUS PARAMETER            01010000                
.*                                                                      01020000                
       TABLE &PGMCNT                   . PROGRAM-REQUEST COUNTS         01030000                
YES    TABDF 1                                                          01040000                
Y      TABDF 1                                                          01050000                
NO     TABDF 0                                                          01060000                
N      TABDF 0                                                          01070000                
       TABDF *                         . ERRONEOUS PARAMETER            01080000                
.*                                                                      01090000                
       TABLE &FORMAT                   . DISPLAY FORMAT FACILITY        01100000                
YES    TABDF 1                                                          01110000                
Y      TABDF 1                                                          01120000                
NO     TABDF 0                                                          01130000                
N      TABDF 0                                                          01140000                
       TABDF *                         . ERRONEOUS PARAMETER            01150000                
.*                                                                      01160000                
       TABLE &PRUF                     . READ UNDER FORMAT              01170000                
YES    TABDF 1                                                          01180000                
Y      TABDF 1                                                          01190000                
NO     TABDF 0                                                          01200000                
N      TABDF 0                                                          01210000                
       TABDF *                         . ERRONEOUS PARAMETER            01220000                
       TEXT                                                             01230000                
.*                                                                      01240000                
.*---------  CHECK STATEMENT SEQUENCE  -------------------------------* 01250000                
.*                                                                      01260000                
       AIF   (&SEQ EQ '1').SEQOK       . SKIP IF GOOD SEQUENCE          01270000                
.*                                                                      01280000                
*!050E $EFAC STATEMENT OUT OF SEQUENCE -- OR PRECEDING STATEMENT ERROR  01290000                
&TERR  SETB  1                                                          01300000                
&FDPF  SETB  0                         . ERROR--MAKE NULL PREVIOUS SPEC 01310000                
&FDME  SETB  0                         . ERROR--MAKE NULL PREVIOUS SPEC 01320000                
&FPGC  SETB  0                         . ERROR--MAKE NULL PREVIOUS SPEC 01330000                
&FSHR  SETB  0                         . ERROR--MAKE NULL PREVIOUS SPEC 01340000                
&FSYM  SETB  0                         . ERROR--MAKE NULL PREVIOUS SPEC 01350000                
&FDFF  SETB  0                         . ERROR--MAKE NULL PREVIOUS SPEC 01360000                
&FRUF  SETB  0                         . ERROR--MAKE NULL PREVIOUS SPEC 01370000                
&X1DME SETC  ''                        . ERROR--MAKE NULL PREVIOUS SPEC 01380000                
&X2DME SETC  ''                        . ERROR--MAKE NULL PREVIOUS SPEC 01390000                
.*                                                                      01400000                
.SEQOK ANOP                                                             01410000                
.*                                                                      01420000                
.*---------  MAXEUP-1/N   --------------------------------------------* 01430000                
.*                                                                      01440000                
       AIF   (T'&MAXEUP NE 'N').TKERR  ERR IF OPERAND NOT NUMERIC       01450000                
       AIF   (K'&MAXEUP GT '4').TKERR  ERR IF MORE THAN 4 DIGITS        01460000                
&NUM   SETA  &MAXEUP                   SET NUMERIC VALUE OF &MAXEUP     01470000                
       AIF   (&NUM LT '1').TKERR       . SKIP IF LESS THAN 1            01480000                
       AIF   (&NUM LE '8').TKOK        . SKIP IF IN RANGE 1 - 8         01490000                
.*                                                                      01500000                
.TKERR ANOP                            . ERROR PARAMETER                01510000                
*!055E INVALID 'MAXEUP' PARAMETER -- MUST BE DIGIT IN RANGE 1-8         01520000                
&TERR  SETB  1                         . SET TERMINATION ERROR SWITCH   01530000                
&NUTSK SETA  1                         . TREAT AS IF MAXEUP-1           01540000                
       AGO   .TKEND                                                     01550000                
.*                                                                      01560000                
.TKOK  ANOP                            . MAXEUP-1/2/3/4/5/6/7/8         01570000                
&NUTSK SETA  &MAXEUP                                                    01580000                
.*                                                                      01590000                
.TKEND ANOP                            . END OPERAND 'MAXEUP'           01600000                
.*                                                                      01610000                
.*---------  DPF-YES/NO (YES-1, NO-0)  -------------------------------* 01620000                
.*                                                                      01630000                
       AIF   (&DPF NE '*').DFOK        . SKIP IF VALID PARAMETER        01640000                
.*                                                                      01650000                
*!060E INVALID 'DPF' PARAMETER -- MUST BE YES/Y/NO/N                    01660000                
&TERR  SETB  1                         . SET TERMINATION ERROR SWITCH   01670000                
       AGO   .DFEND                    . TREAT AS IF DPF-NO             01680000                
.*                                                                      01690000                
.DFOK  ANOP                            . VALID PARAMETER                01700000                
       AIF   (&DPF EQ '0').DFEND       . SKIP IF DPF-NO                 01710000                
.*                                                                      01720000                
&FDPF  SETB  1                         . DPF-YES                        01730000                
.*                                                                      01740000                
.DFEND ANOP                            . END OPERAND 'DPF'              01750000                
.*                                                                      01760000                
.*---------  FSHARE-YES/NO (YES-1, NO-0)  ----------------------------* 01770000                
.*                                                                      01780000                
       AIF   (&FSHARE NE '*').SHOK     . SKIP IF VALID PARAMETER        01790000                
.*                                                                      01800000                
*!065E INVALID 'FSHARE' PARAMETER -- MUST BE YES/Y/NO/N                 01810000                
&TERR  SETB  1                         . SET TERMINATION ERROR SWITCH   01820000                
       AGO   .SHEND                    . TREAT AS IF FSHARE-NO          01830000                
.*                                                                      01840000                
.SHOK  ANOP                            . VALID PARAMETER                01850000                
       AIF   (&FSHARE EQ '0').SHEND    . SKIP IF FSHARE-NO              01860000                
.*                                                                      01870000                
&FSHR  SETB  1                         . FSHARE-YES                     01880000                
       AIF   (&NUTSK GT '1').SHEND     . SKIP IF MULTIPLE USER TASKS    01890000                
.*                                                                      01900000                
*!067W FSHARE-YES SPECIFIED WITH MAXEUP-1 -- TREATED AS FSHARE-NO       01910000                
&FSHR  SETB  0                         . SET AS IF FSHARE-NO            01920000                
.*                                                                      01930000                
.SHEND ANOP                            . END OPERAND 'FSHARE'           01940000                
.*                                                                      01950000                
.*---------  SYMFIL-YES/NO (YES-1, NO-0)  ----------------------------* 01960000                
.*                                                                      01970000                
       AIF   (&SYMFIL NE '*').SFOK     . SKIP IF VALID PARAMETER        01980000                
.*                                                                      01990000                
*!075E INVALID 'SYMFIL' PARAMETER -- MUST BE YES/Y/NO/N                 02000000                
&TERR  SETB  1                         . SET TERMINATION ERROR SWITCH   02010000                
       AGO   .SFEND                                                     02020000                
.*                                                                      02030000                
.SFOK  ANOP                            . VALID PARAMETER                02040000                
       AIF   (&SYMFIL EQ '0').SFEND    . SKIP IF SYMFIL-NO              02050000                
.*                                                                      02060000                
&FSYM  SETB  1                         . SYMFIL-YES                     02070000                
.*                                                                      02080000                
.SFEND ANOP                            . END OPERAND 'SYMFIL'           02090000                
.*                                                                      02100000                
.*---------  PGMCNT-YES/NO (YES-1, NO-0)  ----------------------------* 02110000                
.*                                                                      02120000                
       AIF   (&PGMCNT NE '*').PCOK     . SKIP IF VALID PARAMETER        02130000                
.*                                                                      02140000                
*!080E INVALID 'PGMCNT' PARAMETER -- MUST BE YES/Y/NO/N                 02150000                
&TERR  SETB  1                         . SET TERMINATION ERROR SWITCH   02160000                
       AGO   .PCEND                                                     02170000                
.*                                                                      02180000                
.PCOK  ANOP                            . VALID PARAMETER                02190000                
       AIF   (&PGMCNT EQ '0').PCEND    . SKIP IF PGMCNT-NO              02200000                
.*                                                                      02210000                
&FPGC  SETB  1                         . PGMCNT-YES                     02220000                
.*                                                                      02230000                
.PCEND ANOP                            . END OPERAND 'PGMCNT'           02240000                
.*                                                                      02250000                
.*---------  ESCAPE-NO/'CCCCCC'/X'XXXXXXXXXXXX'  ---------------------* 02260000                
.*                                                                      02270000                
&N     SETA  K'&ESCAPE                 . NUMBER OF CHARS WRITTEN        02280000                
       AIF   (&ESCAPE EQ 'NO').DMEND   . SKIP IF ESCAPE-NO              02290000                
       AIF   (&ESCAPE EQ 'N').DMEND    . SKIP IF ESCAPE-N               02300000                
       AIF   ('&ESCAPE'(1,2) EQ 'X''').DMX  . SKIP IF ESCAPE-HEX        02310000                
.*                                                                      02320000                
.DMC   ANOP                            . ESCAPE-'CCCCCC'                02330000                
       AIF   (&N LT '6').DMERR         . SKIP IF LT 6 CHARS -- ERROR    02340000                
.*                                                                      02350000                
&FDME  SETB  1                                                          02360000                
&X2DME SETC  '&ESCAPE'(1,4)            . GET 1ST FOUR CHARS             02370000                
&X1DME SETC  'CL6''&X2DME'             . CL6'XXXX                       02380000                
&X2DME SETC  '&ESCAPE'(5,8)            . GET REMAINING CHARACTERS       02390000                
       AIF   ('&ESCAPE'(1,1) NE '''').DM2  . SKIP IF THIS CHAR *NOT* '  02400000                
       AIF   ('&ESCAPE'(2,1) NE '''').DMERR . ERROR IF NEXT NOT QUOTE   02410000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02420000                
       AGO   .DM3                      . WAS QUOTE -- SKIP A CHARACTER  02430000                
.DM2   ANOP                                                             02440000                
       AIF   ('&ESCAPE'(2,1) NE '''').DM3  . SKIP IF THIS CHAR *NOT* '  02450000                
       AIF   ('&ESCAPE'(3,1) NE '''').DMERR . ERROR IF NEXT NOT QUOTE   02460000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02470000                
       AGO   .DM4                      . WAS QUOTE -- SKIP A CHARACTER  02480000                
.DM3   ANOP                                                             02490000                
       AIF   ('&ESCAPE'(3,1) NE '''').DM4  . SKIP IF THIS CHAR *NOT* '  02500000                
       AIF   ('&ESCAPE'(4,1) NE '''').DMERR . ERROR IF NEXT NOT QUOTE   02510000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02520000                
       AGO   .DM5                      . WAS QUOTE -- SKIP A CHARACTER  02530000                
.DM4   ANOP                                                             02540000                
       AIF   ('&ESCAPE'(4,1) NE '''').DM5  . SKIP IF THIS CHAR *NOT* '  02550000                
       AIF   ('&ESCAPE'(5,1) NE '''').DMERR . ERROR IF NEXT NOT QUOTE   02560000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02570000                
       AGO   .DM6                      . WAS QUOTE -- SKIP A CHARACTER  02580000                
.DM5   ANOP                                                             02590000                
       AIF   ('&ESCAPE'(5,1) NE '''').DM6  . SKIP IF THIS CHAR *NOT* '  02600000                
       AIF   ('&ESCAPE'(6,1) NE '''').DMERR . ERROR IF NEXT NOT QUOTE   02610000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02620000                
       AGO   .DM7                      . WAS QUOTE -- SKIP A CHARACTER  02630000                
.DM6   ANOP                                                             02640000                
       AIF   ('&ESCAPE'(6,1) NE '''').DM7  . SKIP IF THIS CHAR *NOT* '  02650000                
       AIF   ('&ESCAPE'(7,1) NE '''').DMERR . ERROR IF NEXT NOT QUOTE   02660000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02670000                
       AGO   .DM8                      . WAS QUOTE -- SKIP A CHARACTER  02680000                
.DM7   ANOP                                                             02690000                
       AIF   ('&ESCAPE'(7,1) NE '''').DM8  . SKIP IF THIS CHAR *NOT* '  02700000                
       AIF   ('&ESCAPE'(8,1) NE '''').DMERR . ERROR IF NEXT NOT QUOTE   02710000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02720000                
       AGO   .DM9                      . WAS QUOTE -- SKIP A CHARACTER  02730000                
.DM8   ANOP                                                             02740000                
       AIF   ('&ESCAPE'(8,1) NE '''').DM9  . SKIP IF THIS CHAR *NOT* '  02750000                
       AIF   ('&ESCAPE'(9,1) NE '''').DMERR . ERROR IF NEXT NOT QUOTE   02760000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02770000                
       AGO   .DM10                     . WAS QUOTE -- SKIP A CHARACTER  02780000                
.DM9   ANOP                                                             02790000                
       AIF   ('&ESCAPE'(9,1) NE '''').DM10 . SKIP IF THIS CHAR *NOT* '  02800000                
       AIF   ('&ESCAPE'(10,1) NE '''').DMERR  . ERR IF NEXT NOT QUOTE   02810000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02820000                
       AGO   .DM11                     . WAS QUOTE -- SKIP A CHARACTER  02830000                
.DM10  ANOP                                                             02840000                
       AIF   ('&ESCAPE'(10,1) NE '''').DM11 . SKIP IF THIS *NOT* '      02850000                
       AIF   ('&ESCAPE'(11,1) NE '''').DMERR  . ERR IF NEXT NOT QUOTE   02860000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02870000                
       AGO   .DMCK6                    . WAS QUOTE -- GO CHECK COUNT    02880000                
.DM11  ANOP                                                             02890000                
       AIF   ('&ESCAPE'(11,1) NE '''').DMCK6 . SKIP IF THIS NOT QUOTE   02900000                
       AIF   ('&ESCAPE'(12,1) NE '''').DMERR  . ERR IF NEXT NOT QUOTE   02910000                
&N     SETA  &N-1                      . REDUCE BY 1 FOR DOUBLE QUOTE   02920000                
.*                                                                      02930000                
.DMCK6 ANOP                            . NOW CHECK THE COUNT FOR REAL   02940000                
       AIF   (&N NE '6').DMERR         . ERROR IF NOT EXACTLY 6         02950000                
.*                                                                      02960000                
       AGO   .DMEND                                                     02970000                
.*                                                                      02980000                
.DMX   ANOP                            . ESCAPE-X'XXXXXXXXXXXX'         02990000                
       AIF   (&N NE '15').DMERR        . SKIP IF INVALID NO. CHARS      03000000                
       AIF   ('&ESCAPE'(15,1) NE '''').DMERR  . SKIP IF LAST CHAR NOT ' 03010000                
.*                                                                      03020000                
&FDME  SETB  1                                                          03030000                
&X2DME SETC  '&ESCAPE'(2,5)                                             03040000                
&X1DME SETC  'XL6&X2DME'                                                03050000                
&X2DME SETC  '&ESCAPE'(7,8)                                             03060000                
.*                                                                      03070000                
       AIF   ('&ESCAPE'(3,1) GT '9').DMERR  . ERROR IF GT 9             03080000                
       AIF   ('&ESCAPE'(3,1) LT 'A').DMERR  . ERROR IF LT 'A'           03090000                
       AIF   ('&ESCAPE'(3,1) GE '0').DX4   . OK IF IN RANGE 0-9         03100000                
       AIF   ('&ESCAPE'(3,1) GT 'F').DMERR   . ERR IF NOT IN RANGE A-F  03110000                
.DX4   ANOP                                                             03120000                
       AIF   ('&ESCAPE'(4,1) GT '9').DMERR  . ERROR IF GT 9             03130000                
       AIF   ('&ESCAPE'(4,1) LT 'A').DMERR  . ERROR IF LT 'A'           03140000                
       AIF   ('&ESCAPE'(4,1) GE '0').DX5   . OK IF IN RANGE 0-9         03150000                
       AIF   ('&ESCAPE'(4,1) GT 'F').DMERR   . ERR IF NOT IN RANGE A-F  03160000                
.DX5   ANOP                                                             03170000                
       AIF   ('&ESCAPE'(5,1) GT '9').DMERR  . ERROR IF GT 9             03180000                
       AIF   ('&ESCAPE'(5,1) LT 'A').DMERR  . ERROR IF LT 'A'           03190000                
       AIF   ('&ESCAPE'(5,1) GE '0').DX6   . OK IF IN RANGE 0-9         03200000                
       AIF   ('&ESCAPE'(5,1) GT 'F').DMERR   . ERR IF NOT IN RANGE A-F  03210000                
.DX6   ANOP                                                             03220000                
       AIF   ('&ESCAPE'(6,1) GT '9').DMERR  . ERROR IF GT 9             03230000                
       AIF   ('&ESCAPE'(6,1) LT 'A').DMERR  . ERROR IF LT 'A'           03240000                
       AIF   ('&ESCAPE'(6,1) GE '0').DX7   . OK IF IN RANGE 0-9         03250000                
       AIF   ('&ESCAPE'(6,1) GT 'F').DMERR   . ERR IF NOT IN RANGE A-F  03260000                
.DX7   ANOP                                                             03270000                
       AIF   ('&ESCAPE'(7,1) GT '9').DMERR  . ERROR IF GT 9             03280000                
       AIF   ('&ESCAPE'(7,1) LT 'A').DMERR  . ERROR IF LT 'A'           03290000                
       AIF   ('&ESCAPE'(7,1) GE '0').DX8   . OK IF IN RANGE 0-9         03300000                
       AIF   ('&ESCAPE'(7,1) GT 'F').DMERR   . ERR IF NOT IN RANGE A-F  03310000                
.DX8   ANOP                                                             03320000                
       AIF   ('&ESCAPE'(8,1) GT '9').DMERR  . ERROR IF GT 9             03330000                
       AIF   ('&ESCAPE'(8,1) LT 'A').DMERR  . ERROR IF LT 'A'           03340000                
       AIF   ('&ESCAPE'(8,1) GE '0').DX9   . OK IF IN RANGE 0-9         03350000                
       AIF   ('&ESCAPE'(8,1) GT 'F').DMERR   . ERR IF NOT IN RANGE A-F  03360000                
.DX9   ANOP                                                             03370000                
       AIF   ('&ESCAPE'(9,1) GT '9').DMERR  . ERROR IF GT 9             03380000                
       AIF   ('&ESCAPE'(9,1) LT 'A').DMERR  . ERROR IF LT 'A'           03390000                
       AIF   ('&ESCAPE'(9,1) GE '0').DX10  . OK IF IN RANGE 0-9         03400000                
       AIF   ('&ESCAPE'(9,1) GT 'F').DMERR   . ERR IF NOT IN RANGE A-F  03410000                
.DX10  ANOP                                                             03420000                
       AIF   ('&ESCAPE'(10,1) GT '9').DMERR  . ERROR IF GT 9            03430000                
       AIF   ('&ESCAPE'(10,1) LT 'A').DMERR . ERROR IF LT 'A'           03440000                
       AIF   ('&ESCAPE'(10,1) GE '0').DX11 . OK IF IN RANGE 0-9         03450000                
       AIF   ('&ESCAPE'(10,1) GT 'F').DMERR  . ERR IF NOT IN RANGE A-F  03460000                
.DX11  ANOP                                                             03470000                
       AIF   ('&ESCAPE'(11,1) GT '9').DMERR  . ERROR IF GT 9            03480000                
       AIF   ('&ESCAPE'(11,1) LT 'A').DMERR . ERROR IF LT 'A'           03490000                
       AIF   ('&ESCAPE'(11,1) GE '0').DX12 . OK IF IN RANGE 0-9         03500000                
       AIF   ('&ESCAPE'(11,1) GT 'F').DMERR  . ERR IF NOT IN RANGE A-F  03510000                
.DX12  ANOP                                                             03520000                
       AIF   ('&ESCAPE'(12,1) GT '9').DMERR  . ERROR IF GT 9            03530000                
       AIF   ('&ESCAPE'(12,1) LT 'A').DMERR . ERROR IF LT 'A'           03540000                
       AIF   ('&ESCAPE'(12,1) GE '0').DX13 . OK IF IN RANGE 0-9         03550000                
       AIF   ('&ESCAPE'(12,1) GT 'F').DMERR  . ERR IF NOT IN RANGE A-F  03560000                
.DX13  ANOP                                                             03570000                
       AIF   ('&ESCAPE'(13,1) GT '9').DMERR  . ERROR IF GT 9            03580000                
       AIF   ('&ESCAPE'(13,1) LT 'A').DMERR . ERROR IF LT 'A'           03590000                
       AIF   ('&ESCAPE'(13,1) GE '0').DX14 . OK IF IN RANGE 0-9         03600000                
       AIF   ('&ESCAPE'(13,1) GT 'F').DMERR  . ERR IF NOT IN RANGE A-F  03610000                
.DX14  ANOP                                                             03620000                
       AIF   ('&ESCAPE'(14,1) GT '9').DMERR  . ERROR IF GT 9            03630000                
       AIF   ('&ESCAPE'(14,1) LT 'A').DMERR . ERROR IF LT 'A'           03640000                
       AIF   ('&ESCAPE'(14,1) GE '0').DMEND . OK IF IN RANGE 0-9        03650000                
       AIF   ('&ESCAPE'(14,1) GT 'F').DMERR  . ERR IF NOT IN RANGE A-F  03660000                
       AGO   .DMEND                                                     03670000                
.*                                                                      03680000                
.DMERR ANOP  . INVALID PARAMETER                                        03690000                
*!085E INVALID 'ESCAPE' PARAMETER -- MUST BE '6 CHARS'/X'12 CHARS'/NO   03700000                
&TERR  SETB  1                         . SET TERMINATION ERROR SWITCH   03710000                
.*                                                                      03720000                
.DMEND ANOP                            . END OPERAND 'ESCAPE'           03730000                
.*                                                                      03740000                
.*---------  FORMAT-YES/NO (YES-1, NO-0)  ----------------------------* 03750000                
.*                                                                      03760000                
       AIF   (&FORMAT NE '*').FMOK     . SKIP IF VALID PARAMETER        03770000                
.*                                                                      03780000                
*!090E INVALID 'FORMAT' PARAMETER -- MUST BE YES/Y/NO/N                 03790000                
&TERR  SETB  1                         . SET TERMINATION ERROR SWITCH   03800000                
       AGO   .FMEND                                                     03810000                
.*                                                                      03820000                
.FMOK  ANOP                            . VALID PARAMETER                03830000                
       AIF   (&FORMAT EQ '0').FMEND    . SKIP IF FORMAT-NO              03840000                
.*                                                                      03850000                
&FDFF  SETB  1                         . FORMAT-YES                     03860000                
.*                                                                      03870000                
.FMEND ANOP                            . END OPERAND 'FORMAT'           03880000                
.*                                                                      03890000                
.*---------  PRUF-YES/NO (YES-1, NO-0)  ------------------------------* 03900000                
.*                                                                      03910000                
       AIF   (&PRUF NE '*').RFMOK      . SKIP IF VALID PARAMETER        03920000                
.*                                                                      03930000                
*!091E INVALID 'PRUF' PARAMETER ---- MUST BE YES/Y/NO/N                 03940000                
&TERR  SETB  1                         . SET TERMINATION ERROR SWITCH   03950000                
       AGO   .RFEND                                                     03960000                
.*                                                                      03970000                
.RFMOK ANOP                            . VALID PARAMETER                03980000                
       AIF   (&PRUF EQ '0').RFEND      . SKIP IF PRUF-NO                03990000                
.*                                                                      04000000                
&FRUF  SETB  1                         . PRUF-YES                       04010000                
.*                                                                      04020000                
.RFEND ANOP                            . END OPERAND 'PRUF'             04030000                
.*                                                                      04040000                
.*---------  SET STATEMENT SEQUENCE  ---------------------------------* 04050000                
.*                                                                      04060000                
&SEQ   SETA  2                         . INDICATE $EFAC PROCESSED       04070000                
.*                                                                      04080000                
       MEND                                                             04090000