Table of Contents

STL

Table Of Contents

  • [00008] STL - SYSTEM TAPE LOADER.
  • [00010] SYSTEM TAPE LOADER.
  • [00137] MAIN PROGRAM.
  • [00139] MAIN PROGRAM.
  • [00250] TAPE PROCESSING SUBROUTINES.
  • [00252] CID - CHECK IDENT TABLE.
  • [00276] GCM - GET CMR MEMORY.
  • [00309] IDF - ISSUE *DIO* FUNCTION.
  • [00320] ROV - READ OVERLAY.
  • [00338] RTB - READ TAPE BLOCK.
  • [00367] WOG - WAIT FOR OPERATOR *GO.*.
  • [00417] INITIAL LOAD PROCESSORS.
  • [00419] TPPA - TABLE OF PP AVAILABILITIES.
  • [00455] LPP - LOAD PP PACKAGE.
  • [00482] OTB - OUTPUT TAPE BLOCK.
  • [00499] LOAD PROCESSORS.
  • [00501] CPM - LOAD CPU MONITOR.
  • [00655] L1M - LOAD *MTR* PRESET OVERLAYS TO RPL.
  • [00693] SUBROUTINES.
  • [00695] AVB - ADVANCE BUFFER.
  • [00728] ENT - PROCESS ENTRY TABLE.
  • [00759] SIP - START IDLE PROGRAM.
  • [00820] TXT - PROCESS TEXT TABLE.
  • [00970] LPR - LOAD PP RESIDENT.
  • [01005] PRESET TAPE LOAD.
  • [01007] PRS - PRESET TAPE LOAD.
  • [01171] MCI - MODIFY CHANNEL INSTRUCTIONS.
  • [01212] APP - ACTIVATE PP-S.
  • [01229] LIB - LOAD RESIDENT PP PROGRAMS.
  • [01312] PLD - GENERATE PLD FOR DEADSTART RPL.
  • [01453] WLP - WRITE LIBRARY POINTER.
  • [01497] MRER - MAINTENANCE REGISTER ERROR HANDLER.
  • [01511] SBA - SET OS BOUNDS ADDRESS.
  • [01806] OPMESS - SEND OPERATOR MESSAGE.
  • [01830] ALC - AUTOLOAD CONTROLLER.
  • [01897] CRN - COMPARE RECORD NAMES.
  • [01933] FCN - ISSUE FUNCTION TO CONTROLLER.
  • [01969] IRN - INSERT RECORD NAME INTO MESSAGE.
  • [01998] LFC - LOAD FIRMWARE RECORD TO CENTRAL MEMORY.
  • [02049] LFR - LOAD FIRMWARE RECORD.
  • [02111] LOH - LOAD PP DRIVERS FOR BUFFERED DEVICES.
  • [02173] MCI - MODIFY CHANNEL INSTRUCTIONS.
  • [02194] OAR - OUTPUT (A) REGISTER ON CHANNEL.
  • [02206] OFR - OUTPUT FIRMWARE RECORD.
  • [02253] RNR - READ NEXT RECORD.
  • [02288] SFL - SEARCH FIRMWARE LIST.
  • [02312] STS - STATUS CONTROLLER.
  • [02332] TCD - TEST CHANNEL DOWN STATUS.
  • [02385] TCHF - TABLE OF CHANNELS FOR FIRMWARE LOADING.
  • [02395] THCD - TABLE OF 819 MUX CHANNELS TO INITIALIZE.
  • [02402] THCC - TABLE OF 819 CONTROLLER CHANNEL MASKS.
  • [02411] TFIR - TABLE OF FIRMWARE RECORD NAMES.
  • [02433] DFR - DEFAULT FIRMWARE RECORDS TO LOAD ON EACH CHANNEL.
  • [02544] SCT - SET CHANNEL TABLE *CCTL* IN CMR.
  • [02616] TEQL - TABLE OF EQUIPMENT TYPES REQUIRING FIRMWARE LOADING.
  • [02644] TCWT - TABLE OF CONTROLWARE TYPES.
  • [02661] SCH - SELECT FULL TRACK CHANNELS FOR EQUIPMENT.
  • [02741] RLC - RELOCATE CODE TO MS DRIVER AREA.
  • [02822] LFD - LOAD 819 DRIVER.
  • [02913] IPN - INSERT FIRST LEVEL PPU NUMBER IN S/C REGISTER.
  • [02941] LFP - LOAD FIRST LEVEL PPUS.
  • [03010] LCC - LOAD CONTROL MODULE CONTROLWARE.
  • [03123] TCMR - TABLE OF CONTROL MODULE RECORD NAMES.
  • [03143] ACC - AUTOLOAD CONCURRENT CHANNEL CONTROLLERS.
  • [03216] LSL - MAIN ROUTINE.
  • [03255] LCP - LOAD CENTRAL PROGRAM.
  • [03289] OVERLAID PRESET ROUTINE.
  • [03293] PRS - PRESET OVERLAY.
  • [03467] CDJ - CREATE DEADSTART JOB.
  • [03511] CFE - CREATE FAST ATTACH FNT ENTRIES.

Source Code

