RPV 
          IDENT  RPV,RPV
          PERIPH
          SST 
          SYSCOM
          BASE   MIXED
*COMMENT  RPV - REPRIEVE CENTRAL PROGRAM. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 RPV      TITLE  RPV - REPRIEVE CENTRAL PROGRAM.
 RPV      SPACE  4,10 
*****     RPV - REPRIEVE CENTRAL PROGRAM. 
*         J. L. SAPIA.       77/08/29.
* 
*         RPV PROVIDES THE ABILTIY FOR A CPU ROUTINE TO RESUME
*         EXECUTION AFTER A SPECIFIED NORMAL OR ABNORMAL
*         TERMINATION CONDITION.  RPV SUPPORTS TWO CALL TYPES,
*         BOTH AN INITIALIZATION CALL AND A RESET CALL. 
* 
*         EXTENDED RPV MODE ALLOWS A CPU ROUTINE TO NOT ONLY
*         CLEAN UP AND RESUME AFTER A SPECIFIED TERMINATION 
*         BUT ALSO TO TAKE ACTION TO CORRECT AND RESPOND TO 
*         INPUT DIRECTIVES.  EXTENDED REPRIEVE HAS THREE MODES -
*         SETUP, RESUME, AND RESET.  AN EXTENDED REPRIEVE RESUME
*         HAS TWO MODES - USER PROGRAM MODE RESUME (INTERRUPT HAS 
*         BEEN PROCESSED AND RUNNING PROGRAM SHOULD BE RESTARTED
*         AS PRIOR TO INTERRUPT) AND INTERRUPT HANDLER MODE RESUME
*         (RUNNING PROGRAM MUST BE RESTARTED, AS PART OF INTERRUPT
*         PROCESSING, UNTIL A LOGICAL INTERRUPT POINT IS REACHED).
          SPACE  4,10 
***       RPV CALL FORMAT.
* 
*T RA+1   24/ *RPV*, 1/R, 11/OPT, 6/, 18/ ADR 
* 
*         R      IF SET INDICATES A RESET REQUESTED.  RESET WILL
*                BE PERFORMED FROM THE ADDRESS LAST SET.
* 
*         OPT    OPTIONS WHEN REPRIEVE WILL BE PERFORMED.  EACH BIT 
*                REPRESENTS AN ERROR CONDITION. 
* 
*                001         MODE ERROR.
*                002         SYSTEM REQUEST ERROR.
*                004         TIME OR STORAGE LIMIT EXCEEDED.
*                010         OPERATOR DROP. 
*                020         PPU ABORT. 
*                040         CPU ABORT. 
*                100         NORMAL TERMINATION.
*                200         TERMINAL INTERRUPT 
* 
*         ADR    ADDRESS OF THE PARAMETER BLOCK.  THE PARAMETER 
*                BLOCK IS 21D WORDS IN LENGTH HAVING THE
*                FOLLOWING FORMAT:  
* 
*T ADR    30/LWA,30/0 
*T,ADR+1  60/0
*   .       . 
*   .       . 
*   .       . 
*T,ADR+20 60/0
* 
*         LWA    LWA FOR CHECKSUM.
*                THE SECOND WORD IS THE WORD TO RECEIVE THE 
*                CHECKSUM VALUE.
* 
*         WHEN INITIALIZATION IS COMPLETED, THE OPTION
*                BYTE WILL BE SET IN THE
*                CONTROL POINT AREA AND EXIT ADDRESS FIELD WILL 
*                CONTAIN CALLED ADDRESS WITH BIT 17 SET.
* 
*         THE PARAMETER BLOCK IS RETURNED IN THE FOLLOWING FORMAT.
* 
*T ADR    60/EXCHANGE PACKAGE 
*T,ADR+20 60/PENDING SYSTEM REQUEST 
          SPACE  4,10 
***       EXTENDED RPV CALL FORMAT. 
* 
*         REFER TO *COMSRPV* FOR DESCRIPTION OF EXTENDED
*         REPRIEVE CALL AND PARAMETER BLOCK FORMAT. 
          SPACE  4,10 
***       DAYFILE MESSAGES ISSUED.
* 
* 
*         * RPV - CALLED WITHOUT AUTO RECALL.* = AN EXTENDED
*                RPV MODE CALL WAS MADE WITHOUT THE AUTO
*                RECALL BIT SET.
* 
*         * RPV - PARAMETER BLOCK TOO SHORT.* = THE LENGTH SPECIFIED
*                IN THE PARAMETER BLOCK WAS LESS THAN 31B WORDS.
* 
*         * RPV - ADDRESS OUT OF RANGE.* = SOME PORTION OF THE
*                PARAMETER BLOCK OR AN ADDRESS SPECIFIED WAS
*                BEYOND THE USERS FIELD LENGTH. 
* 
*         * RPV - UNDEFINED MASK.* = THE MASK SPECIFIED IN THE
*                PARAMETER BLOCK WAS NOT A LEGAL MASK.
* 
*         * RPV - LWA OF CHECKSUM .LT. FWA.*
* 
*         * RPV - INCORRECT PENDING INTERRUPT.* = A BIT WAS SET IN
*                THE PENDING INTERRUPT WORD OF THE PARAMETER
*                BLOCK WHICH DID NOT CORRESPOND TO A DEFINED ERROR. 
* 
*         * RPV - INCORRECT CALL.* = MEANS ONE OF THE FOLLOWING.
*                1) AN ATTEMPT WAS MADE TO DO A RESET WHEN THERE
*                WAS NO PREVIOUS ERROR OR THE PREVIOUS ERROR
*                HAD BEEN PENDING.
*                2) AN EXTENDED MODE CALL WAS ATTEMPTED WHEN RPV
*                NON-EXTENDED MODE OR *DISTC* HAD ALREADY BEEN
*                SET IN THE CONTROL POINT AREA. 
*                3) A NON-EXTENDED MODE CALL WAS ATTEMPTED WHEN RPV 
*                EXTENDED MODE HAD ALREADY BEEN SET IN THE CONTROL
*                POINT AREA.
*                4) A CALL WAS MADE TO CLEAR EXTENDED REPRIVE AND THERE 
*                WERE PENDING INTERRUPTS PRESENT. 
* 
*         * RPV - INCORRECT FUNCTION CODE.* = THE FUNCTION CODE 
*                SPECIFIED IN THE PARAMETER BLOCK WAS INCORRECT.
* 
*         * RPV - INCORRECT PENDING SYSTEM REQUEST.*
* 
*         * RPV - PREVIOUS ERROR CONDITIONS RESET.* = NORMAL
*                MESSAGE ISSUED ON AN *RPV* RESET CALL. 
          TITLE  ASSEMBLY CONSTANTS, DIRECT LOCATIONS, COMMON DECKS.
          SPACE  4,10 
