&LB1     PROC  &P,4                                                     CNT00010
CNTRL3   NAME  0        J. BILL OS/3 DM CONTROL MACRO                   CNT00020
CNTRL    NAME  0                                                        CNT00030
.*       CNTRL3   9/11                                                  CNT00035
.*       EXEC93  ISO.08
         LCL   &CC1                                                     CNT00040
         LCL   &S1                                                      CNT00050
         LCL   &S2                                                      CNT00060
         LCL   &S3                                                      CNT00070
&LB1     DS    0H                                                       CNT00080
         DO    ('&P(1)'='(1)'=0)**('&P(1)'='1'=0)                       CNT00090
&CC1     SET   '&P(1)'(1,1)                                             CNT00100
         DO    ('&P(1)'='')++('&P(1)'>'Z999999')++((('&CC1'<'A')++('&CCXCNT00110
               1'>'Z'))**(('&CC1'='?'=0)**('&CC1'='$'=0)**('&CC1'='#'=0XCNT00120
               )**('&CC1'='@'=0)))                                      CNT00130
         PNOTE 'P','FILENAME SPECIFICATION ERROR'                       CNT00140
         ENDO                                                           CNT00150
         L     1,=A(&P(1))                                              CNT00160
         ENDO                                                           CNT00170
         L     15,52(,1)                                                CNT00180
         DO    '&P(2)'='SEEK'                                           CNT00190
         MVI   49(1),X'41'              SET CNTRL,SEEK FUNCTION CODE    CNT00200
         GOTO  .LEND                                                    CNT00210
         ENDO                                                           CNT00220
&S1      SET   7*('&P(2)'='REW')                                        CNT00225
         DO    &S1=0
&S1      SET   15*('&P(2)'='RUN')
         ENDO
         DO    &S1=0
&S1      SET   23*('&P(2)'='ERG')
         ENDO
         DO    &S1=0
&S1      SET   31*('&P(2)'='WTM')
         ENDO
         DO    &S1=0
&S1      SET   39*('&P(2)'='BSR')
         ENDO
         DO    &S1=0
&S1      SET   47*('&P(2)'='BSF')
         ENDO
         DO    &S1=0
&S1      SET   55*('&P(2)'='FSR')
         ENDO
         DO    &S1=0
&S1      SET   63*('&P(2)'='FSF')
         ENDO
         DO    &S1=0=0
         MVI   49(1),X'40'         SET FUNCTION CODE
         MVI   60(1),&S1           SET BCW CODE
         GOTO  .LEND
         ENDO
         DO    '&P(2)'='SS'        SELECT STACKER FOR 0604 PUNCH        CNT00230
         MVI   49(1),X'4A'                                              CNT00240
         DO    '&P(3)'='1'              NORMAL STACKER?                 CNT00250
         SR    0,0                                                      CNT00260
         GOTO  .LEND                                                    CNT00270
         ENDO                                                           CNT00280
         DO    ('&P(3)'='')++('&P(3)'='2')  SELECT STACKER?             CNT00290
&S1      SET   0                                                        CNT00300
&S2      SET   X'FF'                                                    CNT00310
         GOTO  .LE                                                      CNT00320
         ENDO                                                           CNT00330
         PNOTE 'P','M NOT BLANK,1 OR 2 FOR STACKER SELECTION. M SET TO #CNT00340
               1 (NORMAL STACKER).'                                     CNT00350
         SR    0,0                                                      CNT00360
         GOTO  .LEND                                                    CNT00370
         ENDO                                                           CNT00380
         DO    '&P(2)'='SP'                                             CNT00390
         MVI   49(1),X'4B'                                              CNT00400
&S1      SET   0                                                        CNT00410
         DO    ('&P(3)'='')++('&P(3)'='0')                              CNT00420
         GOTO  .L3                                                      CNT00430
         ENDO                                                           CNT00440
         DO      (&P(3)<0)++(&P(3)>15)                                  CNT00450
         PNOTE 'P','M FOR SP NOT BLANK OR 0-15'                         CNT00460
         GOTO  .L3                                                      CNT00470
         ENDO                                                           CNT00480
&S1      SET   &P(3)                                                    CNT00490
         GOTO  .L3                                                      CNT00500
         ENDO                                                           CNT00510
         GOTO  .L4                                                      CNT00520
.L3      LABEL                                                          CNT00530
         DO    '&P(4)'=''                                               CNT00540
&S2      SET   X'40'                                                    CNT00550
         GOTO  .LE                                                      CNT00560
         ENDO                                                           CNT00570
         DO    &P(4)=0                                                  CNT00580
&S2      SET   0                                                        CNT00590
         GOTO  .LE                                                      CNT00600
         ENDO                                                           CNT00610
         DO    (&P(4)>0)**(&P(4)<16)                                    CNT00620
&S2      SET   &P(4)                                                    CNT00630
         GOTO  .LE                                                      CNT00640
         ENDO                                                           CNT00650
&S2      SET   X'40'                                                    CNT00660
         PNOTE 'P','N FOR SP NOT BLANK OR 0-15'                         CNT00670
         GOTO  .LE                                                      CNT00680
.L4      LABEL                                                          CNT00690
         DO    '&P(2)'='SK'=0                                           CNT00700
&S1      SET   0                                                        CNT00710
&S2      SET   X'40'                                                    CNT00720
         PNOTE 'P','POSITIONAL PARAMETER TWO INVALID.'                  CNT00730
         MVI   49(1),X'00'                                              CNT00740
         GOTO  .LE                                                      CNT00750
         ENDO                                                           CNT00760
         MVI   49(1),X'4C'                                              CNT00770
         DO    '&P(3)'=''                                               CNT00780
&S1      SET   0                                                        CNT00790
         GOTO  .L5                                                      CNT00800
         ENDO                                                           CNT00810
         DO    (&P(3)>0)**(&P(3)<16)                                    CNT00820
&S1      SET   &P(3)                                                    CNT00830
         GOTO  .L5                                                      CNT00840
         ENDO                                                           CNT00850
.B5      LABEL                                                          CNT00860
&S1      SET   0                                                        CNT00870
         PNOTE 'P','M FOR SK NOT BLANK OR 1-15'                         CNT00880
.L5      LABEL                                                          CNT00890
         DO    '&P(4)'=''                                               CNT00900
&S2      SET   X'40'                                                    CNT00910
         GOTO  .LE                                                      CNT00920
         ENDO                                                           CNT00930
         DO    (&P(4)<1)++(&P(4)>15)                                    CNT00940
&S2      SET   X'40'                                                    CNT00950
         PNOTE 'P','N FOR SK NOT BLANK OR 1-15'                         CNT00960
         GOTO  .LE                                                      CNT00970
         ENDO                                                           CNT00980
.B7      LABEL                                                          CNT00990
&S2      SET   &P(4)                                                    CNT01000
.LE      LABEL                                                          CNT01010
         LA    0,(&S1*256)++&S2.(0,0)                                   CNT01020
.LEND    LABEL                                                          CNT01030
         BALR  14,15                                                    CNT01040
         END                                                            CNT01050
