*ABORT HANDLING ROUTINES                                HEADER  FUPABT  0001.000
************************************************************************0002.000
*                                                                      *0003.000
*                    PROPRIETARY INFORMATION                           *0004.000
*                    -----------------------                           *0005.000
*   THE INFORMATION CONTAINED HEREIN IS PROPRIETARY TO ENCORE          *0006.000
*   COMPUTER CORPORATION AND/OR ITS VENDORS, AND ITS USE, DISCLOSURE,  *0007.000
*   OR DUPLICATION IS SUBJECT TO THE RESTRICTIONS STATED IN THE        *0008.000
*   STANDARD ENCORE COMPUTER CORPORATION LICENSE TERMS AND CONDITIONS  *0009.000
*   OR THE APPROPRIATE THIRD-PARTY SUBLICENSE AGREEMENT.               *0010.000
*                                                                      *0011.000
*                       RESTRICTED RIGHTS                              *0012.000
*                       -----------------                              *0013.000
*   USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT IS SUBJECT       *0014.000
*   TO RESTRICTIONS AS SET FOURTH IN SUBDIVISION (c) (1) (ii) OF       *0015.000
*   THE RIGHTS IN TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT       *0016.000
*   252.227.7013                                                       *0017.000
************************************************************************0018.000
* (C) COPYRIGHT 1989 ENCORE COMPUTER CORPORATION                       *0019.000
*     ALL RIGHTS RESERVED                                              *0020.000
************************************************************************0021.000
         M.PGM     FUP.ABORT,MPX-32,3.6.1,00                            0022.000
         SPACE                                                          0023.000
         DSECT                                                          0024.000
         SPACE                                                          0025.000
         M.VRSION                  VERSION OF MACRO LIBRARY USED        0026.000
         SPACE                                                          0027.000
*                                                                       0028.000
*-                                                                      0029.000
*+                                                                      0030.000
*        FUNCTIONAL DESCRIPTION                                         0031.000
*                                                                       0032.000
*        THIS ROUTINE HANDLES THE ABORTING OF FUP.  A (ERROR)           0033.000
*        MESSAGE IS PRINTED ALONG WITH ANY ABORT CODE THAT MIGHT        0034.000
*        HAVE BEEN PASSED ALONG FROM THE ORIGINATING ROUTINE/MODULE.    0035.000
*                                                                       0036.000
*                                                                       0037.000
*    EXTERNAL REFERENCES:                                               0038.000
         SPACE                                                          0039.000
*        ROUTINE NAMES                                                  0040.000
         SPACE                                                          0041.000
         EXT       ERROR           ROUTINE TO PRINT ERROR MESSAGES      0042.000
         EXT       ERROR2          ROUTNE TO PRINT A FIXED ERROR MESS.  0043.000
         EXT       ERROR3          PRINT ERROR MESSAGE & MODULE/ERROR # 0044.000
         EXT       ERROR4          PRINT ERROR MESSAGE                  0045.000
         EXT       ERRORIO         FOR I/O RELATED ERROR(S)             0046.000
         EXT       FUP.000         MAIN DISPATCHER                      0047.000
         EXT       FLAGBITS                                             0048.000
         SPACE                                                          0049.000
*        DATA TABLES  ( .GT. 2W )                                       0050.000
         SPACE                                                          0051.000
         SPACE                                                          0052.000
*        DATA VARIABLES ( .LE. 2W )                                     0053.000
         SPACE                                                          0054.000
         EXT       TOPOSTK         TOP OF STACK                         0055.000
         EXT       ADR.MASK        MASK CC'S LEAVING ADDRESS            0056.000
         EXT       STACKPTR        STACK POINTER SAVE AREA              0057.000
         EXT       BLANKS          DOUBLE WORD OF SPACES                0058.000
         EXT       BORTCODE        4 CHARACTER ABORT CODE               0059.000
         EXT       FUPABC1         GENERAL ABORT CODE                   0060.000
*                                                                       0061.000
*                                                                       0062.000
*                                                                       0063.000
         SPACE                                                          0064.000
*                                                                       0065.000
*    EXTERNAL DEFINITIONS                                               0066.000
*                                                                       0067.000
         SPACE                                                          0068.000
         DEF       FUPABORT        ENTRY POINT - THIS ROUTINE           0069.000
         DEF       FUPABRT2        ENTRY POINT - I/O RELATED PROBLEMS   0070.000
         DEF       FUPABRT3        ENTRY POINT                          0071.000
         DEF       FUPABRT4        ENTRY POINT                          0072.000
         DEF       FUPABRT5        ENTRY POINT                          0073.000
         DEF       ABORTCOM        ENTRY POINT                          0074.000
         DEF       ABORTNOM        ABORT WITH NO MESSAGE OUTPUT         0075.000
         SPACE                                                          0076.000