****      DIRECT LOCATION ASSIGNMENTS.
  
  
 PL       EQU    17          PARAMETER BLOCK LENGTH (EXTENDED RPV MODE) 
 CN       EQU    20 - 24     CONTROL POINT WORD *EECW*
 ER       EQU    25          ERROR MESSAGE ADDRESS
 TN       EQU    26          TERMINAL NUMBER
 EM       EQU    27          EXTENDED REPRIEVE FUNCTION CODE
 CW       EQU    30 - 34     WORD CONTAINING CHECKSUM LWA.
 TS       EQU    40 - 44     TEMPORARY STORAGE
 PI       EQU    60 - 64     PENDING INTERRUPT WORD 
  
****
          SPACE  4,10 
****      ASSEMBLY CONSTANTS. 
  
  
 RPVL     EQU    21          LENGTH OF RPV BLOCK (NOT EXTENDED MODE)
  
****
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPMAC 
*CALL     COMSEJT 
*CALL     COMSPIM 
          QUAL   REM
*CALL     COMSREM 
          QUAL   *
*CALL     COMSJCE 
          LIST   X
*CALL     COMSRPV 
          LIST   *
          TITLE  MACRO DEFINITIONS. 
          SPACE  4,10 
**        MACRO DEFINITIONS.
 ABORT    SPACE  4,10 
**        ABORT - ERROR PROCESSING MACRO. 
* 
*         ABORT  ADDR 
* 
*         ADDR = FWA OF ERROR MESSAGE FOR DAYFILE.
  
  
          PURGMAC ABORT 
  
 ABORT    MACRO  A
          MACREF ABORT
          LDC    A
          LJM    ABT         PROCESS ERROR
          ENDM
          TITLE  MAIN PROGRAM.
 RPV      SPACE  4,10 
**        RPV - REPRIEVE CENTRAL PROGRAM. 
  
  
          ORG    PPFW 
  
 RPV      RJM    PRS         PRESET RPV 
          RJM    RIC         NON-EXTENDED REPRIEVE INITIALIZATION 
*         RJM    RRC         (NON-EXTENDED REPRIEVE RESET)
*         RJM    RSR         (EXTENDED REPRIEVE SETUP OR RESUME)
*         RJM    RER         (EXTENDED REPRIEVE RESET)
 RPVA     EQU    *-1
*         UJN    DPP         DROP PP
 DPP      SPACE  4,10 
**        DPP - DROP PP.
* 
*         ENTRY  (DPPA) PRESET IF REQUEST CPU NEEDED. 
* 
*         EXIT   PP DROPPED.
*                EXIT IS TO *PPR*.
* 
*         MACROS MONITOR. 
  
  
 DPP      LDN    0           CHECK CPU REQUEST NEEDED 
*         LDN    1           (CPU REQUEST NEEDED) 
 DPPA     EQU    *-1
          ZJN    DPP1        IF REQUEST CPU NOT NEEDED
          MONITOR  RCPM      REQUEST CPU
 DPP1     MONITOR  DPPM      DROP PP
          LJM    PPR         EXIT TO PP RESIDENT
 ABT      SPACE  4,10 
**        ABT - ABORT PROGRAM.
* 
*         ENTRY  (A) = ERROR MESSAGE ADDRESS. 
* 
*         EXIT   TO */2RP/ERR*. 
* 
*         USES   ER.
* 
*         MACROS EXECUTE. 
  
  
 ABT      STD    ER          SAVE ERROR MESSAGE ADDRESS 
          EXECUTE  2RP
          TITLE  PRIMARY SUBROUTINES. 
 RER      SPACE  4,15 
**        RER - PROCESS RESET FOR EXTENDED REPRIEVE.
* 
*         ENTRY  (CN - CN+4) = CONTENTS OF CONTROL POINT AREA 
*                            WORD *EECW*. 
* 
*         ERROR  TO *ABT*, IF INCORRECT *RPV* CALL. 
* 
*         USES   CM+1, CN - CN+1, TS - TS+4.
* 
*         CALLS  REP, RPB, RSR, TOJ.
* 
*         MACROS ABORT, MONITOR.
  
  
 RER      SUBR               ENTRY/EXIT 
          LDD    CN          CHECK IF RPV EXTENDED MODE SET 
          SHN    21-12
          MJN    RER2        IF EXTENDED MODE SET 
 RER1     ABORT  ERIR        * RPV - INCORRECT CALL.* 
  
 RER2     SHN    21-11-21+12 CHECK INTERRUPT HANDLER BIT
          PJN    RER1        IF INTERRUPT HANDLER NOT ACTIVE
          LDD    CP          CHECK PREVIOUS ERROR FLAG
          ADN    TIAW 
          CRD    TS 
          LDD    TS+2        CHECK ERROR FLAG 
          STD    CM+1 
          ZJN    RER4        IF NORMAL TERMINATION
          LMN    TIET 
          NJN    RER3        IF NOT USER BREAK 1 (TERMINAL INTERRUPT) 
          RJM    RSR         TREAT USER BREAK 1 RESET AS RESUME 
          UJN    RERX        RETURN 
  
 RER3     MONITOR  CEFM      CHANGE ERROR FLAG
          UJN    RER5        CONTINUE PROCESSING
  
 RER4     LDN    1           CLEAR CPU STATUS AT ROLLOUT
          STD    CM+1 
          MONITOR  DCPM      DROP CPU 
 RER5     LDD    CN+1        SAVE MASK BITS 
          STD    TS 
          LDN    0           CLEAR MASK BITS
          STD    CN+1 
          LDD    CN          CLEAR INTERRUPT HANDLER BIT
          SBD    TH 
          STD    CN 
          LDD    CP          REWRITE WORD EECW
          ADN    EECW 
          CWD    CN 
          LDD    TS          CHECK OLD MASK 
          LPK    /COMSRPV/TIMS
          ZJN    RER6        IF NOT TERMINAL INTERRUPT
          LDK    /REM/VCDT   CLEAR TERMINAL CONTROL BIT 
          RJM    TOJ
 RER6     LDD    RA          RESET RA+1 
          SHN    6
          ADN    1
          CWM    RPPB+/COMSRPV/PRAR*5,ON
          RJM    REP         RESET EXCHANGE PACKAGE 
          RJM    RPB         RETURN PARAMETER BLOCK 
          LJM    RERX        RETURN 
 RIC      SPACE  4,10 
