Table of Contents

CVLCP

Table Of Contents

  • [00009] CVLCP - CVL SCP COMMUNICATIONS.
  • [00013] CVL SCP COMMUNICATIONS.
  • [00045] MAIN PROGRAM.
  • [00046] MAIN PROGRAM.
  • [00144] SUBROUTINES.
  • [00145] CSS - CALL MSS EXECUTIVE SUBSYSTEM.
  • [00184] PID - PROCESS MSIDS.

Source Code

CVLCP.txt
  1. IDENT CVLCP,RBLK
  2. ABS
  3. SST
  4. ENTRY CVL
  5. ENTRY DMP=
  6. ENTRY RFL=
  7. ENTRY SSJ=
  8. SYSCOM B1
  9. TITLE CVLCP - CVL SCP COMMUNICATIONS.
  10. *COMMENT CVLCP - *CVL* SCP COMMUNICATIONS.
  11. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  12. SPACE 4,10
  13. *** CVLCP - CVL SCP COMMUNICATIONS.
  14. * G. S. YODER. 78/08/11.
  15. SPACE 4,10
  16. *** *CVLCP* PERFORMS VALIDATION FUNCTIONS FOR
  17. * MSS HARDWARE DIAGNOSTICS WHICH CANNOT BE PERFORMED
  18. * BY THE PPU PROGRAM *CVL*. THESE INCLUDE -
  19. *
  20. * - VALIDATE MSIDS
  21. * - TEST HARDWARE STATUS
  22. * - MOUNT CE CARTRIDGE FOR DIAGNOSTIC USE
  23. *
  24. * *CVLCP* COMMUNICATES WITH THE MSS EXECUTIVE
  25. * VIA *SCP* CALLS TO PERFORM THESE FUNCTIONS.
  26. SPACE 4,10
  27. ** SPECIAL ENTRY POINTS.
  28.  
  29.  
  30. DMP= EQU 100000B SELECT NO DUMP IF CONTROL CARD CALL
  31. SSJ= EQU 0
  32.  
  33.  
  34. ORG 110B
  35. SPACE 4,10
  36. *CALL COMCMAC
  37. *CALL COMSSSD
  38.  
  39.  
  40. RBLK VFD 36/0,6/RBLKL-1,4/0,2/2,12/0 SCP CALL BLOCK
  41. BSSZ 2
  42. RBLKL EQU *-RBLK
  43.  
  44. TPMB EQU SPPR+1 CVL CALL PARAMETER BLOCK
  45. TITLE MAIN PROGRAM.
  46. ** CVLCP - MAIN PROGRAM.
  47.  
  48.  
  49. CVL SB1 1
  50. SA1 ACTR CHECK CALL TYPE
  51. ZR X1,CVL1 IF *CVL* CALL
  52. MESSAGE (=C* ILLEGAL CONTROL CARD.*),0,R
  53. ABORT
  54.  
  55. * ESTABLISH CONECTION WITH MSS EXECUTIVE.
  56.  
  57. CVL1 MX0 -12
  58. SX5 B0 CLEAR ERROR CODE
  59. BX2 X2-X2
  60. SX6 101B SET ESTABLISH CONECTION
  61. RJ CSS CALL EXECUTIVE
  62. NZ X5,CVL6 IF EXECUTIVE NOT RUNNING
  63.  
  64. * VALIDATE DEVICE ACCESS.
  65.  
  66. SA3 TPMB+1 SET EST ORDINAL
  67. SA1 TPMB+6 CHECK FUNCTIONAL ATTRIBUTES
  68. BX2 -X0*X3
  69. LX2 30
  70. BX6 X2
  71. SA6 CEST
  72. LX1 59-3
  73. NG X1,CVL2 IF RETURN MST REQUEST
  74. RJ PID PROCESS MSIDS
  75. NZ X5,CVL6 IF ERROR
  76. SA1 TPMB+5 CHECK DEVICE CODE
  77. BX1 -X0*X1
  78. SX1 X1-100B
  79. ZR X1,CVL3 IF MST REQUEST
  80.  
  81. * PROCESS CSU REQUEST.
  82.  
  83. SX6 502B SET CSU REQUEST CODE
  84. BX2 X2-X2
  85. EQ CVL5 PROCESS REQUEST
  86.  
  87. * PROCESS MST RETURN.
  88.  
  89. CVL2 SA4 TPMB+7 READ COORDINATES
  90. SX6 506B SET MST RETURN CODE
  91. EQ CVL4 SET COORDINATES
  92.  
  93. * PROCESS MST REQUEST.
  94.  
  95. CVL3 SA4 TPMB+7 CHECK X/Y COORDINATES
  96. BX2 X2-X2
  97. SX6 503B REQUEST = MST ONLY
  98. BX1 X4
  99. LX1 59-48
  100. PL X1,CVL5 IF COORDINATES NOT SUPPLIED
  101. SX6 504B SET CARTRIDGE MOUNT REQUEST
  102. CVL4 BX2 -X0*X4 SET COORDINATES IN REQUEST
  103. LX2 18
  104.  
  105. * CALL EXECUTIVE.
  106.  
  107. CVL5 SA3 CEST
  108. BX2 X2+X3 SET EST ORDINAL IN REQUEST
  109. RJ CSS CALL EXECUTIVE
  110. NZ X5,CVL6 IF ERROR
  111. SX5 X6+ SET POSSIBLE ERROR CODE
  112. SX6 X6-30B
  113. NZ X6,CVL6 IF NOT ILLEGAL COORDINATES ERROR
  114. SX5 X5+4400B SET VALIDATION ERROR BITS
  115.  
  116. * SET VALIDATION BITS AND COMPLETION STATUS.
  117. * (X5) BITS 0-5 = ERROR CODE.
  118. * (X5) BITS 8-11 = VALIDATION BITS.
  119. * (X4) = WORD FOR VALIDATION BYTE.
  120. * (A4) = WORD ADDRESS FOR VALIDATION BYTE.
  121.  
  122. CVL6 MX6 4
  123. LX5 48
  124. BX6 X5*X6
  125. MX2 -6
  126. ZR X6,CVL7 IF NO VALIDATION BYTE TO SET
  127. BX6 X4+X6 SET VALIDATION BYTE
  128. SA6 A4
  129. CVL7 SA1 TPMB SET COMPLETION STATUS
  130. LX2 6
  131. AX5 42
  132. BX7 -X2*X5
  133. SX7 X7+B1 SET POSSIBLE ERROR AND COMPLETE BIT
  134. SA7 A1
  135.  
  136. * TERMINATE CONNECTION WITH EXECUTIVE.
  137.  
  138. SX2 B0
  139. SX6 102B SET TERMINATE CONNECTION
  140. RJ CSS CALL EXECUTIVE
  141. ENDRUN
  142.  
  143. CEST BSSZ 1 EST ORDINAL (SHIFTED 30 BITS)
  144. TITLE SUBROUTINES.
  145. ** CSS - CALL MSS EXECUTIVE SUBSYSTEM.
  146. *
  147. * ENTRY (X2) = BITS 0-41 OF CALL BLOCK REQUEST WORD.
  148. * (X6) = MSS EXECUTIVE REQUEST TYPE AND CODE.
  149. *
  150. * EXIT (X2) = RESPONSE WORD FROM EXECUTIVE.
  151. * (X5) = ERROR CODE IF EXECUTIVE NOT RUNNING.
  152. * (X6) = RESPONSE CODE FROM EXECUTIVE.
  153. *
  154. * USES A - 1, 2, 6.
  155. * X - 1, 2, 5, 6.
  156. *
  157. * MACROS CALLSS, MESSAGE.
  158.  
  159.  
  160. CSS1 SX5 31B SET ERROR
  161.  
  162. CSS SUBR ENTRY/EXIT
  163. LX6 5 SET CEVAL REQUEST IDENTIFIER
  164. SX6 X6+5
  165. LX6 43 MERGE CODE AND REQUEST WORD
  166. BX6 X2+X6
  167. SA6 RBLK+1
  168. SA1 RBLK CLEAR COMPLETE BIT
  169. MX6 59
  170. BX6 X6*X1
  171. SA6 A1
  172. MESSAGE (=C*WAIT MSS EXEC.*),1,R ISSUE WAIT MESSAGE
  173. CALLSS MFSI,RBLK,R CALL MSS EXECUTIVE
  174. MESSAGE =0,1,R CLEAR WAIT MESSAGE
  175. SA1 RBLK CHECK REPLY STATUS
  176. LX1 59-1
  177. NG X1,CSS1 IF EXECUTIVE NOT RUNNING
  178. SA2 RBLK+2 GET RESPONSE WORD
  179. MX6 6
  180. BX6 X2*X6
  181. LX6 6
  182. EQ CSSX EXIT
  183. PID SPACE 4,20
  184. ** PID - PROCESS MSIDS.
  185. *
  186. * ENTRY (X0) = -7777B.
  187. * (X2) = EST ORDINAL (SHIFTED 30 BITS).
  188. * (X5) = 0.
  189. *
  190. * EXIT (A4) = MSID WORD ADDRESS.
  191. * (X4) = MSID WORD FROM CALL BLOCK.
  192. * (X5) = 0 IF NO ERROR.
  193. * (X5) = ERROR CODE IF ERROR.
  194. *
  195. * USES A - 4, 6.
  196. * X - 1, 2, 4, 5, 6.
  197. *
  198. * CALLS CSS.
  199.  
  200.  
  201. PID2 SX5 32B SET EQUIPMENT ACCESS ERROR
  202.  
  203. PID SUBR ENTRY/EXIT
  204. SX6 501B SET RETURN MSIDS REQUEST
  205. RJ CSS CALL EXECUTIVE
  206. NZ X5,PIDX IF EXECUTIVE NOT RUNNING
  207. SA4 TPMB+10B READ MSID WORD FROM CALL BLOCK
  208. NZ X6,PID2 IF MSID READ ERROR
  209. BX2 -X0*X2 ISOLATE RETURNED MSIDS
  210. LX4 59-48
  211. PL X4,PID1 IF MSIDS NOT SUPPLIED BY CALLER
  212. LX4 11-35+60-59+48
  213. BX1 -X0*X4 ISOLATE SUPPLIED MSIDS
  214. BX1 X1-X2
  215. ZR X1,PIDX IF MATCH ON MSIDS
  216. SX5 4404B SET MSID MATCH ERROR
  217. EQ PIDX EXIT WITH ERROR
  218.  
  219. PID1 LX4 11-35+60-59+48 SET MSIDS IN CALL BLOCK
  220. BX6 X0*X4
  221. BX6 X2+X6
  222. LX6 35-11
  223. SA6 A4
  224. EQ PIDX EXIT
  225. SPACE 4
  226. *CALL COMCSYS
  227.  
  228.  
  229. USE //
  230. RFL= BSS 0
  231.  
  232.  
  233. END