|
|
DataMuseum.dkPresents historical artifacts from the history of: IBM System/3 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about IBM System/3 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 17272 (0x4378)
Types: s3xseg
Names: »S$EFAC«
└─⟦827b5bd03⟧ Bits:30009184 5702-sc1.V16.ccp
└─⟦f17e99db6⟧
└─⟦this⟧ »S$EFAC«
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