**        RIC - PROCESS REPRIEVE INITIALIZATION CALL. 
* 
*         ENTRY  (CN - CN+4) = CONTENTS OF USERS *EECW* WORD. 
* 
*         USES   CM - CM+4, CN - CN+4.
* 
*         CALLS  CCS, CKA.
  
  
 RIC      SUBR               ENTRY/EXIT 
          LDD    IR+2        CHECK MASK BITS
          LPC    377
          STD    CN+1 
          NJN    RIC2        IF MASK BITS SELECTED
          STD    CN+4        CLEAR ADDRESS
          LDD    CN+3 
          SCN    77 
          STD    CN+3 
          LDD    CP 
          ADN    EECW 
          CWD    CN 
 RIC1     UJN    RICX        RETURN 
  
 RIC2     LDD    IR+3        SET REPRIEVE ADDRESS 
          LMD    CN+3 
          LPN    77 
          LMD    CN+3 
          STD    CN+3 
          LDD    IR+4 
          STD    CN+4 
          LDD    CP          ENTER REPRIEVE ADDRESS 
          ADN    EECW 
          CWD    CN 
          SOM    CCSA        SET CHECKSUM TO LWA ONLY 
          LDD    IR+3        SET FWA CHECKSUM 
          LPN    37 
          SHN    14 
          LMD    IR+4 
          ADN    RPVL 
          RJM    CCS         COMPUTE CHECKSUM 
          ZJN    RIC1        IF NO CHECKSUM REQUESTED 
          LDD    MA          READ CHECKSUM
          CRD    CM 
          LDN    0
          STD    T1 
          RJM    CKA         GET ADDRESS OF PARAMETER BLOCK 
          ADN    1
          CWD    CM 
          UJN    RIC1        RETURN 
 RRC      SPACE  4,15 
**        RRC - PROCESS REPRIEVE RESET CALL.
* 
*         ENTRY  (CN - CN+4) = CONTENTS OF USERS *EECW* WORD. 
* 
*         ERROR  TO *ABT*, IF INCORRECT *RPV* CALL. 
* 
*         USES   CM - CM+4, CN - CN+4, T1 - T7. 
* 
*         CALLS  CKA, DFM, REP. 
* 
*         MACROS ABORT, MONITOR.
  
  
 RRC      SUBR               ENTRY/EXIT 
          LDD    CN+3        CHECK IF JOB PREVIOUSLY REPRIEVED
          SHN    21-5 
          MJN    RRC1        IF NOT PREVIOUSLY REPRIEVED
          ABORT  ERIR        * RPV - INCORRECT CALL.* 
  
*         PROCESS RESET OPTION. 
  
 RRC1     LDD    CN+1        RESET ERROR FLAG 
          LPN    77 
          ZJN    RRC2        IF NORMAL TERMINATION
          STD    CM+1 
          MONITOR  CEFM 
          UJN    RRC3        CONTINUE PROCESSING
  
 RRC2     LDN    1           CLEAR CPU STATUS AT ROLLOUT
          STD    CM+1 
          MONITOR  DCPM      DROP CPU 
 RRC3     LDN    0           CLEAR SELECTIONS IN CONTROL POINT AREA 
          STD    CN+1 
          STD    CN+4 
          LDD    CN+3 
          SCN    77 
          STD    CN+3 
          LDD    CP          ENTER CONTROL POINT AREA 
          ADN    EECW 
          CWD    CN 
          LDN    /COMSRPV/EXPL  READ NEW EXCHANGE PACKAGE 
          STD    T1 
          RJM    CKA         FORM ABSOLUTE ADDRESS
          CRM    EXPN,T1
          RJM    REP         RESET EXCHANGE PACKAGE 
          LDC    =C* RPV - PREVIOUS ERROR CONDITIONS RESET.*
          RJM    DFM         ISSUE MESSAGE
          LJM    RRCX        RETURN 
 RSR      SPACE  4,30 
**        RSR - PROCESS REPRIEVE SETUP AND RESUME.
* 
*         THIS SUBROUTINE PROCESSES THE EXTENDED REPRIEVE SETUP AND 
*         RESUME FUNCTIONS.  IT ALSO CALLED FROM THE EXTENDED REPRIEVE
*         RESET FUNCTION PROCESSOR IF PROCESSING A USER BREAK 1.
* 
*         ENTRY  (CN - CN+4) = CONTROL POINT WORD *EECW*. 
*                (PI - PI+4) = WORD FIVE OF PARAMETER BLOCK (PENDING
*                            INTERRUPTS). 
*                (CW - CW+4) = WORD ONE OF PARAMETER BLOCK. 
*                (EM) = EXTENDED REPRIEVE FUNCTION CODE.
* 
*         EXIT   TO *ABT*, IF INCORRECT *RPV* CALL OR INCORRECT 
*                  PENDING INTERRUPT. 
*                TO *PPR* IF A PENDING TERMINAL FILE *CIO* REQUEST WAS
*                  RESTARTED. 
*                EXTENDED REPRIEVE ACTIVE STATUS (FLAG BIT AND ERROR
*                  SELECTION MASK) CLEARED IN CONTROL POINT AREA IF 
*                  CALLER SPECIFIED A ZERO MASK.
* 
*         USES   T0, T1, T2, CM - CM+4, CN - CN+4, TS - TS+4. 
* 
*         CALLS  CCS, REP, RPB, TOJ, VRA. 
* 
*         MACROS ABORT, MONITOR.
  
  
 RSR      SUBR               ENTRY/EXIT 
          LDM    RPPB+/COMSRPV/NMSK*5+1 
          NJN    RSR1        IF NEW ERROR MASK PRESENT
          LDD    CN          CLEAR EXTENDED REPRIEVE MODE FLAG
          LPC    4777        CLEAR INTERRUPT HANDLER IN PROGRESS FLAG 
          STD    CN 
          UJN    RSR2        SAVE OLD MASK
  
 RSR1     LDD    CN          SET EXTENDED REPRIEVE MODE FLAG
          LPC    5777 
          LMC    2000 
          STD    CN 
 RSR2     LDD    CN+1        SAVE OLD MASK
          STD    T1 
          LDM    RPPB+/COMSRPV/NMSK*5+1  SET NEW RPV MASK 
          STD    CN+1 
          LDD    CN          CHECK EXTENDED REPRIEVE MODE FLAG
          SHN    21-12
          MJN    RSR3        IF NOT REQUEST TO CANCEL EXTENDED REPRIEVE 
          LDN    0           CLEAR PARAMETER BLOCK ADDRESS
          STD    CN+4 
          LDD    CN+3 
          SCN    77 
          STD    CN+3 
          UJN    RSR4        CONTINUE PROCESSING REQUEST
  
 RSR3     LDD    IR+4        SET FWA OF REPRIEVE AREA 
          STD    CN+4 
          LDD    CN+3 
          SCN    77 
          STD    CN+3 
          LDD    IR+3 
          LPN    77 
          RAD    CN+3 
  
