IDENT CVLCP,RBLK
ABS
SST
ENTRY CVL
ENTRY DMP=
ENTRY RFL=
ENTRY SSJ=
SYSCOM B1
TITLE CVLCP - CVL SCP COMMUNICATIONS.
*COMMENT CVLCP - *CVL* SCP COMMUNICATIONS.
COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
SPACE 4,10
*** CVLCP - CVL SCP COMMUNICATIONS.
* G. S. YODER. 78/08/11.
SPACE 4,10
*** *CVLCP* PERFORMS VALIDATION FUNCTIONS FOR
* MSS HARDWARE DIAGNOSTICS WHICH CANNOT BE PERFORMED
* BY THE PPU PROGRAM *CVL*. THESE INCLUDE -
*
* - VALIDATE MSIDS
* - TEST HARDWARE STATUS
* - MOUNT CE CARTRIDGE FOR DIAGNOSTIC USE
*
* *CVLCP* COMMUNICATES WITH THE MSS EXECUTIVE
* VIA *SCP* CALLS TO PERFORM THESE FUNCTIONS.
SPACE 4,10
** SPECIAL ENTRY POINTS.
DMP= EQU 100000B SELECT NO DUMP IF CONTROL CARD CALL
SSJ= EQU 0
ORG 110B
SPACE 4,10
*CALL COMCMAC
*CALL COMSSSD
RBLK VFD 36/0,6/RBLKL-1,4/0,2/2,12/0 SCP CALL BLOCK
BSSZ 2
RBLKL EQU *-RBLK
TPMB EQU SPPR+1 CVL CALL PARAMETER BLOCK
TITLE MAIN PROGRAM.
** CVLCP - MAIN PROGRAM.
CVL SB1 1
SA1 ACTR CHECK CALL TYPE
ZR X1,CVL1 IF *CVL* CALL
MESSAGE (=C* ILLEGAL CONTROL CARD.*),0,R
ABORT
* ESTABLISH CONECTION WITH MSS EXECUTIVE.
CVL1 MX0 -12
SX5 B0 CLEAR ERROR CODE
BX2 X2-X2
SX6 101B SET ESTABLISH CONECTION
RJ CSS CALL EXECUTIVE
NZ X5,CVL6 IF EXECUTIVE NOT RUNNING
* VALIDATE DEVICE ACCESS.
SA3 TPMB+1 SET EST ORDINAL
SA1 TPMB+6 CHECK FUNCTIONAL ATTRIBUTES
BX2 -X0*X3
LX2 30
BX6 X2
SA6 CEST
LX1 59-3
NG X1,CVL2 IF RETURN MST REQUEST
RJ PID PROCESS MSIDS
NZ X5,CVL6 IF ERROR
SA1 TPMB+5 CHECK DEVICE CODE
BX1 -X0*X1
SX1 X1-100B
ZR X1,CVL3 IF MST REQUEST
* PROCESS CSU REQUEST.
SX6 502B SET CSU REQUEST CODE
BX2 X2-X2
EQ CVL5 PROCESS REQUEST
* PROCESS MST RETURN.
CVL2 SA4 TPMB+7 READ COORDINATES
SX6 506B SET MST RETURN CODE
EQ CVL4 SET COORDINATES
* PROCESS MST REQUEST.
CVL3 SA4 TPMB+7 CHECK X/Y COORDINATES
BX2 X2-X2
SX6 503B REQUEST = MST ONLY
BX1 X4
LX1 59-48
PL X1,CVL5 IF COORDINATES NOT SUPPLIED
SX6 504B SET CARTRIDGE MOUNT REQUEST
CVL4 BX2 -X0*X4 SET COORDINATES IN REQUEST
LX2 18
* CALL EXECUTIVE.
CVL5 SA3 CEST
BX2 X2+X3 SET EST ORDINAL IN REQUEST
RJ CSS CALL EXECUTIVE
NZ X5,CVL6 IF ERROR
SX5 X6+ SET POSSIBLE ERROR CODE
SX6 X6-30B
NZ X6,CVL6 IF NOT ILLEGAL COORDINATES ERROR
SX5 X5+4400B SET VALIDATION ERROR BITS
* SET VALIDATION BITS AND COMPLETION STATUS.
* (X5) BITS 0-5 = ERROR CODE.
* (X5) BITS 8-11 = VALIDATION BITS.
* (X4) = WORD FOR VALIDATION BYTE.
* (A4) = WORD ADDRESS FOR VALIDATION BYTE.
CVL6 MX6 4
LX5 48
BX6 X5*X6
MX2 -6
ZR X6,CVL7 IF NO VALIDATION BYTE TO SET
BX6 X4+X6 SET VALIDATION BYTE
SA6 A4
CVL7 SA1 TPMB SET COMPLETION STATUS
LX2 6
AX5 42
BX7 -X2*X5
SX7 X7+B1 SET POSSIBLE ERROR AND COMPLETE BIT
SA7 A1
* TERMINATE CONNECTION WITH EXECUTIVE.
SX2 B0
SX6 102B SET TERMINATE CONNECTION
RJ CSS CALL EXECUTIVE
ENDRUN
CEST BSSZ 1 EST ORDINAL (SHIFTED 30 BITS)
TITLE SUBROUTINES.
** CSS - CALL MSS EXECUTIVE SUBSYSTEM.
*
* ENTRY (X2) = BITS 0-41 OF CALL BLOCK REQUEST WORD.
* (X6) = MSS EXECUTIVE REQUEST TYPE AND CODE.
*
* EXIT (X2) = RESPONSE WORD FROM EXECUTIVE.
* (X5) = ERROR CODE IF EXECUTIVE NOT RUNNING.
* (X6) = RESPONSE CODE FROM EXECUTIVE.
*
* USES A - 1, 2, 6.
* X - 1, 2, 5, 6.
*
* MACROS CALLSS, MESSAGE.
CSS1 SX5 31B SET ERROR
CSS SUBR ENTRY/EXIT
LX6 5 SET CEVAL REQUEST IDENTIFIER
SX6 X6+5
LX6 43 MERGE CODE AND REQUEST WORD
BX6 X2+X6
SA6 RBLK+1
SA1 RBLK CLEAR COMPLETE BIT
MX6 59
BX6 X6*X1
SA6 A1
MESSAGE (=C*WAIT MSS EXEC.*),1,R ISSUE WAIT MESSAGE
CALLSS MFSI,RBLK,R CALL MSS EXECUTIVE
MESSAGE =0,1,R CLEAR WAIT MESSAGE
SA1 RBLK CHECK REPLY STATUS
LX1 59-1
NG X1,CSS1 IF EXECUTIVE NOT RUNNING
SA2 RBLK+2 GET RESPONSE WORD
MX6 6
BX6 X2*X6
LX6 6
EQ CSSX EXIT
PID SPACE 4,20
** PID - PROCESS MSIDS.
*
* ENTRY (X0) = -7777B.
* (X2) = EST ORDINAL (SHIFTED 30 BITS).
* (X5) = 0.
*
* EXIT (A4) = MSID WORD ADDRESS.
* (X4) = MSID WORD FROM CALL BLOCK.
* (X5) = 0 IF NO ERROR.
* (X5) = ERROR CODE IF ERROR.
*
* USES A - 4, 6.
* X - 1, 2, 4, 5, 6.
*
* CALLS CSS.
PID2 SX5 32B SET EQUIPMENT ACCESS ERROR
PID SUBR ENTRY/EXIT
SX6 501B SET RETURN MSIDS REQUEST
RJ CSS CALL EXECUTIVE
NZ X5,PIDX IF EXECUTIVE NOT RUNNING
SA4 TPMB+10B READ MSID WORD FROM CALL BLOCK
NZ X6,PID2 IF MSID READ ERROR
BX2 -X0*X2 ISOLATE RETURNED MSIDS
LX4 59-48
PL X4,PID1 IF MSIDS NOT SUPPLIED BY CALLER
LX4 11-35+60-59+48
BX1 -X0*X4 ISOLATE SUPPLIED MSIDS
BX1 X1-X2
ZR X1,PIDX IF MATCH ON MSIDS
SX5 4404B SET MSID MATCH ERROR
EQ PIDX EXIT WITH ERROR
PID1 LX4 11-35+60-59+48 SET MSIDS IN CALL BLOCK
BX6 X0*X4
BX6 X2+X6
LX6 35-11
SA6 A4
EQ PIDX EXIT
SPACE 4
*CALL COMCSYS
USE //
RFL= BSS 0
END