*                                                                       0077.000
*    SYSTEM MACRO CALLS FOR DEFINITIONS AND EQUATES                     0078.000
*                                                                       0079.000
         SPACE                                                          0080.000
         M.EQUS                    REGISTER/SYSTEM EQUATES              0081.000
         SPACE                                                          0082.000
*                                                                       0083.000
*    LOCAL DEFINITIONS                                                  0084.000
*                                                                       0085.000
         SPACE                                                          0086.000
*                                                                       0087.000
*    LOCAL STORAGE                                                      0088.000
*                                                                       0089.000
         BOUND     1W                                                   0090.000
         DATAB     C'(C) COPYRIGHT 1989 ENCORE COMPUTER CORPORATION'    0091.000
         DATAB     C' ALL RIGHTS RESERVED'                              0092.000
         BOUND     1W                                                   0093.000
         SPACE                                                          0094.000
BLNKOUT  DATAW     C'    '                                              0095.000
CHCKABRT DATAH     C'VO',0                                              0096.000
         TITLE     FUPABRT5  --  DIRECTORY ALLOCATION/OPEN FAILURE      0097.000
         SPACE                                                          0098.000
         CSECT                                                          0099.000
         SPACE                                                          0100.000
*++                                                                     0101.000
*                                                                       0102.000
* FUPABRT5  --  COME HERE FOR UNRECOVERABLE ERROR(S) -- PRINT           0103.000
*               ERROR MESSAGE AND ABORT.                                0104.000
*               ERROR IS DIRECTORY ALLOCATION/OPEN FAILURE.             0105.000
*        INPUT:    R2 = ADDRESS OF PROTOTYPE ENTRY                      0106.000
*                  R6 = ADDRESS OF ERROR MESSAGE                        0107.000
*                  R7 = MODULE #/ERROR # COMBO                          0108.000
*                                                                       0109.000
*        OUTPUT:   NONE                                                 0110.000
*                                                                       0111.000
*--                                                                     0112.000
         SPACE                                                          0113.000
FUPABRT5 EQU       $                                                    0114.000
         SPACE                                                          0115.000
         PUSH                      SAV REGS -- PRESERVE CONTEXT         0116.000
*                                                                       0117.000
*        PRINT THE ERROR MESSAGE                                        0118.000
*                                                                       0119.000
         BL        ERROR4                                               0120.000
         BU        ABORTCOM        JOIN COMMON CODE                     0121.000
         TITLE     FUPABRT3  --  GENERAL 1 MESSAGE ERROR                0122.000
*++                                                                     0123.000
*                                                                       0124.000
* FUPABRT3  --  COME HERE FOR UNRECOVERABLE ERROR(S) -- PRINT           0125.000
*               ERROR MESSAGE AND ABORT.                                0126.000
*        INPUT:    R7 = ADDRESS OF ERROR MESSAGE                        0127.000
*                                                                       0128.000
*        OUTPUT:   NONE                                                 0129.000
*                                                                       0130.000
*--                                                                     0131.000
         SPACE                                                          0132.000
FUPABRT3 EQU       $                                                    0133.000
         SPACE                                                          0134.000
         PUSH                      SAV REGS -- PRESERVE CONTEXT         0135.000
*                                                                       0136.000
*        PRINT THE ERROR MESSAGE                                        0137.000
*                                                                       0138.000
         BL        ERROR2                                               0139.000
         BU        ABORTCOM        JOIN COMMON CODE                     0140.000
         TITLE     ABORTNOM  --  ABORT WITH NO MESSAGE OUTPUT           0141.000
*++                                                                     0142.000
*                                                                       0143.000
* ABORTNOM  --  COME HERE FOR UNRECOVERABLE ERROR(S) ON THE COMMAND     0144.000
*               OUTPUT DEVICE/FILE.  IE., EOF/EOM, I/O ERRORS & OPEN    0145.000
*               FAILURE                                                 0146.000
*        INPUT:    (IMPLICIT)  ABORT CODE IN LOCATION "BORTCODE"        0147.000
*                                                                       0148.000
*        OUTPUT:   NONE                                                 0149.000
*                                                                       0150.000
*--                                                                     0151.000
         SPACE                                                          0152.000
ABORTNOM EQU       $                                                    0153.000
         SPACE                                                          0154.000
         PUSH                      SAV REGS -- PRESERVE CONTEXT         0155.000
         BU        ABORTCOM        JOIN COMMON CODE                     0156.000
         TITLE     FUPABRT4  --  INTERNAL ERROR                         0157.000
*++                                                                     0158.000
*                                                                       0159.000
* FUPABRT4  --  COME HERE FOR UNRECOVERABLE ERROR(S) -- PRINT           0160.000
*               ERROR MESSAGE AND ABORT.                                0161.000
*        INPUT:    R7 = ADDRESS OF ERROR MESSAGE                        0162.000
*                                                                       0163.000
*        OUTPUT:   NONE                                                 0164.000
*                                                                       0165.000
*--                                                                     0166.000
         SPACE                                                          0167.000
