&TAG     PROC  &P,2                                                     CAL00010
CALL     NAME  0                                                        CAL00020
VCALL    NAME  1                                                        CAL00030
.*                                                                      CAL00040
                                                           DO 0         CAL00050
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  *  CAL00060
*                                                                    *  CAL00070
*   THE FOLLOWING PROGRAMS ARE THE SOLE PROPERTY OF SPERRY           *  CAL00080
*                                                                    *  CAL00090
* UNIVAC CONTAINING ITS PROPRIETARY, CONFIDENTIAL INFORMATION        *  CAL00100
*                                                                    *  CAL00110
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  *  CAL00120
                                                           ENDO         CAL00130
         LCL   &P1,&P2,&DISP                                            CAL00140
         LCL   &PRLABEL                                                 CAL00150
         LCL   &X                                                       CAL00160
&PRLABEL SET   '&TAG.        '(1,8)                                     CAL00170
&PRLABEL           DS    0H                                             CAL00180
.*                                                                      CAL00190
.********************************************************************** CAL00200
.*                                                                    * CAL00210
.*                                                                    * CAL00220
.*       PROC TO GENERATE SUBROUTINE CALLING INSTRUCTIONS.            * CAL00230
.*                                                                    * CAL00240
.*       REG 1:  CONTAINS THE PARAMETER ADDRESS LIST ADDRESS          * CAL00250
.*       REG 14:  CONTAINS THE SUBROUTINE RETURN ADDRESS              * CAL00260
.*       REG 15:  CONTAINS THE SUBROUTINE ENTRY POINT ADDRESS         * CAL00270
.*                                                                    * CAL00280
.********************************************************************** CAL00290
.*                                                                      CAL00300
&P1      SET   (('&P(1)'='(15)')++('&P(1)'='15'))=0                     CAL00310
&P2      SET   (('&P(2)'='(1)')++('&P(2)'='')++('&P(2)'='1'))=0         CAL00320
.*                                                                      CAL00330
         DO    &P2                                                      CAL00340
                   CNOP  0,4                                            CAL00350
         DO    '&P(2)'(1,1)='('                                         CAL00360
&DISP    SET   4*N'&P(2)+4+4*&P1                                        CAL00370
                   BAL   1,*+&DISP                                      CAL00380
&C       DO    N'&P(2)-1                                                CAL00390
                   DC    A(&P(2,&C))                                    CAL00400
         ENDO                                                           CAL00410
                   DC    X'80'                                          CAL00420
&X       SET   N'&P(2)                                                  CAL00430
         DC    AL3(&P(2,&X))                                            CAL00440
         ENDO                                                           CAL00450
         DO    '&P(2)'(1,1)='('=0                                       CAL00460
&DISP    SET   8+4*&P1                                                  CAL00470
         L     1,*+8                                                    CAL00475
         B     *+&DISP                                                  CAL00480
                   DC    A(&P(2))                                       CAL00490
         ENDO                                                           CAL00500
         ENDO                                                           CAL00510
.*                                                                      CAL00520
         DO    &P1                                                      CAL00530
         DO    &P2=0                                                    CAL00540
                   CNOP  0,4                                            CAL00550
                   B     *+8                                            CAL00560
         ENDO                                                           CAL00570
         DO    ('&P(1)'(1,1)='(')++('&P(1)'='')                         CAL00580
         PNOTE 'P','PARAMETER 1 IS INCORRECT'                           CAL00590
                   DC    A(0)           PATCH - LOAD ADDR INTO R15      CAL00600
         GOTO  .CALL1                                                   CAL00610
         ENDO                                                           CAL00620
         DO    &P(0)=0                                                  CAL00630
         EXTRN &P(1)                                                    CAL00640
                   DC    A(&P(1))                                       CAL00650
         ENDO                                                           CAL00660
         DO    &P(0)                                                    CAL00670
                   DC    V(&P(1))                                       CAL00680
         ENDO                                                           CAL00690
.CALL1   LABEL                                                          CAL00700
                   L     15,*-4                                         CAL00710
         ENDO                                                           CAL00720
                   BALR  14,15                                          CAL00730
         END                                                            CAL00740