STL.txt
  1. IDENT STL,STL
  2. PERIPH
  3. BASE MIXED
  4. SST .EST
  5. SYSCOM
  6. *COMMENT STL - SYSTEM TAPE LOADER.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE STL - SYSTEM TAPE LOADER.
  9. SPACE 4
  10. *** STL - SYSTEM TAPE LOADER.
  11. *
  12. * G. R. MANSFIELD. 72/02/02.
  13. * R. J. THIELEN. 75/12/20.
  14. * W. E. GOEBEL. 76/07/12.
  15. * P. D. HAAS. 78/06/05.
  16. SPACE 4
  17. *** STL IS LOADED INTO PP 2 BY THE SYSTEM INITIALIZATION
  18. * PROGRAM. STL LOADS THE REMAINDER OF THE SYSTEM TAPE TO
  19. * CENTRAL MEMORY AND MASS STORAGE DEVICES. IT ALSO LOADS
  20. * THE PP RESIDENT, THE SYSTEM MONITOR, THE SYSTEM DISPLAY
  21. * PROGRAM, AND INITIALIZES RECOVERY RELOAD.
  22. SPACE 4
  23. *** OPERATOR MESSAGES.
  24. *
  25. * REFER TO OPERATORS GUIDE FOR INFORMATION AS TO CAUSE
  26. * OF ERROR AND RECOMMENDED CORRECTIVE ACTION.
  27. *
  28. * *LOADING CXX, RCDNAME.*
  29. * *TO CENTRAL MEMORY.*
  30. *
  31. * *LOADING CXX, RCDNAME.*
  32. * *TO CONTROL MODULE.*
  33. *
  34. * *LOADING CXX, RCDNAME.*
  35. * *TO CONTROLLER.*
  36. *
  37. * *LOADING CXX, RCDNAME.*
  38. * *TO FLPP.*
  39. *
  40. * *AUTOLOAD FAILURE, STXXXX.*
  41. *
  42. * *EQXXX, 2X PPS REQUIRED.*
  43. *
  44. * *EQXXX, NO FT CONTROLLER.*
  45. *
  46. * *MAINTENANCE REGISTER ERROR.*
  47. SPACE 4
  48. *** ENTRY CONDITIONS.
  49. *
  50. *
  51. * (T1) = DEADSTART CHANNEL.
  52. * (T2) = RECOVERY STATUS.
  53. * (CM) = DEADSTART OPTIONS = 8/,2/RA,1/A,1/G.
  54. * A = 0 TO ENABLE AUTOLOADING.
  55. * = 1 TO DISABLE AUTOLOADING.
  56. * G = 0 TO DISABLE GRENADE OPERATION AFTER AUTOLOAD.
  57. * = 1 TO ENABLE GRENADE OPERATION AFTER AUTOLOAD.
  58. * RA = 0, ALLOW RECOVERY.
  59. * RA = 1, CHECKPOINT ALL DEVICES, ABORT LEVEL 3.
  60. * RA = 2 OR 3, CHECKPOINT NON-BUFFERED DEVICES,
  61. * ABORT LEVEL 3 RECOVERY.
  62. * (DRSW) = DEADSTART EQUIPMENT.
  63. * (DRSW+1) = FIRST TRACK OF RMS DEADSTART FILE.
  64. SPACE 4
  65. ** PROGRAMS CALLED.
  66. *
  67. *
  68. * 0BF - BEGIN FILE.
  69. SPACE 4
  70. *CALL COMPMAC
  71. *CALL COMSCPS
  72. *CALL COMSDSL
  73. *CALL COMSDST
  74. *CALL COMSEJT
  75. QUAL IOU
  76. *CALL COMSIOU
  77. QUAL *
  78. *CALL COMSJCE
  79. *CALL COMSMSC
  80. QUAL MSP
  81. *CALL COMSMSP
  82. QUAL *
  83. *CALL COMSMTR
  84. *CALL COMSPRD
  85. *CALL COMSPIM
  86. QUAL SCD
  87. *CALL COMSSCD
  88. QUAL *
  89. *CALL COMSSCR
  90. *CALL COMSSSD
  91. *CALL COMSZOL
  92. *CALL COMS176
  93. *CALL COMSHIO
  94. *CALL COMPCHM
  95. *CALL COMPMRM
  96.  
  97. MRRD EQU /IOU/MRRD
  98. MRWT EQU /IOU/MRWT
  99. SPACE 4
  100. **** DIRECT LOCATION ASSIGNMENTS.
  101.  
  102.  
  103. CN EQU 20 - 24 CM WORD BUFFER (5 LOCATIONS)
  104. FS EQU 20 - 24 FST ENTRY (0BF)
  105. RS EQU 25 RECOVERY STATUS
  106. QA EQU 26 FNT ORDINAL (0BQ)
  107. * EQU 27 SPARE
  108. ZR EQU 30 - 34 CM ZERO WORD (5 LOCATIONS)
  109. LL EQU 35 DEADSTART LIBRARY LENGTH
  110. CA EQU 36 - 37 CURRENT CENTRAL ADDRESS (2 LOCATIONS)
  111. FN EQU 40 - 44 FILE NAME (0BF)
  112. WC EQU 42 WORD COUNT OF BLOCK
  113. BA EQU 43 PPU BUFFER ADDRESS
  114. BL EQU 44 PPU BUFFER LIMIT
  115. DH EQU 45 DEADSTART CHANNEL
  116. NC EQU 46 NUMBER OF CONTROL POINTS
  117. RN EQU 47 REGISTER NUMBER (COMPMRM)
  118. RP EQU IR+3 RPL ENTRY COUNT
  119. FA EQU 57 FNT ORDINAL (0BF)
  120. DP EQU 60 - 64 DATA POINTER (5 LOCATIONS)
  121. XA EQU 66 EXCHANGE ADDRESS (FOR CYBER 176 CPU)
  122. BC EQU 66 - 67 BLOCK COUNTER
  123. ****
  124. SPACE 4
  125. * ASSEMBLY CONSTANTS.
  126.  
  127.  
  128. BUF EQU TPBA TAPE BLOCK BUFFER
  129. FWBF EQU BUF FIRMWARE BUFFER
  130. FWBFL EQU 1000 FIRMWARE BUFFER LENGTH (CM WORDS)
  131. FCCN EQU 0 CONNECT FUNCTION
  132. FCOC EQU 10 OPERATION COMPLETE FUNCTION CODE
  133. FCGR EQU 11 GRENADE FUNCTION CODE
  134. FCGS EQU 12 GENERAL STATUS FUNCTION CODE
  135. FCLC EQU 71 LOAD CONTROL MODULE CONTROLWARE FROM PP
  136. FCAL EQU 414 AUTOLOAD FUNCTION CODE
  137. TITLE MAIN PROGRAM.
  138. STL SPACE 4
  139. ** STL - MAIN PROGRAM.
  140.  
  141.  
  142. ORG PPFW
  143.  
  144. STL RJM PRS PRESET PROGRAM
  145. RJM LPP LOAD *MTR*
  146. RJM LPP LOAD *DSD*
  147. RJM CPM LOAD *CPUMTR*
  148. RJM L1M LOAD *MTR* PRESET OVERLAYS TO RPL
  149. LDN 1 SET NO PP DROP
  150. STD T1
  151. RJM MSFW+1 INITIALIZE PP RESIDENT
  152. CC1 DCN. 0 START *MTR*
  153. LDN IPRF INITIALIZE *DIO* RESIDENT
  154. RJM IDF
  155. RJM RTB READ TAPE BLOCK
  156. RJM ROV READ OVERLAY *RSL*
  157. RJM /RSL/SBA SET OS BOUNDS ADDRESS
  158. RJM /RSL/LIB BUILD DEADSTART RPL
  159. RJM /RSL/PLD BUILD DEADSTART PLD
  160. RJM /RSL/APP ACTIVATE PP-S
  161.  
  162. * LOAD *MTE* FOR MULTI-MAINFRAME VIA LOW SPEED PORT.
  163.  
  164. STLD LDD MA REQUEST PP FOR *MTE*
  165. * UJN STL2 (NOT LSPMMF)
  166. CWM STLE,ON
  167. LDN 1 SELECT NO QUEUING OF PP REQUEST
  168. STD CM+1
  169. MONITOR RPPM
  170. STL1 LDD CM+1 CHECK *MTE* INPUT REGISTER
  171. CRD DP
  172. DELAY
  173. LDD DP+2
  174. ZJN STL1 IF *MTE* PRESET NOT COMPLETE
  175. STM STLF POSSIBLE LINK DEVICE LABEL TRACK
  176. SHN 21-13
  177. MJN STL2 IF TRACK NUMBER RATHER THAN ERROR STATUS
  178. LDM STLA+3 PRESERVE *DEADSTART ABORT* STATUS FLAGS
  179. LPC 3000
  180. ADD DP+2 ADD *MTE* STATUS
  181. STM STLA+3
  182.  
  183. * LOAD DISK CONTROLWARE, FLPP-S AND BUFFERED I/O DRIVERS.
  184.  
  185. STL2 EXECUTE BCL LOAD CONTROLWARE, FLPP-S AND DRIVERS
  186. LDD RS CHECK RECOVERY STATUS
  187. LPN SYMK
  188. ZJN STL3 IF SYSTEM FILE LOAD
  189. LDN DPPF&IPPF
  190. STL3 LMN IPPF IDLE/DROP *DIO*
  191. RJM IDF
  192. LDC DSCP+ENRS CHANGE TO DEADSTART CONTROL POINT
  193. STD CM+1
  194. LPN 37
  195. STD IR+1
  196. SHN 7
  197. ADN STSW SAVE ROLLOUT STATUS
  198. CRD CN
  199. CRD DP
  200. STD T1
  201. MONITOR CCAM
  202. * LDN 0 CLEAR ROLLOUT STATUS TO ALLOW *RPPM*
  203. STD DP+2
  204. AOD DP INCLUDE *STL* IN PP COUNT
  205. STD CN
  206. LDD T1 STORE CP STATUS WORD
  207. CWD DP
  208.  
  209. * CALL *RMS* TO RECOVER MASS STORAGE.
  210.  
  211. LDM STLA+3 CHECK ERROR STATUS FLAGS
  212. NJN STL3.1 IF ERROR STATUS PRESENT
  213. LDM STLF SET LINK DEVICE LABEL TRACK
  214. STM STLA+3
  215. STL3.1 LDD MA REQUEST PP FOR *RMS*
  216. CWM STLA,ON
  217. LDN 1 SELECT NO QUEUING OF PP REQUEST
  218. STD CM+1
  219. MONITOR RPPM
  220. LDD CM+1 SET ADDRESS OF *RMS* INPUT REGISTER
  221. STM STLB+3
  222. AOD CN INCLUDE *RMS* IN PP COUNT
  223. LDC 0
  224. STLC EQU *-1
  225. ZJN STL4 IF NO JOB AT DEADSTART CP
  226. CWM .JSNE,ON
  227. STL4 LDN SMRL PRESERVE MOVE STATUS FOR *REC*
  228. CWM .SMRL,ON
  229. LDD T1 RESTORE ROLLOUT STATUS
  230. CWD CN
  231. LDD RS CHECK RECOVERY STATUS
  232. LPN SYMK
  233. NJN STL5 IF NO SYSTEM FILE LOAD
  234. LDD MA REQUEST PP FOR *SLL*
  235. CWM STLB,ON
  236. LDN 1 SELECT NO QUEUING OF PP REQUEST
  237. STD CM+1
  238. MONITOR RPPM
  239. RJM ROV READ OVERLAY *LSL*
  240. RJM /LSL/LSL LOAD SYSTEM LIBRARY
  241. STL5 MONITOR DPPM DROP PP
  242. LJM PPR EXIT TO PP RESIDENT
  243.  
  244. STLA VFD 18/0LRMS,42/0
  245. STLB VFD 18/0LSLL,6/0,12/1,24/0
  246. STLE VFD 18/0LMTE,42/0
  247. STLF CON 0 LINK DEVICE LABEL TRACK
  248. .JSNE VFD 60/0
  249. .SMRL VFD 60/0
  250. TITLE TAPE PROCESSING SUBROUTINES.
  251. CID SPACE 4
  252. ** CID - CHECK IDENT TABLE.
  253. *
  254. * ENTRY (BA) = BUFFER OUTPUT ADDRESS.
  255. *
  256. * EXIT (BA) ADVANCED TO SKIP 7700 TABLE.
  257. * (T1) = WORD COUNT SKIPPED.
  258. * (A) = 0 IF NO PREFIX TABLE.
  259.  
  260.  
  261. CID1 LDN 0 CLEAR WORD COUNT
  262. STD T1
  263.  
  264. CID SUBR ENTRY/EXIT
  265. LDI BA CHECK FIRST WORD
  266. LMC 7700
  267. NJN CID1 IF NO 7700 TABLE
  268. STI BA
  269. AOM 1,BA SKIP 7700 TABLE
  270. STD T1
  271. SHN 2
  272. ADD T1
  273. RAD BA
  274. UJN CIDX RETURN
  275. GCM SPACE 4,10
  276. ** GCM - GET CMR MEMORY.
  277. *
  278. * ENTRY (A) = LENGTH OF CM BLOCK DESIRED.
  279. * (CA - CA+1) = FWA OF CENTRAL MEMORY BLOCK.
  280. *
  281. * EXIT SIZE OF CMR INCREASED IF NECESSARY TO CONTAIN BLOCK.
  282. *
  283. * USES LL, CM - CM+4.
  284. *
  285. * MACROS MONITOR.
  286.  
  287.  
  288. GCM SUBR ENTRY/EXIT
  289. ADD CA+1 SET LWA OF BLOCK
  290. SHN 6
  291. ADD CA
  292. SHN 14
  293. ADN 77 ROUND UP TO NEXT 100
  294. SHN -6
  295. STD LL SAVE REQUIRED CMR SIZE
  296. GCM1 LDK CMRL
  297. CRD CM
  298. LDD CM+4
  299. SBD LL
  300. PJN GCMX IF STORAGE AVAILABLE
  301. LDD LL
  302. ADN 10 REQUEST EXTRA 1K
  303. STD CM+1
  304. LDC 1000 SET CMR REQUEST
  305. STD CM+2
  306. MONITOR RSTM
  307. UJN GCM1 CHECK IF ASSIGNED
  308. IDF SPACE 4,10
  309. ** IDF - ISSUE *DIO* FUNCTION.
  310. *
  311. * ENTRY (A) = FUNCTION REQUEST.
  312.  
  313.  
  314. IDF SUBR ENTRY/EXIT
  315. ACN PC
  316. OAN PC TRANSMIT FUNCTION
  317. AJM *,PC WAIT FUNCTION ACCEPT
  318. UJN IDFX RETURN
  319. ROV SPACE 4
  320. ** ROV - READ OVERLAY.
  321.  
  322.  
  323. ROV SUBR ENTRY/EXIT
  324. RJM CID CHECK IDENT TABLE
  325. LDM 2,BA SET COPY ADDRESS
  326. ADN 5
  327. STD T1
  328. LDN 5
  329. RAD BA
  330. ROV1 LDI BA COPY OVERLAY
  331. STI T1
  332. AOD T1
  333. AOD BA
  334. LMD BL
  335. NJN ROV1 LOOP UNTIL END OF COPY
  336. UJN ROVX RETURN
  337. RTB SPACE 4,10
  338. ** RTB - READ TAPE BLOCK.
  339. *
  340. * EXIT (WC) = (A) = WORD COUNT OF RECORD.
  341. * (BA) = PPU BUFFER ADDRESS.
  342. * (BL) = PPU BUFFER LIMIT.
  343. *
  344. * CALLS IDF.
  345.  
  346.  
  347. RTB SUBR ENTRY/EXIT
  348. LDN RTBF ISSUE READ TAPE BLOCK FUNCTION
  349. RJM IDF
  350. ACN PC
  351. IAN PC INPUT CM WORD COUNT
  352. STD WC
  353. ZJN RTB1 IF EMPTY PRU
  354. SHN 2 CONVERT TO BYTE COUNT
  355. ADD WC
  356. IAM BUF,PC INPUT TAPE BLOCK
  357. RTB1 LDC BUF SET PP BUFFER ADDRESS
  358. STD BA
  359. LDD WC SET PP BUFFER LIMIT
  360. SHN 2
  361. ADD WC
  362. ADD BA
  363. STD BL
  364. LDD WC (A) = WORD COUNT
  365. UJN RTBX RETURN
  366. WOG SPACE 4,10
  367. ** WOG - WAIT FOR OPERATOR *GO.*.
  368. *
  369. * ENTRY (A) = ADDRESS OF MESSAGE TO BE WRITTEN TO MS2W.
  370. *
  371. * EXIT (A) = 0.
  372. * OPERATOR ENTERED *GO.* COMMAND.
  373. *
  374. * USES T1, CM - CM+4.
  375. *
  376. * MACROS PAUSE.
  377.  
  378.  
  379. WOG SUBR ENTRY/EXIT
  380. STM WOGA SET MESSAGE ADDRESS
  381. LDD NC
  382. SHN 7 READ SENSE SWITCH WORD
  383. ADN SNSW
  384. STD T1 SAVE ADDRESS
  385. CRD CM
  386. LDD CM+3 SET PAUSE BIT
  387. SCN 1
  388. LMN 1
  389. STD CM+3
  390. LDD T1
  391. CWD CM
  392. ADN MS2W-SNSW WRITE MESSAGE TO MS2W
  393. CWM *,TR
  394. WOGA EQU *-1 MESSAGE ADDRESS
  395. WOG1 PAUSE NE
  396. LDD T1 CHECK PAUSE BIT
  397. CRD CM
  398. LDD CM+3
  399. LPN 1
  400. ZJN WOGX IF PAUSE BIT CLEAR
  401. UJN WOG1 LOOP
  402. SPACE 4,10
  403. DSTO BSS 1 DEADSTART OPTIONS
  404. COMMON SPACE 4,10
  405. ** COMMON DECKS.
  406. *
  407. * NOTE - IT IS NECESSARY TO USE *COMPGFP* FOR EST ACCESS,
  408. * SINCE THE EST MUST BE ACCESSED PRIOR TO *PPR* STARTUP.
  409.  
  410.  
  411. EJT$ EQU 1 SELECT EJT PROCESSOR
  412. EST$ EQU 1 SELECT EST PROCESSOR
  413. IFP$ EQU 1 SELECT REMOTE INITIALIZATION CODE
  414. *CALL COMPGFP
  415. SPACE 4
  416. USE INITIAL
  417. TITLE INITIAL LOAD PROCESSORS.
  418. TPPA SPACE 4
  419. ** TPPA - TABLE OF PP AVAILABILITIES.
  420. * ENTRY = 1 WORD.
  421. *
  422. *T, 12/ CH
  423. * CH CHANNEL NUMBER TO WHICH PP IS ATTACHED + OANI
  424.  
  425.  
  426. TPPA BSS 0
  427. LOC 0
  428.  
  429. CON 0+OANI PP 0
  430. CON 1+OANI PP 1
  431. CON 0 PP 2 - NOT NORMAL ASSIGNMENT
  432. CON 3+OANI PP 3
  433. CON 4+OANI PP 4
  434. CON 5+OANI PP 5
  435. CON 6+OANI PP 6
  436. CON 7+OANI PP 7
  437. CON PC+OANI
  438. CON 11+OANI PP 11
  439.  
  440. CON 20+OANI PP 20
  441. CON 21+OANI PP 21
  442. CON 22+OANI PP 22
  443. CON 23+OANI PP 23
  444. CON 24+OANI PP 24
  445. CON 25+OANI PP 25
  446. CON 26+OANI PP 26
  447. CON 27+OANI PP 27
  448. CON 30+OANI PP 30
  449. CON 31+OANI PP 31
  450.  
  451. TPPAL BSS 0
  452. LOC *O
  453. CON 0 (DUMMY)
  454. LPP SPACE 4,10
  455. ** LPP - LOAD PP PACKAGE.
  456. *
  457. * CALLS CID, OTB, RTB.
  458.  
  459.  
  460. QUAL LPP
  461. LPP SUBR ENTRY/EXIT
  462. RJM RTB READ FIRST BLOCK
  463. RJM CID CHECK IDENT TABLE
  464. LPP1 AOM LPPA
  465. LDM TPPA-1
  466. LPPA EQU *-1 CURRENT TABLE INDEX
  467. ZJN LPP1 IF PP NOT AVAILABLE
  468. STM OTBA SET *OAN*
  469. LDN 5 SKIP HEADER
  470. RAD BA
  471. LPP2 RJM OTB OUTPUT TAPE BLOCK
  472. LDD WC CHECK BLOCK WORD COUNT
  473. SHN -11
  474. ZJN LPPX IF SHORT BLOCK RETURN
  475. RJM RTB READ NEXT BLOCK
  476. ZJN LPPX IF EMPTY BLOCK RETURN
  477. UJN LPP2 OUTPUT NEXT BLOCK
  478.  
  479. QUAL *
  480. LPP EQU /LPP/LPP
  481. OTB SPACE 4,10
  482. ** OTB - OUTPUT TAPE BLOCK.
  483. *
  484. * ENTRY (BA) = PPU BUFFER ADDRESS.
  485. * (BL) = PPU BUFFER LIMIT.
  486. * (OTBA) = OUTPUT INSTRUCTION.
  487. *
  488.  
  489.  
  490. OTB SUBR ENTRY/EXIT
  491. LDD BA
  492. STD T0
  493. OTB1 LDI T0 OUTPUT BYTE
  494. OTBA OAN. **
  495. AOD T0 ADVANCE BYTE
  496. LMD BL
  497. NJN OTB1 LOOP TO END OF BLOCK
  498. UJN OTBX RETURN
  499. TITLE LOAD PROCESSORS.
  500. CPM SPACE 4
  501. ** CPM - LOAD CPU MONITOR.
  502.  
  503.  
  504. CPM SUBR ENTRY/EXIT
  505. RJM RTB READ BLOCK
  506. CPM1 RJM AVB ADVANCE BUFFER
  507. NJN CPM4 IF END OF RECORD
  508. LDD CM+1 SET TABLE WORD COUNT
  509. STD T7
  510. LDD CM CHECK TABLE ID
  511. SHN 14
  512. LMN 36
  513. NJN CPM2 IF NOT ENTRY TABLE
  514. RJM ENT PROCESS ENTRY TABLE
  515. UJN CPM3
  516.  
  517. CPM2 LMN 40&36
  518. NJN CPM3 IF NOT TEXT TABLE
  519. RJM TXT PROCESS TEXT TABLE
  520.  
  521. CPM3 LDD T7
  522. ZJN CPM1 IF END OF TABLE
  523. RJM AVB ADVANCE BUFFER
  524. SOD T7
  525. UJN CPM3 LOOP TO END OF TABLE
  526.  
  527. * INITIALIZE CPU MONITOR.
  528.  
  529. CPM4 LDN 0 CLEAR ZERO WORD
  530. STD ZR
  531. STD ZR+1
  532. LDN ACPL READ CPU 0 STATUS
  533. CRD CM
  534. LDD CM CHECK CPU 0
  535. SHN 6
  536. PJN CPM5 IF AVAILABLE
  537. AOM CPMA SET CPU 1
  538. CPM5 LDN 20 READ DEADSTART EXCHANGE PACKAGE
  539. STD CM
  540. LDD NC
  541. SHN 7
  542. CRM BUF,CM
  543. LDD XA
  544. ZJN CPM6 IF NOT A 176 CPU
  545. SHN 11 SET NEA IN EXCHANGE PACKAGE
  546. STM BUF+6*5+1
  547. SHN -14
  548. STM BUF+6*5
  549. LDN 20 SET MONITOR MODE BIT FOR CYBER 176
  550. STM BUF+5*3
  551. LDD XA
  552. SHN 11
  553. CWM BUF,CM
  554. LDC FCCL+DSCU DEAD START CPU
  555. OAN. SC
  556. IAN. SC
  557. LDC FCSB+DSCU
  558. OAN. SC
  559. IAN. SC
  560. UJN CPM7 CHECK OPERATION COMPLETE
  561.  
  562. CPM6 LDD NC START CPU
  563. SHN 7
  564. CPMA EXN 0
  565. CPM7 IAN. 14
  566. STD DP
  567. CC2 DCN. 0 START *DSD*
  568. CPM8 IAN. 14
  569. SBD DP
  570. PJN CPM9 IF ROLLOVER
  571. ADC 10000
  572. CPM9 ADC -1000D
  573. MJN CPM8 IF NOT ONE MILLISECOND
  574. ADC 1000D
  575. RAD DP
  576. AOD DP+4
  577. SHN -14
  578. RAD DP+3
  579. LDC RTCL
  580. CWD DP
  581. LDN 0 CHECK *CPUMTR* LOADED
  582. CRD CM
  583. LDD CM+3
  584. ADD CM+4
  585. ZJN CPM8 IF OPERATION NOT COMPLETE
  586. LDD CM
  587. ZJN CPM11 IF *CPUMTR* PRESET COMPLETE
  588. RJM RTB
  589. LDD WC SET WORD COUNT
  590. STD T1
  591. NJN CPM10 IF NOT ZERO LENGTH BLOCK
  592. AOD T1
  593. CPM10 LDD CM+3
  594. SHN 14
  595. ADD CM+4
  596. CWD WC-4 STORE BLOCK LENGTH
  597. ADN 1
  598. CWM BUF,T1
  599. LDN 0 INDICATE COMPLETE
  600. CWD ZR
  601. LJM CPM8 LOOP
  602.  
  603. CPM11 LDD CM+3 SET END OF *CPUMTR*
  604. STD CA
  605. LDD CM+4
  606. STD CA+1
  607. LDN 0 CLEAR OPERATON COMPLETE
  608. CWD ZR
  609. CRD DP
  610. LDN 20 SET EXCHANGE PACKAGE WORD COUNT
  611. STD T1
  612. LDN ACPL READ CPU 0 STATUS
  613. CRD CM
  614. STD T2
  615. ADN EFRL-ACPL READ MMF LINK DEVICE STATUS
  616. CRD CN
  617. SBN EFRL-RTCL RESTORE REAL TIME CLOCK
  618. CWM CPMD,ON
  619. LDD CN+4
  620. ZJN CPM13 IF NO STATUS IN *EFRL*
  621. STM STLF POSSIBLE LINK DEVICE LABEL TRACK
  622. LMC -0 COMPLEMENT RESPONSE
  623. STM CPMC
  624. SHN 21-13
  625. PJN CPM13 IF TRACK NUMBER RATHER THAN ERROR STATUS
  626. LDM STLA+3 PREVIOUS STATUS/REQUESTS
  627. LPC ** CLEAR SLOTS FOR NEW STATUS
  628. CPMC EQU *-1
  629. ADD CN+4 ADD NEW STATUS
  630. STM STLA+3
  631. CPM13 LDD CM CHECK CPU 0 STATUS
  632. STD DP
  633. SHN 6
  634. MJN CPM14 IF CPU 0 NOT AVAILABLE
  635. RJM SIP START IDLE PROGRAM
  636. CPM14 AOD T2 CHECK CPU 1 STATUS
  637. CRD CM
  638. LDD CM CHECK CPU 1 STATUS
  639. STD DP
  640. SHN 6
  641. MJN CPM15 IF CPU 1 NOT AVAILABLE
  642. AOM SIPB
  643. CPME UJN CPM14.1 START IDLE PROGRAM FOR CPU1
  644. * PSN (DUAL CPU MACHINE WITH CACHE)
  645. LDC UJNI+77-SIPB+SIP0 USE *INPN* INSTRUCTION
  646. ERRPL SIP0-SIPB JUMP OUT OF RANGE
  647. ERRNG SIP0-SIPB+37 JUMP OUT OF RANGE
  648. STM SIPB
  649. CPM14.1 RJM SIP START IDLE PROGRAM
  650. CPM15 LJM CPMX RETURN
  651.  
  652.  
  653. CPMD BSSZ 5
  654. L1M SPACE 4,10
  655. ** L1M - LOAD *MTR* PRESET OVERLAYS TO RPL.
  656. *
  657. * USES T1, CM - CM+4.
  658. *
  659. * CALLS CID, RTB.
  660.  
  661.  
  662. L1M SUBR ENTRY/EXIT
  663. LDK RPLP SET UP RPL POINTER
  664. CRD CM
  665. LDN PPIL RESERVE SPACE FOR PP IDLE CODE
  666. RAD CA+1
  667. STD CM+1
  668. SHN -14 SET RPL ADDRESS
  669. RAD CA
  670. STD CM
  671. LDK RPLP STORE RPL POINTER
  672. CWD CM
  673. LDN 6 SET NUMBER OF *MTR* PRESET OVERLAYS
  674. STD CM+2
  675. L1M1 RJM RTB READ NEXT *MTR* PRESET OVERLAY
  676. RJM CID SKIP OVER PREFIX TABLE
  677. LDD BA
  678. STM L1MA
  679. LDM 4,BA LENGTH OF PROGRAM
  680. STD T1
  681. LDD CM
  682. SHN 14
  683. LMD CM+1
  684. CWM *,T1 WRITE OVERLAY TO CENTRAL MEMORY
  685. L1MA EQU *-1
  686. CWD ZR TERMINATE WITH A ZERO WORD
  687. STD CM+1 SAVE LWA + 1 OF OVERLAY
  688. SHN -14
  689. STD CM
  690. SOD CM+2
  691. NJN L1M1 IF MORE PRESET OVERLAYS TO LOAD
  692. LJM L1MX EXIT
  693. TITLE SUBROUTINES.
  694. AVB SPACE 4
  695. ** AVB - ADVANCE BUFFER.
  696. *
  697. * ENTRY (BA) = PPU BUFFER ADDRESS.
  698. * (BL) = PPU BUFFER LIMIT.
  699. * (WC) = WORD COUNT OF BLOCK.
  700. *
  701. * EXIT (A) .NE 0 IF END OF RECORD.
  702. * (CM - CM+4) = NEXT CM WORD FROM BUFFER.
  703. *
  704. * USES T1.
  705. *
  706. * CALLS RTB.
  707.  
  708.  
  709. AVB2 LDI BA COPY WORD
  710. STI T1
  711. AOD BA
  712. AOD T1
  713. LMN CM+5
  714. NJN AVB2 LOOP TO END OF WORD
  715.  
  716. AVB SUBR ENTRY/EXIT
  717. AVB1 LDN CM SET BYTE ADDRESS
  718. STD T1
  719. LDD BA
  720. LMD BL
  721. NJN AVB2 IF BUFFER NOT EMPTY
  722. LDD WC CHECK BLOCK WORD COUNT
  723. LMD TH
  724. NJN AVBX RETURN IF SHORT BLOCK
  725. RJM RTB READ NEXT BLOCK
  726. UJN AVB1
  727. ENT SPACE 4
  728. ** ENT - PROCESS ENTRY TABLE.
  729. *
  730. * ENTRY (BA) = PPU BUFFER ADDRESS.
  731. *
  732. * EXIT (BA) ADVANCED.
  733. *
  734. * USES CM - CM+4.
  735. *
  736. * CALLS AVB.
  737.  
  738.  
  739. ENT SUBR ENTRY/EXIT
  740. RJM AVB SKIP ENTRY NAME
  741. SOD T7
  742. RJM AVB READ ENTRY ADDRESS
  743. SOD T7
  744. LDD CM+3 RELOCATE ADDRESS
  745. LPN 37
  746. ADD CA
  747. SHN 14
  748. ADD CM+4
  749. ADD CA+1
  750. STD CM+1 (P) = ENTRY ADDRESS
  751. SHN -14
  752. STD CM
  753. LDD NC STORE (P)
  754. SHN 7
  755. CWD CM
  756. UJN ENTX RETURN
  757. MRER SPACE 4,10
  758. SIP SPACE 4
  759. ** SIP - START IDLE PROGRAM.
  760. *
  761. * ENTRY (T1) = EXCHANGE PACKAGE LENGTH.
  762. * (T2) = ADDRESS OF *ACPL* WORD.
  763. * (CM+3 - CM+4) = EXCHANGE PACKAGE ADDRESS.
  764. * (DP - DP+4) = *ACPL* WORD.
  765. *
  766. * USES CN - CN+4.
  767.  
  768. SIP0 EXN 1 MOVE CPU1 ON DUAL CPU CACHE MACHINE
  769. * INPN 4 (INTERRUPT PROCESSOR ON PORT 4)
  770. SIPD EQU *-1
  771. STM SIPD CLEAR LONG INSTRUCTION
  772. SIP0.1 LDD CM+3
  773. SHN 14
  774. LMD CM+4
  775. ADN 11 CHECK FOR (X1) = ZERO
  776. CRD CN
  777. LDD CN
  778. NJN SIP0.1 IF IDLE PACKAGE NOT YET ACTIVE
  779. LDD CM+3
  780. SHN 14
  781. LMD CM+4
  782. UJN SIP2 RESTORE IDLE EXCHANGE PACKAGE
  783.  
  784. SIP1 SBD T1 MOVE CPU TO IDLE PACKAGE
  785. SIPB EXN 0
  786. * EXN 1 (PROCESSING CPU 1)
  787. * UJN SIP0 (CPU 1 ON DUAL CPU CACHE MACHINE)
  788. SIP2 CRD CN
  789. CWM BFMS,T1 RESTORE IDLE EXCHANGE PACKAGE
  790.  
  791. SIP SUBR ENTRY/EXIT
  792. LDD T2 CLEAR *ACPL* EXCEPT CPU STATUS
  793. CWD DP
  794. LDD CM+3 SAVE EXCHANGE PACKAGE
  795. STM SIPC
  796. SHN 14
  797. LMD CM+4
  798. STM SIPC+1
  799. CRM BFMS,T1
  800. SIPA UJN SIP1 MOVE CPU
  801. * PSN (176 TYPE CPU)
  802. LDD XA STORE IDLE PACKAGE
  803. SHN 11
  804. ADN 5
  805. CWM SIPC,ON MA
  806. CWM SIPC,ON EEA
  807. LDC FCCL+DSCU DEAD START CPU
  808. OAN. SC
  809. IAN. SC
  810. LDC FCSB+DSCU
  811. OAN. SC
  812. IAN. SC
  813. LDD CM+3
  814. SHN 14
  815. LMD CM+4
  816. LJM SIP2 RESTORE IDLE EXCHANGE PACKAGE
  817.  
  818. SIPC VFD 60/0
  819. TXT SPACE 4
  820. ** TXT - PROCESS TEXT TABLE.
  821. *
  822. * ENTRY (T7) = TABLE WORD COUNT.
  823. *
  824. * EXIT BUFFER ADVANCED.
  825. *
  826. * USES T1 - T7, CM - CM+4, CN - CN+4, CW - CW+1.
  827.  
  828.  
  829. TXT SUBR ENTRY/EXIT
  830. LDD CM+3 SET LOAD ADDRESS
  831. LPN 37
  832. ADD CA
  833. SHN 14
  834. ADD CM+4
  835. ADD CA+1
  836. STD T5
  837. SHN -14
  838. STD T4
  839. RJM AVB READ RELOCATION WORD
  840. LDD MA MOVE TO RELOCATION BUFFER
  841. CWD CM
  842. CRD CN
  843. LDN CN SET FIRST BYTE OF RELOCATION WORD
  844. STD ZR
  845.  
  846. * NEXT BYTE OF RELOCATION WORD.
  847.  
  848. TXT1 LDN 3 SET BYTE COUNT
  849. STD ZR+1
  850. LDI ZR SET RELOCATION BYTE
  851. STD T6
  852. AOD ZR ADVANCE BYTE
  853. TXT2 SOD T7 DECREMENT TABLE COUNT
  854. ZJN TXTX RETURN IF END OF TABLE
  855. RJM AVB READ NEXT WORD
  856. LDD T6 SET RELOCATION BYTE
  857. SHN -10
  858. STD T2
  859. LPN 14
  860. LMN 10
  861. ZJN TXT3 IF UPPER POSITIVE
  862. LMN 4
  863. NJN TXT4 IF NOT UPPER NEGATIVE
  864.  
  865. * PROCESS UPPER RELOCTION.
  866.  
  867. LCN 0 -0 FOR NEGATIVE
  868. TXT3 LMD CA FORMAT ORIGIN FOR RELOCATION
  869. SHN 14
  870. LMD CA+1
  871. SHN 14
  872. STD T0
  873. SHN -6
  874. SCN 77
  875. ADD CM+2 ADD RELOCATION TO ADDRESS
  876. SCN 77
  877. SHN 6
  878. ADD T0
  879. RAD CM+1
  880. SHN -6
  881. LMD CM+2
  882. SCN 77
  883. LMD CM+2
  884. STD CM+2
  885. LJM TXT6 CHECK FOR LOWER RELOCATION
  886.  
  887. TXT4 LDD T2
  888. LPN 16
  889. LMN 4
  890. ZJN TXT5 IF MIDDLE POSITIVE
  891. LMN 2
  892. NJN TXT6 IF NOT NEGATIVE MIDDLE
  893.  
  894. * PROCESS MIDDLE RELOCATION.
  895.  
  896. LCN 0 -0 FOR NEGATIVE RELOCATION
  897. TXT5 LMD CA FORMAT ORIGIN FOR RELOCATION
  898. SHN 14
  899. LMD CA+1
  900. STD T1
  901. SHN -11
  902. STD T0
  903. LDD CM+2 RELOCATE ADDRESS
  904. LPC 777
  905. RAD T0
  906. LDD T1
  907. SHN 11
  908. SHN -6
  909. ADD CM+3
  910. SCN 7
  911. SHN 6
  912. RAD T0
  913. SHN -6
  914. LMD CM+3
  915. SCN 7
  916. LMD CM+3
  917. STD CM+3
  918. LDD T0
  919. LMD CM+2
  920. LPC 777
  921. LMD CM+2
  922. STD CM+2
  923. UJN TXT8
  924.  
  925. TXT6 LDD T2
  926. LPN 3
  927. LMN 2
  928. ZJN TXT7 IF LOWER POSITIVE
  929. LMN 1
  930. NJN TXT8 IF NOT LOWER NEGATIVE
  931.  
  932. * PROCESS LOWER RELOCATION.
  933.  
  934. LCN 0 -0 FOR NEGATIVE RELOCATION
  935. TXT7 LMD CA FORMAT ORIGIN FOR RELOCATION
  936. SHN 14
  937. LMD CA+1
  938. STD T1
  939. SHN -14
  940. STD T0
  941. LDD CM+3 RELOCATE ADDRESS
  942. LPN 77
  943. ADD T0
  944. SHN 14
  945. ADD T1
  946. RAD CM+4
  947. SHN -14
  948. LMD CM+3
  949. LPN 77
  950. LMD CM+3
  951. STD CM+3
  952. TXT8 LDD T4 STORE WORD
  953. SHN 14
  954. ADD T5
  955. CWD CM
  956. AOD T5 ADVANCE WORD ADDRESS
  957. SHN -14
  958. RAD T4
  959. LDD T6 SHIFT TO NEXT RELOCATION BYTE
  960. SHN 4
  961. STD T6
  962. SOD ZR+1
  963. ZJN TXT9 IF END OF 3 WORDS
  964. LJM TXT2 PROCESS NEXT WORD
  965.  
  966. TXT9 LJM TXT1 SET NEXT BYTE
  967. SPACE 4
  968. ERRMI BUF-* OVERFLOW INTO TAPE BUFFER
  969. LPR SPACE 4
  970. ** LPR - LOAD PP RESIDENT.
  971.  
  972.  
  973. LPR2 STM TPPA+CH DISABLE *DIO* ACTIVATION
  974. LDD T2 RESET COMMUNICATION ADDRESSES
  975. STD IA
  976. ADN 1
  977. STD OA
  978. ADN 1
  979. STD MA
  980.  
  981. LPR SUBR ENTRY/EXIT
  982. LDD IA SAVE INPUT REGISTER ADDRESS
  983. STD T2
  984. LDN 2 SET PP 2
  985. STD T1
  986. LPR1 AOD T1 ADVANCE PP
  987. LMN TPPAL
  988. ZJN LPR2 IF END OF PP-S
  989. LDN 10 ADVANCE COMMUNICATION ADDRESSES
  990. RAD IA
  991. ADN 1
  992. STD OA
  993. ADN 1
  994. STD MA
  995. LDM TPPA,T1 CHECK PP AVAILABILITY
  996. ZJN LPR1 IF NOT AVAILABLE
  997. STM LPRA
  998. LMD HN SET *OAM*
  999. STM LPRB
  1000. LDC MSFW+1 OUTPUT START ADDRESS
  1001. LPRA OAN. **
  1002. LDC PPFW-1 OUTPUT PPR
  1003. LPRB OAM. 1,**
  1004. UJN LPR1 LOOP
  1005. TITLE PRESET TAPE LOAD.
  1006. PRS SPACE 4
  1007. ** PRS - PRESET TAPE LOAD.
  1008.  
  1009.  
  1010. PRS SUBR ENTRY/EXIT
  1011. LDD CM SAVE DEADSTART OPTIONS
  1012. STM DSTO
  1013. RJM IFP INITIALIZE *COMPGFP*
  1014.  
  1015. * SET BUFFER VALUES.
  1016.  
  1017. LDC BIOL
  1018. CRD CM
  1019. LDD CM SET LOAD ADDRESS FOR *CPUMLD*
  1020. SHN 6
  1021. STD CA+1
  1022. SHN -14
  1023. STD CA
  1024. LDN 0 CLEAR WORD COUNT
  1025. STD WC
  1026. LDN ZERL CLEAR (ZR - ZR+4)
  1027. CRD ZR
  1028. LDN CMRL
  1029. CRD FL-4
  1030. ADN RTCL-CMRL PRESERVE REAL TIME CLOCK
  1031. CRD DP
  1032. CRM CPMD,ON
  1033. ADN EFRL-RTCL-1 FETCH LINK DEVICE LABEL TRACK
  1034. CRD CN
  1035. LDD T2 SET RECOVERY STATUS
  1036. STD RS
  1037. STM STLA+4
  1038. LDD CN+4 SET LINK DEVICE LABEL TRACK
  1039. STM STLF
  1040. LDM DSTO SAVE DEADSTART ABORT OPTIONS
  1041. LPN 14
  1042. SHN 12-3
  1043. STM STLA+3
  1044. LDN SMRL SAVE STORAGE MOVE STATUS
  1045. CRM .SMRL,ON
  1046.  
  1047. * MODIFY CHANNEL INSTRUCTIONS.
  1048.  
  1049. LDC CTTC MODIFY TAPE CHANNEL INSTRUCTIONS
  1050. RJM MCI
  1051. LDD T1 CHECK DEADSTART CHANNEL
  1052. STD DH
  1053. LMN PC
  1054. NJN PRS1 IF NOT PP COMMUNICATIONS CHANNEL
  1055. LDN 12 USE 12 AS PP COMMUNICATIONS CHANNEL
  1056. STD T1
  1057. LDC CTPC MODIFY PP COMMUNICATIONS CHANNELS
  1058. RJM MCI
  1059. LDC OANI+12
  1060. STM TPPA+CH
  1061.  
  1062. * INITIALIZE PP AVAILABLITY TABLE.
  1063.  
  1064. PRS1 LDN PPUL READ PP CONFIGURATION
  1065. CRD CM
  1066. LDN PPCP READ PP COMMUNICATION POINTER
  1067. CRD CN
  1068. LDD CN+4 SET FIRST INPUT REGISTER ADDRESS
  1069. STD T3
  1070. ADN 2*10 SET INPUT REGISTER ADDRESS FOR *STL*
  1071. STD IA
  1072. LDN 0 SET PP0
  1073. STD T1
  1074. LDN 20D PRESET 20 PP-S
  1075. STD T2
  1076. LDD CM+2 CHECK PP COUNT
  1077. SBN 11D
  1078. PJN PRS2 IF MORE THAN 10 PPU,S
  1079. LDN 10D SET 10 PP-S
  1080. STD T2
  1081. PRS2 LDM TPPA,T1 CHECK PP CHANNEL
  1082. ZJN PRS4 IF *STL* PP
  1083. LPN 77
  1084. LMD DH
  1085. NJN PRS3 IF NOT TAPE CHANNEL
  1086. LDC OANI+12
  1087. STM TPPA,T1
  1088. PRS3 LDD T1 READ INPUT REGISTER
  1089. SHN 3
  1090. ADD T3
  1091. CRD CM
  1092. LDD CM
  1093. ZJN PRS4 IF PP AVAILABLE
  1094. LDN 0 CLEAR PP
  1095. STM TPPA,T1
  1096. PRS4 AOD T1 ADVANCE PP
  1097. LMD T2
  1098. NJN PRS2 IF NOT END OF PP-S
  1099. LDM TPPA START *MTR* ON PROPER CHANNEL
  1100. LPN 37
  1101. RAM CC1
  1102. LDM TPPA+1 START *DSD* ON PROPER CHANNEL
  1103. LPN 37
  1104. RAM CC2
  1105. PRS5 LDN 0 CLEAR REMAINDER OF PP-S
  1106. STM TPPA,T1
  1107. AOD T1
  1108. SBN 20D
  1109. MJN PRS5 IF NOT END OF PP-S
  1110. LDN NCPL READ NUMBER OF CONTROL POINTS
  1111. CRD CM
  1112. AOD CM+1 SET CONTROL POINT LIMIT
  1113. STD NC
  1114. LDN LPRF CONDITION *DIO* TO INPUT PP RESIDENT
  1115. RJM IDF
  1116. RJM LPR LOAD PP RESIDENT
  1117. LDK MABL CHECK MAINFRAME TYPE
  1118. CRD CM
  1119. LDD CM+1
  1120. SHN -11
  1121. LMN 7
  1122. NJN PRS6 IF NOT CYBER 176
  1123. LDN ESTP
  1124. STM SIPA SET PASS INSTRUCTION
  1125. CRD CM
  1126. SFA EST,CM+2 SET EXCHANGE PACKAGE BIAS
  1127. ADC 777
  1128. PRS6 SHN -11
  1129. STD XA SAVE EXCHANGE BIAS
  1130. LDN EIBP
  1131. CRD CM
  1132. LDD CM
  1133. SHN 21-12
  1134. PJN PRS6.1 IF NOT DUAL CPU MACHINE WITH CACHE
  1135. LDN PSNI*0 FORCE USE OF *INPN* FOR CPU1
  1136. STM CPME
  1137. SCF. *,MR GET MAINTENANCE CHANNEL
  1138. DCN. MR
  1139. FNC. /IOU/MRDC,MR KILL DEADMAN TIMER
  1140. DCN. MR
  1141. LDC 102604 CREATE LONG INSTRUCTION
  1142. ACN. MR
  1143. OAN. MR
  1144. LDN 1
  1145. IAM. SIPD,MR READ INSTRUCTION TO MEMORY
  1146. DCN. MR
  1147. CCF. *,MR RELEASE CHANNEL
  1148. PRS6.1 LDC 200*DSCP+TFSW
  1149. CRD T7
  1150. LDD T7
  1151. ZJN PRS7 IF NO JOB AT DEADSTART CP
  1152. SFA EJT
  1153. ERRNZ JSNE CROSS REFERENCE *JSNE*
  1154. CRD CM
  1155. CRM .JSNE,ON
  1156. LDN EXJS*2 CLEAR JOB ADVANCE
  1157. STD CM+4
  1158. SFA EJT,T7 UPDATE EJT ENTRY TO ALLOW *CCAM*
  1159. CWD CM
  1160. STM STLC SET ADDRESS OF EJT ENTRY
  1161. SHN -14
  1162. RAM STLC-1
  1163. PRS7 LDK MMFL
  1164. CRD CM
  1165. LDD CM+1
  1166. SHN 21-12
  1167. MJN PRS8 IF LINK DEVICE VIA LOW SPEED PORT
  1168. ISTORE STLD,(UJN STL2) DISABLE LOAD OF *MTE*
  1169. PRS8 LJM PRSX RETURN
  1170. MCI SPACE 4,10
  1171. ** MCI - MODIFY CHANNEL INSTRUCTIONS.
  1172. *
  1173. * ENTRY (A) = ADDRESS OF INSTRUCTION LIST.
  1174. * (T1) = CHANNEL NUMBER.
  1175. *
  1176. * USES T4, T5.
  1177.  
  1178.  
  1179. MCI1 STD T5 SET INSTRUCTION ADDRESS
  1180. LDI T5 MODIFY INSTRUCTION
  1181. SCN 37
  1182. LMD T1
  1183. STI T5
  1184. AOD T4 ADVANCE LIST ADDRESS
  1185. MCI2 LDI T4
  1186. NJN MCI1 IF NOT END OF LIST
  1187.  
  1188. MCI SUBR ENTRY/EXIT
  1189. STD T4 SET LIST ADDRESS
  1190. UJN MCI2 ENTER LOOP
  1191. SPACE 4,10
  1192. ** CHANNEL TABLES.
  1193.  
  1194.  
  1195. CHTB TC
  1196. CHTB PC
  1197. CHTB CH
  1198.  
  1199. IFP HERE *COMPGFP* REMOTE INITIALIZATION CODE
  1200. SPACE 4,10
  1201. ERRZR PC-12 ILLEGAL CHANNEL DEFINITION
  1202. ERRPL *-MXRL-STL+4 *STL* OVERFLOWS TAPE PRU
  1203. TTL STL/RSL - LOAD RESIDENT SYSTEM LIBRARY.
  1204. TITLE
  1205. QUAL RSL
  1206. IDENT RSL,RSL
  1207. *COMMENT STL - LOAD RESIDENT SYSTEM LIBRARY.
  1208. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1209. ORG CPMX
  1210. RSL BSS 0
  1211. APP SPACE 4
  1212. ** APP - ACTIVATE PP-S.
  1213.  
  1214.  
  1215. APP SUBR ENTRY/EXIT
  1216. EXECUTE 1LP SET UP LOAD CODE FOR *PPR*
  1217. LDN 3 START WITH PP3
  1218. STD T1
  1219. APP1 LDM TPPA,T1 CHECK PP AVAILABILITY
  1220. ZJN APP2 IF NOT AVAILABLE
  1221. LMC DCNI&OANI SET *DCN* INSTRUCTION
  1222. STM APPA
  1223. APPA DCN. **
  1224. APP2 AOD T1 ADVANCE PP
  1225. LMN TPPAL
  1226. NJN APP1 LOOP TO END OF PP-S
  1227. UJN APPX RETURN
  1228. LIB SPACE 4
  1229. ** LIB - LOAD RESIDENT PP PROGRAMS.
  1230.  
  1231.  
  1232. LIB6 MONITOR HNGM HANG PP
  1233.  
  1234. LIB SUBR ENTRY/EXIT
  1235. LDN 2 ALLOW FOR TWO WORDS AT END OF PLD
  1236. STD RP INITIALIZE RPL COUNTER
  1237. LIB1 RJM RTB READ TAPE BLOCK
  1238. RJM CID CHECK ID TABLE
  1239. ZJN LIB1 IF NO PREFIX TABLE
  1240.  
  1241. * STORE PP PROGRAM.
  1242.  
  1243. LDM 4,BA
  1244. ZJN LIB6 IF INCORRECT PROGRAM LENGTH
  1245. STD T6 (T6) = PROGRAM LENGTH
  1246. RJM GCM GET NEEDED STORAGE
  1247. LDM 1,BA CHECK FOR *BCL* OVERLAY
  1248. SHN 6
  1249. LMI BA
  1250. LMC 6100
  1251. NJN LIB2 IF NOT 16 BIT PP ROUTINE
  1252. LDM 2,BA
  1253. SHN 14
  1254. LMM 3,BA UNPACK LOAD ADDRESS
  1255. SHN -4
  1256. SBN 5
  1257. STM 2,BA SET LOAD ADDRESS
  1258. SHN -14
  1259. LMN 20 APPEND *PPL* FLAG
  1260. LMM BUF+6
  1261. STM 1,BA SET PACKAGE NAME
  1262. LDN 0
  1263. STM 3,BA CLEAR UNUSED BYTE
  1264. LDM BUF+5
  1265. STI BA COMPLETE PACKAGE NAME
  1266. LIB2 LMC 3RLBC&6100
  1267. NJN LIB4 IF NOT END OF DEADSTART RPL
  1268. SOM LIBB
  1269. UJN LIB4 ENTER LOOP
  1270.  
  1271. LIB3 RJM RTB READ NEXT BLOCK OF PP PROGRAM
  1272. LDN 0 SET HEADER LENGTH
  1273. STD T1
  1274. LIB4 LDD WC SET CM WORD LENGTH OF PROGRAM IN BUFFER
  1275. SBD T1
  1276. STD T5
  1277. LDD BA
  1278. STM LIBA
  1279. LDD CA WRITE PROGRAM TO RPL
  1280. SHN 14
  1281. LMD CA+1
  1282. CWM *,T5
  1283. LIBA EQU *-1
  1284. STD CA+1 SET NEXT RPL ADDRESS
  1285. SHN -14
  1286. STD CA
  1287. LDD T6 CHECK FOR ALL OF PROGRAM WRITTEN TO CM
  1288. SBD T5
  1289. STD T6
  1290. NJN LIB3 IF PROGRAM NOT ALL IN ONE TAPE BLOCK
  1291. LIBB LDN 1
  1292. * LDN 0 IF END OF RPL
  1293. NJP LIB1 IF NOT END OF DEADSTART RPL
  1294. LDD TH ENSURE SUFFICIENT CM FOR PLD
  1295. RJM GCM
  1296. LDN ZERL
  1297. CRD CN
  1298. RJM WLP WRITE END OF RPL
  1299. LDC 4000
  1300. STD CN
  1301. LDN PBKL LENGTH OF BREAKPOINT TABLE
  1302. STD T6
  1303. LIB5 RJM WLP PRESET BREAKPOINT TABLE
  1304. SOD T6
  1305. NJN LIB5 IF NOT END OF TABLE
  1306. LDD CA+1
  1307. STM WLPA SET PLD ADDRESS
  1308. LDD CA
  1309. RAM WLPA-1
  1310. LJM LIBX EXIT
  1311. PLD SPACE 4
  1312. ** PLD - GENERATE PLD FOR DEADSTART RPL.
  1313. *
  1314. * ENTRY (CA - CA+1) = CURRENT ADDRESS.
  1315. *
  1316. * EXIT (CA - CA+1) = ADDRESS OF PROGRAM STATUS TABLE.
  1317. *
  1318. * USES RP, T1, T2, CM - CM+4, CN - CN+4.
  1319. *
  1320. * CALLS ICT, LDB, WLP.
  1321.  
  1322.  
  1323. PLD9 LDC PLDP STORE PLD POINTER
  1324. CWD DP
  1325. RJM LDB LOAD *1DD* BOOTSTRAP
  1326. LDN 1
  1327. RJM ICT INITIALIZE *CPUMTR* TABLES
  1328.  
  1329. PLD SUBR ENTRY/EXIT
  1330. LDC RPLP
  1331. CRD CM FETCH RPL POINTER
  1332. ADN PLDP-RPLP
  1333. CRD DP GET PLD POINTER WORD
  1334. LDD CA
  1335. STD DP SET PLD ADDRESS
  1336. LDD CA+1
  1337. STD DP+1
  1338. PLD1 LDD CM READ RPL ENTRY
  1339. SHN 14
  1340. ADD CM+1
  1341. CRD CN
  1342. LDD CN+4 SET LENGTH OF PROGRAM
  1343. STD T1
  1344. STD CN+3
  1345. LDD CN+2 SET LOAD ADDRESS
  1346. STD CN+4
  1347. LDD CN+1
  1348. SCN 77
  1349. LMD CM SET CM ADDRESS OF PROGRAM
  1350. LMN 40
  1351. STD CN+1
  1352. LDD CM+1
  1353. STD CN+2
  1354. LDD CN CHECK PROGRAM NAME
  1355. SHN -6
  1356. ZJN PLD4 IF END OF RPL
  1357. SBN 1R6
  1358. ZJN PLD2 IF *6XX* MASS STORAGE DRIVER
  1359. SBN 1R7-1R6
  1360. NJN PLD3 IF NOT *7XX* MASS STORAGE ERROR PROCESSOR
  1361. AOD CN+2 ADVANCE CM ADDRESS OF LOAD
  1362. SHN -14
  1363. RAD CN+1
  1364. PLD2 SOD CN+3 DECREMENT LENGTH OF LOAD
  1365. LDN 5 ADVANCE LOAD ADDRESS
  1366. RAD CN+4
  1367. PLD3 RJM WLP WRITE LIBRARY POINTER
  1368. LDD T1 ADVANCE *RPL* ADDRESS
  1369. RAD CM+1
  1370. SHN -14
  1371. RAD CM
  1372. LJM PLD1 PROCESS NEXT ENTRY
  1373.  
  1374. PLD4 LDN ZERL
  1375. CRD CM
  1376. ADN PSTP-ZERL
  1377. CRD CN
  1378. LDN 40 CREATE DUMMY *SFP* SLOT FOR *1DL*
  1379. STD CM+1
  1380. LDD CA
  1381. SHN 14
  1382. ADD CA+1
  1383. CWD CM
  1384. ADN 2 SET END OF PLD
  1385. STD CA+1
  1386. STD CN+3
  1387. SHN -14
  1388. STD CA
  1389. STD CN+2
  1390. LDC PSTP
  1391. CWD CN
  1392. SBN PSTP-PLDP READ PLD POINTER
  1393. CRD CN
  1394. PLDA LDN 0
  1395. ZJN PLD5 IF NEITHER *0BK* NOR *7BK* IN RPL
  1396. SBN 2
  1397. ZJN PLD5 IF BOTH *0BK* AND *7BK* IN RPL
  1398. LDN ZERL
  1399. CRD CM
  1400. LDC 4000
  1401. STD CM
  1402. LDD CN
  1403. SHN 14
  1404. LMD CN+1
  1405. SBN PBKL CLEAR BREAKPOINT TABLE
  1406. CWD CM
  1407. ADN 1
  1408. CWD CM
  1409.  
  1410. * SORT DEADSTART PLD.
  1411.  
  1412. PLD5 LDD RP CHECK FOR END OF SORT
  1413. NJN PLD6 IF NOT END OF SORT
  1414. LJM PLD9 RETURN
  1415.  
  1416. PLD6 LDD MA MOVE PLD ADDRESS
  1417. CWD DP
  1418. CRD T1
  1419. LDN 0 INITIALIZE SORT
  1420. STD RP
  1421. PLD7 AOD T2 ADVANCE ADDRESS
  1422. SHN -14
  1423. RAD T1 READ FIRST ENTRY
  1424. SHN 14
  1425. LMD T2
  1426. CRD CN
  1427. SBN 1
  1428. CRD CM
  1429. ADN 3
  1430. LMD CA+1
  1431. SHN 6
  1432. LMD CA
  1433. ZJN PLD5 IF END OF PASS
  1434. LDD CN
  1435. SBD CM
  1436. MJN PLD8 IF OUT OF ORDER
  1437. NJN PLD7 IF IN ORDER
  1438. LDD CN+1
  1439. SBD CM+1
  1440. PJN PLD7 IF IN ORDER
  1441.  
  1442. * SWITCH ENTRIES.
  1443.  
  1444. PLD8 LDD T1
  1445. SHN 14
  1446. LMD T2
  1447. CWD CM
  1448. SBN 1
  1449. CWD CN
  1450. AOD RP
  1451. UJN PLD7 LOOP
  1452. WLP SPACE 4,10
  1453. ** WLP - WRITE LIBRARY POINTER.
  1454. *
  1455. * ENTRY (CN - CN+4) = WORD TO WRITE TO LIBRARY.
  1456. * (CA - CA+1) = LIBRARY ADDRESS.
  1457. *
  1458. * EXIT (CA - CA+1) ADVANCED BY 1.
  1459. *
  1460. * USES CN+1, CA, CA+1.
  1461.  
  1462.  
  1463. WLP1 LDN 1 ENTER *0BK* IN BREAKPOINT TABLE
  1464. WLP2 SBN PBKL
  1465. ADC 0 ENTER *7BK* IN BREAKPOINT TABLE
  1466. WLPA EQU *-1
  1467. CWD CN
  1468. AOM PLDA ADVANCE COUNTER
  1469.  
  1470. WLP SUBR ENTRY/EXIT
  1471. LDD CN+1
  1472. SCN 77
  1473. SHN 6
  1474. LMD CN CHECK PROGRAM NAME
  1475. SHN 6
  1476. LMC 3R"PBK0"
  1477. ZJN WLP1 IF *0BK*
  1478. LMC 3R"PBK7"&3R"PBK0"
  1479. ZJN WLP2 IF *7BK*
  1480. LDD CA WRITE WORD
  1481. SHN 14
  1482. LMD CA+1
  1483. CWD CN
  1484. AOD CA+1 ADVANCE LIBRARY POINTER
  1485. SHN -14
  1486. RAD CA
  1487. UJN WLPX EXIT
  1488. SPACE 4,10
  1489. ** COMMON DECKS.
  1490.  
  1491.  
  1492. *CALL COMPICT
  1493. *CALL COMPLDB
  1494. SPACE 4
  1495. ERRMI BUF-* OVERFLOW INTO TAPE BUFFER
  1496. MRER SPACE 4,10
  1497. ** MRER - MAINTENANCE REGISTER ERROR HANDLER.
  1498. *
  1499. * ENTRY FATAL MAINTENANCE REGISTER ERROR.
  1500. *
  1501. * EXIT NO EXIT.
  1502.  
  1503.  
  1504. MRER LDC DSCP*CPAS+MS1W
  1505. CWM MREB,TR
  1506. UJN * HANG
  1507.  
  1508.  
  1509. MREB DATA C*MAINTENANCE REGISTER ERROR.*
  1510. SBA SPACE 4,15
  1511. ** SBA - SET OS BOUNDS ADDRESS.
  1512. *
  1513. * EXIT IOU OS BOUNDS ADDRESS SET TO
  1514. * - FWA OF NVE CM, IF NOS/VE ACTIVE (LEVEL 3 D/S);
  1515. * - END OF NOS UEM, IF UEM DEFINED;
  1516. * - END OF NOS CENTRAL MEMORY, OTHERWISE.
  1517. * IOU BARREL 1 SET TO BLOCK INTERLEAVE IF CYBER 810/830.
  1518. *
  1519. * USES T7, CM - CM+4, CN - CN+4.
  1520. *
  1521. * MACROS LOCKMR, READMR, WRITMR.
  1522.  
  1523.  
  1524. SBA SUBR ENTRY/EXIT
  1525. LDK EABL+IOEI SET IOU CONNECT CODE
  1526. CRD CN
  1527. ADK EIBP-EABL-IOEI GET *DSCB* ADDRESS
  1528. CRD CM
  1529. LDD CN+3
  1530. STM SBAA
  1531. LDD CM+3
  1532. SHN 14
  1533. LMD CM+4
  1534. ZJN SBAX IF NO *EICB*
  1535. ADN D7CM+1 GET NOS/VE FWA AND LWA
  1536. CRD CN
  1537.  
  1538. * CALCULATE OS BOUNDS ADDRESS.
  1539.  
  1540. LDD CN+1
  1541. LMD CN+3
  1542. NJP SBA3 IF NOS/VE ACTIVE, USE NOS/VE FWA
  1543. LDD CN+2
  1544. LMD CN+4
  1545. NJP SBA3 IF NOS/VE ACTIVE, USE NOS/VE FWA
  1546. LDK UEML
  1547. CRD CN
  1548. LDD CN+4
  1549. LPN 2
  1550. ZJN SBA2 IF UEM NOT DEFINED
  1551. LDK EABL+CMEI READ SYSTEM ATTRIBUTE BLOCK
  1552. CRD CM
  1553. LDD CM+1
  1554. LPN 77
  1555. SHN 14
  1556. LMD CM+2
  1557. CRD CM READ EXTENDED MEMORY DESCRIPTOR
  1558. LDD CM+3 GET EXTENDED MEMORY EQUIPMENT SIZE / 1000B
  1559. LPN 77
  1560. SHN 14
  1561. LMD CM+4
  1562. NJN SBA1 IF DEFINED
  1563. LDD CM+3 GET USER EXTENDED MEMORY SIZE / 1000B
  1564. SCN 77
  1565. SHN 6
  1566. LMD CM+2
  1567. SHN 6
  1568. SBA1 ADD CN ADD UEM BASE ADDRESS / 1000B
  1569. STD CN+2
  1570. SHN -14
  1571. STD CN+1
  1572. UJN SBA3 SET OS BOUNDS ADDRESS
  1573.  
  1574. SBA2 LDK MABL SET OS BOUNDS TO END OF NOS CENTRAL MEMORY
  1575. CRD CM
  1576. LDD CM+2 CONVERT FROM WORDS/100B TO WORDS/1000B
  1577. SHN 14
  1578. LMD CM+3
  1579. ADN 7 ROUND UP
  1580. SHN -3
  1581. STD CN+2
  1582. SHN -14
  1583. STD CN+1
  1584.  
  1585. * SET OS BOUNDS ADDRESS.
  1586.  
  1587. SBA3 LOCKMR SET
  1588. READMR RBUF,SBAA,/IOU/IOSB FETCH CURRENT OS BOUNDS DATA
  1589. LDD CN+2 FORM OS BOUNDS ADDRESS/2000B
  1590. ADN 1 ROUND UP
  1591. SHN -1
  1592. STM RBUF+7
  1593. SHN -8D
  1594. STD CN+2
  1595. LDD CN+1
  1596. SHN 3
  1597. ADD CN+2
  1598. STM RBUF+6
  1599. READMR IBUF,SBAA,/IOU/DEMR READ IOU REGISTER
  1600. LDM IBUF+7 CLEAR OS BOUNDS ENABLE
  1601. STD T7
  1602. SCN 10
  1603. STM IBUF+7
  1604. WRITMR IBUF,SBAA,/IOU/DEMR
  1605. WRITMR RBUF,SBAA,/IOU/IOSB WRITE NEW OS BOUNDS
  1606. LDD T7
  1607. STM IBUF+7
  1608.  
  1609. * SET BLOCK INTERLEAVING FOR IOU BARREL 1 ON CYBER 180-810/830.
  1610.  
  1611. LDK EABL+CPEI READ *SAB* ADDRESS
  1612. CRD CM
  1613. LDD CM+1 GET CPU-0 POINTER
  1614. SCN 77
  1615. SHN 6
  1616. LMD CM
  1617. SHN 6
  1618. CRD CM READ CPU-0 ENTRY
  1619. LDD CM+2 CHECK CPU-0 MODEL
  1620. SHN -4
  1621. SBN 0#13
  1622. ZJN SBA4 IF CYBER 810 CPU
  1623. SBN 0#14-0#13
  1624. NJP SBA5 IF NOT CYBER 830 CPU
  1625. SBA4 READMR SBUF,SBAA,/IOU/ISTR READ STATUS REGISTER
  1626. LDM SBUF+7 CHECK RECONFIGURATION
  1627. LPN 20
  1628. ADN 20
  1629. SHN 6-4
  1630. STD T7
  1631. LDM IBUF+7
  1632. LPN 0#3F
  1633. ADD T7
  1634. STM IBUF+7 SET BARREL 1 TO BLOCK INTERLEAVE MODE
  1635. SBA5 WRITMR IBUF,SBAA,/IOU/DEMR
  1636. LOCKMR CLEAR
  1637. LJM SBAX RETURN
  1638.  
  1639.  
  1640. SBAA CON 0 IOU CONNECT CODE
  1641. COMMON SPACE 4,10
  1642. ** COMMON DECKS.
  1643.  
  1644.  
  1645. *CALL COMPMRA
  1646.  
  1647. RBUF EQU * OS BOUNDS REGISTER BUFFER
  1648. SBUF EQU RBUF+12 STATUS REGISTER BUFFER
  1649. IBUF EQU SBUF+12 IOU REGISTER BUFFER
  1650. IBUFL EQU IBUF+12 END OF BUFFERS
  1651.  
  1652. QUAL
  1653. MRER EQU /RSL/MRER UNQUALIFY ROUTINE *MRER*
  1654. TTL STL/BCL - BUFFER CONTROLLER LOADER.
  1655. TITLE
  1656. QUAL BCL
  1657. IDENT BCL,BCLX BUFFER CONTROLLER LOADER
  1658. *COMMENT STL - BUFFER CONTROLLER LOADER.
  1659. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  1660. SPACE 4,10
  1661. *** BCL - BUFFER CONTROLLER LOADER.
  1662. SPACE 4,30
  1663. *** BCL IS LOADED BY STL AFTER PP RESIDENT, THE SYSTEM
  1664. * MONITOR, SYSTEM DISPLAY PROGRAM, RECOVERY PROGRAM AND
  1665. * DEADSTART PPU LIBRARY HAVE BEEN LOADED AND THE PPU,S HAVE
  1666. * BEEN STARTED. BCL IS LOADED IN THE SAME PPU AS STL AND
  1667. * OVERLAYS THE CODE WHICH PERFORMED THE FUNCTIONS LISTED ABOVE.
  1668. *
  1669. * BCL READS THE DEADSTART TAPE UNTIL RECORD *LSL* IS
  1670. * FOUND. THE RECORDS BETWEEN *BCL* AND *LSL* ARE ASSUMED TO BE
  1671. * FIRMWARE RECORDS AND ARE LOADED TO BUFFER CONTROLLERS
  1672. * (SKIPPED IF AUTOLOAD DEADSTART OPTION IS SPECIFIED).
  1673. *
  1674. * FIRMWARE RECORDS HAVE A STANDARD RECORD PREFIX TABLE
  1675. * CONTAINING THE 1 - 7 CHARACTER RECORD NAME. THE PREFIX TABLE
  1676. * IS FOLLOWED BY A ONE WORD HEADER TABLE (FORMAT NOT CHECKED),
  1677. * FOLLOWED BY THE FIRMWARE DATA, FOLLOWED BY AN EOR. RECORDS
  1678. * NOT HAVING A VALID PREFIX TABLE (INCLUDES EMPTY RECORDS) ARE
  1679. * SKIPPED.
  1680. *
  1681. * A TABLE OF EQUIPMENT TYPES (TEQL) REQUIRING FIRMWARE
  1682. * LOADING IS KEPT INTERNALLY TO *BCL*. THE EST IS SCANNED FOR
  1683. * EQUIPMENTS MATCHING THOSE IN *TEQL*. WHEN A MATCH IS FOUND
  1684. * THE RECORD TYPE IS FOUND IN THE *CRTL* ENTRY FOR EACH CHANNEL
  1685. * OF ACCESS.
  1686. *
  1687. * IT IS POSSIBLE TO AVOID LOADING CONTROLWARE FOR MASS
  1688. * STORAGE CHANNELS BY SPECIFYING THE CORRESPONDING NO LOAD
  1689. * PARAMETER (IE. NF, NI, ETC.) AS THE CONTROLWARE RECORD TYPE
  1690. * ON THE *LBC* EQPDECK ENTRY.
  1691. *
  1692. * AFTER A CONTROLLER HAS BEEN AUTOLOADED, A GRENADE
  1693. * OPERATION IS PERFORMED IF THE GRENADE DEADSTART OPTION IS
  1694. * SPECIFIED.
  1695. *
  1696. * BCL ALSO LOADS THE 819 DRIVER TO FIRST LEVEL PP-S ON
  1697. * CYBER 176-S, AND LOADS PP DRIVERS FOR OTHER BUFFERED I/O
  1698. * SYSTEMS.
  1699. SPACE 4,40
  1700. *** OPERATOR MESSAGES.
  1701. *
  1702. * LINE 1 OF DEADSTART CONTROL POINT -
  1703. *
  1704. * * LOADING CXX, RCDNAME.* = CHANNEL *XX* IS BEING
  1705. * LOADED WITH CONTROLWARE RECORD *RCDNAME*. LINE
  1706. * 2 MESSAGE AT THE DEADSTART CONTROL POINT INDICATES THE STATUS
  1707. * OF THE LOAD.
  1708. *
  1709. * LINE 2 OF DEADSTART CONTROL POINT -
  1710. *
  1711. * *TO CENTRAL MEMORY.* = THE FIRMWARE RECORD LISTED IN THE
  1712. * LINE 1 MESSAGE AT THE DEADSTART CONTROL POINT IS BEING
  1713. * COPIED FROM TAPE TO CENTRAL MEMORY. IF THE DEADSTART STOPS
  1714. * WITH THIS MESSAGE AND THE LINE 1 MESSAGE LISTED ABOVE
  1715. * DISPLAYED, THERE IS INSUFFICIENT FREE CENTRAL MEMORY TO
  1716. * CONTAIN THE FIRMWARE RECORD.
  1717. *
  1718. * *TO CONTROLLER.* = THE FIRMWARE RECORD LISTED IN THE LINE 1
  1719. * MESSAGE AT THE DEADSTART CONTROL POINT IS BEING AUTOLOADED TO
  1720. * THE CHANNEL AND EQUIPMENT TYPE LISTED IN THE LINE 1 MESSAGE.
  1721. * IF THE DEADSTART STOPS WITH THIS MESSAGE AND THE LINE 1
  1722. * MESSAGE LISTED ABOVE DISPLAYED, A CONTROLLER OR CHANNEL
  1723. * MALFUNCTION OR INCORRECT EQPDECK EQUIPMENT DEFINITION HAS
  1724. * CAUSED THE AUTOLOAD PROGRAM TO HANG.
  1725. *
  1726. * *TO CONTROL MODULE.* = THE FIRMWARE RECORD LISTED IN LINE 1
  1727. * MESSAGE AT THE DEADSTART CONTROL POINT IS BEING AUTOLOADED TO
  1728. * THE CHANNEL LISTED IN THE LINE 1 MESSAGE. IF THE DEADSTART
  1729. * STOPS WITH THIS MESSAGE AND THE LINE 1 MESSAGE LISTED ABOVE
  1730. * DISPLAYED, A CONTROLLER OR CHANNEL MALFUNCTION OR INCORRECT
  1731. * EQPDECK DEFINITION HAS CAUSED THE AUTOLOAD PROGRAM TO HANG.
  1732. *
  1733. * *TO FLPP.* = THE FLPP-S ARE BEING DEADSTARTED AND LOADED
  1734. * WITH THE 819 DRIVER SOFTWARE, *HCD*. IF THE DEADSTART
  1735. * STOPS WITH THIS MESSAGE AND THE LINE 1 MESSAGE LISTED
  1736. * ABOVE DISPLAYED, A HARDWARE PROBLEM IN THE FLPP OR MUX IS
  1737. * INDICATED.
  1738. *
  1739. * *AUTOLOAD FAILURE, STXXXX.* = FOLLOWING THE AUTOLOADING OF
  1740. * THE RECORD LISTED IN THE LINE 1 MESSAGE AT THE DEADSTART
  1741. * CONTROL POINT TO THE CHANNEL AND EQUIPMENT TYPE LISTED IN THE
  1742. * LINE 1 MESSAGE, CONTROLLER STATUS (STXXXX) INDICATED THAT A
  1743. * CHANNEL PARITY ERROR OR FIRMWARE CHECKSUM ERROR OCCURED FOR
  1744. * THE AUTOLOAD. A STATUS OF *ST0000* INDICATES THAT THE
  1745. * CHANNEL WAS DISCONNECTED WITHOUT STATUS BEING SENT. WHEN
  1746. * THIS MESSAGE IS DISPLAYED, DEADSTART STOPS UNTIL THE *GO*
  1747. * COMMAND IS ENTERED BY THE OPERATOR. WHEN THE *GO*
  1748. * COMMAND IS ENTERED, THE AUTOLOAD IS RETRIED. IF SEVERAL
  1749. * RETRIES CONTINUE TO PRODUCE THIS MESSAGE AND THE LINE 1
  1750. * MESSAGE LISTED ABOVE, A SOLID HARDWARE FAILURE OR BAD
  1751. * FIRMWARE RECORD ON THE DEADSTART TAPE IS INDICATED.
  1752. *
  1753. * *CONTROLLER RESERVED.* = CONTROLLER RESERVED BY OTHER
  1754. * ACCESS. CLEAR RESERVE VIA DEADSTART OF OTHER ACCESS, CLEAR
  1755. * CONTROLLER OR CALL CE TO CHECK HARDWARE.
  1756. *
  1757. * * FUNCTION XXXX TIMEOUT.* = FUNCTION XXXX WAS NOT
  1758. * ACCEPTED BY THE CONTROLLER, NOTIFY THE SITE CE.
  1759. BCL SPACE 4,20
  1760. *** BCL - BUFFER CONTROLLER LOADER.
  1761. *
  1762. * ENTRY (RS) = RECOVERY STATUS.
  1763. * (BA) = BUFFER ADDRESS OF CURRENT TAPE BLOCK.
  1764. * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
  1765. * (DSTO) = DEADSTART OPTIONS.
  1766. * (MSFW) = TABLE OF FIRMWARE RECORDS TO LOAD.
  1767. * NEXT RECORD ON DEADSTART TAPE IS THE FIRST FIRMWARE
  1768. * RECORD.
  1769. *
  1770. * EXIT (BA) = BUFFER ADDRESS OF RECORD *LSL*.
  1771. * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
  1772. * DEADSTART TAPE POSITIONED TO RECORD *LSL*.
  1773. * AUTOLOADING OF BUFFER CONTROLLERS PERFORMED UNLESS
  1774. * THE AUTOLOAD DEADSTART OPTION IS SPECIFIED.
  1775. *
  1776. * CALLS CRN, DFR, LFP, LFR, LOH, RLC, RNR, SCT, SFL.
  1777.  
  1778.  
  1779. ORG TPPA+5
  1780. BCL SUBR ENTRY/EXIT
  1781. RJM RLC RELOCATE CODE INTO MS DRIVER AREA
  1782. RJM SCT SET CONTROLWARE TYPE FOR CHANNEL
  1783. RJM DFR DEFAULT CONTROLWARE RECORD FOR LOAD
  1784. BCL2 RJM RNR READ NEXT TAPE RECORD
  1785. LDC BCLB CHECK FOR END OF CONTROLWARE
  1786. RJM CRN
  1787. ZJN BCL4 IF RECORD *LSL*
  1788. RJM SFL SEARCH FIRMWARE RECORD LIST
  1789. ZJN BCL2 IF RECORD NOT FOUND
  1790. LDM 4,T7
  1791. STM BCLA
  1792. RJM ** LOAD CONTROLWARE
  1793. BCLA EQU *-1
  1794. UJN BCL2 PROCESS NEXT RECORD
  1795.  
  1796. BCL4 LDM STLA+3
  1797. SHN 0-12
  1798. LMN 1
  1799. ZJN BCL5 IF NO CHECKPOINT OF BUFFERED DEVICES
  1800. BCLC RJM LOH LOAD PP DRIVERS FOR BUFFERED DEVICES
  1801. * UJN BCL5 (NO BUFFERED DEVICES PRESENT)
  1802. BCL5 LJM BCLX RETURN
  1803.  
  1804. BCLB VFD 48/0LLSL
  1805. OPMESS SPACE 4,10
  1806. ** OPMESS - SEND OPERATOR MESSAGE.
  1807. *
  1808. * OPMESS MADD,LINE
  1809. *
  1810. * MADD = ADDRESS OF MESSAGE.
  1811. * LINE = 1 FOR A LINE ONE MESSAGE.
  1812. * = 2 FOR A LINE TWO MESSAGE.
  1813.  
  1814.  
  1815. OPMESS MACRO MADD,LINE
  1816. LDC 200*DSCP+MS_LINE_W
  1817. CWM MADD,TR
  1818. ENDM
  1819. SPACE 4,10
  1820. ** CONSOLE MESSAGES.
  1821.  
  1822.  
  1823. MSGA DATA C* LOADING CXX, RCDNAME.*
  1824. MSGB EQU *-1 BLANK MESSAGE
  1825. MSGC DATA C*TO CENTRAL MEMORY.*
  1826. MSGD DATA C*TO CONTROLLER.*
  1827. MSGE DATA C*AUTOLOAD FAILURE, ST0000.*
  1828. MSGG DATA C*CONTROLLER RESERVED.*
  1829. ALC SPACE 4,20
  1830. ** ALC - AUTOLOAD CONTROLLER.
  1831. *
  1832. * ENTRY (CA - CA+1) = CENTRAL MEMORY ADDRESS OF FIRMWARE
  1833. * RECORD.
  1834. * (CN+4) = LENGTH OF FIRMWARE RECORD.
  1835. * (T4) = CHANNEL TO AUTOLOAD.
  1836. * (T7) = ADDRESS OF RECORD NAME.
  1837. * (DSTO) = DEADSTART OPTIONS.
  1838. *
  1839. * EXIT CONTROLLER AUTOLOADED WITH FIRMWARE.
  1840. * CONTROLLER GRENADED IF DEADSTART OPTION SPECIFIED.
  1841. * WAITS FOR OPERATOR GO IF AN AUTOLOAD FAILURE OCCURS.
  1842. *
  1843. * CALLS C2D, FCN, MCI, OFR, STS, WOG.
  1844. *
  1845. * MACROS DCHAN, OPMESS, RCHAN.
  1846.  
  1847.  
  1848. ALC SUBR ENTRY/EXIT
  1849. RJM MCI MODIFY CHANNEL INSTRUCTIONS
  1850. LDD T4 RESERVE CHANNEL
  1851. RCHAN
  1852.  
  1853. * CHECK THAT THE CONTROLLER IS NOT RESERVED TO THE OPPOSITE
  1854. * ACCESS BEFORE ATTEMPTING THE AUTOLOAD. SKIP THE CHECK FOR
  1855. * 7255/7165 CONTROLLERS, BECAUSE GENERAL STATUS FOR A 7255
  1856. * IS UNDEFINED UNTIL AFTER CONTROLWARE HAS BEEN LOADED, AND
  1857. * BECAUSE *CONTROLLER RESERVED* IS NOT POSSIBLE ON EITHER.
  1858.  
  1859. LDD T7
  1860. LMK ISD
  1861. ZJN ALC2 IF LOADING A 7255, AVOID THE STATUS CHECK
  1862. LMK MA4&ISD
  1863. ZJN ALC2 IF LOADING A 7165
  1864. ALC1 RJM STS GET STATUS
  1865. SHN 21-12
  1866. PJN ALC2 IF CONTROLLER NOT RESERVED TO OTHER ACCESS
  1867. OPMESS MSGG,2
  1868. UJN ALC1 LOOP
  1869.  
  1870. ALC2 OPMESS MSGD,2
  1871. LDC FCAL ISSUE AUTOLOAD FUNCTION
  1872. RJM FCN
  1873. RJM OFR LOAD CONTROLWARE
  1874. RJM STS
  1875. ZJN ALC3 IF AUTOLOAD SUCCESSFUL
  1876. SHN -6 PUT STATUS IN MESSAGE
  1877. RJM C2D
  1878. STM MSGE+12
  1879. LDD FN
  1880. RJM C2D
  1881. STM MSGE+13
  1882. LDC MSGE DISPLAY AUTOLOAD FAILURE MESSAGE
  1883. RJM WOG
  1884. UJN ALC2 RETRY AUTOLOAD
  1885.  
  1886. ALC3 LDM DSTO CHECK DEADSTART OPTIONS
  1887. LPN 1
  1888. ZJN ALC4 IF *GRENADE* NOT SPECIFIED
  1889. LDN FCGR ISSUE GRENADE FUNCTION
  1890. RJM FCN
  1891. ALC4 LDN FCOC ISSUE OPERATION COMPLETE
  1892. RJM FCN
  1893. LDD T4 RELEASE CHANNEL
  1894. DCHAN
  1895. LJM ALCX RETURN
  1896. CRN SPACE 4,10
  1897. ** CRN - COMPARE RECORD NAMES.
  1898. *
  1899. * *CRN* COMPARES THE RECORD NAME IN THE CONTROLWARE RECORD
  1900. * PREFIX TABLE WITH A RECORD NAME SUPPLIED BY THE CALLER TO SEE
  1901. * IF THEY MATCH. A USER-SUPPLIED RECORD NAME BEGINNING WITH
  1902. * THE CHARACTERS *$$* WILL MATCH ANY PREFIX TABLE NAME.
  1903. *
  1904. * ENTRY (A) = ADDRESS OF ONE RECORD NAME.
  1905. * (BA) = ADDRESS OF RECORD PREFIX TABLE CONTAINING
  1906. * SECOND RECORD NAME.
  1907. *
  1908. * EXIT (A) = 0 IF NAMES MATCH.
  1909. * .NE. 0 IF NAMES ARE DIFFERENT.
  1910. *
  1911. * USES T1 - T3.
  1912.  
  1913.  
  1914. CRN SUBR ENTRY/EXIT
  1915. STD T1 SAVE ADDRESS OF RECORD NAME
  1916. LDI T1 CHECK FOR AUTOMATIC MATCH
  1917. LMC 2R$$
  1918. ZJN CRNX IF AN AUTOMATIC MATCH
  1919. LDD BA SET ADDRESS OF NAME IN PREFIX TABLE
  1920. ADN 5
  1921. STD T2
  1922. ADN 4 SET LWA+1 OF NAME IN PREFIX TABLE
  1923. STD T3
  1924. CRN1 LDI T1 COMPARE NAMES
  1925. LMI T2
  1926. NJN CRNX IF NAMES ARE DIFFERENT
  1927. AOD T1 ADVANCE NAME ADDRESSES
  1928. AOD T2
  1929. LMD T3
  1930. NJN CRN1 IF NOT END OF NAMES
  1931. UJN CRNX EXIT (NAMES MATCH)
  1932. FCN SPACE 4,15
  1933. ** FCN - ISSUE FUNCTION TO CONTROLLER.
  1934. *
  1935. * ENTRY (A) = FUNCTION CODE.
  1936. *
  1937. * EXIT (A) = 0 IF GENERAL STATUS FUNCTION TIMED OUT.
  1938. *
  1939. * USES FN.
  1940. *
  1941. * CALLS C2D.
  1942. *
  1943. * MACROS OPMESS.
  1944.  
  1945.  
  1946. FCN SUBR ENTRY/EXIT
  1947. STD FN
  1948. FCN1 FAN CH
  1949. FCN2 IJM FCNX,CH IF FUNCTION ACCEPTED
  1950. ADD ON
  1951. NJN FCN2 IF TIMEOUT NOT SATISFIED
  1952. DCN CH
  1953. LDD FN CHECK FUNCTION
  1954. LMN FCGS
  1955. ZJN FCNX IF GENERAL STATUS REQUEST
  1956. SHN -6
  1957. RJM C2D
  1958. STM FCNB
  1959. LDD FN CONVERT FUNCTION FOR MESSAGE
  1960. RJM C2D
  1961. STM FCNB+1
  1962. OPMESS FCNA,2 DISPLAY TIMEOUT MESSAGE
  1963. LDD FN
  1964. UJN FCN1 RETRY
  1965.  
  1966. FCNA DATA 10H FUNCTION
  1967. FCNB DATA C*0000 TIMEOUT.*
  1968. IRN SPACE 4,10
  1969. ** IRN - INSERT RECORD NAME INTO MESSAGE.
  1970. *
  1971. * ENTRY (T7) = ADDRESS OF RECORD NAME.
  1972. *
  1973. * EXIT RECORD NAME INSERTED IN MESSAGE *MSGA*.
  1974. *
  1975. * USES T1, T2.
  1976.  
  1977.  
  1978. IRN SUBR ENTRY/EXIT
  1979. LDD T7 SET RECORD NAME ADDRESS
  1980. SBN 1
  1981. STD T1
  1982. LDC MSGA+7-1 SET ADDRESS OF RECORD NAME
  1983. STD T2
  1984. IRN1 AOD T1 ADVANCE RECORD NAME ADDRESSES
  1985. AOD T2
  1986. LDI T1 MOVE TWO CHARACTERS
  1987. STI T2
  1988. ZJN IRN2 IF END OF RECORD NAME
  1989. LPN 77
  1990. NJN IRN1 IF NOT END OF RECORD NAME
  1991. LDC 1R.&2R. ADD PERIOD TO MESSAGE
  1992. IRN2 LMC 2R. ADD PERIOD TO MESSAGE
  1993. RAI T2
  1994. LDN 0 SET MESSAGE TERMINATOR
  1995. STM 1,T2
  1996. UJN IRNX
  1997. LFC SPACE 4,20
  1998. ** LFC - LOAD FIRMWARE RECORD TO CENTRAL MEMORY.
  1999. *
  2000. * ENTRY (BA) = ADDRESS OF RECORD PREFIX TABLE.
  2001. * (CA - CA+1) = CURRENT CENTRAL MEMORY ADDRESS.
  2002. * (WC) WORD COUNT OF CURRENT TAPE BLOCK.
  2003. *
  2004. * EXIT (CN+4) = RECORD WORD COUNT.
  2005. * FIRMWARE RECORD LOADED TO CENTRAL MEMORY AT
  2006. * (CA - CA+1).
  2007. *
  2008. * USES BA, T3, T5, T6.
  2009. *
  2010. * CALLS GCM, RTB.
  2011.  
  2012.  
  2013. LFC SUBR ENTRY/EXIT
  2014. OPMESS MSGC,2 DISPLAY LOADING TO CENTRAL MEMORY
  2015. LDD CA SET FIRMWARE LOAD ADDRESS
  2016. STD T5
  2017. LDD CA+1
  2018. STD T6
  2019. LDN 0 CLEAR RECORD WORD COUNT
  2020. STD CN+4
  2021. LDM 1,BA PREFIX TABLE LENGTH
  2022. ADN 2 PREFIX AND NEXT TABLE HEADER LENGTHS
  2023. STD T3
  2024. SHN 2 ADVANCE BUFFER TO BEGINNING OF DATA
  2025. ADD T3
  2026. RAD BA
  2027. LDD WC SET WORD COUNT OF DATA
  2028. SBD T3
  2029. LFC1 ZJN LFCX IF AN EMPTY BLOCK
  2030. STD T3 SAVE BLOCK WORD COUNT
  2031. RAD CN+4 UPDATE RECORD WORD COUNT
  2032. RJM GCM GET CMR SPACE FOR RECORD
  2033. LDD BA SET PPU BUFFER ADDRESS
  2034. STM LFCA
  2035. LDD T5 SET CENTRAL MEMORY BUFFER ADDRESS
  2036. SHN 14
  2037. LMD T6
  2038. CWM *,T3 WRITE BLOCK TO CENTRAL MEMORY
  2039. LFCA EQU *-1 PPU BUFFER ADDRESS
  2040. STD T6 SAVE NEXT CENTRAL MEMORY BUFFER ADDRESS
  2041. SHN -14
  2042. STD T5
  2043. LDD WC CHECK FOR END OF RECORD
  2044. SHN -11
  2045. ZJN LFC1 IF END OF RECORD
  2046. RJM RTB READ NEXT TAPE BLOCK
  2047. UJN LFC1
  2048. LFR SPACE 4,10
  2049. ** LFR - LOAD FIRMWARE RECORD.
  2050. *
  2051. * ENTRY (BA) = ADDRESS OF RECORD PREFIX TABLE.
  2052. * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
  2053. * (T7) ADDRESS OF RECORD NAME
  2054. *
  2055. * EXIT RECORD LOADED TO APPROPRIATE CHANNELS.
  2056. *
  2057. * USES T4, CM - CM+4, CN+2.
  2058. *
  2059. * CALLS ALC, C2D, IDF, IRN, LFC, TCD.
  2060.  
  2061.  
  2062. LFR3 OPMESS MSGB,1 CLEAR MESSAGES
  2063. OPMESS MSGB,2
  2064.  
  2065. LFR SUBR ENTRY/EXIT
  2066. RJM IRN INSERT RECORD NAME IN MESSAGE
  2067. LCN 0 INITIALIZE CHANNEL
  2068. STD T4
  2069. STD CN+2 FLAG FIRMWARE NOT IN CM
  2070.  
  2071. * SEARCH FOR CHANNELS TO LOAD.
  2072.  
  2073. LFR1 AOD T4
  2074. LFRA LMN TCHFL INITIALIZE CHANNEL
  2075. * LMN MMXC (IF 819 DRIVER LOAD)
  2076. * LMN TCCFL (IF CONCURRENT CHANNEL LOADS POSSIBLE)
  2077. ZJN LFR3 IF END OF CHANNELS
  2078. LDD T4 CHECK FOR CHANNEL DOWN
  2079. RJM TCD
  2080. MJN LFR1 IF CHANNEL DOWN
  2081. LDM TCHF,T4
  2082. * LDM THCD,T4 (IF 819 DRIVER LOAD)
  2083. LFRB EQU *-1
  2084. LMD T7
  2085. NJN LFR1 IF CURRENT RECORD NOT FOR THIS CHANNEL
  2086. STM TCHF,T4 CLEAR LOAD FOR THIS CHANNEL
  2087. * STM THCD,T4 (IF 819 DRIVER LOAD)
  2088. LFRC EQU *-1
  2089. LDD T4 PUT CHANNEL NUMBER IN MESSAGE
  2090. RJM C2D
  2091. STM MSGA+5
  2092. OPMESS MSGA,1 DISPLAY LOADING MESSAGE
  2093. LDD CN+2
  2094. ZJN LFR2 IF FIRMWARE IN CM
  2095. RJM LFC LOAD FIRMWARE TO CM
  2096. LDN 0 FLAG FIRMWARE IN CM
  2097. STD CN+2
  2098. LFR2 LDN IPPF IDLE *DIO*
  2099. RJM IDF
  2100. RJM ALC AUTOLOAD CONTROLLER
  2101. * RJM LFD (IF 819 DRIVER LOAD)
  2102. * RJM ACC (CONCURRENT CHANNEL LOADS POSSIBLE)
  2103. LFRE EQU *-1
  2104. LDD IA RESTART *DIO*
  2105. ADN CH*10-2*10
  2106. CRD CM
  2107. STD CM+4
  2108. CWD CM
  2109. LJM LFR1 LOOP FOR NEXT CHANNEL
  2110. LOH SPACE 4,15
  2111. ** LOH - LOAD PP DRIVERS FOR BUFFERED DEVICES.
  2112. *
  2113. * ENTRY CHANNEL TABLE *CUN1* WORDS CONTAIN PP DRIVER INPUT
  2114. * REGISTERS FOR BUFFERED I/O SYSTEMS.
  2115. * *CUN1* BYTE 0 = 0 FOR 819 SYSTEMS.
  2116. * CHANNEL TABLE POINTER WORD =
  2117. * 12/NO. ENTRIES ,24/(OTHER STUFF) ,24/CCT FWA.
  2118. *
  2119. * EXIT ONE PP DRIVER LOADED FOR EACH CHANNEL DEFINED.
  2120. *
  2121. * USES FS - FS+4, CM - CM+4.
  2122. *
  2123. * CALLS TCD.
  2124. *
  2125. * MACROS MONITOR.
  2126.  
  2127.  
  2128. LOH SUBR
  2129. LOHA LDC ** ADDRESS OF CHANNEL TABLE POINTER WORD
  2130. CRD FS CHANNEL TABLE POINTER WORD
  2131. LDN CUN1
  2132. RAD FS+4 POINT TO *CUN1* WORD
  2133. SHN -14
  2134. RAD FS+3
  2135. * LDN 0
  2136. STM TCDB SET BUFFER DRIVER LOAD FLAG
  2137.  
  2138. * SCAN CHANNEL TABLE.
  2139.  
  2140. LOH1 LDD FS+3
  2141. SHN 14
  2142. ADD FS+4
  2143. CRD CM READ PP DRIVER INPUT REGISTER
  2144. LDD CM
  2145. ZJN LOH4 IF 819 ENTRY
  2146. LDD MA
  2147. CWD CM STORE INPUT REGISTER FOR PP REQUEST
  2148. LDN 1
  2149. STD CM+1 SELECT NO QUEUEING OF PP REQUEST
  2150. LDD CM+4
  2151. RJM TCD TEST FOR CHANNEL DOWN
  2152. MJN LOH4 IF CHANNEL IS DOWN
  2153. LDD CM+4
  2154. LPN 40
  2155. NJN LOH3 IF CONCURRENT CHANNEL
  2156. MONITOR RPPM
  2157. UJN LOH4 ADVANCE CCT POINTER
  2158.  
  2159. LOH3 SBD CM+4 ISOLATE CHANNEL
  2160. ADN 4
  2161. SHN 0-21
  2162. ADN 2 DETERMINE BARREL SELECT SUBFUNCTION
  2163. STD CM+4
  2164. MONITOR CPRM REQUEST CONCURRENT PP
  2165. LOH4 LDN CCTL
  2166. RAD FS+4 ADVANCE CCT POINTER
  2167. SHN -14
  2168. RAD FS+3
  2169. SOD FS
  2170. NJP LOH1 IF MORE CHANNELS TO SCAN
  2171. LJM LOHX RETURN
  2172. MCI SPACE 4,10
  2173. ** MCI - MODIFY CHANNEL INSTRUCTIONS.
  2174. *
  2175. * ENTRY (T4) = CHANNEL NUMBER.
  2176. *
  2177. * USES T1, T2.
  2178.  
  2179.  
  2180. MCI1 STD T2 SET INSTRUCTION ADDRESS
  2181. LDI T2 MODIFY INSTRUCTION
  2182. SCN 37
  2183. LMD T4
  2184. STI T2
  2185. AOD T1 ADVANCE LIST ADDRESS
  2186. MCI2 LDI T1
  2187. NJN MCI1 IF NOT END OF LIST
  2188.  
  2189. MCI SUBR ENTRY/EXIT
  2190. LDC CTCH SET CHANNEL TABLE ADDRESS
  2191. STD T1
  2192. UJN MCI2 ENTER LOOP
  2193. OAR SPACE 4,10
  2194. ** OAR - OUTPUT (A) REGISTER ON CHANNEL.
  2195. *
  2196. * ENTRY (A) = PARAMETER TO OUTPUT.
  2197.  
  2198.  
  2199. OAR SUBR ENTRY/EXIT
  2200. ACN CH
  2201. OAN CH OUTPUT PARAMETER
  2202. FJM *,CH IF PARAMETER NOT ACCEPTED
  2203. DCN CH
  2204. UJN OARX RETURN
  2205. OFR SPACE 4,20
  2206. ** OFR - OUTPUT FIRMWARE RECORD.
  2207. *
  2208. * ENTRY (CA - CA+1) = CENTRAL MEMORY ADDRESS OF FIRMWARE
  2209. * RECORD.
  2210. * (CN+4) = WORD COUNT OF FIRMWARE RECORD.
  2211. * CONTROLLER FUNCTIONED FOR AUTOLOAD.
  2212. *
  2213. * EXIT FIRMWARE RECORD TRANSFERRED FROM CENTRAL MEMORY TO
  2214. * CONTROLLER.
  2215. * CHANNEL INACTIVE.
  2216. *
  2217. * USES T1, T2, T5, T6.
  2218.  
  2219.  
  2220. OFR3 FJM *,CH WAIT FOR LAST WORD ACCEPT
  2221. DCN CH
  2222.  
  2223. OFR SUBR ENTRY/EXIT
  2224. LDD CA SET CENTRAL MEMORY ADDRESS OF RECORD
  2225. STD T5
  2226. LDD CA+1
  2227. STD T6
  2228. OFRA ACN CH PREPARE CHANNEL FOR OUTPUT
  2229. * PSN (IF 819 DRIVER LOAD)
  2230. LDD CN+4 RECORD WORD COUNT
  2231. OFR1 ZJN OFR3 IF END OF RECORD
  2232. STD T2 SAVE REMAINING WORD COUNT
  2233. STD T1 SET BLOCK WORD COUNT
  2234. ADC -FWBFL-1
  2235. MJN OFR2 IF REMAINING DATA FITS IN BUFFER
  2236. LDC FWBFL SET BLOCK COUNT TO BUFFER SIZE
  2237. STD T1
  2238. OFR2 LDD T5 SET CENTRAL BUFFER ADDRESS
  2239. SHN 14
  2240. LMD T6
  2241. CRM FWBF,T1 READ BLOCK FROM CENTRAL MEMORY
  2242. STD T6 SAVE NEXT CENTRAL MEMORY BUFFER ADDRESS
  2243. SHN -14
  2244. STD T5
  2245. LDD T1 OUTPUT BLOCK TO CONTROLLER
  2246. SHN 2
  2247. ADD T1
  2248. OAM FWBF,CH
  2249. LDD T2 DECREMENT REMAINING RECORD WORD COUNT
  2250. SBD T1
  2251. UJN OFR1 PROCESS NEXT BLOCK
  2252. RNR SPACE 4,20
  2253. ** RNR - READ NEXT RECORD.
  2254. *
  2255. * ENTRY (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
  2256. *
  2257. * EXIT (BA) = ADDRESS OF RECORD PREFIX TABLE.
  2258. * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
  2259. * RECORDS WITHOUT VALID PREFIX TABLES SKIPPED.
  2260. *
  2261. * USES T1.
  2262. *
  2263. * CALLS RTB.
  2264.  
  2265.  
  2266. RNR2 RJM RTB READ TAPE BLOCK
  2267. LDD WC
  2268. SBN 2
  2269. MJN RNR2 IF BLOCK TOO SHORT
  2270. LDI BA
  2271. LMC 7700
  2272. NJN RNR1 IF NO PREFIX TABLE
  2273. LDM 1,BA PREFIX TABLE LENGTH
  2274. ADN 2 PREFIX AND NEXT TABLE HEADER LENGTHS
  2275. SBD WC
  2276. PJN RNR1 IF TABLES OVERFLOW BLOCK
  2277.  
  2278. RNR SUBR ENTRY/EXIT
  2279.  
  2280. * SKIP TO END OF CURRENT RECORD.
  2281.  
  2282. RNR1 LDD WC
  2283. SHN -11
  2284. ZJN RNR2 IF AT END OF RECORD
  2285. RJM RTB READ NEXT TAPE BLOCK
  2286. UJN RNR1 LOOP TO END OF RECORD
  2287. SFL SPACE 4,10
  2288. ** SFL - SEARCH FIRMWARE LIST.
  2289. *
  2290. * ENTRY (BA) = ADDRESS OF FIRMWARE RECORD PREFIX TABLE.
  2291. *
  2292. * EXIT (A) = 0 IF RECORD NOT FOUND.
  2293. * (A) = (T7) = ADDRESS OF RECORD NAME IF FOUND.
  2294. *
  2295. * CALLS CRN.
  2296.  
  2297.  
  2298. SFL2 LDD T7 RETURN FIRMWARE LIST ADDRESS
  2299.  
  2300. SFL SUBR ENTRY/EXIT
  2301. LDC TFIR SET FWA OF FIRMWARE RECORD TABLE
  2302. STD T7
  2303. SFL1 LDI T7
  2304. ZJN SFLX IF END OF TABLE
  2305. LDD T7 COMPARE RECORD NAMES
  2306. RJM CRN
  2307. ZJN SFL2 IF FOUND IN TABLE
  2308. LDN 5
  2309. RAD T7
  2310. UJN SFL1 CHECK NEXT RECORD NAME
  2311. STS SPACE 4,10
  2312. ** STS - STATUS CONTROLLER.
  2313. *
  2314. * EXIT (A) = (FN) = GENERAL STATUS.
  2315. * (A) = 775777 IF INCOMPLETE STATUS.
  2316. * (FN = 5777 IF INCOMPLETE STATUS.
  2317. *
  2318. * CALLS FCN.
  2319.  
  2320.  
  2321. STS SUBR ENTRY/EXIT
  2322. LDN FCGS
  2323. RJM FCN
  2324. ZJN STS1 IF FUNCTION TIMED OUT
  2325. ACN CH
  2326. STS1 LDC -2000 ERROR STATUS
  2327. STSA IAN CH
  2328. * IAN CH+40 INPUT STATUS
  2329. STD FN
  2330. UJN STSX RETURN
  2331. TCD SPACE 4,15
  2332. ** TCD - TEST CHANNEL DOWN STATUS.
  2333. *
  2334. * ENTRY (A) = CHANNEL.
  2335. *
  2336. * EXIT (A) .LT. 0, IF CHANNEL DOWN.
  2337. *
  2338. * USES T0, T1, DP - DP+4.
  2339.  
  2340.  
  2341. TCD2 LCN 0 FLAG CHANNEL DOWN
  2342.  
  2343. TCD SUBR ENTRY/EXIT
  2344. STD T1 SAVE CHANNEL NUMBER
  2345. LCN 0 INITIALIZE WORD INDEX
  2346. STD T0
  2347. TCD1 AOD T0 INCREMENT WORD INDEX
  2348. LCN 5 DIVIDE BY 5 LOOP
  2349. RAD T1
  2350. PJN TCD1 IF NOT CORRECT INDEX
  2351. ADN 5+DP
  2352. STD T1
  2353. LDC 0 READ CHANNEL ASSIGNMENT TABLE WORD
  2354. TCDA EQU *-1
  2355. ADD T0 ADD CORRECT WORD INDEX
  2356. CRD DP
  2357. LDI T1 GET CHANNEL BYTE
  2358. SHN 21-5
  2359. PJN TCDX IF CHANNEL NOT DOWN
  2360. TCDB UJN TCD2 SET CHANNEL DOWN STATUS
  2361. * PSN (BUFFER DRIVER LOAD)
  2362. LDC ** SET DRIVER NOT LOADED FLAG
  2363. TCDC EQU *-1
  2364. ADD T0
  2365. CRD DP
  2366. LDI T1
  2367. LMD TH
  2368. STI T1
  2369. LDC **
  2370. TCDD EQU *-1
  2371. ADD T0
  2372. CWD DP
  2373. LJM TCD2 RETURN
  2374. SPACE 4,10
  2375. ** COMMON DECKS.
  2376.  
  2377.  
  2378. *CALL COMPC2D
  2379. TCHS SPACE 4,10
  2380. ** CHANNEL TABLE.
  2381.  
  2382.  
  2383. CHTB CH
  2384. SPACE 4
  2385. ** TCHF - TABLE OF CHANNELS FOR FIRMWARE LOADING.
  2386. *
  2387. * ENTRY = 1 WORD = ADDRESS OF FIRMWARE RECORD NAME IN *TFIR*.
  2388.  
  2389.  
  2390. TCHFL EQU 37
  2391. TCHF BSSZ TCHFL
  2392. TCCFL EQU TCHFL+12B ALLOW FOR CONCURRENT CHANNELS
  2393. ERRNG TFIR-TCHF-TCCFL IF OVERFLOW OF TABLE OF CHANNELS
  2394. SPACE 4
  2395. ** THCD - TABLE OF 819 MUX CHANNELS TO INITIALIZE.
  2396. *
  2397. * ENTRY = 1 WORD = ADDRESS OF DRIVER RECORD NAME.
  2398.  
  2399.  
  2400. THCD BSSZ MMXC
  2401. SPACE 4
  2402. ** THCC - TABLE OF 819 CONTROLLER CHANNEL MASKS.
  2403. *
  2404. * ENTRY = 7700B, IF CONTROLLER ON CHANNELS 2+3.
  2405. * 77B, IF CONTROLLER ON CHANNELS 6+7.
  2406. * 7777B, IF BOTH CONTROLLER PRESENT.
  2407.  
  2408.  
  2409. THCC BSSZ MMXC
  2410. SPACE 4
  2411. ** TFIR - TABLE OF FIRMWARE RECORD NAMES.
  2412. *
  2413. * ENTRY = 4 WORDS = FIRMWARE RECORD NAME.
  2414. * TERMINATED BY A ZERO WORD.
  2415.  
  2416.  
  2417. TFIR BSS 0
  2418.  
  2419. FHT VFD 48/0LBCS,12/LFR
  2420. FFT VFD 48/0LBCF,12/LFR
  2421. FFM VFD 48/0LFMD,12/LFR
  2422. FAD VFD 48/0LADP,12/LFR
  2423. ISD VFD 48/0LISD,12/LFR
  2424. PHD VFD 48/0LPHD,12/LFR
  2425. MA4 VFD 48/0LMA464,12/LFR
  2426. M86 VFD 48/0LCCC7990,12/LFR
  2427. HCD VFD 48/0LHCD,12/LFP
  2428. CMD EQU HCD
  2429. CON 0 TERMINATOR
  2430. SPACE 4,10
  2431. ERRNG BUF-* OVERFLOW INTO TAPE BUFFER
  2432. DFR SPACE 4
  2433. ** DFR - DEFAULT FIRMWARE RECORDS TO LOAD ON EACH CHANNEL.
  2434. *
  2435. * *DFR* BUILDS A TABLE (*TCHF*) OF ALL CHANNELS ON WHICH
  2436. * CONTROLWARE MUST BE LOADED AND THE TYPE OF CONTROLWARE TO
  2437. * LOAD ON EACH CHANNEL. FOR 819 DISKS, *DFR* DETERMINES WHAT
  2438. * FLPP-S NEED TO BE LOADED WITH THE 819 DRIVER.
  2439.  
  2440.  
  2441. DFR SUBR ENTRY/EXIT
  2442. LDN ESTP
  2443. CRD CM
  2444. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  2445. STD T6
  2446. LDD CM+3 SET LAST MASS STORAGE ORDINAL + 1
  2447. STD T7
  2448.  
  2449. * SEARCH EST FOR EQUIPMENT TYPES REQUIRING LOAD.
  2450.  
  2451. DFR1 AOD T6
  2452. LMD T7
  2453. ZJN DFRX IF END OF MASS STORAGE DEVICES
  2454. SFA EST,T6
  2455. ADK EQDE
  2456. CRD CN READ EST
  2457. LDD CN
  2458. SHN 21-13
  2459. DFR2 PJN DFR1 IF NOT MASS STORAGE
  2460. LDN TEQLL
  2461. STD T1
  2462. DFR3 LCN 2 DECREMENT TABLE INDEX
  2463. RAD T1
  2464. MJN DFR1 IF END OF EQUIPMENT TYPES
  2465. LDD CN+3
  2466. LMM TEQL,T1
  2467. NJN DFR3 IF NO MATCH
  2468. LDM TEQL+1,T1
  2469. STD T1
  2470. LJM 0,T1 EXIT TO PROCESSOR
  2471.  
  2472. * PROCESS *FLPP* SOFTWARE - 819 DISK.
  2473.  
  2474. DFR4 LDD CN+4 FETCH UNIT LIST FROM MST
  2475. SHN 3
  2476. ADN DDLL
  2477. CRD CM
  2478. LDN CN INITIALIZE CHANNEL BYTE INDEX
  2479. STD T3
  2480. DFR5 AOD T3 ADVANCE CHANNEL BYTE INDEX
  2481. LMN CN+3
  2482. ZJN DFR2 IF TWO CHANNELS CHECKED
  2483. LDI T3
  2484. ZJN DFR2 IF SINGLE ACCESS DEVICE
  2485. LPN 37
  2486. STD T4
  2487. LDC HCD
  2488. STM THCD,T4
  2489. STM THCD+1,T4
  2490. LDD CM+4 CHECK CONTROLLER ASSIGNMENT
  2491. LPN 4
  2492. ZJN DFR6 IF NOT ASSIGNED TO CHANNELS 6+7
  2493. LCN 0
  2494. DFR6 LMC 7700 SET CONTROLLER MASK
  2495. STD T0
  2496. LMC 7777
  2497. STM DFRA
  2498. LDM THCC,T4
  2499. LPC **
  2500. DFRA EQU *-1
  2501. LMD T0
  2502. STM THCC,T4
  2503. STM THCC+1,T4
  2504. LJM DFR5 CHECK NEXT CHANNEL
  2505.  
  2506. * PROCESS FULL TRACK / FMD CONTROLWARE.
  2507.  
  2508. DFR8 RJM SCH SET 7154 CHANNELS IN EST
  2509.  
  2510. * CHECK IF EITHER CHANNEL TO THE DEVICE REQUIRES A CONTROLWARE
  2511. * LOAD. IF SO, UPDATE TABLE *TCHF* WITH THE CONTROLWARE TYPE
  2512. * TO LOAD.
  2513.  
  2514. DFR9 LDN CN+1 INITIALIZE CHANNEL BYTE ADDRESS
  2515. STD T3
  2516. DFR10 LDI T3
  2517. ZJN DFR11 IF NULL CHANNEL
  2518. SHN 0-12
  2519. LMN 2
  2520. NJN DFR11 IF CHANNEL DOWN OR DISABLED
  2521. LDI T3
  2522. LPN 77
  2523. STD T4
  2524. LDM MSFW,T4
  2525. STD CM
  2526. ADC 1000-/MSP/CRTH*100
  2527. SHN 0-11
  2528. NJN DFR11 IF CONTROLWARE RELOAD LIMIT REACHED
  2529. LDM DSTO
  2530. LPN 2
  2531. NJN DFR11 IF LOAD DISABLED BY *AUTOLOAD*
  2532. LDD CM
  2533. LPN 77
  2534. STD CM
  2535. LPN 40
  2536. NJN DFR11 IF LOAD DISABLED VIA AN *LBC* COMMAND
  2537. LDM TCWT,CM SET ADDRESS OF CONTROLWARE RECORD NAME
  2538. STM TCHF,T4
  2539. DFR11 AOD T3
  2540. LMN CN+3
  2541. NJN DFR10 IF POSSIBLE SECOND CHANNEL
  2542. LJM DFR1 LOOP FOR NEXT EQUIPMENT
  2543. SCT SPACE 4,10
  2544. ** SCT - SET CHANNEL TABLE *CCTL* IN CMR.
  2545. *
  2546. * *SCT* LOADS THE CHANNEL CONTROLWARE TABLE INTO PP MEMORY. IF
  2547. * NOT RECOVERING CENTRAL MEMORY, *SCT* CONVERTS THE TABLE FROM
  2548. * THE FORMAT USED BY *SET* TO THE FORMAT USED DURING NORMAL
  2549. * SYSTEM OPERATION. DURING DEADSTART, EACH BYTE IN THE TABLE
  2550. * IS FORMATTED AS FOLLOWS-
  2551. * 5/, 1/F, 6/LO
  2552. * WHERE F = 1, IF LOAD OPTION SPECIFIED VIA *LOADBC* COMMAND.
  2553. * LO = CHANNEL CONTROLWARE LOAD OPTION (SEE *COMSDSL*).
  2554. *
  2555. * AFTER *SCT* COMPLETES, EACH BYTE IN THE CHANNEL CONTROLWARE
  2556. * TABLE HAS THE FOLLOWING FORMAT-
  2557. * 6/0, 1/N, 5/CT
  2558. * WHERE N = 1, IF CONTROLWARE IS NOT TO BE LOADED BY *STL*.
  2559. * CT = CONTROLWARE TYPE FOR THE CHANNEL (SEE *COMSDSL*).
  2560. *
  2561. * EXIT *CCTL* IS INITIALIZED IN CMR TO PRESERVE CONTROLWARE
  2562. * TYPE ON EACH CHANNEL.
  2563. *
  2564. * USES T1, T2, CM - CM+4.
  2565.  
  2566.  
  2567. SCT SUBR ENTRY/EXIT
  2568. LDC CHTP
  2569. CRD CM
  2570. LDN CTALL SET TABLE LENGTH
  2571. STD T2
  2572. LDD CM+2 FETCH FIRMWARE LOAD TABLE
  2573. LPN 77
  2574. RAM TCDA-1
  2575. LPN 77
  2576. SHN 14
  2577. LMD CM+3
  2578. STM TCDA
  2579. ADN CTALL*2
  2580. CRM MSFW,T2
  2581. LDD CM+3 SET ADDRESS OF CONTROLWARE TABLE
  2582. ADN CTALL*2
  2583. STM TCDC
  2584. STM TCDD
  2585. SHN -14
  2586. ADM TCDA-1
  2587. STM TCDC-1
  2588. STM TCDD-1
  2589. LDD RS
  2590. LPN SYMK
  2591. LMN SYCM
  2592. ZJP SCTX IF CM RECOVERY
  2593. LDN MXCH
  2594. STD CM
  2595. SCT1 LDM MSFW,CM GET CHANNEL CONTROLWARE TYPE
  2596. LPN 37
  2597. SCT2 STD T1
  2598. SBN MXCLO
  2599. SHN 0-21
  2600. ZJN SCT2 IF INVALID LOAD OPTION
  2601. AOD T1
  2602. LPN 1 GENERATE LOAD / NO LOAD FLAG
  2603. SHN 6-0
  2604. LMD T1 FORM CONTROLWARE TYPE WITH FLAG
  2605. SHN 5-6
  2606. STM MSFW,CM SET IN CONTROLWARE TABLE
  2607. SOD CM
  2608. PJN SCT1 IF NOT END OF TABLE
  2609. LDD CM+2 STORE TABLE OF CHANNEL CONTROLWARE TYPE
  2610. SHN 14
  2611. LMD CM+3
  2612. ADN CTALL*2
  2613. CWM MSFW,T2
  2614. LJM SCTX RETURN
  2615. SPACE 4,10
  2616. ** TEQL - TABLE OF EQUIPMENT TYPES REQUIRING FIRMWARE LOADING.
  2617. *
  2618. * ENTRY = 2 WORD EQUIPMENT MNEMONIC.
  2619. * WORD 1 = EQUIPMENT TYPE.
  2620. * WORD 2 = PROCESSOR ADDRESS.
  2621.  
  2622.  
  2623. TEQL BSS 0
  2624. CON 2RDI,DFR9
  2625. CON 2RDJ,DFR9
  2626. CON 2RDK,DFR8
  2627. CON 2RDL,DFR8
  2628. CON 2RDM,DFR9
  2629. CON 2RDQ,DFR9
  2630. CON 2RDX,DFR8
  2631. CON 2RDY,DFR8
  2632. CON 2RDZ,DFR8
  2633. CON 2RDA,DFR8
  2634. CON 2RDV,DFR4
  2635. CON 2RDW,DFR4
  2636. CON 2RDB,DFR9
  2637. CON 2RDC,DFR9
  2638. CON 2RDD,DFR9
  2639. CON 2RDG,DFR9
  2640. CON 2RSS,DFR9
  2641.  
  2642. TEQLL EQU *-TEQL
  2643. TCWT SPACE 4
  2644. ** TCWT - TABLE OF CONTROLWARE TYPES.
  2645. * ENTRY = 1 WORD.
  2646. *
  2647. * ENTRY IS ADDRESS OF CONTROLWARE RECORD NAME FOR RECORD TYPE.
  2648.  
  2649.  
  2650. TCWT INDEX
  2651. INDEX HTCW,FHT
  2652. INDEX FTCW,FFT
  2653. INDEX FMCW,FFM
  2654. INDEX ADCW,FAD
  2655. INDEX PHCW,PHD
  2656. INDEX IDCW,ISD
  2657. INDEX CCCW,MA4
  2658. INDEX M8CW,M86
  2659. INDEX MXCWT
  2660. SCH SPACE 4,15
  2661. ** SCH - SELECT FULL TRACK CHANNELS FOR EQUIPMENT.
  2662. *
  2663. * ENTRY (CN - CN+4) = EST ENTRY.
  2664. * (T6) = EST ORDINAL.
  2665. * (RS) = RECOVERY STATUS.
  2666. *
  2667. * EXIT FULL TRACK CHANNELS PLACED IN EST FOR USE.
  2668. * MESSAGE *EQXXX, 2X PPS REQUIRED.* ISSUED IF 2X PP
  2669. * STATUS IS NOT PRESENT.
  2670. * MESSAGE *EQXXX, NO FT CONTROLLER.* ISSUED IF
  2671. * NO FT CONTROLWARE IS SPECIFIED FOR LOAD BECAUSE OF
  2672. * *LBC,HT,...* FOR ALL CHANNELS OF ACCESS FOR A FULL
  2673. * TRACK EQUIPMENT.
  2674. * THESE MESSAGES HALT DEADSTART UNTIL AN OPERATOR *GO*
  2675. * IS ENTERED.
  2676. *
  2677. * CALLS WOG.
  2678. *
  2679. * USES T1, T4, CM - CM+4.
  2680. *
  2681. * MACROS MONITOR.
  2682.  
  2683.  
  2684. SCH SUBR ENTRY/EXIT
  2685. LDD RS
  2686. LPN SYMK
  2687. LMN SYCM
  2688. ZJN SCHX IF CM RECOVERY
  2689. LDD CN+3 SET EQUIPMENT TYPE
  2690. STM SCHA
  2691. STM SCHB
  2692. LDD T6 CONVERT UPPER TWO DIGITS OF EST ORDINAL
  2693. SHN -3
  2694. RJM C2D
  2695. STM SCHA+1
  2696. STM SCHB+1
  2697. LDD T6 CONVERT LOWER DIGIT OF EST ORDINAL
  2698. LPN 7
  2699. SHN 6
  2700. ADC 2R0,
  2701. STM SCHA+2
  2702. STM SCHB+2
  2703. LDN 0 CLEAR CHANNEL COUNT
  2704. STD T1
  2705. STD T4
  2706. SCH1 LDM CN+1,T1
  2707. ZJN SCH2.1 IF CHANNEL NOT DEFINED
  2708. SHN 21-10
  2709. PJN SCH2 IF FULL TRACK CONTROLLER
  2710. SHN 10-21 DISABLE THE CHANNEL ACCESS
  2711. LPN 37
  2712. STD CM+2
  2713. LDD T6
  2714. STD CM+1
  2715. LDN DAPS
  2716. STD CM+3
  2717. MONITOR SCSM DISABLE THE CHANNEL PATH
  2718. UJN SCH2.1 CONTINUE
  2719.  
  2720. SCH2 AOD T4
  2721. SCH2.1 AOD T1
  2722. LMN 2
  2723. NJN SCH1 IF MORE CHANNELS
  2724. LDD T4
  2725. ZJN SCH3 IF NO FT CONTROLWARE PRESENT
  2726. LDK MABL CHECK PPU SPEED
  2727. CRD CM
  2728. LDD CM+4
  2729. LPN 7
  2730. NJN SCH4 IF NOT 1XPP SPEED
  2731. LDD RS
  2732. NJN SCH4 IF RECOVERY DEADSTART
  2733. LCN SCHB-SCHA *EQXXX, 2X PPS REQUIRED.*
  2734. SCH3 ADC SCHB *EQXXX, NO FT CONTROLLER.*
  2735. RJM WOG WAIT FOR OPERATOR GO
  2736. SCH4 LJM SCHX EXIT
  2737.  
  2738. SCHA DATA C*EQXXX, 2X PPS REQUIRED.*
  2739. SCHB DATA C*EQXXX, NO FT CONTROLLER.*
  2740. RLC SPACE 4,10
  2741. ** RLC - RELOCATE CODE TO MS DRIVER AREA.
  2742. *
  2743. * CODE MUST BE MOVED INTO THE MASS STORAGE DRIVER AREA OF PP
  2744. * MEMORY TO PROVIDE ENOUGH ROOM FOR A CONTROLWARE DATA BUFFER.
  2745. * EITHER THE CONTROL MODULE, CPP OR THE 819 SUPPORT CODE IS
  2746. * SAVED DEPENDING UPON WHICH TYPE OF DISK THE MAINFRAME USES.
  2747. * (A SINGLE MAINFRAME CANNOT SUPPORT ISMD, CPP OR 819 DISKS AT
  2748. * THE SAME TIME.) THE CODE FOR THE DISK TYPE NOT IN USE IS
  2749. * OVERLAID BY THE DATA BUFFER.
  2750. *
  2751. * EXIT ROUTINES MOVED TO MS DRIVER AREA.
  2752. *
  2753. * USES T1, T2, CM - CM+4.
  2754.  
  2755.  
  2756. RLC SUBR ENTRY/EXIT
  2757. LDC BIOL
  2758. CRD CM
  2759. LDD CM+1
  2760. SHN 14
  2761. ADD CM+2
  2762. NJN RLC0 IF BUFFERED DEVICES DEFINED
  2763. ISTORE BCLC,(UJN BCL5) DISABLE BUFFERED DRIVER LOADS
  2764. UJN RLC0.1 CONTINUE
  2765.  
  2766. RLC0 ADN CCTP FORM ADDRESS OF CHANNEL TABLE POINTER
  2767. STM LOHA+1
  2768. SHN -14
  2769. RAM LOHA
  2770. RLC0.1 LDC .FWA SET MOVE PARAMETERS
  2771. STD T1
  2772. LDC .LOA
  2773. STD T2
  2774. LDN CFGL
  2775. CRD CM
  2776. LDD CM+3
  2777. SHN 21-11
  2778. MJN RLC1 IF ISMD SUBSYSTEM PRESENT
  2779. LDK MABL CHECK FOR POSSIBLE CPP LOAD
  2780. CRD CM
  2781. LDD CM+1
  2782. SHN 0-13
  2783. NJP RLC3 IF NOT A 8XX MAINFRAME
  2784. * LDN 0 DISABLE FLPP PROCESSING
  2785. STM HCD
  2786. LDC .FWC SET UP CPP CODE RELOCATION
  2787. STD T1
  2788. LDN TCCFL-TCHFL ADJUST MAXIMUM CHANNEL NUMBER
  2789. RAM LFRA
  2790. LDC ACC SET JUMP TO CPP CODE
  2791. STM LFRE
  2792. LDC .LWC
  2793. UJN RLC2 RELOCATE CPP CODE
  2794.  
  2795. RLC1 LDC .FWI SET ISMD SUBSYSTEM CODE ADDRESSES
  2796. STD T1
  2797. LDD MA MOVE *CMD* ENTRY TO TABLE *TFIR*
  2798. CWM RLCB,ON
  2799. SBN 1
  2800. CRM CMD,ON
  2801. LDC .LWI
  2802. RLC2 STM RLCA
  2803. RLC3 LDI T1 MOVE NEXT WORD TO MS DRIVER AREA
  2804. STI T2
  2805. AOD T2
  2806. AOD T1
  2807. LMC .LWA LAST WORD OF 819 CODE TO MOVE
  2808. RLCA EQU *-1
  2809. * LMC .LWI (LAST WORD OF ISMD SUBSYSTEM CODE TO MOVE)
  2810. * LMC .LWC (LAST WORD ADDRESS OF CPP CODE TO MOVE)
  2811. NJN RLC3 IF MORE TO MOVE
  2812. LDN 40
  2813. RAM STSA
  2814. LJM RLCX RETURN
  2815.  
  2816. RLCB VFD 48/0L$$,12/LCC
  2817.  
  2818. .FWA BSS 0 FIRST WORD TO BE MOVED TO MS DRIVER AREA
  2819. LOC MSFW+5*CTALL
  2820. .LOA BSS 0 LOAD ADDRESS IN MS DRIVER AREA
  2821. LFD SPACE 4,10
  2822. ** LFD - LOAD 819 DRIVER.
  2823. *
  2824. * ENTRY (T4) = FLPP NUMBER.
  2825. * (CA - CA+1) = CM ADDRESS OF DRIVER RECORD.
  2826. *
  2827. * EXIT DRIVER LOADED AND STARTED.
  2828. *
  2829. * USES T4, DP - DP+4.
  2830. *
  2831. * CALLS IPN, MCI, OFR.
  2832. *
  2833. * MACROS DCHAN, RCHAN.
  2834.  
  2835.  
  2836. LFD SUBR ENTRY/EXIT
  2837. OPMESS LFDD,2 DISPLAY LOADING MESSAGE
  2838. LDD CA INITIALIZE DRIVER
  2839. SHN 14
  2840. LMD CA+1
  2841. CRD CM
  2842. ADN 1
  2843. CRD DP
  2844. LDD HN
  2845. STD CM
  2846. STD CM+1
  2847. LDD T4 SET FLPP NUMBER
  2848. STD DP
  2849. LDM LFDC SET FLPP CONFIGURATION
  2850. STD DP+1
  2851. LDM THCC,T4
  2852. STM LFDA
  2853. LDM LFDC+1
  2854. LPC **
  2855. LFDA EQU *-1
  2856. STD DP+2
  2857. LDD CA
  2858. SHN 14
  2859. LMD CA+1
  2860. CWD CM
  2861. ADN 1
  2862. CWD DP
  2863. RJM IPN INSERT FLPP NUMBER IN S/R REGISTER
  2864. LDD T4 SAVE THE FLPP NUMBER
  2865. STM LFDB
  2866. LDN MC SET CHANNEL TO SCANNER CHANNEL
  2867. STD T4
  2868. RJM MCI MODIFY CHANNEL INSTRUCTIONS
  2869. LDN MC RESERVE THE CHANNEL
  2870. RCHAN
  2871. LDC FCSB+ENSC ENABLE SCANNER INTERFACE
  2872. OAN. SC+40
  2873. IAN. SC+40
  2874. ACN MC ACTIVATE SCANNER CHANNEL
  2875. LDC FCSB+DSFP DEADSTART THE FLPP
  2876. OAN. SC+40
  2877. IAN. SC+40
  2878. LDC FCSB+CPUE CLEAR FLPP ERROR CONDITION
  2879. OAN. SC+40
  2880. IAN. SC+40
  2881. LDC FCCL+PPUE CLEAR FLPP ERRORS IN SCR
  2882. OAN. SC+40
  2883. IAN. SC+40
  2884. LDC FCCL+CPUE
  2885. OAN. SC+40
  2886. IAN. SC+40
  2887. LDC FCCL+DSFP CLEAR DEADSTART
  2888. OAN. SC+40
  2889. IAN. SC+40
  2890. RJM OFR OUTPUT DRIVER TO FLPP
  2891. LDC FCCL+ENSC DISABLE SCANNER CHANNEL
  2892. OAN. SC+40
  2893. IAN. SC+40
  2894. LDN MC RELEASE THE SCANNER CHANNEL
  2895. DCHAN
  2896. LDC ** RESTORE THE FLPP NUMBER
  2897. LFDB EQU *-1
  2898. STD T4
  2899. LJM LFDX RETURN
  2900.  
  2901.  
  2902. LFDC VFD 3/0 SCANNER CHANNEL
  2903. VFD 3/1 CPU CHANNEL
  2904. VFD 3/0 NOT USED
  2905. VFD 3/4 PARTNER FLPP CHANNEL
  2906. VFD 3/3 CONTROLLER *A* DATA CHANNEL
  2907. VFD 3/2 CONTROLLER *A* CONTROL CHANNEL
  2908. VFD 3/7 CONTROLLER *B* DATA CHANNEL
  2909. VFD 3/6 CONTROLLER *B* CONTROL CHANNEL
  2910.  
  2911. LFDD DATA C*TO FLPP.*
  2912. IPN SPACE 4,10
  2913. ** IPN - INSERT FIRST LEVEL PPU NUMBER IN S/C REGISTER.
  2914. *
  2915. * ENTRY (T4) = FLPP NUMBER.
  2916. *
  2917. * EXIT (A) = 0.
  2918. *
  2919. * USES T1, T2.
  2920.  
  2921.  
  2922. IPN1 LDD T1 CHECK NEXT BIT
  2923. SHN -1
  2924. IPN2 STD T1
  2925. LPN 1
  2926. ZJN IPN3 IF BIT TO BE CLEARED
  2927. LDC FCSB&FCCL
  2928. IPN3 LMD T2
  2929. OAN. SC+40
  2930. IAN. SC+40
  2931. AOD T2 ADVANCE BIT NUMBER
  2932. LMC FCCL+SCSL+4
  2933. NJN IPN1 IF NOT END OF BITS
  2934.  
  2935. IPN SUBR ENTRY/EXIT
  2936. LDC FCCL+SCSL PRESET FUNCTION AND BIT NUMBER
  2937. STD T2
  2938. LDD T4
  2939. UJN IPN2 ENTER LOOP
  2940. LFP SPACE 4,10
  2941. ** LFP - LOAD FIRST LEVEL PPUS.
  2942. *
  2943. * ENTRY (BA) = ADDRESS OF RECORD PREFIX TABLE.
  2944. * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
  2945. * (T7) = ADDRESS OF RECORD NAME.
  2946. *
  2947. * EXIT FLPP DRIVER LOADED TO APPROPRIATE FLPPS.
  2948. *
  2949. * USES T4.
  2950. *
  2951. * CALLS LFR.
  2952.  
  2953.  
  2954. LFP SUBR ENTRY/EXIT
  2955. LDC LFPE PRESET TO SWITCH TO 819 DRIVER LOAD
  2956. LFP1 STM LFPA
  2957. STM LFPC
  2958. LDN 0
  2959. STD T4
  2960. LFP2 LDM LFPD,T4 SWITCH FUNCTIONS
  2961. STM LFPB
  2962. ZJN LFP3 IF END OF INSTRUCTIONS TO SWITCH
  2963. LDM **,T4
  2964. LFPA EQU *-1
  2965. STM **
  2966. LFPB EQU *-1
  2967. AOD T4
  2968. UJN LFP2 LOOP FOR NEXT ENTRY
  2969.  
  2970. LFP3 LDC ** TEST FOR END OF LOAD
  2971. LFPC EQU *-1
  2972. LMC LFPF
  2973. ZJN LFPX IF END OF LOAD
  2974. RJM LFR LOAD 819 DRIVERS
  2975. LDC LFPF SWITCH BACK TO FIRMWARE LOADING
  2976. UJN LFP1 SET UP SWITCH
  2977.  
  2978. * TABLE OF ADDRESSES TO MODIFY.
  2979.  
  2980. LFPD CON LFRA
  2981. CON LFRB
  2982. CON LFRC
  2983. CON LFRE
  2984. CON OFRA
  2985. CON 0 END OF TABLE
  2986.  
  2987. * TABLE OF 819 LOAD VALUES.
  2988.  
  2989. LFPE CON LMNI+MMXC
  2990. CON THCD
  2991. CON THCD
  2992. CON LFD
  2993. CON PSNI
  2994.  
  2995. * TABLE OF FIRMWARE LOAD VALUES.
  2996.  
  2997. LFPF CON LMNI+TCHFL
  2998. CON TCHF
  2999. CON TCHF
  3000. CON ALC
  3001. CON ACNI+CH
  3002. SPACE 4,10
  3003. ERRNG PPFW-* CODE OVERFLOWS MS DRIVER AREA
  3004. LOC *O
  3005. .LWA BSS 0 LWA TO MOVE TO MS DRIVER AREA
  3006. SPACE 4,10
  3007. .FWI BSS 0 FIRST WORD TO BE MOVED TO MS DRIVER AREA
  3008. LOC MSFW+5*CTALL
  3009. LCC SPACE 4,15
  3010. ** LCC - LOAD CONTROL MODULE CONTROLWARE.
  3011. *
  3012. * ENTRY (T7) = ADDRESS OF RECORD NAME.
  3013. * (BA) = ADDRESS OF RECORD PREFIX TABLE.
  3014. * (WC) = WORD COUNT OF CURRENT TAPE BLOCK.
  3015. *
  3016. * EXIT RECORD LOADED TO APPROPRIATE CHANNELS.
  3017. *
  3018. * USES T3 - T7, CM - CM+4, DP - DP+4.
  3019. *
  3020. * CALLS CRN, C2D, FCN, IDF, IRN, LFC, MCI, OAR, OFR, STS, TCD,
  3021. * WOG.
  3022. *
  3023. * MACROS DCHAN, DELAY, OPMESS, RCHAN, SFA.
  3024.  
  3025.  
  3026. LCC SUBR ENTRY/EXIT
  3027. LDM DSTO
  3028. LPN 2
  3029. NJN LCCX IF LOAD DISABLED BY *AUTOLOAD*
  3030. LDC TCMR-5 FIND FIRMWARE TYPE
  3031. STD T7
  3032. LCC1 LDN 5
  3033. RAD T7
  3034. LDI T7
  3035. ZJN LCCX IF END OF TABLE
  3036. LDD T7
  3037. RJM CRN COMPARE RECORD NAMES
  3038. NJN LCC1 IF NO MATCH
  3039. RJM IRN INSERT RECORD NAME IN MESSAGE
  3040. RJM LFC LOAD FIRMWARE TO CM
  3041. LDM 4,T7 SAVE FIRMWARE TYPE
  3042. STD RN
  3043. LDN ESTP
  3044. CRD T7-2
  3045. LCC3 SOD T7
  3046. MJN LCCX IF END OF EST
  3047. SFA EST GET EST ENTRY
  3048. ADK EQDE
  3049. CRD CM
  3050. ADK EQAE-EQDE
  3051. CRD DP
  3052. LDD CM+3
  3053. LMC 2RCM
  3054. NJN LCC3 IF NOT *CM* DEVICE
  3055. LDD DP+2
  3056. LPN 77
  3057. LMD RN
  3058. NJN LCC3 IF WRONG CONTROLWARE OR NOLOAD SET
  3059. LDD CM+1
  3060. SHN 21-12
  3061. PJN LCC4 IF FIRST CHANNEL NOT DOWN
  3062. LDD CM+2
  3063. ZJN LCC3 IF NO SECOND CHANNEL
  3064. SHN 21-12
  3065. MJN LCC3 IF SECOND CHANNEL DOWN
  3066. LCC4 SHN 12-0+1
  3067. LPN 37
  3068. STD T4
  3069. RJM TCD TEST CHANNEL DOWN
  3070. MJN LCC3 IF CHANNEL DOWN
  3071. LDD T4
  3072. RJM C2D PUT CHANNEL NUMBER IN MESSAGE
  3073. STM MSGA+5
  3074. OPMESS MSGA,1 DISPLAY LOADING MESSAGE
  3075. LDN IPPF IDLE *DIO*
  3076. RJM IDF
  3077. RJM MCI MODIFY CHANNEL INSTRUCTIONS
  3078. LDD T4
  3079. RCHAN RESERVE CHANNEL
  3080. OPMESS LCCA,2 *TO CONTROL MODULE.*
  3081. LCC5 LDN FCCN ISSUE CONNECT FUNCTION
  3082. RJM FCN
  3083. LDM DSTO CHECK *GRENADE*
  3084. LPN 1
  3085. SHN 21-0
  3086. LMD CM+4 OUTPUT CONTROL MODULE EQUIPMENT NUMBER
  3087. SHN -11+3
  3088. SCN 7
  3089. RJM OAR OUTPUT (A) REGISTER ON CHANNEL
  3090. RJM STS STATUS CONTROLLER
  3091. NJN LCC5 IF GENERAL STATUS NOT ZERO
  3092. LDN FCLC ISSUE CONTROLWARE LOAD FROM PP FUNCTION
  3093. RJM FCN
  3094. RJM OFR OUTPUT FIRMWARE RECORD
  3095. LCC6 DELAY
  3096. RJM STS STATUS CONTROLLER
  3097. ZJN LCC7 IF COMPLETE
  3098. SCN 2
  3099. ZJN LCC6 IF CONTROL MODULE BUSY
  3100. SHN -6
  3101. RJM C2D
  3102. STM MSGE+12
  3103. LDD FN
  3104. RJM C2D
  3105. STM MSGE+13
  3106. LDC MSGE
  3107. RJM WOG WAIT FOR OPERATOR GO
  3108. LJM LCC5 RETRY
  3109.  
  3110. LCC7 LDN FCOC ISSUE OPERATION COMPLETE
  3111. RJM FCN
  3112. LDD T4 DROP CHANNEL
  3113. DCHAN
  3114. LDD IA RESTART *DIO*
  3115. ADN CH*10-2*10
  3116. CRD CM
  3117. STD CM+4
  3118. CWD CM
  3119. LJM LCC3 PROCESS NEXT EST ENTRY
  3120.  
  3121. LCCA DATA C*TO CONTROL MODULE.*
  3122. TCMR SPACE 4,10
  3123. ** TCMR - TABLE OF CONTROL MODULE RECORD NAMES.
  3124. *
  3125. * ENTRY = 5 WORDS = 48/ RN ,12 / CT
  3126. * RN = RECORD NAME.
  3127. * CT = CONTROLWARE TYPE.
  3128.  
  3129.  
  3130. TCMR BSS 0
  3131.  
  3132. VFD 48/0LCMD,12/CMCW
  3133. VFD 48/0LCM2,12/C2CW
  3134. CON 0 TERMINATOR
  3135. SPACE 4,10
  3136. ERRNG PPFW-*
  3137. LOC *O
  3138. .LWI BSS 0
  3139. SPACE 4,10
  3140. .FWC BSS 0 FIRST WORD TO BE MOVED TO MS DRIVER AREA
  3141. LOC MSFW+5*CTALL
  3142. ACC SPACE 4,20
  3143. ** ACC - AUTOLOAD CONCURRENT CHANNEL CONTROLLERS.
  3144. *
  3145. * ENTRY (CA - CA+1) = CMA OF FIRMWARE.
  3146. * (CN+4) = RECORD LENGTH TO LOAD.
  3147. * (T4) = CHANNEL TO AUTOLOAD.
  3148. * (DSTO) = DEADSTART OPTIONS.
  3149. *
  3150. * EXIT CONTROLLER AUTOLOADED.
  3151. * CONTROLLER GRENADED IF DEADSTART OPTION SELECTED.
  3152. *
  3153. * USES T1, CM - CM+4.
  3154. *
  3155. * CALLS ALC, *1CL*.
  3156.  
  3157.  
  3158. ACC2 RJM ALC AUTOLOAD CONTROLLER
  3159.  
  3160. ACC SUBR ENTRY/EXIT
  3161. LDD T4
  3162. LPN 77 SET CHANNEL
  3163. STD CM
  3164. LPN 40
  3165. ZJN ACC2 IF NOT A CONCURRENT CHANNEL
  3166. LDD CN+4 SET RECORD LENGTH
  3167. STD CM+1
  3168. LDM DSTO SET DEADSTART OPTIONS
  3169. STD CM+2
  3170. LDD CA SET FIRMWARE RECORD ADDRESS
  3171. STD CM+3
  3172. LDD CA+1
  3173. STD CM+4
  3174. LDD MA
  3175. CWM ACCA,ON
  3176. CWD CM
  3177. LDN 1 SELECT NO QUEUEING OF REQUEST
  3178. STD CM+1
  3179. LDN 44 SET BARREL SELECT
  3180. SBD T4
  3181. SHN 0-21
  3182. ADN 2
  3183. STD CM+4
  3184. MONITOR CPRM REQUEST A CONCURRENT PP
  3185. LDD CM+1
  3186. NJN ACC0 IF CPP ASSIGNED
  3187. OPMESS ACCB,2 *NO CPP AVAILABLE.*
  3188. UJN * HANG
  3189.  
  3190. ACC0 ADN 2
  3191. STD T1
  3192. ACC1 CRD CM CHECK FOR LOAD COMPLETE
  3193. LDD CM
  3194. LMC 7777
  3195. ZJP ACCX IF LOAD COMPLETE
  3196. DELAY
  3197. LDD T1
  3198. UJN ACC1 LOOP
  3199.  
  3200. ACCA VFD 18/3R1CL, 6/0
  3201. ACCB DATA C*NO CPP AVAILABLE.*
  3202.  
  3203. ERRNG PPFW-* IF OVERFLOW IN PP CODE
  3204. LOC *O
  3205. .LWC BSS 0 END OF CODE TO MOVE
  3206.  
  3207.  
  3208. OVERFLOW TPPA
  3209. TTL STL/LSL - LOAD SYSTEM LIBRARY.
  3210. TITLE
  3211. QUAL LSL
  3212. IDENT LSL,LSLX
  3213. *COMMENT STL - COPY SYSTEM TAPE.
  3214. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  3215. LSL SPACE 4
  3216. ** LSL - MAIN ROUTINE.
  3217.  
  3218.  
  3219. ORG TPPA
  3220. LSL SUBR ENTRY/EXIT
  3221. RJM PRS PRESET OVERLAY
  3222.  
  3223. * LOAD AND INITIALIZE *SYSEDIT*.
  3224.  
  3225. RJM LCP LOAD CENTRAL PROGRAM
  3226. LDK UEML READ UEM PRESENT BIT
  3227. CRD CM
  3228. LDD CM+4
  3229. LPN 2
  3230. SHN 10-1 CM COPY FLAG BIT POSITION
  3231. STD T1
  3232. LDN ZERL
  3233. CRD CM
  3234. CRD CN
  3235. LDC 104 (P) = ENTRY ADDRESS
  3236. STD CN+1
  3237. LDD FL (A0) = FL
  3238. STD CN+2
  3239. LDC EEMC SET ERROR EXIT MODE SELECTION
  3240. LMD T1
  3241. STD CM
  3242. LDD FA (B3) = DISK DEADSTART FLAG
  3243. STD CM+4
  3244. ZJN LSL1 IF TAPE DEADSTART
  3245. LDN DPPF&LSLF
  3246. LSL1 LMN LSLF
  3247. RJM IDF ISSUE *DIO* REQUEST
  3248. LDD CP STORE EXCHANGE PACKAGE DATA
  3249. CWD CN
  3250. ADN 3
  3251. CWD CM
  3252. MONITOR RCPM REQUEST CPU
  3253. LJM LSLX RETURN
  3254. LCP SPACE 4
  3255. ** LCP - LOAD CENTRAL PROGRAM.
  3256. *
  3257. * EXIT CENTRAL PROGRAM LOADED.
  3258. *
  3259. * USES T1, T6.
  3260. *
  3261. * CALLS RTB, CID.
  3262.  
  3263.  
  3264. LCP SUBR ENTRY/EXIT
  3265. RJM RTB READ BLOCK
  3266. RJM CID CHECK IDENT TABLE
  3267. LDD WC SET BLOCK WORD COUNT
  3268. SBD T1
  3269. STD T6
  3270. LDD BA SET BUFFER ADDRESS
  3271. STM LCPA
  3272. LDD RA STORE FIRST BLOCK
  3273. ADN 1
  3274. SHN 6
  3275. CWM *,T6
  3276. LCPA EQU *-1
  3277. LCP1 LDD WC CHECK WORD COUNT
  3278. SHN -11
  3279. ZJN LCPX RETURN IF NOT FULL BLOCK
  3280. RJM RTB READ NEXT BLOCK
  3281. LDD RA STORE BLOCK
  3282. ADN 1
  3283. SHN 6
  3284. ADD T6
  3285. CWM BUF,TH
  3286. LDD TH ADVANCE STORE ADDRESS
  3287. RAD T6
  3288. UJN LCP1 LOOP
  3289. TITLE OVERLAID PRESET ROUTINE.
  3290. USE PRS
  3291. ERRNG BUF-5-*
  3292. PRS SPACE 4
  3293. ** PRS - PRESET OVERLAY.
  3294.  
  3295.  
  3296. PRS SUBR ENTRY/EXIT
  3297. PRS1 PAUSE
  3298. LDM STLB+3 READ *REC* INPUT REGISTER
  3299. CRD CM
  3300. LDD CM+3 CHECK RECOVERY COMPLETE FLAG
  3301. LMC 7776
  3302. NJN PRS1 WAIT UNTIL SET
  3303. LDD IA RESTART *DIO*
  3304. ADN CH*10-2*10
  3305. CRD CM
  3306. STD CM+4
  3307. CWD CM
  3308.  
  3309. * REQUEST ALL AVAILABLE STORAGE.
  3310.  
  3311. LDN DNFL REQUEST NEGATIVE FL
  3312. RJM NFL
  3313. LDN CMRL READ CMR LENGTH
  3314. CRD CN
  3315. ADN MABL-CMRL READ CM SIZE
  3316. CRD CM
  3317. LDD CM+2 SET CM REQUEST = AVAILABLE CM - 100B
  3318. SHN 14
  3319. ADD CM+3
  3320. SBD CN+4
  3321. SBN 1
  3322. STD T1
  3323. SHN -13
  3324. ZJN PRS2 IF REQUEST .LE. 131K
  3325. LDC 3777 SET *SYSEDIT* FL = 377700B
  3326. STD T1
  3327. PRS2 LDD T1 REQUEST STORAGE
  3328. SBN DNFL
  3329. STD CM+1
  3330. LDN 0 SET CM REQUEST
  3331. STD CM+2
  3332. MONITOR RSTM
  3333. LDD FL
  3334. ADN DNFL
  3335. LMD T1
  3336. NJN PRS2 LOOP IF NOT ASSIGNED
  3337. RJM CDJ CREATE DEADSTART JOB
  3338.  
  3339. * CREATE JOB INPUT FILE FOR DEADSTART CONTROL POINT.
  3340.  
  3341. LDD MA SET FILE NAME
  3342. CWM PRSE,ON
  3343. SBN 1
  3344. CRD FN
  3345. LDN ZERL
  3346. CRD DP
  3347. CRD CN
  3348. LDN NEEQ POINT DEFAULT FAMILY AT NULL EQUIPMENT
  3349. STD CN+3
  3350. STD DP
  3351. LDC INFT*100
  3352. STD FN+4
  3353. NFA FNTN STORE FNT IN NFL
  3354. CWD FN
  3355. ADN FSTL
  3356. CWD DP
  3357. LDN ZERL
  3358. CRD FN
  3359. CRD CM
  3360. LDC 4000 SET EOR ON CONTROL STATEMENT FILE
  3361. STD CM+1
  3362. LDD QA SET EJT ORDINAL
  3363. STD DP
  3364. LDC NOJT*100 SET QUEUE FILE DISPOSITION
  3365. STD FN
  3366. LDD CP
  3367. ADN CWQW
  3368. CWM PRSI,ON WRITE CPU PRIORITY
  3369. ADN JCIW-CWQW-1 WRITE JOB CONTROL
  3370. CWM PRSA,ON
  3371. ADN CPTW-JCIW-1
  3372. CWD ZR
  3373. ADN STLW-CPTW
  3374. CWM PRSD,ON SET SRU AND TIME LIMITS TO MAXIMUM
  3375. ADK FLCW-STLW-1
  3376. CWM PRSH,ON SET MAXIMUM FL
  3377. ADK PFCW-FLCW-1
  3378. CWD CN
  3379. ADN TFSW-PFCW
  3380. CWD DP
  3381. ADN CSPW-TFSW STORE CONTROL STATEMENT POINTER
  3382. CWD CM
  3383. ADN ALMW-CSPW SET UNLIMITED VALIDATION LIMITS
  3384. CWM PRSD,ON
  3385. ADN ACLW-ALMW-1
  3386. CWM PRSD,ON
  3387. ADN AACW-ACLW-1
  3388. CWM PRSD,ON
  3389. SBN AACW+1-EOJW STORE END OF JOB INFORMATION
  3390. CWD FN
  3391. ADN CPLW-EOJW STORE CPU TIME LIMITS
  3392. CWM PRSF,ON
  3393. LDD RA CLEAR (RA+1)
  3394. SHN 6
  3395. ADN 1
  3396. CWD ZR
  3397. ADN 1 CLEAR (RA+2)
  3398. CWD ZR
  3399. ADN 1 CLEAR (RA+3)
  3400. CWD ZR
  3401. CRD CN SET UP CONFIGUARATION
  3402. LDK MABL GET HARDWARE OPTIONS
  3403. CRD CM
  3404. LDD CM+1 SET CMU STATUS
  3405. LPN 10
  3406. LMN 10
  3407. SHN 13-3
  3408. STD CN
  3409. LDD RA
  3410. SHN 6
  3411. ADN CMUR
  3412. CWD CN
  3413. ADN FWPR-CMUR
  3414. CWM PRSB,ON
  3415. LDM 1,HN
  3416. STD FA
  3417. NJN PRS3 IF DISK DEADSTART
  3418. LJM PRSX RETURN
  3419.  
  3420. PRS3 LDD MA MOVE FILE NAME TO DIRECT CELLS
  3421. CWM PRSG,ON
  3422. SBN 1
  3423. CRD FN
  3424. LDN NEEQ CREATE FNT ENTRY FOR DISK DEADSTART FILE
  3425. STD FS
  3426. LDN 5 RETURN IF FILE NOT CREATED IMMEDIATELY
  3427. STM OVL1-1
  3428. EXECUTE 0BF,OVL1
  3429. ZJN PRS5 IF FILE CREATED
  3430.  
  3431. * PROCESS LOCAL FILE LIMIT OR NFL INCREASE NEEDED.
  3432. * PROCESS ADVANCE EXIT FROM *0BF* IF FNT ENTRY
  3433. * ALREADY EXISTS.
  3434.  
  3435. PRS4 MONITOR HNGM HANG PP
  3436. UJN PRS4 CONTINUE TO HANG
  3437.  
  3438. PRS5 LDI HN
  3439. STD FS
  3440. LDM 1,HN
  3441. STD FS+1
  3442. STD FS+2
  3443. LDN FSMS SET FIRST SECTOR
  3444. STD FS+3
  3445. LDN 1
  3446. STD FS+4
  3447. LCN LOFT-LIFT SET FILE TYPE
  3448. SHN 6
  3449. RAD FN+4
  3450. NFA FA,R STORE FNT
  3451. CWD FN
  3452. ADN FSTL STORE FST
  3453. CWD FS
  3454. LJM PRSX RETURN
  3455.  
  3456. PRSA VFD 24/0,12/MSSI,6/0,18/0
  3457. PRSB VFD 1/1,11/0,12/0,12/SYOT,24/0
  3458.  
  3459. PRSD VFD 60/-0
  3460.  
  3461. PRSE VFD 42/0LINPUT,18/0
  3462. PRSF VFD 60/37777777777777777777B
  3463. PRSG VFD 42/0LSDF,6/1,6/LIFT,6/0
  3464. PRSH VFD 12/3777,12/0,12/3777,24/0
  3465. PRSI VFD 2/1,7/MPRS-1,3/0,3/4,9/0,9//SCD/SSSC*JCBE,3/0,24/0
  3466. CDJ SPACE 4,10
  3467. ** CDJ - CREATE DEADSTART JOB.
  3468. *
  3469. * EXIT (QA) = EJT ORDINAL.
  3470. * (CM+3 - CM+7) = *JSNE* WORD OF EJT ENTRY.
  3471. * (CN - CN+4) = *SCHE* WORD OF EJT ENTRY.
  3472. * (DP - DP+4) = *SCLE* WORD OF EJT ENTRY.
  3473. *
  3474. * CALLS CFE, CTE.
  3475. *
  3476. * MACROS MONITOR.
  3477.  
  3478.  
  3479. CDJ SUBR ENTRY/EXIT
  3480. LDN ZERL
  3481. CRD CN
  3482. CRD DP
  3483. LCN 0 SET USER INDEX = 377777
  3484. STD CM+6
  3485. STD CN+4
  3486. LDC 100+37 SET FOT ORDINAL = 1
  3487. STD CM+5
  3488. LDK NICS*200+EXJS*2 SET CONNECTION/JOB STATUS
  3489. STD CM+7
  3490. LDC /SCD/DSSC*100+SYOT SET SERVICE CLASS/ORIGIN TYPE
  3491. STD DP
  3492. LDN NEEQ SET NULL EQUIPMENT
  3493. STD CN
  3494. LDN DSCP SET CONTROL POINT
  3495. STD CN+3
  3496. STD CM+1 SELECT NO IOQT ENTRY
  3497. MONITOR RJSM REQUEST JOB SEQUENCE NUMBER
  3498. LDC 4000+PEJT CREATE EJT ENTRY
  3499. RJM CTE
  3500. ADN SCHE STORE EJT ENTRY
  3501. CWD CN
  3502. ADN SCLE-SCHE
  3503. CWD DP
  3504. LDD CM+1 SET EJT ORDINAL
  3505. STD QA
  3506. LDD RS
  3507. NJN CDJ1 IF RECOVERY DEADSTART
  3508. RJM CFE CREATE FAST ATTACH FILES
  3509. CDJ1 LJM CDJX RETURN
  3510. CFE SPACE 4,10
  3511. ** CFE - CREATE FAST ATTACH FNT ENTRIES.
  3512. *
  3513. * USES T6, T7, CM - CM+4.
  3514. *
  3515. * MACROS MONITOR.
  3516.  
  3517.  
  3518. CFE SUBR ENTRY/EXIT
  3519. LDC MMFL FETCH MACHINE ID
  3520. CRD CM
  3521. LDD CM SET MACHINE ID IN RESOURCE FILE NAMES
  3522. STM CFEC+2
  3523. STM CFED+2
  3524. LDC CFEB-1 INITIALIZE LIST ADDRESS
  3525. STD T6
  3526. LDN SYFO PRESET ORDINAL CHECK
  3527. STD T7
  3528. ERRNZ SYFO SYSTEM FILE ORDINAL .NE. 0
  3529. CFE1 STD CM+1
  3530. AOD T6 ADVANCE LIST ADDRESS
  3531. LDI T6
  3532. ZJN CFEX IF NO MORE FAST ATTACH FILES
  3533. STM CFEA
  3534. LDD MA MOVE FILE NAME TO MESSAGE BUFFER
  3535. CWM *,ON
  3536. CFEA EQU *-1
  3537. LDN PFNT CREATE FNT ENTRY
  3538. STD CM+2
  3539. MONITOR MTRM
  3540. AOD T7 ADVANCE ORDINAL CHECK
  3541. LMD CM+1
  3542. ZJN CFE1 IF FNT ORDINAL SEQUENTIAL
  3543. UJN * HANG
  3544.  
  3545. CFEB CON CFEC
  3546. CON CFED
  3547. CON 0 END OF LIST
  3548.  
  3549. CFEC VFD 42/0LRSXDAA,6/0,6/SYFT,6/0
  3550. CFED VFD 42/0LRSXVAA,6/0,6/SYFT,6/0
  3551. SPACE 4,10
  3552. ** COMMON DECKS.
  3553.  
  3554.  
  3555. *CALL COMPCTE
  3556. *CALL COMPNFL
  3557.  
  3558.  
  3559. OVL1 EQU *+1 ZERO-LEVEL OVERLAY LOAD ADDRESS
  3560.  
  3561. ERRNG 7777-OVL1-ZBFL CHECK LENGTH OF *0BF*.
  3562. SPACE 4
  3563. TTL STL - SYSTEM TAPE LOADER.
  3564. END