&HERE    PROC  &P,3                                                     WRI00010
WRITE3   NAME  0                                                        WRI00020
WRITE    NAME  0                                                        WRI00030
ADD      NAME  1                                                        WRI00040
UPDT     NAME  2                                                        WRI00050
         LCL   &A                                                       WRI00060
&HERE    DC    0Y(0)                    SET ALIGNMENT                   WRI00070
         DO    1-('&P(1)'='')           OP1 NULL                        WRI00080
         DO    1-(('&P(1)'(1,1)='(')++('&P(1)'(1,1)>'Z'))   SYMBOL ?    WRI00090
         L     1,=A(&P(1))         LOAD R1,FILENAME ADDRESS             WRI00100
         GOTO  .LBL01                                                   WRI00110
         ENDO                                                           WRI00120
         DO    1-(('&P(1)'='(1)')++('&P(1)'='1'))       R1 SPECIFIED    WRI00130
         PNOTE 'P','INVALID REGISTER NOTATION USED FOR OPERAND 1'       WRI00140
         ENDO                                                           WRI00150
         GOTO  .LBL01                                                   WRI00160
         ENDO                                                           WRI00170
         PNOTE '*','OPERAND 1 OMITTED, REG 1 ASSUMED LOADED'            WRI00180
.LBL01   LABEL                                                          WRI00190
         DO    &P(0)=1                                                  WRI00200
&A       SET   X'26'                                                    WRI00210
         GOTO  .LBL02                                                   WRI00220
         ENDO                                                           WRI00230
         DO    &P(0)=2                                                  WRI00240
&A       SET   X'22'                                                    WRI00250
         GOTO  .LBL02                                                   WRI00260
         ENDO                                                           WRI00270
         DO    '&P(2)'=''               OP2 NULL                        WRI00280
         PNOTE '*','OPERAND 2 OMITTED, ID ASSUMED'                      WRI00290
&A       SET   X'21'                    SET FUNCTION CODE WRITE,ID      WRI00300
         GOTO  .LBL02                                                   WRI00310
         ENDO                                                           WRI00320
         DO    '&P(2)'='ID'             OP2 ID                          WRI00330
&A       SET   X'21'                    SET WRITE,ID FUNCTION CODE      WRI00340
         GOTO  .LBL02                                                   WRI00350
         ENDO                                                           WRI00360
         DO    '&P(2)'='KEY'            OP2 KEY                         WRI00370
&A       SET   X'22'                    SET WRITE,KEY FUNCTION CODE     WRI00380
         GOTO  .LBL02                                                   WRI00390
         ENDO                                                           WRI00400
         DO    '&P(2)'='NEWKEY'         OP2 NEWKEY                      WRI00410
&A       SET   X'26'                    SET WRITE,NEWKEY FUNCTION CODE  WRI00420
         GOTO  .LBL02                                                   WRI00430
         ENDO                                                           WRI00440
         DO    '&P(2)'='AFTER'          OP2 AFTER                       WRI00450
&A       SET   X'23'                    SET WRITE,AFTER FUNCTION CODE   WRI00460
         DO    1-('&P(3)'='')           OP3 NULL                        WRI00470
         DO    '&P(3)'='EOF'            OP3 EOF                         WRI00480
         GOTO  .LBL03                                                   WRI00490
         ENDO                                                           WRI00500
         PNOTE '*','OPERAND 3 INVALID, EOF ASSUMED'                     WRI00510
.LBL03   LABEL                                                          WRI00520
&A       SET   X'24'                    SET WRITE,AFTER,EOF FUNCT CODE  WRI00530
         ENDO                                                           WRI00540
         GOTO  .LBL02                                                   WRI00550
         ENDO                                                           WRI00560
         DO    '&P(2)'='RZERO'          OP2 RZERO                       WRI00570
&A       SET   X'25'                    SET WRITE,RZERO FUNCTION CODE   WRI00580
         GOTO  .LBL02                                                   WRI00590
         ENDO                                                           WRI00600
         PNOTE '*','OPERAND 2 INVALID, ID ASSUMED'                      WRI00610
&A       SET   X'21'                    SET WRITE,ID FUNCTION CODE      WRI00620
.LBL02   LABEL                                                          WRI00630
         MVI   49(1),&A                 SET FUNCTION CODE               WRI00640
         L     15,52(,1)                LOAD ADDR OF COMMON I/O         WRI00650
         BALR  14,15                    LINK TO COMMON                  WRI00660
         END                                                            WRI00670
