User Tools

Site Tools


cdc:nos2.source:opl871:cvl

Table of Contents

CVL

Table Of Contents

  • [00007] CVL - COMMON VALIDATION INTERFACE.
  • [00080] LOCAL DEFINITIONS.
  • [00225] LOCAL MACRO DEFINITIONS.
  • [00227] VBCD - DEFINE VALIDATION BYTE CODES.
  • [00239] FCN - DEFINE FUNCTION PROCESSOR.
  • [00256] MAIN PROGRAM
  • [00257] MAIN PROGRAM.
  • [00309] DPP - DROP PP.
  • [00315] PCE - PROCESS CALL ERROR.
  • [00340] TFCN - FUNCTION CODE TABLE.
  • [00650] ACS - PROCESS ALLOCATABLE EQUIPMENT CHANNEL SHARE BITS.
  • [00716] ACH - ASSIGN CHANNEL TO DIAGNOSTICS.
  • [00759] AES - PROCESS ALLOCATABLE EQUIPMENT SHARE BYTE.
  • [00825] AUS - PROCESS ALLOCATABLE UNIT SHARE BIT.
  • [00885] CAE - CLEAR ASSIGNED EQUIPMENT.
  • [00993] CDD - CHECK FOR ISMD DEVICE.
  • [01011] CEC - CHANGE VALUE IN EQUIPMENT ASSIGNED COUNTER.
  • [01037] CKA - CHECK ADDRESS.
  • [01069] CMT - CHECK FOR MAGNETIC TAPE EQUIPMENT.
  • [01086] FCH - FETCH CHANNEL(S) FROM NEXT NON-RMS EST ENTRY.
  • [01109] FCM - FIND CONTROL MODULE.
  • [01150] FNE - FIND NEXT EST ENTRY.
  • [01188] GCH - GET CHANNELS FROM EST ENTRY.
  • [01217] GCI - GET CHANNEL FROM CHANNEL STATUS TABLE.
  • [01262] MCH - MATCH CHANNELS.
  • [01310] RHP - RHF PROCESSOR.
  • [01421] SCH - SCAN CHANNELS FOR A MATCH.
  • [01444] SCV - SET CHANNEL VALIDATION BYTE.
  • [01463] SFN - SEARCH LOCAL FNT FOR FILE ON SPECIFIED EQUIPMENT.
  • [01518] SVB - SET VALIDATION BYTE.
  • [01568] UCS - PROCESS UNIT RECORD CHANNEL SHARE BITS.
  • [01675] UES - PROCESS UNIT RECORD EQUIPMENT SHARE BIT.
  • [01766] TMTE - TABLE OF MAGNETIC TAPE EQUIPMENT MNEMONICS.
  • [01774] TNCE - TABLE OF NAD EQUIPMENT MNEMONICS.
  • [01779] UUS - PROCESS UNIT RECORD UNIT SHARE BIT.
  • [02113] TOFP - TABLE OF OLD FORMAT ENTRY PROCESSORS.
  • [02157] CMP - CM DESCRIPTOR ENTRY PROCESSOR.
  • [02183] CMR - CHECK FOR MATCHING ROUTINE.
  • [02202] CPR - CHECK PROCESSOR RESERVED FOR NOS/VE.
  • [02230] DES - DETERMINE EXTENDED MEMORY SIZE/1000B.
  • [02275] EMP - EXTENDED MEMORY DESCRIPTOR ENTRY PROCESSOR.
  • [02293] FDC - FIND DEVICE CODE.
  • [02334] FMN - FIND MNEMONIC.
  • [02370] GSF - GET SAB FIRST WORD ADDRESS.
  • [02385] IOP - IOU DESCRIPTOR ENTRY PROCESSOR.
  • [02418] MEE - FIND MATCHING EST ENTRY.
  • [02490] MEQ - MATCH EQUIPMENT (CONTROLLER) NUMBER.
  • [02569] MUN - MATCH UNIT NUMBER.
  • [02626] PRP - PROCESSOR DESCRIPTOR ENTRY PROCESSOR.
  • [02710] RNW - READ NEXT SAB WORD.
  • [02727] RPB - READ PARAMETER BLOCK.
  • [02756] SMP - SET AND/OR MATCH PARAMETERS.
  • [02913] TEM - TEST FOR EXTENDED MEMORY PRESENT.
  • [02964] VTP - VALIDATE TAPE PREASSIGNMENT INFORMATION.
  • [03065] WOW - WRITE OLD FORMAT WORD.
  • [03084] PRS - PRESET ROUTINES FOR RHF PROCESSING.
  • [03168] DVT - DETERMINE VALIDATION TYPE.
  • [03246] VDN - VALIDATE DEDICATED NAD USAGE.
  • [03264] VLC - VALIDATE LOCAL NAD CONCURRENTLY.
  • [03280] VLD - VALIDATE LOCAL NAD DEDICATED.
  • [03307] MASS STORAGE VALIDATION OVERLAY.
  • [03315] ECV - *3CV* ENTRY POINT.
  • [03321] ECS - EXTENDED CORE STORAGE CALL.
  • [03448] ESM - EXTENDED SEMI-CONDUCTOR MEMORY STORAGE CALL.
  • [03587] PSN - CHECK PACK SERIAL NUMBER.
  • [03673] UXP - UPDATE EXCHANGE PACKAGE.

Source Code

