User Tools

Site Tools


plato:source:plaopl:esmpp

Table of Contents

ESMPP

Table Of Contents

  • [00012] ESM - CONTROL EXTENDED SEMI-CONDUCTOR MEMORY
  • [00076] MAIN PROGRAM.
  • [00748] ICH - INSERT CHANNEL NUMBERS INTO I/O INSTRUCTIONS

Source Code

ESMPP.txt
  1. ESMPP
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK ESM 00 000 78/08/22 14.20
  4. ESMPP
  5. IDENT ESM,ESM CONTROL EXTENDED SEMI-CONTONDUCTOR MEMORY
  6. PERIPH
  7. BASE MIXED
  8. SST WDS
  9. LIST F
  10. COMMENT CONTROL EXTENDED SEMI-CONDUCTOR MEMORY.
  11. COMMENT COPYRIGHT CONTROL DATA CORP. 1978.
  12. TITLE ESM - CONTROL EXTENDED SEMI-CONDUCTOR MEMORY
  13. SPACE 5,11
  14. *** ESM - CONTROL EXTENDED SEMI-CONDUCTOR MEMORY.
  15. * R. S. EHRLICH. 78/01/20.
  16. SPACE 5,11
  17. *** ESM CONTROLS THE FUNCTIONS OF EXTENDED SEMI-CONDUCTOR MEMORY.
  18. *
  19. * THIS INVOLVES MANAGING THE RELOCATION MEMORY,
  20. * THE ERROR LOGS, AND INITIALIZING THE FLAG
  21. * REGISTERS.
  22. SPACE 5,11
  23. *** CALL.
  24. *
  25. *
  26. *T 18/ *ESM*, 6/ CP, 6/AD, 24/ADDRESS
  27. * AD - ADDRESS TYPE.
  28. * 0 - PARAMETERS ARE AT *ADDRESS* IN CM.
  29. * 1 - PARAMETERS ARE AT *ADDRESS* IN ESM.
  30. * ADDRESS - ADDRESS WHERE FUNCTION CODES ARE
  31. * STORED.
  32. *
  33. * ADDRESS WORD FORMAT -
  34. *
  35. * 48/PARAMETERS, 12/FUNCTION CODE
  36. * BIT 0 SET UPON COMPLETION OF FUNCTION.
  37. * DATA REQUIRED FOR FUNCTION OR ACQUIRED AS A
  38. * RESULT OF THE FUNCTION IMMEDIATELY FOLLOWS
  39. * THE FUNCTION WORD.
  40. *
  41. * ADDRESS WORD UPON FUNCTION COMPLETION
  42. *
  43. * 36/ , 12/ERROR CODE, 12/COMPLETION BIT
  44. *
  45. * ERROR CODE - 0 - COMPLETED SUCCESSFULLY
  46. * 1 - CHANNEL ERROR
  47. SPACE 5,11
  48. *CALL COMPMAC
  49. *CALL COMPCHI
  50. *CALL COMSCPS
  51. *CALL AIDTEXT
  52. *CALL PLASESM
  53. SPACE 5,12
  54. .DCH IF -MAC,DCHAN SHOULD ONLY HAPPEN IF COMSOURCE
  55. DCHAN MACRO
  56. RJM DCH
  57. ENDM
  58. .DCH ENDIF
  59.  
  60.  
  61. .RCH IF -MAC,RCHAN SHOULD ONLY HAPPEN IF COMSOURCE
  62. RCHAN MACRO
  63. RJM RCH
  64. ENDM
  65. .RCH ENDIF
  66. SPACE 5,11
  67. **** DIRECT LOCATION ASSIGNMENTS.
  68.  
  69. CN EQU 20 - 24 CM WORD STORAGE
  70. RI EQU 25 REQUEST INDEX IN *FTAB*
  71. ES EQU 26 EST ORDINAL OF SIDE-DOOR PORT
  72. MS EQU 27 MAINT CHANNEL ON *DE* FLAG
  73. CM1 EQU 30 - 34 CM WORD STORAGE
  74. ****
  75. * /--- BLOCK ESM 00 000 79/10/01 21.04
  76. TITLE MAIN PROGRAM.
  77. ORG PPFW
  78. ESM RJM PRS
  79. LDN CN READ FUNCTION REQUEST
  80. STD T1
  81. LDD IR+3
  82. STD T2
  83. LDD IR+4
  84. STD T3
  85. LDC 1*10000+5
  86. RJM RMEM
  87.  
  88. * CHECK FUNCTION REQUEST
  89.  
  90. LDD CN+4
  91. SHN -1
  92. STD T1
  93. SBN MXNF/2
  94. MJN ESM1 IF FUNCTION IN RANGE
  95. LDC =C* ESM - ILLEGAL FUNCTION REQUEST.*
  96. LJM ERR
  97.  
  98. ESM1 LDD T1
  99. SHN 2
  100. STD RI
  101. LDM FTAB,RI GET ENTRY FROM TABLE
  102. SHN 6
  103. PJN ESM2 IF FUNCTION CODE
  104. SHN -6
  105. LMC 7777
  106. STM ESMA
  107. ESM2 LDN 0 SHOW NO ERROR YET
  108. STD CN+3
  109. RJM FNC
  110. ESMA EQU *-1
  111.  
  112. * SET COMPLETE BIT / DROP PP
  113.  
  114. AOD CN+4
  115. LDN CN
  116. STD T1
  117. LDD IR+3
  118. STD T2
  119. LDD IR+4
  120. STD T3
  121. LDC 1*10000+5
  122. RJM WMEM
  123. MONITOR DPPM
  124. LJM PPR
  125. * /--- BLOCK FTAB 00 000 79/10/22 21.28
  126. FTAB SPACE 5,11
  127. *** FTAB - FUNCTION CODE TABLE
  128. *
  129. *FNC FTAB A,B,C
  130. *
  131. * FNC - NAME OF FUNCTION
  132. *
  133. * A - FUNCTION CODE OR PROCESSING ROUTINE
  134. * B - INPUT-OUTPUT FLAG
  135. * C - NUMBER OF PP BYTES TO TRANSFER
  136.  
  137.  
  138. ** REQUEST TABLE FORMAT
  139. *
  140. * WORD 1 - FUNCTION CODE / PROCESSING ROUTINE
  141. * WORD 2 - INPUT-OUTPUT FLAG
  142. * WORD 3 - NUMBER OF PP BYTES
  143. * WORD 4 - NUMBER OF CM WORDS
  144.  
  145.  
  146. MACRO FTAB,N,A,B,C
  147. .S IFC EQ,$A$$
  148. N BSS 0
  149. .2 SET N
  150. .S ELSE
  151. ORG .2+N*2
  152. .E IFC NE,$B$$
  153. LOC N
  154. .D IF DEF,A
  155. CON A
  156. .D ELSE
  157. CON -A
  158. .D ENDIF
  159. CON B
  160. CON C
  161. .1 SET C+4
  162. .1 SET .1/5
  163. CON .1
  164. .E ENDIF
  165. .S ENDIF
  166. BSS 0
  167. ENDM
  168.  
  169. IN EQU 0
  170. OUT EQU 1
  171.  
  172. FTAB FTAB
  173. RRMF FTAB 1004,IN,200 READ RELOCATION MEMORY
  174. WRMF FTAB 1005,OUT,200 WRITE RELOCATION MEMORY
  175. RELF FTAB 1010,IN,3+20*2+20*2+20 READ ERROR LOG
  176. RSEF FTAB 1011,IN,0 RESET ERROR LOG
  177. SPEF FTAB 1012,OUT,4 SET PROGRAMMABLE ERROR LOG CNTR
  178. RSBF FTAB 1040,IN,4 READ STATUS BITS
  179. SMAF FTAB 1204,OUT,1 SET MAXIMUM ADDRESS
  180. RSPF FTAB REQ,0,0 REQUEST SIDE-DOOR PORT
  181. REPF FTAB REL,0,0 RELEASE SIDE-DOOR PORT
  182. SXPF FTAB SXP,0,0 SET RAX/FLX IN EXCHANGE PACKAGE
  183. MXNF FTAB 0 END OF TABLE
  184. * /--- BLOCK ERR 00 000 79/10/01 20.38
  185. ERR SPACE 5,11
  186. *** ERR - ISSUE ERROR MESSAGES.
  187. *
  188. * ENTRY - (A) - MESSAGE ADDRESS
  189.  
  190. ERR RJM DFM
  191. MONITOR ABTM
  192. LJM PPR DROP/EXIT PP
  193. * /--- BLOCK FNC 00 000 79/10/22 21.26
  194. FNC SPACE 5,11
  195. *** FNC - ISSUE FUNCTION TO ESM.
  196. *
  197. * ENTRY -
  198. *
  199. * (RI) - INDEX INTO FTAB.
  200.  
  201.  
  202. FNC0 AOD CN+3 SET ERROR
  203.  
  204. FNC SUBR
  205. LDD MS
  206. NJN FNC1.1 IF CHANNEL DEFINED ON *DE*
  207. .NOSV2 IFLT OSLEV,562D IF NOS V1
  208. LDM ESTS CHECK SIDE-DOOR PORT ASSIGNED
  209. ADD ES
  210. CRD CM READ EST ENTRY
  211. LDD CM
  212. LPN 37
  213. SHN 7
  214. LMD CP
  215. .NOSV2 ELSE IF NOS V2
  216.  
  217. * CHECK IF SIDE-DOOR PORT ASSIGNED TO THIS CP
  218.  
  219. .NOS22 IFGE OSLEV,594D IF NOS 2.2
  220. SFA EST,ES GET CM ADDRESS OF SP ENTRY
  221. ADK EQAE ADD OFFSET FOR EQUIP ASSIGNMENT
  222. .NOS22 ELSE
  223. LDK ESTP (A) = CM WORD WITH EAT POINTER
  224. CRD CM READ EST POINTER ENTRY
  225. LDD CM+1 (A) = FWA OF EAT
  226. ADD ES (A) = SIDE-DOOR PORT EAT ENTRY
  227. .NOS22 ENDIF
  228. CRD CM READ SIDE-DOOR PORT EAT ENTRY
  229.  
  230. LDD CP (A) = CP AREA FWA
  231. ADK TERW (A) = ADDR OF CP EJT ORDINAL
  232. CRD CM1 READ CP EJT ORDINAL
  233.  
  234. LDD CM+4 (A) = SIDE-DOOR PORT EJT ORD
  235. LMD CM1 COMPARE WITH THIS CP EST ORD
  236. .NOSV2 ENDIF
  237. NJN FNC0 IF NOT ASSIGNED TO THIS CP
  238. FNC1.1 BSS 0
  239. CHTE *
  240. LDN CH
  241. RCHAN
  242. LDM FTAB+1,RI CHECK FUNCTION TYPE
  243. ZJN FNC1
  244. LJM FNC4
  245.  
  246. * PROCESS INPUT TYPE FUNCTIONS
  247.  
  248. FNC1 LDM FTAB+2,RI
  249. STD T1 SAVE PP BYTES TO TRANSFER
  250. IJM FNC2,CH
  251. DCN CH
  252. FNC2 LDM FTAB,RI
  253. FAN CH ISSUE FUNCTION TO ESM
  254. ACN CH
  255. LDD T1 CHECK IF ANY DATA TO TRANSFER
  256. ZJN FNC3 IF NONE
  257. IAM BFMS,CH INPUT DATA
  258. ZJN FNC3 IF TRANSFER COMPLETE
  259. LJM FNC6
  260.  
  261. FNC3 IJM FNC3.1,CH
  262. DCN CH
  263. CHTE *
  264. FNC3.1 LDN CH
  265. DCHAN
  266. LDC BFMS WRITE DATA TO USER BUFFER
  267. STD T1
  268. LDD IR+4
  269. ADN 1
  270. STD T3
  271. SHN -14
  272. ADD IR+3
  273. STD T2
  274. LDM FTAB+3,RI
  275. SHN 14
  276. LMM FTAB+2,RI
  277. ZJN FNC3.2 IF NO DATA TO TRANSFER
  278. RJM WMEM
  279. FNC3.2 LJM FNCX EXIT
  280. * /--- BLOCK FNC 00 000 79/10/22 21.27
  281.  
  282. * PROCESS OUTPUT TYPE FUNCTIONS.
  283.  
  284. FNC4 LDC BFMS
  285. STD T1
  286. LDD IR+4
  287. ADN 1
  288. STD T3
  289. SHN -14
  290. ADD IR+3
  291. STD T2
  292. LDM FTAB+3,RI
  293. SHN 14
  294. LMM FTAB+2,RI
  295. RJM RMEM
  296. LDM FTAB+2,RI GET BYTES TO TRANSFER
  297. STD T1
  298. IJM FNC5,CH
  299. DCN CH
  300. FNC5 LDM FTAB,RI
  301. FAN CH
  302. ACN CH
  303. LDD T1
  304. OAM BFMS,CH
  305. FJM *,CH
  306. NJN FNC6 IF TRANSFER INCOMPLETE
  307. IJM FNC7,CH
  308. DCN CH
  309. CHTE *
  310. LDN CH
  311. DCHAN
  312. LJM FNCX EXIT
  313.  
  314. * PROCESS FUNCTION ERRORS
  315.  
  316. FNC6 DCN CH+40
  317. CHTE *
  318. FNC7 LDN CH
  319. DCHAN
  320. LDC =C* ESM - FUNCTION FAILED.*
  321. RJM DFM
  322. LJM FNC0
  323.  
  324. SPCH CHTB SIDE-DOOR PORT CHANNEL TABLE
  325. * /--- BLOCK REQ/REL 00 000 79/10/04 10.04
  326. REL SPACE 5,11
  327. *** REL - RELEASE ASSIGNMENT OF SIDE-DOOR PORT
  328.  
  329. REL SUBR
  330. LDD MS
  331. NJN RELX MAINT CHANNEL ON *DE*
  332. .NOSV2 IFLT OSLEV,562D IF NOS V1
  333. LDM ESTS VERIFY ASSIGNED TO THIS CP
  334. ADD ES
  335. CRD CM READ EST ENTRY
  336. LDD CM
  337. LPN 37
  338. SHN 7
  339. LMD CP
  340. .NOSV2 ELSE IF NOS V2
  341.  
  342. * CHECK IF SIDE-DOOR PORT ASSIGNED TO THIS CP
  343.  
  344. .NOS22 IFGE OSLEV,594D IF NOS 2.2
  345. SFA EST,ES GET CM ADDRESS OF SP ENTRY
  346. ADK EQAE ADD OFFSET FOR EQUIP ASSIGNMENT
  347. .NOS22 ELSE
  348. LDK ESTP (A) = CM WORD WITH EAT POINTER
  349. CRD CM READ EST POINTER ENTRY
  350. LDD CM+1 (A) = FWA OF EAT
  351. ADD ES (A) = SIDE-DOOR PORT EAT ENTRY
  352. .NOS22 ENDIF
  353. CRD CM READ SIDE-DOOR PORT EAT ENTRY
  354.  
  355. LDD CP (A) = CP AREA FWA
  356. ADK TERW (A) = ADDR OF CP EJT ORDINAL
  357. CRD CM1 READ CP EJT ORDINAL
  358.  
  359. LDD CM+4 (A) = SIDE-DOOR PORT EJT ORD
  360. LMD CM1 COMPARE WITH THIS CP EST ORD
  361. .NOSV2 ENDIF
  362. NJN REL2
  363. LDD ES
  364. STD CM+1
  365. MONITOR DEQM
  366. REL1 LJM RELX
  367.  
  368. REL2 AOD CN+3 SET ERROR RETURN
  369. UJN REL1
  370. REQ SPACE 5,11
  371. *** REQ - ASSIGN SIDE-DOOR PORT TO CP.
  372.  
  373. REQ SUBR
  374. .NOS242 IFGE OSLEV,642D
  375. LDN REQS (A) = REQUEST ACTIVE EQUIPMENT
  376. .NOS242 ELSE
  377. LDN 0 (A) = REQUEST ACTIVE EQUIPMENT
  378. .NOS242 ENDIF
  379. STD CM+2
  380. LDD ES
  381. STD CM+1
  382. MONITOR REQM
  383. LDD CM+1 CHECK IF ASSIGNED
  384. NJN REQX IF ASSIGNED
  385. AOD CN+3 SET ERROR
  386. UJN REQX
  387. * /--- BLOCK SXP 00 000 79/10/08 20.15
  388. SXP SPACE 5,11
  389. *** SXP - SET EXCHANGE PACKAGE.
  390. *
  391. * THE EXCHANGE PACKAGE IS SET UP TO ALLOW
  392. * ESM DATA TRANSFER BY THE CPU PROGRAM.
  393. *
  394. * FUNCTION WORD
  395. * 24/ESM RAX, 24/ESM FLX, 12/FUNCTION SXP
  396.  
  397. SXP SUBR
  398. LDD CP CHECK IF PROGRAM IN AUTO-RECALL
  399. ADN STSW
  400. CRD CM
  401. LDD CM
  402. .NOSV2 IFGE OSLEV,562D NOS V2
  403. SHN -11B
  404. SBN 6 AUTO RECALL = 6
  405. ZJN SXP1 IF IN AUTO RECALL
  406. .NOSV2 ELSE NOS V1
  407. SHN 21-11
  408. MJN SXP1 IF IN AUTO-RECALL
  409. .NOSV2 ENDIF
  410. LDC =C* ESM - AUTO-RECALL ERROR.*
  411. LJM ERR
  412.  
  413. SXP1 LDD CN+1 CHECK IF RAX/FLX LOW 6 BITS = 0
  414. LPN 77
  415. NJN SXP2
  416. LDD CN+3
  417. LPN 77
  418. ZJN SXP3
  419. SXP2 LDC =C* ESM - ILLEGAL RAX/FLX.*
  420. LJM ERR
  421.  
  422. SXP3 LDD CP READ RAX/FLX FROM EXCHANGE
  423. ADN 4
  424. CRD CM READ RAX
  425. ADN 1
  426. CRD CM1 READ FLX
  427. LDD CN SET RAX
  428. LPN 77
  429. SHN 14
  430. LMD CN+1
  431. SHN -6
  432. STD CM+1
  433. LDD CN
  434. SHN -6
  435. STD CM
  436. LDD CN+2 SET FLX
  437. LPN 77
  438. SHN 14
  439. LMD CN+3
  440. SHN -6
  441. STD CM1+1
  442. LDD CN+2
  443. SHN -6
  444. STD CM1
  445. LDD CP RE-WRITE TO EXCHANGE PACKAGE
  446. ADN 4
  447. CWD CM
  448. ADN 1
  449. CWD CM1
  450. LJM SXPX EXIT
  451. * /--- BLOCK RMEM 00 000 79/10/04 10.13
  452. RMEM SPACE 5,11
  453. *** RMEM - READ TABLE FROM CM/ESM.
  454. *
  455. * READS DATA FROM CM/ESM INTO PP.
  456. *
  457. * ENTRY -
  458. *
  459. * (T1) - PP WORD TO READ INTO.
  460. * (T2-T3) - ADDRESS TO READ FROM.
  461. * (A) - NUMBER OF WORDS TO READ.
  462. * 6/CM WORDS, 12/PP WORDS
  463. *
  464. * EXIT -
  465. * DATA READ.
  466.  
  467.  
  468. RMEM SUBR
  469. LJM RME7 READ DATA FROM CM
  470. RMEA EQU *-1
  471. STM RMEB SAVE NUMBER OF WORDS TO READ
  472. LDD T1
  473. STM RMEC
  474. CHTE *
  475. LDN CH
  476. RCHAN
  477. IJM RME1,CH
  478. DCN CH
  479. RME1 FNC 5004,CH SELECT EXTENED ADDRESSING MODE
  480. FNC 5001,CH READ DATA
  481. ACN CH
  482. LDN 2 OUTPUT ECS ADDRESS
  483. OAM T2,CH
  484. LDC ** NUMBER OF WORDS TO READ
  485. RMEB EQU *-1
  486. IAM **,CH
  487. RMEC EQU *-1
  488. NJN RME5 IF READ ERROR
  489. RME2 IJM RME4,CH
  490. EJM RME2,CH
  491. DCN CH
  492. CHTE *
  493. LDN CH RELEASE DDP
  494. DCHAN
  495. RME3 LJM RMEMX RETURN
  496.  
  497. RME4 FNC 5010,CH
  498. RME5 IJM RME6,CH
  499. DCN CH
  500. RME6 LDD CM+1 RELEASE CHANNEL
  501. DCHAN
  502. LDC =C* ESM - READ ESM ERROR.*
  503. RJM DFM
  504. UJN RME3 EXIT
  505.  
  506. * READ DATA FROM CM.
  507.  
  508. RME7 SHN -14 SAVE NUMBER OF WORDS TO READ
  509. STD CM
  510. LDD T1
  511. STM RMED SAVE TRANSFER ADDRESS
  512. LDD T2 CHECK IF ADDRESS WITHIN FL
  513. LPN 37
  514. SHN 14
  515. LMD T3
  516. ADD CM
  517. SHN -6
  518. SBD FL
  519. MJN RME8 IF IN RANGE
  520. LDC =C* ESM - CM ADDRESS OUTSIDE FL.*
  521. LJM ERR
  522.  
  523. RME8 LDD T2
  524. LPN 37
  525. SHN 6
  526. ADD RA
  527. SHN 6
  528. ADD T3
  529. CRM **,CM
  530. RMED EQU *-1
  531. LJM RMEMX EXIT
  532. * /--- BLOCK WMEM 00 000 79/10/04 10.16
  533. WMEM SPACE 5,11
  534. *** WMEM - WRITE DATA TO CM/ESM.
  535. *
  536. * ENTRY -
  537. *
  538. * (T1) - PP WORD TO WRITE FROM.
  539. * (T2-T3) - ADDRESS TO WRITE TO.
  540. * (A) - NUMBER OF WORDS TO WRITE.
  541. * 6/CM WORDS, 12/PP WORDS
  542. *
  543. * EXIT -
  544. * DATA WRITTEN.
  545.  
  546.  
  547. WMEM SUBR
  548. LJM WME8
  549. WMEA EQU *-1
  550. STM WMEB SAVE NUMBER OF WORDS TO WRITE
  551. LDD T1
  552. STM WMEC
  553. CHTE *
  554. LDN CH
  555. RCHAN
  556. IJM WME1,CH
  557. DCN CH
  558. WME1 FNC 5004,CH SELECT EXTENDED ADDRESSING MODE
  559. FNC 5002,CH WRITE DATA
  560. ACN CH
  561. LDN 2 OUTPUT ECS ADDRESS
  562. OAM T2,CH
  563. LDC 0 NUMBER OF WORDS TO WRITE
  564. WMEB EQU *-1
  565. OAM 0,CH
  566. WMEC EQU *-1
  567. FJM *,CH
  568. NJN WME6 IF WRITE ERROR
  569. DCN CH GET DDP STATUS
  570. WME2 FNC 5004,CH
  571. ACN CH
  572. IAN CH INPUT STATUS
  573. DCN CH
  574. LPN 11 CHECK WRITE/ABORT
  575. NJN WME5
  576. IJM WME3,CH
  577. DCN CH
  578. CHTE *
  579. WME3 LDN CH RELEASE CHANNEL
  580. DCHAN
  581. WME4 LJM WMEMX RETURN
  582.  
  583. WME5 LPN 10
  584. NJN WME2 IF WRITE IN PROGRESS
  585. FNC 5010,CH
  586. WME6 IJM WME7,CH
  587. DCN CH
  588. CHTE *
  589. WME7 LDN CH RELEASE CHANNEL
  590. DCHAN
  591. LDC =C* ESM - WRITE ESM ERROR.*
  592. RJM DFM
  593. UJN WME4 EXIT
  594.  
  595. * WRITE DATA TO CM
  596.  
  597. WME8 SHN -14 SAVE NUMBER OF WORDS TO WRITE
  598. STD CM
  599. LDD T1 SAVE PP ADDRESS
  600. STM WMED
  601. LDD T2 VERIFY ADDRESS WITHIN FL
  602. LPN 37
  603. SHN 14
  604. LMD T3
  605. ADD CM
  606. SHN -6
  607. SBD FL
  608. MJN WME9 IF IN RANGE
  609. LDC =C* ESM - ADDRESS OUT OF RANGE.*
  610. LJM ERR
  611.  
  612. WME9 LDD T2
  613. LPN 37
  614. SHN 6
  615. ADD RA
  616. SHN 6
  617. ADD T3
  618. CWM **,CM
  619. WMED EQU *-1
  620. LJM WMEMX EXIT
  621.  
  622.  
  623. DPCH CHTB DDP CHANNEL TABLE
  624. * /--- BLOCK PRS 00 000 87/02/10 11.29
  625. PRS SPACE 5,11
  626. *** PRS - PRESET PROGRAM.
  627. *
  628. * THE ADDRESSING MODE AND CHANNEL NUMBER OF THE
  629. * SIDE-DOOR PORT IS INITIALIZED.
  630.  
  631.  
  632. PRS5 LDC =C* ESM - ILLEGAL USER ACCESS.*
  633. LJM ERR
  634.  
  635. PRS SUBR
  636. RJM CUA GO CHECK USER ACCESS
  637. NJN PRS5 ILLEGAL USER ACCESS CALL
  638.  
  639. * SEARCH FOR SIDE-DOOR PORT
  640.  
  641. LDC 2R"SP"
  642. RJM EQN
  643. PJN PRS2 IF *SP* FOUND
  644. LDC 2RDE
  645. RJM EQN
  646. PJN PRS1 IF *DE* FOUND
  647. PRS0 LDC =C* ESM - SIDE-DOOR PORT NOT FOUND.*
  648. LJM ERR
  649.  
  650. PRS1 STD ES SAVE EST ORDINAL
  651. .NOS252 IFGE OSLEV,678D
  652. SFA EST
  653. ADK EQAE
  654. CRD CM
  655. .NOS252 ENDIF
  656. LDD CM+2
  657. ZJN PRS0 IF NO *MC* DEFINED
  658. STD CM+1 SAVE CHANNEL
  659. LDD ES
  660. PRS2 STD ES
  661. LDD CM+1 CLEAR OTHER CHANNELS
  662. LPN 77
  663. STD CM+1
  664. LDC SPCH
  665. RJM ICH INSERT CHANNEL NUMBERS
  666. *
  667. * SET FLAG FOR CHECKING IF MAINTENANCE CHANNEL WAS
  668. * DEFINED ON THE *DE* EST ENTRY. IF IT WAS, ESM
  669. * SHOULD NOT TRY TO RESERVE THIS EQUIPMENT.
  670. *
  671. .NOSV2 IFLT OSLEV,562D IF NOS V1
  672. LDM ESTS
  673. ADD ES
  674. .NOSV2 ELSE IF NOS V2
  675. .NOS22 IFLT OSLEV,594D IF NOS 2.1
  676. LDK ESTP (A) = CM WORD WITH EAT POINTER
  677. CRD CM READ EST POINTER ENTRY
  678. LDD CM (A) = FWA OF EST
  679. ADD ES
  680. .NOS22 ELSE IF NOS 2.2
  681. SFA EST,ES GET CM ADDRESS OF EST ENTRY
  682. ADK EQDE ADD OFFSET FOR EQUIP DEFINITION
  683. .NOS22 ENDIF
  684. .NOSV2 ENDIF
  685. CRD CM READ EST ENTRY
  686. LDD CM
  687. SHN 7 MASK OFF MASS STORAGE FLAG
  688. LPN 1
  689. STD MS
  690.  
  691. * SET ADDRESSING MODE FOR TABLES
  692.  
  693. LDD IR+2 CHECK ADDRESSING TYPE
  694. LPN 77
  695. STD T1
  696. SBN MXTY
  697. MJN PRS3 IF VALID TYPE
  698. LDC =C* ESM - ILLEGAL ADDRESS TYPE.*
  699. LJM ERR
  700. * /--- BLOCK PRS 00 000 87/02/10 11.25
  701.  
  702. PRS3 LDM ATY,T1
  703. ZJN PRS4 IF NO PROCESSOR FOR THIS TYPE
  704. STM PRSA
  705. RJM **
  706. PRSA EQU *-1
  707. PRS4 LJM PRSX EXIT
  708.  
  709. ATY BSS 0
  710. LOC 0
  711. CON 0 TABLES IN CM
  712. CON AEC TABLES IN ESM
  713. MXTY BSS 0
  714. LOC *O
  715. AEC SPACE 5,11
  716. *** AEC - INITIALIZE TO READ/WRITE TABLES FROM ESM
  717.  
  718.  
  719. AEC SUBR
  720. LDC RMEA+1 SET TO READ/WRITE FROM ESM
  721. STM RMEA
  722. LDC WMEA+1
  723. STM WMEA
  724.  
  725. * SEARCH FOR DDP
  726.  
  727. LDD T7
  728. STD CN
  729. AES1 LDD CN
  730. CRD CM
  731. LDD CM+3
  732. LMC 2R"DP"
  733. ZJN AES2 IF DDP FOUND
  734. AOD CN
  735. LMD CN+1
  736. NJN AES1 IF MORE TO SEARCH
  737. LDC =C* ESM - DDP NOT FOUND.*
  738. LJM ERR
  739.  
  740. AES2 LDD CM+1
  741. LPN 77
  742. STD CM+1
  743. LDC DPCH
  744. RJM ICH INSERT CHANNEL NUMBERS
  745. LJM AECX
  746. * /--- BLOCK ICH 00 000 79/10/04 10.32
  747. ICH SPACE 5,11
  748. ** ICH - INSERT CHANNEL NUMBERS INTO I/O INSTRUCTIONS
  749. *
  750. * COMPCHI MUST BE CALLED TO RE-DEFINE INSTRUCTIONS.
  751. *
  752. * ENTRY -
  753. *
  754. * (A) - ADDRESS OF CHANNEL TABLE
  755. * (CM+1) - CHANNEL NUMBER.
  756.  
  757.  
  758. ICH SUBR
  759. STD T2
  760. ICH1 LDI T2
  761. ZJN ICHX IF END OF TABLE
  762. STD T1
  763. LDI T1
  764. SCN 37
  765. LMD CM+1
  766. STI T1 SET NEW CHANNEL NUMBER
  767. AOD T2
  768. UJN ICH1
  769. * /--- BLOCK END 00 000 78/08/22 14.20
  770.  
  771. * COMMON DECK THAT MAY BE OVERLAYED.
  772.  
  773. *CALL COMPCUA
  774. *CALL PLAPEQN
  775.  
  776. ERRNG 7770-* PP OVERFLOW
  777.  
  778.  
  779. END
plato/source/plaopl/esmpp.txt ยท Last modified: 2023/08/05 18:54 by Site Administrator