*EXTERNAL SORT INITIALIZATION ROUTINES                  HEADER  FUPSRI  0001.000
         M.PGM     FUPSRI,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
*+                                                                      0026.000
*        FUNCTIONAL DESCRIPTION                                         0027.000
*                                                                       0028.000
*                                                                       0029.000
*-                                                                      0030.000
*+                                                                      0031.000
*        ENVIRONMENT                                                    0032.000
*                                                                       0033.000
*                                                                       0034.000
*                                                                       0035.000
*                                                                       0036.000
*    EXTERNAL REFERENCES:                                               0037.000
         SPACE                                                          0038.000
*        ROUTINE NAMES                                                  0039.000
         SPACE                                                          0040.000
         EXT       FUPSRT          SORT PACKAGE -- MAIN ROUTINE         0041.000
         EXT       FUPABORT        ABORT ROUTINE                        0042.000
         EXT       FUPABRT3        ABORT ROUTINE                        0043.000
         EXT       CON.IO          INTERMEDIATE I/O ROUTINE             0044.000
         EXT       X.CLOSE         CLOSE RESOURCE ROUTINE               0045.000
         EXT       X.OPEN          OPEN RESOURCE ROUTINE                0046.000
         EXT       WRAN            RANDOM ACCESS WRITE ROUTINE          0047.000
         EXT       X.ALOC          GENERAL ALLOCATE RESOURCE ROUTINE    0048.000
         EXT       X.DALC          DEALLOCATE RESOURCE ROUTINE          0049.000
         EXT       RCB.BUF         ADDRESS OF RCB              ! 32B01  0050.000
         EXT       RIDADDR         8 WORD RID ADDRESS          ! 32B01  0051.000
         EXT       BUILDRR6        BUILD A RRS ENTRY OF TYPE 6 ! 32B01  0052.000
         EXT       BUILDRCB        BUILD A RCB ENTRY           ! 32B01  0053.000
*        EXT       BUILDRR2        BUILD A RRS ENTRY OF TYPE 2 ! 32B01  0054.000
         EXT       X.RINQ          RESOURCE INQUIRY ROUTINE             0055.000
         SPACE                                                          0056.000
*        DATA TABLES  ( .GT. 2W )                                       0057.000
         SPACE                                                          0058.000