*         CHECK FOR TERMINAL INTERRUPT. 
  
 RSR4     LDD    CN+1        CHECK MASK IN *EECW* 
          SHN    21-7 
          PJN    RSR5        IF NOT TERMINAL INTERRUPT MASK 
          LDD    T1          CHECK OLD MASK 
          SHN    21-7 
          MJN    RSR6        IF TERMINAL INTERRUPT
          LDK    /REM/VSDT   SET TERMINAL CONTROL BIT 
          RJM    TOJ
          UJN    RSR6        CONTINUE PROCESSING
  
 RSR5     LDD    T1          CHECK OLD MASK 
          SHN    21-7 
          PJN    RSR6        IF NOT TERMINAL INTERRUPT MASK 
          LDK    /REM/VCDT   CLEAR TERMINAL CONTROL BIT 
          RJM    TOJ
  
*         CHECK FOR AND PROCESS PENDING INTERRUPTS.  THE PENDING
*         INTERRUPT WORD IN THE PARAMETER BLOCK IS FIRST CHECKED
*         TO ENSURE NO BITS ABOVE BIT 47D ARE SET .  BITS 47D - 0 ARE 
*         THEN CHECKED FROM LEFT TO RIGHT.  WHEN A BIT IS FOUND THAT
*         IS SET THIS IS THE HIGHEST PRIORITY PENDING INTERRUPT.
*         THIS BIT IS CLEARED AND THE CORRESPONDING ERROR CODE, ERROR 
*         CLASS, AND CONTROL POINT ERROR FLAG VALUES ARE SET IN THE 
*         APPROPRIATE FIELDS IN THE PARAMETER BLOCK.
  
          ERRNG  47D-MXET    IF ERROR TYPES OVERFLOW BIT 47D
  
 RSR6     LDN    1           SET BYTE INDEX 
          STD    T2 
          LDD    PI 
          ZJN    RSR8        IF NO INCORRECT PENDING INTERRUPT
 RSR7     ABORT  ERIP        * RPV - INCORRECT PENDING INTERUPT.* 
  
 RSR8     LDN    3*12D       SET BASE BIT NUMBER
          STD    T0 
 RSR8.1   LDM    PI,T2
          NJN    RSR10       IF BITS SET
          AOD    T2          ADVANCE BYTE NUMBER
          LCN    12D         DECREMENT BASE BIT NUMBER
          RAD    T0 
          PJN    RSR8.1      IF NOT END OF PENDING ERROR BITS 
          LJM    RSR20       IF PENDING INTERRUPT .EQ. 0
  
*         SELECT HIGHEST PRIORITY INTERRUPT.
  
 RSR9     ABORT  ERIR        *RPV - INCORRECT CALL.*
  
 RSR10    STM    RSRA 
          LDD    CN 
          SHN    21-12
          PJN    RSR9        IF REQUEST TO CLEAR EXTENDED REPRIEVE
          LDN    13 
          STD    T1 
 RSR11    LDC    0
 RSRA     EQU    *-1
          LPC    4000 
 RSRB     EQU    *-1
          NJN    RSR12       IF BIT SET 
          SOD    T1 
          LMC    SHNI 
          STM    RSRC        REPLACE SHIFT INSTRUCTION
          LDN    1
          SHN    13 
 RSRC     EQU    *-1
          STM    RSRB 
          UJN    RSR11       CHECK NEXT BIT 
  
 RSR12    LDD    T0 
          RAD    T1 
          NJN    RSR14       IF LEGAL PENDING INTERRUPT 
 RSR13    LJM    RSR7        ABORT
  
 RSR14    SBN    MXET 
          PJN    RSR13       IF INCORRECT PENDING INTERRUPT 
          LDM    RSRB        CLEAR SELECTED BIT 
          LMM    PI,T2
          STM    RPPB+4*5,T2
          STM    PI,T2
          LDM    ERCT,T1     STORE ERROR CODES
          ZJP    RSR6        IF ERROR NOT DEFINED 
          STD    TS 
          LPN    77          STORE ERROR CLASS
          RAM    RSRD 
          LDN    1
 RSRD     SHN    0
          STM    RPPB+/COMSRPV/ERCL*5+3 
          LDD    TS          STORE COMMON ERROR CODE
          SHN    -6 
          STM    RPPB+/COMSRPV/ERCD*5+4 
          LDD    T1          STORE CONTROL POINT ERROR FLAG VALUE 
          STM    RPPB+/COMSRPV/OSEF*5+4 
          LDD    CN          SET INTERRUPT HANDLER IN PROGRESS FLAG 
          LPC    6777 
          LMD    TH 
          STD    CN 
          LDD    CP 
          ADN    EECW 
          CWD    CN 
          SBK    EECW-TIAW   SET ERROR FLAG IN *TIAW* 
          CRD    CM 
          LDD    T1 
          STD    CM+2 
          LDD    CP 
          ADK    TIAW 
          CWD    CM 
          RJM    REP         RESET EXCHANGE PACKAGE 
          LDD    CP          RESET P TO INTERRUPT HANDLER ADDRESS 
          CRD    TS 
          LDD    CW+4 
          STD    TS+1 
          LDD    CW+3 
          LPN    77 
          STD    TS 
          LDD    CP 
          CWD    TS 
 RSR19    RJM    RPB         RETURN PARAMETER BLOCK 
          LJM    RSRX        RETURN 
  
