&HERE    PROC  &P,2                                                     REA00010
READ3    NAME                                                           REA00020
READ     NAME                                                           REA00030
         LCL   &A                                                       REA00040
&HERE    DC    0Y(0)                    SET ALIGNMENT                   REA00050
         DO    1-('&P(1)'='')           OP1 NULL                        REA00060
         DO    1-(('&P(1)'(1,1)='(')++('&P(1)'(1,1)>'Z'))   SYMBOL ?    REA00070
         L     1,=A(&P(1))         LOAD R1,FILENAME ADDRESS             REA00080
         GOTO  .LBL01                                                   REA00090
         ENDO                                                           REA00100
         DO    1-(('&P(1)'='(1)')++('&P(1)'='1'))       R1 SPECIFIED    REA00110
         PNOTE 'P','INVALID REGISTER NOTATION USED FOR OPERAND 1'       REA00120
         ENDO                                                           REA00130
         GOTO  .LBL01                                                   REA00140
         ENDO                                                           REA00150
         PNOTE '*','OPERAND 1 OMITTED, REG 1 ASSUMED LOADED'            REA00160
.LBL01   LABEL                                                          REA00170
         DO    '&P(2)'=''               OP2 NULL                        REA00180
         PNOTE '*','OPERAND 2 OMITTED, ID ASSUMED'                      REA00190
&A       SET   X'11'                    SET READ,ID FUNCTION CODE       REA00200
         GOTO  .LBL02                                                   REA00210
         ENDO                                                           REA00220
         DO    '&P(2)'='ID'             OP2 ID                          REA00230
&A       SET   X'11'                    SET READ,ID FUNCTION CODE       REA00240
         GOTO  .LBL02                                                   REA00250
         ENDO                                                           REA00260
         DO    '&P(2)'='KEY'            OP2 KEY                         REA00270
&A       SET   X'12'                    SET READ,KEY FUNCTION CODE      REA00280
         GOTO  .LBL02                                                   REA00290
         ENDO                                                           REA00300
         PNOTE '*','OPERAND 2 INVALID, ID ASSUMED'                      REA00310
&A       SET   X'11'                    SET READ,ID FUNCTION CODE       REA00320
.LBL02   LABEL                                                          REA00330
         MVI   49(1),&A                 SET FUNCTION CODE               REA00340
         L     15,52(,1)                LOAD ADDR OF COMMON I/O         REA00350
         BALR  14,15                    LINK TO COMMON                  REA00360
         END                                                            REA00370
