&HERE    PROC  &P,2                                                     P$G00010
GET3     NAME  X'10'                                                    P$G00020
GET?     NAME  X'10'                                                    P$G00030
GET      NAME  X'10'                                                    P$G00040
PUT3     NAME  X'20'                                                    P$G00050
PUT?     NAME  X'20'                                                    P$G00060
PUT      NAME  X'20'                                                    P$G00070
PUTA     NAME  X'26'                                                    P$G00080
POINT3   NAME  X'C3'                                                    P$G00090
POINT?   NAME  X'C3'                                                    P$G00100
POINT    NAME  X'C3'                                                    P$G00110
SETP3    NAME  X'C4'                                                    P$G00120
SETP?    NAME  X'C4'                                                    P$G00130
SETP     NAME  X'C4'                                                    P$G00140
SETF3    NAME  1                                                        P$G00150
SETF     NAME  1                                                        P$G00160
SETM     NAME  X'8F'                                                    P$G00170
READE    NAME  X'12'                                                    P$G00180
READH    NAME  X'14'                                                    P$G00190
SETS3    NAME  43                                                       P$G00200
SETS?    NAME  43                                                       P$G00210
SETS     NAME  43                                                       P$G00220
&HERE    DC    0Y(0)                    SET ALIGNMENT                   P$G00230
         DO    1-('&P(1)'='')           OP1 NULL                        P$G00240
         DO    1-(('&P(1)'(1,1)='(')++('&P(1)'(1,1)>'Z'))   SYMBOL ?    P$G00250
         L     1,=A(&P(1))              LOAD R1$, FILENAME ADDRESS      P$G00260
         GOTO  .LBL02                                                   P$G00270
         ENDO                                                           P$G00280
         DO    1-(('&P(1)'='(1)')++('&P(1)'='1'))      R1 SPECIFIED ?   P$G00290
         PNOTE 'P','INVALID REGISTER NOTATION USED FOR OPERAND 1'       P$G00300
         ENDO                                                           P$G00310
         GOTO  .LBL02                                                   P$G00320
         ENDO                                                           P$G00330
         PNOTE '*','OPERAND 1 OMITTED, REG 1 ASSUMED LOADED'            P$G00340
.LBL02   LABEL                                                          P$G00350
         DO    &P(0)=X'8F'                                              P$G00360
         DO    '&P(2)'='RAND'                                           P$G00370
         OI    122(1),X'04'             SET MODE=RAND                   P$G00380
         GOTO  .LBLX                                                    P$G00390
         ENDO                                                           P$G00400
         NI    122(1),X'FB'             SET MODE=SEQ                    P$G00410
         DO    '&P(2)'='SEQ'                                            P$G00420
         GOTO  .LBLX                                                    P$G00430
         ENDO                                                           P$G00440
         PNOTE 'P','OPERAND 2 INVALID, SEQ ASSUMED'                     P$G00450
         GOTO  .LBLX                                                    P$G00460
         ENDO                                                           P$G00470
         DO    &P(0)=1                                                  P$G00480
         NI    122(1),X'1F'                                             P$G00490
         DO    '&P(2)'='OUTPUT'                                         P$G00500
         OI    122(1),X'80'                                             P$G00510
         GOTO  .LBLXX                                                   P$G00520
         ENDO                                                           P$G00530
         DO    '&P(2)'='UPDATE'                                         P$G00540
         OI    122(1),X'20'                                             P$G00550
         GOTO  .LBLXX                                                   P$G00560
         ENDO                                                           P$G00570
         OI    122(1),X'40'                                             P$G00580
         DO    '&P(2)'=''                                               P$G00590
         PNOTE '*','OPERAND 2 INCORRECTLY SPECIFIED, INPUT ASSUMED'     P$G00600
         ENDO                                                           P$G00610
         GOTO  .LBLXX                                                   P$G00620
         ENDO                                                           P$G00630
         DO    1-('&P(2)'='')           OP2 NULL                        P$G00640
         DO    &P(0)=43                                                 P$G00650
         DO    ('&P(2)'='0')++('&P(2)'='(0)')                           P$G00660
         GOTO  .LBLX                                                    P$G00670
         ENDO                                                           P$G00680
         DO    (&P(2)<1)++(&P(2)>71)                                    P$G00690
         PNOTE 'P','INVALID SUBFILE # SPECIFIED'                        P$G00700
         GOTO  .LBLX                                                    P$G00710
         ENDO                                                           P$G00720
         LA    0,&P(2)                  LOAD 0, SUBFILE #               P$G00730
         GOTO  .LBLX                                                    P$G00740
         ENDO                                                           P$G00750
         DO    1-(('&P(2)'(1,1)='(')++('&P(2)'(1,1)>'Z'))   SYMBOL ?    P$G00760
         DO    &P(0)=X'C3'                                              P$G00770
         L     0,=A(&P(2))              LOAD 0, POINTER ADDRESS         P$G00780
         GOTO  .LBLX                                                    P$G00790
         ENDO                                                           P$G00800
         DO    (&P(0)=X'C4')++(&P(0)=X'12')++(&P(0)=X'14')              P$G00810
         L     0,=A(&P(2))              LOAD 0, PARTITION ADDRESS       P$G00820
         GOTO  .LBLX                                                    P$G00830
         ENDO                                                           P$G00840
         L     0,=A(&P(2))              LOAD R0$, WORKAREA ADDRESS      P$G00850
         GOTO  .LBLX                                                    P$G00860
         ENDO                                                           P$G00870
         DO    1-(('&P(2)'='(0)')++('&P(2)'='0'))       R0 SPECIFIED    P$G00880
         PNOTE 'P','INVALID REGISTER NOTATION USED FOR OPERAND 2'       P$G00890
         ENDO                                                           P$G00900
         GOTO  .LBLX                                                    P$G00910
         ENDO                                                           P$G00920
         DO    (&P(0)=X'C3')++(&P(0)=X'C4')++(&P(0)=43)                 P$G00930
         PNOTE 'P','OPERAND 2 REQUIRED BUT OMITTED'                     P$G00940
         ENDO                                                           P$G00950
.LBLX    LABEL                                                          P$G00960
         DO    &P(0)=43                                                 P$G00970
         SVC   &P(0)                                                    P$G00980
         GOTO  .LBLXX                                                   P$G00990
         ENDO                                                           P$G01000
         MVI   49(1),&P(0)              SET FUNCTION CODE               P$G01010
         L     15,52(,1)                LOAD ADDR OF COMMON I/O         P$G01020
         BALR  14,15                    LINK TO COMMON                  P$G01030
.LBLXX   LABEL                                                          P$G01040
         END                                                            P$G01050
