Table of Contents

MDD

Table Of Contents

  • [00005] MDD - TWO PORT MUX MAINTENANCE DISPLAY.
  • [00009] MAINTENANCE CHANNEL DISPLAY PREPROCESSOR.
  • [00119] RESIDENT NOS DEPENDENT OVERLAY.
  • [00122] MONITOR DISPLAY DRIVER PREPROCESSOR.
  • [00188] MDD - SUBROUTINES.
  • [00190] AMB - ACTIVATE *MDD* BITS.
  • [00210] CPM - CLEAR PP MEMORY.
  • [00234] CPN - CHECK PORT NUMBER.
  • [00275] CSI - CLEAR *SCI* PARAMETER TABLE INTERLOCK.
  • [00295] GEA - GET *EICB* ADDRESS.
  • [00305] GPS - GET *PPR* SAVE AREA ADDRESS.
  • [00315] GSA - GET *SCI* PARAMETER TABLE ADDRESS.
  • [00326] GSI - GET *SCI* PARAMETER TABLE INTERLOCK.
  • [00347] LSC - LOAD *SCI*.
  • [00428] SAS - SET ALERT STATUS.
  • [00452] SMF - SET C170 *MDD* FLAG.
  • [00472] SPD - SET PP/PORT NUMBERS IN *D7RS*.
  • [00515] SPP - SAVE PP RESIDENT.
  • [00590] SSH - SET *SCI* HANDOFF DATA.
  • [00620] MDD PRESET.
  • [00622] PRS - PRESET *MDD* BOOT.
  • [00679] CKV - CHECK FOR PROPER VALIDATIONS.
  • [00713] FCM - FIND CIP MODULE.
  • [00769] GPN - GET LOGICAL PP NUMBER.

Source Code

