         MACRO                                                          00050000
&NAME    RETURN &REG,&PARA,&RC=O                                        00100000
         LCLA  &A                                                       00150000
         AIF   ('&NAME' EQ '').GO                                       00200000
&NAME    DS    0H                                                       00250000
.GO      AIF   ('&REG' EQ '').CONTA                                     00300000
         AIF   ('&RC' EQ '(15)').SPECRT                                 00350000
.COMBACK ANOP                                                           00400000
&A       SETA  &REG(1)*4+20                                             00450000
         AIF   (&A LE 75).CONTB                                         00500000
&A       SETA  &A-64                                                    00550000
.CONTB   AIF   (N'&REG NE 2).CONTC                                      00600000
         LM    &REG(1),&REG(2),&A.(13)           RESTORE THE REGISTERS  00650000
         AGO   .CONTA                                                   00700000
.SPECRT  AIF   ('&REG(1)' NE '14' AND '&REG(1)' NE '15').COMBACK        00750000
         AIF   ('&REG(1)' EQ '14' AND N'&REG  EQ 1).COMBACK             00800000
         AIF   ('&REG(1)' EQ '15' AND N'&REG EQ 1).CONTA                00850000
         AIF   ('&REG(1)' EQ '14').SKIP                                 00900000
         AIF   ('&REG(2)' EQ '0').ZTWO                                  00950000
.LM      LM    0,&REG(2),20(13)                  RESTORE THE REGISTERS  01000000
         AGO   .CONTA                                                   01050000
.ZTWO    L     0,20(13,0)                        RESTORE REGISTER ZERO  01100000
         AGO   .CONTA                                                   01150000
.SKIP    L     14,12(13,0)                       RESTORE REGISTER 14    01200000
         AIF   ('&REG(2)' EQ '15').CONTA                                01250000
         AIF   ('&REG(2)' EQ '0').ZTWO                                  01300000
         AGO   .LM                                                      01350000
.CONTC   AIF   (N'&REG NE 1).ERROR1                                     01400000
         L     &REG(1),&A.(13,0)                 RESTORE REGISTER       01450000
.CONTA   AIF   ('&PARA' EQ '').CONTD                                    01500000
         AIF   ('&PARA' NE 'T').ERROR2                                  01550000
         MVI   12(13),X'FF'                      SET RETURN INDICATION  01600000
.CONTD   AIF   ('&RC' EQ 'O').CONTE                                     01650000
         AIF   ('&RC'(1,1) EQ '(').ISAREG                               01700000
         LA    15,&RC.(0,0)                      LOAD RETURN CODE       01750000
         AGO   .CONTE                                                   01800000
.ISAREG  AIF   ('&RC(1)' EQ '15').CONTE                                 01850000
         IHBERMAC 61,,&RC                                               01900000
         MEXIT                                                          01950000
.CONTE   BR    14                                RETURN                 02000000
         AGO   .END                                                     02050000
.ERROR1  IHBERMAC 36,,&REG                                              02100000
         MEXIT                                                          02150000
.ERROR2  IHBERMAC 37,,&PARA                                             02200000
.END     MEND                                                           02250000