*         CONTINUE PROCESSING HERE WHEN PENDING INTERRUPT .EQ. 0. 
  
 RSR20    LDD    CW+3        SET FWA OF CHECKSUM
          LPN    37 
          SHN    14 
          ADD    CW+4 
          RJM    CCS         COMPUTE CHECKSUM 
          ZJN    RSR21       IF NO CHECKSUM REQUESTED 
          LDD    MA          READ CHECKSUM
          CRM    RPPB+/COMSRPV/CKSM*5,ON
 RSR21    LDD    EM          CHECK EXTENDED REPRIEVE FUNCTION CODE
          LMN    4
          ZJN    RSR22       IF INTERRUPT HANDLER MODE RESUME 
          LDD    CP          CLEAR PREVIOUS ERROR FLAG
          ADN    TIAW 
          CRD    TS 
          LDN    0
          STD    TS+2 
          LDD    CP 
          ADN    TIAW 
          CWD    TS 
          LDD    CN          CLEAR INTERRUPT HANDLER IN PROGRESS FLAG 
          LPC    6777 
          STD    CN 
 RSR22    LDD    CP          REWRITE *EECW* WORD
          ADN    EECW 
          CWD    CN 
          RJM    VRA         VALIDATE SYSTEM REQUEST
          ZJN    RSR23       IF NO PENDING SYSTEM REQUEST 
          LDN    0
          STD    CM+1 
          MONITOR  DCPM      DROP CPU 
          LDD    RA          RESET RA+1 
          SHN    6
          ADN    1
          CWM    RPPB+/COMSRPV/PRAR*5,ON
          AOM    DPPA        SET CPU REQUEST NEEDED 
          LDN    ZERL        CLEAR SYSTEM REQUEST 
          CRM    RPPB+/COMSRPV/PRAR*5,ON
 RSR23    LDD    EM          CHECK FUNCTION CODE
          LMN    1
          ZJN    RSR24       IF SETUP FUNCTION
          RJM    REP         REPLACE EXCHANGE PACKAGE 
 RSR24    LDM    RPPB+/COMSRPV/ITIO*5  CHECK TERMINAL INTERRUPT WORD
          NJN    RSR25       IF TERMINAL INPUT REQUEST PENDING
          LJM    RSR19       RETURN PARAMETER BLOCK 
  
 RSR25    SHN    -6          VALIDATE PP CALL 
          ZJN    RSR26       IF INCORRECT PP CALL 
          SBN    1R0
          MJN    RSR27       IF VALID PP CALL 
 RSR26    ABORT  ERIR        * RPV - INCORRECT CALL.* 
  
 RSR27    LDN    ZERL        CLEAR TERMINAL INTERRUPT WORD
          CRD    CM 
          RJM    RPB         RETURN PARAMETER BLOCK 
          SBD    PL 
          ADN    /COMSRPV/ITIO  CLEAR TERMINAL INTERRUPT WORD 
          CWD    CM 
          LDM    RPPB+/COMSRPV/ITIO*5+1  ISSUE TERMINAL I/O REQUEST 
          LMD    IR+1 
          SCN    37 
          LMD    IR+1 
          LMN    40          SET RECALL BIT 
          STM    RPPB+/COMSRPV/ITIO*5+1 
          LDD    MA          RESTART TERMINAL I/O REQUEST 
          CWM    RPPB+/COMSRPV/ITIO*5,ON
          CWD    CM          CLEAR *CIO* PARAMETER WORD 
          LDN    2           SET DROP PP OPTION 
          STD    CM+1 
          MONITOR  RPPM 
          LJM    PPR         EXIT 
 ERCT     SPACE  4,10 
**        ERCT - ERROR CODES TABLE. 
* 
*         TABLE IS IN THE FOLLOWING FORMAT. 
* 
*         6/EC, 6/ EM.
* 
*                EC = COMMON ERROR CODE.
*                EM = ERROR CLASS MASK BIT EXPONENT.
  
  
 ERCT     INDEX              TABLE OF ERROR CODES 
  
          INDEX  0,0         NORMAL TERMINATION (INCORRECT) 
          INDEX  TIET,4007   USER BREAK ONE 
          INDEX  TAET,4007   USER BREAK TWO 
          INDEX  ARET,0200   ARITHMETIC ERROR 
          INDEX  IDET,0603   IDLE DOWN
          INDEX  ITET,0304   SCP INCORRECT TRANSFER ADDRESS 
          INDEX  PSET,0200   PROGRAM STOP 
          INDEX  PPET,0304   PP ABORT 
          INDEX  CPET,0405   CPU ABORT
          INDEX  PCET,0501   PPU CALL ERROR 
          INDEX  MLET,0304   MESSAGE LIMIT
          INDEX  TLET,0102   TIME LIMIT 
          INDEX  FLET,1702   FILE LIMIT 
          INDEX  TKET,1702   TRACK LIMIT
          INDEX  SRET,2102   SRU LIMIT
          INDEX  FSET,0703   FORCED ERROR 
          INDEX  ODET,0603   OPERATOR DROP
          INDEX  RCET,1601   JOB HUNG IN AUTORECALL 
          INDEX  RRET,1003   OPERATOR RERUN 
          INDEX  OKET,0703   OPERATOR KILL
          INDEX  STET,0603   SUSPENSION TIMEOUT 
          INDEX  SSET,0703   SUBSYSTEM ABORT
          INDEX  ECET,1204   EXTENDED MEMORY PARITY ERROR 
          INDEX  PEET,0200   CPU PARITY ERROR 
          INDEX  SYET,0703   SYSTEM ERROR 
          INDEX  ORET,0703   OVERRIDE ERROR CONDITION 
  
          INDEX  MXET        MAXIMUM NUMBER OF ERROR FLAGS
          TITLE  SUBROUTINES. 
 CCS      SPACE  4,20 
**        CCS - COMPUTE CHECKSUM. 
* 
*         CCS DETERMINES IF A CHECKSUM IS REQUESTED AND 
*         IF SO COMPUTES IT AND RETURNS THE VALUE TO THE
*         PARAMETER BLOCK IN THE SPECIFIED WORD.
* 
*         ENTRY  (A) = FWA OF CHECKSUM. 
*                (CW - CW+2) = LWA FOR CHECKSUM IN THE FORM 
*                            30/LWA,6/0.
*                (CCSA) = PRESET FOR CHECKSUM OPTION FROM NON-EXTENDED
*                            REPRIEVE.
* 
*         EXIT   (A) = 0 IF NO CHECKSUM REQUESTED.
*                (A) = 1 IF CHECKSUM REQUESTED AND COMPUTED.
*                (MA) = ADDRESS OF WORD CONTAINING CHECKSUM VALUE.
*                TO *ABT*, IF CHECKSUM ADDRESS OUT OF RANGE.
* 
*         USES   CM - CM+4. 
* 
*         MACROS ABORT, MONITOR.
  
  
 CCS      SUBR               ENTRY/EXIT 
          STD    CM+4        SET FWA OF CHECKSUM
          SHN    -14
          STD    CM+3 
          LDD    CW+2        DETERMINE IF CHECKSUM REQUESTED
          SCN    77 
          SHN    6
          LMD    CW+1 
          ZJN    CCSX        IF NO CHECKSUM REQUESTED 
          SHN    6
          SBN    2           ENSURE CHECKSUM LWA .GE. 2 
          MJN    CCS1        IF ADDRESS .LT. 2
          ADN    2
 CCSA     ADN    1
*         ADN    0           (CHECKSUM TO LWA. ONLY)
          STD    CM+2 
          SHN    -14
          STD    CM+1 
          SHN    14 
          LMD    CM+2 
          SHN    -6 
          SBD    FL 
          MJN    CCS2        IF CHECKSUM LWA .LT. FL
 CCS1     ABORT  ERAO        * RPV - ADDRESS OUT OF RANGE.* 
  
 CCS2     LDD    CM+1 
          SBD    CM+3 
          SHN    14 
          ADD    CM+2 
          SBD    CM+4 
          SBN    1
          PJN    CCS3        IF FWA .LT. LWA
          ABORT  ERCS        * RPV - LWA OF CHECKSUM .LT. FWA.* 
  
 CCS3     ADN    1
          STD    CM+2        SET CHECKSUM LENGTH
          SHN    -14
          STD    CM+1 
          MONITOR  CKSM      CHECKSUM CALLING PROGRAM 
          LDN    1           INDICATE CHECKSUM COMPUTED 
          LJM    CCSX        RETURN 
 CKA      SPACE  4,10 
