Table of Contents

VER

Table Of Contents

  • [00005] VER - VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
  • [00009] VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
  • [00131] MACRO DEFINITIONS.
  • [00133] ABORT - ERROR PROCESSING MACRO.
  • [00150] FCN - DEFINE FUNCTION PROCESSOR.
  • [00160] MAIN PROGRAM.
  • [00163] MAIN PROGRAM.
  • [00194] ERROR PROCESSOR.
  • [00196] ERR - ERROR PROCESSOR.
  • [00225] BUFFER DEFINITIONS.
  • [00258] TCFL - TABLE OF CP/PCP CM FIELD LENGTHS.
  • [00267] COMMON SUBROUTINES.
  • [00269] CHA - CHECK CHANNEL ASSIGNMENT.
  • [00288] CPA - CHECK PARAMETER BLOCK ADDRESS.
  • [00319] IBM - ISSUE BINARY MAINTENANCE LOG MESSAGE.
  • [00352] LPR - LOAD PP RESIDENT.
  • [00397] MRER - MAINTENANCE REGISTER ERROR HANDLER.
  • [00416] NEC - NORMALIZE EC REGISTER.
  • [00445] SDC - SELECT DEADSTART CHANNEL.
  • [00488] SEA - SET *EICB* ADDRESS.
  • [00497] VRC - VE RESERVE CHANNEL.
  • [00537] VTC - VE RETURN CHANNEL.
  • [00565] FUNCTION PROCESSORS.
  • [00567] FUNCTION 0 - RSCM - RESERVE CM.
  • [00698] FUNCTION 1 - RSPP - RESERVE PP-S.
  • [00847] FUNCTION 2 - RSCH - RESERVE CHANNELS.
  • [00908] FUNCTION 4 - RNCM - RETURN CM.
  • [00974] FUNCTION 5 - RNPP - RETURN PP.
  • [01068] FUNCTION 6 - RNCH - RETURN CHANNEL.
  • [01146] FUNCTION 10 - STCM - STATUS OF NOS/VE CM.
  • [01183] FUNCTION 11 - STPP - STATUS OF NOS/VE PP-S.
  • [01231] FUNCTION 12 - STCH - STATUS OF NOS/VE CHANNELS.
  • [01291] FUNCTION 14 - STMR - STATUS AVAILABLE RESOURCES.
  • [01396] SUBROUTINES.
  • [01398] APP - ASSIGN PSEUDO-ASSIGNED PP.
  • [01452] ARC - ADJUST REQUEST COUNT.
  • [01510] CAM - CALCULATE AVAILABLE MEMORY.
  • [01571] CCA - COMPUTE CPA/PCPA ADDRESS.
  • [01590] CMS - CHECK MEMORY SIZE.
  • [01639] CPS - CHECK PARTNER STATUS.
  • [01715] CRZ - CHECK REQUEST SIZE.
  • [01746] CSS - CHANGE SCHEDULER STATUS.
  • [01776] DPL - DEADSTART PP AND LOAD *PPR*.
  • [01924] GCC - GET CURRENT NUMBER OF NOS/VE CM WORDS.
  • [01955] GCP - GET CURRENT STATUS OF PP-S.
  • [02008] TDPP - TABLE OF DEDICATED PP-S.
  • [02041] IPP - IDLE PP.
  • [02129] PSC - PRESET CHANNEL INSTRUCTIONS.
  • [02152] TPSC - TABLE OF CHANNEL INSTRUCTIONS.
  • [02165] RDM - RETURN DYNAMIC MEMORY.
  • [02215] ROJ - ROLLOUT JOBS.
  • [02259] RST - REQUEST STORAGE.
  • [02329] SBA - SET OS BOUNDS ADDRESS.
  • [02401] SDA - SET *EICB* CM ADDRESSES.
  • [02435] SPB - SET PP BOUNDS BIT.
  • [02505] VPN - VALIDATE PP NUMBER.
  • [02559] SUBROUTINES OVERLAYABLE BY *PBUF*.
  • [02561] DCA - DETERMINE CHANNEL AVAILABILITY.
  • [02629] TEQT - TABLE OF TRANSFERRABLE EQUIPMENT.
  • [02648] SEC - SEARCH FOR EQUIPMENT ON SPECIFIED CHANNEL.
  • [02690] SRR - SET ROLLOUT REQUEST.
  • [02717] PRESET.
  • [02719] PRS - PRESET VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
  • [02876] SRI - SET RECONFIGURATION INFORMATION.
  • [02947] TFCN - TABLE OF FUNCTION PROCESSOR ADDRESSES.
  • [02984] POF - PROCESS OVERLAID FUNCTIONS.
  • [03004] MAIN PROGRAM.
  • [03011] POF - PROCESS OVERLAID FUNCTIONS.
  • [03054] OVERLAY *2VR* COMMON DECKS.
  • [03062] FUNCTION PROCESSORS.
  • [03064] FUNCTION 3 - RSEQ - RESERVE EQUIPMENT.
  • [03210] FUNCTION 7 - RNEQ - RETURN EQUIPMENT.
  • [03344] FUNCTION 13 - STEQ - STATUS NOS/VE EQUIPMENT.
  • [03408] FUNCTION 15 - SFRC - SET FREE-RUNNING COUNTER TO VALUE.
  • [03460] FUNCTION 16 - RSPT - RESERVE PP-S.
  • [03652] FUNCTION 17 - RSCT - RESERVE NIO OR CIO CHANNEL.
  • [03700] FUNCTION 20 - RNPT - RETURN PP.
  • [03785] FUNCTION 21 - RNCT - RETURN CIO OR NIO CHANNEL.
  • [03850] FUNCTION 22 - STPT - STATUS OF NOS/VE PP-S.
  • [03901] FUNCTION 23 - STCT - STATUS OF NOS/VE CHANNELS.
  • [03955] SUBROUTINES.
  • [03957] DPL - DEADSTART PP AND LOAD *PPR*.
  • [04138] GCP - GET CURRENT STATUS OF PP-S.
  • [04218] TDPP - TABLE OF DEDICATED PP-S.
  • [04248] IPP - IDLE PP.
  • [04343] PSC - PRESET CHANNEL INSTRUCTIONS.
  • [04366] TPSC - TABLE OF CHANNEL INSTRUCTIONS.
  • [04379] SPB - SET PP BOUNDS BIT.
  • [04469] SRA - SET NOS REQUEST HEADER ADDRESS.
  • [04478] VPN - VALIDATE PP NUMBER.
  • [04547] SUBROUTINES OVERLAYABLE BY *PBUF*.
  • [04549] CUA - CHECK IF UNIT ASSIGNED TO NOS/VE.
  • [04583] DCA - DETERMINE CHANNEL AVAILABILITY.
  • [04652] TEQT - TABLE OF TRANSFERRABLE EQUIPMENT.
  • [04671] SEC - SEARCH FOR EQUIPMENT ON SPECIFIED CHANNEL.
  • [04713] SEE - SEARCH EST FOR EQUIPMENT.
  • [04825] VCN - VALIDATE CHANNEL NUMBER.
  • [04860] VET - VALIDATE EQUIPMENT TRANSFERABILITY.
  • [04893] PRESET.
  • [04895] PRS - PRESET VIRTUAL ENVIRONMENT REQUEST OVERLAY.
  • [04958] SRI - SET RECONFIGURATION INFORMATION.
  • [05023] TFCN - TABLE OF FUNCTION PROCESSOR ADDRESSES.
  • [05060] EOS - ERROR IN OVERLAY SELECTION.

Source Code