*        EXT       DD8             DATANAME DESCRIPTOR -- FILE NAME     0059.000
*        EXT       DD9             DATANAME DESCRIPTOR -- DIRECTORY NAME0060.000
*        EXT       DD10            DATANAME DESCRIPTOR -- VOLUME NAME   0061.000
         EXT       FIT0            LOGICAL FILE CODE (FILE INFO. TABLE 00062.000
         EXT       SKL             SORT KEY LIST                        0063.000
         EXT       SKLE            SORT KEY LENGTH                      0064.000
         EXT       IO3BUFF         DATA BUFFER                          0065.000
         EXT       RRS.BUF         BUFFER THAT HOLDS A RRS ENTRY        0066.000
         EXT       INQ.BUF         BUFFER THAT HOLDS RESULT OF RES. INQ.0067.000
         SPACE                                                          0068.000
*        DATA VARIABLES ( .LE. 2W )                                     0069.000
         SPACE                                                          0070.000
         EXT       STACKPTR        STACK POINTER SAVE AREA              0071.000
         EXT       IO1COUNT        # PROTOTYPES IN IO1 BUFFER/FILE      0072.000
         EXT       IO2COUNT        # PROTOTYPES IN IO2 BUFFER/FILE      0073.000
         EXT       ADR.MASK        # ADDRESS MASK                       0074.000
         EXT       BORTCODE        1W TO HOLD ABORT CODE                0075.000
         EXT       FLAGBITS        PROGRAM GLOBAL BOOLEAN BIT FLAGS     0076.000
         EXT       CNP.ACCD        CNP DEFAULT ACCESS VALUE             0077.000
         EXT       GEN.M002        ERROR MESSAGE                        0078.000
         EXT       GEN.M022        ERROR MESSAGE                        0079.000
         EXT       GEN.M024        ERROR MESSAGE                        0080.000
         EXT       GEN.M006        ERROR MESSAGE                        0081.000
         EXT       GEN.M029        ERROR MESSAGE                        0082.000
         EXT       CNP.ACC5        CNP OPTION VALUE                     0083.000
*                                                                       0084.000
*                                                                       0085.000
*                                                                       0086.000
         SPACE                                                          0087.000
*                                                                       0088.000
*    EXTERNAL DEFINITIONS                                               0089.000
*                                                                       0090.000
         SPACE                                                          0091.000
         DEF       SORTVOL         ENTRY POINT -- SORT ON VOLUME NAME   0092.000
         DEF       SORTDIR         ENTRY POINT -- SORT ON VOLUME NAME   0093.000
*                                  & DIRECTORY NAME                     0094.000
         DEF       SORTFIL         ENTRY POINT -- SORT ON VOLUME NAME,  0095.000
*                                  DIRECTORY NAME & FILE NAME           0096.000
         DEF       SORTERR         ENTRY POINT -- FOR SORT ERROR        0097.000
         DEF       EOFBLOCK        EOF BLOCK # FOR INPUT FILE FROM FAT  0098.000
*                                                                       0099.000
*                                                                       0100.000
*                                                                       0101.000
         SPACE                                                          0102.000
*                                                                       0103.000
*    SYSTEM MACRO CALLS FOR DEFINITIONS AND EQUATES                     0104.000
*                                                                       0105.000
         SPACE                                                          0106.000
         M.REQS                    REGISTER EQUATES                     0107.000
         M.FCB.                    FILE CONTROL BLOCK EQUATES           0108.000
         M.DFT.                    FILE ASSIGNMENT TABLE EQUATES        0109.000
         M.RR.TEQ                  RESOURCE REQUIREMENT SUMMARY EQUATES 0110.000
         M.AR.TEQ                  ALLOCATED RESOURCE TABLE EQUATES     0111.000
         SPACE                                                          0112.000
*                                                                       0113.000
*    LOCAL DEFINITIONS                                                  0114.000
*                                                                       0115.000
         SPACE                                                          0116.000
         SPACE                                                          0117.000
*                                                                       0118.000
*    LOCAL STORAGE                                                      0119.000
*                                                                       0120.000
         SPACE                                                          0121.000
EOFBLOCK RES       1W              EOF BLOCK # FOR INPUT FILE FROM FAT  0122.000
TMPLFC   DATAW     G'TMP'          LOGICAL FILE CODE G-STRING           0123.000
SEQPATTR DATAW     X'F0FFF0FF'     SEQUENTIAL  FILE INDICATOR           0124.000
TEMPBORT DATAW     0               TEMP STORAGE - ABORT CODE   3115.V04 0125.000
         SPACE     5                                                    0126.000
         TITLE  SORT INITIALIZATION ROUTINE                             0127.000
         SPACE                                                          0128.000
         CSECT                                                          0129.000
         SPACE                                                          0130.000
*++                                                                     0131.000
*                                                                       0132.000
*        INPUT:    R2 = ADDRESS OF FCB CONTAINING LOCICAL FILE CODE     0133.000
*                       FOR FILE TO BE SORTED.                          0134.000
*                  R3 = ADDRESS OF COUNT VARIABLE.  IE., NUMBER OF      0135.000
*                       PROTOTYPES.                                     0136.000
*                                                                       0137.000
*        OUTPUT:   (IMPLICIT) SORTED FILE                               0138.000
*                                                                       0139.000
*--                                                                     0140.000
         SPACE                                                          0141.000
SORTVOL  EQU       $               ENTRY POINT -- SORT VIA VOL          0142.000
         SPACE                                                          0143.000
         PUSH                      SAVE REGS                            0144.000
         LI        R0,PRONM.O      SORT KEY LENGTH (VOLUME NAME)        0145.000
         LI        R4,1            ONE KEY -- VOLUME NAME               0146.000
         BU        SORT.010        JOIN COMMON CODE                     0147.000
         SPACE                                                          0148.000
SORTDIR  EQU       $               ENTRY POINT -- SORT VIA VOL & DIR    0149.000
         SPACE                                                          0150.000
         PUSH                      SAVE REGS                            0151.000
         LI        R0,PRONM.O*2    SORT KEY LENGTH                      0152.000
         LI        R4,2            2 KEYS -- VOLUME & DIRECTORY NAMES   0153.000
         BU        SORT.010        JOIN COMMON CODE                     0154.000
         SPACE                                                          0155.000
SORTFIL  EQU       $               ENTRY POINT -- SORT VIA VOL, DIR &FIL0156.000
         SPACE                                                          0157.000
         PUSH                      SAVE REGS                            0158.000
         LI        R0,PRONM.O*3    COMBINED SORT KEY LENGTH             0159.000
         LI        R4,3            3 KEYS -- VOL, DIR & FILE            0160.000
         SPACE                                                          0161.000
SORT.010 EQU       $               COMMMON PART                         0162.000
         SPACE                                                          0163.000
         STW       R0,SKLE         PLANT SORT KEY LENGTH                0164.000
         STW       R4,SKL          PLANT # OF KEYS (IN SORT KEY LIST)   0165.000
         LW        R0,0W,X1        RETURN ADDRESS                       0166.000
         ANMW      R0,ADR.MASK     INITIALIZE CC'S FOR RETURN           0167.000
         STW       R0,0W,X1        PLANT BACK ON STACK                  0168.000
*                                                                       0169.000
*        FILE TO SORT IS DETERMINED BY LFC POINTED TO BY FCB ADDRESS    0170.000
*        PASSED TO THIS ROUTINE.                                        0171.000
*                                                                       0172.000
         LW        R0,0W,X2        LFC FROM FCB                         0173.000
         ANMW      R0,=X'00FFFFFF'      MASK IOCS FUNCTION CODE         0174.000
         STW       R0,FIT0         PLANT LFC IN SORT ROUTINE DATA AREA  0175.000
WRITSEC0 EQU       $                                                    0176.000
         LW        R0,SEQPATTR     SEQUENTIAL FILE INDICATOR            0177.000
         STW       R0,IO3BUFF      WORD 0  --  SECTOR ZERO OF FILE      0178.000
         LW        R2,FCB.FATA,X2  FAT ADDRESS FROM FCB                 0179.000
         ANMW      R2,=X'00FFFFFF' WANT ADDRESS PART ONLY               0180.000
         LW        R5,DFT.EOF,X2   EOF BLOCK # FROM FAT                 0181.000
         PUSHT                     ALLOCATE STACK FRAME FOR TEMP. STOR. 0182.000
         STW       R5,TEMP0,X1     SAVE EOF BLOCK # FROM FAT            0183.000
         STW       R5,EOFBLOCK     SAVE EOF BLOCK # FROM FAT            0184.000
         LA        R2,IO3BUFF      DATA BUFFER IN WHICH TO BUILD SECTOR 0185.000
*                                  ZERO INFORMATION                     0186.000
         LW        R0,0W,X3        # RECORDS WRITTEN TO FILE            0187.000
         STW       R0,1W,X2        WORD 1 - MAX. # RECORDS WRITTEN      0188.000
         SUI       R5,1            COMPENSATE FOR SECTOR 0 INFORMATION  0189.000
         MPI       R4,BLOCKSIZ*4/PROSZ.O     # PROTOTYPES PER BLOCK     0190.000
         STW       R5,2W,X2        WORD 2 - MAX. # RECS COULD BE WRITTEN0191.000
         LI        R0,PROSZ.O      PROTOTYPE SIZE IN BYTES              0192.000
         STW       R0,3W,X2        WORD 3 - RECORD SIZE IN BYTES        0193.000
         LI        R0,1            BLOCK SIZE IN SECTORS FOR EACH I/O   0194.000
         STW       R0,4W,X2        WORD 4 -    DATA TRANSFER            0195.000
         LI        R0,BLOCKSIZ*4/PROSZ.O     # RECORDS FOUND IN EACH    0196.000
         STW       R0,5W,X2        WORD 5 -  I/O DATA TRANSFER          0197.000
         LI        R0,-186W        REMAINING PART OF BLOCK TO ZERO      0198.000
         LI        R2,6W           INDEX INTO BUFFER                    0199.000
WR.010   ZMD       IO3BUFF,X2      ZERO REMAINING PART OF 192W BLOCK    0200.000
         ADI       R2,1D           INCREMENT INDEX                      0201.000
         BID       R0,WR.010       LOOP TIL DONE                        0202.000
***                                                                     0203.000
         LA        R3,WRAN         RANDOM ACCESS WRITE                  0204.000
         LW        R2,1F+2W,X1     FCB ADDRESS FROM STACK               0205.000
         ZMW       FCB.ERAA,X2     RANDOM ACCESS ADDRESS EQUAL ZERO     0206.000
         LA        R6,IO3BUFF      DATA BUFFER ADDRESS                  0207.000
         LI        R7,1            # BLOCKS TO TRANSFER                 0208.000
         BL        CON.IO          DO I/O VIA INTERMEDIATE ROUTINE(S)   0209.000
*  SO I/O PROBLEMS CAN BE HANDLED                                       0210.000
         SPACE                                                          0211.000
         TRR       R2,R5           FCB ADDRESS                          0212.000
         LH        R7,CNP.ACCD     CNP OPTION FIELD VALUE               0213.000
         BL        X.CLOSE         CLOSE THE FILE                       0214.000
         BNS       WR.020          GO FOR NO ERRORS                     0215.000
*  CLOSE FAILED -- SO ABORT                                             0216.000
         LA        R6,GEN.M022     ERROR MESSAGE                        0217.000
*  R7 CONTAINS MODULE #/ERROR # COMBO RETURN FROM SUBROUTINE            0218.000
         BL        FUPABORT        ABORT MODULE -- ENTRY POINT          0219.000
         SPACE     2                                                    0220.000
WR.020   EQU       $                                                    0221.000
         SPACE                                                          0222.000
*                                                                       0223.000
*  ALLOCATE A TEMPORARY FILE ON LFC "TMP" FOR THE SORT PACKAGE TO USE.  0224.000
*                                                                       0225.000
         SBM       TMP.F,FLAGBITS  IS FILE ALREADY ALLOCATED ON LFC "TMP0226.000
         BS        WR.026          GO FOR ALREADY ALLOCATED             0227.000
         LI        R7,3            LOAD * 3 MULTIPLIER          TMP34U2 0228.000
*        LI        R7,2            LOAD * 2 MULTIPLIER ! 32B01  TMP34U2 0229.000
         MPMW      R6,TEMP0,X1     DOUBLE SIZE OF TEMP FOR SORT! 32B01  0230.000
         BL        BUILDRCB        CREATE RCB READY FOR CREATE ! 32B01  0231.000
         BS        WR.024          BRANCH IF PROBLEMS          ! 32B01  0232.000
         LA        R2,RIDADDR      LOAD ADDRESS OF RID         ! 32B01  0233.000
         LW        R4,=X'04000000'  UNBLOCKED                  ! 32B01  0234.000
         LW        R6,=X'90000000'  UPDATE + READ ACCESS       ! 32B01  0235.000
         LW        R7,TMPLFC       LOGICAL FILE CODE G-STRING           0236.000
         BL        BUILDRR6        BUILD AN RRS ENTRY OF TYPE 6! 32B01  0237.000
*        LA        R3,RRS.BUF      BUFFER CONTAINING RRS ENTRY ! 32B01  0238.000
*        ZBM       RR.OPEN,RR.OPTS,X3   NO AUTOMATIC OPEN      ! 32B01  0239.000
*        SBM       RR.READ,RR.ACCS,X3   ALSO WANT READ ACCESS  ! 32B01  0240.000
*        LI        R5,2            DOUBLE FILE SPACE FOR 'TMP' ! 32B01  0241.000
*        MPMW      R4,TEMP0,X1                                 ! 32B01  0242.000
*        STH       R5,RR.PLEN,X3   SIZE OF TEMP. FILE TO ALLOC.! 32B01  0243.000
         STW       R7,TEMP2,X1     MAKESHIFT FCB ON STACK               0244.000
         LA        R5,TEMP2,X1     ADDRESS OF MAKESHIFT FCB             0245.000
         BL        X.ALOC          ALLOCATE THE FILE                    0246.000
         BNS       WR.050          GO FOR SUCCESSFUL ALLOCATION         0247.000
*                                                              3115.V04 0248.000
* AN ERROR HAS OCCURED WHILST ATTEMPTING TO ALLOCATE YON TEMP F3115.V04 0249.000
* THE TEMP FILE ASSOCIATED WITH 'IO1' LFC HAS ALREADY BEEN CLOS3115.V04 0250.000
* THE SORT ROUTINE.  THIS FILE MUST BE REOPENED BEFORE ATTEMPTI3115.V04 0251.000
* ANOTHER COMMAND, OR THE MIGHTY IOCS SHALL SLAY YOUR NEXT I/O 3115.V04 0252.000
* WITH 'IO1' TEMP FYLE.  SAVE THE ERROR CODE RETURNED BY X.ALOC3115.V04 0253.000
* (FOR THE ERROR MESSAGE), REOPEN 'IO1' TEMP FYLE, AND ABORT TH3115.V04N0254.000
* COMMAND                                                      3115.V04 0255.000
*                                                              3115.V04 0256.000
WR.024   EQU       $                                           ! 32B01  0257.000
         ZBM       TMP.F,FLAGBITS  CLEAR, CAUSE WE DIDNT ALL.  3115.V04 0258.000
         STW       R7,TEMPBORT     STORE ABORT CODE            3115.V04 0259.000
         LH        R7,CNP.ACC5     UPDATE, EXCLUSIVE USE       3115.V04 0260.000
         LW        R5,1F+2W,X1     FCB ADDR FROM STACK         3115.V04 0261.000
         BL        X.OPEN                                      3115.V04 0262.000
*                                                              3115.V04 0263.000
         LA        R6,GEN.M002     ADDRESS OF ERROR MESSAGE    3115.V04 0264.000
         LW        R7,TEMPBORT     GET ABORT CODE BACK IN R7   3115.V04 0265.000
         BL        FUPABORT        ABORT ROUTINE ENTRY POINT   3115.V04 0266.000
         SPACE     2                                                    0267.000
WR.026   EQU       $                                                    0268.000
         LW        R7,TMPLFC       LOGICAL FILE CODE G-STRING           0269.000
         BL        X.RINQ          RESOURCE INQUIRY                     0270.000
*                                                                       0271.000
*  R5 = 0 FOR UNASSIGNED ELSE ALLOCATION INDEX                          0272.000
*  R7 = CNP STATUS                                                      0273.000
*  "INQ.BUF" = BUFFER HOLDING RETURNED INQUIRY INFORMATION              0274.000
*                                                                       0275.000
         BNS       WR.030          GO FOR INQUIRY ACCEPTED & COMPLETE   0276.000
*  RESOURCE INQUIRY FAILED  --  ABORT                                   0277.000
         LA        R6,GEN.M024     ERROR MESSAGE                        0278.000
*  R7 CONTAINS MODULE #/ERROR # COMBO AS RETURNED FROM SERVICE SUBROUTIN0279.000
         BL        FUPABORT        ENTRY POINT IN ABORT ROUTINE         0280.000
         SPACE     2                                                    0281.000
WR.030   EQU       $                                                    0282.000
         LA        R3,INQ.BUF      BUFFER FILLED BY INQUIRY SYS. SER.   0283.000
         LW        R3,1W,X3        FAT ADDRESS                          0284.000
*                                                                       0285.000
*  NOTE:  WHEN AN ALLOCATED FILE IS EXTENDED THE EOM BLOCK IN THE FAT   0286.000
*  IS NOT UPDATED ... NEED TO LOOK IN THE ALLOCATED RESOURCE TABLE      0287.000
*  FOR THE TRUE EOM LOCATION.                                           0288.000
*                                                                       0289.000
         LW        R3,DFT.ARTA,X3  ALLOCATED RESOURCE TABLE (ART) ADDR. 0290.000
*        LW        R0,TEMP0,X1     EOF BLOCK # FROM FAT - INPUT TMP34U2 0291.000
*        ADR       R0,R0           DOUBLE SIZE                  TMP34U2 0292.000
         LI        R7,3            LOAD MULTIPLIER OF 3         TMP34U2 0293.000
         MPMW      R6,TEMP0,X1     GET SIZE NEEDED              TMP34U2 0294.000
         TRR       R7,R0           TRANSFER R6 TO R0            TMP34U2 0295.000
         CAMW      R0,AR.EOM,X3    IS CURRENT TEMP FILE ON LFC "TMP"    0296.000
*  LARGE ENOUGH ???                                                     0297.000
         BLE       WR.050          GO FOR LARGE ENOUGH                  0298.000
*                                                                       0299.000
*  FILE IS TOO SMALL.  DEALLOCATE & REALLOCATE NEW AMOUNT  --  REMEMBER 0300.000
*  WANT THE FILE TO CONTIGUOUS !                                        0301.000
*                                                                       0302.000
*        DEALLOCATE THE FILE                                            0303.000
*                                                                       0304.000
         LW        R0,TMPLFC       LOGICAL FILE CODE G-STRING           0305.000
         STW       R0,TEMP2,X1     PLANT ON STACK                       0306.000
         LA        R5,TEMP2,X1     ADDRESS OF MAKESHIFT FCB             0307.000
         BL        X.DALC          BUILD CNP & CALL DEALLOCATE SYS. SER.0308.000
         BNS       WR.040                                               0309.000
*        PROCESS DEALLOCATION ERRORS                                    0310.000
         LA        R6,GEN.M006     ERROR MESSAGE                        0311.000
*        R7 HAS MODULE #/ERROR #  RETURNED FROM SERVICE SUBROUTINE      0312.000
         BL        FUPABORT        ABORT ROUTINE                        0313.000
         SPACE     2                                                    0314.000
WR.040   EQU       $                                                    0315.000
         ZBM       TMP.F,FLAGBITS  FILE NOT ALLOCATED ON LFC "TMP"      0316.000
         BU        WR.020          GO REALLOCATE THE FILE               0317.000
         SPACE     2                                                    0318.000
WR.050   EQU       $                                                    0319.000
         BL        FUPSRT          SORT THE FILE                        0320.000
         LW        R5,1F+2W,X1     FCB ADDRESS FROM STACK               0321.000
         LH        R7,CNP.ACC5     UPDATE ACCESS, EXCLUSIVE USE         0322.000
         BL        X.OPEN          OPEN THE FILE                        0323.000
         BNS       WR.060              GO FOR SUCCESSFUL OPEN           0324.000
*        OPEN FAILED  --  ISSUE ERROR MESSAGE & ABORT                   0325.000
         LA        R6,GEN.M002     ERROR MESSAGE                        0326.000
*        R7 ALREADY CONTAINS MODULE #/ERROR #  --  AS                   0327.000
*        RETURNED FROM SERVICE SUBROUTINE                               0328.000
         BL        FUPABORT        ABORT ROUTINE                        0329.000
         SPACE     2                                                    0330.000
WR.060   EQU       $                                                    0331.000
         SPACE                                                          0332.000
         POPT                      DEALLOCATE TEMP. STOR. STACK FRAME   0333.000
         POP                       RESTORE REGS                         0334.000
         TRSW      R0              RETURN                               0335.000
         SPACE     5                                                    0336.000
SORTERR  EQU       $               ENTRY POINT FOR SORT ERROR           0337.000
         SPACE                                                          0338.000
         POPSTP                    RESTORE STACK POINTER                0339.000
         PUSH                      SAVE REGS -- PRESERVE CONTEXT        0340.000
         STW       R5,BORTCODE     SAVE ABORT CODE FROM SORT            0341.000
         LA        R7,GEN.M029     ERROR MESSAGE                        0342.000
         BL        FUPABRT3        GO TO ABORT ROUTINE                  0343.000
         SPACE     2                                                    0344.000
END      END                                                            0345.000