**        CKA - CHECK ADDRESS.
* 
*         ENTRY  (IR+3 - IR+4) = ADDRESS. 
*                (T1) = WORD COUNT. 
* 
*         EXIT   (A) = ABSOLUTE ADDRESS.
*                (A) = 0 IF ADDRESS IS OUTSIDE OF PROGRAM FL. 
  
  
 CKA2     LDD    IR+3        LOAD ABSOLUTE ADDRESS
          LPN    77 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+4 
  
 CKA      SUBR               ENTRY/EXIT 
          LDD    IR+3 
          LPN    77 
          SHN    14 
          MJN    CKA1        IF OUT OF RANGE
          LMD    IR+4 
          ADD    T1 
          SBN    1
          SHN    -6 
          SBD    FL 
          MJN    CKA2        IF (ADDRESS + WORD COUNT) .LE. FL
 CKA1     LDN    0           SET ADDRESS ERROR
          UJN    CKAX        RETURN WITH ERROR RESPONSE 
 REP      SPACE  4,10 
**        REP - RESET EXCHANGE PACKAGE. 
* 
*         ENTRY  NEW EXCHANGE PACKAGE IN BUFFER BEGINNING AT
*                ADDRESS *EXPN*.
* 
*         EXIT   OLD EXCHANGE PACKAGE UPDATED WITH NEW. 
* 
*         USES   T1, T2.
* 
*         MACROS MONITOR. 
  
  
 REP      SUBR               ENTRY/EXIT 
          MONITOR  RCLM      ENSURE EXCHANGE PACKAGE READY
          LDN    0           RESET (B0) FROM EXCHANGE PACKAGE 
          STM    EXPN+4 
          LDN    7           UPDATE OLD EXCHANGE PACKAGE
          STD    T2 
          LDD    CP          READ OLD EXCHANGE PACKAGE
          ADN    1
          CRM    EXPO,T2
          LDN    6*5
          STD    T2 
 REP1     LDM    EXPO,T2     PRESERVE RA, FL, EM, RAE, FLE, MA AND EEA
          STM    EXPN+5,T2
          LDM    EXPO+1,T2
          STM    EXPN+6,T2
          LCN    5
          RAD    T2 
          PJN    REP1        IF MORE PARAMETERS TO COPY 
          LDN    /COMSRPV/EXPL
          STD    T1 
          LDD    CP          REWRITE EXCHANGE PACKAGE 
          CWM    EXPN,T1
          LJM    REPX        RETURN 
 RPB      SPACE  4,10 
**        RPB - RETURN PARAMETER BLOCK. 
* 
*         ENTRY  (RPPB) = EXTENDED REPRIEVE PARAMETER BLOCK.
*                (PL) = LENGTH OF PARAMETER BLOCK.
* 
*         EXIT   (A) = LWA+1 OF PARAMETER BLOCK IN CM.
* 
*         USES   T1.
* 
*         CALLS  CKA. 
  
  
 RPB      SUBR               ENTRY/EXIT 
          AOM    RPPB+/COMSRPV/FUNC*5+4  SET COMPLETE BIT 
          LDN    0
          STD    T1 
          RJM    CKA         GET ABSOLUTE ADDRESS OF BLOCK IN CM
          CWM    RPPB,PL     WRITE PARAMETER BLOCK TO CM
          UJN    RPBX        RETURN 
 TOJ      SPACE  4,20 
**        TOJ - PROCESS TERMINAL ORIGIN JOBS. 
* 
*         ISSUES *TSEM* MONITOR REQUEST TO SET OR TO CLEAR
*         THE TERMINAL CONTROL BIT IN THE JOBS TERMINAL 
*         TABLE WORD *VSTT*.
* 
*         ENTRY  (A) = /REM/VSDT IF BIT TO BE SET.
*                    = /REM/VCDT IF BIT TO BE CLEARED.
*                (TN) = TERMINAL NUMBER IF ONLINE.
*                     = ZERO IF NOT ONLINE. 
* 
*         EXIT   *TSEM* MONITOR FUNCTION ISSUED IF *TXOT* ORIGIN. 
*                NFL RECOVERY WORD UPDATED IF DETACHED. 
* 
*         USES   T1, CM - CM+4, TS - TS+4.
* 
*         MACROS DELAY, MONITOR, NFA, PAUSE.
  
  
 TOJ      SUBR               ENTRY/EXIT 
          STD    TS          STORE REQUEST
          LDD    TN          SET TERMINAL NUMBER
          ZJP    TOJ3        IF NOT ONLINE
          STD    TS+4 
          LDN    0           CLEAR EXTRANEOUS BYTE
          STD    TS+1 
          LDN    /REM/VSTT   SET WORD NUMBER
          STD    TS+2 
          LDN    59D         SET BIT NUMBER 
          STD    TS+3 
          LDD    MA          WRITE REQUEST TO MESSAGE BUFFER
          CWD    TS 
 TOJ1     LDK    ZERL 
          CRD    CM 
          MONITOR  TSEM      ISSUE REQUEST
          LDD    CM+1 
          ZJN    TOJX        IF *IAF* INACESSIBLE OR ERROR
          LMC    7777 
          NJN    TOJX        IF REQUEST COMPLETE
          PAUSE  ST 
          LDC    3600        *TSEM* QUEUE FULL - DELAY AND RETRY
          STD    T1 
 TOJ2     DELAY 
          SOD    T1 
          ZJN    TOJ1        IF TIME TO REISSUE REQUEST 
          UJN    TOJ2        CONTINUE TO DELAY
  
 TOJ3     LDC    ** 
 TOJA     EQU    *-1         (CONNECTION STATUS)
          LMK    DTCS 
          NJN    TOJ5        IF NOT DETACHED
          NFA    RC1N        READ RECOVERY WORD FROM NFL
          CRD    CM 
          LDD    CM+4        CLEAR TERMINAL INTERRUPT BIT 
          LPC    7677 
          STD    CM+4 
          LDD    TS          CHECK FUNCTION 
          LMK    /REM/VCDT
          ZJN    TOJ4        IF TO CLEAR BIT
          LDD    HN          SET TERMINAL INTERRUPT BIT 
          RAD    CM+4 
 TOJ4     NFA    RC1N        REWRITE RECOVERY WORD
          CWD    CM 
 TOJ5     UJP    TOJX        RETURN 
 VRA      SPACE  4,15 
**        VRA - VALIDATE SYSTEM REQUEST.
* 
*         VRA CHECKS WORD FIVE OF THE PARAMETER BLOCK 
*                AND IF THERE IS A PENDING SYSTEM REQUEST 
*                CHECKS IF IT IS VALID.  (BITS 42 - 59 NON-ZERO IF
*                BITS 0 - 59 ARE NON-ZERO) THIS IS TO ENSURE THAT 
*                A JOB WILL NOT BE HUNG IN AUTO-RECALL BY AN
*                INCORRECT SYSTEM REQUEST.
* 
*         EXIT   (A) = 0 IF NO PENDING SYSTEM REQUEST.
*                (A) = NONZERO IF LEGAL PENDING SYSTEM REQUEST. 
* 
*         ERROR  TO *ABT*, IF INCORRECT PENDING SYSTEM REQUEST. 
* 
*         MACROS ABORT. 
  
  
 VRA      SUBR               ENTRY/EXIT 
          LDM    RPPB+/COMSRPV/PRAR*5  CHECK PENDING SYSTEM REQUEST 
          ADM    RPPB+/COMSRPV/PRAR*5+1 
          ADM    RPPB+/COMSRPV/PRAR*5+2 
          ADM    RPPB+/COMSRPV/PRAR*5+3 
          ADM    RPPB+/COMSRPV/PRAR*5+4 
          ZJN    VRAX        IF NO PENDING SYSTEM REQUEST 
          LDM    RPPB+/COMSRPV/PRAR*5+1 
          SCN    77 
          ADM    RPPB+/COMSRPV/PRAR*5 
          NJN    VRAX        IF LEGAL PENDING SYSTEM REQUEST
          ABORT  ERRA        * RPV - INCORRECT PENDING SYSTEM REQUEST.* 
          TITLE  PRESET RPV.
 PRS      SPACE  4,20 
**        PRS - PRESET REPRIEVE.
* 
*         EXIT   (EM) = EXTENDED REPRIEVE FUNCTION CODE.
*                (PL) = EXTENDED REPRIEVE PARAMETER BLOCK LENGTH. 
*                (RPPB) = EXTENDED REPRIEVE PARAMETER BLOCK.
*                (CN - CN+4) = CONTENTS OF CONTROL POINT WORD *EECW*. 
*                (CW - CW+4) = WORD ONE OF PARAMETER BLOCK (CHECKSUM
*                            LWA AND TRANSFER ADDRESS.) 
*                (PI - PI+4) = WORD FIVE OF PARAMETER BLOCK (PENDING
*                            INTERRUPTS.) 
* 
*         ERROR  TO *ABT*, IF ERROR ENCOUNTERED.
* 
*         USES   T1, ER, CM - CM+4, TS - TS+4.
* 
*         CALLS  CKA, CRS, STN. 
* 
*         MACROS ABORT. 
  
  
 PRS15    CRD    CW          READ FIRST WORD OF PARAMETER BLOCK 
  
 PRS      SUBR               ENTRY/EXIT 
          RJM    STN         SET TERMINAL NUMBER
          LDD    CP          READ ERROR EXIT CONTROL WORD 
          ADN    EECW 
          CRD    CN 
          LDN    0           CLEAR EXTENDED RPV FLAG
          STD    EM 
          STD    T1 
          LDD    IR+3        CHECK FOR EXTENDED RPV MODE
          SHN    21-6 
          MJN    PRS2        IF EXTENDED RPV MODE 
  
*         PRESET NORMAL MODE REQUEST. 
  
          LDD    CN          CHECK EXTENDED MODE FLAG 
          SHN    21-12
          MJN    PRS3        IF EXTENDED MODE SET 
          LDD    IR+2 
          SHN    21-13
          PJN    PRS1        IF NOT RESET 
          LDC    RRC         SET NON-EXTENDED REPRIEVE RESET PROCESSOR
          STM    RPVA 
          LDD    CN+3        USE ADDRESS FROM PREVIOUS CALL 
          LPN    37 
          STD    IR+3 
          LDD    CN+4 
          STD    IR+4 
 PRS1     LDN    RPVL        SET LENGTH OF RPV CALL BLOCK 
          STD    T1 
          RJM    CKA         CHECK ADDRESS
          NJP    PRS15       IF NO ADDRESS ERROR
          LJM    PRS7        ABORT
  
*         PRESET EXETENDED MODE REQUEST.
  
 PRS2     AOD    EM          SET FLAG FOR EXTENDED RPV MODE 
          LDD    CN          CHECK EXTENDED MODE FLAG IN EECW 
          SHN    21-12
          MJN    PRS5        IF EXTENDED MODE SET 
          LDD    CN+1 
          ZJN    PRS4        IF MASK FIELD CLEAR
 PRS3     ABORT  ERIR        * RPV - INCORRECT CALL.* 
  
 PRS4     LDD    CP          CHECK IF DISTC SET 
          ADN    TIAW 
          CRD    CM 
          LDD    CM+3 
          SCN    77 
          ADD    CM+2 
          NJN    PRS3        IF DISTC ADDRESS SET 
          LDD    CN+3        CHECK ERROR EXIT 
          LPN    77 
          ADD    CN+4 
          NJN    PRS3        IF ERROR EXIT FIELD SET
  
*         VALIDATE PARAMETER BLOCK ADDRESS. 
  
 PRS5     LDN    /COMSRPV/REPL  SET LENGTH OF PARAMETER BLOCK 
          STD    PL 
          RJM    CKA         GET LENGTH OF PARAMETER BLOCK
          ZJN    PRS7        IF ADDRESS ERROR 
          CRD    CW 
          LDD    CW+3 
          STD    T1 
          SBN    /COMSRPV/REPL  CHECK LENGTH OF PARAMETER BLOCK 
          PJN    PRS6        IF PARAMETER BLOCK LENGTH IS SUFFICIENT
          ABORT  ERPB        * RPV - PARAMETER BLOCK TOO SHORT.*
  
 PRS6     RJM    CKA         CHECK ADDRESS
          NJN    PRS8        IF NO ERROR
 PRS7     ABORT  ERAO        * RPV - ADDRESS OUT OF RANGE.* 
  