MDD.txt
  1. IDENT MDD,MDD
  2. PERIPH
  3. BASE MIXED
  4. SST DLYA,RDS,SSCP
  5. TITLE MDD - TWO PORT MUX MAINTENANCE DISPLAY.
  6. *COMMENT MDD - LEVEL=11.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. MDD SPACE 4,10
  9. *** MDD - MAINTENANCE CHANNEL DISPLAY PREPROCESSOR.
  10. *
  11. * B. R. HANSON. 81/02/29.
  12. * R. A. ANDERSON. 85/09/18.
  13. * K. A. PRIEVE. 87/06/10.
  14. SPACE 4,10
  15. *** THIS IS THE NOS OPERATING SYSTEM DEPENDENT RESIDENT
  16. * OVERLAY. THIS PROGRAM DETERMINES WHETHER THERE IS ALREADY A
  17. * COPY OF *SCI* RUNNING IN A PP. IF SO, IT TURNS ON *MDD* MODE
  18. * FOR THAT COPY (UNLESS NOS/VE IS RUNNING IN WHICH CASE *MDD*
  19. * MUST BE INITIATED FROM NOS/VE). IF *SCI* IS NOT CURRENTLY
  20. * EXECUTING, PP RESIDENT IS SAVED AND *SCI* IS LOADED FROM THE
  21. * CIP LIBRARY. THIS PROGRAM ALSO HANDLES THE UNIQUE *MDD*
  22. * STARTUP AND TERMINATION REQUIREMENTS FOR NOS.
  23. *
  24. * THIS VERSION OF *MDD* REQUIRES CIP TO BE AT LEVEL 9 OR
  25. * GREATER.
  26. SPACE 4,10
  27. *** ERROR LOG MESSAGES.
  28. *
  29. * * MDD - ALREADY LOADED.*
  30. * *MDD* IS ALREADY RUNNING IN A PP. ONLY ONE COPY
  31. * CAN RUN AT A TIME.
  32. * MDD PP WILL DROP OUT.
  33. * ALERT STATUS IS SET.
  34. *
  35. * * MDD - BYE COMMAND EXECUTED.*
  36. * THE USER OF MDD HAS ENTERED THE BY COMMAND DIRECTING
  37. * MDD TO DROP OUT.
  38. *
  39. * * MDD - CONSOLE MUST BE UNLOCKED.*
  40. * AN ATTEMPT WAS MADE TO BRING MDD UP WITH THE CONSOLE
  41. * IN A LOCKED STATE.
  42. * MDD PP WILL DROP OUT.
  43. * ALERT STATUS IS SET.
  44. *
  45. * * MDD - IMPROPER ACCESS ATTEMPT.*
  46. * MDD WAS NOT INITIATED FROM EITHER A SYSTEM CONTROL POINT
  47. * OR WITH ENGINEERING ACCESS.
  48. * MDD WILL DROP OUT.
  49. *
  50. * * MDD - MR ERROR.*
  51. * A MAINTENANCE REGISTER ERROR WAS DETECTED DURING MDD
  52. * INITIALIZATION.
  53. * MDD WILL DROP OUT.
  54. *
  55. * * MDD - MUST BE INITIATED FROM NOS/VE.*
  56. * WHEN NOS/VE IS EXECUTING, *MDD* MUST BE INITIATED FROM
  57. * THE NOS/VE SIDE.
  58. * MDD PP WILL DROP OUT.
  59. * ALERT STATUS IS SET.
  60. *
  61. * * MDD - NOT ALLOWED ON THIS MAINFRAME.*
  62. * THE MAINFRAME DOES NOT HAVE NECESSARY HARDWARE TO
  63. * SUPPORT MDD.
  64. * MDD WILL DROP OUT.
  65. * ALERT STATUS IS SET.
  66. *
  67. * * MDD - NOT FOUND IN CIP DIRECTORY.*
  68. * MDD HAS SEARCHED THE CENTRAL MEMORY CTI DIRECTORY
  69. * AND NOT FOUND THE RESIDENT VERSION OF MDD.
  70. * MDD WILL DROP OUT.
  71. * ALERT STATUS IS SET.
  72. *
  73. * * MDD - VALIDATED.*
  74. * MDD HAS SUCCESSFULLY VALIDATED ITSELF AND HAS BEGUN
  75. * OPERATION.
  76. SPACE 4,10
  77. * COMMON DECKS.
  78.  
  79.  
  80. *CALL COMPMAC
  81. *CALL COMPIOU
  82. *CALL COMSCPS
  83. *CALL COMSDST
  84. *CALL COMSEVT
  85. *CALL COMSIOU
  86. *CALL COMSPIM
  87. SPACE 4,10
  88. **** DIRECT LOCATION ASSIGNMENTS.
  89. *
  90. * THE DIRECT CELLS *SM* THROUGH *CD+2* AND *SF* (27-36, 70)
  91. * CONTAIN HANDOFF DATA FOR *SCI*. THEY MUST NOT BE MOVED.
  92. * SEE NOS/VE DEVELOPMENT FOR ANY ADJUSTMENTS THAT MUST BE
  93. * MADE TO ENSURE COMPATIBILITY WITH *SCI*.
  94.  
  95.  
  96. SM EQU 27 *SCI* PP NUMBER AND *X.MDD* FLAG
  97. MD EQU 30 - 32 *SCI* ADDRESS A AND R-REGISTER
  98. UF EQU 33 UTILITY MODE FLAG
  99. CD EQU 34 - 36 CIP DIRECTORY POINTER
  100. CN EQU 40 - 44 SCRATCH BUFFER
  101. RN EQU 45 REGISTER NUMBER (COMPMRA)
  102. PP EQU 46 PP NUMBER
  103. PT EQU 47 PORT NUMBER
  104. W0 EQU 60 WORKING STORAGE
  105. W1 EQU 61 WORKING STORAGE
  106. W2 EQU 62 WORKING STORAGE
  107. W3 EQU 63 WORKING STORAGE
  108. W4 EQU 64 WORKING STORAGE
  109. W5 EQU 65 WORKING STORAGE
  110. W6 EQU 66 WORKING STORAGE
  111. W7 EQU 67 WORKING STORAGE
  112. SF EQU 70 *SCI* INITIATED BY *SDA* FLAG
  113. SPACE 4,10
  114. ** ASSEMBLY CONSTANTS.
  115. *
  116.  
  117.  
  118. RR EQU 400000 CONSTANT VALUE FOR R REGISTER
  119. TITLE RESIDENT NOS DEPENDENT OVERLAY.
  120. ORG PPFW
  121. MDD SPACE 4,10
  122. ** MDD - MONITOR DISPLAY DRIVER PREPROCESSOR.
  123. *
  124. * ENTRY (IR+4) = DESIRED PORT.
  125.  
  126.  
  127. MDD BSS 0 ENTRY
  128. RJM PRS PRESET
  129. RJM GSA
  130. ZJP MDD2 IF NO *SCI* PARAMETER TABLE
  131. RJM GSI GET *SCI* PARAMETER TABLE INTERLOCK
  132. RJM GSA CHECK IF *MDD* ACTIVE
  133. CRD CN
  134. LDD CN+4
  135. SHN 21-13
  136. PJN MDD1 IF *MDD* NOT ALREADY ACTIVE
  137. RJM CPN CHECK PORT NUMBER
  138. LJM MDD6 CLEAR MEMORY AND DROP PP
  139.  
  140. MDD1 LDD CN+1 CHECK IF *SCI* ACTIVE
  141. LPN 77
  142. ZJN MDD3 IF *SCI* NOT ACTIVE
  143. RJM GEA CHECK IF NOS/VE ACTIVE
  144. ADN D8TY
  145. CRD W0
  146. LDD W0+3
  147. LPN 77
  148. SBN 2
  149. ZJN MDD5 IF NOS/VE ACTIVE
  150. RJM AMB ACTIVATE *MDD* BITS
  151. RJM SMF SET C170 *MDD* FLAG
  152. RJM GSA GET *SCI* PARAMETER TABLE ADDRESS
  153. CWD CN WRITE FIRST WORD AND CLEAR INTERLOCK
  154. UJN MDD6 CLEAR MEMORY AND DROP PP
  155.  
  156. MDD2 RJM GEA CHECK IF ANOTHER *MDD* ACTIVE
  157. ADN D7RS
  158. CRD W0
  159. LDD W0+1
  160. LPN 77
  161. NJN MDD4 IF *MDD* ALREADY ACTIVE
  162. MDD3 LDC ELM3+ERLN * MDD - VALIDATED.*
  163. RJM DFM
  164. LJM LSC LOAD *SCI* (DOES NOT RETURN)
  165.  
  166. MDD4 LDC ELM11+ERLN * MDD - ALREADY ACTIVE.*
  167. UJN ERR ISSUE MESSAGE AND DROP PP
  168.  
  169. MDD5 RJM CSI CLEAR *SCI* PARAMETER TABLE INTERLOCK
  170. LDC ELM10+ERLN * MDD - MUST BE INITIATED FROM NOS/VE.*
  171. * UJN ERR ISSUE MESSAGE AND DROP PP
  172.  
  173. * PROCESS FATAL *MDD* ERROR.
  174.  
  175. ERR STM SASA INFORM ALERT ROUTINE
  176. RJM DFM ISSUE MESSAGE
  177. RJM SAS SET ALERT STATUS
  178.  
  179. MDD6 MONITOR DPPM DROP PP
  180. LDC CPMA CLEAR LONG INSTRUCTIONS
  181. RJM CPM
  182. LJM PPR EXIT TO PP RESIDENT
  183. MRER SPACE 4,10
  184. * PROCESS FATAL MAINTENANCE REGISTER ERROR.
  185.  
  186. MRER LDC ELM1+ERLN * MDD - MR ERROR.*
  187. UJN ERR PROCESS FATAL ERROR
  188. TITLE MDD - SUBROUTINES.
  189. AMB SPACE 4,10
  190. ** AMB - ACTIVATE *MDD* BITS.
  191. *
  192. * ENTRY (PT) = PORT NUMBER.
  193. * (CN - CN+4) = *SCI* PARAMETER TABLE WORD ONE.
  194. *
  195. * EXIT *MDD* ACTIVE BITS SET AND INTERLOCK CLEARED
  196. * IN *CN - CN+4*.
  197.  
  198.  
  199. AMB SUBR ENTRY/EXIT
  200. LDD PT SET PORT NUMBER
  201. SHN 6
  202. ADC 1S11+1000 SET *MDD* ACTIVE AND REAL STATE BITS
  203. STD CN+4
  204. LDD CN+1 SET SECONDARY BYTE CHANGED FLAG
  205. LPC 5377 AND CLEAR INTERLOCK BIT
  206. LMC 2000
  207. STD CN+1
  208. UJN AMBX RETURN
  209. CPM SPACE 4,10
  210. ** CPM - CLEAR PP MEMORY.
  211. *
  212. * ENTRY (A) = FIRST WORD TO CLEAR.
  213. *
  214. * EXIT PP MEMORY CLEARED.
  215. *
  216. * USES T0.
  217.  
  218.  
  219. CPM SUBR ENTRY/EXIT
  220. STD T0 FIRST ADDRESS TO CLEAR
  221. LDN 0
  222. CPM1 STI T0
  223. AOD T0
  224. SHN -14
  225. ZJN CPM1 IF MORE MEMORY TO CLEAR
  226. UJN CPMX RETURN
  227. SPACE 4,10
  228. * BEFORE DROPPING THE PP, MEMORY MUST BE CLEARED OF LONG
  229. * INSTRUCTIONS. NO LONG INSTRUCTIONS CAN BE ADDED BEFORE
  230. * THIS ADDRESS.
  231.  
  232. CPMA EQU * CLEAR PP MEMORY ADDRESS
  233. CPN SPACE 4,15
  234. ** CPN - CHECK PORT NUMBER.
  235. *
  236. * ENTRY (CN - CN+4) = *SCI* PARAMETER TABLE WORD ONE.
  237. * *SCI* PARAMETER TABLE INTERLOCKED.
  238. *
  239. * EXIT REQUESTED PORT SET IN *SCI* PARAMETER TABLE.
  240. * *SCI* PARAMETER TABLE INTERLOCK CLEARED.
  241. *
  242. * USES T1.
  243. *
  244. * CALLS GSA.
  245.  
  246.  
  247. CPN SUBR ENTRY/EXIT
  248.  
  249. * CHANGE PORT NUMBER IF DIFFERENT PORT REQUESTED.
  250.  
  251. LDD CN+4 GET CURRENT PORT
  252. SHN -6
  253. LPN 7
  254. LMD PT
  255. NJN CPN1 IF NOT CURRENTLY USING REQUESTED PORT
  256. LDD CN+1 CLEAR INTERLOCK
  257. LPC 7377
  258. UJN CPN2 WRITE FIRST WORD
  259.  
  260. CPN1 LDD PT SET NEW PORT NUMBER
  261. SHN 6
  262. STD T1
  263. LDD CN+4
  264. LPC 7077 CLEAR OLD PORT
  265. LMD T1 ADD NEW PORT
  266. STD CN+4
  267. LDD CN+1 SET SECONDARY BYTE CHANGED FLAG
  268. LPC 5377 AND CLEAR INTERLOCK BIT
  269. LMC 2000
  270. CPN2 STD CN+1
  271. RJM GSA GET *SCI* PARAMETER TABLE ADDRESS
  272. CWD CN WRITE FIRST WORD AND CLEAR INTERLOCK
  273. UJN CPNX RETURN
  274. CSI SPACE 4,10
  275. ** CSI - CLEAR *SCI* PARAMETER TABLE INTERLOCK.
  276. *
  277. * EXIT INTERLOCK CLEARED.
  278. *
  279. * USES W0 - W0+3.
  280. *
  281. * CALLS GSA.
  282.  
  283.  
  284. CSI SUBR ENTRY/EXIT
  285. LDC 0#FFFF
  286. STDL W0
  287. STDL W0+2
  288. STDL W0+3
  289. LDC 0#EFFF MASK FOR CLEAR INTERLOCK
  290. STDL W0+1
  291. RJM GSA GET *SCI* PARAMETER TABLE ADDRESS
  292. RDCL W0 CLEAR INTERLOCK
  293. UJN CSIX RETURN
  294. GEA SPACE 4,10
  295. ** GEA - GET *EICB* ADDRESS.
  296. *
  297. * EXIT (A) = *EICB* FWA.
  298.  
  299.  
  300. GEA SUBR ENTRY/EXIT
  301. LDC **
  302. GEAA EQU *-2 (*EICB* FWA)
  303. UJN GEAX RETURN
  304. GPS SPACE 4,10
  305. ** GPS - GET *PPR* SAVE AREA ADDRESS.
  306. *
  307. * EXIT (A) = *PPR* SAVE AREA FWA.
  308.  
  309.  
  310. GPS SUBR ENTRY/EXIT
  311. LDC **
  312. GPSA EQU *-2 (*PPR* SAVE AREA ADDRESS)
  313. UJN GPSX RETURN
  314. GSA SPACE 4,10
  315. ** GSA - GET *SCI* PARAMETER TABLE ADDRESS.
  316. *
  317. * EXIT (A) = *SCI* PARAMETER TABLE ADDRESS.
  318. * = 0 IF TABLE NOT DEFINED.
  319.  
  320.  
  321. GSA SUBR ENTRY/EXIT
  322. LDC **
  323. GSAA EQU *-2 (*SCI* PARAMETER TABLE ADDRESS)
  324. UJN GSAX RETURN
  325. GSI SPACE 4,10
  326. ** GSI - GET *SCI* PARAMETER TABLE INTERLOCK.
  327. *
  328. * EXIT INTERLOCK SET.
  329. *
  330. * USES W0 - W0+3.
  331. *
  332. * CALLS GSA.
  333.  
  334.  
  335. GSI SUBR ENTRY/EXIT
  336. GSI1 LDN ZERL
  337. CRDL W0
  338. LDC 10000 INTERLOCK BIT
  339. STDL W0+1
  340. RJM GSA GET *SCI* PARAMETER TABLE ADDRESS
  341. RDSL W0 SET INTERLOCK
  342. LDDL W0+1
  343. LPC 10000
  344. NJN GSI1 IF INTERLOCK WAS ALREADY SET
  345. UJN GSIX RETURN
  346. LSC SPACE 4,10
  347. ** LSC - LOAD *SCI*.
  348. *
  349. * ENTRY (CN - CN+4) = *SCI* PARAMETER TABLE WORD ONE.
  350. * *SCI* PARAMETER TABLE INTERLOCKED.
  351. *
  352. * EXIT NO EXIT. LOADS *SCI* ON TOP OF *MDD* BOOT.
  353. *
  354. * CALLS AMB, GSA, SPD, SPP, SSH.
  355.  
  356.  
  357. LSC BSS 0 ENTRY
  358.  
  359. * PREPARE FOR *SCI* LOAD.
  360.  
  361. RJM SPD SET PP/PORT NUMBERS IN *D7RS*
  362. RJM GSA
  363. ZJN LSC1 IF NO *SCI* PARAMETER TABLE
  364. RJM AMB ACTIVATE *MDD* BITS AND CLEAR INTERLOCK
  365. LDD PP SET PP NUMBER
  366. RAD CN+1
  367. RJM GSA WRITE WORD ONE AND CLEAR INTERLOCK
  368. CWD CN
  369. LSC1 RJM SPP SAVE *PPR*
  370. RJM SSH SET *SCI* HANDOFF DATA
  371.  
  372. * CHANGE *MDD* TO *SCI* IN INPUT REGISTER.
  373.  
  374. LDD IA GET CURRENT INPUT REGISTER
  375. CRD CM
  376. LDC 2RSC
  377. STD CM
  378. LDD CM+1
  379. LPN 77
  380. LMC 1RI*100
  381. STD CM+1
  382. LDD IA
  383. CWD CM
  384.  
  385. * PLUG LONG INSTRUCTION IN BOOT CODE. *COMPDLI* DOES
  386. * NOT HANDLE LONG INSTRUCTIONS WITHIN *LOC* DIRECTIVES
  387. * WELL, SO THIS ONE IS PLUGGED EXPLICITLY.
  388.  
  389. LDM LSCA+BTSA-1
  390. LMC 1S15 CONVERT TO 16 BIT INSTRUCTION
  391. STML LSCA+BTSA-1
  392.  
  393. * MOVE CODE SO *SCI* DOES NOT OVERWRITE IT.
  394.  
  395. LDN 1 READ DIRECTORY ENTRY
  396. STD CM
  397. LRD MD+1
  398. LDD MD
  399. ADC RR
  400. CRML LSCA+T3,CM
  401. LDN LSCAL/4 MOVE BOOT
  402. STD CM
  403. LDD MA
  404. CWML LSCA,CM
  405. LDD MA
  406. CRML 0,CM
  407.  
  408. * BOOT CODE FOR LOADING *SCI*.
  409.  
  410. LSCA BSS 0
  411. LOC 0
  412. CON BTS-1
  413. BSS 2
  414. T3 CON 0,0,0,0
  415. BTS LDD T3
  416. STD BTSA
  417. LDD MD
  418. ADC RR+1
  419. LRD MD+1
  420. CRM **,T3+1
  421. BTSA EQU *-1
  422. * CRML **,T3+1 (CONVERTED TO LONG EXPLICITLY)
  423. LJM 100 START EXECUTING *SCI*
  424. LSCAL EQU *+3
  425. ERRPL LSCAL-30 BOOT OVERWRITES HANDOFF DATA
  426. LOC *O
  427. SAS SPACE 4,10
  428. ** SAS - SET ALERT STATUS.
  429. *
  430. * ENTRY (SASA) = MESSAGE ADDRESS.
  431. *
  432. * EXIT ALERT STATUS SET IF PROPER MESSAGE SENT.
  433. *
  434. * USES CM - CM+4.
  435. *
  436. * MACROS MONITOR.
  437.  
  438.  
  439. SAS SUBR ENTRY/EXIT
  440. LDC **
  441. SASA EQU *-1 (ADDRESS OF MESSAGE)
  442. ADC -ALERT
  443. MJN SASX IF NO ALERT NEEDED
  444. LDN ZERL ISSUE ERROR LOG ALERT EVENT
  445. CRD CM
  446. ERRNZ EEVS CODE ASSUMES *EEVS* IS ZERO
  447. LDN ELAE
  448. STD CM+4
  449. MONITOR EATM
  450. UJN SASX RETURN
  451. SMF SPACE 4,10
  452. ** SMF - SET C170 *MDD* FLAG.
  453. *
  454. * USES W0 - W0+4.
  455. *
  456. * CALLS GEA.
  457.  
  458.  
  459. SMF SUBR ENTRY/EXIT
  460. RJM GEA
  461. ADN D7RS
  462. CRD W0
  463. LDD W0+1
  464. LPC 6777
  465. LMC 1000
  466. STD W0+1
  467. RJM GEA REWRITE *D7RS*
  468. ADN D7RS
  469. CWD W0
  470. UJN SMFX RETURN
  471. SPD SPACE 4,15
  472. ** SPD - SET PP/PORT NUMBERS IN *D7RS*.
  473. *
  474. * ENTRY (PP) = PP NUMBER.
  475. * (PT) = PORT NUMBER.
  476. *
  477. * EXIT TO *MDD4* IF *MDD* ALREADY ACTIVE.
  478. * IN THIS CASE, THE *SCI* PARAMETER TABLE INTERLOCK IS
  479. * CLEARED.
  480. *
  481. * USES CM - CM+4.
  482. *
  483. * CALLS CSI, GEA, GSA.
  484. *
  485. * MACROS MONITOR.
  486.  
  487.  
  488. SPD SUBR ENTRY/EXIT
  489. RJM GEA GET *EICB* ADDRESS
  490. ADN D7RS
  491. STD CM+4
  492. SHN -14
  493. STD CM+3
  494. LDN 2 SET NUMBER OF REQUESTS
  495. STD CM+1
  496. LDN 10 SET C170 *MDD* FLAG
  497. LMD PT GET PORT NUMBER
  498. SHN 6
  499. LMD PP GET PP NUMBER
  500. STM SPDB+4
  501. LDD MA WRITE REQUESTS TO MESSAGE BUFFER
  502. CWM SPDA,CM+1
  503. MONITOR UTEM
  504. LDD CM+1
  505. ZJN SPDX IF OPERATION COMPLETE
  506. RJM GSA
  507. ZJN SPD1 IF NO *SCI* PARAMETER TABLE
  508. RJM CSI CLEAR *SCI* PARAMETER TABLE INTERLOCK
  509. SPD1 LJM MDD4 ISSUE ALREADY ACTIVE MESSAGE
  510.  
  511.  
  512. SPDA VFD 1/1,5/0,6/12D,6/36D,42/0
  513. SPDB VFD 1/0,5/0,6/12D,6/36D,42/0
  514. SPP SPACE 4,10
  515. ** SPP - SAVE PP RESIDENT.
  516. *
  517. * EXIT *PPR* WRITTEN TO SAVE AREA.
  518. *
  519. * USES T0, W6, W7.
  520. *
  521. * CALLS GPS.
  522. *
  523. * MACROS SETMS.
  524.  
  525.  
  526. SPP SUBR ENTRY/EXIT
  527. SETMS NODRIVER CLEAR DRIVER PRESENT FLAG
  528. LDC ** SET WORD COUNT TO SAVE
  529. SPPA EQU *-1
  530. SBN 1
  531. STD W7
  532.  
  533. * MOVE UNBOOT TO DRIVER AREA.
  534.  
  535. LDC .SPPCL/5 GET UNBOOT LENGTH
  536. STD W6
  537. RJM GPS GET *PPR* SAVE AREA ADDRESS
  538. CWM SPPC,W6
  539. RJM GPS GET *PPR* SAVE AREA ADDRESS
  540. CRM MSFW,W6
  541.  
  542. * WRITE *PPR*.
  543.  
  544. LDC MSFW-1 SET EXECUTION ADDRESS ON RETURN
  545. STD T0
  546. RJM GPS GET *PPR* SAVE AREA ADDRESS
  547. CWD T0 WRITE FIRST WORD OF *PPR*
  548. ADN 1
  549. CWM 5,W7 WRITE REMAINDER OF *PPR*
  550. UJN SPPX RETURN
  551. SPACE 4,10
  552. * BOOTSTRAP USED TO RELOAD PP RESIDENT (UNBOOT).
  553.  
  554. SPPC BSS 0
  555. LOC MSFW
  556.  
  557. * CLEAR PP NUMBER AND C170 *MDD* FLAG FROM *D7RS*.
  558.  
  559. LDK EIBP
  560. CRD CM
  561. LDD CM+3
  562. SHN 14
  563. LMD CM+4
  564. ADN D7RS
  565. CRD CN
  566. LDD CN+1 CLEAR PP NUMBER, C170 *MDD* FLAG
  567. LPC 6000
  568. STD CN+1
  569. LDD CM+3 REWRITE *D7RS*
  570. SHN 14
  571. LMD CM+4
  572. ADN D7RS
  573. CWD CN
  574.  
  575. * CLEAR PP MEMORY.
  576.  
  577. LDC PPFW
  578. STD CM
  579. LDN 0
  580. BTS1 STI CM
  581. AOD CM
  582. SHN -14
  583. ZJN BTS1 IF MORE TO CLEAR
  584. MONITOR DPPM DROP PP
  585. LJM PPR EXIT TO PP RESIDENT
  586. LOC *O
  587. .SPPCL EQU *-SPPC+4
  588. ERRNG PPFW-MSFW-.SPPCL BOOTSTRAP IS TOO LONG
  589. SSH SPACE 4,10
  590. ** SSH - SET *SCI* HANDOFF DATA.
  591. *
  592. * EXIT (27) = PP NUMBER PLUS 2000.
  593. * (33) = 0, NOT UTILITY MODE.
  594. * (70) = 1, *SCI* NOT INITIATED BY *SDA*.
  595.  
  596.  
  597. SSH SUBR ENTRY/EXIT
  598. LDN 0 SET UTILITY MODE
  599. STD UF
  600. LDN 1 SET NOT *SDA* INITIATED FLAG
  601. STD SF
  602. LDD PP SET PP NUMBER
  603. LMC 2000 ADD *MDD* INITIATED FLAG
  604. STD SM
  605. UJN SSHX RETURN
  606. SPACE 4,10
  607. * ERROR LOG MESSAGES.
  608.  
  609.  
  610. ELM1 DATA C* MDD - MR ERROR.*
  611. ELM3 DATA C* MDD - VALIDATED.*
  612. ELM4 DATA C* MDD - BYE COMMAND EXECUTED.*
  613. ALERT EQU * ONLY ALERT MESSAGES BELOW THIS ADDRESS
  614. ELM6 DATA C* MDD - CONSOLE MUST BE UNLOCKED.*
  615. ELM7 DATA C* MDD - NOT ALLOWED ON THIS MAINFRAME.*
  616. ELM8 DATA C* MDD - IMPROPER ACCESS ATTEMPT.*
  617. ELM9 DATA C* MDD - SCI NOT FOUND IN CIP DIRECTORY.*
  618. ELM10 DATA C* MDD - MUST BE INITIATED FROM NOS/VE.*
  619. ELM11 DATA C* MDD - ALREADY ACTIVE.*
  620. TITLE MDD PRESET.
  621. PRS SPACE 4,20
  622. ** PRS - PRESET *MDD* BOOT.
  623. *
  624. * EXIT (MD - MD+2) = R-REGISTER FORMAT OF FIRST WORD OF
  625. * *SCI* IN CENTRAL MEMORY.
  626. * (PP) = PP NUMBER.
  627. * (PT) = PORT NUMBER.
  628. * (SPPA) = *PPR* LENGTH IN CM WORDS.
  629. * (GEAA - GEAA+1) = *EICB* FWA.
  630. * (GPSA - GPSA+1) = *PPR* SAVE AREA ADDRESS.
  631. * (GSAA - GSAA+1) = *SCI* PARAMETER TABLE ADDRESS.
  632. *
  633. * USES PT, CM - CM=4, W0 - W4.
  634. *
  635. * CALLS CKV, DLI, FCM, GEA, GPN.
  636. *
  637. * MACROS MONITOR.
  638.  
  639.  
  640. PRS SUBR ENTRY/EXIT
  641. LDK NCPL MOVE TO SYSTEM CONTROL POINT
  642. CRD CM
  643. AOD CM+1
  644. MONITOR CCAM MOVE TO SYSTEM CONTROL POINT
  645. RJM GPN GET PP NUMBER
  646. RJM CKV CHECK VALIDATIONS
  647. LDC PLIB
  648. RJM DLI DEFINE LONG INSTRUCTIONS
  649. LDK EIBP SAVE *EICB* FWA
  650. CRD W0
  651. LDD W0+3
  652. RAM GEAA
  653. LDD W0+4
  654. STM GEAA+1
  655. LDC =C*SCI*
  656. RJM FCM FIND ADDRESS OF *SCI*
  657. LDD IR+4 CHECK PORT PARAMETER
  658. SBN 1
  659. ZJN PRS1 IF PORT ZERO REQUESTED
  660. LDN 1 OTHERWISE PORT ONE
  661. PRS1 STD PT SAVE PORT NUMBER
  662. RJM GEA GET *EICB* ADDRESS
  663. ADN D7RS READ *PPR* SAVE AREA ADDRESS
  664. CRD W0
  665. ADN D7RS+2-D7RS *SCI* PARAMETER TABLE ADDRESS
  666. CRD CM
  667. LDD W0+2 SAVE *PPR* WORD COUNT
  668. STM SPPA
  669. LDD W0+3 SAVE *PPR* BUFFER ADDRESS
  670. RAM GPSA
  671. LDD W0+4
  672. STM GPSA+1
  673. LDD CM+3 SAVE *SCI* PARAMETER TABLE ADDRESS
  674. RAM GSAA
  675. LDD CM+4
  676. STM GSAA+1
  677. LJM PRSX RETURN
  678. CKV SPACE 4,10
  679. ** CKV - CHECK FOR PROPER VALIDATIONS.
  680. *
  681. * EXIT TO *ERR* IF *MDD* USE NOT ALLOWED.
  682. *
  683. * USES CM - CM+4.
  684. *
  685. * CALLS CUA.
  686.  
  687.  
  688. CKV SUBR ENTRY/EXIT
  689. LDK MABL CHECK MAINFRAME TYPE
  690. CRD CM
  691. LDD CM+1
  692. SHN 21-13
  693. MJN CKV3 IF NOT CYBER 180
  694. LDN SSTL CHECK CONSOLE STATUS
  695. CRD CM
  696. LDD CM
  697. SHN 21-11
  698. PJN CKV4 IF CONSOLE IS NOT UNLOCKED
  699. RJM CUA CHECK USER ACCESS
  700. NJN CKV1 IF SYSTEM ACCESS NOT ALLOWED
  701. LDD CM
  702. PJN CKVX IF MAINTENANCE ACCESS ALLOWED
  703.  
  704. CKV1 LDC ELM8+ERLN * MDD - IMPROPER ACCESS ATTEMPT.*
  705. CKV2 LJM ERR ISSUE MESSAGE AND DROP *MDD*
  706.  
  707. CKV3 LDC ELM7+ERLN * MDD - NOT ALLOWED ON THIS MAINFRAME.*
  708. UJN CKV2 ISSUE MESSAGE AND DROP *MDD*
  709.  
  710. CKV4 LDC ELM6+ERLN * MDD - CONSOLE MUST BE UNLOCKED.*
  711. UJN CKV2 ISSUE MESSAGE AND DROP *MDD*
  712. FCM SPACE 4,15
  713. ** FCM - FIND CIP MODULE.
  714. *
  715. * ENTRY (A) = ADDRESS OF THREE CHARACTER DISPLAY CODE NAME.
  716. *
  717. * EXIT (A) = OFFSET FROM R-REGISTER OF MODULE HEADER.
  718. * (R) = ADDRESS/100B OF MODULE HEADER.
  719. * (CD - CD+2) = A AND R-REGISTER FORMAT OF CIP
  720. * DIRECTORY.
  721. * TO *ERR* IF *SCI* NOT FOUND.
  722. *
  723. * USES T1, CM - CM+3, W0 - W3.
  724. *
  725. * CALLS GEA.
  726.  
  727.  
  728. FCM4 LDDL CM RETURN WITH ADDRESS
  729. ADN 1 SKIP CIP IDENTIFIER WORD
  730. SRD MD+1 SAVE R REGISTER
  731. STDL MD SAVE A REGISTER
  732.  
  733. FCM SUBR ENTRY/EXIT
  734. STD T1 SAVE ADDRESS OF MODULE TO FIND
  735. RJM GEA GET *EICB* ADDRESS
  736. ADN DSCM+2
  737. CRDL CM READ CIP POINTER
  738. LRD CM+1 SAVE CIP DIRECTORY POINTER
  739. SRD CD+1
  740. LDDL CM
  741. STDL CD
  742. FCM1 STDL CM
  743. LRD CM+1
  744. LMC RR ACTIVATE R REGISTER
  745. CRDL W0
  746. LDD W0
  747. ADD W1
  748. ZJN FCM3 IF END OF DIRECTORY
  749. LDD W0
  750. LMI T1
  751. NJN FCM2 IF NO MATCH
  752. LDD W1
  753. LMM 1,T1
  754. ZJN FCM4 IF MATCH
  755.  
  756. FCM2 LDDL W3 OFFSET TO NEXT MODULE HEADER
  757. RADL CM
  758. SHN -6
  759. RAD CM+2
  760. SHN -14
  761. RAD CM+1
  762. LDD CM
  763. LPN 77
  764. UJN FCM1 FETCH NEXT ENTRY
  765.  
  766. FCM3 LDC ELM9+ERLN * MDD - SCI NOT FOUND IN CIP DIRECTORY.*
  767. LJM ERR RETURN PP
  768. GPN SPACE 4,10
  769. ** GPN - GET LOGICAL PP NUMBER.
  770. *
  771. * EXIT (PP) = LOGICAL PP NUMBER.
  772. *
  773. * USES T1 - T5.
  774.  
  775.  
  776. GPN SUBR ENTRY/EXIT
  777. LDK PPCP
  778. CRD T1
  779. LDD IA
  780. SBD T1+4
  781. SHN -3
  782. STD PP
  783. SBN 12
  784. MJN GPNX IF NOT UPPER BARREL
  785. LDN 6
  786. RAD PP
  787. UJN GPNX RETURN
  788. SPACE 4,10
  789. * COMMON DECKS.
  790.  
  791.  
  792. *CALL COMPCUA
  793. *CALL COMPDLI
  794. *CALL COMPMRA
  795. PLIB SPACE 4,10
  796. PLIB LIST16 LIST OF 16 BIT INSTRUCTIONS
  797. SPACE 4
  798. END