*GET NEXT PROTOTYPE ROUTINE                             HEADER  FUPPRO  0001.000
         M.PGM     FUP.PRO,MPX-32,3.6.1,00                              0002.000
         SPACE                                                          0003.000
*                                                                       0004.000
************************************************************************0005.000
*                                                                      *0006.000
*                    PROPRIETARY INFORMATION                           *0007.000
*                    -----------------------                           *0008.000
*   THE INFORMATION CONTAINED HEREIN IS PROPRIETARY TO ENCORE          *0009.000
*   COMPUTER CORPORATION AND/OR ITS VENDORS, AND ITS USE, DISCLOSURE,  *0010.000
*   OR DUPLICATION IS SUBJECT TO THE RESTRICTIONS STATED IN THE        *0011.000
*   STANDARD ENCORE COMPUTER CORPORATION LICENSE TERMS AND CONDITIONS  *0012.000
*   OR THE APPROPRIATE THIRD-PARTY SUBLICENSE AGREEMENT.               *0013.000
*                                                                      *0014.000
*                       RESTRICTED RIGHTS                              *0015.000
*                       -----------------                              *0016.000
*   USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT       *0017.000
*   TO RESTRICTIONS AS SET FOURTH IN SUBDIVISION (c) (1) (ii) OF       *0018.000
*   THE RIGHTS IN TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT       *0019.000
*   252.227.7013                                                       *0020.000
************************************************************************0021.000
* (C) COPYRIGHT 1989 ENCORE COMPUTER CORPORATION                       *0022.000
*     ALL RIGHTS RESERVED                                              *0023.000
************************************************************************0024.000
*                                                                       0025.000
*    FUNCTIONAL DESCRIPTION:                                            0026.000
*                                                                       0027.000
*        THIS ROUTINE GETS THE NEXT PROTOTYPE ENTRY, AND IS             0028.000
*        CALLED FROM ANY OF THE COMMAND MODULES.                        0029.000
*                                                                       0030.000
*                                                                       0031.000
*        EXTERNAL REFERENCES                                            0032.000
*                                                                       0033.000
         SPACE                                                          0034.000
         EXT       ADR.MASK                                             0035.000
         EXT       PRONUM                                               0036.000
         EXT       PROTOTYP                                             0037.000
         EXT       PROFIELD                                             0038.000
         EXT       LOBLOCK                                              0039.000
         EXT       IO1COUNT        # PROTOTYPE ENTRY(S) FILE CONTAINS   0040.000
         EXT       IO1BUFF         DATA BUFFER FOR ENTRY(S)             0041.000
         EXT       IO1BIDX         ADDRESS OF PREV/CURR ENTRY IN BUFFER 0042.000
         EXT       IO1BLEN         ADDR OF LAST VALID ENTRY IN BUFFER   0043.000
         EXT       RIO1BUFF        ROUTINE TO READ BUFFER FULL OF ENTRYS0044.000
         EXT       IO2COUNT        # PROTO. ENTRY(S) IO2 FILE CONTAINS  0045.000
         EXT       IO2BUFF         DATA BUFFER IO2                      0046.000
         EXT       IO2BIDX         POINTER TO PREV. ENTRY IN IO2 BUFF   0047.000
         EXT       IO2BLEN         LENGTH OF IO2 BUFFER                 0048.000
         EXT       RIO2BUFF        ROUTINE TO READ IO2 BUFFER FULL OF EN0049.000
         EXT       FLAGBITS        PROGRAM GLOBAL BOOLEAN FLAG BITS     0050.000
         SPACE                                                          0051.000
*                                                                       0052.000
*    EXTERNAL DEFINITIONS:                                              0053.000
*                                                                       0054.000
         DEF       GETPROTO        ENTRY POINT - USE PROTOTYPE FILE     0055.000
         DEF       GETPROT2        ENTRY POINT - USE MEMORY RESIDENT    0056.000
         DEF       PFLAGS                                               0057.000
*                                  PROTOTYPE TABLE. (CREATE FUNCTIONS)  0058.000
         SPACE                                                          0059.000
*                                                                       0060.000
*    SYSTEM MACRO CALLS FOR REGISTER EQUATES                            0061.000
*                                                                       0062.000
         M.REQS                                                         0063.000
*                                                                       0064.000
*    LOCAL DATA DECLARATIONS                                            0065.000
*                                                                       0066.000
PFLAGS   REZ       1B              A BYTE OF FLAGS, LOCAL TO FUPPRO     0067.000
USEIO2   EQU       0                                                    0068.000
         TITLE GET PROTOTYPE ROUTINE                                    0069.000
         SPACE                                                          0070.000
         CSECT                                                          0071.000
         SPACE                                                          0072.000
* INPUTS:                                                               0073.000
*                                                                       0074.000
* OUTPUTS:                                                              0075.000
*        R2 = ADDRESS OF PROTOTYPE TABLE ENTRY                          0076.000
*                                                                       0077.000
         BOUND     1W                                                   0078.000
         SPACE                                                          0079.000
GETPROT2 EQU       $                                                    0080.000
         ANMW      R0,ADR.MASK     INITIALIZE CC'S FOR RETURN           0081.000
         PUSH                      SAVE REGS                            0082.000
         SPACE                                                          0083.000
GETP2.10 EQU       $                                                    0084.000
         SPACE                                                          0085.000
         ABM       31,PROFIELD     NEXT PROTOTYPE                       0086.000
         LW        R3,PROFIELD                                          0087.000
         CAMW      R3,PRONUM       VALID ???                            0088.000
         BGT       GETP.EN         BRANCH IF NO ENTRY(S) REMAINING      0089.000
         SUI       R3,1            ZERO BIAS                            0090.000
         MPI       R2,PROSZ.O      GET RELATIVE OFFSET TO PROTOTYPE     0091.000
         LA        R2,PROTOTYP     BASE ADDRESS OF PROTOTYPE TABLE      0092.000
         ADR       R3,R2           ABSOLUTE ADDRESS OF ENTRY            0093.000
         STW       R2,2W,X1        PLANT ON STACK FOR RETURN            0094.000
         SPACE                                                          0095.000