*         CHECK PARAMETER BLOCK PARAMETERS. 
  
 PRS8     CRM    RPPB,PL
          SBD    PL 
          ADN    /COMSRPV/CKLW  READ LWA FOR CHECKSUM 
          CRD    CW 
          ADN    /COMSRPV/PINT-/COMSRPV/CKLW  READ INTERRUPT WORD 
          CRD    PI 
          LDD    CW+3        ENSURE TRANSFER ADDRESS IN FL
          LPN    77 
          SHN    14 
          MJN    PRS7        IF ADDRESS OUT OF RANGE
          LMD    CW+4 
          SBN    2
          MJN    PRS7        IF TRANSFER ADDRESS .LT. 2 
          ADN    2
          SHN    -6 
          SBD    FL 
          PJN    PRS7        IF TRANSFER ADDRESS .GE. FL
          LDM    RPPB+/COMSRPV/NMSK*5+1  CHECK MASK 
          LPC    7400 
          ZJN    PRS10       IF NOT UNDEFINED MASK
 PRS9     ABORT  ERUM        * RPV - UNDEFINED MASK.* 
  
 PRS10    LDM    RPPB+/COMSRPV/NMSK*5  CHECK MASK 
          NJN    PRS9        IF UNDEFINED MASK
          RJM    CRS         CHECK RECALL STATUS
          NJN    PRS11       IF AUTO-RECALL STATUS
          ABORT  ERAC        * RPV - CALLED WITHOUT AUTO RECALL.* 
  
 PRS11    LDM    RPPB+/COMSRPV/FUNC*5+4  ENSURE COMPLETE BIT CLEAR
          SCN    1
          STM    RPPB+/COMSRPV/FUNC*5+4 
          SHN    -1 
          ZJN    PRS12       IF NO FUNCTION CODE
          STD    EM          SAVE EXTENDED REPRIEVE FUNCTION CODE 
          SBN    3
          ZJN    PRS14       IF RESET 
          SBN    4-3+1
          MJN    PRS13       IF SETUP OR RESUME 
 PRS12    ABORT  ERIF        * RPV - INCORRECT FUNCTION CODE.*
  
 PRS13    LDC    RSR&RER     SET SETUP AND RESUME PROCESSOR ADDRESS 
 PRS14    LMC    RER         SET RESET PROCESSOR ADDRESS
          STM    RPVA        SET EXTENDED REPRIEVE PROCESSOR
          LJM    PRSX        RETURN 
 STN      SPACE  4,10 
**        STN - SET TERMINAL NUMBER.
* 
*         SETS THE JOB TERMINAL NUMBER IF ONLINE INTERACTIVE JOB. 
* 
*         EXIT   (TN) = TERMINAL NUMBER IF ONLINE.
*                     = ZERO IF NOT ONLINE. 
* 
*         USES   CM - CM+4, TS - TS+4.
* 
*         MACROS SFA. 
  
  
 STN      SUBR               ENTRY/EXIT 
          LDD    CP          READ TERMINAL NUMBER WORD
          ADK    TTNW 
          CRD    CM 
          ADK    TFSW-TTNW   READ EJT ORDINAL WORD
          CRD    TS 
          LDD    CM+1        CHECK TERMINAL NUMBER
 STN1     STD    TN          STORE TERMINAL NUMBER
          ZJN    STNX        IF NO TERMINAL NUMBER, RETURN
          SFA    EJT,TS      READ CONNECTION STATUS 
          ADK    JSNE 
          CRD    CM 
          LDD    CM+4        CHECK CONNECTION STATUS
          SHN    -7 
          LPN    17 
          STM    TOJA 
          LMK    OLCS 
          ZJN    STNX        IF ONLINE, RETURN
          LDN    0
          UJN    STN1        CLEAR TERMINAL NUMBER
          TITLE  BUFFERS AND STORAGE ALLOCATION.
          SPACE  4,10 
          USE    LITERALS    FORCE LITERALS 
          SPACE  4,10 
**        ASSEMBLY OPTIONS FOR COMMON DECKS.
  
  
 EJT$     EQU    1           ASSEMBLE EJT ADDRESSING (COMPGFP)
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPCRS 
*CALL     COMPGFP 
          SPACE  4,10 
**        BUFFER DEFINITIONS. 
  
  
 RPPB     EQU    *           EXTENDED RPV CALL BLOCK
 EXPN     EQU    RPPB+/COMSRPV/RPPL*5  NEW EXCHANGE PACKAGE AREA
 EXPO     EQU    EXPN+/COMSRPV/EXPL*5  OLD EXCHANGE PACKAGE AREA
 LWA      EQU    EXPO+/COMSRPV/EXPL*5  LWA OF BUFFER AREA 
          SPACE  4,10 
**        CHECK FOR OVERFLOW. 
  
  
          ERRNG  7776-LWA    OVERFLOW PP MEMORY 
          TITLE  RPV - ERROR PROCESSOR. 
          IDENT  2RP,PPFW 
*COMMENT RPV - ERROR PROCESSOR. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
 ERR      SPACE  4,15 
**        ERR - ERROR PROCESSOR.
* 
*         ENTRY  (ER) = FWA OF ERROR MESSAGE FOR DAYFILE. 
*                (CN - CN+4) = CONTENTS OF CONTROL POINT WORD *EECW*. 
* 
*         EXIT   DAYFILE MESSAGE ISSUED.
*                CENTRAL PROGRAM ABORTED. 
*                EXIT TO PP RESIDENT. 
* 
*         CALLS  DFM. 
* 
*         MACROS MONITOR. 
  
  
          ORG    PPFW 
 ERR      SUBR               ENTRY
          LDD    ER          ISSUE ERROR MESSAGE
          RJM    DFM
          LDD    EM          CHECK FOR EXTENDED MODE
          ZJN    ERR1        IF NOT EXTENDED MODE 
          LDN    0           CLEAR MASK BITS IN EECW
          STD    CN+1 
          LDD    CP 
          ADN    EECW 
          CWD    CN 
 ERR1     MONITOR  ABTM      ABORT CENTRAL PROGRAM
          LJM    PPR         EXIT 
          SPACE  4,10 
*         ERROR MESSAGES. 
  
  
 ERAC     DATA   C* RPV - CALLED WITHOUT AUTO RECALL.*
 ERAO     DATA   C* RPV - ADDRESS OUT OF RANGE.*
 ERCS     DATA   C* RPV - LWA OF CHECKSUM .LT. FWA.*
 ERIF     DATA   C* RPV - INCORRECT FUNCTION CODE.* 
 ERIP     DATA   C* RPV - INCORRECT PENDING INTERRUPT.* 
 ERIR     DATA   C* RPV - INCORRECT CALL.*
 ERPB     DATA   C* RPV - PARAMETER BLOCK TOO SHORT.* 
 ERRA     DATA   C* RPV - INCORRECT PENDING SYSTEM REQUEST.*
 ERUM     DATA   C* RPV - UNDEFINED MASK.*
          SPACE  4,10 
 RPV      TTL    RPV - REPRIEVE CENTRAL PROGRAM.
          END 