CVL.txt
  1. IDENT CVL,CVL
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. *COMMENT CVL - COMMON VALIDATION INTERFACE FOR NOS.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE CVL - COMMON VALIDATION INTERFACE.
  8. SPACE 4,10
  9. ***** CVL - COMMON VALIDATION INTERFACE FOR NOS.
  10. * R. E. DENNIS. 77/02/03.
  11. * C. R. LUND. 81/01/12.
  12. * J. M. MAREK. 88/01/26.
  13. *
  14. * CVL IS CALLED BY THE ON-LINE DIAGNOSTIC SOFTWARE TO
  15. * PROVIDE VALIDATION OF THE CALLER, VERIFICATION OF THE
  16. * HARDWARE TO BE TESTED, AND THE GRANTING OR DENYING OF
  17. * PERMISSION FOR SOLE USE OF HARDWARE ELEMENTS.
  18. * IN ADDITION, UPON REQUEST, CVL WILL RETURN SYSTEM AND
  19. * MACHINE CHARACTERISTICS TO THE CALLER.
  20. SPACE 4,10
  21. *** CALL
  22. *
  23. *
  24. *T IR 18/ *CVL*,1/1,5/ CP,12/ VN,6/ CODE,18/ ADDR
  25. * CP CONTROL POINT NUMBER.
  26. * VN VERSION NUMBER (FUNCTION 4).
  27. * 0 - RETURN OLD FORMAT SAB.
  28. * 1 - RETURN NEW FORMAT SAB.
  29. * CODE FUNCTION CODE.
  30. * ADDR PARAMETER BLOCK ADDRESS.
  31. SPACE 4,10
  32. *** ROUTINES CALLED.
  33. *
  34. * 0PX.
  35. SPACE 4,10
  36. *** DAYFILE MESSAGES.
  37. *
  38. * * CVL CALL ERROR.*
  39. * MAY INDICATE ANY ONE OF THE FOLLOWING -
  40. * 1. RECALL BIT NOT SET.
  41. * 2. INCORRECT FUNCTION CODE.
  42. * 3. THE CALLER DID NOT SUPPLY AN EST ORDINAL, A CH/EQ/UN
  43. * COMBINATION, OR A MNEMONIC.
  44. * 4. EST ORDINAL IS SUPPLIED BY THE CALLER, AND THE FUNCTION
  45. * BIT MEANING THE UNIT IS NOT IN THE EST IS ALSO SET.
  46. * 5. THE NOT-IN-EST BIT IS SET, AND NEITHER THE DEVICE CODE
  47. * NOR THE DEVICE MNEMONIC IS SUPPLIED.
  48. * 6. THE NOT-IN-EST BIT IS SET AND A UNIT RETURN WAS
  49. * REQUESTED.
  50. * 7. THE USERS ECS FIELD LENGTH WAS NOT ZERO WHEN A DIAGNOSTIC
  51. * REQUEST WAS MADE TO ACCESS AN AREA OF *ECS* OR *ESM*
  52. * FOR DIAGNOSTIC TESTING. DIAGNOSTIC AREAS ARE THE
  53. * PREALLOCATED TRACK, THE MAINTENANCE HALF OF ECS, OR ALL OF
  54. * ECS IF THE DEVICE HAS THE DOWN BIT SET IN THE EST. A ZERO
  55. * FIELD LENGTH IN THE *ECS* WORD (BYTE 4) WILL PROVIDE A
  56. * FIXED RA AND FL FOR DIAGNOSTIC ISOLATION PURPOSES TO ALLOW
  57. * ON-LINE REPAIR OF ECS.
  58. * FOR *ESM*, A LOCAL FILE EM* IS CREATED FOR DIAGNOSTICS.
  59. * 8. USER DID NOT REQUEST (OR WAS NOT ASSIGNED) A TAPE FILE
  60. * WHEN USING TAPE PREASSIGNMENT.
  61. * 9. USER-SUPPLIED DEVICE MNEMONIC DOES NOT MATCH THAT OF
  62. * TAPE ASSIGNED WHEN USING TAPE PREASSIGNMENT.
  63. * 10. USER ATTEMPTED TO LOAD TAPE CONTROLWARE WHEN
  64. * USING TAPE PREASSIGNMENT.
  65. * 11. USER REQUESTED A CH/EQ/UN COMBINATION DEFINED IN THE
  66. * EST, BUT THE DEVICE CODE REQUESTED WAS NOT DEFINED IN
  67. * CVL-S INTERNAL TABLE.
  68. * 12. USER REQUESTED A CHANNEL WHICH DOES NOT EXIST.
  69. *
  70. * * USER VALIDATION DENIED.*
  71. * INDICATES ONE OF THE FOLLOWING.
  72. * 1. THE CALLING PROGRAM IS NOT SYSTEM ORIGIN AND EITHER THE
  73. * USER DOES NOT HAVE SYSTEM ORIGIN PRIVILEGES, OR
  74. * ENGINEERING MODE IS NOT SET AT THE SYSTEM CONSOLE.
  75. * 2. THE USER DOES NOT HAVE VALIDATION PRIVILEGES TO RUN ON-
  76. * LINE DIAGNOSTICS. THIS IS REQUIRED FOR ALL *VALIDATE
  77. * CUSTOMER ENGINEER* FUNCTIONS (EXCEPT FOR CERTAIN RHF
  78. * FUNCTIONS).
  79. SPACE 4
  80. TITLE LOCAL DEFINITIONS.
  81. ** COMMON DECKS.
  82.  
  83. *CALL COMPMAC
  84. *CALL COMSCPS
  85. QUAL DSL
  86. *CALL COMSDSL
  87. QUAL *
  88. *CALL COMSESS
  89. *CALL COMSMSP
  90. *CALL COMSMST
  91. *CALL COMSPIM
  92. SSJ$ EQU 1
  93. *CALL COMSSSD
  94. *CALL COMSSSJ
  95. *CALL COMSZOL
  96.  
  97.  
  98. **** DIRECT LOCATION ASSIGNMENTS.
  99.  
  100. FA EQU T1 EXERCISE CAUTION WHEN USING THIS CELL
  101. FS EQU T2 - T6 EXERCISE CAUTION WHEN USING THESE CELLS
  102. EP EQU 20 EST UNIT NUMBER
  103. VT EQU 21 TEMPORARY VALIDATION CODE WORD
  104. BS EQU 22 PARAMETER BLOCK SIZE
  105. VH EQU 23 CODE SHOWING HIGHEST MATCH FOUND
  106. SB EQU 24 SHARE BITS
  107. TI EQU 25 DEVICE CODE TABLE INDEX
  108. CS EQU 26 CHANNEL STATUS BYTE FROM CHANNEL TABLE
  109. DA EQU 27 EST INDEX
  110. LO EQU 30 LAST EST ORDINAL + 1
  111. LM EQU 31 LAST MASS STORAGE ORDINAL + 1
  112. CD EQU 33 - 37 TEMP
  113. CC EQU 34 AUXILIARY CHANNEL FROM EST
  114. CB EQU CC+1 SECOND CHANNEL FROM EST
  115. CA EQU CB+1 FIRST CHANNEL FROM EST
  116. CI EQU CA+1 CHANNEL BYTE INDEX
  117. ES EQU 40 *EQDE* WORD OF EST ENTRY
  118. EA EQU ES+5 ORDINAL OF MATCHED EST ENTRY
  119. CE EQU 47 POINTER TO EST CHANNEL BYTE
  120. FB EQU 57 FNT RELATIVE ADDRESS (0BF PARAMETER)
  121. AE EQU 60 - 65 *EQAE* WORD OF EST ENTRY
  122. ****
  123. SPACE 4
  124. * VALIDATION BYTE BIT DEFINITIONS.
  125.  
  126. VBWD EQU 13 VALIDATION ERROR IN WORD
  127. VBB1 EQU 12 VALIDATION ERROR IN BYTE 1
  128. VBB2 EQU 11 VALIDATION ERROR IN BYTE 2
  129. VBB3 EQU 10 VALIDATION ERROR IN BYTE 3
  130. VBB4 EQU 7 VALIDATION ERROR IN BYTE 4
  131. VBS1 EQU 6 ELEMENT IN BYTE 1 CANNOT BE SHARED
  132. VBS2 EQU 5 ELEMENT IN BYTE 2 CANNOT BE SHARED
  133. VBS3 EQU 4 ELEMENT IN BYTE 3 CANNOT BE SHARED
  134. VBS4 EQU 3 ELEMENT IN BYTE 4 CANNOT BE SHARED
  135. VBCD EQU 0 CALLER HAS SUPPLIED DATA IN WORD
  136.  
  137. * VALIDATION BYTE BIT MASKS.
  138.  
  139. VWDM BITSET VBWD VALIDATION ERROR IN WORD
  140. VB1M BITSET VBB1 VALIDATION ERROR IN BYTE 1
  141. VB2M BITSET VBB2 VALIDATION ERROR IN BYTE 2
  142. VB3M BITSET VBB3 VALIDATION ERROR IN BYTE 3
  143. VB4M BITSET VBB4 VALIDATION ERROR IN BYTE 4
  144. VS1M BITSET VBS1 ELEMENT IN BYTE 1 CANNOT BE SHARED
  145. VS2M BITSET VBS2 ELEMENT IN BYTE 2 CANNOT BE SHARED
  146. VS3M BITSET VBS3 ELEMENT IN BYTE 3 CANNOT BE SHARED
  147. VS4M BITSET VBS4 ELEMENT IN BYTE 4 CANNOT BE SHARED
  148. VCDM BITSET VBCD CALLER HAS SUPPLIED DATA IN WORD
  149.  
  150. * FUNCTION CHARACTERISTICS BIT DEFINITIONS.
  151.  
  152. LMEM EQU 0 CALLER WILL LOAD CONTROLLER MEMORY
  153. WRTR EQU 1 CALLER WILL WRITE ON VALIDATED UNIT
  154. NPRE EQU 2 WILL WRITE OUTSIDE PREALLOCATED AREA.
  155. * EQU 4 RESERVED FOR CDC
  156. * EQU 5 RESERVED FOR CDC
  157. RTNU EQU 3 RETURN UNIT TO SYSTEM
  158. NEST EQU 6 UNIT NOT IN EST
  159. SPCL EQU 7 SPECIAL REQUEST FLAG
  160. * FOR *ECS* THIS BIT IS IGNORED IF *NPRE*
  161. * (BIT 2) IS NOT SET.
  162. * 0 = WILL ACCESS ALL OF NORMAL *ECS* IF
  163. * DOWN BIT IS SET IN EST.
  164. * 1 = WILL ACCESS MAINTENANCE MODE HALF OF
  165. * *ECS* IF MAINTENANCE MODE BIT IN THE
  166. * ASSOCIATED MST IS SET.
  167. * FOR *RHF*
  168. * 1 = WILL EITHER LOAD OR DUMP NAD
  169. * CONTROLWARE IF SET IN CONJUNCTION
  170. * WITH BIT 0 AND REQUESTING VALIDATION
  171. * FOR RHF HARDWARE.
  172. BESM EQU 10 A *DEMA* FLAG TO CREATE EM* LOCAL FILE.
  173. * 0 = CVL WILL CREATE LOCAL FILE NAMED EM*.
  174. * 1 = CVL WILL NOT CREATE LOCAL FILE.
  175.  
  176. * FUNCTION CHARACTERISTICS BIT MASKS.
  177.  
  178. CMEM BITSET LMEM
  179. WRTM BITSET WRTR
  180. PREM BITSET NPRE
  181. NESM BITSET NEST DEVICE NOT EXPECTED IN EST
  182. SPCM BITSET SPCL BIT MASK FOR SPECIAL FUNCTION BIT 7.
  183.  
  184. * VALIDATION RESPONSE CODES.
  185.  
  186. VRGR EQU 0 VALIDATION GRANTED
  187. VRSH EQU 2 VALIDATION GRANTED, EQUIPMENT SHARED
  188. VRNM EQU 4 VALIDATION DENIED, NO MATCH
  189. VRCI EQU 5 VALIDATION DENIED, CRITICAL INFORMATION
  190. VRUS EQU 6 VALIDATION DENIED, EQUIPMENT IN USE
  191. VRNB EQU 7 VALIDATION DENIED, SHARE BYTE NOT SET
  192. VRMS EQU 10 VALIDATION DENIED, IN MAINTENANCE STATE
  193. VRMA EQU 11 VALIDATION DENIED, MA BIT NOT SET IN MST
  194. VRLB EQU 12 VALIDATION DENIED, LOCAL DEVICE CODE BAD
  195. VRRB EQU 13 VALIDATION DENIED, REMOTE DEVICE CODE BAD
  196. VRSB EQU 14 VALIDATION DENIED, SHARE BYTE SET
  197. VRUA EQU 15 VALIDATION DENIED, CANNOT ACCESS NETWORK
  198. VRCH EQU 16 VALIDATION DENIED, NAD CONNECTED TO HOST
  199. VRTC EQU 17 VALIDATION DENIED, NO TCU ENABLES SET
  200. VRDS EQU 33 VALIDATION DENIED, DEVICE STATUS ERROR
  201. VRSI EQU 34 SITUATION INDETERMINATE, NO RESPONSE
  202. VRCS EQU 37 VALIDATION DENIED, CM IN USE
  203. VRCD EQU 40 VALIDATION DENIED, CM NOT DOWNED
  204. VRDW EQU 41 VALIDATION GRANTED, DEVICE LOCALLY DOWN
  205. VRBC EQU 42 VALIDATION DENIED, NO BC LOAD ALLOWED
  206. VRFN EQU 43 VALIDATION DENIED, FILE NOT FOUND
  207. VRUV EQU 44 VALIDATION DENIED, USER VALIDATION DENIED
  208. VRNZ EQU 45 VALIDATION DENIED, NON-ZERO EM FL
  209. VRLT EQU 46 VALIDATION DENIED, LABELLED TAPE PREASSIGN
  210. VREF EQU 47 VALIDATION DENIED, ENTRY FOUND IN EST
  211. VRMN EQU 50 VALIDATION DENIED, MNE/DC INCOMPATIBLE
  212. VRIC EQU 51 VALIDATION DENIED, INCORRECT REQUEST PARAM
  213. VRAO EQU 52 VALIDATION DENIED, ADDRESS OUT OF RANGE
  214. VRIP EQU 53 VALIDATION DENIED, INCORRECT PARAM COMB.
  215. VREN EQU 54 VALIDATION DENIED, ENTRY NOT IN EST
  216. VRIS EQU 55 VALIDATION DENIED, I/O SEQUENCE ERROR
  217. * EQU 56 (RESERVED - DO NOT USE)
  218.  
  219.  
  220. * ASSEMBLY CONSTANTS.
  221.  
  222.  
  223. CH EQU 0 CHANNEL MODIFICATION CONSTANT
  224. FCV EQU 6001 FWA OF *5CV* OVERLAY
  225. TITLE LOCAL MACRO DEFINITIONS.
  226. VBCD SPACE 4,10
  227. ** VBCD - DEFINE VALIDATION BYTE CODES.
  228. *
  229. * ENTRY WORD,BITS
  230. * WORD = PARAMETER WORD CONTAINING NON-VALID ENTRY.
  231. * BITS = BIT NUMBERS DEFINING BYTE IN ERROR.
  232.  
  233.  
  234. MACRO VBCD,T,A,B
  235. LOC A*100-ESTV*100+B
  236. T BSS 0
  237. ENDM
  238. FCN SPACE 4,10
  239. ** FCN - DEFINE FUNCTION PROCESSOR.
  240. *
  241. * ENTRY NAME,USV
  242. * NAME = NAME OF FUNCTION PROCESSOR.
  243. * USV, IF PRESENT, USER VALIDATION REQUIRED.
  244.  
  245.  
  246. .2 SET 0
  247. FCN MACRO A,B
  248. LOC .2
  249. IFC NE,$B$$
  250. CON 1,A
  251. ELSE
  252. CON 0,A
  253. ENDIF
  254. .2 SET .2+1
  255. ENDM
  256. TITLE MAIN PROGRAM
  257. ** CVL - MAIN PROGRAM.
  258.  
  259.  
  260. ORG PPFW
  261. CVL RJM CRS CHECK RECALL STATUS
  262. ZJP CVL1 IF NOT SET
  263. LDN PPUL GET PP STATUS
  264. CRD CM
  265. LDD CM SET MAXIMUM CHANNEL NUMBER + 1
  266. ERRNZ NCHL-PPUL CODE DEPENDS ON VALUE
  267. RAM GCIA
  268. LDN 0
  269. SBD CM
  270. RAM GCIB
  271. LDD CM+3 SET NUMBER OF CONCURRENT PPS
  272. ERRNZ CPPL-PPUL CODE DEPENDS ON VALUE
  273. LPN 77
  274. RAM GCIC
  275. LDD CP GET USER-S EJT ORDINAL
  276. ADN TFSW
  277. CRD CM
  278. LDD CM
  279. STM EJTO
  280. LDN ESTP READ EST POINTER
  281. CRD CM
  282. LDD CM+2 SET LAST EST ORDINAL + 1
  283. STD LO
  284. LDD CM+3 SET LAST MASS STORAGE ORDINAL + 1
  285. STD LM
  286. LDD IR+3 CHECK FUNCTION
  287. SHN -6+1
  288. STD T1
  289. ADN 1
  290. STD T2
  291. SBN TFCNL
  292. CVL1 PJN PCE0 IF INCORRECT FUNCTION
  293. LDM TFCN,T1
  294. ZJN CVL2 IF ENGINEERING ACCESS NOT REQUIRED
  295. RJM CUA CHECK USER ACCESS
  296. LDD CM
  297. ZJN CVL2 IF ENGINEERING ACCESS
  298. LDC VRUV*100+1 SET USER VALIDATION DENIED/COMPLETE BIT
  299. STM RSCD
  300. RJM CKA GET PARAMETER BLOCK ADDRESS
  301. CWM TPMB,ON
  302. UJN DPP DROP PP
  303.  
  304. CVL2 LDM TFCN,T2 SET PROCESSOR
  305. STD T1
  306. RJM 0,T1 PROCESS FUNCTION
  307. * UJN DPP DROP PP
  308. DPP SPACE 4,10
  309. ** DPP - DROP PP.
  310.  
  311.  
  312. DPP MONITOR DPPM DROP PP
  313. LJM PPR EXIT TO PP RESIDENT
  314. PCE SPACE 4,10
  315. ** PCE - PROCESS CALL ERROR.
  316.  
  317.  
  318. PCE SUBR ENTRY/EXIT
  319. PCE0 LDC MSGA * INCORRECT CEVAL REQUEST PARAMETER(S).*
  320. PCE1 RJM DFM
  321. PCE2 LDC MSGB * CVL CALL ERROR.*
  322. * UJN FEP ABORT JOB
  323.  
  324.  
  325. * FEP - FATAL ERROR PROCESSOR.
  326.  
  327.  
  328. FEP RJM DFM
  329. MONITOR ABTM ABORT JOB
  330. LJM PPR EXIT TO PP RESIDENT
  331.  
  332.  
  333. * ERROR MESSAGES ISSUED ON *CVL* ABORT.
  334.  
  335. MSGA DATA C* INCORRECT CEVAL REQUEST PARAMETER(S).*
  336. MSGB DATA C* CVL CALL ERROR.*
  337. MSGC DATA C* ADDRESS OUT OF RANGE.*
  338. MSGD DATA C* REQUESTED CHANNEL DOES NOT EXIST.*
  339. TFCN SPACE 4,10
  340. ** TFCN - FUNCTION CODE TABLE.
  341. *
  342. * ENTRY ONE WORD INDEXED BY FUNCTION PROCESSOR.
  343. *
  344. *T, 12/ ADDR
  345. * ADDR = ADDRESS OF FUNCTION PROCESSOR.
  346.  
  347.  
  348. TFCN BSS 0
  349. FCN PCE (UNDEFINED)
  350. FCN VCE,E VALIDATE CUSTOMER ENGINEER
  351. FCN RMC READ MACHINE CHARACTERISTICS
  352. FCN CEA,E CHECK ENGINEERING ACCESS
  353. FCN RSB READ SYSTEM ATTRIBUTE BLOCK
  354. FCN MEM,E RETURN EXCHANGE PACKAGE RA, RAE, FL, FLE.
  355. LOC *O
  356. TFCNL EQU *-TFCN LENGTH OF FUNCTION CODE TABLE.
  357. MEMORY SPACE 4,10
  358. ** MEMORY LOCATIONS.
  359.  
  360. EJTO CON 0 EJT ORDINAL
  361. TPMB TITLE PARAMETER BLOCK TABLE.
  362. *** PARAMETER BLOCK DEFINITIONS.
  363.  
  364. TPMB BSS 0
  365. RAMM BSS 2 RETURNED RA FOR CEMEM MACRO
  366. FLMM BSS 2 FL FOR CEMEM MACRO
  367. RSCD BSS 1 RESPONSE CODE
  368. RAEM BSS 2 RAE FOR CEMEM MACRO
  369. ESTV EQU RAEM EST ORDINAL VALIDATION BYTE
  370. FLEM BSS 2 FLE FOR CEMEM MACRO
  371. ESTO BSS 1 EST ORDINAL
  372. CHAN BSS 1 CHANNEL VALIDATION BYTE
  373. BSS 1 RESERVED
  374. BSS 1 RESERVED
  375. CHS2 BSS 1 SECOND CHANNEL BYTE
  376. CHS1 BSS 1 FIRST CHANNEL BYTE
  377. EQPV BSS 1 EQUIPMENT VALIDATION BYTE
  378. BSS 2 RESERVED
  379. LDVC BSS 1 LOCAL NAD DEVICE CODE
  380. EQPN BSS 1 EQUIPMENT (CONTROLLER) NUMBER
  381. UNIT BSS 1 UNIT NUMBER VALIDATION BYTE
  382. BSS 3 RESERVED
  383. UNUM BSS 1 UNIT NUMBER
  384. DCMV BSS 1 DEVICE CODE AND MNEMONIC VALIDATION BYTE
  385. BSS 2 RESERVED
  386. DEVM BSS 1 DEVICE MNEMONIC
  387. DEVC BSS 1 DEVICE CODE
  388. BSS 4 RESERVED
  389. FNCH BSS 1 FUNCTION CHARACTERISTICS
  390. PSNV BSS 1 PACK SN VALIDATION BYTE
  391. PKSN BSS 4 PACK SERIAL NUMBER
  392. RAC1 EQU PKSN+2 RHF ACCESS CODE (PART 1)
  393. RAC2 EQU PKSN+3 RHF ACCESS CODE (PART 2)
  394. TCUV BSS 1 TCU ENABLES VALIDATION BYTE
  395. BSS 3 RESERVED
  396. TCUE BSS 1 BUFFER SIZE/TCU ENABLES
  397. LTCV BSS 1 TCU ADDRESS VALIDATION BYTE
  398. BSS 2 RESERVED
  399. RDVC BSS 1 REMOTE NAD DEVICE CODE
  400. LTCA BSS 1 LOGICAL TCU ADDRESS
  401. TPMBL EQU *-TPMB PARAMETER BLOCK LENGTH
  402.  
  403.  
  404. *** DETAILED PARAMETER BLOCK DEFINITIONS ARE AS FOLLOWS -
  405. *
  406. *T ADDR+0 48/ ,6/ RC,5/ ,1/C
  407. *T,ADDR+1 5/ VB,6/ ,1/X,36/ ,12/ ESTO
  408. *T,ADDR+2 5/ VB,4/ S,2/ ,1/X,12/ ,12/ ,12/ CH2,12/ CH1
  409. *T,ADDR+3 5/ VB,4/ S,2/ ,1/X,36/ ,12/ EQPN
  410. *T,ADDR+3 5/ VB,4/ S,2/ ,1/ X,24/ ,12/ LDVC,12/ EQPN (RHF)
  411. *T,ADDR+4 5/ VB,4/ S,2/ ,1/X,36/ ,12/ UN
  412. *T,ADDR+5 5/ VB,4/ S,2/ ,1/ X,24/ ,12/ DEVM,12/ DEVC
  413. *T,ADDR+6 48/ ,12/ FC
  414. *T,ADDR+7 5/ VB,6/ ,1/ X,48/ PACK SN
  415. *T,ADDR+7 5/ VB,6/ ,1/X,24/ RAE,24/ FLE (FORMAT WHEN ECS DIAGNOSTICS)
  416. *T,ADDR+10 5/ VB,6/ ,1/X,24/ RAE,24/ FLE (FORMAT FOR DB DISK WHEN EM*)
  417. *T,ADDR+7 5/ VB,39/ ,16/ RHAC (RHF DIAGNOSTICS ONLY)
  418. *T,ADDR+10 5/ VB,4/ S,43/ ,4/ BFSZ,4/ TCUE
  419. *T,ADDR+11 5/ VB,4/ S,27/ ,12/ RDVC,12/ LTCA
  420. *
  421. * WHERE -
  422. * RC (11-6) = RESPONSE CODE (SET BY *CVL*).
  423. * 0 = VALIDATION GRANTED.
  424. * 2 = VALIDATION GRANTED, ELEMENT MIGHT BE
  425. * SHARED WITH ANOTHER MAINFRAME.
  426. * 4 = VALIDATION DENIED, ELEMENT NOT IN EST.
  427. * 5 = VALIDATION DENIED, CRITICAL
  428. * INFORMATION MAY BE DESTROYED.
  429. * 6 = VALIDATION DENIED, ELEMENT IN USE.
  430. * 7 = VALIDATION DENIED, SHARE BYTE NOT SET.
  431. * 10 = VALIDATION DENIED, MAINTENANCE STATE.
  432. * 11 = VALIDATION DENIED, MA NOT SET IN MST
  433. * 12 = VALIDATION DENIED, LOCAL DEVICE
  434. * CODE BAD.
  435. * 13 = VALIDATION DENIED, REMOTE DEVICE
  436. * CODE BAD.
  437. * 14 = VALIDATION DENIED, SHARE BYTE SET.
  438. * 15 = VALIDATION DENIED, CANNOT ACCESS
  439. * NETWORK.
  440. * 16 = VALIDATION DENIED, NAD CONNECTED
  441. * TO HOST.
  442. * 17 = VALIDATION DENIED, NO TCU
  443. * ENABLES SET.
  444. * 33 = VALIDATION DENIED, DEVICE STATUS
  445. * ERROR.
  446. * 34 = SITUATION INDETERMINATE, NO
  447. * RESPONSE.
  448. * 37 = VALIDATION DENIED, CM IN USE.
  449. * 40 = VALIDATION DENIED, CM NOT DOWNED.
  450. * 41 = VALIDATION GRANTED, VERIFY
  451. * INDEPENDENT SHARED DEVICE DOWN ON ALL
  452. * MAINFRAMES.
  453. * 42 = VALIDATION DENIED, NO BC LOAD ON
  454. * PRE-ASSIGNMENT.
  455. * 43 = VALIDATION DENIED, FILE NOT FOUND.
  456. * 44 = VALIDATION DENIED, USER VALIDATION
  457. * DENIED.
  458. * 45 = VALIDATION DENIED, NON-ZERO EXTENDED
  459. * MEMORY FL.
  460. * 46 = VALIDATION DENIED, LABELLED TAPE WAS
  461. * PRE-ASSIGNED.
  462. * 47 = VALIDATION DENIED, ENTRY FOUND IN EST.
  463. * 50 = VALIDATION DENIED, MNEMONIC/DEVICE
  464. * CODE INCOMPATIBLE.
  465. * 51 = VALIDATION DENIED, INCORRECT CEVAL
  466. * REQUEST PARAMETER(S).
  467. * 52 = VALIDATION DENIED, ADDRESS OUT OF
  468. * RANGE.
  469. * 53 = VALIDATION DENIED, INCORRECT CEVAL
  470. * PARAMETER COMBINATION.
  471. * 54 = VALIDATION DENIED, ENTRY NOT IN EST.
  472. * 55 = VALIDATION DENIED, CEVAL I/O SEQUENCE
  473. * ERROR.
  474. * 56 = (RESERVED - DO NOT USE)
  475. * C (0) = COMPLETE BIT (SET BY *CVL*).
  476. * VB (59-55) = VALIDATION ERROR BITS (SET BY *CVL*).
  477. * BIT 59 SET = ERROR IN WORD.
  478. * BIT 58 SET = ERROR IN BYTE 1.
  479. * BIT 57 SET = ERROR IN BYTE 2.
  480. * BIT 56 SET = ERROR IN BYTE 3.
  481. * BIT 55 SET = ERROR IN BYTE 4.
  482. * X (48) = DATA IN WORD (SUPPLIED BY CALLER - IF NOT
  483. * SET, *CVL* SUPPLIES MISSING FIELD).
  484. * ESTO (11-0) = EST ORDINAL OF ELEMENT.
  485. * S = SHARE BITS - IF SET, REQUESTS EXCLUSIVE ACCESS.
  486. * BIT 54 = FOR ELEMENT IN BYTE 1.
  487. * BIT 53 = FOR ELEMENT IN BYTE 2.
  488. * BIT 52 = FOR ELEMENT IN BYTE 3.
  489. * BIT 51 = FOR ELEMENT IN BYTE 4.
  490. * CHX = CHANNEL NUMBERS (4/0,1/P,1/0,1/C,5/N).
  491. * P = PORT NUMBER FOR CONCURRENT CHANNEL (1 = B).
  492. * C = CONCURRENT CHANNEL FLAG.
  493. * N = CHANNEL NUMBER.
  494. * LDVC (23-12) = LOCAL NAD DEVICE CODE (RHF ONLY)
  495. * EQPN (11-0) = EQUIPMENT (CONTROLLER) NUMBER.
  496. * UN (11-0) = UNIT NUMBER.
  497. * DEVM (23-12) = DEVICE MNEMONIC.
  498. * DEVC (11-0) = DEVICE CODE (SEE TABLE *TDVC*).
  499. * FC (11-0) = FUNCTION BITS.
  500. * BIT 0 = LOAD CONTROLLER MEMORY.
  501. * BIT 1 = WILL WRITE ON UNIT.
  502. * BIT 2 = WILL USE NON - PREALLOCATED AREA.
  503. * BIT 3 = RESERVED.
  504. * BIT 4 = UNUSED (POSSIBLE PHASE II CEVAL)
  505. * BIT 5 = UNUSED (POSSIBLE PHASE II CEVAL)
  506. * BIT 6 = ELEMENT NOT IN EST.
  507. * BIT 7 = SPECIAL REQUEST FLAG
  508. * FOR *ECS* THIS BIT IS IGNORED IF *NPRE*
  509. * (BIT 2) IS NOT SET.
  510. * 0 = WILL ACCESS ALL OF NORMAL *ECS* IF
  511. * DOWN BIT IS SET IN EST.
  512. * 1 = WILL ACCESS MAINTENANCE MODE HALF OF
  513. * *ECS* IF MAINTENANCE MODE BIT IN THE
  514. * ASSOCIATED MST IS SET.
  515. * FOR *RHF*
  516. * 1 = WILL EITHER LOAD OR DUMP NAD
  517. * CONTROLWARE IF SET IN CONJUNCTION
  518. * WITH BIT 0 AND REQUESTING VALIDATION
  519. * FOR RHF HARDWARE.
  520. * BIT 8 = DEMA (DB DISK) REQUEST FLAG TO CVL
  521. * FOR CREATION OF EM* LOCAL FILE.
  522. * 0 = CVL WILL CREATE LOCAL FILE NAMED EM*.
  523. * 1 = CVL WILL NOT CREATE LOCAL FILE.
  524. * BITS (11-9) = UNUSED.
  525. * PACK SN = PACK SERIAL NUMBER IN BCD CODE.
  526. * RAE/FLE = EXCHANGE PACKAGE RAE AND FLE (ECS ONLY)
  527. * RAE/FLE = EXCHANGE PACKAGE RAE/FLE (DEMA/ESM ONLY)
  528. * RHAC = ACCESS CODE (RHF)
  529. * BFSZ = BUFFER SIZE (RHF)
  530. * TCUE = TCU ENABLES (RHF)
  531. * RDVC = REMOTE NAD DEVICE CODE (RHF)
  532. * LTCA = LOGICAL TCU ADDRESS (RHF)
  533. COMPDVC SPACE 4,10
  534. *** *CEVAL* DEVICE CODE DEFINITIONS.
  535.  
  536.  
  537. QUAL$ EQU 1 DO NOT QUALIFY COMMON DECKS
  538. LIST X
  539. *CALL COMPDVC
  540. LIST *
  541. VCE TITLE RESIDENT ROUTINES.
  542. *** FUNCTION 1.
  543. * VCE - VALIDATE CUSTOMER ENGINEER.
  544. *
  545. * ENTRY
  546. *T IR 18/ *CVL*,1/1,5/ CP ,12/ 0,6/ 01,18/ ADDR
  547. *
  548. * CP CONTROL POINT.
  549. * ADDR ADDRESS OF THE PARAMETER BLOCK (DEFINED PREVIOUSLY).
  550.  
  551.  
  552. VCE SUBR ENTRY/EXIT
  553.  
  554. * VERIFY USER VALIDATIONS.
  555.  
  556. LDD CP GET ON-LINE DIAGNOSTICS VALIDATION
  557. ADK JSCW
  558. CRD CM
  559. LDD CM
  560. SHN 0-12
  561. LPN 1
  562. RAM VCEB
  563. RJM RPB READ PARAMETER BLOCK
  564. MJN VCE1 IF NOT RHF VALIDATION CALL
  565. RJM PRS
  566. PJN VCE3.1 IF NO FURTHER VALIDATION REQUIRED
  567. VCE1 LDN **
  568. VCEB EQU *-1 (*COLD* VALIDATION PRIVILEGES)
  569. ZJN VCE2 IF NOT VALIDATED
  570.  
  571. * VERIFY EQUIPMENT SELECTION.
  572.  
  573. RJM SMP SET MATCH PARAMETERS
  574. PJN VCE3 IF PARAMETERS OK
  575. LDD VH
  576. RJM SVB SET VALIDATION BYTE
  577. LDN VRNM&VRUV SET NO MATCH RESPONSE
  578. VCE2 LMN VRUV USER VALIDATION DENIED
  579. UJN VCE3.1 RETURN RESPONSE CODE
  580.  
  581. VCE3 ZJN VCE4 IF A MATCH WAS FOUND
  582. LDD TI CHECK DEVICE CODE
  583. SBN LRMS LAST RMS POINTER
  584. MJP VCE15 IF MASS STORAGE
  585. SBK LMUX-LRMS CHECK FOR ECS
  586. MJN VCE5 IF NOT ECS
  587. SBK LECS-LMUX
  588. PJN VCE5 IF NOT ECS
  589. RJM TEM TEST FOR EXTENDED MEMORY PRESENT
  590. VCE3.1 LJM VCE16 RETURN RESPONSE CODE
  591.  
  592. VCE4 LDD ES
  593. SHN 21-13
  594. MJN VCE9 IF MASS STORAGE DEVICE
  595.  
  596. * VERIFY NON-MASS STORAGE DEVICES.
  597.  
  598. VCEA RJM UUS PROCESS UNIT RECORD UNIT SHARE BYTE
  599. * UJN VCE5 (TAPE PREASSIGNMENT)
  600.  
  601. NJN VCE8 IF UNIT VALIDATION DENIED
  602. VCE5 RJM UES PROCESS UNIT RECORD EQUIPMENT SHARE BYTE
  603. NJN VCE8 IF EQUIPMENT VALIDATION DENIED
  604. RJM UCS PROCESS UNIT RECORD CHANNEL SHARE BYTE
  605. NJN VCE8 IF CHANNEL VALIDATION DENIED
  606. LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
  607. RJM CMT
  608. ZJN VCE7 IF MAGNETIC TAPE
  609. RJM RHP CHECK FOR RHF DEVICE
  610. PJN VCE10 IF RHF DEVICE
  611. LDN VRGR&VRSH SET VALIDATION GRANTED RESPONSE
  612. VCE7 LMN VRSH SET EQUIPMENT SHARED RESPONSE
  613. VCE8 UJN VCE10 RETURN RESPONSE CODE
  614.  
  615. * VERIFY MASS STORAGE EQUIPMENT.
  616.  
  617. VCE9 LDD TI INDEX INTO DEVICE CODE TABLE (TDVC)
  618. SBK LMUX
  619. MJN VCE14 IF NOT EXTENDED MEMORY
  620. SBK LECS-LMUX
  621. PJN VCE14 IF NOT EXTENDED MEMORY
  622. EXECUTE 3CV
  623. RJM /3CV/ECS
  624. VCE10 UJN VCE16 PROCESS APPROPRIATE VALIDATION CODE
  625.  
  626. VCE14 RJM AUS PROCESS ALLOCATABLE UNIT SHARE BYTE
  627. NJN VCE16 IF UNIT VALIDATION DENIED
  628. VCE15 RJM AES PROCESS ALLOCATABLE EQUIPMENT SHARE BYTE
  629. NJN VCE16 IF EQUIPMENT VALIDATION DENIED
  630. RJM ACS PROCESS ALLOCATABLE CHANNEL SHARE BYTE
  631. NJN VCE16 IF CHANNEL VALIDATION DENIED
  632. EXECUTE 3CV
  633. RJM /3CV/PSN PROCESS PACK SERIAL NUMBER
  634. STD SB SET RESPONSE CODE
  635. RJM /3CV/ESM CHECK IF DB EQUIP AND FOR LFN=EM* CREATION
  636. UJN VCE17 CONTINUE VALIDATION PROCESSING
  637.  
  638. * COMPLETE REQUEST (NORMAL AND ERROR EXIT).
  639.  
  640. VCE16 STD SB
  641. VCE17 RJM CAE CLEAR PREVIOUSLY ASSIGNED EQUIPMENT
  642. LDD SB SET UP RESPONSE CODE
  643. SHN 6
  644. ADN 1 ADD COMPLETE BIT
  645. STM RSCD
  646. RJM CKA GET PARAMETER BLOCK ADDRESS
  647. CWM TPMB,BS RETURN PARAMETER BLOCK TO USER
  648. LJM VCEX EXIT
  649. ACS SPACE 4,15
  650. ** ACS - PROCESS ALLOCATABLE EQUIPMENT CHANNEL SHARE BITS.
  651. *
  652. * ENTRY (ACSA) = NUMBER OF EST ENTRIES CONTAINING CHANNEL.
  653. *
  654. * EXIT (A) = 0, IF VALIDATION GRANTED.
  655. * (A) = RESPONSE CODE, IF VALIDATION DENIED (CHANNEL
  656. * VALIDATION BYTE SET).
  657. *
  658. * USES CI, DA.
  659. *
  660. * CALLS ACH, FNE, GCI, SCH, SCV.
  661.  
  662.  
  663. ACS8 LDM CHS2,CI
  664. ACS9 STM CHS1 SET CHANNEL TO BE USED
  665. RJM GCI
  666. LDD T1
  667. ZJN ACSX IF CHANNEL UNASSIGNED
  668. LDM CHAN
  669. SHN 21-VBCD
  670. MJN ACS10 IF CHANNEL SUPPLIED BY CALLER
  671. SOD CI
  672. MJN ACS10 IF ALL CHANNELS DOWN
  673. LDM CHS2,CI
  674. NJN ACS9 IF ANOTHER CHANNEL TO CHECK
  675. ACS10 RJM SCV INDICATE CHANNEL(S) CANNOT BE SHARED
  676.  
  677. ACS SUBR ENTRY/EXIT
  678. LDD TI MAP ACCESS LEVEL 10 TO LEVEL 20 FOR RMS
  679. SBN LRMS
  680. PJN ACS0 IF NOT RMS EQUIPMENT
  681. LDM EQPV
  682. SHN -VBS4
  683. ZJN ACS0 IF EQUIPMENT TO BE SHARED
  684. RJM CDD CHECK FOR ISMD DEVICE
  685. NJN ACS0.1 IF NOT ISMD TYPE RMS DEVICE
  686. ACS0 LDN 1 INITIALIZE CHANNEL INDEX
  687. STD CI
  688. LDM CHAN
  689. SHN -VBS4
  690. ZJP ACS8 IF CHANNEL IS TO BE SHARED
  691. ACS0.1 LDM CHS2,CI
  692. ACS1 STM CHS1
  693. RJM GCI
  694. SCN 40 IGNORE THE CHANNEL DOWN BIT
  695. ADD T1
  696. ZJN ACS2 IF CHANNEL UNASSIGNED
  697. ACS1.1 SOD CI
  698. MJN ACS1.2 IF ALL CHANNELS HAVE BEEN CHECKED
  699. LDM CHS2,CI
  700. NJN ACS1 IF ANOTHER CHANNEL TO TEST
  701. ACS1.2 LJM ACS10 INDICATE ALL CHANNELS ARE UP
  702.  
  703. ACS2 LDN NOPE-1
  704. STD DA
  705. ACS3 RJM FNE FIND NEXT NON-EMPTY EST
  706. ZJN ACS4 IF CHANNEL NOT IN EST
  707. RJM SCH
  708. NJN ACS3 IF NO CHANNEL MATCH
  709. LDD CS
  710. ZJN ACS1.1 IF CHANNEL NOT DOWN
  711. ACS4 RJM ACH
  712. ZJN ACS1.1 IF CHANNEL NOT ASSIGNED TO DIAGNOSTIC
  713. LDN 0
  714. LJM ACSX EXIT
  715. ACH SPACE 4,15
  716. ** ACH - ASSIGN CHANNEL TO DIAGNOSTICS.
  717. *
  718. * *ACH* WILL REQUEST AN UNCONFIGURED CHANNEL TO BE DOWNED
  719. * BEFORE ASSIGNMENT IF IT IS NOT ALREADY DOWN.
  720. *
  721. * ENTRY (CHS1) = CHANNEL TO BE REQUESTED.
  722. * (CS) = CHANNEL BYTE FROM CHANNEL TABLE.
  723. *
  724. * EXIT (A) .NE. 0 IF CHANNEL ASSIGNED.
  725. * (A) = 0 IF CHANNEL NOT ASSIGNED.
  726. *
  727. * USES CM - CM+4.
  728. *
  729. * CALLS CEC.
  730. *
  731. * MACROS MONITOR.
  732.  
  733.  
  734. ACH SUBR ENTRY/EXIT
  735. LDD CS
  736. NJN ACH1 IF CHANNEL ALREADY DOWN
  737. STD CM+1
  738. STD CM+4 CLEAR MUX FLAG
  739. LDN DNCS DOWN UNCONFIGURED CHANNEL
  740. STD CM+2
  741. LDM CHS1 SET REQUESTED CHANNEL
  742. LPN 77
  743. STD CM+3
  744. MONITOR SEQM
  745. ACH1 LDM CHS1
  746. LPN 77
  747. STD CM+3
  748. LDN ICNS SET CHANNEL ASSIGNMENT SUBFUNCTION
  749. STD CM+2
  750. LDD IR+1 SET CONTROL POINT NUMBER
  751. LPN 37
  752. STD CM+1
  753. MONITOR SEQM
  754. LDD CM+1
  755. ZJN ACHX IF CHANNEL NOT ASSIGNED
  756. RJM CEC INCREMENT EQUIPMENT COUNTER
  757. UJN ACHX EXIT
  758. AES SPACE 4,15
  759. ** AES - PROCESS ALLOCATABLE EQUIPMENT SHARE BYTE.
  760. *
  761. * EXIT (A) = 0, IF VALIDATION GRANTED.
  762. * (A) = RESPONSE CODE, IF VALIDATION DENIED ( EQUIPMENT
  763. * VALIDATION BYTE SET).
  764. * (ACSA) = NUMBER OF EST ENTRIES CONTAINING CHANNEL.
  765. *
  766. * USES CI, DA, T1.
  767. *
  768. * CALLS CDD, FCM.
  769.  
  770.  
  771. AES3 LDM FNCH
  772. SHN 21-LMEM
  773. PJN AES4 IF NOT CHANGING CONTROLLER MEMORY
  774. LDM CHAN
  775. SHN -VBS4
  776. ZJN AES6 IF CHANNEL SHARE BIT NOT SET EITHER
  777. AES4 LDD AE+4
  778. ZJN AESX IF CONTROL MODULE UNASSIGNED
  779. AES5 LDN VRCS&VRNB CONTROL MODULE IN USE
  780. AES6 LMN VRNB SET RESPONSE
  781. STD T1
  782. LDC VWDM+VB4M
  783. RAM EQPV
  784. LDD T1
  785.  
  786. AES SUBR ENTRY/EXIT
  787. RJM CDD CHECK FOR ISMD DEVICE
  788. ZJN AES1 IF ISMD TYPE RMS DEVICE
  789. LDN 0
  790. UJN AESX CONTROLLER NOT IN EST
  791.  
  792. AES1 RJM FCM FIND CONTROL MODULE
  793. ZJN AESX IF CONTROL MODULE NOT IN EST
  794. STM AESA
  795. LDM EQPV
  796. SHN 21-VBS4
  797. PJP AES3 IF CONTROL MODULE WILL BE SHARED
  798.  
  799. * IF THE CONTROL MODULE IS DOWNED, THEN ALL DRIVES ON THAT
  800. * CONTROL MODULE ARE GUARANTEED TO BE DOWNED AND GLOBALLY
  801. * UNLOADED.
  802.  
  803. LDD CM
  804. LPN 3
  805. LMN 3
  806. ZJN AES2 IF CONTROL MODULE IS DOWNED
  807. LDN VRCD&VRNB CONTROL MODULE NOT DOWNED
  808. LJM AES6 ISSUE MESSAGE
  809.  
  810. AES2 LDM EJTO
  811. LMD AE+4
  812. ZJN AESX IF ALREADY ASSIGNED TO THIS DIAGNOSTIC
  813. LDK RDES REQUEST DOWNED EQUIPMENT
  814. STD CM+2
  815. LDM AESA
  816. STD CM+1
  817. MONITOR REQM
  818. LDD CM+1
  819. ZJP AES5 IF ASSIGNED TO ANOTHER DIAGNOSTIC
  820. LDN 0
  821. LJM AESX EXIT WITH CONTROL MODULE ASSIGNED
  822.  
  823. AESA CON 0 CONTROL MODULE EST ORDINAL
  824. AUS SPACE 4,15
  825. ** AUS - PROCESS ALLOCATABLE UNIT SHARE BIT.
  826. *
  827. * ENTRY (ESTO) = EST ORDINAL OF UNIT.
  828. * (ES - ES+4) = FIRST WORD OF EST ENTRY FOR UNIT.
  829. *
  830. * EXIT (A) = 0, IF VALIDATION GRANTED.
  831. * (SB) = VRDW, IF VALIDATION GRANTED (OPERATOR SHOULD
  832. * ENSURE DEVICE IS NOT BEING USED BY OTHER
  833. * MAINFRAMES).
  834. * (A) = RESPONSE CODE, IF VALIDATION DENIED (UNIT
  835. * VALIDATION BYTE SET).
  836. *
  837. * USES T1, AE - AE+4, CM - CM+4.
  838. *
  839. * MACROS MONITOR, SFA.
  840.  
  841.  
  842. AUS4 LDM FNCH GET FUNCTION ATTRIBUTES
  843. LPN WRTM+PREM
  844. LMN WRTM+PREM
  845. ZJN AUS6 IF WRITING OUT OF PRE-ALLOCATED AREA
  846. LDD AE+4
  847. ZJN AUSX IF UNIT UNASSIGNED
  848. AUS5 LDN VRUS&VRCI EQUIPMENT IN USE
  849. AUS6 LMN VRCI SET RESPONSE
  850. STD T1
  851. LDC VWDM+VB4M
  852. RAM UNIT SET UNIT VALIDATION BYTE
  853. LDD T1 RESTORE RESPONSE
  854.  
  855. AUS SUBR ENTRY/EXIT
  856. SFA EST,ESTO READ EQUIPMENT ASSIGNMENT
  857. ADK EQAE
  858. CRD AE
  859. LDM UNIT
  860. SHN 21-VBS4 ISOLATE SHARE BIT
  861. PJN AUS4 IF UNIT WILL BE SHARED
  862. LDD ES
  863. SHN 21-1
  864. AUS1 PJN AUS5 IF UNIT NOT OFF
  865. SHN 21-0-21+1
  866. PJN AUS5 IF UNIT NOT DOWN
  867. LDM EJTO EJT ORDINAL
  868. LMD AE+4
  869. AUS2 ZJN AUSX IF ASSIGNED TO THIS JOB PREVIOUSLY
  870. LDK RDES REQUEST DOWNED EQUIPMENT
  871. STD CM+2
  872. LDM ESTO EST ORDINAL
  873. STD CM+1
  874. MONITOR REQM
  875. LDD CM+1
  876. ZJN AUS1 IF ASSIGNED TO ANOTHER DIAGNOSTIC
  877. LDD ES
  878. SHN 21-11
  879. PJN AUS3 IF NOT A SHARED DEVICE
  880. LDN VRDW DEVICE IS LOCALLY DOWN
  881. STD SB
  882. AUS3 LDN 0 VALIDATION GRANTED
  883. UJN AUS2 RETURN
  884. CAE SPACE 4,15
  885. ** CAE - CLEAR ASSIGNED EQUIPMENT.
  886. *
  887. * ENTRY (SB) = VALIDATION RESPONSE CODE.
  888. *
  889. * EXIT IF CALLER IS RETURNING EQUIPMENT OR IF VALIDATION
  890. * HAS BEEN DENIED, THEN ALL EQUIPMENT PREVIOUSLY
  891. * ASSIGNED TO DIAGNOSTIC HAS BEEN RELEASED AND THE
  892. * EQUIPMENT ASSIGNED COUNTER HAS BEEN DECREMENTED
  893. * APPROPRIATELY.
  894. *
  895. * USES CI, AE - AE+4, CM - CM+4, ES - ES+4.
  896. *
  897. * CALLS CEC, CMT, GCI, MCH, SFN.
  898. *
  899. * MACROS MONITOR, SFA.
  900.  
  901.  
  902. CAE SUBR ENTRY/EXIT
  903. LDM FNCH
  904. SHN 21-RTNU
  905. MJN CAE1 IF CALLER RETURNING EQUIPMENT
  906. LDD SB
  907. ZJN CAEX IF VALIDATION GRANTED
  908. LMN VRSH
  909. ZJN CAEX IF VALIDATION GRANTED
  910. LMN VRDW&VRSH
  911. ZJN CAEX IF VALIDATION GRANTED
  912. CAE1 LDD CP READ EQUIPMENT ASSIGNED COUNTER
  913. ADN EACW
  914. CRD CM
  915. LDD CM
  916. CAE1.1 ZJN CAEX IF NO EQUIPMENT ASSIGNED
  917. LDM ESTO CHECK EST ORDINAL
  918. SBD LO
  919. PJN CAE2 IF NOT IN EST
  920. ADD LO READ EST ENTRY
  921. SFA EST
  922. ADK EQDE
  923. CRD ES
  924. ADK EQAE-EQDE READ EQUIPMENT ASSIGNMENT
  925. CRD AE
  926. LDD AE+4
  927. LMM EJTO
  928. NJN CAE2 IF NOT ASSIGNED TO THIS JOB
  929. LDD ES+3 CHECK FOR MAGNETIC TAPE EQUIPMENT
  930. RJM CMT
  931. NJN CAE1.3 IF NOT TAPE
  932. * LDN 0 FNT/FST UPDATE NOT REQUIRED
  933. RJM SFN SEARCH FNT FOR FILE
  934. ZJN CAE1.1 IF TAPE WAS PREASSIGNED
  935. CAE1.3 LDM ESTO RETURN EQUIPMENT
  936. STD CM+1
  937. MONITOR DEQM
  938. CAE2 RJM CDD CHECK FOR ISMD DEVICE
  939. NJN CAE2.1 IF NOT ISMD TYPE RMS DEVICE
  940. RJM FCM
  941. ZJN CAE2.1 IF CONTROL MODULE NOT IN EST
  942. STM CM+1
  943. LDM AE+4
  944. ZJN CAE2.1 IF UNASSIGNED
  945. LMM EJTO
  946. NJN CAE2.1 IF ASSIGNED TO ANOTHER DIAGNOSTIC
  947. MONITOR DEQM
  948. CAE2.1 LDM CHAN
  949. SHN 21-VBCD
  950. PJN CAE3 IF CHANNEL NOT SUPPLIED BY CALLER
  951. LDN 0 INITIALIZE LAST CHANNEL INDEX
  952. STD CI
  953. LDM CHS1
  954. UJN CAE4 CHECK FOR CHANNEL ASSIGNMENT
  955.  
  956. CAE3 RJM MCH GET CHANNELS
  957. LDM CHS2,CI
  958. CAE4 RJM GCI
  959. LDM EJTO
  960. LMD T1
  961. NJN CAE6 IF NOT ASSIGNED TO THIS JOB
  962. LDD IR+1 CP NUMBER
  963. LPN 37
  964. STD CM+1
  965. LDN CCNS RELEASE CHANNEL ASSIGNMENT SUBFUNCTION
  966. STD CM+2
  967. LDM CHS1 CHANNEL NUMBER
  968. LPN 77
  969. STD CM+3
  970. MONITOR SEQM
  971. * LDN 0
  972. CAEA UJN CAE4.1 DECREMENT EQUIPMENT ASSIGNED COUNTER
  973. * STD CM+4 (LOADING NAD CONTROLWARE ONLY)
  974.  
  975. LDM CHS1 CHANNEL NUMBER
  976. STD CM+3
  977. LDN UPCS UP CHANNEL SUBFUNCTION
  978. STD CM+2
  979. LDM ESTO EST ORDINAL
  980. STD CM+1
  981. MONITOR SEQM
  982. * LDN 0
  983. CAE4.1 RJM CEC DECREMENT EQUIPMENT ASSIGNED COUNTER
  984. CAE5 LJM CAEX EXIT
  985.  
  986. CAE6 SOD CI
  987. MJN CAE5 IF ALL CHANNELS CHECKED
  988. LDM CHS2,CI
  989. ZJN CAE5 IF ALL CHANNELS CHECKED
  990. STM CHS1
  991. LJM CAE4 TEST ANOTHER CHANNEL
  992. CDD SPACE 4,10
  993. ** CDD - CHECK FOR ISMD DEVICE.
  994. *
  995. * ENTRY (TI) = INDEX INTO *COMPDVT* TABLE.
  996. *
  997. * EXIT (A) = 0, IF ISMD TYPE DEVICE.
  998.  
  999.  
  1000. CDD1 LCN 0 SET NOT AN ISMD DEVICE
  1001.  
  1002. CDD SUBR ENTRY/EXIT
  1003. LDD TI
  1004. SBN FISM
  1005. MJN CDDX IF NOT ISMD DEVICE
  1006. SBN LISM-FISM
  1007. PJN CDD1 IF NOT ISMD DEVICE
  1008. LDN 0
  1009. UJN CDDX RETURN
  1010. CEC SPACE 4,10
  1011. ** CEC - CHANGE VALUE IN EQUIPMENT ASSIGNED COUNTER.
  1012. *
  1013. * ENTRY (A) = 0 IF COUNTER IS TO BE DECREMENTED.
  1014. * (A) .NE. 0 IF COUNTER IS TO BE INCREMENTED.
  1015. *
  1016. * EXIT COUNTER INCREMENTED/DECREMENTED APPROPRIATELY.
  1017. *
  1018. * USES T2, T3, CM - CM+4.
  1019.  
  1020.  
  1021. CEC SUBR ENTRY/EXIT
  1022. STD T3
  1023. LDD CP READ EQUIPMENT ASSIGNED COUNTER
  1024. ADN EACW
  1025. STD T2
  1026. CRD CM
  1027. LDD T3
  1028. ZJN CEC1 IF DECREMENTING COUNTER
  1029. AOD CM
  1030. UJN CEC2 UPDATE COUNTER IN CP AREA
  1031.  
  1032. CEC1 SOD CM
  1033. CEC2 LDD T2
  1034. CWD CM
  1035. UJN CECX EXIT
  1036. CKA SPACE 4,10
  1037. ** CKA - CHECK ADDRESS.
  1038. *
  1039. * ENTRY (IR+3 - IR+4) = RELATIVE ADDRESS.
  1040. * (BS) = PARAMETER BLOCK WORD COUNT.
  1041. *
  1042. * EXIT (A) = ABSOLUTE ADDRESS.
  1043. *
  1044. * CALLS PCE.
  1045.  
  1046.  
  1047. CKA2 LDD IR+3 LOAD ABSOLUTE ADDRESS
  1048. LPN 77
  1049. SHN 6
  1050. ADD RA
  1051. SHN 6
  1052. ADD IR+4
  1053.  
  1054. CKA SUBR ENTRY/EXIT
  1055. LDD IR+3 RELATIVE ADDRESS
  1056. LPN 77
  1057. SHN 14
  1058. LMD IR+4
  1059. SBN 2
  1060. MJN CKA1 IF OUT OF RANGE
  1061. ADN 2
  1062. ADD BS ADD BLOCK WORD COUNT
  1063. SHN -6
  1064. SBD FL
  1065. MJN CKA2 IF IN RANGE
  1066. CKA1 LDC MSGC * ADDRESS OUT OF RANGE.*
  1067. LJM PCE1 * CVL CALL ERROR.*
  1068. CMT SPACE 4,10
  1069. ** CMT - CHECK FOR MAGNETIC TAPE EQUIPMENT.
  1070. *
  1071. * ENTRY (A) = DEVICE MNEMONIC.
  1072. *
  1073. * EXIT (A) = 0, IF MAGNETIC TAPE UNIT.
  1074.  
  1075.  
  1076. CMT SUBR ENTRY/EXIT
  1077. LMC 2RMT
  1078. ZJN CMTX IF *MT*
  1079. LMC 2RNT&2RMT
  1080. ZJN CMTX IF *NT*
  1081. LMC 2RCT&2RNT
  1082. ZJN CMTX IF *CT*
  1083. LMC 2RAT&2RCT
  1084. UJN CMTX (A) = 0 IF *AT*
  1085. FCH SPACE 4,15
  1086. ** FCH - FETCH CHANNEL(S) FROM NEXT NON-RMS EST ENTRY.
  1087. *
  1088. * ENTRY (DA) = EST ORDINAL - 1 OF NEXT EST ENTRY TO CHECK.
  1089. * (LO) = LAST EST ENTRY IN TABLE + 1.
  1090. *
  1091. * EXIT (A) = NONZERO, IF A NON-RMS ENTRY FOUND.
  1092. * = 0, IF NO MORE NON-RMS ENTRIES IN TABLE.
  1093. * (DA) = EST ORDINAL OF FOUND ENTRY.
  1094. * (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
  1095. * (CM - CM+4) = *EQDE* WORD OF EST ENTRY.
  1096. *
  1097. * CALLS FNE.
  1098.  
  1099.  
  1100. FCH SUBR ENTRY/EXIT
  1101. FCH1 RJM FNE FIND NEXT EST ENTRY ON CHANNEL
  1102. ZJN FCHX IF NO MORE EST ENTRIES IN TABLE
  1103. LDD CM
  1104. SHN 21-13
  1105. MJN FCH1 IF RMS ENTRY
  1106. LDN 1
  1107. UJN FCHX EXIT
  1108. FCM SPACE 4,20
  1109. ** FCM - FIND CONTROL MODULE.
  1110. *
  1111. * *FCM* SEARCHES THE EST FOR A CONTROL MODULE EST ENTRY WHOSE
  1112. * EQUIPMENT (CONTROL MODULE) NUMBER MATCHES THE UPPER OCTAL
  1113. * DIGIT OF *UNUM*. (THE PHYSICAL UNIT NUMBER *UNUM* CONSISTS OF
  1114. * CONTROL MODULE NUMBER * 10B + DRIVE NUMBER.)
  1115. *
  1116. * ENTRY (LO) = LAST EST ORDINAL + 1.
  1117. *
  1118. * EXIT (A) = CONTROL MODULE EST ORDINAL, IF FOUND.
  1119. * = 0, IF CONTROL MODULE NOT IN EST.
  1120. * (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
  1121. * (CM - CM+4) = *EQDE* WORD OF EST ENTRY.
  1122. *
  1123. * USES DA, AE - AE+4, CM - CM+4.
  1124. *
  1125. * MACROS SFA.
  1126.  
  1127.  
  1128. FCM SUBR ENTRY/EXIT
  1129. LDN NOPE-1
  1130. STD DA
  1131. FCM1 AOD DA CHECK NEXT EST ENTRY
  1132. LMD LO
  1133. ZJN FCMX IF CONTROL MODULE NOT IN EST
  1134. SFA EST,DA GET EST ENTRY
  1135. ADK EQDE
  1136. CRD CM
  1137. ADK EQAE-EQDE GET EQUIPMENT ASSIGNMENT
  1138. CRD AE
  1139. LDD CM+3 CHECK FOR A CONTROL MODULE
  1140. LMC 2RCM
  1141. NJN FCM1 IF NOT A CONTROL MODULE
  1142. LDD CM+4 CHECK IF THE RIGHT EQUIPMENT (CONTROLLER)
  1143. SHN -6
  1144. LMM UNUM
  1145. SCN 7
  1146. NJN FCM1 IF NOT THE RIGHT EQUIPMENT NUMBER
  1147. LDD DA
  1148. LJM FCMX EXIT
  1149. FNE SPACE 4,10
  1150. ** FNE - FIND NEXT EST ENTRY.
  1151. *
  1152. * *FNE* FINDS THE NEXT NON-EMPTY EST ENTRY AND EXTRACTS
  1153. * ITS CHANNEL NUMBERS.
  1154. *
  1155. * ENTRY (DA) = EST ORDINAL - 1 OF NEXT EST ENTRY TO CHECK.
  1156. * (LO) = LAST EST ENTRY IN TABLE + 1.
  1157. *
  1158. * EXIT (A) = NONZERO, IF AN EST ENTRY FOUND.
  1159. * 0, IF NO MORE ENTRIES IN TABLE.
  1160. * (DA) = EST ORDINAL OF FOUND ENTRY.
  1161. * (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
  1162. * (CM - CM+4) = *EQDE* WORD OF EST ENTRY.
  1163. *
  1164. * USES CE, DA, AE - AE+4, CM - CM+4.
  1165. *
  1166. * CALLS GCH.
  1167. *
  1168. * MACROS SFA.
  1169.  
  1170.  
  1171. FNE SUBR ENTRY/EXIT
  1172. FNE1 AOD DA
  1173. LMD LO
  1174. ZJN FNEX IF NO MORE EST ENTRIES TO CHECK
  1175. SFA EST,DA GET NEXT EST ENTRY
  1176. ADK EQDE
  1177. CRD CM
  1178. ADK EQAE-EQDE
  1179. CRD AE
  1180. LDD CM+3
  1181. ZJN FNE1 IF ENTRY EMPTY
  1182. LDN CM+1 GET CHANNELS FROM EST
  1183. STD CE
  1184. RJM GCH
  1185. LDD DA
  1186. UJN FNEX EXIT WITH MATCH
  1187. GCH SPACE 4,10
  1188. ** GCH - GET CHANNELS FROM EST ENTRY.
  1189. *
  1190. * ENTRY (CE) = POINTER TO CHANNEL BYTE IN EST ENTRY (BYTE 1).
  1191. * (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
  1192. *
  1193. * EXIT (CA - CC) = CHANNEL NUMBERS.
  1194. *
  1195. * USES CA, CB, CC.
  1196.  
  1197.  
  1198. GCH2 LDN 0 CLEAR AUXILIARY CHANNEL
  1199. GCH3 STD CC
  1200. LDI CE FETCH FIRST TWO CHANNELS
  1201. STD CA
  1202. LDM 1,CE
  1203. STD CB
  1204.  
  1205. GCH SUBR ENTRY/EXIT
  1206. LDM 2,CE CHECK DEVICE TYPE
  1207. LMC 2RDE
  1208. ZJN GCH1 IF EXTENDED MEMORY DEVICE
  1209. LMN 2RDP&2RDE
  1210. NJN GCH2 IF NOT EXTENDED MEMORY
  1211. GCH1 LDD AE+2
  1212. LPN 37 GET SIDE DOOR PORT CHANNEL NUMBER
  1213. ZJN GCH3 IF NO CHANNEL
  1214. LMC 4000
  1215. UJN GCH3 SET CHANNEL NUMBER
  1216. GCI SPACE 4,10
  1217. ** GCI - GET CHANNEL FROM CHANNEL STATUS TABLE.
  1218. *
  1219. * ENTRY (A) = CHANNEL NUMBER.
  1220. *
  1221. * EXIT (A) = CHANNEL BYTE FROM TABLE.
  1222. * (CS) = CHANNEL BYTE FROM TABLE.
  1223. * (T1) = CORRESPONDING CHANNEL ASSIGNMENT TABLE ENTRY.
  1224. * TO *PCE0* IF CHANNEL DOES NOT EXIST.
  1225. *
  1226. * USES CM - CM+4, T0 - T7.
  1227.  
  1228.  
  1229. GCI SUBR ENTRY/EXIT
  1230. LPN 77 IGNORE CIO CHANNEL PORT NUMBER
  1231. STD T2 SAVE CHANNEL NUMBER
  1232. GCIA SBN ** (MAXIMUM NIO CHANNEL NUMBER)
  1233. MJN GCI2 IF NON-CONCURRENT CHANNEL
  1234. GCIB SBN 40-** (40-MAXIMUM NIO CHANNEL NUMBER)
  1235. MJN GCI1 IF UNDEFINED CHANNEL
  1236. GCIC SBN ** (NUMBER OF CIO PPS/CHANNELS)
  1237. MJN GCI2 IF CONCURRENT CHANNEL
  1238. GCI1 LDC MSGD *REQUESTED CHANNEL DOES NOT EXIST*
  1239. LJM PCE0 PROCESS CALL ERROR
  1240.  
  1241. GCI2 LCN 0 INITIALIZE CHANNEL STATUS TABLE INDEX
  1242. STD T0
  1243. GCI3 AOD T0
  1244. LCN 5
  1245. RAD T2
  1246. PJN GCI3 IF NOT CORRECT INDEX
  1247. LDC CHTP READ FWA OF CHANNEL STATUS TABLE
  1248. CRD CM
  1249. LDD CM+2 BUILD FWA OF TABLE
  1250. SHN 14
  1251. LMD CM+3
  1252. ADD T0 ADD CORRECT CHANNEL TABLE WORD INDEX
  1253. CRD CM
  1254. ADN CTALL READ CHANNEL ASSIGNMENT TABLE
  1255. CRD T3
  1256. LDM T3+5,T2
  1257. STD T1
  1258. LDM CM+5,T2
  1259. STD CS
  1260. UJP GCIX EXIT
  1261. MCH SPACE 4,15
  1262. ** MCH - MATCH CHANNELS.
  1263. *
  1264. * ENTRY (AE - AE+4) = *EQAE* WORD OF EST ENTRY.
  1265. * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
  1266. *
  1267. * EXIT (A) = 0, IF A MATCH.
  1268. * (A) NON-ZERO, IF NO MATCH (VH PROPERLY SET).
  1269. *
  1270. * USES CE, CI, VH, VT.
  1271. *
  1272. * CALLS GCH, SCH.
  1273.  
  1274.  
  1275. MCH7 LDD CA STORE CHANNEL
  1276. MCH8 LPC 277
  1277. STM CHS2,CI
  1278. SOD CI
  1279. MJN MCH9 IF LAST CHANNEL TRANSFERRED
  1280. LDD CB
  1281. NJN MCH8 IF ANOTHER CHANNEL
  1282. MCH9 LDN 1 RESET CHANNEL INDEX
  1283. STD CI
  1284. LDN 0 SET RESPONSE
  1285.  
  1286. MCH SUBR ENTRY/EXIT
  1287. LDN ES+1 SET CHANNEL BYTE POINTER
  1288. STD CE
  1289. RJM GCH GET CHANNELS FROM EST
  1290. LDN 1 INITIALIZE CHANNEL INDEX
  1291. STD CI
  1292. LDM CHAN GET PARAMETER BLOCK CHANNEL WORD
  1293. SHN 21-VBCD
  1294. PJN MCH7 IF NO CHANNELS FROM CALLER
  1295. LDC C1VB INITIALIZE VALIDATION CODE WORD
  1296. STD VT
  1297. MCH1 LDD VT
  1298. SBD VH
  1299. MJN MCH2 IF NOT HIGHER VALIDATION
  1300. RAD VH UPDATE CODE WORD
  1301. MCH2 RJM SCH SCAN CHANNELS
  1302. NJN MCHX IF NO CHANNEL MATCHES
  1303. SOD CI
  1304. MJN MCH9 IF BOTH CHANNELS MATCH
  1305. AOD VT
  1306. LDM CHS2,CI
  1307. NJN MCH1 IF ANOTHER CHANNEL
  1308. UJN MCH9 RESET CHANNEL INDEX
  1309. SPACE 4,15
  1310. ** RHP - RHF PROCESSOR.
  1311. *
  1312. * THIS ROUTINE DETERMINES THE USER-REQUESTED LEVEL OF ACCESS
  1313. * TO THE RHF SUBSYSTEM. THIS IS DONE BY CHECKING AND
  1314. * VALIDATING THE PARAMETERS IN THE USER-PASSED PARAMETER
  1315. * BLOCK. IF NO ERRORS ARE FOUND, THE APPROPRIATE ROUTINE IS
  1316. * CALLED TO EITHER GRANT OR DENY THE USER THAT LEVEL OF ACCESS
  1317. * TO THE RHF SUBSYSTEM.
  1318. *
  1319. * EXIT (A) = RESPONSE CODE RETURNED TO THE CALLER.
  1320. * -1, IF DEVICE IS NOT A NAD.
  1321. *
  1322. * USES ES - ES+4, T1 - T6.
  1323. *
  1324. * CALLS DVT, VLC, VLD, VLR, VRD, *5CV*.
  1325. *
  1326. * MACROS EXECUTE, SFA.
  1327.  
  1328.  
  1329. RHP6 LCN 1 NOT A NAD DEVICE
  1330.  
  1331. RHP SUBR ENTRY/EXIT
  1332. LDM DEVC
  1333. SBK FNAD
  1334. MJN RHP6 IF NOT RHF VALIDATION CALL
  1335. SBN LNAD-FNAD
  1336. PJN RHP6 IF NOT RHF VALIDATION CALL
  1337. RJM DVT DETERMINE VALIDATION TYPE REQUESTED
  1338. NJN RHPX IF ERROR DETECTED
  1339. LDM TRHP,T1 PROCESS RHF ACCESS REQUEST
  1340. STD T1
  1341. RJM 0,T1
  1342. PJN RHPX IF RETURNING RESPONSE TO CALLER
  1343.  
  1344. * SET *5CV* PARAMETERS IN T1 - T6 FOR RHF CALL.
  1345. *
  1346. * (T1) = NAD EST ORDINAL (0 IF NOT IN EST).
  1347. * (T2) = NAD CHANNEL NUMBER.
  1348. * (T3) = REMOTE ACCESS CODE (4/0,8/UPPER 8).
  1349. * (T4) = REMOTE ACCESS CODE (4/0,8/LOWER 8).
  1350. * (T5) = TCU ENABLES AND BUFFER SIZE INDEX.
  1351. * (T6) = LOGICAL TCU ADDRESS.
  1352.  
  1353. EXECUTE 5CV LOAD *5CV*
  1354. LDD EA
  1355. SBD LO
  1356. MJN RHP0.1 IF ENTRY IN EST
  1357. LDN 0
  1358. STM ESTO
  1359. RHP0.1 LDM ESTO NAD EST ORDINAL (0 IF NOT IN EST)
  1360. STD T1
  1361. LDM CHS1 NAD CHANNEL NUMBER
  1362. STD T2
  1363. LDM RAC1 REMOTE ACCESS CODE
  1364. LPN 17 UPPER 4 BITS
  1365. SHN 14
  1366. LMM RAC2 LOWER 12 BITS
  1367. STD T4
  1368. SHN -10
  1369. STD T3 UPPER 8
  1370. SHN 10
  1371. LMD T4
  1372. STD T4 LOWER 8
  1373. LDM TCUE TCU ENABLES
  1374. LPN 17
  1375. SHN 4
  1376. ADN 1 SET BUFFER SIZE INDEX = 1
  1377. STD T5 4/0,4/TCU ENABLES,4/1
  1378. LDM LTCA LOGICAL TCU ADDRESS
  1379. LPC 377
  1380. STD T6
  1381. LDM EQPV
  1382. SHN 21-VBS3
  1383. PJN RHP4 IF LOCAL NAD IS SHARED
  1384. LDD T1
  1385. ZJN RHP4 IF NAD NOT IN EST
  1386. SFA EST
  1387. ADK EQDE
  1388. CRD ES READ EST ENTRY
  1389. LDD ES
  1390. SHN 21-1
  1391. MJN RHP4 IF LOCAL NAD IS TURNED OFF OR DOWN
  1392. SHN 0-7-21+1+22
  1393. LPN 7
  1394. LMN 4
  1395. ZJN RHP4 IF LOCAL NAD NOT IN USE
  1396. RHP1 LDN VRUS LOCAL NAD IN USE
  1397. RHP2 LJM RHPX RETURN
  1398.  
  1399. RHP3 LDN VRDS DEVICE ERROR
  1400. UJN RHP2 RETURN
  1401.  
  1402. RHP4 LDN 1 ISSUE CONNECT FUNCTION
  1403. RJM FCV CALL *5CV*
  1404. MJN RHP3 IF DEVICE ERROR
  1405. ZJN RHP5 IF NO RESPONSE
  1406. LDN VRCH&VRSI NAD CONNECTED TO HOST
  1407. RHP5 LMN VRSI SITUATION INDETERMINATE
  1408. UJN RHP2 RETURN
  1409.  
  1410. * TRHP - TABLE OF ROUTINES FOR PROCESSING THE USER-SPECIFIED
  1411. * LEVEL OF ACCESS TO THE RHF SUBSYSTEM.
  1412.  
  1413. TRHP BSS 0
  1414. LOC 0
  1415. LNCT CON VLC VALIDATE LOCAL NAD CONCURRENT
  1416. LNDT CON VLD VALIDATE LOCAL NAD DEDICATED
  1417. RNDT CON VDN VALIDATE REMOTE NAD DEDICATED
  1418. LRDT CON VDN VALIDATE LOCAL AND REMOTE NAD DEDICATED
  1419. LOC *O
  1420. SCH SPACE 4,10
  1421. ** SCH - SCAN CHANNELS FOR A MATCH.
  1422. *
  1423. * ENTRY (CI) = INDEX TO PARAMETER BLOCK CHANNEL LIST.
  1424. * (CA - CC) = CHANNELS FROM EST ENTRY.
  1425. *
  1426. * EXIT (A) = 0, IF A MATCH.
  1427. * (A) NON-ZERO, IF NO MATCH.
  1428. *
  1429. * USES T1.
  1430.  
  1431.  
  1432. SCH SUBR ENTRY/EXIT
  1433. LDN 2 INITIALIZE CHANNEL COUNT
  1434. STD T1
  1435. SCH1 LDM CC,T1
  1436. ZJN SCH2 IF NO MATCH
  1437. LMM CHS2,CI
  1438. LPC 277
  1439. ZJN SCHX IF A MATCH
  1440. SCH2 SOD T1
  1441. PJN SCH1 IF MORE CHANNELS
  1442. UJN SCHX EXIT WITH ERROR
  1443. SCV SPACE 4,10
  1444. ** SCV - SET CHANNEL VALIDATION BYTE.
  1445. *
  1446. * ENTRY (CI) = INDEX TO CHANNEL THAT WAS REFUSED.
  1447. *
  1448. * EXIT (A) = RESPONSE CODE FOR CHANNEL IN USE.
  1449. * (CHANNEL VALIDATION BYTE SET).
  1450. *
  1451. * USES T1.
  1452.  
  1453.  
  1454. SCV SUBR ENTRY/EXIT
  1455. LDC TVBN+WVB1 CALCULATE TVBN ADDRESS
  1456. SBD CI
  1457. STD T1
  1458. LDI T1 FETCH PROPER VALIDATION CODE
  1459. RAM CHAN SET CHANNEL VALIDATION BYTE
  1460. LDN VRUS SET RESPONSE CODE TO EQUIPMENT IN USE
  1461. UJN SCVX EXIT
  1462. SFN SPACE 4,20
  1463. ** SFN - SEARCH LOCAL FNT FOR FILE ON SPECIFIED EQUIPMENT.
  1464. *
  1465. * ENTRY (A) = 0 IF FNT/FST IS READ-ONLY.
  1466. * (A) .NE. 0 IF FNT/FST ARE TO BE UPDATED.
  1467. * (ESTO) = EST ORDINAL.
  1468. *
  1469. * EXIT (A) = 0 IF FILE FOUND (AND *FILE BUSY* STATUS SET
  1470. * IF UPDATING FNT/FST).
  1471. * (A) = 1 IF FILE INTERLOCK REJECT.
  1472. * (A) = 2 IF FILE NOT FOUND.
  1473. * (CM - CM+4) = FNT ENTRY, IF FILE FOUND AND IF
  1474. * UPDATING FNT/FST.
  1475. * (FS - FS+4) = FST ENTRY, IF FILE FOUND AND IF
  1476. * UPDATING FNT/FST.
  1477. *
  1478. * USES FA, T0, CM - CM+4, FS - FS+4.
  1479. *
  1480. * CALLS SFB.
  1481. *
  1482. * MACROS NFA.
  1483.  
  1484.  
  1485. SFN SUBR ENTRY/EXIT
  1486. STM SFNA SAVE FILE UPDATE STATUS
  1487. LDD CP SETUP LOCAL FILE SEARCH
  1488. ADN FLSW
  1489. CRD CM
  1490. LDD CM
  1491. SHN 6
  1492. ADN 1
  1493. STD T0
  1494. LDC FNTN SET FIRST ENTRY OFFSET
  1495. STD FA
  1496. SFN1 LDN LENF ADVANCE FNT OFFSET
  1497. RAD FA
  1498. SBD T0
  1499. MJN SFN2 IF MORE ENTRIES TO SEARCH
  1500. LDN 2
  1501. UJN SFNX FILE NOT FOUND
  1502.  
  1503. SFN2 NFA FA,R
  1504. CRD FS READ FNT ENTRY
  1505. ADN FSTL READ FST ENTRY
  1506. CRD CM
  1507. LDD FS
  1508. ZJN SFN1 IF EMPTY ENTRY
  1509. LDD CM
  1510. LMM ESTO
  1511. NJN SFN1 IF ORDINALS DO NOT MATCH
  1512. LDC 0
  1513. SFNA EQU *-1 FNT/FST UPDATE STATUS
  1514. ZJN SFN3 IF NO UPDATE REQUIRED
  1515. RJM SFB SET FILE BUSY
  1516. SFN3 LJM SFNX RETURN WITH MATCHING ORDINALS
  1517. SVB SPACE 4,10
  1518. ** SVB - SET VALIDATION BYTE.
  1519. *
  1520. * ENTRY (A) = VALIDATION BYTE CODE.
  1521. * BITS 11 - 6 = VALIDATION BYTE OFFSET.
  1522. * BITS 5 - 0 = *TVBN* INDEX.
  1523. *
  1524. * EXIT VALIDATION BYTE SET.
  1525. *
  1526. * USES T1, T2.
  1527.  
  1528.  
  1529. SVB SUBR ENTRY/EXIT
  1530. SHN 14 POSITION CODE
  1531. ADC ESTV
  1532. STD T1
  1533. SHN -14 SHIFT OFF ADDRESS, INDEX TO BITS 5 - 0
  1534. STD T2
  1535. LDM TVBN,T2 GET VALIDATION BITS
  1536. RAI T1 STORE IN BYTE
  1537. UJN SVBX EXIT
  1538.  
  1539. * TVBN - VALIDATION BIT TABLE.
  1540.  
  1541. TVBN BSS 0
  1542. LOC 0
  1543. WVB4 CON VB4M+VWDM
  1544. WVB3 CON VB3M+VWDM
  1545. WVB2 CON VB2M+VWDM
  1546. WVB1 CON VB1M+VWDM
  1547. WVBW CON VWDM
  1548. LOC *O
  1549.  
  1550. * VALIDATION BYTE CODES.
  1551.  
  1552. EOVB VBCD ESTV,WVB4 EST ORDINAL ERROR
  1553. C2VB VBCD CHAN,WVB3 CHANNEL 2 ERROR
  1554. C1VB VBCD CHAN,WVB4 CHANNEL 1 ERROR
  1555. LNVB VBCD EQPV,WVB3 LOCAL NAD DEVICE CODE ERROR
  1556. EQVB VBCD EQPV,WVB4 EQUIPMENT NUMBER ERROR
  1557. UNVB VBCD UNIT,WVB4 UNIT NUMBER ERROR
  1558. MNVB VBCD DCMV,WVB3 DEVICE MNEMONIC ERROR
  1559. DCVB VBCD DCMV,WVB4 DEVICE CODE ERROR
  1560. SNVB VBCD PSNV,WVBW PACK SERIAL NUMBER ERROR
  1561. PEVB VBCD PSNV,WVB1
  1562. TCVB VBCD TCUV,WVB4 TCU ENABLES ERROR
  1563. RDVB VBCD LTCV,WVB3 REMOTE NAD DEVICE CODE ERROR
  1564. RNVB VBCD LTCV,WVB4 LOGICAL TCU ADDRESS ERROR
  1565.  
  1566. LOC *O
  1567. UCS SPACE 4,15
  1568. ** UCS - PROCESS UNIT RECORD CHANNEL SHARE BITS.
  1569. *
  1570. * ENTRY (TI) = INDEX TO DEVICE CODE TABLE.
  1571. *
  1572. * EXIT (A) = 0, IF VALIDATION GRANTED.
  1573. * (A) = RESPONSE CODE, IF VALIDATION DENIED.
  1574. * (SB) = SHARE BITS SET (IF ANY) FOR THE APPROPRIATE
  1575. * CHANNEL FIELDS IN THE PARAMETER BLOCK.
  1576. * (CHANNEL VALIDATION BYTE SET).
  1577. *
  1578. * USES CI, DA.
  1579. *
  1580. * CALLS ACH, CMT, FCH, GCI, SCH, SCV.
  1581.  
  1582.  
  1583. UCS9 LDD TI CHECK IF MUX
  1584. SBK FMUX
  1585. MJN UCS10 IF NOT MUX
  1586. SBK LMUX-FMUX
  1587. PJN UCS10 IF NOT MUX
  1588. LDC VWDM SET CHANNEL VALIDATION BYTE
  1589. RAM CHAN
  1590. LDN VRNB SET RESPONSE TO NO SHARE BYTE SET
  1591. UJN UCSX EXIT
  1592.  
  1593. UCS10 LDM CHS2,CI
  1594. UCS11 STM CHS1
  1595. RJM GCI
  1596. LPN 40
  1597. ZJN UCSX IF CHANNEL UP
  1598. LDD T1
  1599. ZJN UCSX IF CHANNEL DOWN AND UNASSIGNED
  1600. LMM CM+5,T3
  1601. LPC 3700
  1602. ZJN UCSX IF CHANNEL DOWN AND UNASSIGNED
  1603. LDM CHAN
  1604. SHN 21-VBCD
  1605. MJN UCS12 IF CHANNEL SUPPLIED BY CALLER
  1606. SOD CI
  1607. MJN UCS12 IF ALL CHANNELS CHECKED
  1608. LDM CHS2,CI
  1609. NJN UCS11 IF ANOTHER CHANNEL TO CHECK
  1610. UCS12 RJM SCV INDICATE CHANNEL IS DOWN
  1611.  
  1612. UCS SUBR ENTRY/EXIT
  1613. LDN 1 INITIALIZE CHANNEL INDEX
  1614. STD CI
  1615. LDM CHAN
  1616. SHN -VBS4
  1617. NJN UCS1 IF CHANNEL WILL NOT BE SHARED
  1618. LJM UCS9 CHECK IF CHANNEL IS UP
  1619.  
  1620. UCS1 LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
  1621. RJM CMT
  1622. ZJN UCS1.1 IF TAPE CHANNEL REQUESTED
  1623. LDC UJNI+UCS6.1-UCSA DO NOT ASSIGN NON-TAPE CHANNEL
  1624. STM UCSA
  1625. ERRNG 37+UCSA-UCS6.1 ERROR IF OUT OF RANGE
  1626. UJN UCS3 INITIALIZE EST SEARCH
  1627.  
  1628. UCS1.1 LDM CHS2,CI
  1629. UCS2 STM CHS1
  1630. RJM GCI
  1631. SCN 40 IGNORE THE CHANNEL DOWN BIT
  1632. ADD T1
  1633. ZJN UCS3 IF CHANNEL UNASSIGNED
  1634. LDM CHAN
  1635. SHN 21-VBCD
  1636. MJN UCS2.1 IF CHANNEL SUPPLIED BY CALLER
  1637. SOD CI
  1638. MJN UCS2.1 IF ALL CHANNELS CHECKED
  1639. LDM CHS2,CI
  1640. NJN UCS2 IF ANOTHER CHANNEL TO TEST
  1641. UCS2.1 LJM UCS12 INDICATE CHANNEL IS NOT DOWN
  1642.  
  1643. UCS3 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  1644. STD DA
  1645. LDN 1
  1646. STD CI
  1647. UCS5 RJM FCH FETCH CHANNEL(S) FROM NEXT NON-RMS ENTRY
  1648. ZJN UCS6 IF NO MORE EST ENTRIES
  1649. RJM SCH
  1650. NJN UCS5 IF ENTRY DOES NOT HAVE CHANNEL
  1651. LDD CS
  1652. ZJN UCS2.1 IF CHANNEL NOT DOWN
  1653.  
  1654. * VALIDATION FOR EXCLUSIVE USAGE OF THE CHANNEL WILL BE
  1655. * GRANTED IF ALL UNITS ON THE CHANNEL ARE DOWN/UNASSIGNED, OR
  1656. * IF DOWN/ASSIGNED TO THE CALLER.
  1657.  
  1658. LDD CM CHECK FOR DOWN UNIT
  1659. LPN 3
  1660. LMN 3
  1661. NJN UCS5.1 IF UNIT NOT DOWN
  1662. LDD AE+4
  1663. ZJN UCS5 IF UNIT UNASSIGNED
  1664. LMM EJTO
  1665. ZJN UCS5 IF DOWN/ASSIGNED TO THIS JOB
  1666. UCS5.1 LJM UCS12 SET CHANNEL VALIDATION BYTE
  1667.  
  1668. UCS6 RJM ACH
  1669. * UJN UCS6.1 DO NOT ASSIGN NON-TAPE CHANNEL
  1670. UCSA EQU *-2
  1671. ZJN UCS5.1 IF CHANNEL NOT ASSIGNED
  1672. UCS6.1 LDN 0
  1673. LJM UCSX EXIT
  1674. UES SPACE 4,15
  1675. ** UES - PROCESS UNIT RECORD EQUIPMENT SHARE BIT.
  1676. *
  1677. * ENTRY (CI) = POINTER TO CHANNEL BYTE.
  1678. * (ES - ES+4) = EST ENTRY.
  1679. *
  1680. * EXIT (A) = 0, IF VALIDATION GRANTED.
  1681. * (A) = RESPONSE CODE, IF VALIDATION DENIED
  1682. * (EQUIPMENT VALIDATION BYTE SET).
  1683. *
  1684. * USES CI, DA, T1.
  1685. *
  1686. * CALLS CMT, FCH, SCH.
  1687.  
  1688.  
  1689. UES10 STD T1
  1690. LDC VWDM+VB4M SET EQUIPMENT VALIDATION BYTE
  1691. * LDC VWDM+VB3M (SET LOCAL NAD DEVICE CODE BYTE)
  1692. UESB EQU *-1
  1693. RAM EQPV
  1694. LDD T1 SET ERROR CODE
  1695. UJN UESX EXIT
  1696.  
  1697. UES11 LDN 0
  1698.  
  1699. UES SUBR ENTRY/EXIT
  1700. LDM EQPV CHECK EQUIPMENT SHARE BIT
  1701. UESC SHN 21-VBS4
  1702. * SHN 21-VBS3 (TEST LOCAL NAD SHARE BYTE)
  1703. MJN UES1 IF EQUIPMENT WILL NOT BE SHARED
  1704. LDM FNCH CHECK FUNCTIONAL BITS
  1705. * UJN UES11 (NOT CHANGING LOCAL NAD CONTROLWARE)
  1706. UESD EQU *-2
  1707. SHN 21-LMEM
  1708. PJN UES11 IF NOT CHANGING CONTROLLER MEMORY
  1709. LDN VRNB SET SHARE BIT NOT SET RESPONSE
  1710. UJN UES10 SET ERROR AND EXIT
  1711.  
  1712. UES1 LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
  1713. RJM CMT
  1714. ZJN UES2 IF MAGNETIC TAPE
  1715. LDM DEVC
  1716. SBK FNAD
  1717. MJN UES11 IF NOT RHF EQUIPMENT
  1718. SBN LNAD-FNAD
  1719. PJN UES11 IF NOT RHF EQUIPMENT
  1720. LDC TNCE-1 SET CHECK FOR NAD EQUIPMENT
  1721. STM UESA
  1722. UES2 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  1723. STD DA
  1724. UES3 RJM FCH FETCH CHANNELS FROM NEXT NON-RMS EST ENTRY
  1725. ZJP UESX IF END OF EST ENTRIES
  1726. LDC TMTE-1 TABLE OF TAPE EQUIPMENTS
  1727. * LDC TNCE-1 (TABLE OF NAD EQUIPMENTS)
  1728. UESA EQU *-1
  1729. STD T1
  1730. UES5 AOD T1 CHECK NEXT TABLE ENTRY
  1731. LDI T1
  1732. UES6 ZJN UES3 IF END OF TABLE
  1733. LMD CM+3
  1734. NJN UES5 IF NO MATCH WITH EST ENTRY
  1735. LDN 1
  1736. STD CI
  1737. UES7 RJM SCH CHECK IF ENTRY IS ON SAME CHANNEL
  1738. ZJN UES8 IF ENTRY HAS SAME CHANNEL
  1739. SOD CI DECREMENT CHANNEL INDEX
  1740. MJN UES3 IF NO MORE CHANNELS TO CHECK
  1741. LDM CHS2,CI
  1742. NJN UES7 IF ANOTHER CHANNEL TO CHECK
  1743. UJN UES3 CHECK NEXT EST ENTRY
  1744.  
  1745. * VALIDATION FOR THE CONTROLLER WILL BE GRANTED IF ALL UNITS
  1746. * ON THE CONTROLLER ARE DOWN/UNASSIGNED, OR IF DOWN/ASSIGNED
  1747. * TO THE CALLER.
  1748.  
  1749. UES8 LDD CM+4 CHECK CONTROLLER
  1750. SHN -11
  1751. LMM EQPN
  1752. NJN UES3 IF NOT ON SAME CONTROLLER
  1753. LDD CM CHECK FOR DOWN/UNASSIGNED UNIT
  1754. LPN 3
  1755. LMN 3
  1756. NJN UES9 IF UNIT NOT DOWN
  1757. * PSN (LOAD/DUMP CONTROLWARE VALIDATION CALL)
  1758. UESE EQU *-1
  1759. LDD AE+4
  1760. ZJN UES6 IF UNIT UNASSIGNED
  1761. LMM EJTO
  1762. ZJN UES6 IF DOWN/ASSIGNED TO THIS JOB
  1763. UES9 LDN VRUS SET EQUIPMENT IN USE RESPONSE
  1764. LJM UES10 SET ERROR AND EXIT
  1765.  
  1766. ** TMTE - TABLE OF MAGNETIC TAPE EQUIPMENT MNEMONICS.
  1767.  
  1768. TMTE DATA 2RMT
  1769. DATA 2RNT
  1770. DATA 2RAT
  1771. DATA 2RCT
  1772. DATA 0
  1773.  
  1774. ** TNCE - TABLE OF NAD EQUIPMENT MNEMONICS.
  1775.  
  1776. TNCE DATA 2RNC
  1777. DATA 0
  1778. UUS SPACE 4,10
  1779. ** UUS - PROCESS UNIT RECORD UNIT SHARE BIT.
  1780. *
  1781. * ENTRY (ES - ES+4) = EST ENTRY.
  1782. *
  1783. * EXIT (A) = 0, IF VALIDATION GRANTED.
  1784. * (A) = RESPONSE CODE, IF VALIDATION DENIED.
  1785. *
  1786. * USES CM - CM+4.
  1787. *
  1788. * MACROS MONITOR, SFA.
  1789.  
  1790.  
  1791. UUS6 LDC VWDM+VB4M SET UNIT VALIDATION BYTE
  1792. RAM UNIT
  1793. LDN VRNB SET RESPONSE TO SHARE BIT NOT SET
  1794.  
  1795. UUS SUBR ENTRY/EXIT
  1796. LDM UNIT CHECK UNIT PARAMETER WORD
  1797. SHN 21-VBS4
  1798. PJN UUS6 IF UNIT SHARE BIT NOT SET
  1799. * PJN UUS1 (RHF VALIDATION CALL)
  1800. UUSA EQU *-1
  1801. LDD ES
  1802. LPN 3
  1803. LMN 3
  1804. NJN UUS4 IF UNIT UP
  1805. UUS1 SFA EST,ESTO
  1806. ADK EQAE
  1807. CRD CM
  1808. LDD CM+4
  1809. ZJN UUS2 IF UNIT UNASSIGNED
  1810. LMM EJTO
  1811. NJN UUS4 IF ASSIGNED TO ANOTHER DIAGNOSTIC
  1812. UJN UUSX RETURN
  1813.  
  1814. UUS2 LDM ESTO EST ORDINAL
  1815. STD CM+1
  1816. UUSB LDN RVES (RHF VALIDATION CALL)
  1817. ORG UUSB
  1818. LDN RDES REQUEST DOWNED EQUIPMENT
  1819. STD CM+2
  1820. MONITOR REQM
  1821. LDD CM+1
  1822. ZJN UUS4 IF ASSIGNED TO ANOTHER DIAGNOSTIC
  1823.  
  1824. UUSC LDN 1 (LOAD/DUMP NAD CONTROLWARE)
  1825. ORG UUSC
  1826. LDN 0
  1827. NJN UUS5 IF LOADING/DUMPING CONTROLWARE
  1828. UUS3 LJM UUSX RETURN
  1829.  
  1830. UUS4 LDC VWDM+VB4M SET UNIT VALIDATION BYTE
  1831. RAM UNIT
  1832. LDN VRUS SET RESPONSE TO UNIT IN USE
  1833. UJN UUS3 RETURN
  1834.  
  1835. UUS5 LDM EQPV
  1836. LPN VS3M
  1837. ZJN UUS3 IF NOT DEDICATED ACCESS
  1838. LDD ES
  1839. SHN -7
  1840. LPN 4
  1841. LMN 4
  1842. ZJN UUS3 IF *CONTROLWARE NOT LOADED* FLAG SET
  1843. LDD ES
  1844. SHN -7
  1845. LPN 3
  1846. NJN UUS4 IF NAD IN USE
  1847. LDD ES
  1848. LPN 2
  1849. ZJN UUS4 IF NAD TURNED ON
  1850. LDM ESTO EST ORDINAL
  1851. STD CM+1
  1852. LDN SB0S SET EST BYTE 0 SUBFUNCTION
  1853. STD CM+2
  1854. LDC 6777 SET EST BYTE MASK
  1855. STD CM+3
  1856. LDD TH SET EST BIT VALUE TO SET
  1857. STD CM+4
  1858. MONITOR SEQM
  1859. * LDN 0
  1860. LJM UUSX RETURN
  1861. COMMON SPACE 4,10
  1862. *** RESIDENT COMMON ROUTINES.
  1863.  
  1864.  
  1865. *CALL COMPSFB
  1866. RMC TITLE OVERLAYABLE FUNCTION PROCESSORS.
  1867. USE OVERLAY
  1868.  
  1869. OVLA EQU *+5 OVERLAY
  1870. SPACE 4
  1871. *** FUNCTION 2.
  1872. * RMC - READ MACHINE CHARACTERISTICS TO (PARAMETER).
  1873. *
  1874. * ENTRY
  1875. *T IR 18/ *CVL*,1/1,5/ CP ,12/ 0,6/ 02,18/ ADDR
  1876. *
  1877. * EXIT
  1878. *T ADDR 12/ SW,12/ ECS,12/ NPP, 12/ HW,11/ MEM,1/C
  1879. * WHERE -
  1880. * SW (59-48) = SOFTWARE CHARACTERISTICS.
  1881. * BIT 48 = 63 CHARACTER SET.
  1882. * ECS(47-36) = EXTENDED MEMORY SIZE/1000B.
  1883. * SET TO 7777 IF .GT. 2000K.
  1884. * NPP (35-24) = NUMBER OF PPU-S.
  1885. * HW (23-12) = HARDWARE CHARACTERISTICS.
  1886. * BIT 21 = HARDWARE ESM MODE.
  1887. * BIT 20 = 8X5 MAINFRAME (CM EXTENSION).
  1888. * BITS 19-18 = 7000 TYPE CPU FLAGS.
  1889. * 0 = NOT 7000 TYPE CPU.
  1890. * 1 = CYBER 76 MODEL A.
  1891. * 2 = CYBER 76 MODEL B.
  1892. * 3 = CYBER 176.
  1893. * BIT 17 = PPU-S AT 2X SPEED.
  1894. * BIT 16 = CYBER 170 TYPE MAINFRAME (S/C REGISTER).
  1895. * BIT 15 = CMU PRESENT.
  1896. * BIT 14 = CEJ/MEJ PRESENT.
  1897. * BIT 13 = INSTRUCTION STACK PRESENT.
  1898. * BIT 12 = CPU 1 PRESENT.
  1899. * MEM (11-1) = CENTRAL MEMORY SIZE/200B (TRUNCATED).
  1900. * SET TO 3777 IF SIZE .GE. 262K.
  1901. * C (0) = COMPLETE BIT.
  1902.  
  1903.  
  1904. RMC SUBR ENTRY/EXIT
  1905. LDN PPUL GET NUMBER OF PP-S
  1906. CRD CM
  1907. LDN IPRL READ INSTALLATION PARAMETER WORD
  1908. CRD ES
  1909. LDD ES+2
  1910. LPN 1 RETRIEVE CHARACTER SET BIT
  1911. STD CM
  1912. RJM DES DETERMINE EXTENDED MEMORY SIZE
  1913. STD CM+1
  1914. LDK CFGL DETERMINE ECS/ESM MODE
  1915. CRD ES
  1916. LDD ES+3
  1917. LPC 2000
  1918. SHN -1
  1919. STD CM+3
  1920. LDC MABL READ MACHINE SIZE
  1921. CRD ES
  1922. LDD ES+1 DETERMINE HARDWARE CHARACTERISTICS
  1923. LMC 4777
  1924. STD T1
  1925. SHN -3
  1926. LPC 702 SET CME, CYBER 176, AND STACK CPU FLAGS
  1927. RAD CM+3
  1928. LDD T1 SET CMU FLAG
  1929. LPN 10
  1930. RAD CM+3
  1931. LDD T1 SET CYBER 170 FLAG
  1932. SHN -2
  1933. LPN 20
  1934. ADN 4 SET CEJ/MEJ ENABLED FLAG
  1935. RAD CM+3
  1936. LDD T1 SET CPU 1 PRESENT FLAG
  1937. LPN 2
  1938. SHN -1
  1939. RAD CM+3
  1940. LDD ES+4 SET 2X PP SPEED FLAG
  1941. LPN 1
  1942. SHN 5-0
  1943. RAD CM+3
  1944. LDD ES+2
  1945. ZJN RMC1 IF .LT. 262K
  1946. LCN 0 SET SIZE = 3777
  1947. UJN RMC2 SAVE SIZE
  1948.  
  1949. RMC1 LDD ES+3 GET ACTUAL SIZE
  1950. RMC2 SCN 1 SET COMPLETE BIT
  1951. LMN 1
  1952. STD CM+4
  1953. LDN 1 SET PARAMETER BLOCK WORD COUNT
  1954. STD BS
  1955. RJM CKA CHECK PARAMETER BLOCK ADDRESS
  1956. CWD CM STORE RESPONSE
  1957. LJM RMCX RETURN
  1958. CEA EJECT
  1959. *** FUNCTION 3.
  1960. * CEA - CHECK ENGINEERING ACCESS.
  1961. *
  1962. * ENTRY
  1963. *T IR 18/ *CVL*,1/1,5/ CP ,12/ 0,6/ 03,18/ ADDR
  1964. *
  1965. * EXIT
  1966. *T ADDR 58/0,1/1
  1967.  
  1968.  
  1969. CEA SUBR ENTRY/EXIT
  1970. LDN ZERL CLEAR RESPONSE WORD
  1971. CRD CM
  1972. LDN 1 SET PARAMETER BLOCK WORD COUNT
  1973. STD BS
  1974. STD CM+4 SET COMPLETE BIT
  1975. RJM CKA CHECK ADDRESS
  1976. CWD CM RETURN COMPLETE BIT
  1977. UJN CEAX EXIT
  1978. RSB EJECT
  1979. *** FUNCTION 4.
  1980. * RSB - READ SYSTEM ATTRIBUTE BLOCK.
  1981. *
  1982. * ENTRY
  1983. *T IR 18/ *CVL*,1/1,5/ CP,12/ VN,6/ 04,18/ ADDR
  1984. *
  1985. * EXIT ADDR CONTAINS THE FOLLOWING-
  1986. *
  1987. *T,ADDR 12/ ,12/ LNGTH,24/ ,6/ RC,5/ VN,1/C
  1988. *T,ADDR+1 12/ PPSD,24/ CMSZ,12/ ,12/ OPTN
  1989. *T,ADDR+2 60/FIRST VARIABLE ENTRY
  1990. *T,ADDR+N 60/LAST VARIABLE ENTRY
  1991.  
  1992. * WHERE -
  1993.  
  1994. * LNGTH NUMBER OF CM WORDS IN THE RESPONSE.
  1995. * RC RESPONSE CODE (ALWAYS 0).
  1996. * VN VERSION NUMBER OF FORMAT RETURNED.
  1997. * C COMPLETION BIT.
  1998. * PPSD PP SPEED.
  1999. * CMSZ CM SIZE.
  2000. * OPTN OPTIONS INSTALLED.
  2001. * VARIABLE ENTRY - SEE *CEVAL* INTERFACE SPECIFICATION.
  2002.  
  2003.  
  2004. RSB SUBR ENTRY/EXIT
  2005. LDK DSSL GET EI/MICROCODE VERIFIED FLAG
  2006. CRD T3
  2007. ADN MABL-DSSL
  2008. CRD CM
  2009. ADN EABL+MFEI-MABL GET SAB FWA AND LENGTH
  2010. CRD ES
  2011. LDD CM+1 FORM ADDR+1 OF RESPONSE
  2012. STD CD+4
  2013. SHN -6 SET FLAG FOR MAINFRAME TYPE
  2014. LPN 44
  2015. LMN 4
  2016. STD T2
  2017. LDD CM+2 SET CM SIZE/100B
  2018. STD CD+1
  2019. LDD CM+3
  2020. STD CD+2
  2021. LDD CM+4 SET PP SPEED
  2022. STD CD
  2023. LDN 1 INITIALIZE CM WORD LENGTH
  2024. STD BS
  2025. STM TPMB+4 SET COMPLETE BIT
  2026. RJM WOW WRITE ONE WORD
  2027. LDD IR+2 CHECK FORMAT VERSION REQUESTED
  2028. ZJN RSB1 IF OLD FORMAT
  2029. LJM RSB7 RETURN NEW FORMAT
  2030.  
  2031. * RETURN OLD FORMAT.
  2032.  
  2033. RSB1 RJM GSF GET SAB FWA
  2034. CRD CD READ MAINFRAME DESCRIPTOR ENTRY
  2035. LDD CD+3 SAVE CPU0 ON/OFF FLAG (CYBER 800)
  2036. LPN 1
  2037. STD T5
  2038. LDD CD SAVE MAINFRAME DESCRIPTOR LENGTH
  2039. SHN -6
  2040. STD T3
  2041. STD T4
  2042. RSB3 RJM GSF GET SAB FWA
  2043. ADD T3 READ NEXT ENTRY
  2044. CRD CM
  2045. LDN ZERL
  2046. CRD CD
  2047. LDD CM SAVE ENTRY LENGTH
  2048. SHN 14
  2049. STD T6
  2050. SHN -14 CHECK DESCRIPTOR ID
  2051. STD T1
  2052. LMN 77
  2053. NJN RSB4 IF NOT EXTENDED MEMORY ENTRY
  2054. LDC EMP SET EXTENDED MEMORY PROCESSOR ADDRESS
  2055. STD T1
  2056. UJN RSB5 PROCESS EXTENDED MEMORY ENTRY
  2057.  
  2058. RSB4 LMN 77
  2059. SBN 3
  2060. PJN RSB6 IF ENTRY NOT TO BE USED
  2061. LDM TOFP,T1 SET PROCESSOR ADDRESS
  2062. STD T1
  2063. LDD CM+1 SET ELEMENT NUMBER
  2064. STD CD
  2065. LDD CM+2 SET MODEL NUMBER
  2066. STD CD+1
  2067. LDD CM+3 SET SERIAL NUMBER
  2068. STD CD+2
  2069.  
  2070. * JUMP TO PROCESSOR WITH -
  2071. *
  2072. * (T2) = 0 IF CYBER 800 MAINFRAME (EXCLUDING 865/875).
  2073. * (T3) = (T4) = SAB INDEX.
  2074. * (T5) = 0 IF CPU0 IS LOGICALLY ON.
  2075. * = 1 IF CPU0 IS LOGICALLY OFF.
  2076. * (T6) = CURRENT SAB ENTRY LENGTH.
  2077. * (T7) = EI/MICROCODE VERIFIED AT DEADSTART FLAG.
  2078. * (BS) = CURRENT CM WORD LENGTH OF OLD SAB FORMAT BUFFER.
  2079. * (CD - CD+4) = EID OR 0 (EXTENDED MEMORY PROCESSOR).
  2080. * (CM - CM+4) = WORD 0 OF CURRENT SAB ENTRY.
  2081.  
  2082. RSB5 RJM 0,T1 PROCESS ENTRY
  2083. RSB6 LDD T6 ADVANCE SAB INDEX
  2084. RAD T3
  2085. STD T4
  2086. SBD ES+3
  2087. NJP RSB3 IF NOT END OF SAB
  2088. LDD BS
  2089. UJN RSB9 SET BLOCK LENGTH
  2090.  
  2091. * RETURN NEW FORMAT.
  2092.  
  2093. RSB7 RJM GSF GET SAB FWA
  2094. CRM TPMB+2*5,ES+3
  2095. ERRNG CKA2-SABML*5-2*5-TPMB BUFFER OVERFLOW
  2096. LDD T2
  2097. NJN RSB8 IF NOT CYBER 800 TYPE MAINFRAME
  2098. RJM CPR CHECK PROCESSOR RESERVED FOR NOS/VE
  2099. LDD T7 ADD EI/MICROCODE VERIFIED FLAG
  2100. SHN 0-3
  2101. LPN 1
  2102. RAM TPMB+3*5+4
  2103. RSB8 LDN 2 SET VERSION NUMBER
  2104. RAM TPMB+4
  2105. LDD ES+3 SET BLOCK LENGTH
  2106. ADN 2
  2107. STD BS
  2108. RSB9 STM TPMB+1
  2109. RJM CKA CHECK FOR VALID ADDRESS
  2110. CWM TPMB,BS
  2111. LJM RSBX RETURN
  2112. SPACE 4,10
  2113. ** TOFP - TABLE OF OLD FORMAT ENTRY PROCESSORS.
  2114.  
  2115.  
  2116. TOFP BSS 0
  2117. LOC 0
  2118.  
  2119. CON IOP IOU ENTRY PROCESSOR
  2120. CON CMP CM ENTRY PROCESSOR
  2121. CON PRP PROCESSOR ENTRY PROCESSOR
  2122.  
  2123. LOC *O
  2124. MEM EJECT
  2125.  
  2126.  
  2127. *** FUNCTION 5.
  2128. * MEM - RETURN EXCHANGE RA, RAE, FL, FLE.
  2129. *
  2130. * ENTRY
  2131. *T IR 18/ *CVL*,1/1,5/ CP,12/ 0,6/ 05,18/ ADDR
  2132. *
  2133. * EXIT
  2134. *T ADDR 24/RA,24/FL,11/0,1/C
  2135. *T ADDR+1 24/RAE,24/FLE,12/0
  2136.  
  2137.  
  2138. MEM SUBR ENTRY/EXIT
  2139. LDD CP
  2140. ADN 1
  2141. CRM RAMM,ON READ RA INTO PARAMETER BLOCK
  2142. CRM FLMM,ON READ FL INTO PARAMETER BLOCK
  2143. ADN 1
  2144. CRM RAEM,ON READ RAE INTO PARAMETER BLOCK
  2145. CRM FLEM,ON READ FLE INTO PARAMETER BLOCK
  2146. LDN 1 SET COMPLETE BIT IN PARAMETER BLOCK
  2147. STM RAMM+4
  2148. LDN 0 CLEAR BYTE 4 OF RAE/FLE PARAMETER BLOCK
  2149. STM RAEM+4
  2150. LDN 2 PARAMETER BLOCK LENGTH
  2151. STD BS
  2152. RJM CKA OBTAIN REQUESTOR PARAMETER BLOCK ADDRESS
  2153. CWM RAMM,BS WRITE PARAMETER BLOCK
  2154. UJN MEMX EXIT
  2155. CMP TITLE OVERLAYABLE SUBROUTINES.
  2156. CMP SPACE 4,10
  2157. ** CMP - CM DESCRIPTOR ENTRY PROCESSOR.
  2158. *
  2159. * ENTRY (T2) = 0 IF CYBER 800 TYPE MAINFRAME.
  2160. * (CD - CD+2) = CM ELEMENT ID.
  2161. * (CM - CM+4) = WORD ZERO OF NEW FORMAT CM ENTRY.
  2162. *
  2163. * EXIT OLD FORMAT CM ENTRY WRITTEN TO *TPMB*.
  2164. *
  2165. * CALLS WOW.
  2166.  
  2167.  
  2168. CMP1 LDD CM+4 SET MAINTENANCE CHANNEL PORT NUMBER
  2169. SHN -2
  2170. SCN 77
  2171. STD CD+4
  2172. LDN 6 SET DESCRIPTOR ID
  2173. CMP2 SHN 10
  2174. RAD CD
  2175. RJM WOW WRITE OLD FORMAT WORD
  2176.  
  2177. CMP SUBR ENTRY/EXIT
  2178. LDD T2
  2179. ZJN CMP1 IF CYBER 800 TYPE MAINFRAME
  2180. LDN 5
  2181. UJN CMP2 SET DESCRIPTOR ID
  2182. CMR SPACE 4,10
  2183. ** CMR - CHECK FOR MATCHING ROUTINE.
  2184. *
  2185. * EXIT (A) = STATUS.
  2186. * 0, IF MATCHING ROUTINE MATCHES,
  2187. * OR THERE IS NO MATCHING ROUTINE,
  2188. * OR THE DEVICE IS NOT IN THE EST.
  2189. * NONZERO, IF NO MATCH.
  2190.  
  2191.  
  2192. CMR SUBR ENTRY/EXIT
  2193. LDM ESTO
  2194. ZJN CMRX IF DEVICE NOT IN THE EST
  2195. LDM TADR,TI
  2196. ZJN CMRX IF NO MATCHING ROUTINE
  2197. STD T1
  2198. LDM TMSK,TI GET MASK FOR MATCHING ROUTINE
  2199. RJM 0,T1
  2200. UJN CMRX RETURN WITH STATUS
  2201. CPR SPACE 4,10
  2202. ** CPR - CHECK PROCESSOR RESERVED FOR NOS/VE.
  2203. *
  2204. * ENTRY (TPMB) = *SAB* ELEMENT DESCRIPTOR TABLE.
  2205. *
  2206. * USES CM - CM+4.
  2207.  
  2208.  
  2209. CPR SUBR ENTRY/EXIT
  2210. LDN SSTL
  2211. CRD CM
  2212. LDD CM+3 CHECK SYSTEM STATUS
  2213. SHN 0-13
  2214. NJN CPRX IF NVE DISABLED
  2215. LDM TPMB+2*5+/DSL/PCPF
  2216. LPN 2
  2217. NJN CPRX IF SINGLE CPU MAINFRAME
  2218. LDM TPMB+2*5+/DSL/OPTN
  2219. LPN 1
  2220. NJN CPRX IF CPU0 OFF
  2221. LDM TPMB+10*5+/DSL/PSTA
  2222. SHN 21-0
  2223. MJN CPRX IF SECOND CPU OFF
  2224. SHN 1
  2225. SCN 2 FLAG PROCESSOR SUPPORTS 180 STATE ONLY
  2226. LMN 2
  2227. STM TPMB+10*5+/DSL/PSTA
  2228. UJN CPRX RETURN
  2229. DES SPACE 4,10
  2230. ** DES - DETERMINE EXTENDED MEMORY SIZE/1000B.
  2231. *
  2232. * EXIT (A) = EXTENDED MEMORY SIZE/1000B.
  2233. *
  2234. * USES ES - ES+4, T1 - T5.
  2235. *
  2236. * MACROS SFA.
  2237.  
  2238.  
  2239. DES SUBR ENTRY/EXIT
  2240. LDK EXML READ EXTENDED MEMORY EST ORDINAL
  2241. CRD T1
  2242. LDD T1+4
  2243. LPC 777
  2244. ZJN DESX IF NO CPU ACCESS TO EXTENDED MEMORY
  2245. SFA EST READ EST ENTRY
  2246. ADK EQDE
  2247. CRD ES
  2248. ADK EQAE-EQDE
  2249. CRD T1
  2250. LDD T1+2
  2251. SHN -6
  2252. LPN 3 MASK OFF EXTENDED MEMORY SHIFT COUNT
  2253. ADD TH
  2254. ERRNZ SHNI-1000
  2255. STM DESA UPDATE SHIFT INSTRUCTION
  2256. LDD ES+4 READ MST ENTRY
  2257. SHN 3
  2258. ADK TDGL
  2259. CRD ES
  2260. LDD ES+2 GET LENGTH OF TRT = T
  2261. SHN 6 T*100
  2262. ADD ES+2 T*101
  2263. SHN -3 T*101B/10B = T*4*2020B/1000B
  2264. DESA SHN 0 EM SIZE/1000B
  2265. * SHN EMSC (EMSC = EM SHIFT COUNT)
  2266. STD T1
  2267. SHN -14
  2268. ZJN DES1 IF .LE. 2000K WORDS
  2269. LDC 7777 EM SIZE .GT. 2000K WORDS
  2270. UJP DESX RETURN
  2271.  
  2272. DES1 LDD T1 EM SIZE/1000B
  2273. UJP DESX RETURN
  2274. EMP SPACE 4,10
  2275. ** EMP - EXTENDED MEMORY DESCRIPTOR ENTRY PROCESSOR.
  2276. *
  2277. * ENTRY (CD - CD+4) = 0.
  2278. *
  2279. * EXIT OLD FORMAT EXTENDED MEMORY ENTRY WRITTEN TO *TPMB*.
  2280. *
  2281. * CALLS WOW.
  2282.  
  2283.  
  2284. EMP SUBR ENTRY/EXIT
  2285. LDC 377 SET EXTENDED MEMORY TYPE
  2286. STD CD+1
  2287. LDN 12D SET DESCRIPTOR ID
  2288. SHN 10
  2289. STD CD
  2290. RJM WOW WRITE OLD FORMAT WORD
  2291. UJN EMPX RETURN
  2292. FDC SPACE 4,10
  2293. ** FDC - FIND DEVICE CODE.
  2294. *
  2295. * ENTRY (DEVC) = DEVICE CODE TO FIND.
  2296. *
  2297. * EXIT (A) = 0, IF DEVICE CODE FOUND (DEVM, TI SET).
  2298. * NONZERO, IF NOT IN *TDVC* (*VH* SET).
  2299. * TO *VCE16*, IF DEVICE CODE AND MNEMONIC INCOMPATIBLE.
  2300. *
  2301. * USES TI.
  2302.  
  2303.  
  2304. FDC6 LDK TDVCL-1 RESET DEVICE CODE INDEX
  2305. STD TI
  2306.  
  2307. FDC SUBR ENTRY/EXIT
  2308. LDC DCVB
  2309. STD VH
  2310. LDK TDVCL INITIALIZE DEVICE CODE TABLE INDEX
  2311. STD TI
  2312. FDC1 SOD TI
  2313. ZJN FDC6 IF MORE DEVICE CODES TO CHECK
  2314. LDM DEVC CHECK DEVICE CODE
  2315. LMM TDVC,TI CHECK FOR A MATCH IN THE TABLE
  2316. LPC 3777
  2317. NJN FDC1 IF NO MATCH
  2318. RJM CMR CHECK FOR MATCH ROUTINE
  2319. FDC2 NJN FDC1 IF NO MATCH
  2320. FDC3 LDM DEVM CHECK MNEMONIC
  2321. NJN FDC5 IF MNEMONIC SUPPLIED
  2322. LDM TMNE,TI FETCH MATCHING TRANSFER ADDRESS
  2323. STM DEVM PUT IN PARAMETER BLOCK
  2324. FDC4 UJP FDCX EXIT
  2325.  
  2326. FDC5 LMM TMNE,TI
  2327. ZJN FDC4 IF MNEMONIC MATCHES
  2328. LDM TDVC,TI CHECK FOR ALTERNATE
  2329. SHN 0-13
  2330. NJN FDC2 IF ALTERNATE
  2331. LDK VRMN MNEMONIC / DEVICE CODE INCOMPATIBLE
  2332. LJM VCE16 EXIT WITH ERROR RESPONSE CODE
  2333. FMN SPACE 4,10
  2334. ** FMN - FIND MNEMONIC.
  2335. *
  2336. * ENTRY (DEVM) = MNEMONIC TO FIND.
  2337. *
  2338. * EXIT (A) = 0, IF MNEMONIC FOUND (DEVC, TI SET).
  2339. * (A) NON-ZERO, IF NOT IN *TMNE* (*VH* SET).
  2340. *
  2341. * USES TI.
  2342.  
  2343.  
  2344. FMN3 LDM TDVC,TI STORE DEVICE CODE IN PARAMETER BLOCK
  2345. LPC 3777
  2346. STM DEVC
  2347. LDN 0
  2348.  
  2349. FMN SUBR ENTRY/EXIT
  2350. LDC MNVB
  2351. STD VH
  2352. LDK TMNEL INITIALIZE INDEX
  2353. STD TI
  2354. FMN1 SOD TI
  2355. SBN 1
  2356. MJN FMNX IF MNEMONIC NOT FOUND
  2357. LDM TMNE,TI
  2358. LMM DEVM
  2359. NJN FMN1 IF NO MATCH
  2360. LDM TDVC,TI CHECK CORRESPONDING DEVICE CODE
  2361. LMN DEVC.DQL
  2362. LPC 3777
  2363. ZJN FMN1 IF LARGE SECTOR DEVICE CODE, DO NOT MATCH
  2364. LDM ESTO
  2365. ZJN FMN2 IF NO EST ENTRY FOUND
  2366. RJM CMR CHECK FOR MATCHING ROUTINE
  2367. NJN FMN1 IF NO MATCH
  2368. FMN2 LJM FMN3 EXIT
  2369. GSF SPACE 4,10
  2370. ** GSF - GET SAB FIRST WORD ADDRESS.
  2371. *
  2372. * ENTRY (ES - ES+1) = MAINFRAME DESCRIPTOR FWA.
  2373. *
  2374. * EXIT (A) = SAB FWA.
  2375.  
  2376.  
  2377. GSF SUBR ENTRY/EXIT
  2378. LDD ES+1
  2379. SCN 77
  2380. SHN 6
  2381. ADD ES
  2382. SHN 6
  2383. UJN GSFX RETURN
  2384. IOP SPACE 4,10
  2385. ** IOP - IOU DESCRIPTOR ENTRY PROCESSOR.
  2386. *
  2387. * ENTRY (T2) = 0 IF CYBER 800 TYPE MAINFRAME.
  2388. * (T4) = CURRENT SAB INDEX.
  2389. * (CD - CD+2) = IOU ELEMENT ID.
  2390. * (CM - CM+4) = WORD 0 OF NEW FORMAT IOU ENTRY.
  2391. *
  2392. * EXIT OLD FORMAT IO ENTRY WRITTEN TO *TPMB*.
  2393. *
  2394. * CALLS RNW, WOW.
  2395.  
  2396.  
  2397. IOP1 LDD CM+4 SET MAINTENANCE CHANNEL PORT NUMBER
  2398. SHN -2
  2399. SCN 77
  2400. STD CD+4
  2401. LDN 10D SET DESCRIPTOR ID
  2402. IOP2 SHN 10
  2403. RAD CD
  2404. LDN 1 SET ENTRY LENGTH - 1
  2405. RAD CD+4
  2406. RJM WOW WRITE OLD FORMAT WORD
  2407. RJM RNW READ NEXT SAB WORD
  2408. LDN 0
  2409. STD CD+4
  2410. RJM WOW WRITE OLD FORMAT WORD
  2411.  
  2412. IOP SUBR ENTRY/EXIT
  2413. LDD T2
  2414. ZJN IOP1 IF CYBER 800 TYPE MAINFRAME
  2415. LDN 9D SET DESCRIPTOR ID
  2416. UJN IOP2 COMPLETE ENTRY
  2417. MEE SPACE 4,25
  2418. ** MEE - FIND MATCHING EST ENTRY.
  2419. *
  2420. * ENTRY (EA) = FIRST EST ORDINAL TO TEST.
  2421. * (LO) = LAST EST ORDINAL + 1 TO SEARCH.
  2422. *
  2423. * EXIT (A) = 0, IF A MATCH WAS MADE.
  2424. * = 1, IF NO MATCH AND MATCH NOT EXPECTED.
  2425. * = -1, IF NO MATCH.
  2426. * (ESTO) = EST ORDINAL, IF A MATCH WAS MADE.
  2427. * 0, IF NO MATCH.
  2428. * (AE - AE+4) = *EQAE* WORD OF EST ENTRY, IF MATCH.
  2429. * (ES - ES+4) = *EQDE* WORD OF EST ENTRY, IF MATCH.
  2430. *
  2431. * ERROR TO *VCE16* WITH (A) = ERROR RESPONSE CODE FOR THE
  2432. * FOLLOWING CONDITIONS -
  2433. * AN UNEXPECTED ENTRY IS FOUND IN THE EST.
  2434. * THE MNEMONIC AND THE DEVICE CODE ARE INCOMPATIBLE.
  2435. *
  2436. * USES EA, AE - AE+4, ES - ES+4.
  2437. *
  2438. * CALLS MCH, MEQ, MUN.
  2439. *
  2440. * MACROS SFA.
  2441.  
  2442.  
  2443. MEE7 AOD EA ADVANCE EST ORDINAL
  2444. LMD LO
  2445. NJN MEE1 IF MORE EST ENTRIES TO CHECK
  2446. STM ESTO RESET EST ORDINAL TO ZERO
  2447. LDM FNCH
  2448. SHN 1-NEST
  2449. LPN 2
  2450. SBN 1 SET STATUS
  2451.  
  2452. MEE SUBR ENTRY/EXIT
  2453. MEE1 LDD EA SET ORDINAL IN PARAMETER BLOCK
  2454. STM ESTO
  2455. SFA EST READ EST ENTRY
  2456. ADK EQDE
  2457. CRD ES
  2458. ADK EQAE-EQDE
  2459. CRD AE
  2460. LDD ES+3
  2461. ZJN MEE7 IF ENTRY EMPTY
  2462. MEEA UJN MEE4 MATCH EQUIPMENT SPECIFICATIONS
  2463. * PSN (*DE* DEVICE REQUESTED)
  2464.  
  2465. LMC 2RDE
  2466. ZJN MEEX IF *DE* DEVICE FOUND
  2467. LMN 2RDP&2RDE
  2468. MEE2 ZJN MEEX IF *DP* DEVICE FOUND
  2469. MEE3 UJN MEE7 CHECK NEXT ENTRY
  2470.  
  2471. MEE4 RJM MCH MATCH CHANNELS
  2472. NJN MEE7 IF NO MATCH
  2473. RJM MEQ MATCH EQUIPMENT (CONTROLLER) NUMBER
  2474. NJN MEE3 IF NO MATCH
  2475. RJM MUN MATCH UNIT NUMBERS
  2476. NJN MEE3 IF NO MATCH
  2477. LDM FNCH
  2478. SHN 21-NEST
  2479. MJN MEE5 IF NOT EXPECTED IN EST
  2480. LDM DEVM
  2481. ZJN MEE2 IF NO MNEMONIC SUPPLIED
  2482. LMD ES+3
  2483. ZJN MEE2 IF MNEMONIC MATCHES
  2484. LDN VRMN MNEMONIC/DEVICE CODE INCOMPATIBLE
  2485. UJN MEE6 EXIT WITH ERROR RESPONSE CODE
  2486.  
  2487. MEE5 LDN VREF ENTRY FOUND IN EST
  2488. MEE6 LJM VCE16 EXIT WITH ERROR RESPONSE CODE
  2489. MEQ SPACE 4,20
  2490. ** MEQ - MATCH EQUIPMENT (CONTROLLER) NUMBER.
  2491. *
  2492. * ENTRY (ES - ES+4) = EST ENTRY TO MATCH.
  2493. *
  2494. * EXIT (A) = 0, IF A MATCH.
  2495. * (A) .NE. 0, IF NO MATCH (VH SET PROPERLY).
  2496. * (EP) = UNIT NUMBER FROM EST OR MST (FIRST UNIT NUMBER
  2497. * IF MULTI-SPINDLE RMS DEVICE).
  2498. * FOR RMS -
  2499. * (CM) = NUMBER OF UNITS - 1 IN DEVICE.
  2500. * (CM+1 - CM+4) = UNIT NUMBERS IN DEVICE.
  2501. * IF (CM+4) = 7777, UNITS ARE CONTIGUOUS.
  2502. *
  2503. * USES EP, T1, VH, CM - CM+4.
  2504. *
  2505. * CALLS CMT.
  2506.  
  2507.  
  2508. MEQ SUBR ENTRY/EXIT
  2509. LDD ES CHECK EST ENTRY
  2510. SHN 21-13
  2511. PJN MEQ4 IF NOT RMS EQUIPMENT
  2512. LDD ES+4 READ *DDLL*
  2513. SHN 3
  2514. ADN DDLL
  2515. CRD CM
  2516. LDD CM
  2517. STD T1
  2518. SHN 21-12 CHECK FOR NULL EQUIPMENT
  2519. MJN MEQX IF NULL EQUIPMENT
  2520. SHN 12-21 SET NUMBER OF UNITS
  2521. LPN 7
  2522. STD CM
  2523. LDD CM+4 SET FIRST UNIT
  2524. LPN 77
  2525. STD EP
  2526. LDD T1 SET EQUIPMENT (CONTROLLER) NUMBER
  2527. SHN -6
  2528. LPN 7
  2529. UJN MEQ7 MATCH EQUIPMENT (CONTROLLER) NUMBER
  2530.  
  2531. MEQ4 LDN 0 SET NUMBER OF UNITS
  2532. STD CM
  2533. LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
  2534. RJM CMT
  2535. ZJN MEQ5 IF MAG TAPE ENTRY
  2536. LDM DEVM CHECK FOR MUX
  2537. LMC 2RTT
  2538. ZJN MEQ5 IF MUX
  2539. LMC 2RNP&2RTT
  2540. NJN MEQ6 IF NOT MUX
  2541.  
  2542. * NT/MT/CT/AT/TT/NP ENTRIES PROCESSED HERE.
  2543.  
  2544. MEQ5 LDD ES+4 SET UNIT NUMBER
  2545. LPN 17
  2546. UJN MEQ6.1 SET UNIT NUMBER
  2547.  
  2548. * CP/CR/LP ENTRIES PROCESSED HERE.
  2549.  
  2550. MEQ6 LDD ES+4 SET UNIT NUMBER
  2551. LPN 77
  2552. MEQ6.1 STD EP
  2553. LDD ES+4 SET EQUIPMENT (CONTROLLER) NUMBER
  2554. SHN -11
  2555. MEQ7 STD T1
  2556. LDC EQVB SET VALIDATION BYTE
  2557. SBD VH
  2558. MJN MEQ8 IF NOT HIGHER VALIDATION
  2559. RAD VH UPDATE CODE WORD
  2560. MEQ8 LDM EQPV GET PARAMETER BLOCK EQUIPMENT WORD
  2561. SHN 21-VBCD
  2562. MJN MEQ9 IF EQUIPMENT (CONTROLLER) NUMBER SUPPLIED
  2563. LDD T1 STORE EQUIPMENT (CONTROLLER) NUMBER
  2564. STM EQPN
  2565. MEQ9 LDD T1 SET RESPONSE
  2566. LMM EQPN
  2567. LJM MEQX EXIT
  2568. MUN SPACE 4,15
  2569. ** MUN - MATCH UNIT NUMBER.
  2570. *
  2571. * ENTRY (EP) = UNIT NUMBER FROM EST.
  2572. * (CM) = NUMBER OF UNITS - 1 IN DEVICE.
  2573. * (CM+1 - CM+4) = UNIT NUMBERS IN DEVICE IF (CM) .NE.
  2574. * ZERO (IF (CM+4) = 7777, UNIT NUMBERS ARE SEQUENTIAL).
  2575. *
  2576. * EXIT (A) = 0, IF A MATCH OR IF RHF VALIDATION CALL.
  2577. * (A) NON-ZERO, IF NO MATCH (VH SET PROPERLY).
  2578. * (EP) = LOGICAL UNIT NUMBER FOR RMS.
  2579. *
  2580. * USES CM, EP, T1, T2, VH.
  2581.  
  2582.  
  2583. MUN4 LDD EP SET UNIT NUMBER
  2584. STM UNUM
  2585. MUN5 LDN 0 SET RESPONSE
  2586. STD EP SET LOGICAL UNIT NUMBER
  2587.  
  2588. MUN SUBR ENTRY/EXIT
  2589. LDM UNIT CHECK UNIT NUMBER FROM CALLER
  2590. MUNA EQU *-2
  2591. * UJN MUN5 (RHF VALIDATION CALL)
  2592. SHN 21-VBCD
  2593. PJN MUN4 IF NO UNIT NUMBER FROM CALLER
  2594. LDC UNVB UPDATE VALIDATION CODE WORD
  2595. STD VH
  2596. LDD EP SAVE PHYSICAL UNIT NUMBER
  2597. STD T1
  2598. LDN 0 SET LOGICAL UNIT NUMBER
  2599. STD EP
  2600. LDN CM+4 UNIT NUMBER LIST ADDRESS
  2601. STD T2
  2602. LDD T1 MATCH PHYSICAL UNIT NUMBER
  2603. MUN1 LMM UNUM
  2604. ZJN MUNX IF MATCH
  2605. SOD CM
  2606. MJN MUNX IF NO MORE TO CHECK
  2607. LDD CM+4
  2608. LMC 7777
  2609. NJN MUN2 IF NOT CONTIGUOUS UNITS
  2610. AOD EP INCREMENT LOGICAL UNIT NUMBER
  2611. AOD T1 INCREMENT PHYSICAL UNIT NUMBER
  2612. UJN MUN1 LOOP
  2613.  
  2614. MUN2 AOD EP INCREMENT LOGICAL UNIT
  2615. LPN 1
  2616. NJN MUN3 IF SECOND UNIT NUMBER IN WORD
  2617. SOD T2 DECREMENT TO NEW WORD
  2618. LDI T2
  2619. LPN 77
  2620. UJN MUN1 SET PHYSICAL UNIT
  2621.  
  2622. MUN3 LDI T2 ISOLATE NEXT PHYSICAL UNIT NUMBER
  2623. SHN -6
  2624. UJN MUN1 SET PHYSICAL UNIT
  2625. PRP SPACE 4,15
  2626. ** PRP - PROCESSOR DESCRIPTOR ENTRY PROCESSOR.
  2627. *
  2628. * ENTRY (T2) = 0 IF CYBER 800 TYPE MAINFRAME.
  2629. * (T4) = CURRENT SAB INDEX.
  2630. * (T5) = 1 IF CPU0 IS LOGICALLY OFF (CYBER 800).
  2631. * (T7) = EI/MICROCODE VERIFIED AT DEADSTART FLAG.
  2632. * (PRPA) = 1 IF ONE PROCESSOR ENTRY ALREADY PROCESSED.
  2633. * (CD - CD+2) = PROCESSOR ELEMENT ID.
  2634. * (CM - CM+4) = WORD ZERO OF NEW FORMAT PROCESSOR ENTRY.
  2635. *
  2636. * EXIT OLD FORMAT PROCESSOR ENTRY WRITTEN TO *TPMB*.
  2637. *
  2638. * USES T1, CM - CM+4.
  2639. *
  2640. * CALLS GSF, RNW, WOW.
  2641.  
  2642.  
  2643. PRP2 LDN 1 SET DESCRIPTOR ID
  2644. SHN 10
  2645. RAD CD
  2646. RJM WOW WRITE OLD FORMAT WORD
  2647. PRP3 LDN 1 SET CPU ENTRY PROCESSED
  2648. RAM PRPA
  2649.  
  2650. PRP SUBR ENTRY/EXIT
  2651. LDD T2
  2652. NJN PRP2 IF NOT CYBER 800 TYPE MAINFRAME
  2653. LDD CM+4 GET MAINTENANCE CHANNEL PORT NUMBER
  2654. SHN -2
  2655. SCN 77
  2656. ADN 4 SET ENTRY LENGTH - 1
  2657. STD CD+4
  2658. AOD T4
  2659. RJM GSF GET SAB FWA
  2660. ADD T4 READ NEXT WORD OF NEW FORMAT
  2661. CRD CM
  2662. LDD CM SET DEGRADATION FLAGS
  2663. STD CD+3
  2664. LDD CM+2 SAVE PMF HARDWARE FLAG
  2665. SHN 0-3
  2666. LPN 1
  2667. LMN 1 FLAG IS OPPOSITE IN OLD FORMAT
  2668. STD T1
  2669.  
  2670. * FOR A DUAL CPU CYBER 800 TYPE MAINFRAME, ONLY ONE PROCESSOR
  2671. * DESCRIPTOR IS RETURNED. IT CONTAINS INFORMATION ABOUT THE
  2672. * FIRST CPU THAT IS LOGICALLY ON.
  2673.  
  2674. LDD T5 GET CPU0 ON/OFF FLAG
  2675. LMN 0 PROCESSOR ENTRY HAS NOT BEEN PROCESSED
  2676. PRPA EQU *-1
  2677. * LMN 1 (PROCESSOR ENTRY HAS BEEN PROCESSED)
  2678. NJN PRP3 IF ENTRY NOT TO BE USED
  2679. LDN 2 SET DESCRIPTOR ID
  2680. SHN 10
  2681. RAD CD
  2682. RJM WOW WRITE OLD FORMAT WORD
  2683. LDN ZERL
  2684. CRD CD
  2685. LDD T1 SET PMF HARDWARE AVAILABILITY
  2686. STD CD+4
  2687. RJM WOW WRITE OLD FORMAT WORD
  2688. RJM RNW READ NEXT WORD OF NEW FORMAT
  2689. RJM GSF GET SAB FWA
  2690. ADN 1 READ SECOND WORD OF MAINFRAME DESCRIPTOR
  2691. CRD CM
  2692. LDD CM+3 SET EI NAME
  2693. STD CD+4
  2694. RJM WOW WRITE OLD FORMAT WORD
  2695. RJM RNW READ NEXT SAB WORD
  2696. LDD T7 SET EI/MICROCODE VERIFIED FLAG
  2697. SHN 1-3
  2698. LPN 2
  2699. RAD CD+4
  2700. RJM WOW WRITE OLD FORMAT WORD
  2701. LDD MA SET EI DATE
  2702. CWD CM
  2703. CRD CD
  2704. LDN 0
  2705. STD CD+3
  2706. STD CD+4
  2707. RJM WOW WRITE OLD FORMAT WORD
  2708. LJM PRP3 RETURN
  2709. RNW SPACE 4,10
  2710. ** RNW - READ NEXT SAB WORD.
  2711. *
  2712. * ENTRY (T4) = CURRENT SAB INDEX.
  2713. *
  2714. * EXIT (T4) INCREMENTED.
  2715. * (CD - CD+4) = NEXT SAB WORD.
  2716. *
  2717. * CALLS GSF.
  2718.  
  2719.  
  2720. RNW SUBR ENTRY/EXIT
  2721. AOD T4 INCREMENT INDEX
  2722. RJM GSF GET SAB FWA
  2723. ADD T4
  2724. CRD CD
  2725. UJN RNWX RETURN
  2726. RPB SPACE 4,10
  2727. ** RPB - READ PARAMETER BLOCK.
  2728. *
  2729. * EXIT (A) .GE. 0 IF RHF VALIDATION CALL.
  2730. * (A) .LT. 0 OTHERWISE.
  2731. * (VH) = VALIDATION LEVEL INITIALIZED TO *EOVB*.
  2732. * TABLE *TPMB* CONTAINS USER PARAMETER BLOCK.
  2733. *
  2734. * USES BS, VH.
  2735. *
  2736. * CALLS CKA.
  2737.  
  2738.  
  2739. RPB1 LDN 1 INDICATE RHF VALIDATION CALL
  2740.  
  2741. RPB SUBR ENTRY/EXIT
  2742. LDN TPMBL/5 READ PARAMETER BLOCK
  2743. STD BS
  2744. RJM CKA
  2745. CRM TPMB,BS
  2746. LDN EOVB INITIALIZE VALIDATION LEVEL
  2747. STD VH
  2748. LDM DEVC DETERMINE VALIDATION CALL TYPE
  2749. SBK FNAD
  2750. MJN RPBX IF NOT RHF VALIDATION CALL
  2751. SBN LNAD-FNAD
  2752. MJN RPB1 IF RHF VALIDATION CALL
  2753. LCN 1
  2754. UJN RPBX EXIT
  2755. SMP SPACE 4,20
  2756. ** SMP - SET AND/OR MATCH PARAMETERS.
  2757. *
  2758. * ENTRY (IR+3 - IR+4) = RELATIVE PARAMETER BLOCK ADDRESS.
  2759. * (IR+1) = CONTROL POINT NUMBER.
  2760. *
  2761. * EXIT (A) = 0, IF DEVICE FOUND IN EST AS EXPECTED.
  2762. * = 1, IF DEVICE NOT IN EST AS EXPECTED.
  2763. * = -1, IF BAD PARAMETER FOUND (*VH* SET.)
  2764. * (EA) = (ESTO) = EST ORDINAL.
  2765. * (SB) = 0.
  2766. * (TI) = TABLE *TDVC* INDEX INITIALIZED.
  2767. * (VH) = VALIDATION LEVEL POINTER INITIALIZED TO *EOVB*.
  2768. * TABLE *TPMB* CONTAINS USER PARAMETER BLOCK.
  2769. * TO *VCE16*, IF RETURNING UNIT, OR IF ERROR DETECTED.
  2770. *
  2771. * USES EA, LO, TI, VH, CM - CM+4.
  2772. *
  2773. * CALLS CMT, FDC, FMN, MEE, VTP.
  2774. *
  2775. * MACROS SFA.
  2776.  
  2777.  
  2778. SMP SUBR ENTRY/EXIT
  2779. LDN 0 INITIALIZE RESPONSE CODE
  2780. STD SB
  2781. LDN NOPE INITIALIZE EST ORDINAL FOR SEARCH
  2782. STD EA
  2783.  
  2784. * PART I. VERIFY THAT AT LEAST A MINIMAL SET OF PARAMETERS
  2785. * HAVE BEEN PASSED.
  2786.  
  2787. LDM FNCH
  2788. SHN 21-RTNU
  2789. PJN SMP1 IF NOT RETURNING UNIT
  2790. LDN 0
  2791. LJM VCE16 RETURN EQUIPMENT
  2792.  
  2793. * IF ESTO NOT GIVEN, EITHER *DEVM* MUST BE *DE*, *MT*, *NT*,
  2794. * *CT* OR *AT*, OR ELSE CHANNEL, EQUIP AND UNIT MUST BE GIVEN.
  2795.  
  2796. SMP1 LDM ESTV CHECK USER EST ORDINAL
  2797. SHN 21-VBCD
  2798. MJN SMP4 IF EST ORDINAL SUPPLIED
  2799. LDM DEVM
  2800. LMC 2RDE
  2801. ZJP SMP15 IF *DE* REQUEST
  2802. LDM CHAN CHECK USER CHANNEL
  2803. SHN 21-VBCD
  2804. SMPA PJN SMP3 IF CHANNEL NOT SUPPLIED
  2805. * PJN SMP2 (RHF VALIDATION CALL)
  2806. LDM EQPV CHECK USER EQUIPMENT
  2807. SHN 21-VBCD
  2808. PJN SMP2 IF EQUIPMENT NOT SUPPLIED
  2809. LDM UNIT CHECK USER UNIT NUMBER
  2810. SHN 21-VBCD
  2811. SMPB MJN SMP5 IF UNIT NUMBER SUPPLIED
  2812. * UJN SMP5 (RHF VALIDATION CALL - NO UNIT NUMBER)
  2813. SMP2 LDN VRIP INCORRECT PARAMETER COMBINATION
  2814. LJM VCE16 EXIT WITH ERROR RESPONSE CODE
  2815.  
  2816. SMP3 LDM DEVM CHECK FOR MAGNETIC TAPE EQUIPMENT
  2817. RJM CMT
  2818. NJN SMP2 IF MNEMONIC SPECIFIED NOT TAPE
  2819. RJM VTP VALIDATE TAPE PREASSIGNMENT PARAMETERS
  2820. * UJN SMP4 VERIFY EST ORDINAL
  2821.  
  2822. * PART II. VERIFY THAT THE PARAMETERS PASSED ARE CONSISTENT
  2823. * AND SUPPLY THE MISSING PARAMETERS.
  2824.  
  2825. * VERIFY THE EST ORDINAL IN *ESTO*.
  2826.  
  2827. SMP4 LDN EOVB INITIALIZE VALIDATION BYTE
  2828. STD VH
  2829. LDM FNCH CHECK NOT-IN-EST FUNCTION BIT
  2830. SHN 21-NEST
  2831. MJN SMP2 IF NOT SUPPOSED TO BE IN EST
  2832. LDM ESTO EST ORDINAL
  2833. ZJN SMP8 IF NOT PRESENT
  2834. STD EA
  2835. SBD LO
  2836. PJN SMP8 IF EST ORDINAL OUT OF RANGE
  2837. LDD EA SET LAST EST ORDINAL + 1 TO SEARCH
  2838. ADN 1
  2839. STD LO
  2840.  
  2841. * SEARCH THE EST FOR AN ENTRY.
  2842. *
  2843. * THE PARAMETERS SUPPLIED MUST HAVE BEEN-
  2844. * EST ORDINAL, OR
  2845. * DEVICE MNEMONIC = *MT*, *NT*, *CT* OR *AT*
  2846. * (*VTP* GOT ESTO), OR
  2847. * CHANNEL, EQUIPMENT, AND UNIT, OR
  2848. * CHANNEL, EQUIPMENT, UNIT, AND DEVICE CODE, OR
  2849. * CHANNEL, EQUIPMENT, UNIT, AND DEVICE MNEMONIC.
  2850.  
  2851. SMP5 RJM MEE FIND MATCHING EST ENTRY
  2852. NJN SMP10 IF ENTRY WAS NOT FOUND
  2853. LDD ES+3
  2854. STM DEVM SUPPLY DEVICE CODE
  2855. LDM DEVC
  2856. ZJN SMP6 IF NO DEVICE CODE FROM CALLER
  2857. RJM FDC FIND DEVICE CODE
  2858. UJN SMP7 RETURN WITH STATUS
  2859.  
  2860. SMP6 RJM FMN FIND MNEMONIC
  2861. SMP7 ZJN SMP9 IF MATCH FOUND
  2862. SMP8 LCN 1 SET ERROR STATUS
  2863. SMP9 LJM SMPX EXIT
  2864.  
  2865. * VERIFY EQUIPMENT THAT IS NOT IN THE EST.
  2866.  
  2867. * THE PARAMETERS SUPPLIED MUST HAVE BEEN-
  2868. * CHANNEL, EQUIPMENT, UNIT, AND DEVICE CODE, OR
  2869. * CHANNEL, EQUIPMENT, UNIT, AND DEVICE MNEMONIC.
  2870.  
  2871. SMP10 MJN SMP13 IF ENTRY WAS EXPECTED
  2872. LDM FNCH
  2873. SHN 21-RTNU
  2874. MJN SMP13 IF UNIT RETURN REQUESTED
  2875. LDM DEVC
  2876. ZJN SMP11 IF NO DEVICE CODE FROM CALLER
  2877. RJM FDC FIND DEVICE CODE
  2878. UJN SMP12 RETURN WITH STATUS
  2879.  
  2880. SMP11 LDM DEVM
  2881. ZJN SMP14 IF NO DEVICE MNEMONIC FROM CALLER
  2882. RJM FMN FIND MNEMONIC
  2883. SMP12 LDN 1 EQUIPMENT NOT FOUND AS EXPECTED
  2884. UJN SMP9 RETURN WITH STATUS
  2885.  
  2886. SMP13 LDN VREN&VRIP ENTRY NOT IN EST
  2887. SMP14 LMN VRIP INCORRECT PARAMETER COMBINATION
  2888. LJM VCE16 RETURN WITH ERROR RESPONSE CODE
  2889.  
  2890. * PROCESS *DE* REQUEST.
  2891.  
  2892. * THE PARAMETERS SUPPLIED MUST HAVE BEEN-
  2893. * DEVICE MNEMONIC = *DE*.
  2894.  
  2895. SMP15 STM MEEA ENABLE *DE* PROCESSING IN *MEE*
  2896. SMP16 RJM MEE FIND MATCHING EST ENTRY
  2897. NJP SMP10 IF NO ENTRY FOUND
  2898. LDD ES+3 SET MNEMONIC FROM EST
  2899. STM DEVM
  2900. RJM FMN FIND MNEMONIC
  2901. MJN SMP17 IF MNEMONIC NOT FOUND
  2902. LDM TMSK,TI
  2903. LPN 70
  2904. ZJN SMP16 IF NO HIGH SPEED PORT
  2905. LDM FNCH
  2906. SHN 21-NEST
  2907. MJN SMP13 IF NOT EXPECTED IN EST
  2908. RJM MCH MATCH / SET CHANNELS
  2909. ZJN SMP18 IF CHANNEL MATCHED OR WAS NOT SPECIFIED
  2910. SMP17 LCN 1 SET ERROR STATUS
  2911. SMP18 LJM SMPX EXIT
  2912. TEM SPACE 4,15
  2913. ** TEM - TEST FOR EXTENDED MEMORY PRESENT.
  2914. *
  2915. * ENTRY CALLER HAS REQUESTED VALIDATION FOR EXTENDED MEMORY
  2916. * WITH NO MATCHING PARAMETERS FOUND IN THE EST. ONE
  2917. * MORE PASS IS REQUIRED TO ENSURE THAT EXTENDED
  2918. * MEMORY, IF FOUND WITH AN ALTERNATE MNEMONIC, IS NOT
  2919. * BEING USED BY THE SYSTEM.
  2920. *
  2921. * EXIT (A) = RESPONSE CODE RETURNED TO CALLER.
  2922. *
  2923. * USES EA, CM - CM+4, ES - ES+4.
  2924. *
  2925. * MACROS SFA.
  2926.  
  2927.  
  2928. TEM3 LDD MA RETURN ADDRESS OF PREALLOCATED SPACE
  2929. CWM TEMA,ON
  2930. SBN 1
  2931. CRM PSNV,ON
  2932. LDN VRGR VALIDATION GRANTED
  2933.  
  2934. TEM SUBR ENTRY/EXIT
  2935. LDM FNCH
  2936. LPN WRTM+PREM
  2937. LMN WRTM+PREM
  2938. NJN TEM3 IF WRITING ONLY IN PREALLOCATED AREA
  2939. LDK EXML READ EXTENDED MEMORY EST ORDINAL
  2940. CRD CM
  2941. LDD CM+4
  2942. LPC 777
  2943. ZJN TEMX IF NO EXTENDED MEMORY PRESENT
  2944. SFA EST READ EST ENTRY
  2945. ADK EQDE
  2946. CRD ES
  2947. ADK EQAE-EQDE READ EQUIPMENT ASIGNMENT
  2948. CRD CM
  2949. LDD ES
  2950. LPN 3
  2951. LMN 3
  2952. NJN TEM1 IF EXTENDED MEMORY NOT DOWN
  2953. LDD CM+4
  2954. ZJN TEMX IF EXTENDED MEMORY DOWN AND UNASSIGNED
  2955. ERRNZ VRGR ERROR IF RESPONSE VALUE CHANGES
  2956. TEM1 LDN VRUS EQUIPMENT IN USE
  2957. UJN TEMX RETURN
  2958.  
  2959.  
  2960. TEMA VFD 12/0 *PSNV* VALUE
  2961. VFD 24/ECSRA*100 PREALLOCATED AREA RAE
  2962. VFD 24/ECSFL*100 PREALLOCATED AREA FLE
  2963. VTP SPACE 4,30
  2964. ** VTP - VALIDATE TAPE PREASSIGNMENT INFORMATION.
  2965. *
  2966. * ENTRY (EA) = *NOPE*.
  2967. *
  2968. * EXIT (ESTO) = EST ORDINAL OF THE PREASSIGNED TAPE,
  2969. * IF NO ERRORS. PROCESSING THEN CONTINUES IN *SMP*
  2970. * AS IF THE USER HAD SUPPLIED ONLY THE EST ORDINAL.
  2971. *
  2972. * THE *DIAGNOSTIC-ASSIGNED* BIT IS ALSO SET IN THE
  2973. * TAPE-S FNT ENTRY TO ONLY ALLOW *CIO* OPERATIONS
  2974. * THAT REMOVE THE ENTRY FROM THE FNT AND TO ABORT
  2975. * ALL OTHERS.
  2976. *
  2977. * ERROR TO *VCE16* WITH (A) = ERROR RESPONSE CODE IF ANY OF
  2978. * THE FOLLOWING CONDITIONS EXIST.
  2979. * 1. USER-S *DEVM* AND EJT ORDINAL DO NOT MATCH
  2980. * WITH CORRESPONDING FIELDS IN EST AND EAT ENTRIES.
  2981. * 2. NO FNT/FST ENTRY CONTAINS A MATCHING EST
  2982. * ORDINAL.
  2983. * 3. USER ATTEMPTED TO LOAD TAPE CONTROLWARE WHEN
  2984. * USING TAPE PREASSIGNMENT.
  2985. * 4. USER WAS PREASSIGNED A LABELED TAPE.
  2986. *
  2987. * USES EA, FS+4, CM - CM+4.
  2988. *
  2989. * CALLS SFN.
  2990. *
  2991. * MACROS NFA, SFA.
  2992.  
  2993.  
  2994. VTP7 AOD EA ADVANCE EST ORDINAL
  2995. LMD LO
  2996. NJN VTP2 IF MORE ENTRIES TO PROCESS
  2997. LDN VRFN FILE NOT FOUND
  2998. UJN VTP1 EXIT WITH ERROR
  2999.  
  3000. VTP SUBR ENTRY/EXIT
  3001. LDM FNCH CHECK FOR LOAD CONTROLWARE REQUEST
  3002. SHN 21-LMEM
  3003. PJN VTP2 IF CONTROLWARE LOAD NOT REQUESTED
  3004. LDN VRBC NO BC LOAD ON PREASSIGN
  3005. VTP1 LJM VCE16 EXIT WITH ERROR RESPONSE CODE
  3006.  
  3007. VTP2 SFA EST,EA READ NEXT EST ENTRY
  3008. ADK EQDE
  3009. CRD CM
  3010.  
  3011. * TEST IF USER-SUPPLIED DEVICE MNEMONIC AND EJT
  3012. * ORDINAL MATCH THOSE IN EST AND EAT ENTRIES.
  3013.  
  3014. LDD CM+3
  3015. ZJN VTP7 IF EMPTY ENTRY
  3016. LMM DEVM
  3017. VTP3 NJN VTP7 IF MNEMONICS DO NOT MATCH
  3018. SFA EST,EA READ EQUIPMENT ASSIGNMENT
  3019. ADK EQAE
  3020. CRD CM
  3021. LDD CM+4
  3022. LMM EJTO
  3023. NJN VTP3 IF EJT ORDINALS DO NOT MATCH
  3024. LDD EA STORE EST ORDINAL
  3025. STM ESTO
  3026.  
  3027. * SEARCH FNT/FST TO ENSURE THAT EST ORDINALS MATCH AND
  3028. * THAT THE PREASSIGNED TAPE IS UNLABELED.
  3029.  
  3030. LDN 1 FNT/FST UPDATE REQUIRED
  3031. RJM SFN SEARCH FNT/FST
  3032. ZJN VTP4 IF EST ORDINAL FOUND IN FNT/FST
  3033. LMN 2
  3034. ZJN VTP3.1 IF FILE NOT FOUND
  3035. LDK VRIS&VRFN I/O SEQUENCE ERROR
  3036. VTP3.1 LMN VRFN FILE NOT FOUND
  3037. UJN VTP4.1 EXIT WITH ERROR RESPONSE CODE
  3038.  
  3039. VTP4 LDD FS+4
  3040. SHN 21-13
  3041. PJN VTP6 IF UNLABELED TAPE WAS PREASSIGNED
  3042. LDN VRLT LABELED TAPE WAS PREASSIGNED
  3043. VTP4.1 LJM VCE16 EXIT WITH ERROR RESPONSE CODE
  3044.  
  3045. * SET *DIAGNOSTIC-ASSIGNED* BIT IN FNT.
  3046.  
  3047. VTP6 SHN 13-21
  3048. SCN 1 CLEAR FILE BUSY STATUS
  3049. LMN 1
  3050. STD FS+4
  3051. LDD CM+3 SET *DIAGNOSTIC-ASSIGNED* BIT IN FNT
  3052. SCN 40
  3053. LMN 40
  3054. STD CM+3
  3055. NFA FA,R REWRITE FNT/FST ENTRIES
  3056. CWD CM
  3057. ADN FSTL
  3058. CWD FS
  3059. LDC UJNI+VCE5-VCEA ALTER BRANCH ADDRESS
  3060. STM VCEA
  3061. LJM VTPX EXIT
  3062.  
  3063. ERRNG 37+VCEA-VCE5 ERROR IF OUT OF RANGE
  3064. WOW SPACE 4,10
  3065. ** WOW - WRITE OLD FORMAT WORD.
  3066. *
  3067. * ENTRY (BS) = CURRENT CM WORD LENGTH OF OLD FORMAT BLOCK.
  3068. * (CD - CD+4) = NEXT WORD FOR OLD FORMAT BLOCK.
  3069. *
  3070. * EXIT (A) .NE. 0.
  3071. * (BS) INCREMENTED.
  3072.  
  3073.  
  3074. WOW SUBR ENTRY/EXIT
  3075. LDD MA
  3076. CWD CD
  3077. CRM TPMB+1*5,ON
  3078. WOWA EQU *-1
  3079. LDN 5 INCREMENT ADDRESS FOR NEXT WORD
  3080. RAM WOWA
  3081. AOD BS INCREMENT CM WORD LENGTH
  3082. UJN WOWX RETURN
  3083. PRS TITLE PRESET FOR RHF PROCESSING.
  3084. ** PRS - PRESET ROUTINES FOR RHF PROCESSING.
  3085. *
  3086. * CERTAIN ROUTINES NEED SLIGHT CHANGES, SINCE RHF
  3087. * PROCESSING IS SOMEWHAT DIFFERENT FOR RHF DIAGNOSTICS.
  3088. * *PRS* MAKES THOSE REQUIRED CHANGES.
  3089. *
  3090. * EXIT (A) .GE. 0 IF RESPONSE CODE IS TO BE RETURNED TO
  3091. * REQUESTING JOB.
  3092. * (A) .LT. 0 IF FURTHER VALIDATION REQUIRED.
  3093. *
  3094. * APPROPRIATE ROUTINES HAVE BEEN ALTERED TO ALLOW
  3095. * RHF VALIDATION PROCESSING.
  3096.  
  3097.  
  3098. PRS7 AOM VCEB SET *COLD* VALIDATION PRIVILEGES
  3099. LCN 0 VALID DEVICE CODE
  3100.  
  3101. PRS SUBR ENTRY/EXIT
  3102. LDM FNCH
  3103. SHN 21-RTNU
  3104. MJN PRS7 IF RETURNING EQUIPMENT
  3105. LDM DEVC
  3106. LMC DEVC.NCR
  3107. ZJN PRS4 IF REMOTE NAD
  3108. LMN DEVC.NCL&DEVC.NCR
  3109. ZJN PRS5 IF LOCAL NAD
  3110. LDM FNCH
  3111. SHN 21-NEST
  3112. MJN PRSX IF NOT IN EST
  3113. LDC DCVB NO MATCH ON DEVICE CODE
  3114. RJM SVB
  3115. LDN VRNM
  3116. PRS2 UJN PRSX EXIT
  3117.  
  3118. PRS4 LDC * ALTER BRANCH ADDRESS
  3119. ORG *-1
  3120. LOC UESD
  3121. UJN UES11
  3122. LOC *O
  3123. STM UESD
  3124. LDM TCUE
  3125. LPN 17
  3126. NJN PRS5 IF TCU ENABLES SET
  3127. LDC TCVB
  3128. RJM SVB
  3129. LDN VRTC NO TCU ENABLES SET
  3130. UJN PRS2 EXIT
  3131.  
  3132. PRS5 LDC * ALTER BRANCH ADDRESS
  3133. ORG *-1
  3134. LOC MUNA
  3135. UJN MUN5
  3136. LOC *O
  3137. STM MUNA
  3138. LDC * ALTER BRANCH ADDRESS
  3139. ORG *-1
  3140. LOC SMPA
  3141. PJN SMP2
  3142. LOC *O
  3143. STM SMPA
  3144. ISTORE SMPB,(UJN SMP5) IGNORE UNIT NUMBER CHECK
  3145. LDC VWDM+VB3M SET VALIDATION FOR LOCAL NAD
  3146. STM UESB
  3147. LDC SHNI+21-VBS3 CHECK LOCAL NAD SHARE BYTE
  3148. STM UESC
  3149. LDN RVES-RDES CHANGE *REQM* SUBFUNCTION
  3150. RAM UUSB
  3151. LDC * ALTER BRANCH ADDRESS
  3152. ORG *-1
  3153. LOC UUSA
  3154. PJN UUS1
  3155. LOC *O
  3156. STM UUSA
  3157. LDM FNCH
  3158. LPC CMEM+SPCM
  3159. LMC CMEM+SPCM
  3160. NJN PRS6 IF NOT LOCAL NAD LOAD OR DUMP
  3161. LDK PSNI ALLOW CONTROLWARE LOAD/DUMP ON UP NAD
  3162. STM UESE
  3163. LDC STDI+CM+4 SAVE CHANNEL NUMBER
  3164. STM CAEA
  3165. AOM UUSC SET LOAD/DUMP CONTROLWARE FLAG
  3166. PRS6 LJM PRS7 SET VALIDATION STATUS
  3167. DVT SPACE 4,15
  3168. ** DVT - DETERMINE VALIDATION TYPE.
  3169. *
  3170. * EXIT (A) = RESPONSE CODE, IF ERROR DETECTED.
  3171. * (A) = 0, IF NO ERRORS FOUND.
  3172. * (T1) = TABLE INDEX OF NEXT ROUTINE TO PROCESS, IF
  3173. * NO ERRORS FOUND.
  3174. * IF AN ERROR IS DETECTED, THE APPROPRIATE VALIDATION
  3175. * BYTE IS FLAGGED IN THE PARAMETER BLOCK.
  3176. *
  3177. * USES T1.
  3178. *
  3179. * CALLS SVB.
  3180.  
  3181.  
  3182. DVT SUBR ENTRY/EXIT
  3183. LDM TCUE SET BUFFER SIZE TYPE 1
  3184. LPN 17
  3185. ADN 20
  3186. STM TCUE
  3187. LDM DEVC DETERMINE NAD TYPE
  3188. LMC DEVC.NCR
  3189. NJN DVT1 IF NOT REMOTE NAD
  3190. LJM DVT6 PROCESS REMOTE NAD
  3191.  
  3192. DVT1 LDM FNCH
  3193. SHN 21-LMEM
  3194. MJN DVT4 IF LOCAL NAD DEDICATED REQUESTED
  3195. LDM EQPV
  3196. SHN 21-VBS3
  3197. MJN DVT2 IF SHARE BYTE SET
  3198. LDN LNCT SET LOCAL NAD CONCURRENT TABLE INDEX
  3199. STD T1
  3200. ERRNZ LNCT-VRGR (EXIT ERROR IF *LNCT* VALUE CHANGED)
  3201. UJN DVTX EXIT
  3202.  
  3203. DVT2 LDC LNVB ERROR - SHARE BYTE SET
  3204. RJM SVB
  3205. LDN VRSB
  3206. DVT3 UJN DVTX EXIT
  3207.  
  3208. DVT4 LDM EQPV
  3209. SHN 21-VBS3
  3210. PJN DVT5 IF SHARE BYTE NOT SET
  3211. LDN LNDT SET LOCAL NAD DEDICATED TABLE INDEX
  3212. STD T1
  3213. LDN 0
  3214. UJN DVT3 EXIT
  3215.  
  3216. DVT5 LDC LNVB ERROR - SHARE BYTE NOT SET
  3217. RJM SVB
  3218. LDN VRNB
  3219. UJN DVT3 EXIT
  3220.  
  3221. DVT6 LDM RDVC
  3222. LMC DEVC.NCR
  3223. ZJN DVT8 IF REMOTE NAD DEVICE CODE
  3224. LDC RDVB ERROR - REMOTE NAD DEVICE CODE BAD
  3225. RJM SVB
  3226. LDN VRRB
  3227. DVT7 UJN DVT3 EXIT
  3228.  
  3229. DVT8 LDM LTCV TEST REMOTE NAD SHARE BYTE
  3230. SHN 21-VBS3
  3231. MJN DVT9 IF SHARE BYTE SET
  3232. LDN LNCT PROCESS LOCAL AND REMOTE NAD CONCURRENT
  3233. UJN DVT11 EXIT
  3234.  
  3235. DVT9 LDM EQPV TEST LOCAL NAD SHARE BYTE
  3236. SHN 21-VBS3
  3237. MJN DVT10 IF LOCAL AND REMOTE NAD DEDICATED
  3238. LDN RNDT PROCESS REMOTE NAD DEDICATED
  3239. UJN DVT11 EXIT
  3240.  
  3241. DVT10 LDN LRDT PROCESS LOCAL AND REMOTE NAD DEDICATED
  3242. DVT11 STD T1
  3243. LDN 0
  3244. UJN DVT7 EXIT
  3245. VDN SPACE 4,10
  3246. ** VDN - VALIDATE DEDICATED NAD USAGE.
  3247. *
  3248. * EXIT (A) = POSITIVE, IF USER UNAUTHORIZED ACCESS.
  3249. * (A) = NEGATIVE, IF USER AUTHORIZED ACCESS.
  3250. *
  3251. * USES CM - CM+4.
  3252.  
  3253.  
  3254. VDN SUBR ENTRY/EXIT
  3255. LDD CP READ USER ACCESS WORD
  3256. ADK AACW
  3257. CRD CM
  3258. LDD CM+3
  3259. SHN 21-4
  3260. MJN VDNX IF USER AUTHORIZED ACCESS
  3261. LDN VRUA UNAUTHORIZED ACCESS TO NETWORK
  3262. UJN VDNX RETURN
  3263. VLC SPACE 4,10
  3264. ** VLC - VALIDATE LOCAL NAD CONCURRENTLY.
  3265. *
  3266. * EXIT (A) = RESPONSE CODE RETURNED TO *MALET*.
  3267. *
  3268. * CALLS VDN.
  3269.  
  3270.  
  3271. VLC SUBR ENTRY/EXIT
  3272. RJM VDN
  3273. PJN VLC1 IF USER NOT ALLOWED ACCESS
  3274. LDN VRGR VALIDATION GRANTED
  3275. UJN VLCX EXIT
  3276.  
  3277. VLC1 LDN VRUA UNAUTHORIZED TO ACCESS NETWORK
  3278. UJN VLCX EXIT
  3279. VLD SPACE 4,10
  3280. ** VLD - VALIDATE LOCAL NAD DEDICATED.
  3281. *
  3282. * ENTRY (ES - ES+4) = NAD EST ENTRY.
  3283. *
  3284. * EXIT (A) = RESPONSE RETURNED TO CALLER.
  3285. *
  3286. * CALLS TSA.
  3287.  
  3288.  
  3289. VLD SUBR ENTRY/EXIT
  3290. LDD ES
  3291. SHN 0-7
  3292. LPN 3
  3293. ZJN VLDX IF SUBSYSTEM NOT USING NAD
  3294. ERRNZ VRGR (EXIT ERROR IF *VRGR* VALUE CHANGES)
  3295. LDN VRUS UNIT IN USE
  3296. UJN VLDX RETURN
  3297. TTL CVL - COMMON VALIDATION INTERFACE.
  3298.  
  3299.  
  3300. ** COMMON DECKS.
  3301.  
  3302.  
  3303. *CALL COMPCUA
  3304. *CALL COMPCRS
  3305.  
  3306. OVERFLOW CHECK FOR LOAD OVERFLOW
  3307. TITLE MASS STORAGE VALIDATION OVERLAY.
  3308. QUAL 3CV
  3309. IDENT 3CV,ECVX
  3310. *COMMENT CVL - MASS STORAGE VALIDATION OVERLAY.
  3311. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  3312. 3CV SPACE 4,10
  3313. ORG OVLA
  3314. ECE SPACE 4,10
  3315. ** ECV - *3CV* ENTRY POINT.
  3316.  
  3317.  
  3318. ECV SUBR ENTRY/EXIT
  3319. UJN ECVX EXIT
  3320. ECS SPACE 4,15
  3321. ** ECS - EXTENDED CORE STORAGE CALL.
  3322. *
  3323. * THIS ROUTINE ADJUSTS THE EXCHANGE PACKAGE RAE/FLE AND SETS
  3324. * APPROPRIATE INFORMATION IN THE USER-S CALL BLOCK.
  3325. *
  3326. * EXIT (A) = RESPONSE CODE.
  3327. * EXCHANGE PACKAGE AND USER CALL BLOCK ADJUSTED.
  3328. *
  3329. * USES CM - CM+4.
  3330. *
  3331. * CALLS UXP.
  3332.  
  3333.  
  3334. ECS11 LDN VRNZ NON-ZERO EXTENDED MEMORY FL
  3335.  
  3336. ECS SUBR ENTRY/EXIT
  3337. LDD CP
  3338. ADN ECSW
  3339. CRD CM
  3340. LDD CM+4
  3341. NJN ECS11 IF EXTENDED MEMORY FIELD LENGTH IS NONZERO
  3342. STM PSNV CLEAR UPPER BYTE RAE/FLE ADDR IN PARAM BLK
  3343.  
  3344. * INITIALIZE THE RAE AND FLE POINTERS.
  3345.  
  3346. LDC ECSA
  3347. STD T6 SET EXCHANGE PACKAGE POINTER
  3348. STD T7 SET PARAMETER BLOCK POINTER
  3349. LDM TMSK,TI CHECK FOR CPU ACCESS PATH
  3350. LPN 70
  3351. NJN ECS1 IF CPU ACCESS PATH
  3352. LDN ECSC-ECSA
  3353. RAD T6 RESET EXCHANGE PACKAGE POINTER
  3354. ECS1 LDM FNCH FUNCTION CHARACTERISTICS
  3355. SHN 21-NPRE
  3356. MJN ECS3 IF REQUEST TO ACCESS OUTSIDE PREALLOCATED
  3357.  
  3358. * SET PARAMETER BLOCK.
  3359.  
  3360. ECS2 LDI T7 SET RAE
  3361. STM PKSN
  3362. LDM 1,T7
  3363. STM PKSN+1
  3364. LDM 2,T7 SET FLE
  3365. STM PKSN+2
  3366. LDM 3,T7
  3367. STM PKSN+3
  3368. RJM UXP UPDATE EXCHANGE PACKAGE
  3369. LDN VRGR VALIDATION GRANTED
  3370. LJM ECSX EXIT - PROCESS APROPRIATE VALIDATION
  3371.  
  3372. * VALIDATE REQUEST TO ACCESS OUTSIDE OF PREALLOCATED AREA.
  3373.  
  3374. * DETERMINE FIELD LENGTH.
  3375.  
  3376. ECS3 SHN 21-NEST-21+NPRE+22
  3377. MJN ECS4 IF NOT IN EST
  3378. LDD ES+4
  3379. SHN 3
  3380. ADK DILL
  3381. CRD CD GET ACCESS MODE FROM MST
  3382. ADK DDLL-DILL
  3383. CRD CM GET EM SIZE FROM MST
  3384. LDD CM+1 SET FLE IN PARAMETER BLOCK
  3385. STM ECSA+2
  3386. LDD CM+2
  3387. STM ECSA+3
  3388.  
  3389. * DETERMINE REFERENCE ADDRESS.
  3390.  
  3391. ECS4 LDM FNCH FUNCTION CHARACTERISTICS
  3392. LPC SPCM&NESM
  3393. SHN 21-SPCL
  3394. PJN ECS6 IF NOT REQUESTING MAINTENANCE HALF OF ECS
  3395. ERRNG SPCL-NEST CODE ASSUMES BIT POSITIONS
  3396. ERRNG NEST+5-SPCL CODE ASSUMES BIT POSITIONS
  3397. SHN 21-NEST-21+SPCL
  3398. MJN ECS5 IF NOT IN EST
  3399. LDD CD+3
  3400. SHN 21-11
  3401. PJN ECS9 IF MAINTENANCE MODE NOT SET
  3402. ECS5 LDC 400 SET BIT 20 IN RAE FOR EXCHANGE PACKAGE
  3403. ECS6 STM ECSA SET RAE IN PARAMETER BLOCK
  3404. LDN 0
  3405. STM ECSA+1
  3406.  
  3407. * VERIFY ACCESS MODE.
  3408.  
  3409. LDM FNCH FUNCTION CHARACTERISTICS
  3410. SHN 21-WRTR
  3411. MJN ECS8 IF WRITING OUTSIDE PREALLOCATED AREA
  3412. LDC ECSB SET PARAMETER BLOCK TO PREALLOCATED AREA
  3413. STD T7
  3414. ECS7 UJP ECS2 REWRITE EXCHANGE PACKAGE
  3415.  
  3416. ECS8 SHN 21-NEST-21+WRTR+22
  3417. MJN ECS7 IF NOT IN EST
  3418. LDD ES
  3419. LPN 3
  3420. LMN 3
  3421. ZJN ECS7 IF DEVICE *DOWN*
  3422. LDN VRUS VALIDATION DENIED (EQUIPMENT IN USE)
  3423. UJN ECS10 PROCESS USER NOT VALIDATED
  3424.  
  3425. ECS9 LDN VRMA VALIDATION DENIED CODE (NO MA PARAMETER)
  3426. ECS10 LJM ECSX PROCESS USER VALIDATION
  3427.  
  3428.  
  3429. * EXCHANGE PACKAGE AND PARAMETER BLOCK VALUES.
  3430.  
  3431. ECSA VFD 24/ECSRA*100 PREALLOCATED AREA RAE
  3432. * VFD 24/0 (ACCESSING OUTSIDE PREALLOCATED AREA)
  3433. * VFD 24/4000000 (ACCESSING MAINTENANCE HALF)
  3434. VFD 24/ECSFL*100 PREALLOCATED AREA FLE
  3435. * VFD 24/*DDLL* FL (ACCESSING OUTSIDE PREALLOCATED AREA)
  3436.  
  3437. * ALTERNATE PARAMETER BLOCK VALUES WHEN NOT WRITING OUTSIDE
  3438. * PREALLOCATED AREA.
  3439.  
  3440. ECSB VFD 24/ECSRA*100 PREALLOCATED AREA RAE
  3441. VFD 24/ECSFL*100 PREALLOCATED AREA FLE
  3442.  
  3443. * ALTERNATE EXCHANGE PACKAGE VALUES WHEN NO CPU PATH.
  3444.  
  3445. ECSC VFD 24/0 RAE WHEN NO CPU ACCESS PATH
  3446. VFD 24/0 FLE WHEN NO CPU ACCESS PATH
  3447. ESM SPACE 4,30
  3448. ** ESM - EXTENDED SEMI-CONDUCTOR MEMORY STORAGE CALL.
  3449. *
  3450. * THIS ROUTINE CAN CREATE A LOCAL FILE NAMED EM* IF DEVICE
  3451. * IS A DEMA DISK AND PARAMETERS CALL FOR EM* FILE CREATION.
  3452. * THE FILE IS CREATED IN THE *ESM* HARDWARE BY OVERLAY *0BF*.
  3453. * THIS EM* FILE IS ASSIGNED BY THE SYSTEM (0BF) AND AN FNT IS
  3454. * CREATED. THE EM* FILE IS ASSIGNED SPECIAL FILE
  3455. * STATUS (MALET IS *SSJ=*) AND THE FILE WILL HAVE AUTO-DROP
  3456. * STATUS. AUTO-DROP STATUS ENSURES THAT THE FILE WILL NOT BE
  3457. * AVAILABLE FOR ANY CIO OPERATIONS (PARTICULARLY A *RETURN*),
  3458. * WHEN MALET IS TERMINATED.
  3459. * THE PHYSICAL RAE OF EM* IS DETERMINED, ROUNDED UP TO THE
  3460. * NEAREST 1K, AND PLACED IN THE USER-S EXCHANGE PACKAGE
  3461. * WITH AND FLE OF 1K. THE RAE AND FLE ARE ALSO PLACED
  3462. * IN THE CALLER-S PARAMETER BLOCK.
  3463. *
  3464. * ENTRY (SB) = PRESENT VALIDATION CODE.
  3465. * THE USER-S PARAMETER BLOCK CONTAINS DESIRED DATA.
  3466. *
  3467. * EXIT (SB) = UPDATED VALIDATION CODE IF ERROR ENCOUNTERED.
  3468. * TO PCE2, IF ERROR FLAG SET (* CVL CALL ERROR*).
  3469. * EXCHANGE PACKAGE AND USER CALL BLOCK ARE ADJUSTED.
  3470. * EM* EXISTS AS A USER LOCAL FILE (*SSST* TYPE).
  3471. *
  3472. * USES EP, T2 - T7, CM - CM+4.
  3473. *
  3474. * CALLS CEA, ECS, UXP, *0BF*.
  3475. *
  3476. * MACROS EXECUTE, MONITOR, PAUSE, SFA.
  3477.  
  3478.  
  3479. ESM10 LMK 2RDP&2RDB
  3480. NJN ESMX IF NOT LOW SPEED PORT EM DEVICE
  3481. RJM ECS SET RAE AND FLE IN PARAMETER BLOCK
  3482. STD SB SAVE RESPONSE
  3483.  
  3484. ESM SUBR ENTRY/EXIT
  3485. LDD SB
  3486. ZJN ESM1 IF VALIDATION GRANTED
  3487. LMN VRSH
  3488. ZJN ESM1 IF VALIDATION GRANTED
  3489. LMN VRDW&VRSH
  3490. NJN ESMX IF VALIDATION DENIED
  3491. ESM1 LDM DEVM
  3492. LMC 2RDB
  3493. NJN ESM10 IF NOT DEMA DEVICE
  3494. ESM2 LDM FNCH
  3495. SHN 21-BESM TEST FUNCTION CHARACTERISTCS FOR LFN = EM*
  3496. MJN ESMX IF NOT BUILD EM* LOCAL FILE
  3497. LDD CP
  3498. ADN ECSW
  3499. CRD CM
  3500. LDD CM+4
  3501. ZJN ESM5 IF ESM FIELD LENGTH IS ZERO
  3502. LDN VRNZ NON-ZERO EXTENDED MEMORY FL
  3503. ESM3 STD SB UPDATE ERROR RESPONSE CODE
  3504. UJN ESMX RETURN
  3505.  
  3506. ESM4 LDN VRIC INCORRECT CEVAL REQUEST PARAMETER
  3507. UJN ESM3 PROCESS NO ESM IN SYSTEM ERROR
  3508.  
  3509. ESM5 LDK EXML READ EXTENDED MEMORY EST ORDINAL
  3510. CRD CM
  3511. LDD CM+4
  3512. LPC 777
  3513. ZJN ESM4 IF NO EXTENDED MEMORY EQUIPMENT
  3514. STD EP EST ORDINAL TO *0BF* PARAMETER AREA (20B)
  3515. ESM7 LDD MA
  3516. CWD EP SAVE LOW CORE REGISTERS (20 - 24)
  3517. CRM SAVE,ON
  3518. CWD ES SAVE LOW CORE REGISTERS (40 - 44)
  3519. CRM SAVE+5,ON
  3520. LDC 2REM
  3521. STD ES FILE NAME TO (40-43)
  3522. LDN 1R*
  3523. SHN 6
  3524. STD ES+1
  3525. LDN 0
  3526. STD ES+2
  3527. STD ES+3
  3528. STM OVLB-1
  3529. EXECUTE 0BF,OVLB CREATE FNT ENTRY (LFN = EM*)
  3530. PSN 0
  3531. LDD EP+1 RNI HERE FROM *0BF* IF FILE EXISTED
  3532. STD T6
  3533. NJN ESM9 IF TRACK ASSIGNED
  3534. PAUSE
  3535. LDD CM+1
  3536. ZJN ESM8 IF NO ERROR FLAG SET
  3537. LJM PCE2 * CVL CALL ERROR *
  3538.  
  3539. ESM8 LDN ZERL
  3540. CRD CM
  3541. LDN TRLR STORE RECALL STACK REASON CODE
  3542. STD CM
  3543. LDD MA
  3544. CWD IR
  3545. ADN 1
  3546. CWD CM
  3547. MONITOR RECM
  3548. LJM PPR ENTER RECALL
  3549.  
  3550. ESM9 LDD EP+3
  3551. STD T7
  3552. RJM CEA CONVERT LOGICAL TO PHYSICAL TRACK ADDRESS
  3553. LDD CM+4 SET RAE TO NEXT 1K VALUE (ADDRESS)
  3554. ADD TH
  3555. LPC -777
  3556. STD T2+1 SET RAE FOR EXCHANGE PACKAGE
  3557. STM PKSN+6 SET RAE IN PARAMETER BLOCK
  3558. SHN -14
  3559. RAD CM+3
  3560. STD T2
  3561. STM PKSN+5
  3562. LDN 0
  3563. STD T2+2 SET FLE FOR EXCHANGE PACKAGE
  3564. STM PKSN+7 SET FLE IN PARAMETER BLOCK
  3565. LDD TH
  3566. STD T2+3
  3567. STM PKSN+10
  3568. LDD MA RESTORE REGISTERS
  3569. CWM SAVE,TR
  3570. LDD MA
  3571. CRD EP
  3572. ADN 1
  3573. CRD ES
  3574. LDN T2 SET EXCHANGE PACKAGE VALUES FWA
  3575. STD T6
  3576. RJM UXP UPDATE EXCHANGE PACKAGE
  3577. LJM ESMX EXIT
  3578.  
  3579.  
  3580. * THE FOLLOWING TEN DECIMAL CELLS ARE USED FOR SAVING AND
  3581. * RESTORING LOW CORE IN ROUTINE *ESM*. IF SPACE IS NEEDED,
  3582. * THE AREA COULD BE MOVED TO UNUSED OR ALREADY EXECUTED
  3583. * AREAS OF CORE.
  3584.  
  3585. SAVE BSS 2*5 TEMP FOR REGISTER SAVE
  3586. PSN SPACE 4,15
  3587. ** PSN - CHECK PACK SERIAL NUMBER.
  3588. *
  3589. * ENTRY (EP) = LOGICAL UNIT NUMBER.
  3590. * (ES - ES+4) = EST ENTRY.
  3591. * (SB) = VRDW, IF DOWNED, ALLOCATABLE DEVICE ALREADY
  3592. * ASSIGNED TO CALLER.
  3593. * = 0, OTHERWISE.
  3594. *
  3595. * EXIT (A) = VALIDATION RESPONSE CODE (PACK SERIAL NUMBER
  3596. * VALIDATION BYTE SET IF ERROR).
  3597. *
  3598. * USES VT, CD - CD+4, CM - CM+4.
  3599. *
  3600. * CALLS 0PI.
  3601. *
  3602. * MACROS EXECUTE.
  3603.  
  3604.  
  3605. PSN7 LDD SB
  3606. NJN PSNX IF DEVICE ASSIGNED TO CALLER
  3607. LDN VRSH INDICATE EQUIPMENT MIGHT BE SHARED
  3608.  
  3609. PSN SUBR ENTRY/EXIT
  3610. LDM FNCH
  3611. SHN 21-NEST
  3612. MJN PSN7 IF EQUIPMENT IS NOT IN THE EST
  3613. LDD ES+1
  3614. SHN 21-5
  3615. PJN PSN0 IF NONCONCURRENT CHANNEL
  3616. LDD ES+2
  3617. SHN 21-5
  3618. MJN PSN7 IF CONCURRENT CHANNEL
  3619. PSN0 LDD ES+4 CHECK FOR *6DI* DRIVER
  3620. SHN 3
  3621. ADN MDGL
  3622. CRD CM
  3623. ADN STLL-MDGL CHECK DEVICE UNLOADED
  3624. CRD CD
  3625. LDD CM+3
  3626. LPN 7
  3627. LMN LA6DI
  3628. NJN PSN7 IF NO PACK SERIAL PROCESSING
  3629. LDM FNCH CHECK FUNCTION BITS
  3630. LPN WRTM+PREM
  3631. LMN WRTM+PREM
  3632. NJP PSN7 IF NOT WRITING OUTSIDE PREALLOCATED AREA
  3633. LDD CP CHECK ORIGIN TYPE
  3634. ADN JOTW
  3635. CRD CM
  3636. LDD CM+3
  3637. LPN 77
  3638. LMK SYOT
  3639. PSN1 ZJP PSN7 IF SYSTEM ORIGIN
  3640. LDM PSNV CHECK PACK S/N PARAMETER WORD
  3641. SHN 21-VBCD
  3642. MJN PSN5 IF CALLER SUPPLIED SERIAL NUMBER
  3643. PSN2 LDC VWDM INDICATE NO MATCH
  3644. PSN3 STM PSNV
  3645. LDN VRCI SET MAY DESTROY DATA RESPONSE
  3646. LJM PSNX EXIT
  3647.  
  3648. * COMPARE PACK SERIAL NUMBER.
  3649.  
  3650. PSN4 LDM PKSN+3 CHECK SERIAL NUMBER
  3651. LMM BFMS+1
  3652. NJN PSN2 IF INCORRECT
  3653. LDM PKSN+2
  3654. LMM BFMS
  3655. NJN PSN2 IF INCORRECT
  3656. UJN PSN1 EXIT
  3657.  
  3658. * READ PACK SERIAL NUMBER.
  3659.  
  3660. PSN5 LDD CD
  3661. LPN 2
  3662. NJN PSN2 IF PACK UNLOADED
  3663. LDM ESTO FETCH EST ORDINAL
  3664. STM OVLB-1
  3665. EXECUTE 0PI,OVLB
  3666. STD VT SAVE MAIN PROCESSOR ADDRESS
  3667. LDD EP SET LOGICAL UNIT NUMBER
  3668. RJM 0,VT READ SERIAL NUMBER
  3669. NJN PSN4 IF NO ERROR
  3670. LDC VWDM+VB1M INDICATE HARDWARE ERROR
  3671. LJM PSN3 SET RESPONSE AND EXIT
  3672. UXP SPACE 4,20
  3673. ** UXP - UPDATE EXCHANGE PACKAGE.
  3674. *
  3675. * *UXP* ALTERS THE RAE AND FLE EXCHANGE PACKAGE WORDS IF THIS
  3676. * IS A CYBER 170 AND ESM IS IN ESM MODE. IT THEN WRITES THE
  3677. * RAE AND FLE EXCHANGE PACKAGE WORDS AND CLEARS THE UEM ENABLED
  3678. * BIT.
  3679. *
  3680. * ENTRY (EP) = EST ORDINAL OF EXTENDED MEMORY, IF ASSIGNING
  3681. * *DB* DEVICE WITH -EM*- FILE.
  3682. * = 0, IF ASSIGNING EXTENDED MEMORY.
  3683. * (T6) = FWA OF EXCHANGE PACKAGE VALUES.
  3684. *
  3685. * EXIT EXCHANGE PACKAGE *RAE* AND *FLE* SET AND UEM ENABLE
  3686. * CLEARED.
  3687. *
  3688. * USES CM - CM+4.
  3689.  
  3690.  
  3691. UXP5 LDD CP SET RAE
  3692. ADN 4
  3693. CRD CM
  3694. LDI T6
  3695. STD CM
  3696. LDM 1,T6
  3697. STD CM+1
  3698. LDD CP
  3699. ADN 4
  3700. CWD CM
  3701. ADN 5-4 SET FLE
  3702. CRD CM
  3703. LDM 2,T6
  3704. STD CM
  3705. LDM 3,T6
  3706. STD CM+1
  3707. LDD CP
  3708. ADN 5
  3709. CWD CM
  3710. ADK 3-5 CLEAR UEM ENABLE BIT
  3711. CRD CM
  3712. LDD EP
  3713. LMN 40
  3714. ZJN UXPX IF UEM CPU PATH
  3715. LDD CM
  3716. LPC -400
  3717. STD CM
  3718. LDD CP
  3719. ADN 3
  3720. CWD CM
  3721.  
  3722. UXP SUBR ENTRY/EXIT
  3723. LDD EP
  3724. NJN UXP1 IF EST READ REQUIRED
  3725. LDM TMSK,TI
  3726. UJN UXP2 CHECK FOR ESM MODE
  3727.  
  3728. UXP1 SFA EST READ EXTENDED MEMORY EST ORDINAL
  3729. ADK EQDE
  3730. CRD CM
  3731. LDD CM+4 GET CPU PATH TYPE
  3732. SHN 3
  3733. ADN DILL
  3734. CRD CM
  3735. LDD CM+3
  3736. UXP2 LPN 70
  3737. STD EP SAVE CPU PATH TYPE
  3738. LMN 30
  3739. ZJN UXP4 IF IN ESM MODE
  3740. UXP3 UJP UXP5 REWRITE EXCHANGE PACKAGE
  3741.  
  3742. UXP4 LDK MABL CHECK MACHINE TYPE
  3743. CRD CM
  3744. LDD CM+1
  3745. SHN 21-10
  3746. MJN UXP3 IF NOT A CYBER 170
  3747. LDM 1,T6 SET ADJUSTED RAE
  3748. SCN 77
  3749. SHN 6
  3750. LMI T6
  3751. SHN 6
  3752. STM 1,T6
  3753. SHN -14
  3754. STI T6
  3755. LDM 3,T6 SET ADJUSTED FLE
  3756. SCN 77
  3757. SHN 6
  3758. LMM 2,T6
  3759. SHN 6
  3760. STM 3,T6
  3761. SHN -14
  3762. STM 2,T6
  3763. UJP UXP3 REWRITE EXCHANGE PACKAGE
  3764. COMMON SPACE 4,10
  3765. ** COMMON DECKS.
  3766.  
  3767. CEI$ EQU 0 INITIALIZE *CEA* FOR CPU-ACCESSIBLE DEVICE
  3768. *CALL COMPCEA
  3769. SPACE 4,10
  3770. USE OVERLAY
  3771. OVLB EQU *+5 OVERLAY AREA
  3772.  
  3773. ERRNG BFMS-OVLB-ZBFL *0BF* OVERFLOWS
  3774. ERRNG BFMS-OVLB-ZPXL *0PI* OVERFLOWS
  3775. SPACE 4,10
  3776. OVERFLOW OVLA,BFMS
  3777. END
cdc/nos2.source/opl871/cvl.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator