Table of Contents

EPE

Table Of Contents

  • [00012] EPE - PROCESS EM PARITY ERRORS.
  • [00014] PROCESS EM PARITY ERRORS.
  • [00053] MACREF - GENERATE MACRO SYMBOLIC REFERENCE LISTING.
  • [00119] MAIN PROCESSING LOOP
  • [00325] SUBROUTINES.
  • [00327] C18 - CONVERT 18 BITS TO DISPLAY CODE
  • [00351] C24 - CONVERT 24 BITS TO DISPLAY CODE
  • [00375] C60 - CONVERT 60 BITS TO DISPLAY CODE
  • [00400] IDM - ISSUE DAYFILE MESSAGES
  • [00608] MEL - MONITOR ESM ERROR LOG
  • [00640] RDW - READ WORD FROM EM
  • [00685] REQ - REQUEST CPU ACTION
  • [00734] SCR - SET JOB CONTROL REGISTERS
  • [00780] SFW - SEARCH FOR FAILING WORD
  • [00805] STA - SET TRANSFER ADDRESS
  • [00964] WTW - WRITE WORD TO EM
  • [00991] PRESET.
  • [00993] PRS - PRESET PROGRAM
  • [01102] BXP - BUILD EXCHANGE PACKAGE

Source Code

EPE.txt
  1. EPE
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK IDENT 00 000 87/02/24 09.41
  4. IDENT EPE,EPE PROCESS EM PARITY ERRORS
  5. PERIPH
  6. BASE M
  7. SST
  8. COMMENT PROCESS EM PARITY ERRORS.
  9. COMMENT COPYRIGHT CONTROL DATA CORP. 1980.
  10.  
  11. LIST F
  12. TITLE EPE - PROCESS EM PARITY ERRORS.
  13. SPACE 5,11
  14. *** EPE - PROCESS EM PARITY ERRORS.
  15. *
  16. * EPE IS THE PP HELPER TO RECOVER FROM EM
  17. * PARITY ERRORS. IT IS CALLED BY THE COMMON
  18. * DECK *ECSPRTY* TO RECOVER/RECORD EM
  19. * PARITY ERRORS.
  20. SPACE 5,11
  21. *** CALL.
  22. *
  23. * 18/EPE,24/,18/ADDR
  24. *
  25. * ADDR = ADDRESS OF PARAMTERS
  26. *
  27. * PARAMETERS -
  28. *
  29. * WORD DESCRIPTION
  30. *
  31. * 0 REQUEST/RETURN STATUS
  32. * EPE POST RETURN STATUS IN LOW BITS
  33. * 1 - RECOVERED FROM ERROR
  34. * 3 - NO RECOVERY FROM ERROR
  35. * 5 - READ A WORD FROM EM
  36. * 7 - WRITE A WORD TO EM
  37. *
  38. * CPU POSTS EM PARITY ERROR ON 5/7
  39. * REQUESTS IN UPPER BIT
  40. *
  41. * 1 ADDRESS OF RE/WE INSTRUCTION THAT FAILED
  42. * 2 WORD TO READ/WRITE FROM ON 5/7 REQUESTS
  43. * 3 - 18 COPY OF EXCHANGE PACKAGE
  44. * UPON CALLING *EPE*, THE EXCHANGE PACKAGE
  45. * CONTAINS A6/X6/A1/X1 IN FIRST FOUR WORDS.
  46. * USING THE ACTUAL EXCHANGE PACKAGE AND
  47. * SUBROUTINE TO SAVE *B1*, *EPE* STORES
  48. * EXCHANGE PACKAGE HERE.
  49. * 19 - 56 SUBROUTINE TO SAVE B1 VIA SERIES OF RJ,S
  50.  
  51. *
  52. *
  53. ** MACREF - GENERATE MACRO SYMBOLIC REFERENCE LISTING.
  54. *
  55. * CAUSES THE MACRO NAME TO BE LISTED IN THE SYMBOLIC
  56. * REFERENCE TABLE UNDER THE QUALIFIER *MACRO$*.
  57. *
  58. * MACREF MNAME
  59. * MNAME MACRO NAME FOR REFERENCE TABLE.
  60.  
  61. PURGMAC MACREF
  62. MACREF MACRO N
  63. QUAL MACRO$
  64. N SET *
  65. QUAL *
  66. ENDM
  67. *
  68. *
  69.  
  70. * COMMON DECKS
  71.  
  72.  
  73. *CALL COMPMAC
  74. *CALL AIDTEXT
  75. BASE D
  76. *CALL PLASRWX
  77. BASE *
  78.  
  79. .NOSV2 IFLT OSLEV,578D NOS V1
  80. * ECS/ESM MODE WORD / BIT IN *CPUL*
  81.  
  82. .1 SET ESMM/12D
  83. ESMW EQU 4-.1 BYTE IN *CPUL*
  84. ESMB EQU ESMM-12D*.1 BIT IN THAT BYTE
  85.  
  86. .NOSV2 ENDIF
  87.  
  88.  
  89. * ASSEMBLY CONSTANTS
  90.  
  91. RL EQU 12 RETRY LIMIT TO CAUSE FAILURE
  92.  
  93.  
  94. * INSTRUCTIONS USED AS CONSTANTS
  95.  
  96. UJNI EQU 0300 UJN
  97. * /--- BLOCK DIRECT 00 000 87/02/24 09.34
  98.  
  99. * DEFINE DIRECT CELLS
  100.  
  101. RE EQU 20 - 21 EM RAE
  102. .NOSV2 IFGE OSLEV,578D NOS V2
  103. ES EQU 22 ECS/ESM MODE (= 0 IF ESM)
  104. .NOSV2 ELSE NOS V1
  105. ES EQU 22 ECS/ESM MODE (NONZERO IF ESM)
  106. .NOSV2 ENDIF
  107. IO EQU 23 INSTRUCTION DEFINITION
  108. IS EQU 24 - 25 INSTRUCTION ADDRESS
  109. PT EQU 26 - 32 TEST PATTERN
  110. WC EQU 33 - 34 WORD COUNT
  111. EA EQU 35 - 36 EM FWA OF TRANSFER
  112. NW EQU 37 - 40 NUMBER OF WORDS TO TRANSFER
  113. CA EQU 41 - 42 CM FWA OF TRANSFER
  114. IN EQU 43 - 47 FAILING INSTRUCTION
  115. RC EQU 57 RETRY COUNT
  116. CN EQU 60 - 64 CM WORD STORAGE
  117. EX EQU 65 EXTENDED ADDRESSING MODE (1 = Y)
  118. * /--- BLOCK MAIN 00 000 81/07/11 15.15
  119. TITLE MAIN PROCESSING LOOP
  120.  
  121. ORG PPFW
  122. EPE RJM PRS
  123.  
  124. * FETCH FAILING INSTRUCTION
  125.  
  126. LDD IR+3
  127. SHN 6
  128. ADD RA
  129. SHN 6
  130. ADD IR+4
  131. ADN 1
  132. CRD CM READ ADDRESS OF INSTRUCTION
  133. LDD CM+3
  134. STD IS
  135. LDD CM+4
  136. STD IS+1
  137. LDD IS
  138. SHN 6
  139. ADD RA
  140. SHN 6
  141. ADD IS+1
  142. CRD IN READ FAILING INSTRUCTION
  143. LDN 0
  144. STD IO SET ILLEGAL INSTRUCTION
  145. LDD IN
  146. SHN -6
  147. SBN 1
  148. NJN EPE1 IF NOT RJ/RE/WE
  149. LDD IN
  150. SHN -3
  151. LPN 7
  152. SHN 1
  153. STD T1
  154. LDM EPEA,T1
  155. STD IO SET INSTRUCTION TYPE
  156. LDM EPEA+1,T1
  157. STM IDMH+11 SET OP-CODE
  158. EPE1 RJM STA SET TRANSFER ADDRESS
  159. ZJN EPE2 IF NO ERRORS OCCURRED
  160. LDN 3 (A) = UNRECOVERABLE ERROR
  161. LJM EPE12 POST REPLY
  162.  
  163. * SEARCH FOR FAILING WORD
  164.  
  165. EPE2 RJM SFW SEARCH FOR FAILING WORD
  166. NJN EPE3 IF FAILING ADDRESS FOUND
  167. LDC IDMANF ADDR OF NON-FATAL ERR MESSAGE
  168. STM IDMADDR STORE IN MESSAGE ADDR CELL
  169. LDC 2R,R RESET ERRORLOG MESSAGE STATUS
  170. STM IDMJ+5
  171. LDN 0
  172. STD WC
  173. STD WC+1
  174. RJM IDM ISSUE DAYFILE MESSAGES
  175. LDN 1 (A) = RECOVERED ERROR
  176. LJM EPE12 POST REPLY
  177.  
  178. * FAILING WORD LOCATED, TRY TEST PATTERNS
  179.  
  180. EPE3 RJM SCR SET JOB CONTROL REGISTERS
  181. LDD MA
  182. CWD CN
  183. CRM EFW,ON SAVE FAILING WORD
  184. * /--- BLOCK MAIN 00 000 87/02/24 09.26
  185.  
  186. * WRITE ZERO TEST PATTERN
  187.  
  188. LDN ZERL
  189. CRD PT
  190. LDN RL SET RE-TRY COUNT
  191. STD RC
  192. EPE4 RJM WTW WRITE TEST PATTERN
  193. LDN 1 (A) = COMPARE AGAINST PT
  194. RJM RDW READ WORD
  195. MJN EPE6 IF ERROR OCCURRED
  196. SOD RC
  197. NJN EPE4 IF RETRY COUNT NOT EXHAUSTED
  198.  
  199. * WRITE ONES TEST PATTERN
  200.  
  201. LCN 0
  202. STD PT
  203. STD PT+1
  204. STD PT+2
  205. STD PT+3
  206. STD PT+4
  207. LDN RL SET RE-TRY COUNT
  208. STD RC
  209. EPE5 RJM WTW WRITE TEST PATTERN
  210. LDN 1 (A) = COMPARE AGAINST PT
  211. RJM RDW READ WORD
  212. PJN EPE7 IF NO ERROR OCCURRED
  213. EPE6 LJM EPE11 PROCESS ERROR
  214.  
  215. EPE7 SOD RC
  216. NJN EPE5 IF RETRY COUNT NOT EXHAUSTED
  217.  
  218. * TEST ONE/ZERO PATTERN
  219.  
  220. LDN RL SET RE-TRY COUNT
  221. STD RC
  222. EPE8 LDD MA
  223. CWM EPEB,ON
  224. SBN 1
  225. CRD PT
  226. RJM WTW WRITE TEST PATTERN
  227. LDN 1 (A) = COMPARE AGAINST PT
  228. RJM RDW READ WORD
  229. MJN EPE6 IF ERROR OCCURRED
  230. LDD MA TEST 252525...
  231. CWM EPEC,ON
  232. SBN 1
  233. CRD PT
  234. RJM WTW WRITE TEST PATTERN
  235. LDN 1 (A) = COMPARE AGAINST PT
  236. RJM RDW READ WORD
  237. MJN EPE6 IF ERROR OCCURRED
  238. SOD RC
  239. NJN EPE8 IF RETRY COUNT NOT EXHAUSTED
  240.  
  241. * TEST ORIGINAL WORD WITH EACH BIT COMPLEMENTED
  242.  
  243. LDN 5-1 SET BYTE COUNT
  244. STD RC
  245. EPE9 LDD MA FETCH ORIGINAL WORD
  246. CWM EFW,ON
  247. SBN 1
  248. CRD PT
  249. LDM PT,RC COMPLEMENT NEXT BIT
  250. LMC 1
  251. EPE10 EQU *-1
  252. STM PT,RC
  253. RJM WTW WRITE TO EM
  254. LDN 1 (A) = COMPARE AGAINST PT
  255. RJM RDW READ WORD
  256. MJN EPE11 IF ERROR OCCURRED
  257. * /--- BLOCK MAIN 00 000 80/07/28 13.39
  258. LDM EPE10
  259. RAM EPE10
  260. SHN 21-14
  261. PJN EPE9 IF BYTE NOT COMPLETE
  262. LDN 1
  263. STM EPE10 RESET BIT
  264. SOD RC
  265. PJN EPE9 IF MORE BYTES TO CHECK
  266.  
  267. * COULD NOT REPRODUCE ERROR
  268.  
  269. LDN 1 (A) = TEST PATTERNS WORKED
  270. RJM IDM ISSUE DAYFILE MESSAGES
  271. LDD IO
  272. LPN 2 (A) = 2 IF WRITE INSTRUCTION
  273. STD T1
  274. LDN 3 (A) = NOT RECOVERED
  275. SBD T1 CONVERT TO RECOVERED IF WRITE
  276. UJN EPE12 POST REPLY
  277.  
  278. EPE11 LDN 2 (A) = TEST PATTERN FAILED
  279. RJM IDM ISSUE DAYFILE MESSAGES
  280. LDN 3 (A) = UNRECOVERED ERROR
  281. * /--- BLOCK MAIN 00 000 88/10/26 12.58
  282.  
  283. * SET RETURN CODE / DROP PP
  284.  
  285. EPE12 STD CM+4 SET RETURN CODE
  286. LDN 0
  287. STD CM
  288. STD CM+1
  289. STD CM+2
  290. STD CM+3
  291. LDD IR+3
  292. SHN 6
  293. ADD RA
  294. SHN 6
  295. ADD IR+4
  296. CWD CM
  297. * RJM MEL MONITOR ESM ERROR LOG
  298. MONITOR DPPM
  299. LJM PPR
  300.  
  301.  
  302. * EM INSTRUCTION TYPES
  303. *
  304. * BIT DESCRIPTION
  305. *
  306. * 0 LEGAL OP-CODE
  307. * 1 SET IF WRITE TYPE
  308. * 2 SET IF SINGLE WORD TYPE
  309.  
  310. EPEA BSS 0
  311. LOC 0
  312. DATA 0,2RRJ RJ
  313. DATA 1,2RRE RE
  314. DATA 3,2RWE WE
  315. DATA 0,2RXJ XJ
  316. DATA 5,2RRX RX
  317. DATA 7,2RWX WX
  318. DATA 0,0 ILLEGAL
  319. DATA 0,0 ILLEGAL
  320. LOC *O
  321.  
  322. EPEB DATA 5252,5252,5252,5252,5252
  323. EPEC DATA 2525,2525,2525,2525,2525
  324. * /--- BLOCK CONVERT 00 000 80/06/27 13.19
  325. TITLE SUBROUTINES.
  326. C18 SPACE 5,11
  327. ** C18 - CONVERT 18 BITS TO DISPLAY CODE
  328. *
  329. * ENTRY - (T1) = ADDRESS TO STORE RESULT
  330. * (T2) = ADDRESS OF VALUE TO CONVERT
  331.  
  332.  
  333. C18 SUBR
  334. LDI T2
  335. LPN 77
  336. RJM C2D
  337. STI T1
  338. AOD T1
  339. AOD T2
  340. LDI T2
  341. SHN -6
  342. RJM C2D
  343. STI T1
  344. AOD T1
  345. LDI T2
  346. LPN 77
  347. RJM C2D
  348. STI T1
  349. UJN C18X
  350. C24 SPACE 5,11
  351. ** C24 - CONVERT 24 BITS TO DISPLAY CODE
  352. *
  353. * ENTRY - (T1) = ADDRESS TO STORE RESULT
  354. * (T2) = ADDRESS OF VALUE TO CONVERT
  355.  
  356.  
  357. C24 SUBR
  358. LDN 2
  359. STD T3
  360. C241 LDI T2
  361. SHN -6
  362. RJM C2D
  363. STI T1
  364. AOD T1
  365. LDI T2
  366. LPN 77
  367. RJM C2D
  368. STI T1
  369. AOD T1
  370. AOD T2
  371. SOD T3
  372. NJN C241 IF MORE BYTES TO CONVERT
  373. UJN C24X
  374. C60 SPACE 5,11
  375. ** C60 - CONVERT 60 BITS TO DISPLAY CODE
  376. *
  377. * ENTRY - (T1) = ADDRESS TO STORE RESULT
  378. * (T2) = ADDRESS OF VALUE TO CONVERT
  379.  
  380.  
  381. C60 SUBR
  382. LDN 5
  383. STD T3
  384. C601 LDI T2
  385. SHN -6
  386. RJM C2D
  387. STI T1
  388. AOD T1
  389. LDI T2
  390. LPN 77
  391. RJM C2D
  392. STI T1
  393. AOD T1
  394. AOD T2
  395. SOD T3
  396. NJN C601 IF MORE BYTES TO CONVERT
  397. UJN C60X
  398. * /--- BLOCK IDM 00 000 87/02/24 09.27
  399. IDM SPACE 5,11
  400. ** IDM - ISSUE DAYFILE MESSAGES
  401. *
  402. * ENTRY - (A) = 0 - ADDRESS NOT KNOWN
  403. * 1 - TEST PATERN DID NOT FAIL
  404. * 2 - TEST PATTERN FAILED
  405.  
  406.  
  407. IDM SUBR
  408. STD T5 SAVE FLAGS
  409. LDN DTEL (A) = ADDR OF DATE ( YY/MM/DD.)
  410. CRM IDMI+5,ON READ DATE TO PP MEMORY
  411. LDC IDMI *+++++...*
  412. RJM DFM
  413. LDM IDMADDR ADDR OF *EM PARITY ERR* MESS
  414. RJM DFM
  415.  
  416. * SET LINK INFORMATION FOR ERRLOG MESSAGE
  417.  
  418. LDN PPCP COMPUTE PP NUMBER
  419. CRD CM
  420. LDD IA
  421. SBD CM+4
  422. SHN -3
  423. RJM C2D
  424. STM IDMJ+2
  425. STM IDMK+2
  426. STM IDML+2
  427. LDD T5
  428. NJN IDM1 IF ADDRESS KNOWN
  429. LJM IDM3
  430.  
  431. * DISPLAY FAILING ADDRESS
  432.  
  433. IDM1 LDD RE+1 DISPLAY ECS ADDRESS
  434. ADD EA+1
  435. ADD WC+1
  436. STD T7
  437. SHN -14
  438. ADD RE
  439. ADD EA
  440. ADD WC
  441. STD T6
  442. LDC IDMB+5
  443. STD T1
  444. LDN T6
  445. STD T2
  446. RJM C24
  447. LDC IDMB *EM ADDR XXXXXXXX*
  448. RJM DFM
  449. LDC IDMJ+6 FORMAT EM ADDRESS FOR ERRORLOG
  450. STD T1
  451. LDN T6
  452. STD T2
  453. LDD T6
  454. LPC 7000 CHECK FOR ESM .GT. 2000K
  455. ZJN IDM1.1 IF .LT. 2000K
  456. RJM C24
  457. UJN IDM1.2
  458.  
  459. IDM1.1 SHN -11
  460. RAM IDMJ+6
  461. AOD T1 ADVANCE POINTER
  462. RJM C18
  463. IDM1.2 LDC IDMC+5 DISPLAY CONTENTS OF WORD
  464. STD T1
  465. LDC EFW
  466. STD T2
  467. RJM C60
  468. LDC IDMC *CONTENTS XXXXX...*
  469. RJM DFM
  470. LDD T5
  471. SBN 1
  472. NJN IDM2 IF TEST PATTERN DID FAIL
  473. LJM IDM4
  474.  
  475. IDM2 LDC IDMD+5 DISPLAY TEST DATA
  476. STD T1
  477. LDN PT
  478. STD T2
  479. RJM C60
  480. LDC IDMD *TEST DATA XXXX...*
  481. RJM DFM
  482. LDC IDME+5 DISPLAY READ TEST DATA
  483. STD T1
  484. LDN CN
  485. STD T2
  486. RJM C60
  487. LDC IDME * READ AS XXXX...*
  488. RJM DFM
  489. LDC IDMK+7 FORMAT FOR ERRORLOG
  490. * /--- BLOCK IDM 00 000 80/09/02 22.58
  491. STD T1
  492. LDN CN
  493. STD T2
  494. RJM C60
  495. LDC IDML+7
  496. STD T1
  497. LDN PT
  498. STD T2
  499. RJM C60
  500. * /--- BLOCK IDM 00 000 80/08/27 15.20
  501.  
  502. * FORMAT FWA FOR ERRLOG IF NO FAILING ADDRESS
  503.  
  504. IDM3 LDD RE+1
  505. ADD EA+1
  506. STD T7
  507. SHN -14
  508. ADD RE
  509. ADD EA
  510. STD T6
  511. LDN T6
  512. STD T2
  513. LDC IDMJ+6 FORMAT EM ADDRESS FOR ERRORLOG
  514. STD T1
  515. LDD T6
  516. LPC 7000 CHECK FOR EM .GT. 2000K
  517. ZJN IDM3.1 IF .LT. 2000K
  518. RJM C24
  519. UJN IDM4
  520.  
  521. IDM3.1 SHN -11
  522. RAM IDMJ+6
  523. AOD T1
  524. RJM C18
  525. IDM4 LDC IDMF+5 DISPLAY FWA OF TRANSFER
  526. STD T1
  527. LDD RE+1
  528. ADD EA+1
  529. STD T7
  530. SHN -14
  531. ADD RE
  532. ADD EA
  533. STD T6
  534. LDN T6
  535. STD T2
  536. RJM C24
  537. LDC IDMF *FWA TRANS XXXXXXXX*
  538. RJM DFM
  539. LDC IDMG+5 DISPLAY LENGTH OF TRANSFER
  540. STD T1
  541. LDN NW
  542. STD T2
  543. RJM C24
  544. LDC IDMG *LTH TRANS XXXXXXXX*
  545. RJM DFM
  546. LDC IDMJ+17 FORMAT WORD CNT FOR ERRORLOG
  547. STD T1
  548. LDN NW
  549. STD T2
  550. RJM C18
  551. LDC IDMH+5 DISPLAY CALL ADDRESS
  552. STD T1
  553. LDN IS
  554. STD T2
  555. RJM C18
  556. LDC IDMH *CALL ADDR XXXXXX*
  557. RJM DFM
  558. LDC IDMI1 *++++...*
  559. RJM DFM
  560. LDC IDMJ+13 FORMAT CM ADDRESS FOR ERRORLOG
  561. STD T1
  562. LDN CA
  563. STD T2
  564. RJM C18
  565. LDD IO SET READ/WRITE FLAG
  566. SHN -1
  567. LPN 1
  568. STD T1
  569. LDM IDMM,T1
  570. STM IDMJ+3
  571. LDC ERLN+IDMJ
  572. RJM DFM
  573. LDD T5
  574. SBN 2
  575. NJN IDM5 IF NO FAILING DATA
  576. LDC ERLN+IDMK
  577. RJM DFM
  578. LDC ERLN+IDML
  579. RJM DFM
  580. IDM5 LJM IDMX EXIT
  581.  
  582. * /--- BLOCK MESSAGES 00 000 87/02/24 09.27
  583.  
  584. * THESE MESSAGES ARE READ FROM THE ERRORLOG BY A
  585. * FTN PROGRAM, *NORM*, FROM THE CE TOOLS PACKAGE
  586. * AND REFORMATTED FOR USE BY *HPA*.
  587.  
  588. IDMADDR VFD 12/IDMAF DEFAULT TO FATAL ERR MESSAGE
  589. IDMAF DATA 2RUN
  590. IDMANF DATA 10HRECOVERED
  591. DATA C*EM PARITY ERROR*
  592. IDMB DATA C*EM ADDR XXXXXXXX*
  593. IDMC DATA C*CONTENTS UNKNOWN *
  594. IDMD DATA C*TEST DATA XXXXXXXXXXXXXXXXXXXX*
  595. IDME DATA C* READ AS XXXXXXXXXXXXXXXXXXXX*
  596. IDMF DATA C*FWA TRANS XXXXXXXX*
  597. IDMG DATA C*LTH TRANS XXXXXXXX*
  598. IDMH DATA C*CALL ADDR XXXXXX XX*
  599. IDMI DATA C*++++++++++ YY/MM/DD.++++++++++*
  600. IDMI1 DATA C*++++++++++++++++++++++++++++++*
  601. IDMJ DATA C*EC00XX,R01,U,AAAAAAA,CAAAAAA,WXXXXXX.*
  602. IDMK DATA C*EC00XX,R01,U,BXXXXXXXXXXXXXXXXXXXX.*
  603. IDML DATA C*EC00XX,R01,U,GXXXXXXXXXXXXXXXXXXXX.*
  604. IDMM DATA 2R,R
  605. DATA 2R,W
  606. * /--- BLOCK MEL 00 000 80/07/02 08.30
  607. MEL SPACE 5,11
  608. ** MEL - MONITOR ESM ERROR LOG
  609. *
  610. * IF RUNNING IN ESM MODE, POST EVENT TO CAUSE
  611. * ESM ERROR LOG MONITOR TO EXECUTE.
  612.  
  613.  
  614. MEL SUBR
  615.  
  616. * SEARCH EST FOR *SP* ENTRY
  617.  
  618. LDC 2RSP
  619. RJM EQN SEARCH EST
  620. PJN MEL1 IF *SP* ENTRY FOUND
  621. LDC 2RDE LOOK FOR MC DEFINITION ON DE
  622. RJM EQN
  623. MJN MELX DE NOT FOUND (ARGH)
  624. STD T1 SAVE EST ORDINAL
  625. .NOS252 IFGE "MODLEVEL",678D
  626. SFA EST (A) = ADDR OF EST ENTRY
  627. ADK EQAE
  628. CRD CM
  629. .NOS252 ENDIF
  630. LDD CM+2
  631. LPN 77
  632. ZJN MELX NO *MC* DEFINED
  633. LDD T1
  634. MEL1 STD CM+3 (CM+3) = EST ORDINAL
  635. MONITOR EATM
  636. UJN MELX EXIT
  637. *CALL PLAPEQN
  638. * /--- BLOCK RDW 00 000 87/02/24 09.28
  639. RDW SPACE 5,11
  640. ** RDW - READ WORD FROM EM
  641. *
  642. * ENTRY - (A) = 1 IF COMPARE WORD TO *PT*
  643. * (WC) = WORD TO READ
  644. *
  645. * EXIT - (A) = <0 IF ERRORS
  646.  
  647.  
  648. RDW SUBR
  649. STD T7 SAVE COMPARE FLAG
  650. LDN ZERL
  651. CRD CM
  652. LDD WC+1
  653. ADD EA+1
  654. STD CM+1
  655. SHN -14
  656. ADD WC
  657. ADD EA
  658. STD CM
  659. LDN 5
  660. RJM REQ REQUEST CPU ACTION
  661. MJN RDWX IF ERROR
  662. LDD T7
  663. ZJN RDWX IF NO COMPARE
  664. LDD CN
  665. LMD PT
  666. NJN RDW1 IF MIS-MATCH
  667. LDD CN+1
  668. LMD PT+1
  669. NJN RDW1 IF MIS-MATCH
  670. LDD CN+2
  671. LMD PT+2
  672. NJN RDW1 IF MIS-MATCH
  673. LDD CN+3
  674. LMD PT+3
  675. NJN RDW1 IF MIS-MATCH
  676. LDD CN+4
  677. LMD PT+4
  678. NJN RDW1 IF MIS-MATCH
  679. LJM RDWX EXIT
  680.  
  681. RDW1 LCN 0 (A) = ERROR OCCURRED
  682. LJM RDWX
  683. * /--- BLOCK REQ 00 000 80/06/27 11.30
  684. REQ SPACE 5,11
  685. ** REQ - REQUEST CPU ACTION
  686. *
  687. * ENTRY - (A) = REQUEST CODE
  688. *
  689. * EXIT - (A) = ERROR RESPONSE
  690.  
  691. REQ SUBR
  692. STD CM+4
  693. LDD IR+3
  694. SHN 6
  695. ADD RA
  696. SHN 6
  697. ADD IR+4
  698. ADN 2
  699. CWD PT WRITE PATTERN TO WRITE
  700. SBN 2
  701. CWD CM
  702. MONITOR RCLM RE-START CPU PROGRAM
  703.  
  704. * WAIT FOR CPU TO PROCESS REQUEST
  705.  
  706. REQ1 DELAY
  707. PAUSE
  708. LDD CM+1
  709. NJN REQ2 IF ERROR FLAG SET
  710.  
  711. * READ REQUEST WORD
  712.  
  713. LDD IR+3
  714. SHN 6
  715. ADD RA
  716. SHN 6
  717. ADD IR+4
  718. CRD CM
  719. ADN 2
  720. CRD CN READ WORD READ
  721. LDD CM+4
  722. SHN 21-0
  723. MJN REQ1 IF REQUEST NOT COMPLETE
  724. LDD CM
  725. SHN 21-13 POSITION ERROR CODE
  726. LJM REQX EXIT
  727.  
  728. * PROCESS ERROR FLAG
  729.  
  730. REQ2 MONITOR DPPM
  731. LJM PPR
  732. * /--- BLOCK SCR 00 000 87/02/24 09.28
  733. SCR SPACE 5,11
  734. ** SCR - SET JOB CONTROL REGISTERS
  735. *
  736. * SETS JOB CONTROL REGISTERS FOR EM TESTER
  737. *
  738. * EXIT - (R1) = *ECS*
  739. * (R2) = 0 (IF FAILING BIT FOUND)
  740. * 200000 + LOW 16 BITS OF ADDRESS
  741.  
  742.  
  743. SCR SUBR
  744. LDD CP
  745. ADC JCRW
  746. CRD CM
  747. LDN 0 CLEAR *R2*
  748. STD CM+2
  749. LDN 1RE SET *R1* = *ECS*
  750. STD CM+3
  751. LDC 2RCS
  752. STD CM+4
  753. LDD T5
  754. SBN 2
  755. ZJN SCR1 IF FAILING BIT FOUND
  756. LDD RE
  757. ADD EA
  758. ADD WC
  759. LPN 37
  760. SHN 14
  761. ADD RE+1
  762. ADD EA+1
  763. ADD WC+1
  764. LPC 177777
  765. ADC 200000
  766. SHN 14
  767. STD CM+2
  768. SHN -14
  769. SHN 6
  770. RAD CM+3
  771.  
  772. * RE-WRITE JOB CONTROL REGISTERS
  773.  
  774. SCR1 LDD CP
  775. ADC JCRW
  776. CWD CM
  777. LJM SCRX EXIT
  778. * /--- BLOCK SFW 00 000 80/06/27 09.35
  779. SFW SPACE 5,11
  780. ** SFW - SEARCH FOR FAILING WORD
  781. *
  782. * EXIT - (A) = 0 IF NO ERRORS
  783. * (WC) = WORD IN ERROR
  784.  
  785.  
  786. SFW SUBR
  787. LDN 0
  788. STD WC
  789. STD WC+1
  790. SFW1 LDD WC
  791. LMD NW
  792. NJN SFW2 IF NOT AT LIMIT
  793. LDD WC+1
  794. LMD NW+1
  795. ZJN SFWX IF SEARCH COMPLETE
  796. SFW2 LDN 0 (A) = NO COMPARE
  797. RJM RDW READ A WORD
  798. MJN SFWX IF ERROR OCCURRED
  799. AOD WC+1
  800. SHN -14
  801. RAD WC
  802. UJN SFW1 READ NEXT WORD
  803. * /--- BLOCK STA 00 000 87/02/24 09.29
  804. STA SPACE 5,11
  805. ** STA - SET TRANSFER ADDRESS
  806. *
  807. * ENTRY - (IO) = INSTRUCTION DEFINITION BITS
  808. *
  809. * EXIT - (CA) = CM FWA OF TRANSFER
  810. * (EA) = EM FWA OF TRANSFER
  811. * (NW) = NUMBER OF WORDS IN TRANSFER
  812. * (A) = 0 IF NO ERRORS
  813.  
  814.  
  815. STA7 LDC STAB
  816. STD T1
  817. LDN IS
  818. STD T2
  819. RJM C18
  820. LDC STAA * ILLEGAL EM INSTRUCTION...*
  821. RJM DFM
  822. STA8 LDC STAD
  823. STD T1
  824. LDN IN
  825. STD T2
  826. RJM C60 CONVERT 60 BITS
  827. LDC STAC * INSTRUCTION - XXX...*
  828. RJM DFM
  829. LDN 1 (A) = ERRORS
  830.  
  831. STA SUBR
  832. LDD IO
  833. ZJN STA7 IF ILLEGAL INSTRUCTION
  834. SHN 21-2
  835. MJN STA1 IF SINGLE WORD TYPE
  836. LJM STA2
  837.  
  838. * PROCESS SINGLE WORD TRANSFERS
  839.  
  840. STA1 LDN 1 SET TRANSFER LENGTH
  841. STD NW+1
  842. LDN 0
  843. STD NW
  844. LDD IN+1
  845. SHN -11
  846. STD T1 SET X(J)
  847. LDD IN
  848. LPN 7
  849. STD T2 SET X(I)
  850. LDD IR+3
  851. SHN 14
  852. ADD IR+4
  853. ADN 3+10
  854. ADD T2 (A) = CM ADDRESS
  855. STD CA+1
  856. SHN -14
  857. STD CA
  858. LDD IR+3 READ *X(J)*
  859. SHN 6
  860. ADD RA
  861. SHN 6
  862. ADD IR+4
  863. ADN 3+10
  864. ADD T1
  865. CRD CM
  866. LDD CM+3 SET EM ADDRESS
  867. STD EA
  868. LDD CM+4
  869. STD EA+1
  870. LJM STA3
  871. * /--- BLOCK STA 00 000 87/02/24 09.29
  872.  
  873. * PROCESS RE/WE INSTRUCTIONS
  874.  
  875. STA2 LDD IN
  876. LPN 7 (A) = B REGISTER
  877. STD T1
  878. LDD IR+3 READ *B* REGISTER
  879. SHN 6
  880. ADD RA
  881. SHN 6
  882. ADD IR+4
  883. ADN 3
  884. CRD PT READ *A0*
  885. ADN 10
  886. CRD CM READ *X0*
  887. SBN 10
  888. ADD T1
  889. CRD CN READ *B(I)*
  890. LDD CN+4 SET (B(I))
  891. STM .STA+1
  892. LDD CN+3
  893. LPN 77
  894. RAM .STA
  895. LDD PT+3 SET CM FWA
  896. SCN 77
  897. SHN 6
  898. ADD PT+2
  899. SHN 6
  900. STD CA+1
  901. SHN -14
  902. STD CA
  903. LDD CM+3 SET EM FWA
  904. STD EA
  905. LDD CM+4
  906. STD EA+1
  907. LDD IN+2 COMPUTE TRANSFER LENGTH
  908. SCN 77
  909. SHN 6
  910. ADD IN+1
  911. SHN 6
  912. .STA ADC 0 INCLUDE *B(I)*
  913. STD NW+1
  914. SHN -14
  915. STD NW
  916.  
  917. * VERIFY NOT A FLAG REGISTER INSTRUCTION
  918.  
  919. STA3 LDD ES
  920. .NOSV2 IFGE OSLEV,578D NOS V2
  921. ZJN STA4 IF ESM MODE
  922. .NOSV2 ELSE NOS V1
  923. NJN STA4 IF ESM MODE
  924. .NOSV2 ENDIF
  925. LDD CM+3
  926. SHN 21-13
  927. UJN STA5
  928.  
  929. STA4 LDD CM+2
  930. SHN 21-5
  931. STA5 MJN STA6 IF FLAG BIT ON
  932. LDN 0 (A) = NO ERRORS
  933. LJM STAX EXIT
  934.  
  935. * PROCESS ILLEGAL INSTRUCTION
  936.  
  937. STA6 LDC STAF
  938. STD T1
  939. LDN IS
  940. STD T2
  941. RJM C18 CONVERT CM ADDR TO DISPLAY
  942. LDC STAH
  943. STD T1
  944. LDN CM
  945. STD T2
  946. RJM C60 CONVERT X0 TO DISPLAY
  947. LDC STAE * INVALID FLAG FUNCTION...*
  948. RJM DFM
  949. LDC STAG * X0 - XXX...*
  950. RJM DFM
  951. LJM STA8 EXIT AFTER DISPLAYING INSTR.
  952.  
  953. STAA DATA H* ILLEGAL EM INSTRUCTION AT *
  954. STAB DATA C*XXXXXX*
  955. STAC DATA H* INSTRUCTION - *
  956. STAD DATA C*XXXXXXXXXXXXXXXXXXXX*
  957.  
  958. STAE DATA H* INVALID FLAG FUNCTION AT *
  959. STAF DATA C*XXXXXX*
  960. STAG DATA H* REGISTER X0 - *
  961. STAH DATA C*XXXXXXXXXXXXXXXXXXXX*
  962. * /--- BLOCK WTW 00 000 87/02/24 09.29
  963. WTW SPACE 5,11
  964. ** WTW - WRITE WORD TO EM
  965. *
  966. * ENTRY - (WC) = WORD TO WRITE
  967. *
  968. * EXIT - (A) = <0 IF ERRORS
  969.  
  970.  
  971. WTW SUBR
  972. LDN ZERL
  973. CRD CM
  974. LDD WC+1
  975. ADD EA+1
  976. STD CM+1
  977. SHN -14
  978. ADD WC
  979. ADD EA
  980. STD CM
  981. LDN 7
  982. RJM REQ REQUEST CPU ACTION
  983. UJN WTWX EXIT
  984. * /--- BLOCK COMMON 00 000 80/06/30 15.48
  985.  
  986. * COMMON DECKS
  987.  
  988.  
  989. *CALL COMPC2D
  990. * /--- BLOCK PRS 00 000 87/02/24 11.06
  991. TITLE PRESET.
  992.  
  993. ** PRS - PRESET PROGRAM
  994.  
  995.  
  996. PRS SUBR
  997. RJM CUA CHECK USER ACCESS
  998. ZJN PRS2 IF ACCESS ALLOWED
  999. LDC PRSA * ILLEGAL USER ACCESS.*
  1000. PRS1 RJM DFM
  1001. MONITOR ABTM
  1002. LJM PPR
  1003.  
  1004. PRS2 RJM CRS CHECK RECALL STATUS
  1005. NJN PRS3 IF CALLED WITH AUTO-RECALL
  1006. LDC PRSB * AUTO-RECALL ERROR.*
  1007. UJN PRS1
  1008.  
  1009. * VALIDATE PARAMETER ADDRESS
  1010.  
  1011. PRS3 LDD IR+3
  1012. SHN 14
  1013. LMD IR+4
  1014. ADN 3+20+2*18D+1
  1015. SHN -6
  1016. SBD FL
  1017. MJN PRS4 IF PARAMETERS IN RANGE
  1018. LDC PRSC * ADDRESS OUT OF RANGE*
  1019. UJN PRS1
  1020.  
  1021. * SET ECS/ESM MODE FLAG
  1022.  
  1023. .NOS252 IFGE OSLEV,678D
  1024. PRS4 LDK EXML CHECK ECS/ESM MODE
  1025. CRD CM
  1026. LDD CM+3
  1027. SHN -12
  1028. LPN 1
  1029. LMN 1 COMPLEMENT
  1030. .NOS252 ELSE
  1031. .NOSV2 IFGE OSLEV,578D NOS V2
  1032. PRS4 LDN MEFL CHECK ECS/ESM MODE
  1033. CRD CM
  1034. LDD CM+2
  1035. LPN 7 (A) = 15/0, 3/EM TYPE
  1036. SBN 5 EM TYPE = 5 IF ESM
  1037.  
  1038. .NOSV2 ELSE NOS V1
  1039. PRS4 LDN CPUL FETCH ECS/ESM MODE
  1040. CRD CM
  1041. LDD CM+ESMW
  1042. SHN -ESMB
  1043. LPN 1
  1044. .NOSV2 ENDIF
  1045. .NOS252 ENDIF
  1046. STD ES SET ESM MODE
  1047.  
  1048. .NOS252 IFGE OSLEV,678D
  1049.  
  1050. * SET STANDARD/EXTENDED ADRESSING MODE FLAG
  1051.  
  1052. LDK MEFL
  1053. CRD CM
  1054. LDD CM+2
  1055. SHN -7 EXTENDED ADDRESSING BIT
  1056. LPN 1
  1057. STD EX
  1058. .NOS252 ENDIF
  1059. * /--- BLOCK PRS 00 000 87/02/24 11.11
  1060.  
  1061. * FETCH EM RA
  1062.  
  1063. LDD CP
  1064. ADN 4
  1065. CRD CM
  1066. .NOS252 IFGE OSLEV,678D
  1067. LDD EX
  1068. NJN PRS5 IF EXTENDED ADDRESSING MODE
  1069. .NOS252 ELSE
  1070. LDD ES
  1071. .NOSV2 IFGE OSLEV,578D NOS V2
  1072. ZJN PRS5 IF ESM MODE
  1073. .NOSV2 ELSE NOS V1
  1074. NJN PRS5 IF ESM MODE
  1075. .NOSV2 ENDIF
  1076. .NOS252 ENDIF
  1077. LDD CM
  1078. LPC 777
  1079. STD RE
  1080. LDD CM+1
  1081. STD RE+1
  1082. UJN PRS6
  1083.  
  1084. PRS5 LDD CM
  1085. LPN 77
  1086. SHN 14
  1087. LMD CM+1
  1088. SHN 14
  1089. STD RE
  1090. SHN -14
  1091. SCN 77
  1092. STD RE+1
  1093. PRS6 RJM BXP BUILD EXCHANGE PACKAGE
  1094. LJM PRSX EXIT
  1095.  
  1096.  
  1097. PRSA DATA C* ILLEGAL USER ACCESS.*
  1098. PRSB DATA C* AUTO-RECALL ERROR.*
  1099. PRSC DATA C* ADDRESS OUT OF RANGE.*
  1100. * /--- BLOCK BXP 00 000 80/06/27 13.56
  1101. BXP SPACE 5,11
  1102. ** BXP - BUILD EXCHANGE PACKAGE
  1103. *
  1104. * WHEN CALLING *EPE*, THE CALLER HAS SAVED
  1105. * X6/A6/X1/A6 IN FIRST FOUR WORDS OF EXCHANGE
  1106. * PACKAGE AREA. IMMEDIATELY FOLLOWING THE
  1107. * EXCHANGE PACKAGE IS *B1* THAT IS SAVED
  1108. * BY A SERIES OF EXCHANGE JUMPS.
  1109. *
  1110. * THIS ROUTINE BUILD A GOOD EXCHANGE PACKAGE
  1111. * IN THE EXCHANGE PACKAGE AREA AND RESET THE
  1112. * RJ TRAIL FOR NEXT ENTRY.
  1113.  
  1114.  
  1115. BXP SUBR
  1116.  
  1117. * READ X6/A6/X1/A1
  1118.  
  1119. LDN 4
  1120. STD T1
  1121. LDD IR+3
  1122. SHN 6
  1123. ADD RA
  1124. SHN 6
  1125. ADD IR+4
  1126. ADN 3
  1127. CRM BXPA,T1
  1128.  
  1129. * COPY EXCHANGE PACKAGE FROM CONTROL POINT AREA
  1130.  
  1131. LDN 20
  1132. STD T1
  1133. LDD CP
  1134. CRM BXPB,T1
  1135.  
  1136. * MOVE SAVED REGISTERS TO EXCHANGE PACKAGE
  1137.  
  1138. LDD MA
  1139. CWM BXPA,ON MOVE X6
  1140. CWM BXPA+2*5,ON MOVE X1
  1141. LDD MA
  1142. CRM BXPB+5*16,ON
  1143. CRM BXPB+5*11,ON
  1144.  
  1145. * MOVE *A1*
  1146.  
  1147. LDM BXPA+5*1+3
  1148. SHN 14
  1149. ADM BXPA+5*1+4
  1150. SHN -6
  1151. STM BXPB+5*1+2 STORE UPPER 12 BITS
  1152. LDM BXPB+5*1+3
  1153. LPN 77
  1154. STM BXPB+5*1+3
  1155. LDM BXPA+5*1+4
  1156. SHN 6
  1157. RAM BXPB+5*1+3 MERGE LOWER SIX BITS
  1158.  
  1159. * MOVE *A6*
  1160.  
  1161. LDM BXPA+5*3+3
  1162. SHN 14
  1163. ADM BXPA+5*3+4
  1164. SHN -6
  1165. STM BXPB+5*6+2 STORE UPPER 12 BITS
  1166. LDM BXPB+5*6+3
  1167. LPN 77
  1168. STM BXPB+5*6+3
  1169. LDM BXPA+5*3+4
  1170. SHN 6
  1171. RAM BXPB+5*6+3 MERGE LOWER SIX BITS
  1172. * /--- BLOCK BXP 00 000 80/07/01 14.13
  1173.  
  1174. * BUILD *B1* / RESTORE *RJ* TRAIL
  1175.  
  1176. LDN 0
  1177. STD T2
  1178. STD T3
  1179. STD T4
  1180. BXP1 LDD IR+3
  1181. SHN 6
  1182. ADD RA
  1183. SHN 6
  1184. ADD IR+4
  1185. ADN 3+20+2
  1186. ADD T2
  1187. CRD CM READ *RJ*
  1188. LDD T3
  1189. SHN 14
  1190. ADD T4
  1191. SHN 1
  1192. ADD CM+4 INCLUDE NEW BIT
  1193. STD T4
  1194. SHN -14
  1195. STD T3
  1196.  
  1197. * RESET *RJ* INSTRUCTION
  1198.  
  1199. LDD CM+4
  1200. NJN BXP3 IF *RJ* DID NOT EXECUTE
  1201. LDC 0100 SET OP-CODE
  1202. STD CM
  1203. LDC -100 SET ADDRESS
  1204. RAD CM+2
  1205. PJN BXP2 IF NO UNDERFLOW
  1206. SOD CM+1
  1207. LDC 7700
  1208. STD CM+2
  1209. BXP2 LDN 1 SET *B* REGISTER BIT
  1210. STD CM+4
  1211. LDD IR+3 RE-WRITE *RJ*
  1212. SHN 6
  1213. ADD RA
  1214. SHN 6
  1215. ADD IR+4
  1216. ADN 3+20+2
  1217. ADD T2
  1218. CWD CM
  1219. BXP3 LDN 2
  1220. RAD T2
  1221. LMN 2*22
  1222. ZJN BXP4 IF ALL BITS BUILT
  1223. LJM BXP1 GET NEXT BIT
  1224.  
  1225. BXP4 LDD T4
  1226. STM BXPB+1*5+4 SET LOWER 12 BITS OF *B1*
  1227. LDM BXPB+1*5+3
  1228. SCN 77
  1229. ADD T3
  1230. STM BXPB+1*5+3 SET UPPER 6 BITS OF *B1*
  1231.  
  1232. * WRITE EXCHANGE PACKAGE TO FL
  1233.  
  1234. LDD IR+3
  1235. SHN 6
  1236. ADD RA
  1237. SHN 6
  1238. ADD IR+4
  1239. ADN 3
  1240. CWM BXPB,T1
  1241. MONITOR RCPM RE-START CPU
  1242. LJM BXPX EXIT
  1243. * /--- BLOCK STORAGE 00 000 80/06/30 15.53
  1244.  
  1245. * COMMON DECKS
  1246.  
  1247. *CALL COMPCRS
  1248. *CALL COMPCUA
  1249.  
  1250. * STORAGE
  1251.  
  1252. EFW BSS 0 CONTENTS OF FAILING WORD
  1253. EMB EQU EFW+5 ERRLOG MESSAGE BUFFER
  1254. BXPA EQU EMB+20D X1/A1/X6/A6
  1255. BXPB EQU BXPA+4*5 EXCHANGE PACKAGE
  1256. LWA EQU BXPB+20*5
  1257.  
  1258. ERRNG 10000-LWA TABLE OVERFLOW
  1259.  
  1260. OVERFLOW
  1261.  
  1262. END