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