GETP.EX  POP                       RESTORE REGS                         0096.000
         TRSW      R0              RETURN                               0097.000
         SPACE     2                                                    0098.000
GETP.EN  EQU       $                                                    0099.000
         SBM       CC1,0W,X1       NO MORE ENTRY(S)                     0100.000
         BU        GETP.EX         GO TO MODULE EXIT POINT              0101.000
         SPACE     5                                                    0102.000
GETPROTO EQU       $                                                    0103.000
         ANMW      R0,ADR.MASK     INITIALIZE CC'S FOR RETURN           0104.000
         PUSH                      SAVE REGS                            0105.000
         TBM       USEIO2,PFLAGS   GET PROTOTYPES FROM IO2BUFF?         0106.000
         BS        GETDP.01        IF SO, BRANCH                        0107.000
         TBM       IO1USE.F,FLAGBITS    SCRATCH FILE IO1 USED ???       0108.000
         BS        GETP.005        GO FOR SCRATCH FILE USED             0109.000
         TBM       GWILDT.F,FLAGBITS  WILD CARDS USED IN ANY "TO" PATHNA0110.000
         BS        GETP.005        GO FOR USED                          0111.000
         TBM       GWILD.F,FLAGBITS     WERE ANY WILD CARDS USED ???    0112.000
         BNS       GETP2.10        GO FOR NO WILD CARDS USED  --  GET   0113.000
*                                  ENTRY(S) FROM PROTOTYPE TABLE        0114.000
         SPACE                                                          0115.000
GETP.005 EQU       $               GET ENTRY(S) FROM IO1BUFF AND        0116.000
*                                  IO1 TEMPORARY FILE IF NECCESSARY     0117.000
         LI        R0,-1                                                0118.000
         ARMW      R0,IO1COUNT     DECREMENT COUNT OF REMAINING ENTRY(S)0119.000
         BN        GETP.EN         BRANCH IF NONE REMAINING             0120.000
         LW        R2,IO1BIDX      ADDRESS OF PREVIOUS ENTRY IN BUFFER  0121.000
         ADI       R2,PROSZ.O      ADDRESS OF CURRENT ENTRY IN BUFFER   0122.000
         CAMW      R2,IO1BLEN      PAST LAST VALID ENTRY OF BUFFER ???  0123.000
         BLT       GETP.010        BRANCH IF NOT                        0124.000
*        BUFFER EXHAUSTED -- READ MORE FROM FILE                        0125.000
         BL        RIO1BUFF        GO READ ANOTHER BUFFER FULL          0126.000
         LA        R2,IO1BUFF      ADDRESS OF CURRENT ENTRY             0127.000
GETP.010 STW       R2,IO1BIDX      SAVE IT                              0128.000
         STW       R2,2W,X1        PLANT ON STACK FOR RETURN            0129.000
*                                                                       0130.000
*        GET ADDRESS OF OPTION TABLE ENTRY ASSOCIATED WITH CURRENT      0131.000
*        PROTOTYPE                                                      0132.000
*                                                                       0133.000
GETP.011 LW        R3,PROFPA.O,X2  ADDR OF PROTOTYPE TABLE              0134.000
         LW        R4,PROFOA.O,X3  ADDR OF ASSOCIATED LOCAL OPTION BLOCK0135.000
         STW       R4,PROFOA.O,X2  PLANT IN CURRENT PROTOTYPE ENTRY     0136.000
         BU        GETP.EX         GO TO MODULE EXIT POINT              0137.000
         SPACE     2                                                    0138.000
GETDP.01 EQU       $               GET DIRECTORY PROTOTYPES FROM IO2BUFF0139.000
*                                                                       0140.000
         LI        R0,-1                                                0141.000
         ARMW      R0,IO2COUNT     DECREMENT COUNT REMAINING            0142.000
         BN        GETP.EN         BRANCH IF NONE REMAINING             0143.000
         LW        R2,IO2BIDX      GET PREV. ENTRY ADDRESS              0144.000
         ADI      R2,PROSZ.O      ADJUST TO CURRENT PROTO ADDR          0145.000
         CAMW      R2,IO2BLEN         PAST BUFFER END POINT?            0146.000
         BLT       GETDP.02        IF NOT, CONTINUE                     0147.000
* BUFFER EXHAUSTED, GET ANOTHER BUFFER FULL                             0148.000
         BL        RIO2BUFF        READ A BUFFER FULL                   0149.000
         LA        R2,IO2BUFF      SET TO BUFFER BEGINNING POINT        0150.000
GETDP.02 STW       R2,IO2BIDX      STORE IN POINTER                     0151.000
         STW       R2,2W,X1        PLANT ON STACK FOR RETURN            0152.000
         LW        R0,*IO2BIDX     NEED TO ZERO OUT FILENAME?           0153.000
         BEQ       GETP.011        NO, SO BRANCH                        0154.000
         LI        R0,0                                                 0155.000
         STW       R0,0,X2         ZERO OUT...................          0156.000
         STW       R0,1W,X2         ..........................          0157.000
         STW       R0,2W,X2        ..........................           0158.000
         STW       R0,3W,X2        .........FILENAME IN PROTO           0159.000
         BU        GETP.011        JOIN COMMEN CODE                     0160.000
END      END                                                            0161.000