FUPABRT4 EQU       $                                                    0168.000
         SPACE                                                          0169.000
         PUSH                      SAV REGS -- PRESERVE CONTEXT         0170.000
*                                                                       0171.000
*        PRINT THE ERROR MESSAGE                                        0172.000
*                                                                       0173.000
         BL        ERROR                                                0174.000
         BU        ABORTCOM        JOIN COMMON CODE                     0175.000
         TITLE     FUPABRT2  --  FATAL I/O ERROR(S)                     0176.000
*++                                                                     0177.000
*                                                                       0178.000
* FUPABRT2  --  COME HERE FOR FATAL I/O ERROR(S), INCLUDING             0179.000
*               UNEXPECTED END-OF-FILE AND END-OF-MEDIUM.               0180.000
*               PRINT MESSAGE & ABORT.  ALSO CAN RECOVER AND TRANSFER   0181.000
*               CONTROL BACK TO THE MAIN MODULE (FUPMAN) TO PROCESS     0182.000
*               THE NEXT COMMAND.                                       0183.000
*        INPUT:    R2 = ADDRESS OF FCB                                  0184.000
*                  R6 = ADDRESS OF ERROR MESSAGE                        0185.000
*                                                                       0186.000
*        OUTPUT:   NONE                                                 0187.000
*                                                                       0188.000
*--                                                                     0189.000
         SPACE                                                          0190.000
FUPABRT2 EQU       $                                                    0191.000
         SPACE                                                          0192.000
         PUSH                      SAV REGS -- PRESERVE CONTEXT         0193.000
*                                                                       0194.000
*        PRINT THE ERROR MESSAGE                                        0195.000
*                                                                       0196.000
         BL        ERRORIO                                              0197.000
         BU        ABORTCOM        JOIN COMMON CODE                     0198.000
         TITLE     FUPABORT  --  GENERAL 2 MESSAGE ERROR                0199.000
*++                                                                     0200.000
*                                                                       0201.000
* FUPABORT  --  PRINT MESSAGE & ABORT.  ALSO CAN RECOVER AND TRANSFER   0202.000
*               CONTROL BACK TO THE MAIN MODULE (FUPMAN) TO PROCESS     0203.000
*               THE NEXT COMMAND.                                       0204.000
*        INPUT:    R6 = ADDRESS OF ERROR MESSAGE                        0205.000
*                  R7 = MODULE #/ERROR # OR MESSAGE #                   0206.000
*                       BYTE 0 = MODULE #   BYTE 1-3 = ERROR #          0207.000
*                                                                       0208.000
*        OUTPUT:   NONE                                                 0209.000
*                                                                       0210.000
*--                                                                     0211.000
         SPACE                                                          0212.000
FUPABORT EQU       $                                                    0213.000
         SPACE                                                          0214.000
         PUSH                      SAV REGS -- PRESERVE CONTEXT         0215.000
*                                                                       0216.000
*        PRINT THE ERROR MESSAGE                                        0217.000
*                                                                       0218.000
         BL        ERROR3                                               0219.000
         SPACE     2                                                    0220.000
ABORTCOM EQU       $               COMMON PART                          0221.000
*                                                                       0222.000
*        CAUSE A BREAK; IF NOT RUNNING UNDER TASK DEBUGGER, THIS SERVICE0223.000
*        CALL WILL BE IGNORED.                                          0224.000
*                                                                       0225.000
*        LW        R2,BORTCODE     ABORT CODE OR BLANKS                 0226.000
*        ZR        R6              ZERO INDICATES THIS TASK             0227.000
*        ZR        R7              ZERO INDICATES THIS TASK             0228.000
*        SVC       1,X'6F'         ACTIVATE TASK INTERRUPT              0229.000
         SPACE     3                                                    0230.000
         LH        R5,BORTCODE                                          0231.000
         CAMH      R5,CHCKABRT     ABORT CODE = 'VOXX'??                0232.000
         BEQ       ABRTNOW         YES, BRANCH TO ABORT FUP TASK        0233.000
         LW        R5,BLNKOUT                                           0234.000
         STW       R5,BORTCODE     RE-BLANK 'BORTCODE'                  0235.000
         LA        R1,TOPOSTK      RESET STACK POINTER                  0236.000
         SBM       ABORT.F,FLAGBITS     SET ABORT FLAG                  0237.000
         BU        FUP.000         RETURN TO MAIN DISPATCHER            0238.000
         SPACE     3                                                    0239.000
*                                                                       0240.000
*        NOW ABORT THIS FUP TASK                                        0241.000
*                                                                       0242.000
ABRTNOW  EQU       $                                                    0243.000
         LW        R5,BORTCODE     LOAD ABORT CODE INTO R5              0244.000
         SVC       1,X'57'         ABORT                                0245.000
         SPACE     2                                                    0246.000
END      END                                                            0247.000