VER.txt
  1. IDENT VER,VER
  2. PERIPH
  3. BASE MIXED
  4. SST SSCP
  5. TITLE VER - VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
  6. *COMMENT VER - VIRTUAL RESOURCE REQUEST PROCESSOR.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. VER SPACE 4,10
  9. *** VER - VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
  10. *
  11. * K. H. BOSSARD. 82/04/19.
  12. SPACE 4,10
  13. *** *VER* PROCESSES REQUESTS FOR OBTAINING AND
  14. * RETURNING RESOURCES FOR NOS/VE IN THE DUAL STATE
  15. * ENVIRONMENT.
  16. SPACE 4,10
  17. *** CALL.
  18. *
  19. *
  20. *T 18/*VER*, 1/1, 5/CP, 12/FCN, 6/0, 18/ADDR
  21. *
  22. * CP NVE CONTROL POINT NUMBER.
  23. * FCN FUNCTION CODE.
  24. * ADDR ADDRESS OF PARAMETER BLOCK.
  25. SPACE 4,10
  26. *** REPLY BLOCK.
  27. *
  28. * 48/UNCHANGED, 12/GRS
  29. * 48/UNCHANGED, 12/RS
  30. *
  31. * GRS GENERAL RETURN STATUS (RIGHTMOST BIT IS A
  32. * COMPLETION BIT).
  33. * RS INDIVIDUAL RETURN STATUS.
  34. *
  35. * *RS* IS THE RETURN STATUS FOR A SPECIFIC INDIVIDUAL REQUEST
  36. * AND IS NOT PRESENT IN ALL FORMATS. FOR REPLIES THAT HAVE
  37. * BOTH *GRS* AND *RS*, *GRS* CONTAINS THE VALUE OF THE LAST
  38. * ENCOUNTERED NON-ZERO ERROR STATUS. REQUEST PROCESSING
  39. * CONTINUES UNTIL A FATAL ERROR (100X,200X) OCCURS.
  40. SPACE 4,10
  41. *** DAYFILE MESSAGES.
  42. *
  43. *
  44. * * VER - ILLEGAL USER ACCESS.*
  45. * THE CALLER DID NOT HAVE NVE SUBSYSTEM ID.
  46. *
  47. * * VER - ARGUMENT ERROR.*
  48. * INDICATES ONE OF THE FOLLOWING.
  49. * 1. AN ILLEGAL FUNCTION CODE WAS SPECIFIED.
  50. * 2. AUTO RECALL WAS NOT SELECTED.
  51. * 3. PARAMETER BLOCK WAS NOT WITHIN CALLER-S FIELD LENGTH.
  52. * 4. THE COMPLETION BIT IN THE PARAMETER BLOCK WAS SET.
  53. *
  54. * * VER - FATAL MAINTENANCE REGISTER ERROR.*
  55. * A FATAL PARITY ERROR OCCURRED DURING MAINTENANCE REGISTER
  56. * ACCESS THROUGH THE MAINTENANCE CHANNEL.
  57. *
  58. * * VER - EJT ENTRY UNAVAILABLE.*
  59. * *VER* WAS UNABLE TO OBTAIN AN EJT ORDINAL.
  60. *
  61. * * VER - OVERLAY SELECTION ERROR.*
  62. * OVERLAY *2VR* RECEIVED CONTROL ON A FUNCTION CODE
  63. * WHICH SHOULD HAVE BEEN PROCESSED BY *VER* MAIN.
  64.  
  65. SPACE 4,10
  66. *** BINARY MAINTENANCE LOG MESSAGES.
  67. *
  68. *
  69. * MESSAGES WILL BE ISSUED IN THE FOLLOWING CASES.
  70. *
  71. * 1. REQUEST CM FOR NOS/VE.
  72. * 2. RETURN CM FROM NOS/VE.
  73. * 3. REQUEST PP FOR NOS/VE.
  74. * 4. RETURN PP FROM NOS/VE.
  75. * 5. CANNOT IDLE PP.
  76. * 6. CANNOT DEADSTART PP.
  77. * 7. BAD PP RETURNED FROM NOS/VE.
  78. *
  79. * THE CONTENTS OF THE MESSAGE INCLUDE THE PP NUMBER OR
  80. * THE CURRENT FWA AND LWA+1 OF NOS/VE CM, AS APPROPRIATE.
  81. SPACE 4,10
  82. ** ROUTINES CALLED.
  83. *
  84. *
  85. * 1VP - RESERVE VIRTUAL PP.
  86. SPACE 4,10
  87. *CALL COMPMAC
  88. *CALL COMPMRM
  89. *CALL COMSCPS
  90. *CALL COMSDFS
  91. *CALL COMSDFT
  92. QUAL DSL
  93. *CALL COMSDSL
  94. QUAL *
  95. LIST X
  96. *CALL COMSDST
  97. LIST *
  98. *CALL COMSEJT
  99. *CALL COMSIOU
  100. *CALL COMSPIM
  101. *CALL COMSSSD
  102. LIST X
  103. *CALL COMSVED
  104. LIST *
  105. SPACE 4,10
  106. **** DIRECT LOCATION ASSIGNMENTS.
  107.  
  108.  
  109. PB EQU 20 - 24 REQUEST/REPLY WORD BUFFER (5 LOCATIONS)
  110. RN EQU 25 C180 REGISTER NUMBER
  111. EC EQU 26 C180 REGISTER CONNECTION CODE
  112. LO EQU 27 LIST OFFSET
  113. NC EQU LO SYSTEM CONTROL POINT NUMBER
  114. CL EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS)
  115. DA EQU 35 DIRECT CELL STORAGE
  116. DB EQU 36 DIRECT CELL STORAGE
  117. DC EQU 37 DIRECT CELL STORAGE
  118. CN EQU 40 - 44 CM WORD BUFFER (5 LOCATIONS)
  119. ES EQU CN CM WORD BUFFER FOR *COMPDVC*
  120. LE EQU 45 LAST EST ORDINAL + 1
  121. CF EQU 46 CONFIGURATION FLAG
  122. BS EQU 47 MEMORY BLOCK SIZE
  123. SC EQU 60 - 64 SCRATCH
  124. ****
  125. SPACE 4,10
  126. * IN ORDER TO SAVE SPACE, THE DIRECT CELL *TH* IS USED IN PLACE
  127. * OF *ESIR*. THIS MUST BE CHANGED IF THE VALUE OF *ESIR* IN
  128. * *COMSVED* CHANGES.
  129.  
  130. ERRNZ ESIR-1000 *ESIR* VALUE HAS CHANGED, SEE ABOVE NOTE
  131. TITLE MACRO DEFINITIONS.
  132. ABORT SPACE 4,10
  133. ** ABORT - ERROR PROCESSING MACRO.
  134. *
  135. * ABORT ADDR
  136. *
  137. * ADDR = FWA OF ERROR MESSAGE FOR DAYFILE.
  138. *
  139. * CALLS ERR.
  140.  
  141.  
  142. PURGMAC ABORT
  143.  
  144. ABORT MACRO A
  145. MACREF ABORT
  146. LDC A
  147. LJM ERR
  148. ABORT ENDM
  149. FCN SPACE 4,10
  150. ** FCN - DEFINE FUNCTION PROCESSOR.
  151. *
  152. * FCN NAME
  153. *
  154. * NAME = NAME OF FUNCTION PROCESSOR.
  155.  
  156.  
  157. FCN MACRO A
  158. CON A
  159. FCN ENDM
  160. TITLE MAIN PROGRAM.
  161. ORG PPFW
  162. VER SPACE 4,10
  163. ** VER - MAIN PROGRAM.
  164.  
  165.  
  166. VER RJM PRS PRESET VIRTUAL ENVIRONMENT
  167. STD PB+4
  168. NJN VERX IF ERROR FOUND DURING PRESET
  169.  
  170. * TO FUNCTION PROCESSOR WITH
  171. * (PB - PB+4) = FIRST WORD OF PARAMETER BLOCK.
  172. * = 1/F, 35/0, 12/LENGTH, 12/0.
  173. * F = FLAG USED ONLY IN RETURN FUNCTIONS.
  174. * = 0 - RETURN SPECIFIED RESOURCES.
  175. * = 1 - RETURN ALL.
  176. * LENGTH = LENGTH (IN CM WORDS) OF PARAMETER BLOCK.
  177. * (IR+3 - IR+4) = ADDRESS OF PARAMETER BLOCK.
  178.  
  179. RJM **
  180. VERA EQU *-1 (FUNCTION PROCESSOR ADDRESS)
  181.  
  182. VERX AOD PB+4 SET COMPLETION BIT
  183. RJM CPA GET PARAMETER BLOCK ADDRESS
  184. CWD PB WRITE RESPONSE
  185. MONITOR DPPM DROP PP
  186. LJM PPR EXIT TO PP RESIDENT
  187.  
  188.  
  189. ** RESERVED LOCATIONS.
  190.  
  191. CHFL CON 0 CHANNEL RESERVED FLAG
  192. NEJT CON 0 NOS/VE EJT ORDINAL
  193. PPCA CON 0 PP COMMUNICATION AREA ADDRESS
  194. TITLE ERROR PROCESSOR.
  195. ERR SPACE 4,10
  196. ** ERR - ERROR PROCESSOR.
  197. *
  198. * ENTRY (A) = FWA OF ERROR MESSAGE FOR DAYFILE.
  199. *
  200. * EXIT DAYFILE MESSAGE ISSUED.
  201. * CONTROL POINT ABORTED.
  202. *
  203. * CALLS DFM.
  204. *
  205. * MACROS MONITOR.
  206.  
  207.  
  208. ERR RJM DFM ISSUE DAYFILE MESSAGE
  209. MONITOR ABTM ABORT CONTROL POINT
  210. LJM PPR EXIT TO PP RESIDENT
  211.  
  212. * ERROR MESSAGES.
  213.  
  214. ERIR DATA C* VER - ILLEGAL USER ACCESS.*
  215. ERAE DATA C* VER - ARGUMENT ERROR.*
  216. ERMR DATA C* VER - FATAL MAINTENANCE REGISTER ERROR.*
  217. EREU DATA C* VER - EJT ENTRY UNAVAILABLE.*
  218. EROS DATA C* VER - OVERLAY SELECTION ERROR.*
  219. SPACE 4,10
  220. * COMMON DECKS.
  221.  
  222.  
  223. *CALL COMPMRA
  224. *CALL COMPRNS
  225. TITLE BUFFER DEFINITIONS.
  226. SPACE 4,35
  227. ** BUFFER DEFINITIONS.
  228. *
  229. * BUFFERS ARE ALLOCATED AT THE HIGHEST MEMORY LOCATIONS
  230. * SO THAT THE SAME BUFFER DEFINITIONS MAY BE USED BY BOTH
  231. * THE MAIN PORTION OF *VER* AND THE *2VR* OVERLAY. NONE OF
  232. * THESE BUFFERS MAY BE USED BY PRESET.
  233. *
  234. * *IBUF*, *PBUF*, AND *RBUF* MUST NOT OVERLAP.
  235. * *MBUF* MUST NOT OVERLAP *IBUF* OR *RBUF*.
  236. * *CBUF* MUST NOT OVERLAP *RBUF*.
  237. * *MBUF* MAY OVERLAP *CBUF* AND *PBUF*.
  238. * *CBUF* AND *TCFL* MAY OVERLAP *IBUF* AND *PBUF*.
  239. *
  240. * *MBUF* IS USED ONLY FOR THE *RSCM* AND *RNCM* FUNCTIONS.
  241. * *PBUF* IS USED ONLY FOR THE *RNPP* AND *RNPT* FUNCTIONS.
  242. * *PBUF* MUST HAVE TWO RESERVED WORDS PRECEEDING IT FOR DISK
  243. * LINKAGE BYTES.
  244.  
  245.  
  246. .CBUFL MAX 40,CTALL*5 CHANNEL TABLE/CONTROL POINT FL SPACE
  247. .IBUFL EQU 10 MAINTENANCE REGISTER SPACE
  248. .MBUFL EQU 10 MAINTENANCE REGISTER SPACE
  249. .PBUFL EQU 1200 PP RESIDENT SPACE
  250. .RBUFL MAX 10,CTALL*5 MAINTENANCE REGISTER/CHANNEL TABLE SPACE
  251. RBUF EQU EPFW-.RBUFL MAINTENANCE REGISTER/CHANNEL TABLE BUFFER
  252. CBUF EQU RBUF-.CBUFL CHANNEL TABLE/CONTROL POINT FL BUFFER
  253. IBUF EQU RBUF-.IBUFL MAINTENANCE REGISTER BUFFER
  254. MBUF EQU IBUF-.IBUFL MAINTENANCE REGISTER BUFFER
  255. PBUF EQU IBUF-.PBUFL PP RESIDENT INPUT BUFFER
  256.  
  257.  
  258. ** TCFL - TABLE OF CP/PCP CM FIELD LENGTHS.
  259. *
  260. * ONE WORD PER CP/PCP.
  261. *
  262. *T 1/R, 11/ FL
  263. * R=1, IF ROLLOUT FLAG SET.
  264.  
  265.  
  266. TCFL EQU CBUF
  267. TITLE COMMON SUBROUTINES.
  268. CHA SPACE 4,10
  269. ** CHA - CHECK CHANNEL ASSIGNMENT.
  270. *
  271. * ENTRY (T2) = CHANNEL NUMBER.
  272. *
  273. * EXIT (A) = 0 IF CHANNEL IS ASSIGNED TO NOS/VE.
  274. *
  275. * USES T4.
  276.  
  277.  
  278. CHA SUBR ENTRY/EXIT
  279. LDN CTALL
  280. STD T4
  281. LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
  282. CHAA EQU *-2
  283. CRM CBUF,T4 READ CHANNEL ASSIGNMENT TABLE
  284. LDM NEJT
  285. LMM CBUF,T2
  286. UJN CHAX RETURN
  287. CPA SPACE 4,10
  288. ** CPA - CHECK PARAMETER BLOCK ADDRESS.
  289. *
  290. * ENTRY (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS.
  291. * (PB+3) = WORD COUNT.
  292. *
  293. * EXIT (A) = ABSOLUTE ADDRESS OF PARAMETER BLOCK.
  294. * ABORT IF PARAMETER BLOCK NOT WITHIN FIELD LENGTH.
  295. *
  296. * MACROS ABORT.
  297.  
  298.  
  299. CPA2 LDD IR+3 LOAD ABSOLUTE ADDRESS
  300. SHN 6
  301. ADD RA
  302. SHN 6
  303. ADD IR+4
  304.  
  305. CPA SUBR ENTRY/EXIT
  306. LDD IR+3
  307. SCN 37
  308. NJN CPA1 IF OUT OF RANGE
  309. LDD IR+3
  310. SHN 14
  311. LMD IR+4
  312. ADD PB+3 ADD LENGTH
  313. SBN 1
  314. SHN -6
  315. SBD FL
  316. MJN CPA2 IF PARAMETER BLOCK WITHIN FL
  317. CPA1 ABORT ERAE * VER - ARGUMENT ERROR.*
  318. IBM SPACE 4,10
  319. ** IBM - ISSUE BINARY MAINTENANCE LOG MESSAGE.
  320. *
  321. * ENTRY (A) = MESSAGE ID.
  322. * (T1) = SYMPTOM CODE.
  323. * (CN - CN+4) = DATA WORD.
  324. *
  325. * USES CM - CM+4.
  326. *
  327. * CALLS DFM.
  328.  
  329.  
  330. IBM SUBR ENTRY/EXIT
  331. STM IBMA SET MESSAGE ID
  332. LDD T1 SET SYMPTOM CODE
  333. STM IBMA+1
  334. LDD MA MOVE DATA WORD TO BUFFER
  335. CWD CN
  336. CRM IBMB,ON
  337. LDN ZERL
  338. CRD CM
  339. LDN IBML SET MESSAGE LENGTH
  340. STD CM+1
  341. LDC IBMA+BMLN ISSUE DAYFILE MESSAGE
  342. RJM DFM
  343. UJN IBMX RETURN
  344.  
  345. * MESSAGE BUFFER.
  346.  
  347. IBMA VFD 12/0,12/0,36/0 MESSAGE ID, SYMPTOM CODE
  348. VFD 60/0 RESERVED
  349. IBMB VFD 60/0 MESSAGE
  350. IBML EQU *-IBMA
  351. LPR SPACE 4,10
  352. ** LPR - LOAD PP RESIDENT.
  353. *
  354. * EXIT (PBUF) = COPY OF PP RESIDENT.
  355. *
  356. * USES DA, DB, T2, T5, T6, T7, CL, CM - CM+4.
  357. *
  358. * CALLS RNS.
  359. *
  360. * MACROS ENDMS, MONITOR, SETMS.
  361.  
  362.  
  363. LPR SUBR ENTRY/EXIT
  364. LDC 0L1PR SET *PPR* NAME
  365. STD CM+3
  366. SHN -14
  367. STD CM+2
  368. MONITOR SPLM SEARCH PERIPHERAL LIBRARY
  369. LDD CM+1 SET EST ORDINAL
  370. LPN 77
  371. STD T5
  372. LDD CM+2 SET TRACK NUMBER
  373. STD T6
  374. LDD CM+3 SET SECTOR NUMBER
  375. STD T7
  376. SETMS IO
  377. LDC PBUF-2
  378. STD CL
  379. LPR1 LDI CL SAVE TWO WORDS
  380. STD CL+1
  381. LDM 1,CL
  382. STD CL+2
  383. LDD CL
  384. RJM RNS READ NEXT SECTOR
  385. LDD CL+1 RESTORE TWO WORDS
  386. STI CL
  387. LDD CL+2
  388. STM 1,CL
  389. LDC 500 ADVANCE BUFFER ADDRESS
  390. RAD CL
  391. LDD T1
  392. SHN -6
  393. NJN LPR1 IF NOT END OF *PPR*
  394. ENDMS
  395. LJM LPRX RETURN
  396. MRER SPACE 4,10
  397. ** MRER - MAINTENANCE REGISTER ERROR HANDLER.
  398. *
  399. * ENTRY FATAL MAINTENANCE REGISTER ERROR.
  400. * (T7) = CHANNEL NUMBER IF ONE ASSIGNED.
  401. * (CHFL) .NE. 0 IF CHANNEL ASSIGNED.
  402. *
  403. * EXIT TO *ERR* VIA *ABORT* MACRO.
  404. * CHANNEL DROPPED AND DISCONNECTED.
  405. *
  406. * MACROS ABORT, DCHAN.
  407.  
  408.  
  409. MRER LDM CHFL CHECK CHANNEL ASSIGNED FLAG
  410. ZJN MRE1 IF CHANNEL NOT ASSIGNED
  411. MREA DCN **+40
  412. LDD T7
  413. DCHAN DROP CHANNEL
  414. MRE1 ABORT ERMR * VER - FATAL MAINTENANCE REGISTER ERROR.*
  415. NEC SPACE 4,10
  416. ** NEC - NORMALIZE EC REGISTER.
  417. *
  418. * ENTRY (RBUF - RBUF+7) = EC REGISTER.
  419. *
  420. * EXIT (RBUF - RBUF+7) = NORMALIZED EC REGISTER.
  421. * NORMALIZED EC REGISTER REWRITTEN.
  422. * BITS 34-39, 43-47, 51-55, 58 = 0.
  423. * ALL OTHER BITS ARE UNCHANGED.
  424. *
  425. * MACROS WRITMR.
  426.  
  427.  
  428. NEC SUBR ENTRY/EXIT
  429. LDM RBUF+4 CLEAR BITS 34-39
  430. NECA SCN 37
  431. * SCN 77 (IF IOU MODEL I2)
  432. STM RBUF+4
  433. LDM RBUF+5 CLEAR BITS 43-47
  434. SCN 37
  435. STM RBUF+5
  436. LDM RBUF+6 CLEAR BITS 51-55
  437. SCN 37
  438. STM RBUF+6
  439. LDM RBUF+7 CLEAR BIT 58
  440. SCN 40
  441. STM RBUF+7
  442. WRITMR RBUF,,DEMR UPDATE EC REGISTER
  443. LJM NECX RETURN
  444. SDC SPACE 4,10
  445. ** SDC - SELECT DEADSTART CHANNEL.
  446. *
  447. * EXIT (T7) = CHANNEL NUMBER.
  448. * (CHFL) = CHANNEL FLAG SET.
  449. *
  450. * USES T0, T1, CM - CM+4.
  451. *
  452. * MACROS RCHAN, SFA.
  453.  
  454.  
  455. SDC SUBR ENTRY/EXIT
  456. SDC1 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  457. STD T1
  458. SDC2 AOD T1 ADVANCE EST ORDINAL
  459. LMD LE
  460. ZJN SDC1 IF NO CHANNEL FOUND
  461. SFA EST,T1 READ EST ENTRY
  462. ADK EQDE
  463. CRD CM
  464. LDD CM
  465. SHN 21-13
  466. PJN SDC2 IF NOT MASS STORAGE DEVICE
  467. LDD CM+3 CHECK IF ECS ENTRY
  468. LMC 2RDE
  469. ZJN SDC2 IF ECS ENTRY
  470. LDN CM
  471. STD T0
  472. SDC3 AOD T0
  473. LMN CM+3
  474. ZJN SDC2 IF BOTH CHANNELS CHECKED
  475. LDI T0
  476. SHN 0-12
  477. LMN 2
  478. NJN SDC3 IF CHANNEL NOT PRESENT OR DISABLED
  479. LDI T0
  480. SHN 21-5
  481. MJN SDC3 IF CONCURRENT CHANNEL
  482. SHN 5-21
  483. STD T7
  484. RCHAN RESERVE CHANNEL
  485. AOM CHFL SET CHANNEL RESERVED FLAG
  486. LJM SDCX RETURN
  487. SEA SPACE 4,10
  488. ** SEA - SET *EICB* ADDRESS.
  489. *
  490. * EXIT (A) = *EICB* ADDRESS.
  491.  
  492.  
  493. SEA SUBR ENTRY/EXIT
  494. SEAA LDC ** (FWA OF *EICB*)
  495. UJN SEAX RETURN
  496. VRC SPACE 4,15
  497. ** VRC - VE RESERVE CHANNEL.
  498. *
  499. * ENTRY (T2) = CHANNEL NUMBER.
  500. *
  501. * EXIT (T4) = 0 IF CHANNEL PREVIOUSLY NOS/VE RESERVED.
  502. * (CM+1) = NONZERO VALUE IF CHANNEL ASSIGNED.
  503. * NIO CHANNEL DISCONNECTED IF ASSIGNED.
  504. *
  505. * USES T4, CM - CM+4.
  506. *
  507. * CALLS CHA.
  508. *
  509. * MACROS MONITOR.
  510.  
  511.  
  512. VRC1 STD T4 INDICATE ALREADY NOS/VE RESERVED
  513.  
  514. VRC SUBR ENTRY/EXIT
  515. RJM CHA CHECK CHANNEL ASSIGNMENT
  516. ZJN VRC1 IF CHANNEL ALREADY NOS/VE RESERVED
  517. LDD T2 SET CHANNEL NUMBER
  518. STD CM+3
  519. LDM NEJT SET ALTERNATE EJT ORDINAL
  520. STD CM+4
  521. LDC 4001 SET DUMMY EST ORDINAL
  522. STD CM+1
  523. LDN ICNS SET SUBFUNCTION
  524. STD CM+2
  525. MONITOR SEQM REQUEST CHANNEL
  526. LDD CM+1
  527. ZJP VRCX IF CHANNEL NOT AVAILABLE
  528. LDD T2
  529. LPN 40
  530. NJP VRCX IF CONCURRENT CHANNEL
  531. LDC DCNI+40 DISCONNECT CHANNEL
  532. ADD T2
  533. STM VRCA
  534. VRCA DCN **+40
  535. UJP VRCX RETURN
  536. VTC SPACE 4,10
  537. ** VTC - VE RETURN CHANNEL.
  538. *
  539. * ENTRY (T2) = CHANNEL NUMBER.
  540. *
  541. * EXIT (A) = 0.
  542. * CHANNEL RETURNED.
  543. *
  544. * USES CM - CM+4.
  545. *
  546. * MACROS MONITOR.
  547.  
  548.  
  549. VTC SUBR ENTRY/EXIT
  550. LDD T2 SET CHANNEL NUMBER
  551. STD CM+3
  552. LDM NEJT SET ALTERNATE EJT ORDINAL
  553. STD CM+4
  554. LDC 4001 SET DUMMY EST ORDINAL
  555. STD CM+1
  556. LDN CCNS SET SUBFUNCTION
  557. STD CM+2
  558. MONITOR SEQM RETURN CHANNEL
  559. * LDN 0
  560. UJN VTCX RETURN
  561. OVLA SPACE 4,10
  562. * DEFINE ORIGIN FOR OVERLAY *2VR*.
  563.  
  564. OVLA EQU *+5
  565. TITLE FUNCTION PROCESSORS.
  566. RCM SPACE 4,15
  567. ** FUNCTION 0 - RSCM - RESERVE CM.
  568. *
  569. * ENTRY (EIBA - EIBA+1) = *EICB* ADDRESS.
  570. * (PB LIST ENTRY) = 42/0, 18/CM WORDS/1000B REQUESTED.
  571. *
  572. * EXIT WORD *D7CM+1* OF *EICB* AND PB LIST ENTRY+1 =
  573. * 12/0, 24/FWA/1000B, 24/LWA+1/1000B.
  574. * (PB LIST ENTRY) = 42/0, 18/CM WORDS/1000B REQUESTED
  575. * ROUNDED UP TO THE NEAREST 2000B BOUNDARY.
  576. * MACHINE FL ADJUSTED TO REFLECT NEW TOTAL FOR NOS.
  577. * (PB+4) = ERROR STATUS.
  578. * BML MESSAGE ISSUED.
  579. *
  580. * USES PB+4, T6, T7, CL - CL+4, CM+3 - CM+4, T1 - T1+4.
  581. *
  582. * CALLS CMS, CPA, CRZ, GCC, IBM, RST, SBA, SDA.
  583.  
  584.  
  585. RCM SUBR ENTRY/EXIT
  586. LDD PB+3 CHECK PARAMETER BLOCK LENGTH
  587. SBN 2
  588. PJN RCM1 IF LENGTH LONG ENOUGH
  589. LDC ESIL SET INSUFFICIENT LENGTH STATUS
  590. LJM RCM5 RETURN
  591.  
  592. RCM1 RJM CPA GET NUMBER OF CM WORDS REQUESTED
  593. ADN 1
  594. CRD CL
  595. LDD CL+4 CHECK REQUEST
  596. LPN 1
  597. ZJN RCM1.1 IF REQUEST EVEN
  598. AOD CL+4 ROUND UP TO NEAREST 2000B BOUNDARY
  599. SHN -14
  600. RAD CL+3 ADD CARRY
  601. RCM1.1 LDD CL+3
  602. STD T6
  603. LDD CL+4
  604. STD T7
  605. RJM GCC GET CURRENT NOS/VE SIZE
  606. RJM CRZ CHECK REQUEST SIZE
  607. PJN RCM2.1 IF REQUEST SATISFIED BY RESERVED BLOCK
  608. LDC UEML CHECK FOR UEM PRESENT
  609. CRD T1
  610. LDD T1+4
  611. LPN 2
  612. ZJN RCM6 IF UEM NOT PRESENT
  613. UJN RCM4 SET NOT AVAILABLE
  614.  
  615. RCM2 RJM SBA SET BOUNDS ADDRESS
  616. RCM2.1 RJM SDA SET *EICB* CM ADDRESSES
  617. LDN 0 SET REPLY WORD
  618. STD CL
  619. STD CL+1
  620. RJM CPA SET REPLY
  621. ADN 1
  622. CWD CL
  623. ADN 1
  624. CWD CN
  625. LDC /COMSDFS/HS0110 SET SYMPTOM CODE
  626. STD T1
  627. LDC /COMSDFS/HM0240 SET MESSAGE ID
  628. RJM IBM ISSUE BML MESSAGE
  629. RCM3 LJM RCMX RETURN
  630.  
  631. RCM4 LDN ESCM SET CM NOT AVAILABLE STATUS
  632. RCM5 STD PB+4
  633. UJN RCM3 RETURN
  634.  
  635. * DYNAMIC CASE. (UEM NOT PRESENT).
  636.  
  637. * DETERMINE IF BLOCK IS ALREADY COMPLETELY USED.
  638. * COMPARE CURRENT NOS/VE MEMORY TO RESERVED BLOCK SIZE.
  639.  
  640. RCM6 LDD CM+3
  641. STD T1
  642. LDD CN+4
  643. SBD CM+4
  644. PJN RCM6.1 IF NO BORROW
  645. AOD T1 ADJUST FOR BORROW
  646. RCM6.1 LDD CN+3
  647. SBD T1
  648. MJN RCM7 IF ALREADY USING MORE THAN BLOCK
  649.  
  650. * SET AMOUNT TO REQUEST DYNAMICALLY.
  651. * (REQUEST + CURRENT SIZE - BLOCK SIZE).
  652.  
  653. LDD CN+3
  654. STD T1
  655. LDD CL+4
  656. ADD CM+4
  657. SBD CN+4
  658. STD T7
  659. PJN RCM6.2 IF NO BORROW
  660. AOD T1 ADJUST FOR BORROW
  661. AOD T7
  662. LDN 0
  663. RCM6.2 SHN -14
  664. ADD CL+3
  665. ADD CM+3
  666. SBD T1
  667. STD T6
  668. RCM7 RJM CMS CHECK MEMORY SIZE
  669. MJN RCM4 IF NOT ENOUGH LEFT
  670. LDD T6 SAVE TOTAL REQUEST
  671. STM RCMA
  672. LDD T7
  673. STM RCMA+1
  674. LDN 0 SET REQUEST FUNCTION
  675. RJM RST REQUEST MEMORY
  676. NJN RCM8 IF TOTAL REQUEST NOT AVAILABLE
  677. LJM RCM2 SET *EICB* AND REPLY
  678.  
  679. * RETURN MEMORY ALREADY ASSIGNED.
  680.  
  681. RCM8 STD T7
  682. SHN -14
  683. STD T6
  684. LDM RCMA
  685. SBD T6
  686. SHN 14
  687. LMM RCMA+1
  688. SBD T7
  689. STD T7
  690. SHN -14
  691. STD T6
  692. LDD HN RETURN MEMORY
  693. RJM RST
  694. LJM RCM4 SET NOT AVAILABLE STATUS
  695.  
  696. RCMA CON 0,0 TOTAL DYNAMIC MEMORY REQUEST
  697. RPP SPACE 4,15
  698. ** FUNCTION 1 - RSPP - RESERVE PP-S.
  699. *
  700. * ON 20 PP 810/830 CONFIGURATIONS, PP-S MUST BE ASSIGNED
  701. * TO NOS/VE IN PARTNER PAIRS. IF NOS/VE REQUESTS AN ODD
  702. * NUMBER OF PP-S OR RETURNS ONE MEMBER OF A PARTNER PAIR,
  703. * THE EXTRA PP MUST NOT BE USED BY NOS, BUT NOS/VE MUST
  704. * NOT KNOW ABOUT IT EITHER. THESE PP-S ARE CALLED PSEUDO-
  705. * ASSIGNED. AS FAR AS NOS IS CONCERNED, THEY ARE IN AN
  706. * IDENTICAL STATUS AS OTHERS ASSIGNED TO NOS/VE. THEIR
  707. * INPUT REGISTERS CONTAIN *VP AND THEY ARE IDLE AND MARKED
  708. * AS UPPER PP-S IN THE OS BOUNDS REGISTER. THE ONLY
  709. * DISTINCTION IS THAT BYTE 4 OF THE INPUT REGISTER IS ZERO
  710. * FOR PP-S THAT ARE ACTUALLY ASSIGNED, AND NON-ZERO FOR
  711. * THOSE THAT ARE PSEUDO-ASSIGNED. IN ORDER TO ASSIGN THEM
  712. * TO NOS/VE ALL THAT MUST BE DONE IS TO CLEAR BYTE 4 OF THE
  713. * INPUT REGISTER AND ENTER THE PP NUMBER IN THE REPLY BLOCK
  714. * FOR A REQUEST PP FUNCTION.
  715. *
  716. * EXIT (PB LIST ENTRY) = 6/PP NUMBER, 54/0.
  717. * = 6/77B, 42/0, 12/ERROR CODE
  718. * IF PP UNAVAILABLE.
  719. * (PB+4) = ERROR STATUS.
  720. * BML MESSAGE ISSUED.
  721. *
  722. * USES DA, DB, DC, EC, LO, PB+4, T3, T6, CL - CL+4,
  723. * CM - CM+4, CN - CN+4.
  724. *
  725. * CALLS ARC, CPA, GCP, IBM, IPP, SPB.
  726. *
  727. * MACROS DELAY, EXECUTE, MONITOR, PAUSE.
  728.  
  729.  
  730. RPP SUBR ENTRY/EXIT
  731. LDN ZERL INITIALIZE RESPONSE LIST ENTRY
  732. CRD CL
  733. LDN 1 INITIALIZE LIST OFFSET
  734. STD LO
  735. LDD PB+3 GET NUMBER REQUESTED
  736. ZJN RPPX IF NONE REQUESTED
  737. STD T6
  738. RJM GCP GET CURRENT STATUS OF PP-S
  739. RJM ARC ADJUST REQUEST COUNT
  740. LDD T6
  741. ZJN RPPX IF REQUEST SATISFIED
  742. LDD CM+2 TOTAL PP-S IN SYSTEM
  743. SBD T6
  744. SBD T5
  745. SBN MINP
  746. PJN RPP1 IF ENOUGH LEFT FOR NOS
  747. RAD T6 SET NUMBER OF PP-S AVAILABLE TO NOS/VE
  748. MJN RPP0 IF NONE AVAILABLE
  749. NJN RPP1 IF NOS/VE DOES NOT ALREADY HAVE MAXIMUM
  750. RPP0 UJN RPP2.2 SET PP NOT AVAILABLE STATUS
  751.  
  752. * REQUEST PP FOR *1VP*.
  753.  
  754. RPP1 LDD MA SET INPUT REGISTER
  755. CWM RPPA,ON
  756. EXECUTE 1VP,=
  757. LDN 5 INITIALIZE ATTEMPT COUNT
  758. STD DC
  759. RPP2 LDN ZERL
  760. CRD CM
  761. LDD CF
  762. ZJN RPP2.1 IF NOT 810/830 WITH 20 PP-S
  763. LDN 4 SET PARTNER PAIR FLAG
  764. RPP2.1 LMN 1 SET PRIORITY REQUEST
  765. STD CM+1
  766. MONITOR RPPM REQUEST PP
  767. LDD CM+1
  768. NJN RPP3 IF PP AVAILABLE
  769. PAUSE NE
  770. DELAY
  771. SOD DC DECREMENT ATTEMPT COUNT
  772. NJN RPP2 IF ANOTHER ATTEMPT TO BE MADE
  773. RPP2.2 LJM RPP6 SET PP NOT AVAILABLE STATUS
  774.  
  775. RPP3 STD T3 SAVE INPUT REGISTER ADDRESS
  776. LDD CM+2 SAVE SECOND INPUT REGISTER ADDRESS
  777. STD DA
  778. RPP4 LDD T3 GET INPUT REGISTER OF *1VP*
  779. CRD CM
  780. LDD CM
  781. LMC 2R*V
  782. ZJN RPP4.0 IF *1VP* READY
  783. PAUSE NE
  784. DELAY
  785. UJN RPP4 RECHECK CALL
  786.  
  787. RPP4.0 RJM IPP IDLE PP
  788. MJN RPP4.1 IF PP NOT IDLED
  789. LDD T5
  790. RJM SPB SET UPPER PP BIT
  791. LDC /COMSDFS/HS0112 SET SYMPTOM CODE
  792. STD T1
  793. LDN ZERL CLEAR DATA WORD
  794. CRD CN
  795. LDD T5 SET PP NUMBER
  796. STD CN+4
  797. LDC /COMSDFS/HM0240 SET MESSAGE ID
  798. RJM IBM ISSUE BML MESSAGE
  799. LDD DB
  800. NJN RPP4.2 IF PSEUDO-ASSIGNMENT
  801. LDD T5 SET PP NUMBER
  802. SHN 6
  803. STD CL
  804. RJM CPA WRITE PARAMETER LIST ENTRY
  805. ADD LO
  806. CWD CL
  807. AOD LO INCREMENT LIST OFFSET
  808. RPP4.1 UJN RPP5 CHECK IF REQUEST SATISFIED
  809.  
  810. RPP4.2 LDN 0 CLEAR PSEUDO-ASSIGNMENT NEEDED
  811. STD DB
  812. LDD T3 SET PSEUDO-ASSIGNED STATUS IN *IR*
  813. CRD CM
  814. AOD CM+4
  815. LDD T3
  816. CWD CM
  817. RPP5 SOD T6
  818. ZJN RPP6 IF REQUEST SATISFIED
  819. LDD DA
  820. STD T3
  821. ZJP RPP1 IF NO SECOND PP ASSIGNED
  822. LDN 0 CLEAR SECOND PP ASSIGNED
  823. STD DA
  824. UJP RPP4 PROCESS SECOND PP
  825.  
  826. * SET ERROR STATUS IN ALL REMAINING LIST ENTRIES.
  827.  
  828. RPP6 LDD LO
  829. RPP7 SBD PB+3
  830. SBN 1
  831. PJN RPP8 IF END OF PARAMETER BLOCK LIST
  832. LDN ESPP SET PP NOT AVAILABLE STATUS
  833. STD PB+4
  834. STD CL+4
  835. LDC 7700 SET ERROR RESPONSE
  836. STD CL
  837. RJM CPA WRITE PARAMETER LIST ENTRY
  838. ADD LO
  839. CWD CL
  840. AOD LO INCREMENT LIST OFFSET
  841. UJN RPP7 CHECK FOR ANOTHER ENTRY
  842.  
  843. RPP8 LJM RPPX RETURN
  844.  
  845. RPPA VFD 18/0L1VP,42/0 *1VP* INPUT REGISTER
  846. RCL SPACE 4,10
  847. ** FUNCTION 2 - RSCH - RESERVE CHANNELS.
  848. *
  849. * ENTRY (PB LIST ENTRY) = 6/CH, 54/0.
  850. *
  851. * EXIT (PB+4) = ERROR STATUS.
  852. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR CODE.
  853. *
  854. * USES LO, T2, CL - CL+4.
  855. *
  856. * CALLS CPA, DCA.
  857.  
  858.  
  859. RCL7 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  860. STD PB+4
  861.  
  862. RCL SUBR ENTRY/EXIT
  863. LDD PB+3 CHECK BLOCK LENGTH
  864. ZJN RCLX IF NONE REQUESTED
  865. SBN NCTAL*5+1
  866. PJN RCL7 IF TOO MANY CHANNELS REQUESTED
  867. LDN NCTAL
  868. STD T2
  869. LDC ** FWA CHANNEL STATUS TABLE
  870. RCLA EQU *-2
  871. CRM RBUF,T2
  872. LDN 1 INITIALIZE LIST OFFSET
  873. STD LO
  874. RCL1 RJM CPA READ NEXT CHANNEL NUMBER
  875. ADD LO
  876. CRD CL
  877. LDN 0 CLEAR ERROR FLAG
  878. STD CL+4
  879. LDD CL
  880. SHN -6
  881. STD T2
  882. SBN MXNC+1
  883. MJN RCL2 IF VALID CHANNEL NUMBER
  884. LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  885. UJN RCL3 WRITE PARAMETER LIST ENTRY
  886.  
  887. RCL2 RJM DCA DETERMINE CHANNEL AVAILABILITY
  888. ZJN RCL4 IF CHANNEL WAS PREVIOUSLY NOS/VE RESERVED
  889. LDD CM+1
  890. NJN RCL4 IF CHANNEL ASSIGNED
  891. LDN ESCH SET CHANNEL NOT AVAILABLE STATUS
  892. RCL3 STD PB+4
  893. STD CL+4
  894. RCL4 RJM CPA WRITE PARAMETER LIST ENTRY
  895. ADD LO
  896. CWD CL
  897. LDD CL+4
  898. LMD TH CHECK IF *ESIR*
  899. NJN RCL6 IF LEGAL REQUEST
  900. RCL5 LJM RCLX RETURN
  901.  
  902. RCL6 AOD LO INCREMENT LIST OFFSET
  903. SBD PB+3
  904. SBN 1
  905. PJN RCL5 IF END OF LIST
  906. LJM RCL1 PROCESS NEXT LIST ENTRY
  907. TCM SPACE 4,20
  908. ** FUNCTION 4 - RNCM - RETURN CM.
  909. *
  910. * ENTRY (PB LIST ENTRY) = 42/0, 18/NUMBER OF WORDS/1000B TO
  911. * RETURN.
  912. *
  913. * EXIT *EICB* WORD *D7CM+1* = 12/0, 24/FWA/1000B,
  914. * 24/LWA+1/1000B.
  915. * (PB LIST ENTRY) = 42/0, 18/NUMBER OF WORDS/1000B TO
  916. * RETURN ROUNDED DOWN TO NEAREST 2000B BOUNDARY.
  917. * MACHINE FL IS ADJUSTED IF ANY DYNAMIC MEMORY RETURNED.
  918. * (PB+4) = ERROR STATUS.
  919. * BML MESSAGE ISSUED.
  920. *
  921. * USES T1, CL - CL+1, CM - CM+4, CN - CN+1.
  922. *
  923. * CALLS CPA, GCC, IBM, RDM, SDA.
  924.  
  925.  
  926. TCM2 LDN 0 SET TOTAL NUMBER OF WORDS = 0
  927. STD CL
  928. STD CL+1
  929. LDD CN SET AMOUNT TO RETURN = CURRENT VALUE
  930. STD CM+3
  931. LDD CN+1
  932. STD CM+4
  933. TCM3 RJM RDM RETURN DYNAMIC MEMORY
  934. RJM SDA SET CM ADDRESSES IN *EICB*
  935. LDC /COMSDFS/HS0111 SET SYMPTOM CODE
  936. STD T1
  937. LDC /COMSDFS/HM0240 SET MESSAGE ID
  938. RJM IBM ISSUE BML MESSAGE
  939.  
  940. TCM SUBR ENTRY/EXIT
  941. RJM GCC GET CURRENT NUMBER OF NOS/VE CM WORDS
  942. LDD CM+3
  943. STD CN
  944. LDD CM+4
  945. STD CN+1
  946. RJM CPA GET NUMBER OF WORDS TO BE RETURNED
  947. ADN 1
  948. CRD CM
  949. LDD PB
  950. SHN 21-13
  951. MJP TCM2 IF REQUEST TO RETURN ALL MEMORY
  952. LDD CM+4 ROUND DOWN TO NEAREST 2000B
  953. SCN 1
  954. STD CM+4
  955. RJM CPA SET ROUNDED VALUE IN REPLY BLOCK
  956. ADN 1
  957. CWD CM
  958. LDD CM+3 FIND NEW TOTAL
  959. STD T1
  960. LDD CN+1
  961. SBD CM+4
  962. STD CL+1
  963. PJN TCM1 IF NO BORROW
  964. AOD T1 ADJUST FOR BORROW
  965. AOD CL+1
  966. TCM1 LDD CN
  967. SBD T1
  968. STD CL
  969. PJP TCM3 IF NUMBER TO RETURN .LE. CURRENT NUMBER
  970. LDN ESCM SET CM NOT ASSIGNED ERROR STATUS
  971. STD PB+4
  972. LJM TCMX RETURN
  973. TPP SPACE 4,15
  974. ** FUNCTION 5 - RNPP - RETURN PP.
  975. *
  976. * ENTRY (PB LIST ENTRY) = 6/PP NUMBER, 54/0.
  977. *
  978. * EXIT (PB LIST ENTRY) = 6/UNCHANGED, 42/0, 12/ERROR STATUS.
  979. * (PB+4) = ERROR STATUS.
  980. *
  981. * USES DA, EC, LO, PB+4, CL - CL+4, CN - CN+4.
  982. *
  983. * CALLS CPA, CPS, DPL, LPR, SPB, VPN.
  984. *
  985. * MACROS MONITOR.
  986.  
  987.  
  988. TPP13 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  989. STD PB+4
  990.  
  991. TPP SUBR ENTRY/EXIT
  992. RJM LPR LOAD PP RESIDENT
  993. LDN PPUL GET NUMBER OF SYSTEM PP-S
  994. CRD CN
  995. LDD CN+2
  996. STD DA
  997. LDD PB
  998. SHN 21-13
  999. PJN TPP1 IF RETURN SPECIFIED PP-S REQUEST
  1000. LJM TPP7 RETURN ALL NOS/VE PP-S
  1001.  
  1002. * RETURN SPECIFIED PP-S.
  1003.  
  1004. TPP1 LDD PB+3
  1005. ZJN TPPX IF NONE TO RETURN
  1006. SBD DA
  1007. SBN 1
  1008. PJN TPP13 IF REQUEST TOO LARGE
  1009.  
  1010. TPP2 LDN 1 INITIALIZE LIST OFFSET
  1011. STD LO
  1012. TPP3 RJM CPA READ NEXT LIST ENTRY
  1013. ADD LO
  1014. CRD CL
  1015. LDD CL
  1016. SHN -6
  1017. RJM VPN VALIDATE PP NUMBER
  1018. NJN TPP6 IF NOT ASSIGNED TO NOS/VE
  1019. RJM CPS CHECK PARTNER STATUS
  1020. MJN TPP4 IF ONLY REPLY NEEDED (PARTNER IS ASSIGNED)
  1021. NJN TPP6 IF PP IS PSEUDO-ASSIGNED
  1022. LDD T4 PP NUMBER
  1023. LMC 10000
  1024. RJM SPB SET LOWER PP BIT
  1025. RJM DPL DEADSTART PP AND LOAD *PPR*
  1026. TPP4 LDN 0 CLEAR ERROR FLAG
  1027. STD CL+4
  1028. TPP5 RJM CPA WRITE LIST ENTRY
  1029. ADD LO
  1030. CWD CL
  1031. LDD CL+4
  1032. LMD TH CHECK IF *ESIR*
  1033. ZJN TPP9 IF ILLEGAL REQUEST
  1034. AOD LO INCREMENT OFFSET
  1035. SBD PB+3
  1036. SBN 1
  1037. PJN TPP9 IF END OF LIST
  1038. LJM TPP3 PROCESS NEXT PP
  1039.  
  1040. TPP6 STD PB+4
  1041. STD CL+4
  1042. UJN TPP5 WRITE LIST ENTRY
  1043.  
  1044. * RETURN ALL NOS/VE RESERVED PP-S.
  1045.  
  1046. TPP7 LDN 0 INITIALIZE PP NUMBER
  1047. STD CL
  1048. TPP8 LDD CL
  1049. RJM VPN VALIDATE PP NUMBER
  1050. ZJN TPP10 IF ASSIGNED TO NOS/VE
  1051. LMN ESPP
  1052. ZJN TPP11 IF NOT END OF PP-S
  1053. TPP9 UJN TPP12 RETURN
  1054.  
  1055. TPP10 LDD T4 RETURN NOS/VE PP
  1056. LMC 10000
  1057. RJM SPB SET LOWER PP BIT
  1058. RJM DPL DEADSTART PP AND LOAD PPR
  1059. TPP11 AOD CL INCREMENT PP NUMBER
  1060. SBN 12
  1061. NJN TPP8 IF NOT PP 20
  1062. LDN 20 SET START OF UPPER BANK
  1063. STD CL
  1064. UJN TPP8 PROCESS NEXT PP
  1065.  
  1066. TPP12 LJM TPPX RETURN
  1067. TCH SPACE 4,15
  1068. ** FUNCTION 6 - RNCH - RETURN CHANNEL.
  1069. *
  1070. * ENTRY (PB LIST ENTRY) = 6/CH, 54/0.
  1071. *
  1072. * EXIT (PB+4) = ERROR STATUS.
  1073. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
  1074. *
  1075. * USES LO, PB+4, T2, CL - CL+4.
  1076. *
  1077. * CALLS CPA, VTC.
  1078.  
  1079.  
  1080. TCH11 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  1081. STD PB+4
  1082.  
  1083. TCH SUBR ENTRY/EXIT
  1084. LDN NCTAL READ EJT ASSIGNMENT TABLE
  1085. STD T2
  1086. LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
  1087. TCHA EQU *-2
  1088. CRM CBUF,T2
  1089. LDD PB
  1090. SHN 21-13
  1091. PJN TCH1 IF TO RETURN SPECIFIED CHANNELS
  1092. LJM TCH7 RETURN ALL NOS/VE CHANNELS
  1093.  
  1094. TCH1 LDD PB+3 CHECK BLOCK LENGTH
  1095. ZJN TCHX IF NONE TO BE RETURNED
  1096. SBN NCTAL*5+1
  1097. PJN TCH11 IF TOO MANY CHANNELS TO BE RETURNED
  1098. LDN 1 INITIALIZE LIST OFFSET
  1099. STD LO
  1100. TCH2 RJM CPA GET NEXT CHANNEL TO RETURN
  1101. ADD LO
  1102. CRD CL
  1103. LDD CL
  1104. SHN -6
  1105. STD T2
  1106. SBN MXNC+1
  1107. MJN TCH3 IF VALID CHANNEL NUMBER
  1108. LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  1109. UJN TCH4 WRITE PARAMETER LIST ENTRY
  1110.  
  1111. TCH3 LDM NEJT
  1112. LMM CBUF,T2
  1113. ZJN TCH5 IF CHANNEL IS NOS/VE RESERVED
  1114. LDN ESCH SET CHANNEL NOT NOS/VE RESERVED STATUS
  1115. TCH4 STD PB+4
  1116. UJN TCH6 WRITE PARAMETER LIST ENTRY
  1117.  
  1118. TCH5 RJM VTC VE RETURN CHANNEL
  1119. * LDN 0 CLEAR ERROR STATUS
  1120. TCH6 STD CL+4
  1121. RJM CPA WRITE PARAMETER LIST ENTRY
  1122. ADD LO
  1123. CWD CL
  1124. LDD CL+4
  1125. LMD TH CHECK IF *ESIR*
  1126. ZJN TCH10 IF ILLEGAL REQUEST
  1127. AOD LO INCREMENT LIST OFFSET
  1128. SBD PB+3
  1129. SBN 1
  1130. PJN TCH10 IF END OF LIST
  1131. LJM TCH2 PROCESS NEXT LIST ENTRY
  1132.  
  1133. * RETURN ALL NOS/VE RESERVED CHANNELS.
  1134.  
  1135. TCH7 LDN 0 INITIALIZE CHANNEL TABLE OFFSET
  1136. STD T2
  1137. TCH8 LDM NEJT
  1138. LMM CBUF,T2
  1139. NJN TCH9 IF CHANNEL NOT NOS/VE RESERVED
  1140. RJM VTC VE RETURN CHANNEL
  1141. TCH9 AOD T2 INCREMENT CHANNEL TABLE OFFSET
  1142. SBN MXNC+1
  1143. MJN TCH8 IF NOT END OF TABLE
  1144. TCH10 LJM TCHX RETURN
  1145. SCM SPACE 4,15
  1146. ** FUNCTION 10 - STCM - STATUS OF NOS/VE CM.
  1147. *
  1148. * ENTRY (EIBA - EIBA+1) = *EICB* ADDRESS.
  1149. *
  1150. * EXIT (PB LIST ENTRY) = 42/0, 18/NUMBER OF WORDS/1000B.
  1151. * = 12/0, 24/FWA/1000B, 24/LWA+1/1000B.
  1152. * (PB+4) = ERROR STATUS.
  1153. *
  1154. * USES PB+4, CL - CL+4, CM - CM+4.
  1155. *
  1156. * CALLS CPA, GCC, SEA.
  1157.  
  1158.  
  1159. SCM1 LDC ESIL SET INSUFFICIENT LENGTH STATUS
  1160. STD PB+4
  1161.  
  1162. SCM SUBR ENTRY/EXIT
  1163. LDD PB+3 CHECK LENGTH
  1164. SBN 2
  1165. MJN SCM1 IF INSUFFICIENT LENGTH
  1166. LDN ZERL CLEAR RESPONSE
  1167. CRD CL
  1168. RJM GCC GET CURRENT NUMBER OF NOS/VE CM WORDS
  1169. LDD CM+3
  1170. STD CL+3
  1171. LDD CM+4
  1172. STD CL+4
  1173. RJM SEA GET ADDRESSES FROM *EICB*
  1174. ADN D7CM+1
  1175. CRD CM
  1176. RJM CPA WRITE RESPONSE
  1177. ADN 1
  1178. CWD CL
  1179. ADN 1
  1180. CWD CM
  1181. UJN SCMX RETURN
  1182. SPP SPACE 4,15
  1183. ** FUNCTION 11 - STPP - STATUS OF NOS/VE PP-S.
  1184. *
  1185. * ENTRY (PB LIST ENTRY) = 6/PP NUMBER, 54/0.
  1186. * (PPCA) = PP COMMUNICATION AREA ADDRESS.
  1187. *
  1188. * EXIT (PB+4) = ERROR STATUS.
  1189. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
  1190. *
  1191. * USES DA, LO, PB+4, CL - CL+4, CN - CN+4.
  1192. *
  1193. * CALLS CPA, VPN.
  1194.  
  1195.  
  1196. SPP5 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  1197. STD PB+4
  1198.  
  1199. SPP SUBR ENTRY/EXIT
  1200. LDN PPUL GET NUMBER OF SYSTEM PP-S
  1201. CRD CN
  1202. LDD CN+2
  1203. STD DA
  1204. LDD PB+3 CHECK PARAMETER BLOCK LENGTH
  1205. ZJN SPPX IF NO REQUEST
  1206. SBN 21D
  1207. PJN SPP5 IF LENGTH .GT. NUMBER OF SYSTEM PP-S
  1208. LDN 1 INITIALIZE LIST OFFSET
  1209. STD LO
  1210. SPP1 RJM CPA READ NEXT LIST ENTRY
  1211. ADD LO
  1212. CRD CL
  1213. LDD CL
  1214. SHN -6
  1215. RJM VPN VALIDATE PP NUMBER
  1216. NJN SPP2 IF NOT ASSIGNED TO NOS/VE
  1217. LDD CM+4
  1218. ZJN SPP3 IF NOT PSEUDO-ASSIGNED TO NOS/VE
  1219. SPP2 LDN ESPP SET PP NOT ASSIGNED STATUS
  1220. STD PB+4
  1221. SPP3 STD CL+4 SET ERROR STATUS
  1222. RJM CPA WRITE RESPONSE
  1223. ADD LO
  1224. CWD CL
  1225. AOD LO INCREMENT LIST OFFSET
  1226. SBD PB+3
  1227. SBN 1
  1228. MJN SPP1 IF NOT END OF LIST
  1229. LJM SPPX RETURN
  1230. SCH SPACE 4,10
  1231. ** FUNCTION 12 - STCH - STATUS OF NOS/VE CHANNELS.
  1232. *
  1233. * ENTRY (PB LIST ENTRY) = 6/CH, 54/0.
  1234. * (NEJT) = NOS/VE EJT ORDINAL.
  1235. *
  1236. * EXIT (PB+4) = ERROR STATUS.
  1237. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
  1238. *
  1239. * USES LO, PB+4, T2, CL - CL+4.
  1240. *
  1241. * CALLS CPA.
  1242.  
  1243.  
  1244. SCH5 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  1245. STD PB+4
  1246.  
  1247. SCH SUBR ENTRY/EXIT
  1248. LDD PB+3 CHECK PARAMETER BLOCK LENGTH
  1249. ZJN SCHX IF NO REQUEST
  1250. SBN NCTAL*5
  1251. PJN SCH5 IF LENGTH .GT. NUMBER OF CHANNELS
  1252. LDN NCTAL
  1253. STD LO
  1254. LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
  1255. SCHA EQU *-2
  1256. CRM CBUF,LO
  1257. LDN 1 INITIALIZE LIST OFFSET
  1258. STD LO
  1259. SCH1 RJM CPA READ NEXT LIST ENTRY
  1260. ADD LO
  1261. CRD CL
  1262. LDD CL
  1263. SHN -6
  1264. STD T2
  1265. SBN MXNC+1
  1266. MJN SCH2 IF VALID CHANNEL NUMBER
  1267. LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  1268. STD PB+4
  1269. UJN SCH3 WRITE RESPONSE
  1270.  
  1271. SCH2 LDM NEJT
  1272. LMM CBUF,T2
  1273. ZJN SCH3 IF CHANNEL RESERVED BY NOS/VE
  1274. LDN ESCH SET CHANNEL NOT RESERVED STATUS
  1275. STD PB+4
  1276. SCH3 STD CL+4 SET ERROR STATUS
  1277. RJM CPA WRITE RESPONSE
  1278. ADD LO
  1279. CWD CL
  1280. LDD CL+4
  1281. LMD TH CHECK IF *ESIR*
  1282. ZJN SCH4 IF ILLEGAL REQUEST
  1283. AOD LO INCREMENT LIST OFFSET
  1284. SBD PB+3
  1285. SBN 1
  1286. PJN SCH4 IF END OF LIST
  1287. LJM SCH1 PROCESS NEXT LIST ENTRY
  1288.  
  1289. SCH4 LJM SCHX RETURN
  1290. SMR SPACE 4,15
  1291. ** FUNCTION 14 - STMR - STATUS AVAILABLE RESOURCES.
  1292. *
  1293. * EXIT (PB LIST ENTRY) = 42/0, 18/NUMBER OF CM WORDS/1000B
  1294. * AVAILABLE.
  1295. * = 54/0, 6/NUMBER OF PP-S AVAILABLE.
  1296. *
  1297. * USES DA, DB, PB+4, T1, CL - CL+4, CM - CM+4.
  1298. *
  1299. * CALLS CPA, GCC, GCP.
  1300.  
  1301.  
  1302. SMR6 LDC ESIL SET INSUFFICIENT LENGTH STATUS
  1303. STD PB+4
  1304.  
  1305. SMR SUBR ENTRY/EXIT
  1306. LDD PB+3 CHECK BLOCK LENGTH
  1307. SBN 2
  1308. MJN SMR6 IF INSUFFICIENT LENGTH FOR REPLY
  1309. LDN ZERL CLEAR RESPONSE
  1310. CRD CL
  1311. RJM GCC GET CURRENT NUMBER OF NOS/VE CM WORDS
  1312. LDD CM+3
  1313. STD DA
  1314. STD T1
  1315. LDD CM+4
  1316. STD DB
  1317. LDC UEML CHECK FOR UEM
  1318. CRD CM
  1319. LDD CM+4
  1320. LPN 2
  1321. ZJN SMR2 IF UEM NOT PRESENT
  1322. LDD CN+4 SUBTRACT CURRENT FROM BLOCK SIZE
  1323. SBD DB
  1324. STD CL+4
  1325. PJN SMR1 IF NO BORROW
  1326. AOD T1 ADJUST FOR BORROW
  1327. AOD CL+4
  1328. SMR1 LDD CN+3
  1329. SBD T1
  1330. STD CL+3
  1331. LJM SMR5 SET RESPONSE
  1332.  
  1333. SMR2 LDC MABL GET MACHINE FL/100B
  1334. CRD CM
  1335. LDD CM+2 FORM MACHINE FL/1000B
  1336. LPN 7
  1337. SHN 14
  1338. LMD CM+3
  1339. ADN 7
  1340. SHN -3
  1341. STD CM+3
  1342. SHN -14
  1343. SHN 3
  1344. ADD CM+2
  1345. SHN -3
  1346. STD CM+2
  1347. LDD CN+1 FORM MACHINE FL - MINCM
  1348. STD T1
  1349. LDD CM+3
  1350. SBD CN+2
  1351. STD CL+4
  1352. PJN SMR3 IF NO BORROW
  1353. AOD T1 ADJUST FOR BORROW
  1354. AOD CL+4
  1355. SMR3 LDD CM+2
  1356. SBD T1
  1357. STD CL+3
  1358. LDD DA FORM BLOCK - CURRENT
  1359. STD T1
  1360. LDD CN+4
  1361. SBD DB
  1362. STD T2
  1363. PJN SMR4 IF NO BORROW
  1364. AOD T1 ADJUST FOR BORROW
  1365. AOD T2
  1366. SMR4 LDD CN+3
  1367. SBD T1
  1368. STD T1
  1369. MJN SMR5 IF BLOCK USED UP
  1370. LDD T2 RETURN FL - MINCM + UNUSED BLOCK
  1371. RAD CL+4
  1372. SHN -14
  1373. ADD T1
  1374. RAD CL+3
  1375.  
  1376. * SET UP RESPONSE.
  1377.  
  1378. SMR5 LDD CL+4 ROUND DOWN TO NEAREST 2000B
  1379. SCN 1
  1380. STD CL+4
  1381. RJM CPA RETURN AVAILABLE CM
  1382. ADN 1
  1383. CWD CL
  1384. LDN 0 CLEAR RESPONSE
  1385. STD CL+3
  1386. RJM GCP GET CURRENT STATUS OF NOS/VE PP-S
  1387. LDD CM+2 RETURN TOTAL PP-S - DEDICATED - MINIMUM
  1388. SBD T5
  1389. SBN MINP
  1390. ADD T1 DO NOT COUNT PSEUDO-ASSIGNED PP-S
  1391. STD CL+4
  1392. RJM CPA RETURN AVAILABLE PP-S
  1393. ADN 2
  1394. CWD CL
  1395. LJM SMRX RETURN
  1396. TITLE SUBROUTINES.
  1397. APP SPACE 4,15
  1398. ** APP - ASSIGN PSEUDO-ASSIGNED PP.
  1399. *
  1400. * ENTRY (LO) = CURRENT OFFSET IN PARAMETER LIST.
  1401. * (T1) = NUMBER OF PSEUDO-ASSIGNED PP-S.
  1402. * (T6) = PP REQUEST COUNT.
  1403. *
  1404. * EXIT (LO) = ADVANCED LIST ENTRY POINTER.
  1405. * (T1) = DECREMENTED COUNT OF PSEUDO-ASSIGNED PP-S.
  1406. * (T6) = DECREMENTED PP REQUEST COUNT.
  1407. *
  1408. * USES CL, LO, T1, T4, T5, T6, CM - CM+4.
  1409. *
  1410. * CALLS CPA.
  1411. *
  1412. * NOTE - THIS ROUTINE DOES NOT CHECK FOR THE END OF THE PP
  1413. * COMMUNICATION AREA. IT EXPECTS TO FIND A PSEUDO-ASSIGNED PP.
  1414.  
  1415.  
  1416. APP SUBR ENTRY/EXIT
  1417. LDM PPCA GET PP COMMUNICATION AREA POINTER
  1418. STD T4
  1419. LDN 0 INITIALIZE PP NUMBER
  1420. STD T5
  1421. APP1 AOD T5 INCREMENT PP NUMBER
  1422. LMN 12
  1423. NJN APP2 IF NOT PP 12
  1424. LDN 20 SET PP 20
  1425. STD T5
  1426. APP2 LDN 10 READ NEXT INPUT REGISTER
  1427. RAD T4
  1428. CRD CM
  1429. LDD CM+1
  1430. SCN 77
  1431. SHN 6
  1432. LMD CM
  1433. LMC 3RP*V
  1434. NJN APP1 IF NOT *VP
  1435. LDD CM+4
  1436. ZJN APP1 IF NOT PSEUDO-ASSIGNED
  1437. LDD T5 SET PP NUMBER IN REPLY
  1438. SHN 6
  1439. STD CL
  1440. RJM CPA WRITE PARAMETER LIST ENTRY
  1441. ADD LO
  1442. CWD CL
  1443. AOD LO INCREMENT LIST OFFSET
  1444. LDN 0 CLEAR PSEUDO-ASSIGNED STATUS
  1445. STD CM+4
  1446. LDD T4 REWRITE INPUT REGISTER
  1447. CWD CM
  1448. SOD T6 DECREMENT REQUEST COUNT
  1449. SOD T1 DECREMENT PSEUDO-ASSIGNED COUNT
  1450. LJM APPX RETURN
  1451. ARC SPACE 4,45
  1452. ** ARC - ADJUST REQUEST COUNT.
  1453. *
  1454. * THIS ROUTINE ATTEMPTS TO SATISFY AS MUCH AS POSSIBLE OF
  1455. * THE CURRENT PP REQUEST WITH PSEUDO-ASSIGNED PP-S. IF THE
  1456. * REQUEST IS FOR AN ODD NUMBER OF PP-S, ONE PSEUDO-ASSIGNED
  1457. * PP WILL BE USED, AND THE REQUEST CHANGED TO ONE FOR AN EVEN
  1458. * NUMBER OF PP-S. EVEN REQUESTS WILL BE SATIFIED BY USING
  1459. * PAIRS OF PSEUDO-ASSIGNED PP-S, UNTIL ANOTHER PAIR IS NOT
  1460. * AVAILABLE, OR THE ENTIRE REQUEST IS SATISFIED.
  1461. *
  1462. * ENTRY (T6) = PP REQUEST COUNT FROM PARAMETER BLOCK.
  1463. * (T1) = NUMBER OF PP-S PSEUDO-ASSIGNED TO NOS/VE.
  1464. * (CF) = 0, IF NOT 810/830 WITH 20 PP-S.
  1465. *
  1466. * EXIT (T6) = ADJUSTED REQUEST COUNT. (REDUCED BY ANY
  1467. * PSEUDO-ASSIGNED PP-S THAT WERE USED, OR
  1468. * INCREASED BY 1, IF THE REQUEST IS FOR AN
  1469. * ODD NUMBER OF PP-S AND NO PSEUDO-ASSIGNED
  1470. * PP-S ARE AVAILABLE). THIS COUNT IS ALWAYS
  1471. * AN EVEN NUMBER.
  1472. * (DB) .NE. 0, IF PSEUDO-ASSIGNMENT REQUIRED.
  1473. *
  1474. * SEE *GCP* FOR OTHER EXIT CONDITIONS.
  1475. *
  1476. * USES DB, T6.
  1477. *
  1478. * CALLS APP, GCP.
  1479.  
  1480.  
  1481. ARC3 RJM GCP RESET CURRENT STATUS OF PP-S
  1482.  
  1483. ARC SUBR ENTRY/EXIT
  1484. LDN 0 CLEAR PSEUDO-ASSIGNMENT FLAG
  1485. STD DB
  1486. LDD CF
  1487. ZJN ARCX IF NOT 810/830 WITH 20 PP-S
  1488. LDD T1
  1489. NJN ARC1 IF PSEUDO-ASSIGNED PP-S
  1490. LDD T6
  1491. LPN 1
  1492. ZJN ARCX IF REQUEST IS FOR EVEN NUMBER
  1493. AOD T6 MAKE REQUEST EVEN
  1494. AOD DB SET PSEUDO-ASSIGNMENT REQUIRED
  1495. UJN ARC3 RESET STATUS
  1496.  
  1497. ARC1 LDD T6
  1498. LPN 1
  1499. ZJN ARC2 IF EVEN REQUEST
  1500. RJM APP ASSIGN PSEUDO-ASSIGNED PP
  1501. ARC2 LDD T6
  1502. ZJN ARC3 IF REQUEST IS SATISFIED
  1503. LDD T1
  1504. SBN 2
  1505. MJN ARC3 IF NO PAIR OF PSEUDO-ASSIGNED PP-S
  1506. RJM APP ASSIGN PSEUDO-ASSIGNED PP
  1507. RJM APP ASSIGN PSEUDO-ASSIGNED PP
  1508. UJN ARC2 CHECK IF REQUEST SATISFIED
  1509. CAM SPACE 4,15
  1510. ** CAM - CALCULATE AVAILABLE MEMORY.
  1511. *
  1512. * ENTRY (NC) = SYSTEM CONTROL POINT NUMBER.
  1513. *
  1514. * EXIT (DB) = HIGHEST CP/PCP NUMBER + 1.
  1515. * (DC) = UNASSIGNED CM/100B (3777B IF UNASSIGNED
  1516. * CM .GE. 131K).
  1517. * *TCFL* BUILT.
  1518. *
  1519. * USES DB, DC, CM - CM+4, CN - CN+4, SC - SC+4, T1 - T5.
  1520. *
  1521. * CALLS CCA.
  1522.  
  1523.  
  1524. CAM SUBR ENTRY/EXIT
  1525. LDK ACML GET AVAILABLE CM
  1526. CRD CM
  1527. LDN 0 INITIALIZE CP/PCP NUMBER
  1528. STD DB
  1529. LDD CM
  1530. SHN 14
  1531. LMD CM+1
  1532. SBK 3777
  1533. PJN CAM1 IF AVAILABLE CM .GE. 3777B
  1534. LDD CM+1
  1535. UJN CAM2 SET AVAILABLE CM
  1536.  
  1537. CAM1 LDC 3777 SET MAXIMUM AVAILABLE CM
  1538. CAM2 STD DC
  1539. CAM3 AOD DB ADVANCE CP/PCP NUMBER
  1540. LMD NC
  1541. ZJN CAM5 IF SYSTEM CP
  1542. LMD NC
  1543. LMC **
  1544. CAMA EQU *-1 (NUMBER OF MCT ENTRIES)
  1545. ZJN CAMX IF ALL CP-S/PCP-S PROCESSED
  1546. LDD DB SET CP/PCP ADDRESS
  1547. RJM CCA
  1548. ADK STSW
  1549. CRD T1 READ STATUS WORD
  1550. ADN JCIW-STSW
  1551. CRD SC READ JOB CONTROL WORD
  1552. ADK FLSW-JCIW
  1553. CRD CM
  1554. ADK TFSW-FLSW
  1555. CRD CN READ EJT ORDINAL
  1556. LDD CN
  1557. ZJN CAM5 IF UNASSIGNED CP/PCP
  1558. LDD SC+2
  1559. ZJN CAM4 IF ROLLABLE JOB
  1560. LDN 0
  1561. UJN CAM5 CLEAR *TCFL* ENTRY
  1562.  
  1563. CAM4 LDD T1+2 SAVE CM FL + ROLLOUT STATUS
  1564. LPN 1
  1565. SHN 13-0
  1566. ADD CM+4
  1567. ADD CM ADD NFL
  1568. CAM5 STM TCFL,DB
  1569. UJP CAM3 PROCESS NEXT CP/PCP
  1570. CCA SPACE 4,10
  1571. ** CCA - COMPUTE CPA/PCPA ADDRESS.
  1572. *
  1573. * ENTRY (A) = CP/PCP NUMBER.
  1574. * (NC) = NUMBER OF CONTROL POINTS.
  1575. *
  1576. * EXIT (A) = CPA/PCPA ADDRESS.
  1577.  
  1578.  
  1579. CCA1 ADD NC
  1580. SHN 7
  1581.  
  1582. CCA SUBR ENTRY/EXIT
  1583. SBD NC
  1584. MJN CCA1 IF CONTROL POINT
  1585. ZJN CCA1 IF SYSTEM CONTROL POINT
  1586. SHN 7
  1587. CCAA ADC ** (PCP AREAS BASE ADDRESS)
  1588. UJN CCAX RETURN
  1589. CMS SPACE 4,10
  1590. ** CMS - CHECK MEMORY SIZE.
  1591. *
  1592. * ENTRY (T6 - T7) = MEMORY TO REQUEST/1000B.
  1593. * (CN+1 - CN+2) = MINCM/1000B.
  1594. *
  1595. * EXIT (A) .LT. 0 IF REQUEST WILL NOT LEAVE THE
  1596. * MINCM VALUE FOR NOS. (65K MINIMUM REQUIRED IF
  1597. * MINCM IS NOT SPECIFIED).
  1598. *
  1599. * USES T1 - T5.
  1600.  
  1601.  
  1602. CMS SUBR ENTRY/EXIT
  1603. LDC MABL GET CURRENT NOS CM SIZE/100B
  1604. CRD T1
  1605. LDD T1+2 FORM CURRENT CM/1000B
  1606. LPN 7
  1607. SHN 14
  1608. LMD T1+3
  1609. ADN 7 ROUND TO NEXT THOUSAND
  1610. SHN -3
  1611. STD T1+3
  1612. SHN -14
  1613. SHN 3
  1614. ADD T1+2
  1615. SHN -3
  1616. STD T1+2
  1617. LDD T6 COMPUTE NEW NOS CM SIZE/1000B
  1618. STD T1
  1619. LDD T1+3
  1620. SBD T7
  1621. STD T2
  1622. PJN CMS1 IF NO BORROW
  1623. AOD T1 ADJUST FOR BORROW
  1624. AOD T2
  1625. CMS1 LDD T1+2
  1626. SBD T1
  1627. STD T1
  1628. MJN CMSX IF REQUEST TOO LARGE
  1629. LDD CN+1 CHECK IF RESULT LEAVES .LT. MINCM
  1630. STD T3
  1631. LDD T2
  1632. SBD CN+2
  1633. PJN CMS2 IF NO BORROW
  1634. AOD T3 ADJUST FOR BORROW
  1635. CMS2 LDD T1
  1636. SBD T3
  1637. LJM CMSX RETURN
  1638. CPS SPACE 4,20
  1639. ** CPS - CHECK PARTNER STATUS.
  1640. *
  1641. * WHEN A NOS/VE PP IS RETURNED, IT MUST BE LEFT AS
  1642. * PSEUDO-ASSIGNED IF IT-S PARTNER IS STILL ASSIGNED.
  1643. * IF IT-S PARTNER IS PSEUDO-ASSIGNED, THEN BOTH CAN BE
  1644. * RELEASED FOR USE BY NOS.
  1645. *
  1646. * ENTRY (T4) = PP NUMBER.
  1647. * (T3) = OFFSET INTO PP COMMUNICATION AREA.
  1648. * (CM - CM+4) = INPUT REGISTER.
  1649. *
  1650. * EXIT (A) = 0, IF PARTNER IS PSEUDO-ASSIGNED.
  1651. * = *ESPP*, IF PP BEING RETURNED IS PSEUDO-ASSIGNED.
  1652. * .LT. 0, IF PARTNER IS STILL ASSIGNED.
  1653. *
  1654. * USES CM+4, SC, SC+1, T5, T6.
  1655. *
  1656. * CALLS DPL, SPB.
  1657.  
  1658.  
  1659. CPS5 LDN ESPP SET PP NOT ASSIGNED ERROR STATUS
  1660.  
  1661. CPS SUBR ENTRY/EXIT
  1662. LDD CF
  1663. ZJN CPSX IF NOT 810/830 WITH 20 PP-S
  1664. LDD CM+4
  1665. NJN CPS5 IF PSEUDO-ASSIGNED
  1666. LDD T4
  1667. SBN 12
  1668. PJN CPS1 IF UPPER BANK
  1669. ADN 12+20
  1670. STD T5 PARTNER PP NUMBER
  1671. LDD T3
  1672. ADK 10*12
  1673. UJN CPS2 READ INPUT REGISTER
  1674.  
  1675. CPS1 SBN 6
  1676. STD T5 PARTNER PP NUMBER
  1677. LDD T3
  1678. SBK 10*12
  1679. CPS2 STD T6 OFFSET OF PARTNER-S INPUT REGISTER
  1680. ADM PPCA
  1681. CRD CN READ PARTNER-S INPUT REGISTER
  1682. LDD CN+4
  1683. ZJN CPS4 IF PARTNER IS ASSIGNED
  1684.  
  1685. * PARTNER IS PSEUDO-ASSIGNED. IT CAN BE RELEASED
  1686. * FOR USE BY NOS.
  1687.  
  1688. LDD T3 SAVE PARAMETERS
  1689. STD SC
  1690. LDD T4
  1691. STD SC+1
  1692. LDD T5 RETURN PARTNER
  1693. STD T4
  1694. LMC 10000 SET LOWER PP BIT
  1695. RJM SPB
  1696. LDD T6
  1697. STD T3
  1698. RJM DPL DEADSTART PP AND LOAD *PPR*
  1699. LDD SC RESTORE PARAMETERS
  1700. STD T3
  1701. LDD SC+1
  1702. STD T4
  1703. LDN 0
  1704. CPS3 LJM CPSX RETURN
  1705.  
  1706. * PARTNER IS ASSIGNED. SET THIS PP AS PSEUDO-ASSIGNED.
  1707.  
  1708. CPS4 AOD CM+4 SET PSEUDO-ASSIGNED STATUS IN *IR*
  1709. LDM PPCA
  1710. ADD T3
  1711. CWD CM
  1712. LCN 0
  1713. UJN CPS3 RETURN
  1714. CRZ SPACE 4,15
  1715. ** CRZ - CHECK REQUEST SIZE.
  1716. *
  1717. * ENTRY (CL+3 - CL+4) = REQUEST/1000B.
  1718. * (CM+3 - CM+4) = CURRENT NOS/VE MEMORY SIZE/1000B.
  1719. * (CN+3 - CN+4) = RESERVED BLOCK SIZE/1000B.
  1720. *
  1721. * EXIT (A) .LT. 0 IF CURRENT SIZE + REQUEST LARGER THAN
  1722. * BLOCK SIZE.
  1723. * (A) .GE. 0 IF CURRENT SIZE + REQUEST IS WITHIN BLOCK.
  1724. * (CL - CL+1) = (CURRENT SIZE + REQUEST)/1000B.
  1725. *
  1726. * USES T1, CL - CL+1.
  1727.  
  1728.  
  1729. CRZ SUBR ENTRY/EXIT
  1730. LDD CL+4 FORM NEW TOTAL
  1731. ADD CM+4
  1732. STD CL+1
  1733. SHN -14
  1734. ADD CL+3
  1735. ADD CM+3
  1736. STD CL
  1737. STD T1
  1738. LDD CN+4 COMPARE TO BLOCK SIZE
  1739. SBD CL+1
  1740. PJN CRZ1 IF NO BORROW
  1741. AOD T1 ADJUST FOR BORROW
  1742. CRZ1 LDD CN+3
  1743. SBD T1
  1744. UJN CRZX RETURN
  1745. CSS SPACE 4,10
  1746. ** CSS - CHANGE SCHEDULER STATUS.
  1747. *
  1748. * ENTRY (A) = 0 IF TO ENABLE SCHEDULER.
  1749. * .NE. 0 IF TO DISABLE SCHEDULER.
  1750. *
  1751. * USES CM - CM+4.
  1752. *
  1753. * MACROS MONITOR.
  1754.  
  1755.  
  1756. CSS SUBR ENTRY/EXIT
  1757. ZJN CSS1 IF TO ENABLE
  1758. LDN LIOS&LDOS
  1759. CSS1 LMN LDOS
  1760. STM CSSA SET SUBFUNCTION
  1761. LDN 1
  1762. STD CM+1 SET COUNT
  1763. STD CM+2 SET NO DROP
  1764. LDD MA
  1765. CWM CSSA,ON
  1766. MONITOR UADM
  1767. UJN CSSX RETURN
  1768.  
  1769. CSSA CON LIOS INCREMENT FIELD BY ONE
  1770. * CON LDOS (DECREMENT)
  1771. CON INWL WORD ADDRESS
  1772. CON 13D*100+1 BIT POSITION AND FIELD WIDTH
  1773. CON 0
  1774. CON 0
  1775. DPL SPACE 4,15
  1776. ** DPL - DEADSTART PP AND LOAD *PPR*.
  1777. *
  1778. * ENTRY (T3) = OFFSET INTO PP COMMUNICATION AREA.
  1779. * (T4) = PP NUMBER.
  1780. * (EC) = ELEMENT CONNECT CODE.
  1781. * (PPCA) = PP COMMUNICATION AREA ADDRESS.
  1782. * *PPR* AT PBUF+5.
  1783. *
  1784. * EXIT (A) .GT. 0 IF *PPR* SUCCESSFULLY LOADED.
  1785. * = 0 IF *PPR* NOT SUCCESSFULLY LOADED.
  1786. * BML MESSAGE ISSUED WITH PP NUMBER (SYMPTOM
  1787. * CODE INDICATES WHETHER OPERATION WAS SUCCESSFUL).
  1788. * IF UNABLE TO COMPLETE DEADSTART/LOAD, THE PP
  1789. * IS IDLED AND ITS INPUT REGISTER SET TO ***.
  1790. *
  1791. * USES T1 - T3, T6, T7, CN - CN+4.
  1792. *
  1793. * CALLS IBM, IPP, NEC, PSC, SDC.
  1794. *
  1795. * MACROS DCHAN, DELAY, PAUSE, READMR, WRITMR.
  1796.  
  1797.  
  1798. DPL9 LDD T7
  1799. DCHAN DROP CHANNEL
  1800. LDN 0 CLEAR CHANNEL ASSIGNED FLAG
  1801. STM CHFL
  1802. LDC /COMSDFS/HS0113 SET SYMPTOM CODE
  1803. STD T1
  1804. LDN ZERL CLEAR DATA WORD
  1805. CRD CN
  1806. LDD T4 SET PP NUMBER
  1807. STD CN+4
  1808. LDC /COMSDFS/HM0240 SET MESSAGE ID
  1809. RJM IBM ISSUE BML MESSAGE
  1810. LDN 1 SET SUCCESSFUL LOAD STATUS
  1811.  
  1812. DPL SUBR ENTRY/EXIT
  1813. LDM PPCA SET PP INPUT REGISTER ADDRESS
  1814. RAD T3
  1815. LDN 10 INITIALIZE DEADSTART/LOAD ATTEMPT COUNT
  1816. STD T2
  1817. LDD T3 SET UP *IA*, *OA*, *MA*, *CP* FOR THIS PP
  1818. STM PBUF+IA+5
  1819. ADN 1
  1820. STM PBUF+OA+5
  1821. ADN 1
  1822. STM PBUF+MA+5
  1823. LDN NCPL SET SYSTEM CONTROL POINT ADDRESS
  1824. CRD CN
  1825. AOD CN+1
  1826. SHN 7
  1827. STM PBUF+CP+5
  1828. DPL2 RJM SDC SELECT DEADSTART CHANNEL
  1829. RJM PSC PRESET CHANNEL INSTRUCTIONS
  1830. DPLA ACN **+40 ACTIVATE CHANNEL
  1831.  
  1832. * DEADSTART PP.
  1833.  
  1834. READMR RBUF,,DEMR READ EC REGISTER
  1835. LDM RBUF+4 SET PP NUMBER
  1836. DPLI SCN 37
  1837. * SCN 77 (IF IOU MODEL I2)
  1838. LMD T4
  1839. DPLJ LMN 0
  1840. * LMN 40 (SET AUTO MODE BIT IF IOU MODEL I2)
  1841. STM RBUF+4
  1842. LDM RBUF+5 SET CHANNEL NUMBER
  1843. SCN 37
  1844. LMD T7
  1845. STM RBUF+5
  1846. LDM RBUF+6 SET LOAD MODE BIT
  1847. SCN 37
  1848. ADN 20
  1849. STM RBUF+6
  1850. LDM RBUF+7 SET ENABLE BIT
  1851. SCN 40
  1852. ADN 40
  1853. STM RBUF+7
  1854. WRITMR RBUF,,DEMR WRITE EC REGISTER
  1855. RJM NEC NORMALIZE EC REGISTER
  1856.  
  1857. * LOAD *PPR*.
  1858.  
  1859. LDC MSFW+1 OUTPUT START ADDRESS
  1860. DPLB OAN **+40
  1861. DELAY
  1862. DPLC EJM DPL4,0 IF CHANNEL ACCEPTED WORD
  1863. LJM DPL6 PROCESS TIME OUT
  1864.  
  1865. DPL4 LDC PPFW-1
  1866. DPLD OAM PBUF+6,0 OUTPUT *PPR*
  1867. DPLE SFM DPL6,0 IF PARITY ERRORS
  1868. DPLF DCN **+40 DISCONNECT CHANNEL TO START PP
  1869.  
  1870. * WAIT FOR PP TO INITIALIZE.
  1871. *
  1872. * NOTE - THE DELAY MUST BE LONG ENOUGH TO ALLOW *PPR*
  1873. * PRESET TO COMPLETE (AND ISSUE THE *DPPM* TO CLEAR
  1874. * THE INPUT REGISTER). IF A TIME OUT OCCURS HERE,
  1875. * AND THE PP IS DEADSTARTED AGAIN AFTER IT IS ALREADY
  1876. * EXECUTING, THE RESULTS ARE UNPREDICTABLE.
  1877.  
  1878. LDD TH SET DELAY LOOP COUNT
  1879. STD T6
  1880. DPL5 PAUSE NE
  1881. DELAY
  1882. SOD T6
  1883. ZJN DPL7 IF TIME OUT
  1884. LDD T3 CHECK PP INPUT REGISTER
  1885. CRD CN
  1886. LDD CN+1
  1887. SCN 77
  1888. SHN 6
  1889. LMD CN
  1890. LMC 3RP*V
  1891. ZJN DPL5 IF PP STILL ASSIGNED TO NOS/VE
  1892. LJM DPL9 RETURN
  1893.  
  1894. * PROCESS TIME OUT AND PARITY ERRORS.
  1895.  
  1896. DPL6 BSS 0
  1897. DPLG DCN **+40 DISCONNECT CHANNEL
  1898. DPL7 LDD T7
  1899. DCHAN DROP CHANNEL
  1900. LDN 0 CLEAR CHANNEL RESERVED FLAG
  1901. STM CHFL
  1902. SOD T2 DECREMENT DEADSTART ATTEMPT COUNT
  1903. ZJN DPL8 IF DEADSTART NOT TO BE RETRIED
  1904. LJM DPL2 ATTEMPT DEADSTART AGAIN
  1905.  
  1906. * IDLE PP AND SET UNUSABLE IF UNABLE TO DEADSTART.
  1907.  
  1908. DPL8 LDC /COMSDFS/HS0120 SET SYMPTOM CODE
  1909. STD T1
  1910. LDN ZERL CLEAR DATA WORD
  1911. CRD CN
  1912. LDD T4 SET PP NUMBER
  1913. STD CN+4
  1914. LDC /COMSDFS/HM0240 SET MESSAGE ID
  1915. RJM IBM ISSUE BML MESSAGE
  1916. RJM IPP IDLE PP
  1917. LDD T3
  1918. CWM DPLH,ON SET INPUT REGISTER TO ***
  1919. LDN 0
  1920. LJM DPLX RETURN
  1921.  
  1922. DPLH VFD 18/3R***,42/0 INPUT REGISTER OF UNUSABLE PP
  1923. GCC SPACE 4,10
  1924. ** GCC - GET CURRENT NUMBER OF NOS/VE CM WORDS.
  1925. *
  1926. * ENTRY (EIBA - EIBA+1) = *EICB* ADDRESS.
  1927. *
  1928. * EXIT (CM+3 - CM+4) = NUMBER OF NOS/VE CM WORDS/1000B.
  1929. * (CN - CN+4) = WORD *D7CM* FROM *EICB*.
  1930. *
  1931. * USES T1, CM - CM+4, CN - CN+4.
  1932. *
  1933. * CALLS SEA.
  1934.  
  1935.  
  1936. GCC SUBR ENTRY/EXIT
  1937. RJM SEA SET *EICB* FWA
  1938. ADN D7CM
  1939. CRD CN READ *D7CM*
  1940. ADN 1
  1941. CRD CM READ CURRENT FWA/LWA+1
  1942. LDD CM+1 SUBTRACT TO FIND CURRENT NOS/VE CM
  1943. STD T1
  1944. LDD CM+4
  1945. SBD CM+2
  1946. STD CM+4
  1947. PJN GCC1 IF NO BORROW
  1948. AOD T1 ADJUST FOR BORROW
  1949. AOD CM+4
  1950. GCC1 LDD CM+3
  1951. SBD T1
  1952. STD CM+3
  1953. UJN GCCX RETURN
  1954. GCP SPACE 4,10
  1955. ** GCP - GET CURRENT STATUS OF PP-S.
  1956. *
  1957. * ENTRY (PPCA) = ADDRESS OF PP COMMUNICATION AREA.
  1958. *
  1959. * EXIT (T4) = NUMBER OF NOS/VE RESERVED PP-S.
  1960. * (T1) = NUMBER OF PSEUDO-ASSIGNED TO NOS/VE PP-S.
  1961. * (T5) = NUMBER OF DEDICATED PP-S.
  1962. * (CM+2) = NUMBER OF PP-S IN SYSTEM.
  1963. *
  1964. * USES T1, T2, T3, T4, T5, T7, CM - CM+4, CN - CN+4.
  1965.  
  1966.  
  1967. GCP SUBR ENTRY/EXIT
  1968. LDN PPUL GET NUMBER OF PP-S IN SYSTEM
  1969. CRD CM
  1970. LDD CM+2
  1971. STD T2
  1972. LDM PPCA GET PP COMMUNICATION AREA POINTER
  1973. STD T3
  1974. LDN 0
  1975. STD T1 INITIALIZE COUNT OF PSEUDO-ASSIGNED PP-S
  1976. STD T4 INITIALIZE COUNT OF NOS/VE PP-S
  1977. STD T5 INITIALIZE COUNT OF DEDICATED PP-S
  1978. GCP1 LDN 0 INITIALIZE TABLE INDEX
  1979. STD T7
  1980. LDD T3 READ NEXT INPUT REGISTER
  1981. CRD CN
  1982. GCP2 LDD CN CHECK FOR DEDICATED PP
  1983. LMM TDPP,T7
  1984. NJN GCP3 IF NO MATCH
  1985. LDD CN+1
  1986. SCN 77
  1987. LMM TDPP+1,T7
  1988. NJN GCP3 IF NO MATCH
  1989. AOD T5 COUNT DEDICATED PP
  1990. LDD T7
  1991. NJN GCP4 IF NOT NOS/VE PP
  1992. AOD T4 COUNT NOS/VE PP
  1993. LDD CN+4
  1994. ZJN GCP4 IF NOT PSEUDO-ASSIGNED
  1995. AOD T1 COUNT PSEUDO-ASSIGNED PP
  1996. UJN GCP4 READ NEXT INPUT REGISTER
  1997.  
  1998. GCP3 LDN 2 INCREMENT INDEX
  1999. RAD T7
  2000. SBN TDPPL
  2001. MJN GCP2 IF NOT END OF TABLE
  2002. GCP4 LDN 10 ADVANCE TO NEXT INPUT REGISTER
  2003. RAD T3
  2004. SOD T2
  2005. NJN GCP1 IF MORE PP-S TO PROCESS
  2006. LJM GCPX RETURN
  2007. TDPP SPACE 4,10
  2008. ** TDPP - TABLE OF DEDICATED PP-S.
  2009. *
  2010. * TWO WORD ENTRY.
  2011. *
  2012. *T, 18/NAME OF DEDICATED PP ROUTINE, 6/0
  2013. *
  2014. * NOTE - **VP* MUST BE THE FIRST ENTRY IN THE TABLE.
  2015.  
  2016.  
  2017. TDPP BSS 0 TABLE OF DEDICATED PP-S
  2018. VFD 24/3L*VP NOS/VE PP
  2019. VFD 24/0LMTR
  2020. VFD 24/0LDSD
  2021. VFD 24/0LDIS
  2022. VFD 24/0LO26
  2023. VFD 24/0L1CD
  2024. VFD 24/0L1HP
  2025. VFD 24/0L1XM
  2026. VFD 24/0L1TS
  2027. VFD 24/0L1TN
  2028. VFD 24/0L1TM
  2029. VFD 24/0LPIP
  2030. VFD 24/0LNDR
  2031. VFD 24/0LDFT
  2032. VFD 24/0LSCD
  2033. VFD 24/0LSCI
  2034. VFD 24/0LCPD
  2035. VFD 24/0LMDD
  2036. VFD 24/0LMTE
  2037. VFD 24/3L***
  2038.  
  2039. TDPPL EQU *-TDPP LENGTH OF DEDICATED PP TABLE
  2040. IPP SPACE 4,15
  2041. ** IPP - IDLE PP.
  2042. *
  2043. * ENTRY (T3) = PP INPUT REGISTER ADDRESS.
  2044. * (PPCA) = PP COMMUNICATION AREA ADDRESS.
  2045. * (EC) = ELEMENT CONNECT CODE FOR IDLE PP.
  2046. *
  2047. * EXIT (A) = 0 IF PP IDLED.
  2048. * .LT. 0 IF UNABLE TO IDLE.
  2049. * (T5) = PP NUMBER.
  2050. * BML MESSAGE ISSUED IF UNABLE TO IDLE.
  2051. *
  2052. * USES T1, T2, T5, CN - CN+4.
  2053. *
  2054. * CALLS IBM, NEC.
  2055. *
  2056. * MACROS DELAY, LOCKMR, PAUSE, READMR, WRITMR.
  2057.  
  2058.  
  2059. IPP SUBR ENTRY/EXIT
  2060. LDD T3 COMPUTE NUMBER OF PP
  2061. SBM PPCA
  2062. SHN -3
  2063. STD T5
  2064. SBN 12
  2065. MJN IPP1 IF PP NUMBER .LT. 12
  2066. ADN 12+6
  2067. STD T5
  2068. IPP1 READMR RBUF,,DEMR READ EC REGISTER
  2069. LDM RBUF+4 SET PP NUMBER
  2070. IPPA SCN 37
  2071. * SCN 77 (IF IOU MODEL I2)
  2072. LMD T5
  2073. IPPB LMN 0
  2074. * LMN 40 (SET AUTO MODE BIT IF IOU MODEL I2)
  2075. STM RBUF+4
  2076. LDM RBUF+6 SET IDLE MODE BIT, K REGISTER (10B)
  2077. SCN 37
  2078. ADN 6
  2079. STM RBUF+6
  2080. LDM RBUF+7 SET ENABLE BIT
  2081. SCN 40
  2082. ADN 40
  2083. STM RBUF+7
  2084. LDN 10 INITIALIZE TIME OUT COUNT
  2085. STD T2
  2086.  
  2087. * LOOP UNTIL PP IS IDLED.
  2088.  
  2089. IPP2 LOCKMR SET GET LONG TERM INTERLOCK
  2090. WRITMR RBUF,,DEMR WRITE EC REGISTER
  2091. READMR IBUF,,ISTR READ INPUT STATUS REGISTER
  2092. LOCKMR CLEAR CLEAR LONG TERM INTERLOCK
  2093. LDM IBUF+4 CHECK IF PP IN IDLE MODE
  2094. LPN 3
  2095. SHN 10
  2096. ADM IBUF+5
  2097. SHN 10
  2098. ADM IBUF+6
  2099. LMC 107700
  2100. ZJP IPP4 IF PP IDLING
  2101. SOD T2
  2102. ZJN IPP3 IF TIME OUT
  2103. PAUSE NE
  2104. DELAY
  2105. LJM IPP2 LOOP
  2106.  
  2107. * ISSUE BML MESSAGE.
  2108.  
  2109. IPP3 LDC /COMSDFS/HS0121 SET SYMPTOM CODE
  2110. STD T1
  2111. LDN ZERL CLEAR DATA WORD
  2112. CRD CN
  2113. LDD T5 SET PP NUMBER
  2114. STD CN+4
  2115. LDC /COMSDFS/HM0240 SET MESSAGE ID
  2116. RJM IBM ISSUE BML MESSAGE
  2117. LDD T3 SET *** IN INPUT REGISTER
  2118. CWM DPLH,ON
  2119. RJM NEC NORMALIZE EC REGISTER
  2120. LCN 1
  2121. LJM IPPX RETURN
  2122.  
  2123. * NORMALIZE EC REGISTER.
  2124.  
  2125. IPP4 RJM NEC NORMALIZE EC REGISTER
  2126. LDN 0
  2127. LJM IPPX RETURN
  2128. PSC SPACE 4,10
  2129. ** PSC - PRESET CHANNEL INSTRUCTIONS.
  2130. *
  2131. * ENTRY (T7) = CHANNEL NUMBER.
  2132. *
  2133. * EXIT CHANNEL INSTRUCTIONS MODIFIED.
  2134. *
  2135. * USES T1, T5.
  2136.  
  2137.  
  2138. PSC SUBR ENTRY/EXIT
  2139. LDC TPSC-1 INITIALIZE CHANNEL TABLE ADDRESS
  2140. STD T1
  2141. PSC1 AOD T1 ADVANCE CHANNEL TABLE
  2142. LDI T1
  2143. ZJN PSCX IF END OF TABLE
  2144. STD T5 MODIFY CHANNEL INSTRUCTION
  2145. LDI T5
  2146. SCN 37
  2147. LMD T7
  2148. STI T5
  2149. UJN PSC1 LOOP
  2150.  
  2151.  
  2152. ** TPSC - TABLE OF CHANNEL INSTRUCTIONS.
  2153.  
  2154. TPSC BSS 0
  2155. CON DPLA
  2156. CON DPLB
  2157. CON DPLC
  2158. CON DPLD
  2159. CON DPLE
  2160. CON DPLF
  2161. CON DPLG
  2162. CON MREA
  2163. CON 0 END OF TABLE
  2164. RDM SPACE 4,10
  2165. ** RDM - RETURN DYNAMIC MEMORY.
  2166. *
  2167. * ENTRY (CN - CN+1) = CURRENT NOS/VE MEMORY/1000B.
  2168. * (CM+3 - CM+4) = AMOUNT TO RETURN/1000B.
  2169. * (CL - CL+1) = NEW NOS/VE MEMORY SIZE/1000B.
  2170. * (CN+3 - CN+4) = RESERVED BLOCK SIZE/1000B.
  2171. *
  2172. * USES T1 - T1+4, T6, T7.
  2173. *
  2174. * CALLS RST, SBA.
  2175.  
  2176.  
  2177. RDM SUBR ENTRY/EXIT
  2178. LDD CN+3
  2179. STD T1
  2180. LDD CL+1
  2181. SBD CN+4
  2182. PJN RDM1 IF NO BORROW
  2183. AOD T1 ADJUST FOR BORROW
  2184. RDM1 LDD CL
  2185. SBD T1
  2186. MJN RDM2 IF NEW TOTAL WITHIN BLOCK
  2187. LDD CM+3 RETURN ENTIRE REQUEST
  2188. STD T6
  2189. LDD CM+4
  2190. STD T7
  2191. UJN RDM4 RETURN MEMORY
  2192.  
  2193. RDM2 LDD CN+3
  2194. STD T1
  2195. LDD CN+1
  2196. SBD CN+4
  2197. STD T7
  2198. PJN RDM3 IF NO BORROW
  2199. AOD T1 ADJUST FOR BORROW
  2200. AOD T7
  2201. RDM3 LDD CN
  2202. SBD T1
  2203. STD T6
  2204. MJN RDMX IF NO DYNAMIC MEMORY ASSIGNED
  2205. RDM4 LDC UEML CHECK FOR UEM PRESENT
  2206. CRD T1
  2207. LDD T1+4
  2208. LPN 2
  2209. NJN RDM5 IF UEM PRESENT
  2210. RJM SBA SET OS BOUNDS ADDRESS
  2211. RDM5 LDD HN RETURN MEMORY
  2212. RJM RST
  2213. LJM RDMX RETURN
  2214. ROJ SPACE 4,10
  2215. ** ROJ - ROLLOUT JOBS.
  2216. *
  2217. * ENTRY (BS) = MEMORY REQUIRED THAT WAS UNAVAILABLE.
  2218. * SCHEDULER DISABLED BIT SET IN *INWL*.
  2219. *
  2220. * EXIT (A) .LT. 0 IF ROLLOUTS WILL NOT MAKE THE REQUIRED
  2221. * AMOUNT OF MEMORY AVAILABLE.
  2222. *
  2223. * USES DB, DC, CM - CM+4.
  2224. *
  2225. * CALLS CAM, SRR.
  2226. *
  2227. * MACROS MONITOR.
  2228.  
  2229.  
  2230. ROJ4 LCN 0 INDICATE INSUFFICIENT MEMORY OBTAINED
  2231.  
  2232. ROJ SUBR ENTRY/EXIT
  2233. ROJ1 PAUSE NE
  2234. LDK JSCL WAIT FOR SCHEDULER NOT ACTIVE
  2235. CRD CM
  2236. LDD CM
  2237. SHN 21-13
  2238. MJN ROJ1 IF SCHEDULER ACTIVE
  2239. RJM CAM CALCULATE AVAILABLE MEMORY
  2240.  
  2241. * ROLLOUT JOBS.
  2242.  
  2243. ROJ2 SOD DB DECREMENT CP/PCP NUMBER
  2244. ZJN ROJ4 IF ALL CP-S/PCP-S PROCESSED
  2245. LDM TCFL,DB
  2246. ZJN ROJ2 IF CP/PCP UNASSIGNED
  2247. SHN 21-13
  2248. MJN ROJ3 IF ROLLOUT ALREADY REQUESTED
  2249. RJM SRR REQUEST ROLLOUT
  2250. MJN ROJ2 IF REQUEST REJECTED
  2251. ROJ3 LDM TCFL,DB
  2252. LPC 3777
  2253. RAD DC ADD TO AVAILABLE MEMORY
  2254. SHN -3
  2255. SBD BS
  2256. PJN ROJX IF ENOUGH CM AVAILABLE
  2257. UJN ROJ2 PROCESS NEXT CP/PCP
  2258. RST SPACE 4,10
  2259. ** RST - REQUEST STORAGE.
  2260. *
  2261. * ENTRY (A) = 0 IF REQUEST MEMORY.
  2262. * = 100 IF RETURN MEMORY.
  2263. * (T6 - T7) = MEMORY TO REQUEST OR RETURN/1000B.
  2264. *
  2265. * EXIT (A) = MEMORY UNAVAILABLE/1000B IF UNABLE TO OBTAIN
  2266. * TOTAL REQUEST.
  2267. * MEMORY IS ASSIGNED TO OR RELEASED FROM NOS/VE AND
  2268. * *MABL* IS UPDATED TO REFLECT THE NEW MACHINE FL
  2269. * FOR NOS.
  2270. *
  2271. * USES BS, NC, T2, T6, T7, CM - CM+4.
  2272. *
  2273. * CALLS CSS, ROJ.
  2274. *
  2275. * MACROS MONITOR, PAUSE.
  2276.  
  2277.  
  2278. RST5 RJM CSS ENABLE SCHEDULER
  2279. LDN 0
  2280.  
  2281. RST SUBR ENTRY/EXIT
  2282. ADC LDNI
  2283. ERRNZ LDNI+100-LCNI CODE DEPENDS ON VALUE
  2284. STM RSTA
  2285. LDC 377 SET MAXIMUM BLOCK SIZE
  2286. STD BS
  2287. LDK NCPL SET SYSTEM CP NUMBER
  2288. CRD CM
  2289. AOD CM+1
  2290. STD NC
  2291. LDN 1
  2292. RJM CSS DISABLE SCHEDULER
  2293. RST1 LDD T6 CHECK REMAINING REQUEST
  2294. SHN 14
  2295. LMD T7
  2296. ZJN RST5 IF NO MORE REQUIRED
  2297. SBD BS
  2298. MJN RST2 IF .LT. 131K REQUIRED
  2299. STD T7 SAVE REMAINING REQUEST
  2300. SHN -14
  2301. STD T6
  2302. UJN RST3 REQUEST 131K
  2303.  
  2304. RST2 RAD BS
  2305. LDN 0 CLEAR REMAINING REQUEST
  2306. STD T6
  2307. STD T7
  2308. RST3 LDN 0
  2309. RSTA EQU RST3
  2310. * LCN 0 (RETURNING MEMORY)
  2311. LMD BS
  2312. SHN 3 SET REQUEST / 100B
  2313. STD CM+1
  2314. LDC 200 SET NOS/VE TYPE
  2315. STD CM+2
  2316. MONITOR RSTM REQUEST STORAGE
  2317. LDD CM+1
  2318. ZJN RST1 IF REQUEST HONORED
  2319. RJM ROJ
  2320. PJN RST3 IF MEMORY AVAILABLE
  2321. LDN 0 ENABLE SCHEDULER
  2322. RJM CSS
  2323. LDD T6 SET AMOUNT UNAVAILABLE
  2324. SHN 14
  2325. ADD T7
  2326. ADD BS
  2327. LJM RSTX RETURN
  2328. SBA SPACE 4,10
  2329. ** SBA - SET OS BOUNDS ADDRESS.
  2330. *
  2331. * ENTRY (CL - CL+1) = NEW NOS/VE SIZE/1000B.
  2332. * (EC) = IOU CONNECT CODE.
  2333. * *UEM* MUST NOT BE DEFINED FOR *NOS*.
  2334. *
  2335. * EXIT PP OS BOUNDS ADDRESS SET TO FWA OF NOS/VE CM.
  2336. *
  2337. * USES T1, T2, T3, CN - CN+4.
  2338. *
  2339. * CALLS SEA.
  2340. *
  2341. * MACROS LOCKMR, READMR, WRITMR.
  2342.  
  2343.  
  2344. SBA SUBR ENTRY/EXIT
  2345. LOCKMR SET
  2346. READMR RBUF,,IOSB FETCH CURRENT OS BOUNDS DATA
  2347. RJM SEA READ LWA+1 OF NOS/VE CM
  2348. ADN D7CM+1
  2349. CRD CN
  2350. LDD CL CALCULATE NEW FWA OF NOS/VE CM
  2351. STD T1
  2352. LDD CN+4
  2353. SBD CL+1
  2354. STD T2
  2355. PJN SBA1 IF NO BORROW
  2356. AOD T1 ADJUST FOR BORROW
  2357. AOD T2
  2358. SBA1 LDD CN+3
  2359. SBD T1
  2360. STD T1
  2361. ZJN SBA2 IF ADDRESS/1000B = 0XXXXB (.LT. 16MB)
  2362. LDN 1 SET ADDRESS/1000B TO 10000B (16MB)
  2363. STD T1
  2364. LDN 0
  2365. STD T2
  2366. SBA2 LDD T2 FORM OS BOUNDS ADDRESS/2000B
  2367. SHN -1
  2368. STM RBUF+7
  2369. SHN -8D
  2370. STD T2
  2371. LDD T1
  2372. SHN 3
  2373. LMD T2
  2374. STM RBUF+6
  2375. READMR IBUF,,DEMR READ EC REGISTER
  2376. LDM IBUF+7 CLEAR OS BOUNDS ENABLE
  2377. STD T2
  2378. SCN 10
  2379. STM IBUF+7
  2380. WRITMR IBUF
  2381. SBAA UJN SBA3 (NO CPP-S IN SYSTEM OR MODEL 42 IOU)
  2382. * PSN (CPP-S IN SYSTEM AND NOT MODEL 42 IOU)
  2383. READMR MBUF,,ECCR READ CIO EC REGISTER
  2384. LDM MBUF+7 CLEAR OS BOUNDS ENABLE
  2385. STD T3
  2386. SCN 10
  2387. STM MBUF+7
  2388. WRITMR MBUF
  2389. SBA3 WRITMR RBUF,,IOSB WRITE NEW OS BOUNDS
  2390. LDD T2 RESTORE EC REGISTER
  2391. STM IBUF+7
  2392. WRITMR IBUF,,DEMR
  2393. SBAB UJN SBA4 (NO CPP-S IN SYSTEM OR IOU MODEL 42)
  2394. * PSN (CPP-S IN SYSTEM AND NOT IOU MODEL 42)
  2395. LDD T3 RESTORE EC REGISTER
  2396. STM MBUF+7
  2397. WRITMR MBUF,,ECCR
  2398. SBA4 LOCKMR CLEAR
  2399. LJM SBAX RETURN
  2400. SDA SPACE 4,10
  2401. ** SDA - SET *EICB* CM ADDRESSES.
  2402. *
  2403. * ENTRY (CL - CL+1) = NUMBER OF CM WORDS/1000B TO BE RESERVED
  2404. * FOR NOS/VE.
  2405. * (EIBA - EIBA+1) = *EICB* ADDRESS.
  2406. *
  2407. * EXIT (CN - CN+4) = WORD *D7CM* OF *EICB*.
  2408. * = 12/0, 24/FWA/1000B, 24/LWA+1/1000B.
  2409. *
  2410. * USES T1, CN - CN+4.
  2411. *
  2412. * CALLS SEA.
  2413.  
  2414.  
  2415. SDA SUBR ENTRY/EXIT
  2416. RJM SEA GET CURRENT CM ADDRESSES FROM *EICB*
  2417. ADN D7CM+1
  2418. CRD CN
  2419. LDD CL SUBTRACT NEW TOTAL FROM LWA+1
  2420. STD T1
  2421. LDD CN+4
  2422. SBD CL+1
  2423. STD CN+2 SET NEW FWA
  2424. PJN SDA1 IF NO BORROW
  2425. AOD T1 ADJUST FOR BORROW
  2426. AOD CN+2
  2427. SDA1 LDD CN+3
  2428. SBD T1
  2429. STD CN+1
  2430. RJM SEA WRITE NEW CM ADDRESSES TO *EICB*
  2431. ADN D7CM+1
  2432. CWD CN
  2433. UJN SDAX RETURN
  2434. SPB SPACE 4,15
  2435. ** SPB - SET PP BOUNDS BIT.
  2436. *
  2437. * ENTRY (A) = 6/BIT VALUE, 12/PP NUMBER.
  2438. * BIT VALUE = 1 TO SET LOWER PP.
  2439. * = 0 TO SET UPPER PP.
  2440. * (EC) = IOU CONNECT CODE.
  2441. * (SPBA) = BARREL CONFIGURATION.
  2442. * (SPBB) = NUMBER OF BARRELS.
  2443. *
  2444. * EXIT PP OS BOUNDS REGISTER SET FOR GIVEN PP.
  2445. *
  2446. * USES T2, T7.
  2447. *
  2448. * MACROS LOCKMR, READMR, WRITMR.
  2449.  
  2450.  
  2451. SPB SUBR ENTRY/EXIT
  2452. STD T7 SAVE LOGICAL PP NUMBER
  2453. SHN -14
  2454. STM SPBE SAVE BOUNDS BIT VALUE
  2455. LDN 0
  2456. STD T2
  2457. LDD T7
  2458. SBN 20
  2459. MJN SPB1 IF IN LOWER 10 PP-S
  2460. STD T7
  2461. AOD T2
  2462. AOD T2
  2463. SPB1 LDD T7
  2464. SBN 5
  2465. MJN SPB2 IF IN LOWER BARREL OF THE TWO
  2466. STD T7
  2467. AOD T2
  2468. SPB2 LDD T2
  2469. SPBA ADN **
  2470. * ADN 0 (BARREL RECONFIGURATION)
  2471. * ADN 1
  2472. * ADN 2
  2473. * ADN 3
  2474. STD T2
  2475. SPBB SBN **
  2476. * SBN 1 (NUMBER OF BARRELS)
  2477. * SBN 2
  2478. * SBN 3
  2479. * SBN 4
  2480. MJN SPB3 IF NO OVERFLOW
  2481. STD T2
  2482. ERRNZ SHNI-1000 CANNOT USE DIRECT CELL *TH*
  2483. SPB3 LDD TH SET SHIFT COUNT
  2484. ADD T7
  2485. STM SPBC
  2486. STM SPBF
  2487. LOCKMR SET
  2488. READMR RBUF,,IOSB READ CURRENT OS BOUNDS DATA
  2489. LDM RBUF,T2
  2490. STM SPBD
  2491. LCN 1
  2492. SPBC SHN **
  2493. LPC **
  2494. SPBD EQU *-1
  2495. STM RBUF,T2
  2496. LDC **
  2497. SPBE EQU *-1
  2498. SPBF SHN **
  2499. LMM RBUF,T2 ADD NEW BIT TO REGISTER DATA
  2500. STM RBUF,T2
  2501. WRITMR RBUF SET NEW OS BOUNDS REGISTER
  2502. LOCKMR CLEAR
  2503. LJM SPBX RETURN
  2504. VPN SPACE 4,10
  2505. ** VPN - VALIDATE PP NUMBER.
  2506. *
  2507. * ENTRY (A) = PP NUMBER.
  2508. * (DA) = NUMBER OF SYSTEM PP-S.
  2509. *
  2510. * EXIT (A) = 0, IF ASSIGNED TO NOS/VE.
  2511. * = *ESIR*, IF INCORRECT NUMBER.
  2512. * = *ESPP*, IF NOT ASSIGNED TO NOS/VE.
  2513. * (T3) = PP OFFSET INTO COMMUNICATION AREA.
  2514. * (T4) = PP NUMBER.
  2515. * (CM - CM+4) = INPUT REGISTER.
  2516. *
  2517. * USES T3, T4, CM - CM+4.
  2518.  
  2519.  
  2520. VPN3 LDD T4
  2521. VPN4 SHN 3
  2522. STD T3
  2523. LDM PPCA CHECK IF ASSIGNED TO NOS/VE
  2524. ADD T3
  2525. CRD CM
  2526. LDD CM+1
  2527. SCN 77
  2528. SHN 6
  2529. LMD CM
  2530. LMC 3RP*V
  2531. ZJN VPNX IF ASSIGNED TO NOS/VE
  2532. LDN ESPP SET ERROR CODE
  2533.  
  2534. VPN SUBR ENTRY/EXIT
  2535. STD T4
  2536. SBN 10D
  2537. MJN VPN3 IF LOWER BANK PP
  2538. LDD DA
  2539. SBN 11D
  2540. PJN VPN2 IF UPPER PP-S EXIST ON SYSTEM
  2541. VPN1 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  2542. UJN VPNX RETURN
  2543.  
  2544. VPN2 LDD T4
  2545. SBN 20
  2546. MJN VPN1 IF 12 .LE. PP NUMBER .LE. 17
  2547. ADC 20-32
  2548. PJN VPN1 IF PP NUMBER .GT. 31
  2549. ADN 32-6
  2550. LJM VPN4 RETURN
  2551. SPACE 4,10
  2552. ** CODE PAST THIS POINT MAY BE OVERLAID BY *PBUF*.
  2553. *
  2554. * *PBUF* IS USED ONLY FOR THE *RPP* FUNCTION.
  2555. * *PBUF* MUST HAVE TWO RESERVED WORDS PRECEEDING IT FOR DISK
  2556. * LINKAGE BYTES.
  2557.  
  2558. ERRNG PBUF-*-2 ERROR IF PBUF OVERLAYS EARLIER CODE
  2559. TITLE SUBROUTINES OVERLAYABLE BY *PBUF*.
  2560. DCA SPACE 4,10
  2561. ** DCA - DETERMINE CHANNEL AVAILABILITY.
  2562. *
  2563. * ENTRY (T2) = CHANNEL NUMBER.
  2564. * (RBUF - RBUF+NCTAL*5) = CHANNEL STATUS TABLE.
  2565. *
  2566. * EXIT (A) = 0 IF CHANNEL PREVIOUSLY ASSIGNED.
  2567. * (CM+1) .NE. 0 IF CHANNEL ASSIGNED.
  2568. *
  2569. * USES T3, T4, CM - CM+4.
  2570. *
  2571. * CALLS SEC, VRC.
  2572. *
  2573. * MACROS MONITOR.
  2574.  
  2575.  
  2576. DCA SUBR ENTRY/EXIT
  2577. LDM RBUF,T2
  2578. SHN 21-5
  2579. PJN DCA1 IF CHANNEL IS UP
  2580. LJM DCA8 CHECK EQUIPMENT ON DOWN CHANNEL
  2581.  
  2582. * CHANNEL IS UP. SEARCH FOR EQUIPMENT CONFIGURED ON IT.
  2583.  
  2584. DCA1 LDD T2 CHECK IF CONSOLE CHANNEL
  2585. LMN CHDS
  2586. ZJN DCA4 IF CONSOLE CHANNEL
  2587. LDD T2
  2588. SBN 20
  2589. MJN DCA2 IF CHANNEL 0-17B
  2590. SBN 40-20
  2591. PJN DCA4 IF CHANNEL ABOVE 37B
  2592. DCA2 ADN 4
  2593. PJN DCA4 IF REQUESTED 14B-17B OR OVER 33B
  2594. DCA3 LDD LE
  2595. RJM SEC SEARCH FOR EQUIPMENT ON THIS CHANNEL
  2596. ZJN DCA6 IF NO EQUIPMENT FOUND
  2597. DCA4 LDN 0 SET CHANNEL NOT ASSIGNED
  2598. STD CM+1
  2599. LDN 1
  2600. DCA5 UJN DCAX RETURN
  2601.  
  2602. DCA6 STD CM+1 CLEAR EST ORDINAL
  2603. STD CM+4 CLEAR MUX FLAG
  2604. LDN DNCS SET SUBFUNCTION
  2605. STD CM+2
  2606. LDD T2 SET CHANNEL NUMBER
  2607. STD CM+3
  2608. MONITOR SEQM DOWN UNCONFIGURED CHANNEL
  2609. DCA7 RJM VRC VE RESERVE CHANNEL
  2610. LDD T4
  2611. UJN DCA5 RETURN
  2612.  
  2613. * CHANNEL IS DOWN. CHECK FOR NON-TRANSFERRABLE EQUIPMENT.
  2614.  
  2615. DCA8 LDD LE
  2616. DCA9 RJM SEC SEARCH FOR EQUIPMENT ON THIS CHANNEL
  2617. PJN DCA7 IF NO EQUIPMENT FOUND
  2618. LDN 0 INITIALIZE TABLE INDEX
  2619. STD T4
  2620. DCA10 LDM TEQT,T4
  2621. ZJN DCA3 IF END OF TABLE
  2622. LMD CM+3
  2623. LPC 3777
  2624. ZJN DCA9 IF EQUIPMENT IS TRANSFERRABLE
  2625. AOD T4
  2626. UJN DCA10 CHECK NEXT TABLE ENTRY
  2627.  
  2628. TEQT SPACE 4,10
  2629. ** TEQT - TABLE OF TRANSFERRABLE EQUIPMENT.
  2630. *
  2631. * ONE WORD ENTRY.
  2632. *
  2633. *T 12/2RMN
  2634. * MN = MNEMONIC OF EQUIPMENT THAT MAY BE TRANSFERRED TO NOS/VE.
  2635.  
  2636.  
  2637. TEQT BSS 0 TABLE OF TRANSFERRABLE EQUIPMENT
  2638. VFD 12/2RAT
  2639. VFD 12/2RCT
  2640. VFD 12/2RMT
  2641. VFD 12/2RNT
  2642. VFD 12/2RDJ
  2643. VFD 12/2RDL
  2644. VFD 12/2RDM
  2645. VFD 12/2RDQ
  2646. VFD 12/0 END OF TABLE
  2647. SEC SPACE 4,15
  2648. ** SEC - SEARCH FOR EQUIPMENT ON SPECIFIED CHANNEL.
  2649. *
  2650. * ENTRY (A) = EST ORDINAL+1 FROM WHICH TO START SEARCH.
  2651. * = 0 IF (T3) = STARTING EST ORDINAL+1.
  2652. * (T2) = CHANNEL NUMBER.
  2653. *
  2654. * EXIT (A) = 0 IF NONE FOUND.
  2655. * = (T3) = EST ORDINAL OF EQUIPMENT FOUND.
  2656. * (CM - CM+4) = EST ENTRY WORD *EQDE*.
  2657. *
  2658. * USES T1, T2, CM - CM+4.
  2659. *
  2660. * MACROS SFA.
  2661.  
  2662.  
  2663. SEC3 LDD T3 RETURN EST ORDINAL
  2664.  
  2665. SEC SUBR ENTRY/EXIT
  2666. ZJN SEC1 IF NOT INITIAL CALL
  2667. STD T3 SAVE EST ORDINAL
  2668. SEC1 SOD T3 DECREMENT EST ORDINAL
  2669. SBN NOPE-1
  2670. ZJN SECX IF END OF EST
  2671. SFA EST,T3
  2672. ADK EQDE
  2673. CRD CM READ EST ENTRY
  2674. LDD CM+3
  2675. ZJN SEC1 IF NULL ENTRY
  2676. LMC 2RDE
  2677. ZJN SEC1 IF *DE* EQUIPMENT
  2678. LDN CM
  2679. STD T1
  2680. SEC2 AOD T1
  2681. LMN CM+3
  2682. ZJN SEC1 IF BOTH CHANNELS CHECKED
  2683. LDI T1
  2684. ZJN SEC2 IF CHANNEL NOT PRESENT
  2685. LMD T2
  2686. LPN 77
  2687. ZJN SEC3 IF CHANNEL MATCH
  2688. UJN SEC2 CHECK NEXT CHANNEL
  2689. SRR SPACE 4,10
  2690. ** SRR - SET ROLLOUT REQUEST.
  2691. *
  2692. * ENTRY (DB) = NUMBER OF CP/PCP TO ROLL.
  2693. *
  2694. * EXIT (A) .GE. 0 IF ROLLOUT REQUEST ACCEPTED.
  2695. *
  2696. * USES T1, CM - CM+4.
  2697. *
  2698. * MACROS DELAY, MONITOR, PAUSE.
  2699.  
  2700.  
  2701. SRR2 PAUSE NE
  2702. DELAY 1*8D 1 MS DELAY
  2703. SOD T1 DECREMENT RETRY COUNT
  2704. PJN SRR1 IF NOT END OF RETRIES
  2705.  
  2706. SRR SUBR ENTRY/EXIT
  2707. LDD HN SET RETRY LIMIT
  2708. STD T1
  2709. SRR1 LDD DB SET CP/PCP NUMBER IN *ROCM* REQUEST
  2710. STD CM+2
  2711. LDC 4000+ROSR SELECT ALTERNATE CP/PCP, SCHEDULER ROLLOUT
  2712. STD CM+1
  2713. MONITOR ROCM ROLLOUT JOB
  2714. LDD CM+1
  2715. NJN SRR2 IF REQUEST REJECTED
  2716. UJN SRRX RETURN
  2717. TITLE PRESET.
  2718. PRS SPACE 4,10
  2719. ** PRS - PRESET VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
  2720. *
  2721. * EXIT (PB - PB+4) = FIRST WORD OF PARAMETER BLOCK.
  2722. * (VERA) = FUNCTION PROCESSOR ADDRESS.
  2723. * (A) = 0 IF DUAL STATE ENABLED.
  2724. * = ERROR CODE IF DUAL STATE NOT ENABLED.
  2725. * (EC) = IOU CONNECT CODE.
  2726. * (CF) .NE. 0, IF CYBER 180-810/830 WITH 20 PP-S.
  2727. * = 0 FOR ALL OTHER CONFIGURATIONS.
  2728. * (LE) = LAST EST ORDINAL.
  2729. * (CAMA) = NUMBER OF CP-S + PCP-S + 2.
  2730. * (SEAA - SEAA+1) = FWA OF *EICB*.
  2731. * (NEJT) = NOS/VE EJT ORDINAL.
  2732. * (CHAA - CHAA+1) = (SCHA - SCHA+1) = (TCHA - TCHA+1) =
  2733. * FWA OF CHANNEL EJT ASSIGNMENT TABLE.
  2734. * (PPCA) = ADDRESS OF PP COMMUNICATION AREA.
  2735. * CALLER AND PARAMETER BLOCK VALIDATED.
  2736. *
  2737. * ERROR ABORT IF ANY OF THE FOLLOWING IS NOT TRUE -
  2738. * CALLER-S SUBSYSTEM IDENTIFICATION NUMBER = *NVSI*.
  2739. * AUTO RECALL SPECIFIED.
  2740. * COMPLETION BIT IN PARAMETER BLOCK NOT SET.
  2741. * PARAMETER BLOCK WITHIN FIELD LENGTH.
  2742. * LEGAL *VER* FUNCTION CODE SPECIFIED.
  2743. *
  2744. * USES CF, LE, CM - CM+4, CN - CN+4, PB - PB+4.
  2745. *
  2746. * CALLS CPA, CRS, SRI.
  2747. *
  2748. * MACROS ABORT, MONITOR.
  2749.  
  2750.  
  2751. PRS SUBR ENTRY/EXIT
  2752. LDK PCPP SET FWA OF PCPA-S
  2753. CRD CM
  2754. LDD CM+3
  2755. SHN 14
  2756. LMD CM+4
  2757. SBK 200B
  2758. STM CCAA+1
  2759. SHN -14
  2760. RAM CCAA
  2761. LDD CM+2 SET NUMBER OF CP-S + PCP-S + 2
  2762. STM CAMA
  2763. LDD CP CHECK SUBSYSTEM ID OF CALLER
  2764. ADN JCIW
  2765. CRD CN
  2766. LDD CN+2
  2767. ADC -NVSI
  2768. ZJN PRS1 IF CORRECT SUBSYSTEM
  2769. ABORT ERIR * VER - ILLEGAL USER ACCESS.*
  2770.  
  2771. PRS1 RJM CRS CHECK RECALL STATUS
  2772. ZJN PRS2 IF NO AUTO RECALL
  2773. LDN 1 VALIDATE FWA
  2774. STD PB+3
  2775. RJM CPA CHECK PARAMETER BLOCK ADDRESS
  2776. CRD PB
  2777. RJM CPA VERIFY BLOCK LENGTH WITHIN FL
  2778. LDD PB+4 CHECK COMPLETION BIT
  2779. LPN 1
  2780. ZJN PRS3 IF COMPLETION BIT NOT SET
  2781. PRS2 ABORT ERAE * VER - ARGUMENT ERROR.*
  2782.  
  2783. PRS3 LDD IR+2 CHECK FUNCTION CODE
  2784. SBN TFCNL
  2785. PJN PRS2 IF ILLEGAL FUNCTION CODE
  2786. LDK ESTP SET EST SIZE
  2787. CRD CM
  2788. LDD CM+2
  2789. STD LE
  2790. LDN EIBP READ *EICB* POINTER
  2791. CRD CN
  2792. LDD CN+3
  2793. RAM SEAA
  2794. LDD CN+4
  2795. STM SEAA+1
  2796. LDN SSTL
  2797. CRD CM
  2798. LDD CM+3
  2799. SHN 21-13
  2800. PJN PRS4 IF DUAL STATE ENABLED
  2801. LDC ESNR SET DUAL STATE NOT ENABLED
  2802. LJM PRSX RETURN
  2803.  
  2804. PRS4 LDK CHTP
  2805. CRD CN
  2806. LDD CN+2 SAVE EJT ASSIGNMENT TABLE ADDRESS
  2807. SHN 14
  2808. LMD CN+3
  2809. ADN CTALL
  2810. STM TCHA+1
  2811. STM SCHA+1
  2812. STM CHAA+1
  2813. SHN -14
  2814. RAM TCHA
  2815. STM SCHA
  2816. STM CHAA
  2817. LDD CN+2 SAVE CHANNEL STATUS TABLE ADDRESS
  2818. RAM RCLA
  2819. LDD CN+3
  2820. STM RCLA+1
  2821. LDD CN+4 CHECK FOR EJT ORDINAL
  2822. STM NEJT
  2823. NJN PRS6 IF EJT ALREADY ASSIGNED TO NOS/VE
  2824. STD CM+1
  2825. LDN PEJT
  2826. STD CM+2
  2827. LDD MA
  2828. CWM PRSA,ON
  2829. MONITOR MTRM
  2830. LDD CM+1
  2831. NJN PRS5 IF EJT ENTRY AVAILABLE
  2832. ABORT EREU * VER - EJT ENTRY UNAVAILABLE*
  2833.  
  2834. PRS5 STD CN+4 SAVE EJT ORDINAL
  2835. STM NEJT
  2836. LDC NVOL REWRITE *NVOL*
  2837. CWD CN
  2838. PRS6 LDN PPCP SAVE PP COMMUNICATION AREA ADDRESS
  2839. CRD CN
  2840. LDD CN+4
  2841. STM PPCA
  2842. LDK EABL+IOEI SET IOU CONNECT CODE
  2843. CRD CN
  2844. LDD CN+3
  2845. STD EC
  2846. LDK PPUL GET PP/CPP CONFIGURATION
  2847. CRD CM
  2848. RJM SRI SET RECONFIGURATION INFORMATION
  2849. LDN 0
  2850. STD CF
  2851. LDD CM+2
  2852. LMN 20D
  2853. NJN PRS8 IF NOT 20 PP-S
  2854. LDK EABL+CPEI READ CPU DESCRIPTOR
  2855. CRD CM
  2856. LDD CM+1
  2857. SHN -6
  2858. SHN 14
  2859. LMD CM
  2860. SHN 6
  2861. CRD CM
  2862. LDD CM+2 GET MODEL NUMBER
  2863. SHN -4
  2864. LMN 23
  2865. ZJN PRS7 IF CYBER 180-830
  2866. LMN 23&24
  2867. NJN PRS8 IF NOT CYBER 180-810
  2868. PRS7 AOD CF SET CONFIGURATION FLAG
  2869. PRS8 LDM TFCN,IR+2 SET FUNCTION PROCESSOR ADDRESS
  2870. STM VERA
  2871. LDN 0 SET NO ERROR
  2872. LJM PRSX RETURN
  2873.  
  2874. PRSA VFD 24/0LVER,24/0,1/0,4/NICS,1/0,5/NVJS,1/0
  2875. SRI SPACE 4,10
  2876. ** SRI - SET RECONFIGURATION INFORMATION.
  2877. *
  2878. * ENTRY (EC) = IOU CONNECT CODE.
  2879. *
  2880. * EXIT (SPBA) = BARREL CONFIGURATION.
  2881. * (SPBB) = NUMBER OF BARRELS PRESENT.
  2882. * (CM - CM+4) = (PPUL) = NUMBER OF PP-S / CPP-S.
  2883. *
  2884. * USES T1, T2, CN - CN+4.
  2885. *
  2886. * MACROS READMR.
  2887.  
  2888.  
  2889. SRI SUBR ENTRY/EXIT
  2890. LDN 0 INITIALIZE BARREL COUNT
  2891. STD T1
  2892. LDN 2 SET WORD COUNT
  2893. STD T2
  2894. LDK EABL+IOEI READ IOU INFORMATION
  2895. CRD CN
  2896. LDD CN+1
  2897. SCN 77
  2898. SHN 6
  2899. ADD CN
  2900. SHN 6
  2901. CRM SRIA,T2
  2902. LDM SRIA+/DSL/PPP0 CHECK ALL PP-S PRESENT IN BARREL 1
  2903. NJN SRI3 IF ONLY ONE BARREL
  2904. LDM SRIA+/DSL/PPP1
  2905. SHN 21-4
  2906. MJN SRI2 IF ONLY TWO BARRELS
  2907. NJN SRI1 IF THREE BARRELS
  2908. AOD T1
  2909. SRI1 AOD T1
  2910. SRI2 AOD T1
  2911. SRI3 AOD T1
  2912. RAM SPBB SET NUMBER OF BARRELS
  2913. LDM SRIA+/DSL/HDMN GET IOU MODEL NUMBER
  2914. SHN -4
  2915. LMC 0#42
  2916. ZJN SRI5 IF IOU MODEL 42
  2917. SHN -4
  2918. SBN 1
  2919. ZJN SRI6 IF IOU MODEL I1
  2920. PJN SRI4 IF IOU MODEL I2
  2921. LDD CM+3
  2922. LPN 77
  2923. ZJN SRI5 IF NO CPP-S IN SYSTEM
  2924. LDK PSNI ENABLE READ/WRITE OF *ECCR*
  2925. STM SBAA
  2926. STM SBAB
  2927. UJN SRI5 CONTINUE RECONFIGURATION
  2928.  
  2929. SRI4 LDN 40 MODIFY EC REGISTER SETTINGS FOR I2
  2930. RAM NECA
  2931. STM DPLI
  2932. STM IPPA
  2933. LDN 40
  2934. RAM DPLJ
  2935. STM IPPB
  2936. SRI5 AOM SRIB MODIFY FOR IOU MODEL I2 OR I4
  2937. SRI6 READMR SRIA,,ISTR
  2938. LDM SRIA+7
  2939. SHN -3
  2940. SRIB LPN 2 (IOU MODEL I1)
  2941. * LPN 3 (IOU MODEL I2 OR I4)
  2942. RAM SPBA SET BARREL RECONFIGURATION
  2943. LJM SRIX RETURN
  2944.  
  2945. SRIA BSS 2*5 IOU INFORMATION
  2946. TFCN SPACE 4,10
  2947. ** TFCN - TABLE OF FUNCTION PROCESSOR ADDRESSES.
  2948. *
  2949. * ONE WORD INDEXED BY FUNCTION CODE.
  2950. *
  2951. *T, 12/ADDR
  2952. *
  2953. * ADDR ADDRESS OF FUNCTION PROCESSOR.
  2954.  
  2955.  
  2956. TFCN BSS 0 TABLE OF FUNCTION PROCESSOR ADDRESSES
  2957. LOC 0
  2958.  
  2959. RSCM FCN RCM RESERVE CM
  2960. RSPP FCN RPP RESERVE PP
  2961. RSCH FCN RCL RESERVE CHANNEL
  2962. RSEQ FCN POF RESERVE EQUIPMENT
  2963. RNCM FCN TCM RETURN CM
  2964. RNPP FCN TPP RETURN PP
  2965. RNCH FCN TCH RETURN CHANNEL
  2966. RNEQ FCN POF RETURN EQUIPMENT
  2967. STCM FCN SCM STATUS CM
  2968. STPP FCN SPP STATUS PP
  2969. STCH FCN SCH STATUS CHANNELS
  2970. STEQ FCN POF STATUS EQUIPMENT
  2971. STMR FCN SMR STATUS AVAILABLE RESOURCES
  2972. SFRC FCN POF SET FREE-RUNNING COUNTER TO VALUE
  2973. RSPT FCN POF RESERVE NPP, NPP PARTNER PAIR OR CPP
  2974. RSCT FCN POF RESERVE NIO OR CIO CHANNEL
  2975. RNPT FCN POF RETURN NPP, CPP OR ALL PP-S
  2976. RNCT FCN POF RETURN NIO OR CIO CHANNEL OR ALL CHANNELS
  2977. STPT FCN POF STATUS NPP-S AND/OR CPP-S
  2978. STCT FCN POF STATUS NIO AND/OR CIO CHANNELS
  2979.  
  2980. MXVR BSS 0 MAXIMUM *VER* REQUEST + 1
  2981. LOC *O
  2982. TFCNL EQU *-TFCN LENGTH OF FUNCTION CODE TABLE
  2983. POF SPACE 4,10
  2984. ** POF - PROCESS OVERLAID FUNCTIONS.
  2985. *
  2986. * ENTRY INITIAL PRESET COMPLETED.
  2987. * CALLS OVERLAY *2VR*, WHICH DOES NOT RETURN.
  2988. *
  2989. * EXIT OVERLAY *2VR* EXITS TO *PPR* WHEN FINISHED.
  2990.  
  2991.  
  2992. POF SUBR ENTRY (NO EXIT)
  2993. EXECUTE 2VR
  2994. SPACE 4,10
  2995. ** COMMON DECKS.
  2996.  
  2997. *CALL COMPCRS
  2998. SPACE 4,10
  2999. * CHECK FOR OVERFLOW.
  3000.  
  3001.  
  3002. OVERFLOW PPFW,EPFW
  3003. TTL VER/2VR - VIRTUAL ENVIRONMENT REQUEST OVERLAY.
  3004. TITLE MAIN PROGRAM.
  3005. QUAL 2VR
  3006. IDENT 2VR,POFX
  3007. *COMMENT VER - PROCESS OVERLAID *VER* FUNCTIONS.
  3008. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  3009. ORG OVLA
  3010. POF SPACE 4,10
  3011. ** POF - PROCESS OVERLAID FUNCTIONS.
  3012. *
  3013. * ENTRY MAIN PRESET COMPLETED.
  3014. *
  3015. * EXIT TO PP RESIDENT.
  3016.  
  3017.  
  3018. POF SUBR ENTRY (NO EXIT)
  3019. RJM PRS PRESET VIRTUAL ENVIRONMENT
  3020.  
  3021. * TO FUNCTION PROCESSOR WITH
  3022. * (PB - PB+4) = FIRST WORD OF PARAMETER BLOCK,
  3023. * = 1/F, 35/0, 12/LENGTH, 12/0.
  3024. * F = FLAG USED ONLY IN RETURN FUNCTIONS.
  3025. * = 0 - RETURN SPECIFIED RESOURCES.
  3026. * = 1 - RETURN ALL.
  3027. * LENGTH = LENGTH (IN CM WORDS) OF PARAMETER BLOCK.
  3028. * (IR+3 - IR+4) = ADDRESS OF PARAMETER BLOCK.
  3029.  
  3030. RJM **
  3031. POFA EQU *-1 (FUNCTION PROCESSOR ADDRESS)
  3032. AOD PB+4 SET COMPLETION BIT
  3033. RJM CPA GET PARAMETER BLOCK ADDRESS
  3034. CWD PB WRITE RESPONSE
  3035. MONITOR DPPM DROP PP
  3036. LJM PPR EXIT TO PP RESIDENT
  3037. SPACE 4,20
  3038. ** ASSUMED TYPE CODE VALUES AND RELATIONSHIPS.
  3039. *
  3040. * THE FOLLOWING TYPE CODE VALUES AND RELATIONSHIPS
  3041. * ARE ASSUMED IN THE FUNCTION PROCESSING ROUTINES FOR
  3042. * FUNCTIONS *RSPT*, *RNPT*, AND *STPT*. IF THESE VALUES
  3043. * OR RELATIONSHIPS CHANGE, ALL REFERENCES TO THESE SYMBOLS
  3044. * SHOULD BE EXAMINED CAREFULLY.
  3045.  
  3046.  
  3047. ERRNG VPPT-VCPT-VUPT CODE ASSUMES VPPT .GT. VCPT+VUPT
  3048. ERRNG VCPT-VNPT-VUPT CODE ASSUMES VCPT .GT. VNPT+VUPT
  3049. ERRNG VUPT-VLPT CODE ASSUMES VUPT .GT. VLPT
  3050. ERRNZ VPPT-4 CODE ASSUMES VALUE
  3051. ERRNZ VCPT-2 CODE ASSUMES VALUE
  3052. ERRNZ VUPT-1 CODE ASSUMES VALUE
  3053. ERRNZ VLPT CODE ASSUMES VALUE
  3054. TITLE OVERLAY *2VR* COMMON DECKS.
  3055.  
  3056.  
  3057. LIST X
  3058. DVC$ EQU 1
  3059. QUAL$ EQU 1
  3060. *CALL COMPDVC
  3061. LIST *
  3062. TITLE FUNCTION PROCESSORS.
  3063. REQ SPACE 4,20
  3064. ** FUNCTION 3 - RSEQ - RESERVE EQUIPMENT.
  3065. *
  3066. * ENTRY (PB LIST ENTRY) = 6/CH, 6/EQ, 6/UN, 42/0.
  3067. * = 60/0.
  3068. *
  3069. * EXIT (PB+4) = ERROR STATUS.
  3070. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR CODE.
  3071. * = 24/0, 12/EQ/UN TYPE, 15/0,
  3072. * 9/EST ORDINAL.
  3073. *
  3074. * USES DA, LO, T2, CL - CL+4, CM - CM+4.
  3075. *
  3076. * CALLS CPA, CUA, DVC, SEE, VET, VRC, VTC.
  3077. *
  3078. * MACROS MONITOR.
  3079.  
  3080.  
  3081. REQ17 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  3082. STD PB+4
  3083.  
  3084. REQ SUBR ENTRY/EXIT
  3085. LDD PB+3 CHECK BLOCK LENGTH
  3086. ZJN REQX IF NONE REQUESTED
  3087. SBN 2
  3088. MJN REQ17 IF BLOCK TOO SHORT
  3089. LDD PB+3
  3090. SHN -1
  3091. SBD LE
  3092. PJN REQ17 IF BLOCK LONGER THAN 2 * EST LENGTH
  3093. LDD PB+3
  3094. LPN 1
  3095. NJN REQ17 IF BLOCK LENGTH NOT EVEN NUMBER OF WORDS
  3096. LDN 1 INITIALIZE LIST OFFSET
  3097. STD LO
  3098. REQ1 RJM CPA READ NEXT LIST ENTRY
  3099. ADD LO
  3100. CRD CL
  3101. RJM SEE SEARCH EST FOR EQUIPMENT
  3102. PJN REQ3 IF EST ENTRY FOUND
  3103. LDN ESNE SET EST ENTRY NOT FOUND STATUS
  3104. REQ2 LJM REQ13 WRITE RESPONSE
  3105.  
  3106. REQ3 RJM VET VALIDATE EQUIPMENT TRANSFERABILITY
  3107. ZJN REQ6 IF EQUIPMENT TRANSFERABLE
  3108. PJN REQ2 IF NOT DOWN
  3109. LDD CL
  3110. SHN -6
  3111. STD T2
  3112. RJM VRC INSURE CHANNEL IS RESERVED
  3113. LDD T4
  3114. ZJN REQ4 IF CHANNEL ALREADY ASSIGNED
  3115. LDD CM+1
  3116. ZJN REQ7 IF CHANNEL NOT AVAILABLE
  3117. REQ4 RJM CUA CHECK IF MASS STORAGE UNIT ASSIGNED
  3118. ZJN REQ5 IF NOT ASSIGNED
  3119. LDN ESAA
  3120. UJN REQ2 WRITE RESPONSE
  3121.  
  3122. REQ5 LJM REQ12 SET UNIT ASSIGNED BIT IN MST
  3123.  
  3124. * ENSURE CHANNEL IS RESERVED BY NOS/VE.
  3125.  
  3126. REQ6 STD DA CLEAR CHANNEL JUST RESERVED FLAG
  3127. LDD CL GET CHANNEL NUMBER
  3128. SHN -6
  3129. STD T2
  3130. RJM VRC VE RESERVE CHANNEL
  3131. LDD T4
  3132. ZJN REQ9 IF CHANNEL WAS PREVIOUSLY ASSIGNED
  3133. LDD CM+1
  3134. NJN REQ8 IF CHANNEL ASSIGNED
  3135. REQ7 LDN ESCH SET CHANNEL NOT AVAILABLE STATUS
  3136. UJN REQ11 WRITE RESPONSE
  3137.  
  3138. * RESERVE EQUIPMENT FOR NOS/VE.
  3139.  
  3140. REQ8 LDN 1 SET CHANNEL JUST ASSIGNED FLAG
  3141. STD DA
  3142. REQ9 LDD T7 SET EST ORDINAL
  3143. LMC 4000 SET ALTERNATE EJT FLAG
  3144. STD CM+1
  3145. LDK RDES REQUEST DOWNED EQUIPMENT
  3146. STD CM+2
  3147. LDM NEJT SET EJT ORDINAL
  3148. STD CM+3
  3149. MONITOR REQM REQUEST EQUIPMENT
  3150. LDD CM+1
  3151. NJN REQ12 IF EQUIPMENT ASSIGNED
  3152. LDD DA
  3153. ZJN REQ10 IF CHANNEL NOT JUST ASSIGNED
  3154. RJM VTC VE RETURN CHANNEL
  3155. REQ10 LDN ESEQ SET EQUIPMENT NOT AVAILABLE STATUS
  3156. REQ11 UJN REQ13 WRITE RESPONSE
  3157.  
  3158. * IF EQUIPMENT IS MASS STORAGE DEVICE, SET BIT CORRESPONDING
  3159. * TO *DDLL* UNIT LIST POSITION IN MST BIT MAP.
  3160.  
  3161. REQ12 BSS 0
  3162. * RJM CCL CHECK CONTROLWARE LOAD
  3163. LDD CN
  3164. SHN 0-13
  3165. ZJN REQ14 IF NOT MASS STORAGE DEVICE
  3166. LDD CN+4 READ BIT MAP
  3167. SHN 3
  3168. ADN NVGL
  3169. CRD CM
  3170. ERRNZ SHNI-1000 CANNOT USE DIRECT CELL *TH*
  3171. LDD TH SET SHIFT COUNT
  3172. ADD DC
  3173. STM REQA
  3174. LDN 1
  3175. REQA SHN **
  3176. RAD CM+4 SET BIT
  3177. LDD CN+4 UPDATE BIT MAP
  3178. SHN 3
  3179. ADN NVGL
  3180. CWD CM
  3181. LDN 0 SET NO ERROR STATUS
  3182.  
  3183. * WRITE TWO WORD RESPONSE.
  3184.  
  3185. REQ13 STD PB+4 SET ERROR STATUS
  3186. REQ14 STD CL+4
  3187. RJM CPA WRITE FIRST WORD OF RESPONSE
  3188. ADD LO
  3189. CWD CL
  3190. AOD LO INCREMENT LIST OFFSET
  3191. LDD CL+4
  3192. LPC 7677
  3193. NJN REQ15 IF ERROR STATUS SET
  3194. LDN ZERL CLEAR SECOND WORD
  3195. CRD CL
  3196. RJM DVC GET DEVICE CODE
  3197. STD CL+2 SET *EQ/UN* TYPE
  3198. LDD T7 SET EST ORDINAL
  3199. STD CL+4
  3200. RJM CPA WRITE SECOND WORD OF RESPONSE
  3201. ADD LO
  3202. CWD CL
  3203. REQ15 AOD LO INCREMENT LIST OFFSET
  3204. SBD PB+3
  3205. MJN REQ16 IF NOT END OF LIST
  3206. LJM REQX RETURN
  3207.  
  3208. REQ16 LJM REQ1 PROCESS NEXT REQUEST
  3209. TEQ SPACE 4,15
  3210. ** FUNCTION 7 - RNEQ - RETURN EQUIPMENT.
  3211. *
  3212. * ENTRY (PB LIST ENTRY) = 6/CH, 6/EQ, 6/UN, 42/0.
  3213. * (NEJT) = NOS/VE EJT ORDINAL.
  3214. *
  3215. * EXIT (PB+4) = ERROR STATUS.
  3216. * (PB LIST ENTRY) = 18/UNCHANGED, 30/0, 12/ERROR STATUS.
  3217. *
  3218. * USES LO, PB+4, T2, CL - CL+4, CM - CM+4, CN - CN+4.
  3219. *
  3220. * CALLS CHA, CPA, CUA, SEE, VET.
  3221. *
  3222. * MACROS MONITOR, SFA.
  3223.  
  3224.  
  3225. TEQ15 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  3226. STD PB+4
  3227.  
  3228. TEQ SUBR ENTRY/EXIT
  3229. LDD PB
  3230. SHN 21-13
  3231. PJN TEQ1 IF TO RETURN SPECIFIED EQUIPMENT
  3232. LJM TEQ13 RETURN ALL NOS/VE EQUIPMENT
  3233.  
  3234. TEQ1 LDD PB+3 CHECK BLOCK LENGTH
  3235. ZJN TEQX IF NONE TO RETURN
  3236. SBD LE
  3237. PJN TEQ15 IF BLOCK LONGER THAN EST LENGTH
  3238. LDN 1 INITIALIZE LIST OFFSET
  3239. STD LO
  3240. TEQ2 RJM CPA READ NEXT LIST ENTRY
  3241. ADD LO
  3242. CRD CL
  3243. RJM SEE SEARCH EST FOR EQUIPMENT
  3244. PJN TEQ3 IF EST ENTRY FOUND
  3245. LDN ESNE SET NOT IN EST STATUS
  3246. UJN TEQ5 WRITE LIST ENTRY
  3247.  
  3248. TEQ3 RJM VET CHECK EQUIPMENT ASSIGNMENT
  3249. MJN TEQ4 IF EQUIPMENT ASSIGNED TO NOS/VE
  3250. LDN ESEQ SET EQUIPMENT NOT ASSIGNED STATUS
  3251. UJN TEQ5 WRITE LIST ENTRY
  3252.  
  3253. TEQ4 LDD CL
  3254. SHN -6
  3255. STD T2
  3256. RJM CHA CHECK CHANNEL ASSIGNMENT
  3257. ZJN TEQ4.1 IF CHANNEL ASSIGNED
  3258. LDN ESCH SET CHANNEL NOT ASSIGNED STATUS
  3259. UJN TEQ5 WRITE RESPONSE
  3260.  
  3261. TEQ4.1 RJM CUA CHECK UNIT ASSIGNMENT
  3262. MJN TEQ7 IF NOT MASS STORAGE
  3263. SBN ESAA
  3264. ZJN TEQ6 IF UNIT ASSIGNED
  3265. LDN ESUN SET UNIT NOT ASSIGNED STATUS
  3266. TEQ5 LJM TEQ9 WRITE RESPONSE
  3267.  
  3268. * RETURN NOS/VE EQUIPMENT.
  3269.  
  3270. TEQ6 LDD CN+4 CLEAR UNIT ASSIGNED STATUS
  3271. SHN 3
  3272. ADN NVGL
  3273. CRD CM
  3274. ERRNZ SHNI-1000 CANNOT USE DIRECT CELL *TH*
  3275. LDD TH SET SHIFT COUNT
  3276. ADD DC
  3277. STM TEQA
  3278. LDN 1
  3279. TEQA SHN **
  3280. LMD CM+4 CLEAR BIT
  3281. STD CM+4
  3282. LDD CN+4 UPDATE UNIT STATUS
  3283. SHN 3
  3284. ADN NVGL
  3285. CWD CM
  3286. LDD CM+4 CHECK FOR OTHER UNIT ASSIGNMENTS
  3287. NJN TEQ8 IF ANOTHER UNIT ASSIGNED
  3288. TEQ7 LDD T7 SET EST ORDINAL
  3289. LMC 4000 SET ALTERNATE EJT FLAG
  3290. STD CM+1
  3291. LDM NEJT SET EJT ORDINAL
  3292. STD CM+3
  3293. MONITOR DEQM RELEASE EQUIPMENT
  3294. TEQ8 LDN 0 CLEAR ERROR FLAG
  3295. UJN TEQ10 WRITE RESPONSE
  3296.  
  3297. * WRITE LIST RESPONSE.
  3298.  
  3299. TEQ9 STD PB+4 SET STATUS
  3300. TEQ10 STD CL+4
  3301. RJM CPA WRITE RESPONSE
  3302. ADD LO
  3303. CWD CL
  3304. AOD LO INCREMENT OFFSET
  3305. SBD PB+3
  3306. SBN 1
  3307. MJN TEQ12 IF NOT END OF LIST
  3308. TEQ11 LJM TEQX RETURN
  3309.  
  3310. TEQ12 LJM TEQ2 PROCESS NEXT LIST ENTRY
  3311.  
  3312. * RETURN ALL EQUIPMENT.
  3313.  
  3314. TEQ13 LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  3315. STD LO
  3316. TEQ14 AOD LO ADVANCE EST ORDINAL
  3317. LMD LE
  3318. ZJN TEQ11 IF END OF EST
  3319. SFA EST,LO
  3320. ADK EQDE
  3321. CRD CN READ EST ENTRY
  3322. ADK EQAE-EQDE READ JOB ASSIGNMENT WORD
  3323. CRD CM
  3324. LDM NEJT
  3325. LMD CM+4
  3326. NJN TEQ14 IF NOT NOS/VE RESERVED
  3327. LDD LO SET EST ORDINAL
  3328. LMC 4000 SET ALTERNATE EJT FLAG
  3329. STD CM+1
  3330. LDM NEJT SET EJT ORDINAL
  3331. STD CM+3
  3332. MONITOR DEQM RELEASE EQUIPMENT
  3333. LDD CN CHECK FOR MASS STORAGE
  3334. SHN 21-13
  3335. PJN TEQ14 IF NOT MASS STORAGE
  3336. LDN ZERL CLEAR ALL UNIT ASSIGNMENTS
  3337. CRD CM
  3338. LDD CN+4
  3339. SHN 3
  3340. ADN NVGL
  3341. CWD CM
  3342. UJP TEQ14 PROCESS NEXT EST ENTRY
  3343. SEQ SPACE 4,10
  3344. ** FUNCTION 13 - STEQ - STATUS NOS/VE EQUIPMENT.
  3345. *
  3346. * ENTRY (PB LIST ENTRY) = 6/CH, 6/EQ, 6/UN, 42/0.
  3347. *
  3348. * EXIT (PB+4) = ERROR STATUS.
  3349. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
  3350. *
  3351. * USES LO, PB+4, T2, CL - CL+4.
  3352. *
  3353. * CALLS CHA, CPA, CUA, SEE, VET.
  3354.  
  3355.  
  3356. SEQ9 LDD TH SET ILLEGAL REQUEST STATUS (*ESIR*)
  3357. STD PB+4
  3358.  
  3359. SEQ SUBR ENTRY/EXIT
  3360. LDD PB+3 CHECK BLOCK LENGTH
  3361. ZJN SEQX IF NO REQUEST
  3362. SBD LE
  3363. PJN SEQ9 IF BLOCK LONGER THAN EST LENGTH
  3364. LDN 1 INITIALIZE LIST OFFSET
  3365. STD LO
  3366. SEQ1 RJM CPA READ NEXT LIST ENTRY
  3367. ADD LO
  3368. CRD CL
  3369. RJM SEE SEARCH EST FOR EQUIPMENT
  3370. PJN SEQ2 IF EST ENTRY FOUND
  3371. LDN ESNE SET NOT IN EST STATUS
  3372. UJN SEQ5 WRITE RESPONSE
  3373.  
  3374. SEQ2 RJM VET CHECK EQUIPMENT ASSIGNMENT
  3375. MJN SEQ4 IF EQUIPMENT ASSIGNED TO NOS/VE
  3376. SEQ3 LDN ESEQ SET EQUIPMENT NOT ASSIGNED STATUS
  3377. UJN SEQ5 WRITE RESPONSE
  3378.  
  3379. SEQ4 LDD CL
  3380. SHN -6
  3381. STD T2
  3382. RJM CHA CHECK CHANNEL ASSIGNMENT
  3383. ZJN SEQ4.1 IF CHANNEL ASSIGNED
  3384. LDN ESCH SET CHANNEL NOT ASSIGNED STATUS
  3385. UJN SEQ5 WRITE RESPONSE
  3386.  
  3387. SEQ4.1 RJM CUA CHECK UNIT ASSIGNMENT
  3388. MJN SEQ6 IF NOT MASS STORAGE DEVICE
  3389. SBN ESAA
  3390. ZJN SEQ7 IF UNIT ASSIGNED
  3391. LDN ESUN SET UNIT NOT ASSIGNED STATUS
  3392. SEQ5 STD PB+4
  3393. UJN SEQ7 WRITE RESPONSE
  3394.  
  3395. SEQ6 LDN 0 CLEAR ERROR STATUS
  3396. SEQ7 STD CL+4
  3397. RJM CPA
  3398. ADD LO
  3399. CWD CL WRITE RESPONSE
  3400. AOD LO INCREMENT LIST OFFSET
  3401. SBD PB+3
  3402. SBN 1
  3403. PJN SEQ8 IF END OF LIST
  3404. LJM SEQ1 PROCESS NEXT LIST ENTRY
  3405.  
  3406. SEQ8 LJM SEQX RETURN
  3407. FRC SPACE 4,10
  3408. ** FUNCTION 15 - SFRC - SET FREE-RUNNING COUNTER TO VALUE.
  3409. *
  3410. * ENTRY (PB LIST ENTRY) = 12/,48/ DESIRED *FRC* VALUE.
  3411. *
  3412. * EXIT REQUEST WRITTEN TO NOS REQUEST AREA.
  3413.  
  3414.  
  3415. FRC SUBR ENTRY/EXIT
  3416.  
  3417. * OBTAIN INTERLOCK ON NOS REQUEST AREA.
  3418.  
  3419. FRC1 RJM SRA SET ADDRESS OF NOS REQUEST HEADER
  3420. STD CM+4 SAVE ADDRESS FOR *UTEM*
  3421. SHN -14
  3422. STD CM+3
  3423. LDN 2 SET NUMBER OF REQUESTS
  3424. STD CM+1
  3425. LDD MA WRITE REQUESTS TO MESSAGE BUFFER
  3426. CWM FRCA,CM+1
  3427. MONITOR UTEM ATTEMPT TO GET INTERLOCK
  3428. LDD CM+1 CHECK STATUS
  3429. ZJN FRC2 IF INTERLOCK OBTAINED
  3430. DELAY
  3431. UJN FRC1 RETRY INTERLOCK ATTEMPT
  3432.  
  3433. * FORMAT REQUEST.
  3434.  
  3435. FRC2 RJM CPA READ REQUEST
  3436. ADN 1
  3437. CRD T1
  3438. LDN RQSF SET TASKID FOR *FRC* UPDATE
  3439. STD T1
  3440.  
  3441. * THE FOLLOWING CODE ASSUMES THERE IS ONLY ONE REQUEST BUFFER
  3442. * WHICH IMMEDIATELY FOLLOWS THE REQUEST HEADER.
  3443.  
  3444. RJM SRA SET ADDRESS OF NOS REQUEST HEADER
  3445. CRD CN
  3446. ADN 1
  3447. CWD T1 WRITE REQUEST TO BUFFER
  3448. LDN STRY SET STATUS = *READY*
  3449. STD CN+4
  3450. RJM SRA SET ADDRESS OF NOS REQUEST HEADER
  3451. CWD CN
  3452. LJM FRCX RETURN
  3453.  
  3454.  
  3455. * *UTEM* REQUEST PARAMETERS.
  3456.  
  3457. FRCA VFD 1/1,5/0,6/12D,6/0,42/STIN VERIFY INACTIVE REQUEST
  3458. VFD 1/0,5/0,6/12D,6/0,42/STIK SET INTERLOCK ON REQUEST
  3459. RSP SPACE 4,30
  3460. ** FUNCTION 16 - RSPT - RESERVE PP-S.
  3461. *
  3462. * ENTRY (PB LIST ENTRY) = 12/0, 12/TYPE, 36/0.
  3463. * TYPE = TYPE OF PP REQUIRED.
  3464. * = 0 - NPP 0-11B ON 810/830 SYSTEM,
  3465. * 0-31B ON OTHER SYSTEMS.
  3466. * = 1 - NPP 20B-31B ON 810/830 WITH OVER 10 NPP-S,
  3467. * 0-31B ON OTHER SYSTEMS.
  3468. * = 2 - CPP 0-4.
  3469. * = 3 - CPP 5-11B.
  3470. * = 4 - NPP PARTNER PAIR ON 810/830 WITH MORE THAN
  3471. * 10 NPP-S, ANY TWO NPP-S ON OTHER SYSTEMS.
  3472. *
  3473. * EXIT (PB LIST ENTRY) = 6/PP, 6/PPP, 12/TYPE, 36/0.
  3474. * = 6/77B, 42/0, 12/ERROR CODE
  3475. * IF PP UNAVAILABLE.
  3476. * PP - ASSIGNED PP NUMBER.
  3477. * PPP - SECOND ASSIGNED PP NUMBER IF TYPE = 4.
  3478. *
  3479. * (PB+4) = ERROR STATUS.
  3480. * BML MESSAGE ISSUED.
  3481. *
  3482. * USES DA, DB, DC, EC, LO, PB+4, T3, T6, CL - CL+4,
  3483. * CM - CM+4, CN - CN+4.
  3484. *
  3485. * CALLS CPA, GCP, IBM, IPP, SPB.
  3486. *
  3487. * MACROS DELAY, EXECUTE, MONITOR, PAUSE.
  3488.  
  3489.  
  3490. RSP23 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
  3491. STD PB+4
  3492.  
  3493. RSP SUBR ENTRY/EXIT
  3494. LDD PB+3 GET NUMBER REQUESTED
  3495. ZJN RSPX IF NONE REQUESTED
  3496. SBN 1
  3497. NJN RSP23 IF LENGTH EXCEEDS ONE
  3498. RJM CPA
  3499. ADN 1
  3500. CRD CL
  3501. LDN VPPT
  3502. SBD CL+1
  3503. MJN RSP23 IF NOT A VALID PP TYPE
  3504. RJM GCP GET CURRENT STATUS OF PP-S
  3505. LDD CL+1
  3506. SBK VCPT+VLPT
  3507. ZJN RSP1 IF LOWER BANK CPP REQUEST
  3508. SBK VUPT-VLPT
  3509. NJN RSP2 IF REQUEST IS FOR ONE OR MORE NPP-S
  3510. LDN 5 UPPER BANK CPP REQUEST
  3511. RSP1 SBD DB
  3512. MJN RSP5 IF SYSTEM HAS CPP-S OF THE RIGHT TYPE
  3513. LDK ESCP SET CONCURRENT PP NOT PRESENT (*ESCP*)
  3514. LJM RSP21 SET STATUS AND RETURN
  3515.  
  3516. RSP2 PJN RSP3 IF REQUEST IS FOR A PAIR OF NPP-S
  3517. SBK VNPT-VCPT
  3518. NJN RSP4 IF REQUEST IS FOR A LOWER BANK NPP
  3519. RSP3 LDD CF
  3520. ZJN RSP4 IF NOT 810/830 WITH 20 NPP-S
  3521. LDN MINDP
  3522. SBD T4 AVAILABLE UPPER BANK NPP-S
  3523. PJP RSP20 IF INSUFFICIENT UPPER BANK NPP-S
  3524. RSP4 LDD DA NUMBER OF PP-S IN SYSTEM
  3525. SBN MINP LESS MINIMUM FOR NOS
  3526. STD DB SAVE PP-S ALLOWABLE TO USE
  3527. RSP5 LDD CL+1
  3528. LPN VPPT
  3529. SHN -2
  3530. ADN 1
  3531. STD T6 NUMBER OF PP-S REQUESTED
  3532. LDD DB TOTAL PP-S ALLOWABLE TO USE
  3533. SBD T6 REQUESTED PP-S
  3534. SBD T5 DEDICATED PP-S
  3535. MJP RSP20 IF NOT ENOUGH LEFT FOR NOS
  3536. LDC 4000 INITIALIZE PP NUMBER FIELD
  3537. STD CL
  3538. LDD CL+1
  3539. SBN VNPT+VUPT
  3540. ZJN RSP7 IF REQUEST FOR UPPER BANK NPP
  3541. MJN RSP6 IF REQUEST FOR LOWER BANK NPP
  3542. SBK VPPT-VNPT-VUPT
  3543. ZJN RSP8 IF REQUEST FOR A PAIR OF NPP-S
  3544.  
  3545. * REQUEST CPP FOR /*VP/.
  3546.  
  3547. LDD MA SET INPUT REGISTER
  3548. CWM RSPA,ON
  3549. UJN RSP9 PROCESS PP REQUEST
  3550.  
  3551. * REQUEST NPP FOR *1VN*.
  3552.  
  3553. RSP6 LDD MA SET INPUT REGISTER
  3554. CWM RSPB,ON
  3555. EXECUTE 1VN,=
  3556. UJN RSP9 PROCESS PP REQUEST
  3557.  
  3558. * REQUEST NPP FOR *1VO*.
  3559.  
  3560. RSP7 LDD MA SET INPUT REGISTER
  3561. CWM RSPC,ON
  3562. EXECUTE 1VO,=
  3563. UJN RSP9 PROCESS PP REQUEST
  3564.  
  3565. * REQUEST NPP FOR *1VP*.
  3566.  
  3567. RSP8 LDD MA SET INPUT REGISTER
  3568. CWM RSPD,ON
  3569. EXECUTE 1VP,=
  3570.  
  3571. RSP9 LDN 10 INITIALIZE ATTEMPT COUNT
  3572. STD DC
  3573. RSP10 LDN ZERL
  3574. CRD CM
  3575. LDD CL+1
  3576. LPN VCPT
  3577. ZJN RSP11 IF NPP REQUEST
  3578. LDD CL+1
  3579. STD CM+4 SET BARREL DESIGNATION
  3580. MONITOR CPRM REQUEST CPP
  3581. UJN RSP13 CHECK IF SUCCESSFUL
  3582.  
  3583. RSP11 LDD CF
  3584. ZJN RSP12 IF NOT 810/830 WITH 20 NPP-S
  3585. LDD CL+1
  3586. LPN VPPT
  3587. RSP12 LMN 1 SET PRIORITY REQUEST
  3588. STD CM+1
  3589. MONITOR RPPM REQUEST NPP
  3590. RSP13 LDD CM+1
  3591. NJN RSP14 IF PP AVAILABLE
  3592. PAUSE NE
  3593. DELAY
  3594. SOD DC DECREMENT ATTEMPT COUNT
  3595. NJN RSP10 IF ANOTHER ATTEMPT TO BE MADE
  3596. LJM RSP20 SET PP NOT AVAILABLE STATUS
  3597.  
  3598. RSP14 STD T3 SAVE INPUT REGISTER ADDRESS
  3599. LDD CM+2 SAVE SECOND INPUT REGISTER ADDRESS
  3600. RSP15 STD DA
  3601. RSP16 LDD T3 GET INPUT REGISTER OF ASSIGNED PP
  3602. CRD CM
  3603. LDD CM
  3604. LMC 2R*V
  3605. ZJN RSP17 IF PP READY
  3606. PAUSE NE
  3607. DELAY
  3608. UJN RSP16 RECHECK CALL
  3609.  
  3610. RSP17 RJM IPP IDLE PP
  3611. MJN RSP19 IF PP NOT IDLED
  3612. STD T1 BML SYMPTOM CODE
  3613. LDD T5
  3614. RJM SPB SET UPPER PP BIT
  3615. LDN ZERL CLEAR DATA WORD
  3616. CRD CN
  3617. LDD T5 SET PP NUMBER
  3618. LPN 37
  3619. STD CN+4
  3620. ADD CL
  3621. SHN 6
  3622. MJN RSP18 IF FIRST OR ONLY PP
  3623. SHN -6
  3624. RSP18 STD CL
  3625. LDC /COMSDFS/HM0240 SET MESSAGE ID
  3626. RJM IBM ISSUE BML MESSAGE
  3627. RSP19 SOD T6
  3628. ZJN RSP21 IF REQUEST SATISFIED
  3629. LDD DA
  3630. ZJP RSP8 IF NO SECOND PP ASSIGNED
  3631. STD T3
  3632. LDN 0 CLEAR SECOND PP ASSIGNED
  3633. UJP RSP15 PROCESS SECOND PP
  3634.  
  3635. RSP20 LDN ESPP SET PP NOT AVAILABLE STATUS (*ESPP*)
  3636. RSP21 STD PB+4
  3637. STD CL+4
  3638. ZJN RSP22 IF NO ERROR
  3639. LDC 7700
  3640. STD CL
  3641. RSP22 RJM CPA WRITE PARAMETER LIST ENTRY
  3642. ADN 1
  3643. CWD CL
  3644. LJM RSPX RETURN
  3645.  
  3646.  
  3647. RSPA VFD 18/3L*VP,42/0 /*VP/ INPUT REGISTER
  3648. RSPB VFD 18/0L1VN,42/0 *1VN* INPUT REGISTER
  3649. RSPC VFD 18/0L1VO,42/0 *1VO* INPUT REGISTER
  3650. RSPD VFD 18/0L1VP,42/0 *1VP* INPUT REGISTER
  3651. RSC SPACE 4,15
  3652. ** FUNCTION 17 - RSCT - RESERVE NIO OR CIO CHANNEL.
  3653. *
  3654. * ENTRY (PB LIST ENTRY) = 6/CH, 6/0, 12/TYPE, 36/0.
  3655. * CH - CHANNEL NUMBER REQUIRED.
  3656. * TYPE - TYPE OF CHANNEL.
  3657. * 0 = NIO CHANNEL.
  3658. * 1 = CIO CHANNEL.
  3659. *
  3660. * EXIT (PB+4) = ERROR STATUS.
  3661. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR CODE.
  3662. *
  3663. * USES LO, T2, CL - CL+4.
  3664. *
  3665. * CALLS CPA, DCA.
  3666.  
  3667.  
  3668. RSC3 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
  3669. STD PB+4
  3670.  
  3671. RSC SUBR ENTRY/EXIT
  3672. LDD PB+3 CHECK BLOCK LENGTH
  3673. ZJN RSCX IF NONE REQUESTED
  3674. SBN 1
  3675. NJN RSC3 IF LENGTH NOT 1
  3676. LDN CTALL
  3677. STD T2
  3678. LDC ** FWA CHANNEL STATUS TABLE
  3679. RSCA EQU *-2
  3680. CRM RBUF,T2
  3681. RJM CPA READ CHANNEL NUMBER AND TYPE
  3682. ADN 1
  3683. CRD CL
  3684. LDN 0 CLEAR ERROR FLAG
  3685. STD CL+4
  3686. RJM VCN VALIDATE CHANNEL NUMBER
  3687. PJN RSC1 IF CHANNEL NUMBER INCORRECT
  3688. RJM DCA DETERMINE CHANNEL AVAILABILITY
  3689. ZJN RSC2 IF CHANNEL WAS PREVIOUSLY NOS/VE RESERVED
  3690. LDD CM+1
  3691. NJN RSC2 IF CHANNEL ASSIGNED
  3692. LDN ESCH SET CHANNEL NOT AVAILABLE STATUS
  3693. RSC1 STD PB+4
  3694. STD CL+4
  3695. RSC2 RJM CPA WRITE PARAMETER LIST ENTRY
  3696. ADN 1
  3697. CWD CL
  3698. LJM RSCX RETURN
  3699. RNP SPACE 4,20
  3700. ** FUNCTION 20 - RNPT - RETURN PP.
  3701. *
  3702. * ENTRY (PB LIST ENTRY) = 6/PP NUMBER, 6/0, 12/TYPE,
  3703. * 1/BAD, 35/0.
  3704. * TYPE - TYPE OF PP BEING RETURNED.
  3705. * 0 OR 1 = NPP.
  3706. * 2 OR 3 = CPP.
  3707. * BAD - PP MALFUNCTION FLAG.
  3708. * 0 = PP IS OK.
  3709. * 1 = PP IS MALFUNCTIONING.
  3710. *
  3711. * EXIT (PB LIST ENTRY) = 24/UNCHANGED, 24/0, 12/ERROR STATUS.
  3712. * (PB+4) = ERROR STATUS.
  3713. *
  3714. * USES DA, DB, LO, T4, PB+4, CL - CL+4, CN - CN+4.
  3715. *
  3716. * CALLS CPA, DPL, LPR, SPB, VPN.
  3717. *
  3718. * MACROS MONITOR.
  3719.  
  3720.  
  3721. RNP10 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
  3722. STD PB+4
  3723.  
  3724. RNP SUBR ENTRY/EXIT
  3725. RJM LPR LOAD PP RESIDENT
  3726. LDD PB
  3727. SHN 21-13
  3728. MJP RNP4 IF RETURNING ALL PP-S
  3729.  
  3730. * RETURN SPECIFIED PP.
  3731.  
  3732. RNP1 LDD PB+3
  3733. ZJN RNPX IF NONE TO RETURN
  3734. SBN 1
  3735. NJN RNP10 IF REQUEST TOO LARGE
  3736. RNP2 RJM CPA READ NEXT LIST ENTRY
  3737. ADN 1
  3738. CRD CL
  3739. LDD CL+1
  3740. SBN VPPT
  3741. PJN RNP10 IF TYPE CODE INCORRECT
  3742. LDD CL+1 GET PP TYPE FLAG
  3743. LPN VCPT
  3744. SHN 13-1
  3745. LMD CL
  3746. SHN -6
  3747. RJM VPN VALIDATE PP NUMBER
  3748. NJN RNP3 IF NOT ASSIGNED TO NOS/VE
  3749. LDD T4 PP NUMBER
  3750. LMC 10000
  3751. RJM SPB SET LOWER PP BIT
  3752. RJM DPL DEADSTART PP AND LOAD *PPR*
  3753. LDN 0 CLEAR ERROR FLAG
  3754. RNP3 STD PB+4
  3755. STD CL+4
  3756. RJM CPA WRITE LIST ENTRY
  3757. ADN 1
  3758. CWD CL
  3759. UJN RNP7 RETURN
  3760.  
  3761. * RETURN ALL NOS/VE RESERVED PP-S.
  3762.  
  3763. RNP4 LDN 0 INITIALIZE PP NUMBER AND BAD PP FLAG
  3764. STD T4
  3765. STD CL+2
  3766. RNP5 LDD T4
  3767. RNP6 RJM VPN VALIDATE PP NUMBER
  3768. ZJN RNP8 IF ASSIGNED TO NOS/VE
  3769. LMN ESPP
  3770. ZJN RNP9 IF NOT END OF PP-S
  3771. RNP7 LJM RNPX RETURN
  3772.  
  3773. RNP8 LDD T4 RETURN NOS/VE PP
  3774. LMC 10000
  3775. RJM SPB SET LOWER PP BIT
  3776. RJM DPL DEADSTART PP AND LOAD PPR
  3777. RNP9 AOD T4 INCREMENT PP NUMBER
  3778. LPN 17
  3779. SBN 12
  3780. NJN RNP5 IF NOT END OF PP BANK
  3781. LDN 6 SET START OF NEXT BANK
  3782. RAD T4
  3783. UJN RNP6 PROCESS NEXT PP
  3784. RNC SPACE 4,15
  3785. ** FUNCTION 21 - RNCT - RETURN CIO OR NIO CHANNEL.
  3786. *
  3787. * ENTRY (PB LIST ENTRY) = 6/CH, 6/0, 12/TYPE, 36/0.
  3788. * CH - CHANNEL NUMBER BEING RETURNED.
  3789. * TYPE - TYPE OF CHANNEL.
  3790. * 0 = NIO CHANNEL.
  3791. * 1 = CIO CHANNEL.
  3792. *
  3793. * EXIT (PB+4) = ERROR STATUS.
  3794. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
  3795. *
  3796. * USES PB+4, T2, CL - CL+4, CN - CN+4.
  3797. *
  3798. * CALLS CPA, VTC.
  3799.  
  3800.  
  3801. RNC7 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
  3802. STD PB+4
  3803.  
  3804. RNC SUBR ENTRY/EXIT
  3805. LDN CTALL READ EJT ASSIGNMENT TABLE
  3806. STD T2
  3807. LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
  3808. RNCA EQU *-2
  3809. CRM CBUF,T2
  3810. LDD PB
  3811. SHN 21-13
  3812. MJP RNC3 IF RETURNING ALL NOS/VE CHANNELS
  3813. LDD PB+3 CHECK BLOCK LENGTH
  3814. ZJN RNCX IF NONE TO BE RETURNED
  3815. SBN 1
  3816. NJN RNC7 IF TOO MANY CHANNELS TO BE RETURNED
  3817. RJM CPA GET CHANNEL TO RETURN
  3818. ADN 1
  3819. CRD CL
  3820. RJM VCN VALIDATE CHANNEL NUMBER
  3821. PJN RNC2 IF CHANNEL NUMBER INCORRECT
  3822. LDM NEJT
  3823. LMM CBUF,T2
  3824. ZJN RNC1 IF CHANNEL IS NOS/VE RESERVED
  3825. LDN ESCH SET CHANNEL NOT NOS/VE RESERVED STATUS
  3826. UJN RNC2 WRITE PARAMETER LIST ENTRY
  3827.  
  3828. RNC1 RJM VTC VE RETURN CHANNEL
  3829. * LDN 0 CLEAR ERROR STATUS
  3830. RNC2 STD PB+4
  3831. STD CL+4
  3832. RJM CPA WRITE PARAMETER LIST ENTRY
  3833. ADN 1
  3834. CWD CL
  3835. UJN RNC6 RETURN
  3836.  
  3837. * RETURN ALL NOS/VE RESERVED CHANNELS.
  3838.  
  3839. RNC3 LDN 0 INITIALIZE CHANNEL TABLE OFFSET
  3840. STD T2
  3841. RNC4 LDM NEJT
  3842. LMM CBUF,T2
  3843. NJN RNC5 IF CHANNEL NOT NOS/VE RESERVED
  3844. RJM VTC VE RETURN CHANNEL
  3845. RNC5 AOD T2 INCREMENT CHANNEL TABLE OFFSET
  3846. SBN MXCH+1
  3847. MJN RNC4 IF NOT END OF TABLE
  3848. RNC6 LJM RNCX RETURN
  3849. STP SPACE 4,15
  3850. ** FUNCTION 22 - STPT - STATUS OF NOS/VE PP-S.
  3851. *
  3852. * ENTRY (PB LIST ENTRY) = 6/PP NUMBER, 6/0, 12/TYPE, 36/0.
  3853. * TYPE - TYPE OF PP.
  3854. * 0 OR 1 = NPP.
  3855. * 2 OR 3 = CPP.
  3856. *
  3857. * (PPCA) = PP COMMUNICATION AREA ADDRESS.
  3858. *
  3859. * EXIT (PB+4) = ERROR STATUS.
  3860. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
  3861. *
  3862. * USES DA, DB, LO, PB+4, CL - CL+4, CN - CN+4.
  3863. *
  3864. * CALLS CPA, VPN.
  3865.  
  3866.  
  3867. STP4 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
  3868. STD PB+4
  3869.  
  3870. STP SUBR ENTRY/EXIT
  3871. LDD PB+3 CHECK PARAMETER BLOCK LENGTH
  3872. ZJN STPX IF NO REQUEST
  3873. SBK 31D
  3874. PJN STP4 IF LENGTH .GT. MAXIMUM LIST LENGTH
  3875. LDN 1 INITIALIZE LIST OFFSET
  3876. STD LO
  3877. STP1 RJM CPA READ NEXT LIST ENTRY
  3878. ADD LO
  3879. CRD CL
  3880. LDD CL+1
  3881. SBN VPPT
  3882. PJN STP4 IF TYPE CODE INCORRECT
  3883. LDD CL+1 GET PP TYPE FLAG
  3884. LPN VCPT
  3885. SHN 13-1
  3886. LMD CL
  3887. SHN -6
  3888. RJM VPN VALIDATE PP NUMBER
  3889. ZJN STP3 IF ASSIGNED TO NOS/VE
  3890. STP2 STD PB+4
  3891. STP3 STD CL+4 SET ERROR STATUS
  3892. RJM CPA WRITE RESPONSE
  3893. ADD LO
  3894. CWD CL
  3895. AOD LO INCREMENT LIST OFFSET
  3896. SBD PB+3
  3897. SBN 1
  3898. MJN STP1 IF NOT END OF LIST
  3899. LJM STPX RETURN
  3900. STC SPACE 4,15
  3901. ** FUNCTION 23 - STCT - STATUS OF NOS/VE CHANNELS.
  3902. *
  3903. * ENTRY (PB LIST ENTRY) = 6/CH, 6/0, 12/TYPE, 36/0.
  3904. * TYPE - TYPE OF CHANNEL.
  3905. * 0 = NIO CHANNEL.
  3906. * 1 = CIO CHANNEL.
  3907. *
  3908. * (NEJT) = NOS/VE EJT ORDINAL.
  3909. *
  3910. * EXIT (PB+4) = ERROR STATUS.
  3911. * (PB LIST ENTRY) = 48/UNCHANGED, 12/ERROR STATUS.
  3912. *
  3913. * USES LO, PB+4, T2, CL - CL+4, CN - CN+4.
  3914. *
  3915. * CALLS CPA.
  3916.  
  3917.  
  3918. STC5 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
  3919. STD PB+4
  3920.  
  3921. STC SUBR ENTRY/EXIT
  3922. LDD PB+3 CHECK PARAMETER BLOCK LENGTH
  3923. ZJN STCX IF NO REQUEST
  3924. SBK 35D
  3925. PJN STC5 IF LENGTH .GT. MAXIMUM LIST LENGTH
  3926. LDN CTALL
  3927. STD T2
  3928. LDC ** FWA OF CHANNEL EJT ASSIGNMENT TABLE
  3929. STCA EQU *-2
  3930. CRM CBUF,T2
  3931. LDN 1 INITIALIZE LIST OFFSET
  3932. STD LO
  3933. STC1 RJM CPA READ NEXT LIST ENTRY
  3934. ADD LO
  3935. CRD CL
  3936. RJM VCN VALIDATE CHANNEL NUMBER
  3937. PJN STC2 IF CHANNEL NUMBER INCORRECT
  3938. LDM NEJT
  3939. LMM CBUF,T2
  3940. ZJN STC3 IF CHANNEL RESERVED BY NOS/VE
  3941. LDN ESCH SET CHANNEL NOT RESERVED STATUS
  3942. STC2 STD PB+4
  3943. STC3 STD CL+4 SET ERROR STATUS
  3944. RJM CPA WRITE RESPONSE
  3945. ADD LO
  3946. CWD CL
  3947. LDD CL+4
  3948. LMD TH CHECK IF *ESIR*
  3949. ZJN STC4 IF INCORRECT REQUEST
  3950. AOD LO INCREMENT LIST OFFSET
  3951. SBD PB+3
  3952. SBN 1
  3953. MJP STC1 IF NOT END OF LIST
  3954. STC4 LJM STCX RETURN
  3955. TITLE SUBROUTINES.
  3956. DPL SPACE 4,25
  3957. ** DPL - DEADSTART PP AND LOAD *PPR*.
  3958. *
  3959. * ENTRY (T3) = OFFSET INTO PP COMMUNICATION AREA.
  3960. * (T4) = PP NUMBER.
  3961. * (EC) = ELEMENT CONNECT CODE.
  3962. * (CL+2) = BAD PP FLAG IN UPPERMOST BIT.
  3963. * (PPCA) = PP COMMUNICATION AREA ADDRESS.
  3964. * *PPR* AT PBUF+5.
  3965. *
  3966. * EXIT (A) .GT. 0 IF *PPR* SUCCESSFULLY LOADED.
  3967. * OR IF REQUEST WAS FOR A CONCURRENT PP.
  3968. * .EQ. 0 IF *PPR* NOT SUCCESSFULLY LOADED.
  3969. * BML MESSAGE ISSUED WITH PP NUMBER (SYMPTOM
  3970. * CODE INDICATES WHETHER OPERATION WAS SUCCESSFUL).
  3971. * IF UNABLE TO COMPLETE DEADSTART/LOAD, THE PP
  3972. * IS IDLED AND ITS INPUT REGISTER SET TO ***.
  3973. *
  3974. * USES T1 - T3, T6, T7, CN - CN+4.
  3975. *
  3976. * CALLS IBM, IPP, NEC, PSC, SDC.
  3977. *
  3978. * MACROS DCHAN, DELAY, PAUSE, READMR, WRITMR.
  3979.  
  3980.  
  3981. DPL11 LDD T7
  3982. DCHAN DROP CHANNEL
  3983. LDN 0 CLEAR CHANNEL ASSIGNED FLAG
  3984. STM CHFL
  3985. LDC /COMSDFS/HS0113 SET NPP RETURNED SYMPTOM CODE
  3986. DPL12 STD T1
  3987. LDN ZERL CLEAR DATA WORD
  3988. CRD CN
  3989. LDD T4 SET PP NUMBER
  3990. LPN 37
  3991. STD CN+4
  3992. LDC /COMSDFS/HM0240 SET MESSAGE ID
  3993. RJM IBM ISSUE BML MESSAGE
  3994. LDN 1 SET SUCCESSFUL LOAD STATUS
  3995.  
  3996. DPL SUBR ENTRY/EXIT
  3997. LDM PPCA SET PP INPUT REGISTER ADDRESS
  3998. RAD T3
  3999. LDD CL+2 CHECK BAD PP BEING RETURNED
  4000. SHN 21-13
  4001. PJN DPL2 IF PP IS OK
  4002. LDD T4
  4003. LPN 40
  4004. ZJN DPL1 IF BAD NPP
  4005. LDK /COMSDFS/HS0124-/COMSDFS/HS0123
  4006. DPL1 ADC /COMSDFS/HS0123 SET BAD PP RETURNED SYMPTOM CODE
  4007. STD T1
  4008. LDN ZERL CLEAR DATA WORD
  4009. CRD CN
  4010. LDD T4 SET PP NUMBER
  4011. LPN 37
  4012. STD CN+4
  4013. LDC /COMSDFS/HM0240 SET MESSAGE ID
  4014. RJM IBM ISSUE BML MESSAGE
  4015. LJM DPL10 FLAG DISABLED PP AND RETURN
  4016.  
  4017. DPL2 LDD T4
  4018. LPN 40
  4019. ZJN DPL3 IF NOT CONCURRENT PP
  4020. LDN ZERL
  4021. CRD CM
  4022. LDN 2 SET RETURN CPP SUBFUNCTION
  4023. STD CM+1
  4024. LDD T4
  4025. LPN 37
  4026. STD CM+4 SET CPP NUMBER
  4027. MONITOR CPRM RETURN CPP
  4028. LDC /COMSDFS/HS0115 SET CPP RETURNED SYMPTOM CODE
  4029. UJP DPL12 ISSUE BML MESSAGE AND RETURN
  4030.  
  4031. DPL3 LDN 10 INITIALIZE DEADSTART/LOAD ATTEMPT COUNT
  4032. STD T2
  4033. LDD T3 SET UP *IA*, *OA*, *MA*, *CP* FOR THIS PP
  4034. STM PBUF+IA+5
  4035. ADN 1
  4036. STM PBUF+OA+5
  4037. ADN 1
  4038. STM PBUF+MA+5
  4039. LDN NCPL SET SYSTEM CONTROL POINT ADDRESS
  4040. CRD CN
  4041. AOD CN+1
  4042. SHN 7
  4043. STM PBUF+CP+5
  4044. DPL4 RJM SDC SELECT DEADSTART CHANNEL
  4045. RJM PSC PRESET CHANNEL INSTRUCTIONS
  4046. DPLA ACN **+40 ACTIVATE CHANNEL
  4047.  
  4048. * DEADSTART PP.
  4049.  
  4050. READMR RBUF,,DEMR READ EC REGISTER
  4051. LDM RBUF+4 SET PP NUMBER
  4052. DPLB SCN 37
  4053. * SCN 77 (IF IOU MODEL I2)
  4054. LMD T4
  4055. DPLC LMN 0
  4056. * LMN 40 (SET AUTO MODE BIT IF IOU MODEL I2)
  4057. STM RBUF+4
  4058. LDM RBUF+5 SET CHANNEL NUMBER
  4059. SCN 37
  4060. LMD T7
  4061. STM RBUF+5
  4062. LDM RBUF+6 SET LOAD MODE BIT
  4063. SCN 37
  4064. ADN 20
  4065. STM RBUF+6
  4066. LDM RBUF+7 SET ENABLE BIT
  4067. SCN 40
  4068. ADN 40
  4069. STM RBUF+7
  4070. WRITMR RBUF,,DEMR WRITE EC REGISTER
  4071. RJM NEC NORMALIZE EC REGISTER
  4072.  
  4073. * LOAD *PPR*.
  4074.  
  4075. LDC MSFW+1 OUTPUT START ADDRESS
  4076. DPLD OAN **+40
  4077. DELAY
  4078. DPLE EJM DPL5,0 IF CHANNEL ACCEPTED WORD
  4079. LJM DPL7 PROCESS TIME OUT
  4080.  
  4081. DPL5 LDC PPFW-1
  4082. DPLF OAM PBUF+6,0 OUTPUT *PPR*
  4083. DPLG SFM DPL7,0 IF PARITY ERRORS
  4084. DPLH DCN **+40 DISCONNECT CHANNEL TO START PP
  4085.  
  4086. * WAIT FOR PP TO INITIALIZE.
  4087. *
  4088. * NOTE - THE DELAY MUST BE LONG ENOUGH TO ALLOW *PPR*
  4089. * PRESET TO COMPLETE (AND ISSUE THE *DPPM* TO CLEAR
  4090. * THE INPUT REGISTER). IF A TIME OUT OCCURS HERE,
  4091. * AND THE PP IS DEADSTARTED AGAIN AFTER IT IS ALREADY
  4092. * EXECUTING, THE RESULTS ARE UNPREDICTABLE.
  4093.  
  4094. LDD TH SET DELAY LOOP COUNT
  4095. STD T6
  4096. DPL6 PAUSE NE
  4097. DELAY
  4098. SOD T6
  4099. ZJN DPL8 IF TIME OUT
  4100. LDD T3 CHECK PP INPUT REGISTER
  4101. CRD CN
  4102. LDD CN+1
  4103. SCN 77
  4104. SHN 6
  4105. LMD CN
  4106. LMC 3RP*V
  4107. ZJN DPL6 IF PP STILL ASSIGNED TO NOS/VE
  4108. LJM DPL11 RETURN
  4109.  
  4110. * PROCESS TIME OUT AND PARITY ERRORS.
  4111.  
  4112. DPL7 BSS 0
  4113. DPLI DCN **+40 DISCONNECT CHANNEL
  4114. DPL8 LDD T7
  4115. DCHAN DROP CHANNEL
  4116. LDN 0 CLEAR CHANNEL RESERVED FLAG
  4117. STM CHFL
  4118. SOD T2 DECREMENT DEADSTART ATTEMPT COUNT
  4119. ZJN DPL9 IF DEADSTART NOT TO BE RETRIED
  4120. LJM DPL4 ATTEMPT DEADSTART AGAIN
  4121.  
  4122. * IDLE PP AND SET UNUSABLE IF UNABLE TO DEADSTART.
  4123.  
  4124. DPL9 LDC /COMSDFS/HS0120 SET SYMPTOM CODE
  4125. STD T1
  4126. LDN ZERL CLEAR DATA WORD
  4127. CRD CN
  4128. LDD T4 SET PP NUMBER
  4129. STD CN+4
  4130. LDC /COMSDFS/HM0240 SET MESSAGE ID
  4131. RJM IBM ISSUE BML MESSAGE
  4132. RJM IPP IDLE PP
  4133. DPL10 LDD T3
  4134. CWM DPLJ,ON SET INPUT REGISTER TO ***
  4135. LDN 0
  4136. LJM DPLX RETURN
  4137. GCP SPACE 4,25
  4138. ** GCP - GET CURRENT STATUS OF PP-S.
  4139. *
  4140. * ENTRY (PPCA) = ADDRESS OF PP COMMUNICATION AREA.
  4141. * (CL+1) = TYPE OF PP BEING REQUESTED.
  4142. * = 0 - NPP 0-11B ON 810/830 SYSTEMS,
  4143. * ANY NPP ON OTHER SYSTEMS.
  4144. * = 1 - NPP 20B-31B ON 810/830 WITH MORE THAN
  4145. * 10 NPP-S, ANY NPP ON OTHER SYSTEMS.
  4146. * = 2 - CPP 0-4.
  4147. * = 3 - CPP 5-11B.
  4148. * = 4 - PARTNER PAIR OF NPP-S ON 810/830 WITH
  4149. * MORE THAN 10 NPP-S, ANY TWO NPP-S
  4150. * ON OTHER SYSTEMS.
  4151. * (DA) = NUMBER OF NPP-S IN SYSTEM.
  4152. * (DB) = NUMBER OF CPP-S IN SYSTEM.
  4153. *
  4154. * EXIT (T4) = NUMBER OF AVAILABLE UPPER BANK PP-S
  4155. * IF MORE THAN 10 PP-S IN SYSTEM.
  4156. * (T5) = NUMBER OF DEDICATED NPP-S OR CPP-S.
  4157. *
  4158. * USES T1, T2, T3, T4, T5, T7, CM - CM+4, CN - CN+4.
  4159.  
  4160.  
  4161. GCP SUBR ENTRY/EXIT
  4162. LDN 0
  4163. STD T4 INITIALIZE COUNT OF UPPER PP-S AVAILABLE
  4164. STD T5 INITIALIZE COUNT OF DEDICATED PP-S
  4165. LDN 12
  4166. STD T2 INITIALIZE LOOP COUNTER FOR LOWER BARREL
  4167. LDM PPCA SET UP BASE PP INPUT REGISTER ADDRESS
  4168. STD T3
  4169. LDD CL+1
  4170. LPN VCPT
  4171. ZJN GCP1 IF REQUESTING NPP OR PAIR
  4172. LDD DA BIAS PAST NPP COMMUNICATIONS AREAS
  4173. SHN 3
  4174. RAD T3
  4175. LDD DB
  4176. UJN GCP2 SET CPP COUNT
  4177.  
  4178. GCP1 LDD DA NPP COUNT
  4179. GCP2 SBN 12
  4180. PJN GCP4 IF TEN OR MORE PP-S
  4181. RAD T2 ADJUST COUNTER
  4182. GCP3 LDN 0
  4183. GCP4 STD T1 UPPER BARREL PP COUNT
  4184. GCP5 LDN 0 INITIALIZE TABLE INDEX
  4185. STD T7
  4186. LDD T3 READ NEXT INPUT REGISTER
  4187. CRD CN
  4188. GCP6 LDD CN CHECK FOR DEDICATED PP
  4189. LMM TDPP,T7
  4190. NJN GCP7 IF NO MATCH
  4191. LDD CN+1
  4192. SCN 77
  4193. LMM TDPP+1,T7
  4194. NJN GCP7 IF NO MATCH
  4195. AOD T5 COUNT DEDICATED PP
  4196. UJN GCP8 READ NEXT INPUT REGISTER
  4197.  
  4198. GCP7 LDN 2 INCREMENT INDEX
  4199. RAD T7
  4200. SBN TDPPL
  4201. MJN GCP6 IF NOT END OF TABLE
  4202. GCP8 LDN 10 ADVANCE TO NEXT INPUT REGISTER
  4203. RAD T3
  4204. SOD T2
  4205. NJN GCP5 IF NOT FINISHED WITH THIS BARREL
  4206. LDD T1 PP COUNT FOR NEXT BARREL
  4207. ZJN GCP9 IF NO PP-S LEFT TO CHECK
  4208. STD T2 LOOP COUNTER FOR NEXT BARREL
  4209. ADD T5 CURRENT TOTAL DEDICATED PP-S
  4210. STD T4 DEDICATED LOWER PP-S PLUS TOTAL UPPER PP-S
  4211. UJP GCP3 CHECK NEXT BARREL
  4212.  
  4213. GCP9 LDD T4 DEDICATED LOWER PP-S PLUS TOTAL UPPER PP-S
  4214. SBD T5 REDUCE BY TOTAL DEDICATED PP-S
  4215. STD T4 AVAILABLE UPPER BARREL PP-S
  4216. LJM GCPX RETURN
  4217. TDPP SPACE 4,10
  4218. ** TDPP - TABLE OF DEDICATED PP-S.
  4219. *
  4220. * TWO WORD ENTRY.
  4221. *
  4222. *T, 18/NAME OF DEDICATED PP ROUTINE, 6/0
  4223.  
  4224.  
  4225. TDPP BSS 0 TABLE OF DEDICATED PP-S
  4226. VFD 24/3L*VP NOS/VE PP
  4227. VFD 24/0LMTR
  4228. VFD 24/0LDSD
  4229. VFD 24/0LDIS
  4230. VFD 24/0LO26
  4231. VFD 24/0L1CD
  4232. VFD 24/0L1HP
  4233. VFD 24/0L1XM
  4234. VFD 24/0L1TS
  4235. VFD 24/0L1TN
  4236. VFD 24/0L1TM
  4237. VFD 24/0LPIP
  4238. VFD 24/0LNDR
  4239. VFD 24/0LDFT
  4240. VFD 24/0LSCD
  4241. VFD 24/0LCPD
  4242. VFD 24/0LMDD
  4243. VFD 24/0LMTE
  4244. VFD 24/3L***
  4245.  
  4246. TDPPL EQU *-TDPP LENGTH OF DEDICATED PP TABLE
  4247. IPP SPACE 4,15
  4248. ** IPP - IDLE PP.
  4249. *
  4250. * ENTRY (T3) = PP INPUT REGISTER ADDRESS.
  4251. * (PPCA) = PP COMMUNICATION AREA ADDRESS.
  4252. * (EC) = ELEMENT CONNECT CODE FOR IDLE PP.
  4253. *
  4254. * EXIT (A) = SYMPTOM CODE FOR PP ASSIGNMENT IF SUCCESSFUL.
  4255. * .LT. 0 IF UNABLE TO IDLE.
  4256. * (T5) = PP NUMBER.
  4257. * BML MESSAGE ISSUED IF UNABLE TO IDLE.
  4258. *
  4259. * USES T1, T2, T5, CN - CN+4.
  4260. *
  4261. * CALLS IBM, NEC.
  4262. *
  4263. * MACROS DELAY, LOCKMR, PAUSE, READMR, WRITMR.
  4264.  
  4265.  
  4266. IPP SUBR ENTRY/EXIT
  4267. LDD T3 COMPUTE NUMBER OF PP
  4268. SBM PPCA
  4269. SHN -3
  4270. STD T5
  4271. SBN 12
  4272. MJN IPP2 IF PP NUMBER 0 - 11
  4273. SBN 12
  4274. MJN IPP1 IF PP NUMBER 20 - 31
  4275. ADN 40 ADJUST CPP NUMBER
  4276. STD T5
  4277. LDC /COMSDFS/HS0114 CPP ASSIGNMENT SYMPTOM CODE
  4278. UJN IPPX RETURN
  4279.  
  4280. IPP1 LDN 6 ADJUST UPPER BANK PP NUMBER
  4281. RAD T5
  4282. IPP2 READMR RBUF,,DEMR READ EC REGISTER
  4283. LDM RBUF+4 SET PP NUMBER
  4284. IPPA SCN 37
  4285. * SCN 77 (IF IOU MODEL I2)
  4286. LMD T5
  4287. IPPB LMN 0
  4288. * LMN 40 (SET AUTO MODE BIT IF IOU MODEL I2)
  4289. STM RBUF+4
  4290. LDM RBUF+6 SET IDLE MODE BIT, K REGISTER (10B)
  4291. SCN 37
  4292. ADN 6
  4293. STM RBUF+6
  4294. LDM RBUF+7 SET ENABLE BIT
  4295. SCN 40
  4296. ADN 40
  4297. STM RBUF+7
  4298. LDN 10 INITIALIZE TIME OUT COUNT
  4299. STD T2
  4300.  
  4301. * LOOP UNTIL PP IS IDLED.
  4302.  
  4303. IPP3 LOCKMR SET GET LONG TERM INTERLOCK
  4304. WRITMR RBUF,,DEMR WRITE EC REGISTER
  4305. READMR IBUF,,ISTR READ INPUT STATUS REGISTER
  4306. LOCKMR CLEAR CLEAR LONG TERM INTERLOCK
  4307. LDM IBUF+4 CHECK IF PP IN IDLE MODE
  4308. LPN 3
  4309. SHN 10
  4310. ADM IBUF+5
  4311. SHN 10
  4312. ADM IBUF+6
  4313. LMC 107700
  4314. ZJP IPP5 IF PP IDLING
  4315. SOD T2
  4316. ZJN IPP4 IF TIME OUT
  4317. PAUSE NE
  4318. DELAY
  4319. LJM IPP3 LOOP
  4320.  
  4321. * ISSUE BML MESSAGE.
  4322.  
  4323. IPP4 LDC /COMSDFS/HS0121 SET SYMPTOM CODE
  4324. STD T1
  4325. LDN ZERL CLEAR DATA WORD
  4326. CRD CN
  4327. LDD T5 SET PP NUMBER
  4328. STD CN+4
  4329. LDC /COMSDFS/HM0240 SET MESSAGE ID
  4330. RJM IBM ISSUE BML MESSAGE
  4331. LDD T3 SET *** IN INPUT REGISTER
  4332. CWM DPLJ,ON
  4333. RJM NEC NORMALIZE EC REGISTER
  4334. LCN 1
  4335. LJM IPPX RETURN
  4336.  
  4337. * NORMALIZE EC REGISTER.
  4338.  
  4339. IPP5 RJM NEC NORMALIZE EC REGISTER
  4340. LDC /COMSDFS/HS0112 NPP ASSIGNMENT SYMPTOM CODE
  4341. LJM IPPX RETURN
  4342. PSC SPACE 4,10
  4343. ** PSC - PRESET CHANNEL INSTRUCTIONS.
  4344. *
  4345. * ENTRY (T7) = CHANNEL NUMBER.
  4346. *
  4347. * EXIT CHANNEL INSTRUCTIONS MODIFIED.
  4348. *
  4349. * USES T1, T5.
  4350.  
  4351.  
  4352. PSC SUBR ENTRY/EXIT
  4353. LDC TPSC-1 INITIALIZE CHANNEL TABLE ADDRESS
  4354. STD T1
  4355. PSC1 AOD T1 ADVANCE CHANNEL TABLE
  4356. LDI T1
  4357. ZJN PSCX IF END OF TABLE
  4358. STD T5 MODIFY CHANNEL INSTRUCTION
  4359. LDI T5
  4360. SCN 37
  4361. LMD T7
  4362. STI T5
  4363. UJN PSC1 LOOP
  4364.  
  4365.  
  4366. ** TPSC - TABLE OF CHANNEL INSTRUCTIONS.
  4367.  
  4368. TPSC BSS 0
  4369. CON DPLA
  4370. CON DPLD
  4371. CON DPLE
  4372. CON DPLF
  4373. CON DPLG
  4374. CON DPLH
  4375. CON DPLI
  4376. CON MREA
  4377. CON 0 END OF TABLE
  4378. SPB SPACE 4,15
  4379. ** SPB - SET PP BOUNDS BIT.
  4380. *
  4381. * ENTRY (A) = 6/BIT VALUE, 12/PP NUMBER.
  4382. * BIT VALUE = 1 TO SET LOWER PP.
  4383. * = 0 TO SET UPPER PP.
  4384. * (EC) = IOU CONNECT CODE.
  4385. * (SPBA) = NIO BARREL CONFIGURATION.
  4386. * (SPBB) = NUMBER OF NIO BARRELS.
  4387. *
  4388. * EXIT PP OS BOUNDS REGISTER SET FOR GIVEN PP.
  4389. *
  4390. * USES T2, T7.
  4391. *
  4392. * MACROS LOCKMR, READMR, WRITMR.
  4393.  
  4394.  
  4395. SPB SUBR ENTRY/EXIT
  4396. STD T7 SAVE LOGICAL PP NUMBER
  4397. SHN -14
  4398. STM SPBE SAVE BOUNDS BIT VALUE
  4399. LDN 0
  4400. STD T2
  4401. LDD T7
  4402. SBN 40
  4403. MJN SPB2 IF NOT CONCURRENT IOU
  4404. STD T7
  4405. SPBG UJN SPB0 (IOU MODEL 40)
  4406. * PSN (IOU MODEL 42)
  4407.  
  4408. LDN 3
  4409. STD T2
  4410. LDK IOSB USE NIO REGISTER
  4411. UJN SPB1.1 READ AND ALTER OS BOUNDS REGISTER
  4412.  
  4413. SPB0 SBN 5
  4414. MJN SPB1 IF IN LOWER OF THE TWO BARRELS
  4415. STD T7
  4416. AOD T2
  4417. SPB1 LDK OBCR SET UP FOR CONCURRENT OS BOUNDS
  4418. SPB1.1 STD RN
  4419. UJN SPB5 READ AND ALTER OS BOUNDS REGISTER
  4420.  
  4421. SPB2 ADN 20
  4422. MJN SPB3 IF IN LOWER 10 PP-S
  4423. STD T7
  4424. AOD T2
  4425. AOD T2
  4426. SPB3 LDD T7
  4427. SBN 5
  4428. MJN SPB4 IF IN LOWER BARREL OF THE TWO
  4429. STD T7
  4430. AOD T2
  4431. SPB4 LDK IOSB SET UP FOR NON-CONCURRENT OS BOUNDS
  4432. STD RN
  4433. LDD T2
  4434. SPBA ADN **
  4435. * ADN 0 (BARREL RECONFIGURATION)
  4436. * ADN 1
  4437. * ADN 2
  4438. * ADN 3
  4439. STD T2
  4440. SPBB SBN **
  4441. * SBN 1 (NUMBER OF BARRELS)
  4442. * SBN 2
  4443. * SBN 3
  4444. * SBN 4
  4445. MJN SPB5 IF NO OVERFLOW
  4446. STD T2
  4447. SPB5 LDC SHNI SET BIT SHIFT INSTRUCTION
  4448. ADD T7
  4449. STM SPBC
  4450. STM SPBF
  4451. LOCKMR SET
  4452. READMR RBUF READ APPLICABLE CURRENT OS BOUNDS DATA
  4453. LDM RBUF,T2
  4454. STM SPBD
  4455. LCN 1
  4456. SPBC SHN **
  4457. LPC **
  4458. SPBD EQU *-1
  4459. STM RBUF,T2
  4460. LDC **
  4461. SPBE EQU *-1
  4462. SPBF SHN **
  4463. LMM RBUF,T2 ADD NEW BIT TO REGISTER DATA
  4464. STM RBUF,T2
  4465. WRITMR RBUF SET NEW OS BOUNDS REGISTER
  4466. LOCKMR CLEAR
  4467. LJM SPBX RETURN
  4468. SRA SPACE 4,10
  4469. ** SRA - SET NOS REQUEST HEADER ADDRESS.
  4470. *
  4471. * EXIT (A) = ADDRESS OF NOS REQUEST HEADER.
  4472.  
  4473.  
  4474. SRA SUBR ENTRY/EXIT
  4475. SRAA LDC ** (ADDRESS OF NOS REQUEST HEADER)
  4476. UJN SRAX RETURN
  4477. VPN SPACE 4,15
  4478. ** VPN - VALIDATE PP NUMBER.
  4479. *
  4480. * ENTRY (A) = PP NUMBER.
  4481. * (DA) = NUMBER OF SYSTEM NPP-S.
  4482. * (DB) = NUMBER OF SYSTEM CPP-S.
  4483. *
  4484. * EXIT (A) = 0, IF ASSIGNED TO NOS/VE.
  4485. * = *ESIR*, IF INCORRECT NUMBER.
  4486. * = *ESPP*, IF NOT ASSIGNED TO NOS/VE.
  4487. * = *ESCP*, IF CONCURRENT PP NOT PRESENT.
  4488. * (T3) = PP OFFSET INTO COMMUNICATION AREA.
  4489. * (T4) = PP NUMBER.
  4490. * (CM - CM+4) = INPUT REGISTER.
  4491. *
  4492. * USES T3, T4, CM - CM+4.
  4493.  
  4494.  
  4495. VPN7 LDD T4
  4496. VPN8 SHN 3
  4497. STD T3
  4498. ADM PPCA CHECK IF ASSIGNED TO NOS/VE
  4499. CRD CM
  4500. LDD CM+1
  4501. SCN 77
  4502. SHN 6
  4503. LMD CM
  4504. LMC 3RP*V
  4505. ZJN VPNX IF ASSIGNED TO NOS/VE
  4506. LDN ESPP SET ERROR CODE
  4507.  
  4508. VPN SUBR ENTRY/EXIT
  4509. STD T4
  4510. SBN 10D
  4511. MJN VPN7 IF LOWER BANK PP
  4512. SBN 40-10D
  4513. PJN VPN5 IF CONCURRENT PP
  4514. LDD DA
  4515. SBN 11D
  4516. PJN VPN3 IF UPPER PP-S EXIST ON SYSTEM
  4517. VPN1 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
  4518. VPN2 UJN VPNX RETURN
  4519.  
  4520. VPN3 LDD T4
  4521. SBN 20
  4522. MJN VPN1 IF 12 .LE. PP NUMBER .LE. 17
  4523. SBN 32-20
  4524. PJN VPN1 IF PP NUMBER .GT. 31
  4525. SBK 6-32
  4526. VPN4 LJM VPN8 CHECK IF VE ASSIGNED AND RETURN
  4527.  
  4528. VPN5 SBD DB
  4529. MJN VPN6 IF AN EXISTING CPP NUMBER
  4530. LDD T4
  4531. SBN 52
  4532. PJN VPN1 IF NOT A VALID CPP NUMBER
  4533. LDK ESCP SET CONCURRENT PP NOT PRESENT (*ESCP*)
  4534. UJN VPN2 RETURN
  4535.  
  4536. VPN6 LDD T4
  4537. SBN 6+6
  4538. UJN VPN4 CHECK IF VE ASSIGNED AND RETURN
  4539. SPACE 4,10
  4540. ** CODE PAST THIS POINT MAY BE OVERLAID BY *PBUF*.
  4541. *
  4542. * *PBUF* IS USED ONLY FOR THE *RSP* FUNCTION.
  4543. * *PBUF* MUST HAVE TWO RESERVED WORDS PRECEEDING IT FOR DISK
  4544. * LINKAGE BYTES.
  4545.  
  4546. ERRNG PBUF-*-2 ERROR IF PBUF OVERLAYS EARLIER CODE
  4547. TITLE SUBROUTINES OVERLAYABLE BY *PBUF*.
  4548. CUA SPACE 4,10
  4549. ** CUA - CHECK IF UNIT ASSIGNED TO NOS/VE.
  4550. *
  4551. * ENTRY (DC) = CORRESPONDING BIT NUMBER OF UNIT.
  4552. * (CN - CN+4) = EST ENTRY.
  4553. *
  4554. * EXIT (A) .LT. 0 IF NOT MASS STORAGE DEVICE.
  4555. * = 0 IF UNIT NOT ASSIGNED TO NOS/VE.
  4556. * = *ESAA* STATUS IF UNIT ASSIGNED TO NOS/VE.
  4557. *
  4558. * USES CM - CM+4.
  4559.  
  4560.  
  4561. CUA2 LCN 0 SET NOT MASS STORAGE FLAG
  4562.  
  4563. CUA SUBR ENTRY/EXIT
  4564. LDD CN
  4565. SHN 21-13
  4566. PJN CUA2 IF NOT MASS STORAGE DEVICE
  4567. LDD CN+4 GET UNIT ASSIGNMENT STATUS
  4568. SHN 3
  4569. ADN NVGL
  4570. CRD CM
  4571. LDC SHNI+21 SET SHIFT COUNT
  4572. SBD DC
  4573. STM CUAA
  4574. LDD CM+4
  4575. CUAA SHN **
  4576. MJN CUA1 IF UNIT ASSIGNED TO NOS/VE
  4577. LDN 0 SET UNIT NOT ASSIGNED STATUS
  4578. UJN CUAX RETURN
  4579.  
  4580. CUA1 LDN ESAA SET UNIT ALREADY ASSIGNED STATUS
  4581. UJN CUAX RETURN
  4582. DCA SPACE 4,10
  4583. ** DCA - DETERMINE CHANNEL AVAILABILITY.
  4584. *
  4585. * ENTRY (T2) = CHANNEL NUMBER.
  4586. * (RBUF - RBUF+CTALL*5) = CHANNEL STATUS TABLE.
  4587. *
  4588. * EXIT (A) = 0 IF CHANNEL PREVIOUSLY ASSIGNED.
  4589. * (CM+1) .NE. 0 IF CHANNEL ASSIGNED.
  4590. *
  4591. * USES T3, T4, CM - CM+4.
  4592. *
  4593. * CALLS SEC, VRC.
  4594. *
  4595. * MACROS MONITOR.
  4596.  
  4597.  
  4598. DCA SUBR ENTRY/EXIT
  4599. LDM RBUF,T2
  4600. SHN 21-5
  4601. PJN DCA1 IF CHANNEL IS UP
  4602. LJM DCA8 CHECK EQUIPMENT ON DOWN CHANNEL
  4603.  
  4604. * CHANNEL IS UP. SEARCH FOR EQUIPMENT CONFIGURED ON IT.
  4605.  
  4606. DCA1 LDD T2 CHECK IF CONSOLE CHANNEL
  4607. LMN CHDS
  4608. ZJN DCA4 IF CONSOLE CHANNEL
  4609. LDD T2
  4610. SBN 20
  4611. MJN DCA2 IF CHANNEL 0-17B
  4612. SBN 40-20
  4613. MJN DCA2 IF CHANNEL 20B-37B
  4614. SBN 56-40
  4615. DCA2 ADN 4
  4616. PJN DCA4 IF REQUESTED 14B-17B, 34B-37B, OR OVER 51B
  4617. DCA3 LDD LE
  4618. RJM SEC SEARCH FOR EQUIPMENT ON THIS CHANNEL
  4619. ZJN DCA6 IF NO EQUIPMENT FOUND
  4620. DCA4 LDN 0 SET CHANNEL NOT ASSIGNED
  4621. STD CM+1
  4622. LDN 1
  4623. DCA5 UJN DCAX RETURN
  4624.  
  4625. DCA6 STD CM+1 CLEAR EST ORDINAL
  4626. STD CM+4 CLEAR MUX FLAG
  4627. LDN DNCS SET SUBFUNCTION
  4628. STD CM+2
  4629. LDD T2 SET CHANNEL NUMBER
  4630. STD CM+3
  4631. MONITOR SEQM DOWN UNCONFIGURED CHANNEL
  4632. DCA7 RJM VRC VE RESERVE CHANNEL
  4633. LDD T4
  4634. UJN DCA5 RETURN
  4635.  
  4636. * CHANNEL IS DOWN. CHECK FOR NON-TRANSFERRABLE EQUIPMENT.
  4637.  
  4638. DCA8 LDD LE
  4639. DCA9 RJM SEC SEARCH FOR EQUIPMENT ON THIS CHANNEL
  4640. PJN DCA7 IF NO EQUIPMENT FOUND
  4641. LDN 0 INITIALIZE TABLE INDEX
  4642. STD T4
  4643. DCA10 LDM TEQT,T4
  4644. ZJN DCA3 IF END OF TABLE
  4645. LMD CM+3
  4646. LPC 3777
  4647. ZJN DCA9 IF EQUIPMENT IS TRANSFERRABLE
  4648. AOD T4
  4649. UJN DCA10 CHECK NEXT TABLE ENTRY
  4650.  
  4651. TEQT SPACE 4,10
  4652. ** TEQT - TABLE OF TRANSFERRABLE EQUIPMENT.
  4653. *
  4654. * ONE WORD ENTRY.
  4655. *
  4656. *T 12/2RMN
  4657. * MN = MNEMONIC OF EQUIPMENT THAT MAY BE TRANSFERRED TO NOS/VE.
  4658.  
  4659.  
  4660. TEQT BSS 0 TABLE OF TRANSFERRABLE EQUIPMENT
  4661. VFD 12/2RAT
  4662. VFD 12/2RCT
  4663. VFD 12/2RMT
  4664. VFD 12/2RNT
  4665. VFD 12/2RDJ
  4666. VFD 12/2RDL
  4667. VFD 12/2RDM
  4668. VFD 12/2RDQ
  4669. VFD 12/0 END OF TABLE
  4670. SEC SPACE 4,15
  4671. ** SEC - SEARCH FOR EQUIPMENT ON SPECIFIED CHANNEL.
  4672. *
  4673. * ENTRY (A) = EST ORDINAL+1 FROM WHICH TO START SEARCH.
  4674. * = 0 IF (T3) = STARTING EST ORDINAL+1.
  4675. * (T2) = CHANNEL NUMBER.
  4676. *
  4677. * EXIT (A) = 0 IF NONE FOUND.
  4678. * = (T3) = EST ORDINAL OF EQUIPMENT FOUND.
  4679. * (CM - CM+4) = EST ENTRY WORD *EQDE*.
  4680. *
  4681. * USES T1, T3, CM - CM+4.
  4682. *
  4683. * MACROS SFA.
  4684.  
  4685.  
  4686. SEC3 LDD T3 RETURN EST ORDINAL
  4687.  
  4688. SEC SUBR ENTRY/EXIT
  4689. ZJN SEC1 IF NOT INITIAL CALL
  4690. STD T3 SAVE EST ORDINAL
  4691. SEC1 SOD T3 DECREMENT EST ORDINAL
  4692. SBN NOPE-1
  4693. ZJN SECX IF END OF EST
  4694. SFA EST,T3
  4695. ADK EQDE
  4696. CRD CM READ EST ENTRY
  4697. LDD CM+3
  4698. ZJN SEC1 IF NULL ENTRY
  4699. LMC 2RDE
  4700. ZJN SEC1 IF *DE* EQUIPMENT
  4701. LDN CM
  4702. STD T1
  4703. SEC2 AOD T1
  4704. LMN CM+3
  4705. ZJN SEC1 IF BOTH CHANNELS CHECKED
  4706. LDI T1
  4707. ZJN SEC2 IF CHANNEL NOT PRESENT
  4708. LMD T2
  4709. LPN 77
  4710. ZJN SEC3 IF CHANNEL MATCH
  4711. UJN SEC2 CHECK NEXT CHANNEL
  4712. SEE SPACE 4,20
  4713. ** SEE - SEARCH EST FOR EQUIPMENT.
  4714. *
  4715. * ENTRY (CL - CL+4) = 6/CH, 6/EQ, 6/UN, 42/0.
  4716. * CH = CHANNEL TO BE MATCHED.
  4717. * EQ = EQUIPMENT (CONTROLLER) NUMBER TO BE MATCHED.
  4718. * UN = UNIT NUMBER TO BE MATCHED.
  4719. *
  4720. * EXIT (A) .LT. 0 IF EST ENTRY NOT FOUND.
  4721. * (T7) = EST ORDINAL IF ENTRY FOUND.
  4722. * (CN - CN+4) = EST ENTRY.
  4723. * (DC) = BIT NUMBER OF UNIT CORRESPONDING TO POSITION
  4724. * IN *DDLL* UNIT LIST.
  4725. *
  4726. * USES DA, DB, DC, T1, T3 - T5, T7, CM - CM+4, CN - CN+4.
  4727. *
  4728. * MACROS SFA.
  4729.  
  4730. SEE10 LCN 0 RETURN NOT FOUND FLAG
  4731.  
  4732. SEE SUBR ENTRY/EXIT
  4733. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  4734. STD T7
  4735. LDD CL SAVE CHANNEL NUMBER
  4736. SHN 14
  4737. STD T4
  4738. SHN -14
  4739. STD T5 SAVE EQUIPMENT (CONTROLLER) NUMBER
  4740. LDD CL+1 SAVE UNIT NUMBER
  4741. SHN -6
  4742. STD T3
  4743. SEE1 AOD T7 ADVANCE EST ORDINAL
  4744. LMD LE
  4745. ZJN SEE10 IF END OF EST
  4746. SFA EST,T7
  4747. ADK EQDE
  4748. CRD CN READ EST ENTRY
  4749. LDD CN+3
  4750. ZJN SEE1 IF NULL ENTRY
  4751. LMC 2RDE
  4752. ZJN SEE1 IF *DE* EQUIPMENT
  4753. LDN CN
  4754. STD T1
  4755. SEE2 AOD T1
  4756. LMN CN+3
  4757. ZJN SEE1 IF BOTH CHANNELS CHECKED
  4758. LDI T1
  4759. ZJN SEE2 IF CHANNEL NOT PRESENT
  4760. LMD T4
  4761. LPN 77
  4762. NJN SEE2 IF CHANNEL DOESN-T MATCH
  4763. LDD CN
  4764. SHN 21-13
  4765. MJN SEE4 IF MASS STORAGE DEVICE
  4766.  
  4767. * CHECK NON-MASS STORAGE DEVICE.
  4768.  
  4769. LDD CN+4 CHECK EQUIPMENT (CONTROLLER) NUMBER
  4770. SHN -11
  4771. LMD T5
  4772. SEE2.1 NJN SEE1 IF DIFFERENT EQUIPMENT NUMBER
  4773. LDD CN+4 CHECK FOR MATCHING UNIT NUMBER
  4774. LPN 17
  4775. LMD T3
  4776. SEE3 NJN SEE2.1 IF DIFFERENT UNIT NUMBER
  4777. LJM SEEX RETURN
  4778.  
  4779. * CHECK MASS STORAGE DEVICE.
  4780.  
  4781. SEE4 LDD CN
  4782. SHN 21-7
  4783. PJN SEE5 IF NOT *LDAM* TYPE
  4784. LDD T5
  4785. NJN SEE3 IF NON-ZERO EQUIPMENT (CONTROLLER) NUMBER
  4786. UJN SEE6 CHECK FOR MATCHING UNIT NUMBER
  4787.  
  4788. SEE5 LDD CN+2
  4789. SHN -11
  4790. LMD T5
  4791. NJN SEE3 IF EQUIPMENT (CONTROLLER) NUMBERS DIFFER
  4792.  
  4793. * CHECK UNIT NUMBER.
  4794.  
  4795. SEE6 LDD CN+4 READ UNIT LIST FROM MST
  4796. SHN 3
  4797. ADN DDLL
  4798. CRD CM
  4799. LDD CM
  4800. LPN 7
  4801. STD DA SAVE NUMBER OF UNITS
  4802. LDN 4 INITIALIZE NUMBER OF BYTES IN UNIT LIST
  4803. STD DB
  4804. LDN 0 INITIALIZE CORRESPONDING *NVGL* BIT NUMBE
  4805. STD DC
  4806. SEE7 LDM CM,DB CHECK FOR MATCHING UNIT NUMBERS
  4807. LPN 77
  4808. LMD T3
  4809. ZJN SEE9 IF UNIT NUMBERS MATCH
  4810. AOD DC INCREMENT CORRESPONDING BIT NUMBER
  4811. SOD DA DECREMENT NUMBER OF UNITS
  4812. SEE8 MJN SEE3 IF END OF UNIT LIST
  4813. LDM CM,DB
  4814. SHN -6
  4815. LMD T3
  4816. ZJN SEE9 IF UNIT NUMBERS MATCH
  4817. SOD DB
  4818. AOD DC INCREMENT CORRESPONDING BIT NUMBER
  4819. SOD DA DECREMENT NUMBER OF UNITS
  4820. MJN SEE8 IF END OF UNIT LIST
  4821. UJN SEE7 CHECK NEXT UNIT IN LIST
  4822.  
  4823. SEE9 LJM SEEX RETURN
  4824. VCN SPACE 4,10
  4825. ** VCN - VALIDATE CHANNEL NUMBER.
  4826. *
  4827. * ENTRY (CL - CL+4) = CURRENT PARAMETER LIST ENTRY.
  4828. *
  4829. * EXIT (A) = ERROR RESPONSE CODE IF CHANNEL NUMBER INCORRECT.
  4830. * (A) .LT. 0 IF CHANNEL NUMBER IS CORRECT.
  4831. * (T2) = CHANNEL NUMBER, BIASED BY 40B IF CIO CHANNEL.
  4832. *
  4833. * USES T2.
  4834.  
  4835.  
  4836. VCN1 LDD T2
  4837. SBK MXNC+1
  4838. MJN VCNX IF CHANNEL NUMBER IS CORRECT
  4839. VCN2 LDD TH SET INCORRECT REQUEST STATUS (*ESIR*)
  4840.  
  4841. VCN SUBR
  4842. LDD CL CHANNEL NUMBER
  4843. SHN -6
  4844. STD T2
  4845. LDD CL+1 GET TYPE
  4846. SBK VNCT
  4847. ZJN VCN1 IF NIO CHANNEL REQUEST
  4848. SBK VCCT-VNCT
  4849. NJN VCN2 IF NOT CIO CHANNEL REQUEST
  4850. LDN 40
  4851. RAD T2
  4852. SBK MXCH+1
  4853. PJN VCN2 IF CHANNEL NUMBER OUT OF RANGE
  4854. ADK MXCH+1-40
  4855. SBD DB
  4856. MJN VCNX IF CHANNEL IS IN SYSTEM
  4857. LDK ESCC SET CIO CHANNEL NOT PRESENT (*ESCC*)
  4858. UJN VCNX RETURN WITH ERROR STATUS
  4859. VET SPACE 4,15
  4860. ** VET - VALIDATE EQUIPMENT TRANSFERABILITY.
  4861. *
  4862. * ENTRY (CN - CN+4) = EST ENTRY.
  4863. * (T7) = EST ORDINAL.
  4864. * (NEJT) = NOS/VE EJT ORDINAL.
  4865. *
  4866. * EXIT (A) = 0 IF EQUIPMENT DOWN AND NOT ASSIGNED TO NOS/VE.
  4867. * .LT. 0 IF ALREADY ASSIGNED TO NOS/VE.
  4868. * = *ESEQ* ERROR STATUS IF NOT DOWN.
  4869. *
  4870. * USES CM - CM+4.
  4871. *
  4872. * MACROS SFA.
  4873.  
  4874.  
  4875. VET2 LCN 0 SET STATUS
  4876.  
  4877. VET SUBR ENTRY/EXIT
  4878. LDD CN
  4879. LPN 3
  4880. LMN 3
  4881. NJN VET1 IF EQUIPMENT NOT DOWN
  4882. SFA EST,T7 CHECK EQUIPMENT ASSIGNMENT
  4883. ADK EQAE
  4884. CRD CM
  4885. LDM NEJT
  4886. LMD CM+4
  4887. ZJN VET2 IF ASSIGNED TO NOS/VE
  4888. LDN 0 SET NOT ASSIGNED STATUS
  4889. UJN VETX RETURN
  4890.  
  4891. VET1 LDN ESEQ SET EQUIPMENT NOT AVAILABLE STATUS
  4892. UJN VETX RETURN
  4893. TITLE PRESET.
  4894. PRS SPACE 4,10
  4895. ** PRS - PRESET VIRTUAL ENVIRONMENT REQUEST OVERLAY.
  4896. *
  4897. * EXIT (POFA) = FUNCTION PROCESSOR ADDRESS.
  4898. * (SRAA - SRAA+1) = NOS REQUEST HEADER ADDRESS.
  4899. * (RNCA - RNCA+1) = (STCA - STCA+1) = FWA
  4900. * OF CHANNEL EJT ASSIGNMENT TABLE.
  4901. * (DA) = NUMBER OF NPP-S IN SYSTEM.
  4902. * (DB) = NUMBER OF CPP-S IN SYSTEM.
  4903. *
  4904. * USES DA, DB, CN - CN+4.
  4905. *
  4906. * CALLS SRI.
  4907.  
  4908.  
  4909. PRS SUBR ENTRY/EXIT
  4910. RJM SEA LOCATE DFT/OS BUFFER
  4911. ADN DSCM+3
  4912. CRD CM
  4913. LDD CM+2 READ *DFT* CONTROL WORD
  4914. SHN 14
  4915. LMD CM+3
  4916. SHN -4
  4917. SHN 6
  4918. LMD CM
  4919. ADN DFRQ READ NOS REQUEST AREA POINTER
  4920. CRD CM
  4921. LDD CM+2 SET ADDRESS OF NOS REQUEST HEADER
  4922. SHN 14
  4923. LMD CM+3
  4924. SHN -4
  4925. SHN 6
  4926. LMD CM
  4927. STM SRAA+1 SAVE ADDRESS
  4928. SHN -14
  4929. RAM SRAA
  4930. LDK CHTP
  4931. CRD CN
  4932. LDD CN+2 SAVE EJT ASSIGNMENT TABLE ADDRESS
  4933. SHN 14
  4934. LMD CN+3
  4935. ADN CTALL
  4936. STM RNCA+1
  4937. STM STCA+1
  4938. SHN -14
  4939. RAM RNCA
  4940. STM STCA
  4941. LDD CN+2 SAVE CHANNEL STATUS TABLE ADDRESS
  4942. RAM RSCA
  4943. LDD CN+3
  4944. STM RSCA+1
  4945. RJM SRI SET RECONFIGURATION INFORMATION
  4946. LDN PPUL GET THE PP COUNTS
  4947. CRD CN
  4948. LDD CN+2
  4949. STD DA NUMBER OF NPP-S IN SYSTEM
  4950. LDD CN+3
  4951. LPN 77
  4952. STD DB NUMBER OF CPP-S/CIO CHANNELS IN SYSTEM
  4953. LDM TFCN,IR+2 SET FUNCTION PROCESSOR ADDRESS
  4954. STM POFA
  4955. LJM PRSX RETURN
  4956.  
  4957. SRI SPACE 4,10
  4958. ** SRI - SET RECONFIGURATION INFORMATION.
  4959. *
  4960. * ENTRY (EC) = IOU CONNECT CODE.
  4961. *
  4962. * EXIT (SPBA) = NIO BARREL CONFIGURATION.
  4963. * (SPBB) = NUMBER OF NIO BARRELS PRESENT.
  4964. *
  4965. * USES T1, T2, CM - CM+4.
  4966. *
  4967. * MACROS READMR.
  4968.  
  4969.  
  4970. SRI SUBR ENTRY/EXIT
  4971. LDN 0 INITIALIZE BARREL COUNT
  4972. STD T1
  4973. LDN 2 SET WORD COUNT
  4974. STD T2
  4975. LDK EABL+IOEI READ IOU INFORMATION
  4976. CRD CM
  4977. LDD CM+1
  4978. SCN 77
  4979. SHN 6
  4980. ADD CM
  4981. SHN 6
  4982. CRM SRIA,T2
  4983. LDM SRIA+/DSL/PPP0 CHECK ALL PP-S PRESENT IN BARREL 1
  4984. NJN SRI3 IF ONLY ONE BARREL
  4985. LDM SRIA+/DSL/PPP1
  4986. SHN 21-4
  4987. MJN SRI2 IF ONLY TWO BARRELS
  4988. NJN SRI1 IF THREE BARRELS
  4989. AOD T1
  4990. SRI1 AOD T1
  4991. SRI2 AOD T1
  4992. SRI3 AOD T1
  4993. RAM SPBB SET NUMBER OF BARRELS
  4994. LDM SRIA+/DSL/HDMN GET IOU MODEL NUMBER
  4995. SHN -4
  4996. LMC 0#42
  4997. NJN SRI4 IF NOT MODEL 42 IOU
  4998. LDN PSNI
  4999. STM SPBG
  5000. UJN SRI5 CONTINUE RECONFIGURATION
  5001.  
  5002. SRI4 SHN -4
  5003. SBN 1
  5004. ZJN SRI6 IF IOU MODEL I1
  5005. MJN SRI5 IF NOT MODEL I2
  5006. LDN 40 MODIFY EC REGISTER SETTINGS FOR I2
  5007. RAM DPLB
  5008. STM IPPA
  5009. LDN 40
  5010. RAM DPLC
  5011. STM IPPB
  5012. SRI5 AOM SRIB MODIFY FOR IOU MODEL I2 OR I4
  5013. SRI6 READMR SRIA,,ISTR
  5014. LDM SRIA+7
  5015. SHN -3
  5016. SRIB LPN 2 (IOU MODEL I1)
  5017. * LPN 3 (IOU MODEL I2 OR I4)
  5018. RAM SPBA SET NIO BARREL RECONFIGURATION
  5019. LJM SRIX RETURN
  5020.  
  5021. SRIA BSS 2*5 IOU INFORMATION
  5022. TFCN SPACE 4,10
  5023. ** TFCN - TABLE OF FUNCTION PROCESSOR ADDRESSES.
  5024. *
  5025. * ONE WORD INDEXED BY FUNCTION CODE.
  5026. *
  5027. *T 12/ ADDR
  5028. *
  5029. * ADDR ADDRESS OF FUNCTION PROCESSOR.
  5030.  
  5031.  
  5032. TFCN BSS 0 TABLE OF FUNCTION PROCESSOR ADDRESSES
  5033. LOC 0
  5034.  
  5035. RSCM FCN EOS RESERVE CM (IN MAIN)
  5036. RSPP FCN EOS RESERVE PP (IN MAIN)
  5037. RSCH FCN EOS RESERVE CHANNEL (IN MAIN)
  5038. RSEQ FCN REQ RESERVE EQUIPMENT
  5039. RNCM FCN EOS RETURN CM (IN MAIN)
  5040. RNPP FCN EOS RETURN PP (IN MAIN)
  5041. RNCH FCN EOS RETURN CHANNEL (IN MAIN)
  5042. RNEQ FCN TEQ RETURN EQUIPMENT
  5043. STCM FCN EOS STATUS CM (IN MAIN)
  5044. STPP FCN EOS STATUS PP (IN MAIN)
  5045. STCH FCN EOS STATUS CHANNELS (IN MAIN)
  5046. STEQ FCN SEQ STATUS EQUIPMENT
  5047. STMR FCN EOS STATUS AVAILABLE RESOURCES (IN MAIN)
  5048. SFRC FCN FRC SET FREE-RUNNING COUNTER TO VALUE
  5049. RSPT FCN RSP RESERVE NPP, NPP PARTNER PAIR OR CPP
  5050. RSCT FCN RSC RESERVE NIO OR CIO CHANNEL
  5051. RNPT FCN RNP RETURN NPP, CPP OR ALL PP-S
  5052. RNCT FCN RNC RETURN NIO OR CIO CHANNEL OR ALL CHANNELS
  5053. STPT FCN STP STATUS NPP-S AND/OR CPP-S
  5054. STCT FCN STC STATUS NIO AND/OR CIO CHANNELS
  5055.  
  5056. MXVR BSS 0 MAXIMUM *VER* REQUEST + 1
  5057. LOC *O
  5058. TFCNL EQU *-TFCN LENGTH OF FUNCTION CODE TABLE
  5059. EOS SPACE 4,10
  5060. ** EOS - ERROR IN OVERLAY SELECTION.
  5061. *
  5062. * OVERLAY *2VR* IS EXECUTING WITH A FUNCTION WHICH SHOULD
  5063. * HAVE BEEN PROCESSED IN THE MAIN *VER* OVERLAY.
  5064. *
  5065. * ENTRY OVERLAY PRESET COMPLETED.
  5066. *
  5067. * EXIT TO *ERR* IN MAIN OVERLAY.
  5068.  
  5069.  
  5070. EOS SUBR ENTRY (NO EXIT)
  5071. ABORT EROS * VER - OVERLAY SELECTION ERROR*
  5072. SPACE 4,10
  5073. * CHECK FOR OVERFLOW.
  5074.  
  5075.  
  5076. OVERFLOW OVLA,EPFW
  5077. TTL VER - VIRTUAL ENVIRONMENT REQUEST PROCESSOR.
  5078. END