Table of Contents

MTE

Table Of Contents

  • [00005] MTE - MONITOR EXTENDED MEMORY INTERFACE.
  • [00009] MONITOR EXTENDED MEMORY INTERFACE.
  • [00108] ASSEMBLY CONSTANTS.
  • [00188] MACRO DEFINITIONS.
  • [00190] CFLAG - CLEAR FLAG REGISTER BITS.
  • [00215] PPR - SET PP REQUEST PROCESSOR.
  • [00245] READEM - READ EXTENDED MEMORY.
  • [00274] SFLAG - SET FLAG REGISTER BITS.
  • [00301] SUBFUN - SET SUBFUNCTION PROCESSOR.
  • [00327] WRITEM - WRITE EXTENDED MEMORY.
  • [00356] MAIN PROGRAM.
  • [00365] PRQ - PROCESS QUEUED REQUEST.
  • [00403] MAIN PROGRAM.
  • [00504] PP REQUEST PROCESSING.
  • [00506] HNG - HANG PPU.
  • [00515] FNR - FUNCTION NOT READY.
  • [00528] CPF - PASS REQUEST TO *CPUMTR*.
  • [00539] FNC - FUNCTION RETURN TO CLEAR UPPER BYTE OF *OR*.
  • [00552] CFR - CHECK FOR REQUESTS PASSED FROM *CPUMTR*.
  • [00580] TCFR - TABLE OF *CPUMTR* FUNCTION REQUESTS.
  • [00592] TPPQ - TABLE OF QUEUED PP REQUESTS.
  • [00597] EXR - EXECUTE CM RESIDENT ROUTINE.
  • [00624] *AFAM* MONITOR FUNCTION PROCESSING.
  • [00654] AFP - *AFAM* PRESET PROCESSING.
  • [00929] TAFAM - TABLE OF *AFAM* SUBFUNCTION PROCESSOR ADDRESSES.
  • [00944] *ECSM* MONITOR FUNCTION PROCESSING.
  • [01223] TECSM - TABLE OF *ECSM* SUBFUNCTION PROCESSOR ADDRESSES.
  • [01236] *MTEM* MONITOR FUNCTION PROCESSING.
  • [01590] TMTEM - TABLE OF *MTEM* SUBFUNCTION PROCESSOR ADDRESSES.
  • [01603] OTHER MONITOR FUNCTION PROCESSORS.
  • [01681] SUBROUTINES.
  • [01683] TMMK - TABLE OF MACHINE MASKS.
  • [01695] TCLK - TABLE OF MACHINE CLOCK VALUES.
  • [01705] TSTA - TABLE OF MACHINE STATES.
  • [01715] AEB - ADD ENTRY TO BRT.
  • [01774] CAM - CHECK FOR ACTIVE MACHINES.
  • [01815] CAP - CHECK ACCESS PERMISSIONS.
  • [01886] CBA - CALCULATE BRT ADDRESS.
  • [01905] CBD - CALCULATE BDT ADDRESS.
  • [01917] CBI - CLEAR *BATI* INTERLOCK.
  • [01924] CBJ - CLEAR *BDTI* INTERLOCK.
  • [01931] CBM - CHECK BRT-S FROM OTHER MAINFRAMES.
  • [02014] CCI - CHECK FOR CONFLICTING *BDT* INTERLOCKS.
  • [02049] CDI - CLEAR DEVICE INTERLOCK.
  • [02186] CET - CLEAR EXTENDED MEMORY TRACK.
  • [02206] CFI - CLEAR *FATI* FLAG INTERLOCK.
  • [02220] CSZ - CREATE SECTOR OF ZERO WORDS.
  • [02237] GBA - GET BAT ADDRESS.
  • [02256] GBI - GET BATI INTERLOCK.
  • [02281] IBF - ISSUE *BFMM* FUNCTION.
  • [02311] PBR - PROCESS BAT REQUESTS.
  • [02366] RBD - READ *BDT* ENTRY.
  • [02398] RBR - REPROCESS BRT REQUESTS.
  • [02513] RBW - READ BAT WORD.
  • [02549] SDI - SET DEVICE INTERLOCK.
  • [02657] SEA - SET ESM TRACK ADDRESS.
  • [02677] SLA - SET LABEL ADDRESS.
  • [02692] UBA - UPDATE BAT ACCESS.
  • [02743] UBH - UPDATE BRT HEADER.
  • [02837] EXTENDED MEMORY INTERFACE ROUTINES.
  • [02839] FUNCTION - ISSUE EXTENDED MEMORY FUNCTION.
  • [02869] RDW - READ EXTENDED MEMORY WORDS.
  • [02900] WTW - WRITE WORDS TO EXTENDED MEMORY.
  • [02932] IFR - ISSUE FLAG FUNCTION.
  • [02957] CKS - CHECK STATUS OF TRANSFER.
  • [02982] REC - RECOVERED ERROR PROCESSOR.
  • [03002] SFN - SELECT FUNCTION.
  • [03022] DSW - DRIVER SERVICE PROCESSING.
  • [03070] TABLES.
  • [03113] UEM SIMULATION OF EXTENDED MEMORY.
  • [03131] RDW - READ UEM WORDS.
  • [03151] WTW - WRITE WORDS TO UEM.
  • [03172] IFR - SIMULATE FLAG FUNCTION FOR UEM.
  • [03232] SUA - SET UEM ADDRESS.
  • [03261] DSW - DRIVER SERVICE PROCESSING.
  • [03277] PRESET.
  • [03416] ILD - INITIALIZE MMF LINK DEVICE.
  • [03676] CLE - CLEAR EXTENDED MEMORY.
  • [03777] CIR - CLEAR FLAG REGISTER AND MST INTERLOCKS ON LEVEL 3.
  • [03887] IBP - INITIALIZE BRT/BDT PROCESSING.
  • [03970] TSIC - INSTRUCTION RELOCATION TABLE.
  • [03996] SCP - SET CHANNEL IN PRESET INSTRUCTIONS.
  • [04030] MTE/2EA - DOWN MACHINE PROCESSING.
  • [04160] STATE - SET STATE PROCESSOR.
  • [04340] TPDM - TABLE OF STATE PROCESSOR ADDRESSES.
  • [04355] SSD - SEARCH FOR SHARED DEVICE.
  • [04387] MTE/2EB - EXTENDED MEMORY ERROR RECOVERY.
  • [04679] MTE/7EA - EXTENDED MEMORY ERROR PROCESSING.
  • [04795] TPER - TABLE OF FUNCTION CALLER ADDRESSES.
  • [04808] TERP - TABLE OF ERROR PROCESSOR ADDRESSES.

Source Code

MTE.txt
  1. IDENT MTE,PRS
  2. PERIPH
  3. BASE MIXED
  4. SST PPR,LEP,DFM,EXR,.SMS,RA,FL,IA,MA,EPFW
  5. TITLE MTE - MONITOR EXTENDED MEMORY INTERFACE.
  6. *COMMENT MTE - MONITOR EXTENDED MEMORY INTERFACE.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. MTE SPACE 4,10
  9. *** MTE - MONITOR EXTENDED MEMORY INTERFACE.
  10. * W. E. GOEBEL. 86/01/20.
  11. * R. C. SCHMITTER 94/03/21.
  12. SPACE 4,20
  13. *** *MTE* IS LOADED INTO A PP AT DEAD START TIME IF THE SYSTEM
  14. * IS RUNNING IN MULTI-MAINFRAME MODE, AND THE LINK DEVICE HAS
  15. * NO CPU COUPLER ACCESS.
  16. *
  17. * *MTE* PERFORMS THE FOLLOWING FUNCTIONS.
  18. *
  19. * 1. PROCESS DEVICE INTERLOCK REQUESTS FOR *DTKM*, *DLKM*,
  20. * *RTCM*, *STBM*, AND *VMSM* MONITOR FUNCTIONS.
  21. * 2. PROCESS *AFAM*, *ECSM* AND *MTEM* MONITOR FUNCTIONS IN
  22. * THEIR ENTIRETY.
  23. * 3. WRITE DEVICE TABLES TO EXTENDED MEMORY AND CLEAR DEVICE
  24. * INTERLOCKS.
  25. * 4. SCAN EXTENDED MEMORY CLOCKS TO DETERMINE ACTIVE MACHINES.
  26. * 5. PROCESS BUFFER ACCESS TABLE (BAT) REQUESTS WHEN SHARED
  27. * DAS DEVICES ARE PRESENT.
  28. *
  29. * *MTE* DOES NOT USE *PPR* ROUTINES PAST *EFTN*. THUS, DISK
  30. * DRIVER USAGE, DAYFILE MESSAGES, AND RE-ENTERING *PPR* ARE
  31. * NOT ALLOWED. A SPECIAL VERSION OF *EXR* IS INCLUDED IN
  32. * *MTE* FOR LOADING CM RESIDENT OVERLAYS. THE *PPR* VERSION
  33. * OF *EXR* IS NOT USED.
  34. SPACE 4,10
  35. *** CALL.
  36. *
  37. *T 18/ MTE,6/ CP,24/,12/ RM
  38. *
  39. * CP = SYSTEM CONTROL POINT NUMBER.
  40. * RM = RECOVERY MODE.
  41. SPACE 4,40
  42. *** A MEMORY MAP OF *MTE* IS AS FOLLOWS.
  43. *
  44. * 0 *************************************************************
  45. * * *
  46. * * DIRECT CELLS *
  47. * * *
  48. * *************************************************************
  49. * 100 * *
  50. * * *PPR* ROUTINES (*FTN*, *.DLY*, *.EST*) *
  51. * * *
  52. * *************************************************************
  53. * EFTN * *
  54. * * MST/TRT/BAT/BRT READ/WRITE BUFFERS *
  55. * * *MTE* PRESET (OVERLAYS BUFFERS) *
  56. * * DOWN MACHINE PROCESSING (OVERLAYS BUFFERS) *
  57. * * EXTENDED MEMORY ERROR RECOVERY (OVERLAYS BUFFERS) *
  58. * * *
  59. * *************************************************************
  60. * * *
  61. * * *MTE* MAIN LOOP *
  62. * * *
  63. * * MONITOR FUNCTION PROCESSORS *
  64. * * *
  65. * * SUBROUTINES *
  66. * * *
  67. * * EXTENDED MEMORY INTERFACE ROUTINES *
  68. * * *
  69. * *************************************************************
  70. * EPFW * *
  71. * * EXTENDED MEMORY ERROR PROCESSING AREA *
  72. * * *
  73. * *************************************************************
  74. SPACE 4,10
  75. *** *MTE* DEBUG CAPABILITY - UEM EMULATION OF EXTENDED MEMORY.
  76. *
  77. * *MTE* WILL INTERFACE WITH UEM AS A LINK DEVICE FOR THE
  78. * PURPOSE OF TESTING MMF CODE. NO ACTUAL SHARING OF DEVICES
  79. * IS POSSIBLE SINCE NO HARDWARE PROVISION EXISTS FOR MULTIPLE
  80. * MACHINE ACCESS TO UEM. TO UTILIZE THIS FEATURE, SIMPLY
  81. * DEFINE EQUIPMENT 5 AS UEM AND DECLARE IT AS SHARED.
  82. * *SET* WILL TREAT IT AS A 180 MMF LINK DEVICE AND *MTE*
  83. * WILL BE LOADED. UEM WILL LOOK EXACTLY AS AN EXTENDED MEMORY
  84. * DEVICE WITH THE FLAG REGISTER BEING SIMULATED AND ITS
  85. * CONTENTS STORED IN *EFRL*.
  86. SPACE 4,10
  87. EPFW EQU 7540
  88. SPACE 4,10
  89. * COMMON DECKS.
  90.  
  91.  
  92. *CALL COMPMAC
  93. *CALL COMPCHI
  94. *CALL COMSCPS
  95. QUAL DSL
  96. *CALL COMSDSL
  97. QUAL *
  98. *CALL COMSLSD
  99. LIST X
  100. *CALL COMSMMF
  101. LIST *
  102. *CALL COMSMRT
  103. *CALL COMSMSC
  104. *CALL COMSMSP
  105. *CALL COMSPFM
  106. *CALL COMSPIM
  107. *CALL COMS1DS
  108. TITLE ASSEMBLY CONSTANTS.
  109. SPACE 4,10
  110. **** DIRECT LOCATION ASSIGNMENTS.
  111.  
  112.  
  113. BEGIN BSSN 16 BEGINING OF DIRECT CELL DEFINITIONS
  114.  
  115. T8 BSSN 1 SCRATCH
  116. T9 BSSN 1 SCRATCH
  117.  
  118. EA BSSN 5 EXTENDED MEMORY ADDRESS (FIRST TWO BYTES)
  119. BR BSSN 1 BYTES NOT TRANSFERED
  120. ST BSSN 1 STATUS FROM LOW SPEED PORT/DDP
  121. WC BSSN 1 WORD COUNT FOR EXTENDED MEMORY TRANSFER
  122. RC BSSN 1 ESM ERROR RETRY COUNT
  123.  
  124. FS BSSN 5 CM WORD BUFFER
  125. RQ BSSN 1 REQUEST PARAMETER (OR/MST ADDRESS)
  126. QE BSSN 1 NEXT PP REQUEST QUEUE ENTRY
  127. QH BSSN 1 HEAD OF PP RETRY QUEUE
  128. QT BSSN 1 TAIL OF PP RETRY QUEUE
  129.  
  130. FN BSSN 5 CM WORD BUFFER
  131. OF BSSN 1 FIRST (*MTR*) OUTPUT REGISTER ADDRESS
  132. BSSN 50-*
  133.  
  134. IR BSSN 5 INPUT REGISTER
  135. BSSN 1 SPARE (DESTROYED BY *FTN*)
  136. BSSN 1 SPARE (DESTROYED BY *FTN*)
  137.  
  138. CV BSSN 1 LAST TIME CLOCK VALUE
  139. OR BSSN 5 PP OUTPUT REGISTER
  140.  
  141. * THESE THREE CELLS CAN BE USED AS SCRATCH OUTSIDE OF
  142. * *MTET*/*MTBT* QUEUE PROCESSING FROM *CPUMTR*.
  143.  
  144. SX BSSN 0
  145. MX BSSN 1 MAXIMUM REQUESTS PER PASS
  146. IN BSSN 1 IN POINTER FOR *MTBT* BUFFER
  147. OT BSSN 1 OUT POINTER FOR *MTBT* BUFFER
  148.  
  149. RM EQU IR+4 RECOVERY MODE
  150. BSSN 70-*
  151. ON BSSN 1 1
  152. HN BSSN 1 100
  153. TH BSSN 1 1000
  154. TR BSSN 1 3
  155. CP BSSN 1 CONTROL POINT
  156. MA BSSN 1 MESSAGE BUFFER ADDRESS - NON STANDARD
  157. OA BSSN 1 OUTPUT REGISTER ADDRESS
  158. ZR BSSN 5-1 ZERO WORD
  159. MI BSSN 2 MACHINE INDEX (OVERLAYS ZR+4)
  160.  
  161. END BSSN
  162. SPACE 4,10
  163. * ASSEMBLY CONSTANTS.
  164.  
  165.  
  166. CH EQU 0 LINK DEVICE CHANNEL
  167. SC EQU 5000 LOW SPEED PORT SELECT CODE
  168. RDFN EQU 1 READ FUNCTION CODE
  169. WTFN EQU 2 WRITE FUNCTION CODE
  170. STFN EQU 4 STATUS FUNCTION CODE
  171. MCFN EQU 10 MASTER CLEAR PORT FUNCTION CODE
  172. ESFN EQU 604 SET ECS MODE ADDRESSING FUNCTION CODE
  173. NPPU EQU 30D NUMBER OF PP-S TO PROCESS REQUESTS FOR
  174. SPACE 4,10
  175. * BEGIN TABLES OVERLAYED BY *PRESET*.
  176.  
  177.  
  178. BEGIN BSSN EFTN
  179.  
  180. MBUF BSSN SDGL*5+5 MST READ/WRITE BUFFER
  181. TBUF BSSN BRTL*5+5 TRT/BAT READ/WRITE BUFFER
  182. FATB EQU TBUF FAST ATTACH TABLE READ/WRITE BUFFER
  183. BRTB EQU TBUF+5 BRT READ/WRITE BUFFER
  184. GFAT EQU FATB+5 GLOBAL FAST ATTACH WORD
  185. EBUF BSSN 0 END OF BUFFERS
  186. END BSSN
  187. ****
  188. TITLE MACRO DEFINITIONS.
  189. CFLAG SPACE 4,10
  190. ** CFLAG - CLEAR FLAG REGISTER BITS.
  191. *
  192. * CFLAG BIT,NW
  193. *
  194. * ENTRY *BIT* = NAME OF BIT TO CLEAR.
  195. * *NW* = NO WRITE OF FLAG OWNER.
  196. *
  197. * CALLS IFR, SLA.
  198.  
  199.  
  200. PURGMAC CFLAG
  201.  
  202. CFLAG MACRO BIT,NW
  203. MACREF CFLAG
  204. .A IFC NE,*TRTI*BIT*
  205. .B IFC EQ,$NW$$
  206. LDN FRET+BIT
  207. RJM SLA
  208. WRITEM 1,ZR
  209. .B ENDIF
  210. .A ENDIF
  211. LDC C_BIT
  212. RJM IFR
  213. CFLAG ENDM
  214. PPR SPACE 4,10
  215. ** PPR - SET PP REQUEST PROCESSOR.
  216. *
  217. * PPR FNC,PRC
  218. * ENTRY *FNC* = FUNCTION NUMBER.
  219. * *PRC* = PROCESSOR ADDRESS.
  220.  
  221.  
  222. PURGMAC PPR
  223.  
  224. PPR MACRO FNC,PRC
  225. LOCAL K
  226. MACREF PPR
  227. .A IFC EQ,$PRC$$
  228. K MICRO 1,3, FNC
  229. K MICRO 1,4,*."K"*
  230. "K" CON FNC
  231. ORG *-1
  232. .A ELSE
  233. K MICRO 1,, PRC
  234. .A ENDIF
  235. PPR RMT
  236. ORG TPPR+FNC
  237. CON "K" FNC
  238. PPR RMT
  239. IF -DEF,MXFNC,1
  240. MXFNC SET FNC
  241. IFGT FNC,MXFNC,1
  242. MXFNC SET FNC
  243. PPR ENDM
  244. READEM SPACE 4,10
  245. ** READEM - READ EXTENDED MEMORY.
  246. *
  247. * READEM WCT,BUF,ERR
  248. *
  249. * ENTRY *WCT* = WORD COUNT TO READ.
  250. * = *, IF DIRECT CELL WC CONTAINS WORD COUNT.
  251. * *BUF* = PP BUFFER ADDRESS TO RECEIVE THE DATA READ.
  252. * *ERR* = EXTENDED MEMORY ERROR PROCESSOR ADDRESS.
  253. *
  254. * CALLS RDW.
  255.  
  256.  
  257. PURGMAC READEM
  258.  
  259. READEM MACRO WCT,BUF,ERR
  260. LOCAL A
  261. MACREF READEM
  262. .A IFC NE,$WCT$*$
  263. LDN WCT
  264. STD WC
  265. .A ENDIF
  266. LDK BUF
  267. RJM RDW
  268. .B IFC NE,$ERR$$
  269. A EQU *
  270. .ERP MICRO 1,, ".ERP"A,ERR,
  271. .B ENDIF
  272. READEM ENDM
  273. SFLAG SPACE 4,10
  274. ** SFLAG - SET FLAG REGISTER BITS.
  275. *
  276. * SFLAG BIT,REJ
  277. *
  278. * ENTRY *BIT* = NAME OF BIT(S) TO CLEAR.
  279. * *REJ* = REJECT ENTRY ADDRESS.
  280. *
  281. * CALLS IFR, SLA.
  282.  
  283.  
  284. PURGMAC SFLAG
  285.  
  286. SFLAG MACRO BIT,REJ
  287. MACREF SFLAG
  288. LDC S_BIT
  289. RJM IFR
  290. .A IFC NE,*REJ**
  291. NJP REJ IF INTERLOCK PREVIOUSLY SET
  292. .A ENDIF
  293. IFC NE,*TRTI*BIT*
  294. IFC NE,*COMI*BIT*
  295. LDN FRET+BIT
  296. RJM SLA
  297. WRITEM 1,MI+1-4
  298. ENDIF
  299. SFLAG ENDM
  300. SUBFUN SPACE 4,15
  301. ** SUBFUN - SET SUBFUNCTION PROCESSOR.
  302. *
  303. *SFA SUBFUN FNC,SFN
  304. *
  305. * ENTRY *SFA* = SUBFUNCTION PROCESSOR ENTRY NAME.
  306. * *FNC* = FUNCTION NAME.
  307. * *SFN* = SUBFUNCTION NAME.
  308. *
  309. * THIS MACRO BUILDS A TABLE OF SUBFUNCTION PROCESSORS.
  310. * THE TABLE IS NAMED T*FNC*, AND EACH ENTRY IS THE
  311. * ADDRESS OF THE PROCESSOR FOR THE SUBFUNCTION.
  312.  
  313.  
  314. PURGMAC SUBFUN
  315.  
  316. MACRO SUBFUN,SFA,FNC,SFN
  317. MACREF SUBFUN
  318. SFA BSS 0
  319. IRP SFN
  320. T_FNC RMT
  321. ORG T_FNC+SFN
  322. CON SFA SFN
  323. T_FNC RMT
  324. IRP
  325. SUBFUN ENDM
  326. WRITEM SPACE 4,10
  327. ** WRITEM - WRITE EXTENDED MEMORY.
  328. *
  329. * WRITEM WCT,BUF,ERR
  330. *
  331. * ENTRY *WCT* = WORD COUNT TO WRITE.
  332. * = *, IF DIRECT CELL WC CONTAINS WORD COUNT.
  333. * *BUF* = PP BUFFER ADDRESS TO WRITE DATA FROM.
  334. * *ERR* = EXTENDED MEMORY ERROR PROCESSOR ADDRESS.
  335. *
  336. * CALLS WTW.
  337.  
  338.  
  339. PURGMAC WRITEM
  340.  
  341. WRITEM MACRO WCT,BUF,ERR
  342. MACREF WRITEM
  343. .A IFC NE,$WCT$*$
  344. LDN WCT
  345. STD WC
  346. .A ENDIF
  347. LDK BUF
  348. RJM WTW
  349. .B IFC NE,$ERR$$
  350. A EQU *
  351. .ERP MICRO 1,, ".ERP"A,ERR,
  352. .B ENDIF
  353. WRITEM ENDM
  354.  
  355. .ERP MICRO 1,, INITIALIZE ERROR PROCESSOR MICRO
  356. TITLE MAIN PROGRAM.
  357. FWAP EQU 600 FWA OF *PRS*
  358. ERRNG FWAP-315 MAIN OVERLAY DESTROYS *PLL* RETURN ADDRESS
  359. ORG FWAP
  360. SPACE 4,10
  361. USE MAIN
  362. SPARES EQU *-EBUF LOCATIONS AVAILABLE IN MAIN BLOCK
  363. FWA EQU *L
  364. PRQ SPACE 4,15
  365. ** PRQ - PROCESS QUEUED REQUEST.
  366. *
  367. * SOME DEVICE INTERLOCK REQUESTS ARE UNABLE TO BE PROCESSED
  368. * WHEN PASSED FROM *CPUMTR*. THESE REQUESTS ARE QUEUED TO BE
  369. * RETRIED AFTER A DELAY TIME IS EXPIRED. THIS ROUTINE IS
  370. * ENTERED WHEN A QUEUED REQUEST IS TO BE PROCESSED.
  371. *
  372. * ENTRY (A) = OUTPUT REGISTER ADDRESS OF QUEUED REQUEST.
  373. *
  374. * EXIT (RQ) = PP REQUEST ADDRESS.
  375. * TO FUNCTION PROCESSOR.
  376. * ENTRY DELETED FROM QUEUE.
  377. * TO *CFR1* IF REQUEST HAS BEEN CLEARED.
  378. *
  379. * USES MX, QH, RQ, T8, OR - OR+4.
  380.  
  381.  
  382. PRQ STD RQ
  383. LDN 0
  384. STM TPPQ,QH
  385. STD MX
  386. LDC MTE1 SET EXIT FOR FUNCTION COMPLETE
  387. STM CFR
  388. SOD QH
  389. PJN PRQ1 IF NO WRAP
  390. LDN NPPU-1
  391. STD QH
  392. PRQ1 LDD RQ
  393.  
  394. * ENTER HERE TO PROCESS REQUEST INITIALLY.
  395.  
  396. PRQ2 CRD OR
  397. LDD OR
  398. ZJP CFR1 IF REQUEST WAS CLEARED
  399. LDM TPPR,OR SET FUNCTION PROCESSOR
  400. STD T8
  401. LJM 0,T8 ENTER PROCESSOR
  402. MTE SPACE 4,25
  403. ** MTE - MAIN PROGRAM.
  404. *
  405. * THE MAIN LOOP OF *MTE* PERFORMS THE FOLLOWING TASKS.
  406. * 1. CHECKS FOR REQUESTS PASSED FROM *CPUMTR* IN THE *MTET*
  407. * QUEUE.
  408. * 2. RETRIES ANY BUFFER ACCESS TABLE REQUESTS THAT HAVE
  409. * BEEN QUEUED IN THE BUFFER REQUEST TABLE (BRT).
  410. * 3. CHECKS FOR NEW BAT REQUESTS PASSED FROM *CPUMTR* IN
  411. * THE *MTBT* QUEUE.
  412. * 4 CHECKS THE BRT-S OF ANY OTHER MAINFRAMES FOR REQUESTS
  413. * UNABLE TO BE PROCESSED BECAUSE OF LOCKS HELD BY THIS
  414. * MAINFRAME.
  415. * 5. RELEASES THE LOW SPEED PORT CHANNEL WHEN IT IS
  416. * REQUESTED.
  417. * 6. WRITES MACHINE CLOCK TO EXTENDED MEMORY ONCE A
  418. * SECOND.
  419. * 7. CHECKS THE STATE OF OTHER MACHINES ONCE EVERY TWO
  420. * SECONDS.
  421. * 8. INITIATES EXTENDED MEMORY ERROR RECOVERY WHEN
  422. * REQUIRED.
  423. * 9. UPDATES *MTE* STATISTICS.
  424.  
  425.  
  426. MTE LDM TPPQ,QH
  427. NJN PRQ IF QUEUED REQUESTS
  428. MTE1 RJM CFR CHECK FOR REQUESTS PASSED FROM *CPUMTR*
  429. MTED UJN MTE1.1 CHECK FOR CHANNEL REQUESTED
  430. * PSN (SHARED BUFFERED DEVICES PRESENT)
  431.  
  432. * PROCESS BAT/BRT REQUESTS.
  433.  
  434. RJM RBR REPROCESS BRT REQUESTS
  435. RJM PBR PROCESS NEW BAT REQUESTS
  436. RJM CBM CHECK BRT-S FROM OTHER M/F-S
  437.  
  438. * CHECK FOR CHANNEL REQUESTED.
  439.  
  440. MTE1.1 SOM CRCC
  441. NJP MTE5 IF NOT TIME TO CHECK CHANNEL REQUEST
  442. LDN 10
  443. STM CRCC
  444. MTEA LDC ** SET CHANNEL INTERLOCK TABLE ADDRESS
  445. MTEB ADN ** ADD WORD NUMBER
  446. CRD CM
  447. MTEC LDD ** CHECK APPROPRIATE BYTE
  448. SHN 0-13
  449. ZJN MTE2 IF CHANNEL NOT REQUESTED
  450. LDN 0 RELEASE CHANNEL
  451. RJM DSW
  452. LDN 1 REQUEST CHANNEL
  453. RJM DSW
  454.  
  455. * CHECK IF TIME TO WRITE MACHINE CLOCK.
  456.  
  457. MTE2 LDC PDTL CHECK IF ONE SECOND ELAPSED
  458. CRD FS
  459. LDD FS+4
  460. SBD CV
  461. ZJN MTE3 IF NOT TIME TO WRITE CLOCK
  462. RAD CV
  463.  
  464. * WRITE PACKED DATE AND TIME TO EXTENDED MEMORY.
  465.  
  466. TLDN SMET-1,MI
  467. RJM SLA SET LABEL TRACK ADDRESS
  468. WRITEM 1,FS IGNORE ERROR IN WRITING CLOCK
  469. LDD CV
  470. LPN 1
  471. MTE3 ZJN MTE5 IF NOT TIME TO STATUS MACHINES
  472.  
  473. * CHECK FOR CHANGE IN MACHINE STATE.
  474.  
  475. RJM CAM CHECK MACHINE STATUS
  476. ZJN MTE4 IF NO CHANGE IN MACHINE STATE
  477. EXECUTE 2EA PROCESS MACHINE STATE CHANGE
  478. RJM CFR CHECK FOR REQUESTS PASSED FROM *CPUMTR*
  479.  
  480. * CHECK IF EXTENDED MEMORY ERROR RECOVERY NEEDED.
  481.  
  482. MTE4 LDC TCOMI CHECK ERROR RECOVERY REQUESTED
  483. RJM IFR
  484. ZJN MTE5 IF NO ERROR RECOVERY PROCESSING
  485. EXECUTE 2EB PROCESS EXTENDED MEMORY TABLE ERRORS
  486. MTE5 RJM UMS UPDATE *MTE* STATISTICS
  487. LJM MTE LOOP
  488.  
  489.  
  490. CRCC CON 10 CHANNEL REQUEST CYCLE COUNT
  491. CYTM CON 0 *MTE* CYCLE TIME
  492. BRTF CON 0 BRT FULL FLAG (=*NBRR* IF BRT IS FULL)
  493. BRTP CON 0 BRT TRACK NUMBER
  494.  
  495. ** BAT/BRT STATISTICS (MUST BE CONTIGUOUS).
  496.  
  497. BRTS BSS 0
  498. BATT CON 0 TOTAL BAT REQUESTS
  499. BRTT CON 0 TOTAL BRT ENTRIES
  500. BREC CON 0 CURRENT BRT ENTRY COUNT
  501. BIAA CON 0 *BATI* INTERLOCK ATTEMPTS ABANDONED
  502. BRTR CON 0 BRT ENTRIES REJECTED
  503.  
  504. TITLE PP REQUEST PROCESSING.
  505. HNG SPACE 4,10
  506. ** HNG - HANG PPU.
  507. *
  508. * ENTRY (RQ) = OUTPUT REGISTER ADDRESS.
  509.  
  510.  
  511. HNG LDD RQ SET ADDRESS OF FUNCTION IN ERROR
  512. STD CM+1
  513. MONITOR HNGM
  514. FNR SPACE 4,10
  515. ** FNR - FUNCTION NOT READY.
  516. *
  517. * ENTRY (RQ) = OUTPUT REGISTER ADDRESS.
  518.  
  519.  
  520. FNR LDD RQ REJECT FUNCTION
  521. STM TPPQ,QT LINK TO TAIL OF QUEUE
  522. SOD QT
  523. PJN CFR1 IF NO WRAP
  524. LDN NPPU-1
  525. STD QT
  526. UJN CFR1 PROCESS NEXT REQUEST
  527. CPF SPACE 4,10
  528. ** CPF - PASS REQUEST TO *CPUMTR*.
  529. *
  530. * ENTRY (RQ) = OUTPUT REGISTER ADDRESS.
  531. *
  532. * USES OR.
  533.  
  534.  
  535. CPF LDC 5000
  536. RAD OR
  537. UJN FNC1 WRITE OUTPUT REGISTER
  538. FNC SPACE 4,10
  539. ** FNC - FUNCTION RETURN TO CLEAR UPPER BYTE OF *OR*.
  540. *
  541. * ENTRY (RQ) = OUTPUT REGISTER ADDRESS.
  542. *
  543. * USES OR - OR+4.
  544.  
  545.  
  546. FNC LDN 0 SET FUNCTION COMPLETE
  547. STD OR
  548. FNC1 LDD RQ
  549. CWD OR
  550. UJN CFR1 CHECK NEXT FUNCTION
  551. CFR SPACE 4,10
  552. ** CFR - CHECK FOR REQUESTS PASSED FROM *CPUMTR*.
  553. *
  554. * EXIT TO FUNCTION PROCESSOR WITH (A) = (RQ).
  555. *
  556. * USES MX, QE, RQ, FN - FN+4.
  557.  
  558.  
  559. CFR SUBR ENTRY/EXIT
  560. LDN 10 SET MAXIMUM REQUESTS PER PASS
  561. STD MX
  562. CFR1 TLDC MTET,PQ PP QUEUE ADDRESS
  563. ADD QE
  564. CRD FN
  565. LDD FN+4 CHECK FUNCTION PRESENT
  566. ZJN CFRX IF NO REQUEST PRESENT
  567. SOD MX
  568. ZJN CFRX IF AT MAXIMUM
  569. TLDC MTET,PQ CLEAR REQUEST FROM LIST
  570. ADD QE
  571. CWD ZR
  572. SOD QE ADVANCE PAST CURRENT ENTRY
  573. PJN CFR2 IF NO WRAP ON QUEUE
  574. LDN MXQP-1
  575. STD QE
  576. CFR2 LDD FN+3 ENTRY
  577. STD RQ
  578. LJM TCFR,FN+4 ENTER REQUEST PROCESSOR
  579. TCFR SPACE 4,10
  580. ** TCFR - TABLE OF *CPUMTR* FUNCTION REQUESTS.
  581. *
  582. * ENTRY = ONE WORD.
  583. * 12/ ADDRESS OF FUNCTION PROCESSOR
  584.  
  585.  
  586. TCFR EQU *-1
  587. LOC 1
  588. PPRF LJM PRQ2 PROCESS PP REQUEST
  589. CDIF LJM CDI CLEAR DEVICE INTERLOCK
  590. LOC *O
  591. TPPQ SPACE 4,10
  592. ** TPPQ - TABLE OF QUEUED PP REQUESTS.
  593.  
  594.  
  595. TPPQ BSS NPPU QUEUED PP REQUESTS
  596. EXR SPACE 4,10
  597. ** EXR - EXECUTE CM RESIDENT ROUTINE.
  598. *
  599. * ENTRY (A) = ROUTINE NAME.
  600. *
  601. * EXIT TO CALLED ROUTINE VIA SIMULATED RETURN JUMP.
  602. *
  603. * USES CM+2, CM+3.
  604. *
  605. * MACROS MONITOR.
  606.  
  607.  
  608. EXR CON 0 ENTRY
  609. STD CM+3
  610. SHN -14
  611. STD CM+2
  612. MONITOR SPLM
  613. LDD CM+4 SET LOAD ADDRESS
  614. STM EXRA
  615. LDD CM+1 READ IN PROGRAM
  616. LPN 77
  617. SHN 14
  618. ADD CM+2
  619. CRM *,CM+3
  620. EXRA EQU *-1
  621. LDM EXR SET RETURN ADDRESS
  622. STM 6,CM+4
  623. LJM 7,CM+4 ENTER ROUTINE
  624. TITLE *AFAM* MONITOR FUNCTION PROCESSING.
  625. AFAM SPACE 4,30
  626. *** AFAM - ACCESS FAST ATTACH.
  627. * *AFAM* ATTACHES OR RELEASES FAST ATTACH FILES.
  628. *
  629. * ENTRY
  630. *T OR 12/ AFAM,12/ EQ,1/N,11/ MD,12/ SF,12/ FO
  631. * EQ EST ORDINAL OF DEVICE WHERE THE FAST
  632. * ATTACH FILE RESIDES, IF GLOBAL FAST ATTACH FILE.
  633. * 0, IF LOCAL FAST ATTACH FILE.
  634. * N NON-ROLLABLE OPTION (VALID ONLY ON WRITABLE MODES
  635. * FOR *AFAS* SUBFUNCTION).
  636. * MD MODE OF ATTACH.
  637. * SF SUBFUNCTION CODE AS DEFINED IN COMSCPS.
  638. * *AFAS* = 0 = ATTACH FAST ATTACH FILE.
  639. * *RFAS* = 1 = RETURN FAST ATTACH FILE.
  640. * FO FNT ORDINAL.
  641. *
  642. * EXIT
  643. *T, OR 12/ 0,12/ ST,24/ ,4/ WF,6/ ,1/N,1/
  644. * ST = 0 IF FUNCTION COMPLETE.
  645. * ST = 1 IF FUNCTION CANNOT BE COMPLETED AT THIS TIME.
  646. * FILE IS ATTACHED IN A CONFLICTING MODE.
  647. * WF .NE. 0 IF FILE ALREADY ATTACHED IN A WRITABLE MODE (AFAS
  648. * REJECT ONLY).
  649. * N = NON-ROLLABLE FLAG (*AFAS* REJECT ONLY).
  650. *
  651. * NOTE - *CPUMTR* CHECKS FOR ALL HANG CONDITIONS BEFORE PASSING
  652. * THE REQUEST TO *MTE*.
  653. AFP SPACE 4,10
  654. ** AFP - *AFAM* PRESET PROCESSING.
  655. *
  656. * *AFAM* PRESET MAY NOT BE EXECUTED UNTIL THE DAT/FAT TRACK
  657. * IS ALLOCATED BY *0MF*. FOR THIS REASON THE FIRST CALL TO
  658. * *AFAM* DOES THE PRESET OPERATION.
  659.  
  660.  
  661. AFP LDC ALGL READ DAT/FAT TRACK
  662. CRD CM
  663. LDD CM+4
  664. LPC 3777
  665. STD CM+4
  666. SHN 6
  667. ADD CM+4 101 * TRACK
  668. AFPA SHN 4 2020 * TRACK
  669. * SHN 4+EMSC 2020 * EMSC * TRACK
  670. RAM AFAA+1
  671. SHN -14
  672. RAM AFAA
  673. LDN AFA-AFP
  674. RAM TPPR+AFAM
  675. * UJN AFA ENTER PROCESSOR
  676.  
  677.  
  678. PPR AFAM,AFP
  679. AFA LDD OR+2
  680. LPC 3777
  681. SHN 1
  682. ADD OR+3
  683. STD T8
  684. LDM TAFAM,T8 SET PROCESSOR ADDRESS
  685. STD T9
  686.  
  687. * READ FNT/FST.
  688.  
  689. SFA FNT,OR+4
  690. ADK FNTG
  691. CRD FN
  692. ADK FSTG-FNTG
  693. CRD FS
  694. SOD FN+4 CLEAR BUSY
  695.  
  696. * READ FAT OF REQUESTED FILE.
  697.  
  698. SFLAG FATI,FNR SET FAT INTERLOCK
  699. LDD FN+3
  700. LPN 77
  701. SHN FATS
  702. AFAA ADC FAST*100B (ADDRESS OF FAT)
  703. * ADC FAST*100B+(SECTORS PER TRACK)
  704. STD EA+1
  705. SHN -14
  706. STD EA
  707. READEM MXMF+2,FATB,AFA1 READ FAST ATTACH TABLE
  708. LDM GFAT+4
  709. LJM 0,T9 ENTER PROCESSOR
  710.  
  711. * FAT READ ERROR PROCESSOR.
  712.  
  713. AFA1 SFLAG COMI
  714. RJM CFI CLEAR FAT INTERLOCK
  715. UJP FNR RETRY FUNCTION
  716.  
  717. * ATTACH PROCESSOR RETURN WHEN ATTACH IS ALLOWED.
  718.  
  719. AFAX WRITEM *,FATB WRITE UPDATED FAT
  720. RJM CFI CLEAR FAT INTERLOCK
  721. ADK FSTG WRITE FNT/FST
  722. CWD FS
  723. ADK FNTG-FSTG
  724. CWD FN
  725. LDN 0
  726. AFA2 STD OR+1
  727. LJM FNC COMPLETE FUNCTION
  728.  
  729. * ATTACH PROCESSOR REJECT RETURN.
  730.  
  731. AFAR RJM CFI CLEAR FAT INTERLOCK
  732. ADK FNTG WRITE FNT
  733. CWD FN
  734. LDM GFAT+4 RETURN PRESENT WRITE MODE BITS
  735. LPC 7402
  736. STD OR+4
  737. LDN 1
  738. UJN AFA2 RETURN
  739. AFA SPACE 4,15
  740. ** THE FOLLOWING ARE *AFAM* SUBFUNCTION PROCESSORS.
  741. * THE SUBFUNCTION NUMBER IS MADE UP OF THE ATTACHMENT MODE * 2
  742. * FOR AN ATTACH, OR THE ATTACHMENT MODE * 2 + 1 FOR A RETURN.
  743. * THE FOLLOWING ARE THE ENTRY CONDITIONS TO THE ATTACH/RETURN
  744. * PROCESSORS.
  745. *
  746. * ENTRY (A) = (GFAT+4) = BYTE 4 OF GLOBAL FAT ENTRY.
  747. * (FATB) = FAT ENTRY FROM EXTENDED MEMORY.
  748. * (FS - FS+4) = LOCAL MACHINE FST ENTRY.
  749. *
  750. * EXIT (FATB) UPDATED FOR NEW ACCESS MODE.
  751. * (FS - FS+4) = UPDATED FST.
  752.  
  753.  
  754. * WRITE MODE ATTACH.
  755.  
  756. AWT SUBFUN AFAM,PTWR*2
  757. SCN 3
  758. ADM GFAT+3
  759. ADM GFAT+2
  760. AWT1 NJN AFAR IF FILE BUSY
  761. LDN 7
  762. AWT2 SHN 10
  763. STD T2
  764. LDD OR+2 SET NON-ROLLABLE BIT
  765. SHN 1-13
  766. RAD T2
  767. RAD FS+4
  768. TSTM FATB+1*5+4,,MI5
  769. LDD T2
  770. AWT3 RAM GFAT+4
  771. LJM AFAX RETURN
  772.  
  773. * APPEND MODE ATTACH.
  774.  
  775. AAP SUBFUN AFAM,PTAP*2
  776. SCN 3
  777. NJN AWT1 IF APPEND MODE NOT ALLOWED
  778. LDM GFAT+3
  779. LPN 77
  780. AAP1 NJN AWT1 IF APPEND MODE NOT ALLOWED
  781. LDN 1
  782. UJN AWT2 SET APPEND MODE
  783.  
  784. * MODIFY MODE ATTACH.
  785.  
  786. AMD SUBFUN AFAM,PTMD*2
  787. SCN 3
  788. ADM GFAT+3
  789. NJN AAP1 IF MODE CONFLICT
  790. LDN 3
  791. UJN AWT2 SET MODIFY MODE
  792.  
  793. * UPDATE MODE ATTACH.
  794.  
  795. AUP SUBFUN AFAM,PTUP*2
  796. SHN -10
  797. ADM GFAT+3
  798. NJN AAP1 IF MODE CONFLICT
  799. LDN 10
  800. UJP AWT2 SET MODIFY MODE
  801.  
  802. * WRITE MODE RETURN.
  803.  
  804. RWT SUBFUN AFAM,PTWR*2+1
  805. LDN 7
  806. RWT1 SHN 10
  807. LMD FS+4
  808. SHN -10
  809. NJP HNG IF NOT IN WRITE MODE
  810. LDD FS+4
  811. LPC 7402
  812. STD T2
  813. LMD FS+4 UPDATE LOCAL MODE BITS
  814. STD FS+4
  815. TSTM FATB+1*5+4,,MI5
  816. LDN 0
  817. SBD T2
  818. UJP AWT3 RETURN
  819.  
  820. * APPEND MODE RETURN.
  821.  
  822. RAP SUBFUN AFAM,PTAP*2+1
  823. LDN 1
  824. UJN RWT1 COMPLETE PROCESSING
  825.  
  826. * MODIFY MODE RETURN.
  827.  
  828. RMD SUBFUN AFAM,PTMD*2+1
  829. LDN 3
  830. UJN RWT1 COMPLETE PROCESSING
  831.  
  832. * UPDATE MODE RETURN.
  833.  
  834. RUP SUBFUN AFAM,PTUP*2+1
  835. LDN 10
  836. UJN RWT1 COMPLETE PROCESSING
  837.  
  838. * READ ALLOW MODIFY MODE RETURN.
  839.  
  840. RRM SUBFUN AFAM,PTRM*2+1
  841. LDD FS+2
  842. ZJN RRA2 IF NO R/M COUNT SET
  843. SOM GFAT+2
  844. SOD FS+2
  845. RRM1 TSTM FATB+1*5+2,,MI5
  846. UJN RRD2 RETURN
  847.  
  848. * READ/EXECUTE MODE RETURN.
  849.  
  850. RRD SUBFUN AFAM,(PTRD*2+1,PTEX*2+1)
  851. LDD FS+3
  852. LPN 77
  853. ZJN RRA2 IF NO READ COUNT SET
  854. SOM GFAT+3
  855. SOD FS+3
  856. RRD1 TSTM FATB+1*5+3,,MI5
  857. RRD2 LJM AFAX RETURN
  858.  
  859. * READ ALLOW APPEND MODE RETURN.
  860.  
  861. RRA SUBFUN AFAM,PTRA*2+1
  862. LDC -100
  863. RAM GFAT+3
  864. LDC -100
  865. RRA1 RAD FS+3
  866. PJN RRD1 IF R/A COUNT SET
  867. RRA2 LJM HNG HANG
  868.  
  869. * READ ALLOW UPDATE MODE RETURN.
  870.  
  871. RRU SUBFUN AFAM,PTRU*2+1
  872. LDD FS+4
  873. LPC 374
  874. ZJN RRA2 IF NO R/U COUNT SET
  875. LCN 4
  876. RAM GFAT+4
  877. LCN 4
  878. RRU1 RAD FS+4
  879. TSTM FATB+1*5+4,,MI5
  880. UJN RRD2 RETURN
  881.  
  882. * READ/EXECUTE MODE ATTACH.
  883.  
  884. ARD SUBFUN AFAM,(PTRD*2,PTEX*2)
  885. SHN -10
  886. NJN ARA1 IF FILE IN WRITABLE MODE
  887. AOM GFAT+3
  888. LPN 77
  889. ZJN ARU1 IF READ COUNT EXCEEDED
  890. AOD FS+3 ADVANCE LOCAL READ COUNT
  891. UJP RRD1 RETURN
  892.  
  893. * READ ALLOW MODIFY MODE ATTACH.
  894.  
  895. AMR SUBFUN AFAM,PTRM*2
  896. SHN 21-12
  897. MJN ARA1 IF FILE IN WRITE MODE
  898. AOM GFAT+2
  899. SHN -14
  900. NJN ARA1 IF R/M COUNT EXCEEDED
  901. AOD FS+2 ADVANCE LOCAL R/M COUNT
  902. UJP RRM1 RETURN
  903.  
  904. * READ ALLOW APPEND MODE ATTACH.
  905.  
  906. ARA SUBFUN AFAM,PTRA*2
  907. SHN -11
  908. NJN ARU1 IF FILE IN WRITE OR MODIFY MODE
  909. LDD HN
  910. RAM GFAT+3
  911. SHN -14
  912. ARA1 NJN ARU1 IF R/M COUNT EXCEEDED
  913. LDD HN
  914. UJP RRA1 UPDATE LOCAL COUNTS
  915.  
  916. * READ ALLOW UPDATE MODE ATTACH.
  917.  
  918. ARU SUBFUN AFAM,PTRU*2
  919. LPC 3774
  920. ADC -374
  921. MJN ARU2 IF NOT CONFLICTING MODE OR COUNT EXCEEDED
  922. ARU1 LJM AFAR REJECT
  923.  
  924. ARU2 LDN 4
  925. RAM GFAT+4
  926. LDN 4
  927. UJP RRU1 ADVANCE LOCAL R/U COUNT
  928. TAFAM SPACE 4,10
  929. ** TAFAM - TABLE OF *AFAM* SUBFUNCTION PROCESSOR ADDRESSES.
  930. *
  931. * INDEXED BY ATTACH/RETURN MODE.
  932. * 12/ ATTACH PROCESSOR, 12/ RETURN PROCESSOR
  933.  
  934.  
  935. MXAFAM EQU 2*PTLM
  936.  
  937. TAFAM BSS 0
  938. DUP MXAFAM,1
  939. CON HNG
  940. LIST G
  941. TAFAM HERE
  942. LIST *
  943. ORG TAFAM+MXAFAM
  944. TITLE *ECSM* MONITOR FUNCTION PROCESSING.
  945. ECSM SPACE 4,10
  946. *** ECSM - EXTENDED MEMORY TRANSFER.
  947. * 1.) TRANSFER FROM 1 TO 100B WORDS TO/FROM RELATIVE
  948. * EXTENDED MEMORY USING A USER SPECIFIED CM BUFFER.
  949. * ILLEGAL FOR *MTE* REQUEST.
  950. * 2.) TRANSFER FROM 1 TO 100B WORDS TO/FROM EXTENDED
  951. * MEMORY USING A USER SPECIFIED CM BUFFER.
  952. * 3.) TRANSFER EXTENDED MEMORY ACCORDING TO A LIST OF
  953. * ADDRESSES.
  954. * 4.) PERFORM FLAG REGISTER OPERATIONS.
  955.  
  956.  
  957. PPR ECSM
  958. LDD OR+1 SET WORD COUNT
  959. SHN -6
  960. ADN 1
  961. STD WC
  962. LDD OR+3 SET SUBFUNCTION
  963. SHN -11
  964. STD T8
  965. LDM TECSM,T8
  966. STD T9
  967. LJM 0,T9 ENTER PROCESSOR
  968.  
  969. MXECSM EQU 10 MAXIMUM NUMBER OF *ECSM* SUBFUNCTIONS
  970. SPACE 4,10
  971. *** RRES-WRES - READ/WRITE RELATIVE USER EXTENDED MEMORY.
  972. *
  973. * THESE SUBFUNCTIONS ARE NOT LEGAL FOR A MULTI-MAINFRAME
  974. * LINK DEVICE WITH NO CPU PORT.
  975.  
  976.  
  977. *HNG SUBFUN ECSM,(RRES,WRES) INVALID FUNCTION WHEN NO CPU PATH
  978. SPACE 4,20
  979. *** RECS-WECS - READ/WRITE ABSOLUTE SYSTEM EXTENDED MEMORY.
  980. *
  981. * ENTRY
  982. *T, OR 12/ ECSM,6/ WC,18/ CMA,3/ SF,21/ ECA
  983. * WC NUMBER OF WORDS TO TRANSFER - 1.
  984. * WC = 0 TRANSFER 1 WORD.
  985. * WC = 1 TRANSFER 2 WORDS.
  986. * .
  987. * .
  988. * WC = 77B TRANSFER 100B WORDS.
  989. * CMA RELATIVE+400000B OR ABSOLUTE CM ADDRESS OF BUFFER.
  990. * SF *RECS* OR *WECS* SUBFUNCTION CODE.
  991. * ECA ABSOLUTE SYSTEM EXTENDED MEMORY ADDRESS OF TRANSFER.
  992. *
  993. * EXIT
  994. *T, OR 12/ 0,12/ ST,12/,24/ ECD
  995. * ST 0 FOR TRANSFER COMPLETE.
  996. * 7777 FOR TRANSFER ABORTED.
  997. * ECD ABSOLUTE SYSTEM EXTENDED MEMORY ADDRESS WHERE ERROR
  998. * OCCURRED IF ABORTED.
  999.  
  1000.  
  1001. RWE SUBFUN ECSM,(RECS,WECS)
  1002. LDD OR+3
  1003. LPC 777 SET EXTENDED MEMORY ADDRESS
  1004. STD EA
  1005. LDD OR+4
  1006. STD EA+1
  1007. LCN RECS
  1008. ERRNZ WECS-RECS-1 CODE DEPENDS ON VALUE OF TAG
  1009. RAD T8 (T8) = 0 IF READ, = 1 IF WRITE
  1010. NJN RWE1 IF WRITE REQUEST
  1011. READEM *,TBUF READ EXTENDED MEMORY WORDS
  1012. STD T2
  1013. RWE1 LDD OR+1 GET ABSOLUTE CM ADDRESS
  1014. LPN 77
  1015. SHN 14
  1016. PJN RWE2 IF ABSOLUTE CM ADDRESS
  1017. LDD RQ READ CONTROL POINT
  1018. SBD OF
  1019. SHN PPXES-PPCES
  1020. TADC ACPP,PPX
  1021. CRD FS READ ASSIGNED CP ADDRESS
  1022. LDD FS+4
  1023. RWEA ADN FLSW
  1024. * ADN FLSW+1 (CME PRESENT)
  1025. CRD CM
  1026. LRD CM+1
  1027. LDD OR+1 SET ABSOLUTE ADDRESS
  1028. LPN 37
  1029. SHN 6
  1030. ADD CM+3
  1031. SHN 6
  1032. RWE2 ADD OR+2
  1033. LJM TRWE,T8 ENTER PROCESSOR
  1034.  
  1035. TRWE UJN RWE4 READ
  1036. * UJN RWE3 WRITE
  1037.  
  1038. RWE3 CRM TBUF,WC
  1039. WRITEM *,TBUF WRITE DATA TO EXTENDED MEMORY
  1040. UJN RWE5 STORE STATUS AND EXIT
  1041.  
  1042. RWE4 CWM TBUF,WC
  1043. LDD T2
  1044. RWE5 STD OR+1
  1045. LJM FNC COMPLETE FUNCTION
  1046. SPACE 4,15
  1047. *** SFRS-CFRS - SET/CLEAR FLAG REGISTER BITS.
  1048. *
  1049. * *SFRS* IS THE TEST AND SET FLAG REGISTER FUNCTION.
  1050. * *CFRS* IS THE UNCONDITIONAL CLEAR FLAG REGISTER FUNCTION.
  1051. *
  1052. * ENTRY
  1053. *T, OR 12/ ECSM,6/ ECB,18/,3/ SF,21/
  1054. * ECB FLAG REGISTER BIT NUMBER TO SET/CLEAR.
  1055. * SF *SFRS* OR *CFRS* SUBFUNCTION CODE.
  1056. *
  1057. * EXIT
  1058. *T, OR 12/ 0,12/ ST,12/,12/,12/
  1059. * ST 0 IF FUNCTION COMPLETED.
  1060. * ST 7777 IF *SFRS* FUNCTION PERFORMED ON A BIT WHICH WAS
  1061. * ALREADY SET.
  1062.  
  1063.  
  1064. SFR SUBFUN ECSM,(CFRS,SFRS)
  1065. LDN FRET-1 SET FLAG BIT OWNER ADDRESS
  1066. ADD WC
  1067. RJM SLA SET ADDRESS IN LABEL TRACK
  1068. LDN 1 SET WORD COUNT
  1069. STD WC
  1070. LDD T8
  1071. LMN SFRS
  1072. ZJN SFR1 IF SET FUNCTION
  1073. WRITEM *,ZR CLEAR FLAG BIT OWNER
  1074. SFR1 LDD OR+1 SET FLAG BIT
  1075. SHN -6
  1076. ADD TH
  1077. STM SFRA
  1078. LDN 1
  1079. SFRA SHN **
  1080. STD FN+1
  1081. SHN -14
  1082. ADM TSFR,T8
  1083. STD FN
  1084. LDN FN
  1085. RJM IFR ISSUE FLAG REGISTER REQUEST
  1086. STD OR+1
  1087. NJN SFR2 IF INTERLOCK NOT GAINED
  1088. LDD T8
  1089. LMN SFRS
  1090. NJN SFR2 IF NOT SET FUNCTION
  1091. WRITEM *,MI+1-4 SET FLAG BIT OWNER
  1092. SFR2 LJM FNC COMPLETE FUNCTION
  1093.  
  1094.  
  1095. TSFR EQU *-SFRS TABLE OF FLAG REGISTER FUNCTIONS
  1096. LOC SFRS
  1097. SFRS CON 4000
  1098. CFRS CON 7000
  1099. LOC *O
  1100. SPACE 4,35
  1101. *** PELS - PROCESS EXTENDED MEMORY ACCORDING TO LIST.
  1102. *
  1103. * ENTRY
  1104. *T, OR 12/ ECSM,6/ WC,18/ CML,3/ SF,1/W,1/U,19/
  1105. * WC NUMBER OF LIST ENTRIES TO PROCESS.
  1106. * CML ABSOLUTE CM FWA OF LIST.
  1107. * SF *PELS* SUBFUNCTION CODE.
  1108. * W SET IF LIST OF WORDS TO BE WRITTEN.
  1109. * CLEAR IF LIST OF WORDS TO BE READ.
  1110. * U SET IF LIST CONTAINS ABSOLUTE USER EXTENDED MEMORY
  1111. * ADDRESSES.
  1112. * CLEAR IF LIST CONTAINS ABSOLUTE SYSTEM EXTENDED MEMORY
  1113. * ADDRESSES.
  1114. *
  1115. *T,CML 12/0,6/ CT,18/0,24/ EM
  1116. * CT WORD COUNT TO TRANSFER (MAXIMUM OF 60D).
  1117. * EM ABSOLUTE SYSTEM OR USER EXTENDED MEMORY ADDRESS.
  1118. *
  1119. * THE LIST OF EXTENDED MEMORY DATA WORDS IMMEDIATELY FOLLOW THE
  1120. * LIST OF EXTENDED MEMORY ADDRESSES. DATA IS WRITTEN FROM THIS
  1121. * BUFFER OR READ TO THIS BUFFER.
  1122. *
  1123. * EXIT
  1124. *T, OR 12/ 0,12/ ST,36/ 0
  1125. * ST 0 FOR TRANSFER COMPLETE.
  1126. * 7777 FOR TRANSFER ABORTED.
  1127. *
  1128. *T, CML 60/ EF
  1129. * EF ERROR FLAGS INDICATING WORDS ON WHICH
  1130. * ERROR OCCURRED IF TRANSFER ABORTED.
  1131. * BIT 0 SET = ERROR OCCURRED ON WORD
  1132. * AT *EM* + 0.
  1133. * ...
  1134. * BIT *CT* - 1 SET = ERROR OCCURRED ON WORD
  1135. * AT *EM* + *CT* - 1.
  1136.  
  1137.  
  1138. PEL SUBFUN ECSM,PELS
  1139.  
  1140. * TEST FLAG BITS TO UPDATE *EFRL* STATUS.
  1141.  
  1142. LDK EFRL SET FLAG REGISTER STATUS
  1143. CRD FN
  1144. LDN 0
  1145. STD FN+3
  1146. STD FN+4
  1147. LDD TH
  1148. ERRNZ SHNI-1000 CODE DEPENDS ON VALUE OF TAG
  1149. STM PELA
  1150. PEL1 LDN 1 TEST FLAG BIT
  1151. PELA SHN **
  1152. STD EA+1
  1153. SHN -14
  1154. ADC 6000
  1155. STD EA
  1156. AOM PELA
  1157. LPN 77
  1158. LMN 23
  1159. ZJN PEL2 IF END OF BITS TO CHECK
  1160. LDN EA
  1161. RJM IFR
  1162. ZJN PEL1 IF BIT NOT SET
  1163. LDD EA
  1164. LPN 77
  1165. RAD FN+3
  1166. LDD EA+1
  1167. RAD FN+4
  1168. UJN PEL1 CHECK NEXT BIT
  1169.  
  1170. PEL2 LDK EFRL WRITE UPDATED FLAG REGISTER
  1171. CWD FN
  1172. LDN 0
  1173. STD T9 SET RELATIVE LIST ADDRESS
  1174. SOD WC SET WORD COUNT OF LIST
  1175. STD T8
  1176. STD T3 SET DATA ADDRESS IN LIST
  1177. PEL3 LDD OR+1 READ LIST ENTRY
  1178. LPN 77
  1179. SHN 14
  1180. ADD OR+2
  1181. ADD T9
  1182. CRD FN
  1183. LDD FN+1 SET WORD COUNT
  1184. SHN -6
  1185. STD WC
  1186. LDD FN+3 SET EM ADDRESS
  1187. STD EA
  1188. LDD FN+4
  1189. STD EA+1
  1190. LDD OR+3
  1191. SHN 21-10
  1192. PJN PEL4 IF READ
  1193. LDD OR+1 READ DATA TO WRITE
  1194. LPN 77
  1195. SHN 14
  1196. ADD OR+2
  1197. ADD T3
  1198. CRM TBUF,WC
  1199. WRITEM *,TBUF WRITE DATA
  1200. UJN PEL5 CONTINUE
  1201.  
  1202. PEL4 READEM *,TBUF READ DATA
  1203. STD FN+4
  1204. LDD OR+1 WRITE DATA TO CM
  1205. LPN 77
  1206. SHN 14
  1207. ADD OR+2
  1208. ADD T3
  1209. CWM TBUF,WC
  1210. PEL5 LDD OR+1 RETURN STATUS
  1211. LPN 77
  1212. SHN 14
  1213. ADD OR+2
  1214. ADD T9
  1215. CWD FN
  1216. LDD WC ADVANCE TOTAL WORD COUNT
  1217. RAD T3
  1218. AOD T9
  1219. LMD T8
  1220. NJP PEL3 IF NOT END OF LIST
  1221. LJM FNC COMPLETE FUNCTION
  1222. TECSM SPACE 4,10
  1223. ** TECSM - TABLE OF *ECSM* SUBFUNCTION PROCESSOR ADDRESSES.
  1224. *
  1225. * INDEXED BY SUBFUNCTION.
  1226. * 12/ PROCESSOR ADDRESS
  1227.  
  1228.  
  1229. TECSM BSS 0
  1230. DUP MXECSM,1
  1231. CON HNG
  1232. LIST G
  1233. TECSM HERE
  1234. LIST *
  1235. ORG TECSM+MXECSM
  1236. TITLE *MTEM* MONITOR FUNCTION PROCESSING.
  1237. MTEM SPACE 4,10
  1238. *** MTEM - *MTE* REQUESTS FOR SHARED BUFFERED DEVICES.
  1239.  
  1240.  
  1241. PPR MTEM
  1242. LDM TMTEM,OR+1 CHECK SUBFUNCTION
  1243. STD T9
  1244. LJM 0,T9 ENTER PROCESSOR
  1245. CBT SPACE 4,10
  1246. *** CBRS-CBWS - CLEAR BAT READ/WRITE ACCESS.
  1247. *
  1248. * ENTRY
  1249. *T, OR 12/ MTEM,12/ SF,12/ MI,12/ 0,12/ EQ
  1250. * SF *CBRS*/*CBWS* SUBFUNCTION.
  1251. * MI MACHINE INDEX FOR THE MAINFRAME BEING RECOVERED.
  1252. * EQ EST ORDINAL FOR THE DEVICE BEING RECOVERED.
  1253. *
  1254. * EXIT
  1255. *T, OR 12/ 0,48/ UNCHANGED
  1256.  
  1257.  
  1258. CBT SUBFUN MTEM,(CBRS,CBWS)
  1259. LDM TMMK-1,OR+2 GET MACHINE MASK
  1260. SHN 4
  1261. STM CBTB SET WRITE BIT MASK
  1262. STD T3
  1263. SHN 4
  1264. STD T2 READ BIT
  1265. LDD OR+1
  1266. ERRNZ CBRS
  1267. ZJN CBT1 IF TO CLEAR READ ACCESS (*CBRS*)
  1268. LDD T3
  1269. CBT1 ADD T2
  1270. LMC 7777
  1271. STM CBTA SET MASK TO CLEAR READ OR R/W BITS
  1272. LDD TH SET BAT LENGTH
  1273. STD T8
  1274. RJM GBI SET *BATI* INTERLOCK
  1275. MJP FNR IF UNABLE TO SET LOCK
  1276. LDD OR+4
  1277. RJM GBA GET BAT ADDRESS
  1278. CBT2 LDK BRTL SET WORD COUNT FOR FULL BUFFER
  1279. STD WC
  1280. SHN 2
  1281. ADD WC
  1282. STD T9 BYTES TO PROCESS
  1283. READEM *,TBUF,CBT5 READ BAT
  1284. CBT3 SOD T9
  1285. MJN CBT4 IF DONE PROCESSING THIS BUFFER
  1286. LDM TBUF,T9
  1287. STD T2 SAVE ORIGINAL VALUE
  1288. LPC **
  1289. CBTA EQU *-1
  1290. STM TBUF,T9
  1291. LDD OR+1
  1292. ZJN CBT3 IF TO CLEAR READ ACCESS
  1293. LDD T2 CHECK ORIGINAL VALUE
  1294. LPC ** (MASK IS ONLY THE WRITE BIT FOR THIS M/F)
  1295. CBTB EQU *-1
  1296. ZJN CBT3 IF WRITE BIT FOR THIS M/F NOT SET
  1297. LDM TBUF,T9
  1298. SCN 10 CLEAR *URW* BIT
  1299. STM TBUF,T9
  1300. UJN CBT3 CHECK NEXT BYTE
  1301.  
  1302. CBT4 WRITEM *,TBUF REWRITE BAT
  1303. LDD T8
  1304. SBD WC
  1305. ZJN CBT5 IF NO MORE TO PROCESS
  1306. STD T8
  1307. LDD WC ADVANCE EM ADDRESS
  1308. RAD EA+1
  1309. SHN -14
  1310. RAD EA
  1311. UJP CBT2 PROCESS NEXT BUFFER OF BAT DATA
  1312.  
  1313. CBT5 RJM CBI CLEAR *BATI* INTERLOCK
  1314. CBT6 LJM FNC SET FUNCTION COMPLETE
  1315. EBR SPACE 4,10
  1316. *** EBRS - ENABLE BRT PROCESSING.
  1317. *
  1318. * ENTRY
  1319. *T, OR 12/ MTEM,12/ *EBRS*,12/ 0,12/ BD,12/ BT
  1320. * BD TRACK NUMBER OF BDT IN EXTENDED MEMORY.
  1321. * BT TRACK NUMBER OF BRT IN EXTENDED MEMORY.
  1322. *
  1323. * EXIT
  1324. *T, OR 12/ 0,48/ UNCHANGED
  1325.  
  1326.  
  1327. EBR SUBFUN MTEM,EBRS
  1328. LDD OR+4
  1329. STM BRTP
  1330. RJM SEA SET ESM ADDRESS OF BRT
  1331. RAM CBAA+1
  1332. SHN -14
  1333. RAM CBAA
  1334. LDD OR+3
  1335. RJM SEA SET ESM ADDRESS OF BDT
  1336. RAM CBDA+1
  1337. SHN -14
  1338. RAM CBDA
  1339. RJM CSZ CREATE SECTOR OF ZERO WORDS
  1340. LDN 1 START AT FIRST BRT
  1341. RJM CBA
  1342. EBRA LDC 20 NUMBER OF SECTORS/TRACK
  1343. RJM CET CLEAR BRT TRACK
  1344. RJM CBD
  1345. EBRB LDC 20 NUMBER OF SECTORS/TRACK
  1346. RJM CET CLEAR BDT TRACK
  1347. UJP CBT6 COMPLETE FUNCTION
  1348. CEM SPACE 4,10
  1349. *** CEMS - CLEAR EXTENDED MEMORY TRACK.
  1350. *
  1351. * ENTRY
  1352. *T, OR 12/ MTEM,12/ *CEMS*,12/ FS,12/ NS,12/ TK
  1353. * FS FIRST SECTOR TO CLEAR.
  1354. * NS NUMBER OF SECTORS TO CLEAR.
  1355. * TK EXTENDED MEMORY TRACK TO CLEAR.
  1356. *
  1357. * EXIT
  1358. *T, OR 12/ 0,48/ UNCHANGED
  1359.  
  1360.  
  1361. CEM SUBFUN MTEM,CEMS
  1362. RJM CSZ CREATE SECTOR OF ZERO WORDS
  1363. LDD OR+4
  1364. RJM SEA SET ESM ADDRESS OF TRACK
  1365. STD EA+1 SET ESM ADDRESS
  1366. SHN -14
  1367. STD EA
  1368. LDD OR+2 FIRST SECTOR TO CLEAR
  1369. SHN 6
  1370. RAD EA+1
  1371. SHN -14
  1372. RAD EA
  1373. LDD OR+3 NUMBER OF SECTORS TO CLEAR
  1374. RJM CET CLEAR ESM TRACK
  1375. LJM FNC COMPLETE FUNCTION
  1376. SEP SPACE 4,15
  1377. *** SEPS-CEPS - SET/CLEAR *DAS* ERROR PROCESSING INTERLOCK.
  1378. *
  1379. * ENTRY
  1380. *T, OR 12/ MTEM,12/ SF,24/ 0,12/ EQ
  1381. * SF *SEPS*/*CEPS* SUBFUNCTION CODE.
  1382. * EQ EST ORDINAL OF DEVICE TO BE PROCESSED.
  1383. *
  1384. * EXIT
  1385. *T, OR 12/ 0,36/ UNCHANGED,12/ ST
  1386. * ST STATUS = 0, IF SUCCESSFUL.
  1387. * = 1, IF REJECT.
  1388.  
  1389.  
  1390. SEP SUBFUN MTEM,(SEPS,CEPS)
  1391. SFLAG BDTI,FNR SET *BDTI* INTERLOCK
  1392. LDD OR+1
  1393. LMN CEPS
  1394. ZJN SEP1 IF CLEAR INTERLOCK SUBFUNCTION
  1395. LDC TBDRI CHECK *BDRI* INTERLOCK
  1396. RJM IFR
  1397. NJN SEP4 IF *BDRI* SET
  1398. SEP1 RJM RBD READ *BDT* ENTRY
  1399. LDD OR+1
  1400. LMN CEPS
  1401. ZJN SEP3 IF CLEAR INTERLOCK SUBFUNCTION
  1402. LDD FN CHECK ERROR PROCESSING INTERLOCK
  1403. NJN SEP4 IF INTERLOCK CURRENTLY SET
  1404. LDD FN+1 CHECK RESTORE INTERLOCK
  1405. ZJN SEP2 IF INTERLOCK NOT SET
  1406. TLMC 4000,MI
  1407. NJN SEP4 IF RESTORE IN PROGRESS ON ANOTHER MF
  1408. SEP2 TLDC 4000,MI SET ERROR PROCESSING INTERLOCK
  1409. SEP3 STD FN
  1410. WRITEM 1,FN UPDATE BDT ENTRY
  1411. LDN 0
  1412. UJN SEP5 SET SUCCESSFUL REPLY
  1413.  
  1414. SEP4 LDN 1 SET REJECT REPLY
  1415. SEP5 STD OR+4
  1416. RJM CBJ CLEAR *BDTI* INTERLOCK
  1417. LJM FNC COMPLETE FUNCTION
  1418. SRI SPACE 4,15
  1419. *** SRIS - SET RECOVERY ERROR PROCESSING INTERLOCK.
  1420. *
  1421. * ENTRY
  1422. *T, OR 12/ MTEM,12/ *SRIS*,36/ 0
  1423. *
  1424. * EXIT
  1425. *T, OR 12/ 0,36/ UNCHANGED,12/ ST
  1426. * ST STATUS = 0, IF SUCCESSFUL.
  1427. * = 1, IF INCOMPLETE (*BDRI* SET, BUT SOME
  1428. * CONFLICTING *BDT* INTERLOCKS ARE SET).
  1429. * = 2, IF REJECT.
  1430.  
  1431.  
  1432. SRI SUBFUN MTEM,SRIS
  1433. LDM BRTP
  1434. ZJP SRI3 IF BRT PROCESSING NOT ENABLED
  1435. SFLAG BDTI,FNR SET *BDTI* INTERLOCK
  1436. SFLAG BDRI,SRI2 SET *BDRI* INTERLOCK
  1437. RJM CBJ CLEAR *BDTI* INTERLOCK
  1438. SRI1 RJM CCI CHECK FOR CONFLICTING INTERLOCKS
  1439. ZJN SRI4 IF NO CONFLICTING INTERLOCKS SET
  1440. LDN 1 SET *INCOMPLETE* STATUS
  1441. UJN SRI4 COMPLETE FUNCTION
  1442.  
  1443. SRI2 RJM CBJ CLEAR *BDTI* INTERLOCK
  1444. SRI3 LDN 2 SET REJECT REPLY
  1445. SRI4 STD OR+4
  1446. SRI5 LJM FNC COMPLETE FUNCTION
  1447. CRI SPACE 4,10
  1448. *** CRIS - CLEAR RECOVERY ERROR PROCESSING INTERLOCK.
  1449. *
  1450. * ENTRY
  1451. *T, OR 12/ MTEM,12/ *CRIS*,36/ 0
  1452. *
  1453. * EXIT
  1454. *T, OR 12/ 0,48/ UNCHANGED
  1455.  
  1456.  
  1457. CRI SUBFUN MTEM,CRIS
  1458. CFLAG BDRI CLEAR *BDRI* INTERLOCK
  1459. UJP SRI5 COMPLETE FUNCTION
  1460. GRI SPACE 4,10
  1461. *** GRIS - SET RECOVERY INTERLOCK STATUS.
  1462. *
  1463. * ENTRY
  1464. *T, OR 12/ MTEM,12/ *GRIS*,36/ 0
  1465. *
  1466. * EXIT
  1467. *T, OR 12/ 0,36/ UNCHANGED,12/ ST
  1468. * ST STATUS = 0, IF NO CONFLICTING INTERLOCKS ARE SET.
  1469. * = 1, IF CONFLICTING INTERLOCKS ARE STILL SET.
  1470.  
  1471.  
  1472. GRI SUBFUN MTEM,GRIS
  1473. UJP SRI1 CHECK FOR CONFLICTING INTERLOCKS
  1474. RBP SPACE 4,10
  1475. *** RBPS - RELEASE BAT ACCESS PERMISSIONS FOR DEVICE.
  1476. *
  1477. * ENTRY
  1478. *T, OR 12/ MTEM,12/ *RBPS*,24/ 0,12/ EQ
  1479. * EQ EST ORDINAL FOR THE DEVICE.
  1480. *
  1481. * EXIT
  1482. *T, OR 12/ 0,36/ UNCHANGED,12/ ST
  1483. * ST STATUS = 0, IF ALL PERMISSIONS RELEASED.
  1484. * = ERROR COUNT, IF NOT ALL PERMISSIONS RELEASED.
  1485.  
  1486.  
  1487. RBP SUBFUN MTEM,RBPS
  1488. LDD OR+4 SET EST ORDINAL
  1489. STD FN
  1490. SFA EST
  1491. CRD CM
  1492. LDD CM+4
  1493. SHN 3
  1494. ADK TDGL GET NUMBER OF TRACKS
  1495. CRD CM
  1496. LDD CM
  1497. STD FN+3
  1498. LDN 0 SET INITIAL TRACK NUMBER
  1499. STD FN+1
  1500. STD T8 CLEAR ERROR FLAG
  1501. LDC 4000 SET WRITE MODE REQUESTED FLAG
  1502. STD FN+2
  1503. RBP1 RJM RBW READ BAT WORD (NO INTERLOCK)
  1504. LDI T6 CHECK CURRENT ACCESS
  1505. TLPC 0,RWM (MASK IS R/W BITS FOR THIS MACHINE)
  1506. ZJN RBP3 IF THIS MACHINE HAS NO ACCESS
  1507. LDN BMTR TERMINATE READ AND WRITE ACCESS
  1508. SHN 6
  1509. RJM IBF ISSUE *BFMM*
  1510. LDD CM+4 CHECK REPLY
  1511. NJN RBP2 IF NOT SUCCESSFUL
  1512. STM UBAA
  1513. RJM UBA UPDATE BAT ACCESS
  1514. PJN RBP3 IF BAT UPDATED SUCCESSFULLY
  1515. RBP2 AOD T8 INCREMENT ERROR COUNT
  1516. RBP3 AOD FN+1 INCREMENT TRACK NUMBER
  1517. LMD FN+3
  1518. NJN RBP1 IF MORE TRACKS TO PROCESS
  1519. LDD T8 RETURN ERROR COUNT
  1520. STD OR+4
  1521. LJM FNC SET FUNCTION COMPLETE
  1522. SRP SPACE 4,15
  1523. *** SRPS-CRPS - SET/CLEAR RESTORE PARITY INTERLOCK.
  1524. *
  1525. * ENTRY
  1526. *T, OR 12/ MTEM,12/ SF,24/ 0,12/ EQ
  1527. *T, MB 24/ ,36/ CID
  1528. * SF *SRPS*/*CRPS* SUBFUNCTION CODE.
  1529. * EQ EST ORDINAL OF DEVICE.
  1530. * CID SERIAL NUMBER OF CONTROLLER DOING RESTORE (*SRPS*).
  1531. *
  1532. * EXIT
  1533. *T, OR 12/ 0,36/ UNCHANGED,12/ ST
  1534. * ST STATUS = 0, IF SUCCESSFUL (*SRPS*).
  1535. * = 1, IF REJECT (*SRPS*).
  1536. *
  1537. * NOTE - THE CALLER MUST SET ERROR PROCESSING ON THE DEVICE
  1538. * (VIA *MTEM*/*SEPS*) BEFORE CALLING *MTEM*/*SRPS*.
  1539.  
  1540.  
  1541. SRP SUBFUN MTEM,(SRPS,CRPS)
  1542. SFLAG BDTI,FNR SET *BDTI* INTERLOCK
  1543. RJM RBD READ *BDT* ENTRY
  1544. LDN ZERL
  1545. CRD CM
  1546. LDD OR+1
  1547. LMN CRPS
  1548. ZJN SRP1 IF CLEAR RESTORE INTERLOCK SUBFUNCTION
  1549. LDD FN+1 CHECK RESTORE INTERLOCK
  1550. NJN SRP2 IF INTERLOCK ALREADY SET
  1551. LDD RQ READ MESSAGE BUFFER
  1552. ADN 1
  1553. CRD CM
  1554. TLDC 4000,MI SET RESTORE INTERLOCK AND MID
  1555. SRP1 STD FN+1 SET/CLEAR INTERLOCK
  1556. LDD CM+2 SET/CLEAR CONTROLLER ID
  1557. STD FN+2
  1558. LDD CM+3
  1559. STD FN+3
  1560. LDD CM+4
  1561. STD FN+4
  1562. WRITEM 1,FN UPDATE BDT ENTRY
  1563. LDN 0
  1564. UJN SRP3 SET SUCCESSFUL REPLY
  1565.  
  1566. SRP2 LDN 1 SET REJECT REPLY
  1567. SRP3 STD OR+4
  1568. RJM CBJ CLEAR *BDTI* INTERLOCK
  1569. LJM FNC COMPLETE FUNCTION
  1570. GBD SPACE 4,15
  1571. *** GBDS - GET *BDT* ENTRY.
  1572. *
  1573. * ENTRY
  1574. *T, OR 12/ MTEM,12/ GBDS,24/ 0,12/ EQ
  1575. * EQ EST ORDINAL OF DEVICE.
  1576. *
  1577. * EXIT
  1578. *T, OR 12/ 0,48/ UNCHANGED
  1579. *T, MB 60/ BDT
  1580. * BDT *BDT* ENTRY FOR SPECIFIED DEVICE.
  1581.  
  1582.  
  1583. GBD SUBFUN MTEM,GBDS
  1584. RJM RBD READ *BDT* ENTRY
  1585. LDD RQ RETURN *BDT* ENTRY TO MESSAGE BUFFER
  1586. ADN 1
  1587. CWD FN
  1588. LJM FNC COMPLETE FUNCTION
  1589. TMTEM SPACE 4,10
  1590. ** TMTEM - TABLE OF *MTEM* SUBFUNCTION PROCESSOR ADDRESSES.
  1591. *
  1592. * INDEXED BY SUBFUNCTION.
  1593. * 12/ PROCESSOR ADDRESS
  1594.  
  1595.  
  1596. TMTEM BSS 0
  1597. DUP MXMTEM,1
  1598. CON HNG
  1599. LIST G
  1600. TMTEM HERE
  1601. LIST *
  1602. ORG TMTEM+MXMTEM
  1603. TITLE OTHER MONITOR FUNCTION PROCESSORS.
  1604. DLKM SPACE 4,10
  1605. *** DLKM - DELINK TRACKS.
  1606. *
  1607. * ENTRY
  1608. *T, OR 12/ DLKM,12/ EQ,36/
  1609. * EQ EST ORDINAL
  1610. *
  1611. * EXIT.
  1612. *T, OR 60/ UNCHANGED
  1613. * THE REQUEST IS PASSED TO *CPUMTR* AFTER THE MST/TRT
  1614. * INTERLOCK IS GAINED.
  1615.  
  1616.  
  1617. PPR DLKM,SDI
  1618. DTKM SPACE 4,10
  1619. *** DTKM - DROP TRACKS.
  1620. *
  1621. * ENTRY
  1622. *T, OR 12/ DTKM,12/ EQ,36/
  1623. * EQ EST ORDINAL
  1624. *
  1625. * EXIT
  1626. *T, OR 60/ UNCHANGED
  1627. * THE REQUEST IS PASSED TO *CPUMTR* AFTER THE MST/TRT
  1628. * INTERLOCK IS GAINED.
  1629.  
  1630.  
  1631. PPR DTKM,SDI
  1632. RTCM SPACE 4,15
  1633. *** RTCM - REQUEST TRACK CHAIN.
  1634. *
  1635. * ENTRY
  1636. *T, OR 12/ RTCM, 1/C, 2/, 9/ EQ, 12/ TK, 24/
  1637. * C SET CHECKPOINT UPON FUNCTION COMPLETION.
  1638. * EQ EST ORDINAL.
  1639. * IF EQ IS ZERO TK BYTE CONTAINS SELECTION PARAMETER.
  1640. *
  1641. * EXIT
  1642. *T, OR 60/ UNCHANGED.
  1643. * THE REQUEST IS PASSED TO *CPUMTR* AFTER THE MST/TRT
  1644. * INTERLOCK IS GAINED.
  1645.  
  1646.  
  1647. PPR RTCM,SDI
  1648. STBM SPACE 4,15
  1649. *** STBM - SET TRACK BIT.
  1650. *
  1651. * ENTRY
  1652. *T, OR 12/ STBM,1/C,1/,10/ EQ,12/ PM,12/ SF,12/
  1653. *
  1654. * C IF C = 1 SET CHECKPOINT BIT.
  1655. * EQ EQUIPMENT.
  1656. * PM PARAMETER WHOSE USE DEPENDS ON THE SUBFUNCTION
  1657. * BEING PERFORMED.
  1658. * SF SUBFUNCTION CODE.
  1659. *
  1660. * EXIT
  1661. *T, OR 60/ UNCHANGED.
  1662. * THE REQUEST IS PASSED TO *CPUMTR* AFTER THE MST/TRT
  1663. * INTERLOCK IS GAINED.
  1664.  
  1665.  
  1666. PPR STBM,SDI
  1667. VMSM SPACE 4,10
  1668. *** VMSM - VALIDATE MASS STORAGE.
  1669. *
  1670. * ENTRY
  1671. *T, OR 12/ VMSM,12/ EQ,36/
  1672. * EQ EST ORDINAL TO PROCESS.
  1673. *
  1674. * REPLY
  1675. *T, OR 60/ UNCHANGED.
  1676. * THE REQUEST IS PASSED TO *CPUMTR* AFTER THE MST/TRT
  1677. * INTERLOCK IS GAINED.
  1678.  
  1679.  
  1680. PPR VMSM,SDI
  1681. TITLE SUBROUTINES.
  1682. TMMK SPACE 4,10
  1683. ** TMMK - TABLE OF MACHINE MASKS.
  1684. *
  1685. * INDEXED BY MACHINE INDEX.
  1686. * 12/ MACHINE MASK
  1687.  
  1688.  
  1689. TMMK BSS 0
  1690. .1 SET 1
  1691. DUP MXMF,2
  1692. CON .1
  1693. .1 SET .1+.1
  1694. TCLK SPACE 4,10
  1695. ** TCLK - TABLE OF MACHINE CLOCK VALUES.
  1696. *
  1697. * INDEXED BY MACHINE INDEX.
  1698. * 12/ LAST CLOCK VALUE
  1699.  
  1700.  
  1701. TCLK BSS 0
  1702. DUP MXMF,1
  1703. CON 0
  1704. TSTA SPACE 4,10
  1705. ** TSTA - TABLE OF MACHINE STATES.
  1706. *
  1707. * INDEXED BY MACHINE INDEX.
  1708. * 12/ MACHINE STATE
  1709.  
  1710.  
  1711. TSTA BSS 0
  1712. DUP MXMF,1
  1713. CON MFDN
  1714. AEB SPACE 4,15
  1715. ** AEB - ADD ENTRY TO BRT.
  1716. *
  1717. * ENTRY (FN - FN+4) = *MTBT* ENTRY (BYTE 2 UPDATED TO INCLUDE
  1718. * MASKS OF MACHINES WITH CONFLICTING ACCESS).
  1719. * (BRTB - BRTB+400) = CURRENT BRT.
  1720. *
  1721. * EXIT BRT UPDATED IN PP MEMORY (NEW ENTRY AND HEADER).
  1722. * (BRTT) INCREMENTED.
  1723. * (BRTF) SET IF BRT BECOMES FULL.
  1724. *
  1725. * USES T1, T2, CM - CM+4, FN - FN+4.
  1726. *
  1727. * NOTE - ASSUMES THE BRT IS NOT FULL ON ENTRY.
  1728.  
  1729.  
  1730. AEB SUBR ENTRY/EXIT
  1731. AOM BRTB INCREMENT ENTRY COUNT IN HEADER WORD
  1732. STD T2
  1733. LDD FN SET EM ADDRESS OF MST INTO BRT ENTRY
  1734. SFA EST
  1735. ADK EQDE
  1736. CRD CM
  1737. LDD CM+4
  1738. SHN 3
  1739. ADK SDGL
  1740. CRD CM
  1741. LDD CM
  1742. STD FN+3
  1743. LDD CM+1
  1744. STD FN+4
  1745. LDN MXMF-1 UPDATE HEADER
  1746. STD T1
  1747. AEB1 LDM TMMK,T1 CHECK FOR MACHINE MASK N
  1748. STM AEBA
  1749. LDD FN+2
  1750. LPC **
  1751. AEBA EQU *-1
  1752. ZJN AEB2 IF MACHINE MASK NOT SET
  1753. LDD T2
  1754. STM BRTB+1,T1 SET LAST ENTRY TO LOOK AT FOR M/F N
  1755. AEB2 SOD T1
  1756. PJN AEB1 IF MORE MACHINES TO CHECK
  1757. LDD T2 FORM ADDRESS OF NEW ENTRY TO ADD
  1758. SHN 2
  1759. ADD T2
  1760. ADC BRTB
  1761. STM AEBB
  1762. LDD MA ADD NEW ENTRY
  1763. CWD FN
  1764. CRM **,ON
  1765. AEBB EQU *-1
  1766. AOM BRTT UPDATE COUNT OF BRT ENTRIES ADDED
  1767. LDD T2
  1768. ADC -BRTL+1
  1769. MJN AEB3 IF BRT IS NOT FULL
  1770. LDN NBRR SET BRT FULL INDICATOR
  1771. STM BRTF
  1772. AEB3 LJM AEBX RETURN
  1773. CAM SPACE 4,15
  1774. ** CAM - CHECK FOR ACTIVE MACHINES.
  1775. *
  1776. * ENTRY (A) = 0.
  1777. *
  1778. * EXIT (A) = (T8) = MACHINES REQUIRING STATE PROCESSING.
  1779. * (T9) = MACHINES ACTIVE.
  1780. *
  1781. * CALLS SLA.
  1782. *
  1783. * USES T1, T8, T9, WC.
  1784. *
  1785. * MACROS READEM.
  1786.  
  1787.  
  1788. CAM3 LDD T8
  1789.  
  1790. CAM SUBR ENTRY/EXIT
  1791. LDN 0
  1792. STD T8 PRESET MACHINES TO PROCESS
  1793. STD T9
  1794. LDN SMET READ MACHINE CLOCKS
  1795. RJM SLA SET LABEL TRACK ADDRESS
  1796. READEM MXMF,TBUF,CAM3 NO STATUS OF CLOCK ON ERROR
  1797. CAM1 SOD WC
  1798. MJN CAM3 IF END OF MACHINES TO CHECK
  1799. SHN 2
  1800. ADD WC
  1801. STD T1
  1802. LDM TBUF+4,T1
  1803. SBM TCLK,WC
  1804. ZJN CAM2 IF NO CHANGE IN MACHINE STATUS
  1805. RAM TCLK,WC
  1806. LDM TMMK,WC
  1807. RAD T9
  1808. LDN MFAC
  1809. CAM2 LMM TSTA,WC
  1810. ZJN CAM1 IF NO STATE PROCESSING
  1811. LDM TMMK,WC
  1812. RAD T8
  1813. UJN CAM1 LOOP
  1814. CAP SPACE 4,15
  1815. ** CAP - CHECK ACCESS PERMISSIONS.
  1816. *
  1817. * ENTRY SEE *RBW* EXIT CONDITIONS.
  1818. *
  1819. * EXIT BAT WORD REWRITTEN.
  1820. * *BATI* INTERLOCK CLEARED.
  1821. * (A) .LT. 0 IF REQUEST COULD NOT BE PROCESSED.
  1822. * (FN+2) UPDATED TO INCLUDE MASKS OF MACHINES WITH
  1823. * CONFLICTING ACCESS.
  1824. *
  1825. * CALLS CBI, IBF.
  1826. *
  1827. * USES T7, T9.
  1828. *
  1829. * MACROS WRITEM.
  1830.  
  1831. CAP5 SHN -4 SAVE BAT ACCESS PERMISSIONS
  1832. STD T9
  1833. RJM CBI CLEAR *BATI* INTERLOCK
  1834. LDD T9 UPDATE FUNCTION REQUEST WITH MASKS
  1835. LPN 17
  1836. STD T7
  1837. LDD T9
  1838. SHN -4
  1839. RAD T7
  1840. LDD FN+2
  1841. LPC 4000 PRESERVE READ/WRITE MODE BIT
  1842. ADD T7
  1843. STD FN+2
  1844. LCN 0 INDICATE FUNCTION NOT PROCESSED
  1845.  
  1846. CAP SUBR ENTRY/EXIT
  1847. LDI T6
  1848. SHN 21-3
  1849. MJP CAP4 IF *URW* SET
  1850. LDD FN+2
  1851. SHN -13
  1852. ZJN CAP1 IF READ ACCESS REQUESTED
  1853. LDI T6 CHECK CURRENT ACCESS
  1854. TLPC 0,RWMC (MASK IS ALL BITS EXCEPT R/W FOR THIS M/F)
  1855. CAP0 NJN CAP5 IF ANOTHER M/F HAS READ OR WRITE ACCESS
  1856. LDD T3
  1857. UJN CAP2 ADD WRITE ACCESS
  1858.  
  1859. CAP1 LDI T6 CHECK CURRENT ACCESS
  1860. LPC 360 ISOLATE WRITER
  1861. TLPC 0,RWMC
  1862. NJN CAP0 IF ANOTHER M/F HAS WRITE ACCESS
  1863. LDI T6 CLEAR R/W BITS FOR THIS M/F
  1864. TLPC 0,RWMC
  1865. LMD T2 ADD READ ACCESS
  1866. CAP2 STI T6
  1867. LDN 0 SET ERROR CODE
  1868. CAP3 STD T9
  1869. WRITEM 1,TBUF UPDATE BAT
  1870. RJM CBI CLEAR *BATI* INTERLOCK
  1871. ERRNZ BMCW-BMCR-1
  1872. LDD FN+2 SET *BFMM* OPERATION CODE
  1873. SHN -13
  1874. ADN BMCR
  1875. SHN 6
  1876. ADD T9 ADD ERROR CODE
  1877. RJM IBF ISSUE *BFMM* FUNCTION
  1878. UJP CAPX RETURN
  1879.  
  1880. CAP4 LDI T6 CLEAR *URW* BIT
  1881. SCN 10
  1882. STI T6
  1883. LDN 2 SET ERROR CODE
  1884. UJN CAP3 UPDATE BAT
  1885. CBA SPACE 4,10
  1886. ** CBA - CALCULATE BRT ADDRESS.
  1887. *
  1888. * ENTRY (A) = MACHINE INDEX OF BRT TO READ.
  1889. *
  1890. * EXIT (WC) = WORD COUNT (LENGTH OF BRT).
  1891. * (EA - EA+1) = EM ADDRESS OF BRT.
  1892.  
  1893.  
  1894. CBA SUBR ENTRY/EXIT
  1895. SBN 1
  1896. SHN 10 (BRT LENGTH IS 400B)
  1897. CBAA ADC **
  1898. STD EA+1
  1899. SHN -14
  1900. STD EA
  1901. LDC BRTL SET LENGTH OF EM TRANSFER
  1902. STD WC
  1903. UJN CBAX RETURN
  1904. CBD SPACE 4,10
  1905. ** CBD - CALCULATE BDT ADDRESS.
  1906. *
  1907. * EXIT (EA - EA+1) = EM ADDRESS OF BDT.
  1908.  
  1909.  
  1910. CBD SUBR ENTRY/EXIT
  1911. CBDA LDC **
  1912. STD EA+1
  1913. SHN -14
  1914. STD EA
  1915. UJN CBDX RETURN
  1916. CBI SPACE 4,10
  1917. ** CBI - CLEAR *BATI* INTERLOCK.
  1918.  
  1919.  
  1920. CBI SUBR ENTRY/EXIT
  1921. CFLAG BATI
  1922. UJN CBIX RETURN
  1923. CBJ SPACE 4,10
  1924. ** CBJ - CLEAR *BDTI* INTERLOCK.
  1925.  
  1926.  
  1927. CBJ SUBR ENTRY/EXIT
  1928. CFLAG BDTI
  1929. UJN CBJX RETURN
  1930. CBM SPACE 4,10
  1931. ** CBM - CHECK BRT-S FROM OTHER MAINFRAMES.
  1932. *
  1933. * USES T8, WC, EA - EA+1, SX - SX+2, FS - FS+4.
  1934. *
  1935. * CALLS CBA, IBF, UBA.
  1936. *
  1937. * MACROS READEM.
  1938.  
  1939.  
  1940. CBM SUBR ENTRY/EXIT
  1941. LDM BRTP
  1942. ZJN CBMX IF BRT PROCESSING NOT ENABLED
  1943. TLDN 0,MI SAVE MACHINE INDEX OF THIS MAINFRAME
  1944. STD T8
  1945. LDN MXMF+1
  1946. STD SX
  1947. CBM1 SOD SX
  1948. ZJN CBMX IF ALL BRT-S HAVE BEEN PROCESSED
  1949. TLMN 0,MI
  1950. ZJN CBM1 IF THIS M/F
  1951. LDM TSTA-1,SX
  1952. LMN MFAC
  1953. NJN CBM1 IF M/F NOT CURRENTLY ACTIVE
  1954. LDD SX READ BRT HEADER
  1955. RJM CBA
  1956. READEM 1,FS
  1957. LDM FS,T8
  1958. ZJN CBM1 IF NO ENTRIES FOR THIS M/F
  1959. STD SX+1 ENTRY COUNT
  1960. STD WC
  1961. LDC BRTB-5
  1962. STD SX+2
  1963. AOD EA+1 ADVANCE EM ADDRESS PAST HEADER
  1964. SHN -14
  1965. RAD EA
  1966. READEM *,BRTB,CBMX READ BRT
  1967. CBM2 LDN 5 ADVANCE TO NEXT ENTRY
  1968. RAD SX+2
  1969. LDM 2,SX+2
  1970. STD FN+2
  1971. TLPN 0,MM
  1972. ZJP CBM3 IF MASK FOR THIS M/F NOT SET
  1973. LDM 3,SX+2 EM ADDRESS OF MST
  1974. SHN 14
  1975. ADM 4,SX+2
  1976. TADN DILL-LLLL,ML ADVANCE TO LOCAL WORD *DILL*
  1977. STD EA+1
  1978. SHN -14
  1979. STD EA
  1980. READEM 1,MBUF READ LOCAL *DILL* WORD
  1981. LDM MBUF+1 SET EST ORDINAL
  1982. STD FN
  1983. LDM 1,SX+2 SET TRACK
  1984. STD FN+1
  1985.  
  1986. * VERIFY THAT THIS MACHINE STILL HAS CONFLICTING ACCESS.
  1987.  
  1988. RJM RBW READ BAT WORD (NO INTERLOCK)
  1989. LDD FN+2
  1990. SHN -13
  1991. ZJN CBM2.1 IF READ ACCESS REQUESTED
  1992. LDI T6 CHECK CURRENT ACCESS
  1993. TLPC 0,RWM (MASK IS R/W BITS FOR THIS MACHINE)
  1994. ZJN CBM3 IF THIS MACHINE HAS NO ACCESS
  1995. LDN BMTR
  1996. UJN CBM2.2 ISSUE *BFMM* TO RELEASE ACCESS
  1997.  
  1998. CBM2.1 LDI T6 CHECK CURRENT ACCESS
  1999. TLPC 0,WM
  2000. ZJN CBM3 IF THIS MACHINE DOES NOT HAVE WRITE ACCESS
  2001. LDN BMTW
  2002. CBM2.2 SHN 6 SET *BFMM* OPERATION CODE
  2003. RJM IBF ISSUE *BFMM*
  2004. LDD CM+4 CHECK REPLY
  2005. STM UBAA
  2006. SHN 21-12
  2007. MJN CBM3 IF BUFFER BUSY
  2008. RJM UBA UPDATE BAT ACCESS
  2009. MJN CBM4 IF CANNOT GET *BATI* INTERLOCK
  2010. CBM3 SOD SX+1
  2011. NJP CBM2 IF MORE ENTRIES
  2012. CBM4 UJP CBM1 CHECK NEXT BRT
  2013. CCI SPACE 4,10
  2014. ** CCI - CHECK FOR CONFLICTING *BDT* INTERLOCKS.
  2015. *
  2016. * EXIT (A) = 0, IF NO BDT INTERLOCKS ARE HELD BY OTHER MF-S.
  2017. *
  2018. * USES T8, FN - FN+4.
  2019. *
  2020. * CALLS CBD, SLA.
  2021. *
  2022. * MACROS READEM.
  2023.  
  2024.  
  2025. CCI SUBR ENTRY/EXIT
  2026. LDN DAET
  2027. RJM SLA
  2028. READEM 1,FN READ DAET POINTER
  2029. LDD FN+4 NUMBER OF BDT ENTRIES
  2030. STD WC
  2031. RJM CBD SET ADDRESS OF BDT
  2032. READEM *,TBUF READ BDT
  2033. LDC TBUF-5 INITIALIZE SEARCH ADDRESS
  2034. STD T8
  2035. CCI1 LDN 5 ADVANCE TO NEXT BDT ENTRY
  2036. RAD T8
  2037. LDI T8
  2038. ZJN CCI3 IF ERROR PROCESSING INTERLOCK NOT SET
  2039. TLMC 4000,MI
  2040. CCI2 NJN CCIX IF INTERLOCKED BY ANOTHER M/F
  2041. CCI3 LDM 1,T8
  2042. ZJN CCI4 IF *RESTORE IN PROGRESS* NOT SET
  2043. TLMC 4000,MI
  2044. NJN CCI2 IF RESTORE IN PROGRESS ON ANOTHER M/F
  2045. CCI4 SOD FN+4
  2046. NJN CCI1 IF MORE ENTRIES TO CHECK
  2047. UJP CCIX RETURN
  2048. CDI SPACE 4,15
  2049. ** CDI - CLEAR DEVICE INTERLOCK.
  2050. *
  2051. * ENTRY (A) = (RQ) = EQUIPMENT MST ADDRESS.
  2052. * (FN) = FIRST WORD OF TRT TO WRITE TO EXTENDED MEMORY.
  2053. * (FN+1) = 1/F, 11/LWA + 1 TO WRITE TO EXTENDED MEMORY.
  2054. * F = 1, IF TO WRITE MRT.
  2055. * (FN+2) = OUTPUT REGISTER ADDRESS TO CLEAR UPPER BYTE.
  2056. *
  2057. * EXIT TO *CFR1*.
  2058. *
  2059. * USES T1, WC, EA - EA+4, OR - OR+4.
  2060. *
  2061. * MACROS WRITEM.
  2062.  
  2063.  
  2064. CDI SHN 3
  2065. ADK TDGL READ TRT ADDRESS
  2066. CRM MBUF,TR
  2067. ADK SDGL-TDGL-3
  2068. CRD EA
  2069. ADK TRLL-SDGL
  2070. CRD OR
  2071.  
  2072. * THE MST INTERLOCK IN CM SHOULD ALWAYS BE CLEAR WHEN
  2073. * PROCESSING A CLEAR DEVICE INTERLOCK REQUEST.
  2074.  
  2075. LDD EA+4
  2076. LPN 77
  2077. NJN * IF INTERLOCK NOT CLEAR
  2078.  
  2079. * CHECK IF TRT WORDS UPDATED.
  2080.  
  2081. LDD FN+1 SET WORD COUNT
  2082. LPC 3777
  2083. SBD FN
  2084. MJN CDI1 IF NO TRT WORDS UPDATED
  2085. NJN CDI2 IF TRT WORDS TO WRITE TO EXTENDED MEMORY
  2086. CDI1 LJM CDI5 SKIP TRT WRITE
  2087.  
  2088. CDI2 STD T8
  2089. LDM MBUF+2
  2090. SBD FN
  2091. SBD T8
  2092. PJN CDI3 IF NOT BEYOND MAXIMUM TRT LENGTH
  2093. RAD T8
  2094. CDI3 LDD FN START OF TRT TO WRITE TO EXTENDED MEMORY
  2095. ADD HN
  2096. ERRNZ TRST-MSST-1 CODE DEPENDS ON VALUE OF CONSTANTS
  2097. RAD EA+1
  2098. SHN -14
  2099. RAD EA
  2100. LDD T8 SAVE TOTAL LENGTH TO WRITE
  2101. STD T9
  2102. LDK BRTL SET DEFAULT WRITE COUNT
  2103. STD WC
  2104. CDI3.1 LDD T8
  2105. SBD WC
  2106. PJN CDI3.2 IF FULL BUFFER
  2107. RAD WC
  2108. ZJN CDI3.3 IF DONE
  2109. LDN 0
  2110. CDI3.2 STD T8
  2111. LDD OR+3 SET ADDRESS TO READ FROM CM
  2112. SHN 14
  2113. ADD OR+4
  2114. ADD FN
  2115. CRM TBUF,WC READ TRT TO PP BUFFER
  2116. SBD FN
  2117. STD OR+4 ADVANCE ADDRESS TO READ FROM
  2118. SHN -14
  2119. STD OR+3
  2120. WRITEM *,TBUF
  2121. LDD WC ADVANCE EM ADDRESS TO WRITE TO
  2122. RAD EA+1
  2123. SHN -14
  2124. RAD EA
  2125. UJN CDI3.1 CONTINUE WRITE LOOP
  2126.  
  2127. * WRITE MRT TO EXTENDED MEMORY.
  2128.  
  2129. CDI3.3 LDD FN+1
  2130. SHN 21-13
  2131. PJP CDI4 IF NO MRT UPDATE
  2132. LDD RQ RESET CM/EM ADDRESSES
  2133. SHN 3
  2134. ADK SDGL
  2135. CRD EA
  2136. ADK TRLL-SDGL
  2137. CRD OR
  2138. LDD FN SET FIRST MRT WORD TO WRITE
  2139. SHN -3
  2140. STD T1
  2141. LDD FN SET WORD COUNT
  2142. ADD T9
  2143. ADN 7
  2144. SHN -3
  2145. SBD T1
  2146. STD WC
  2147. LDD OR+3 READ MRT TO BUFFER
  2148. SHN 14
  2149. ADD OR+4
  2150. ADD T1
  2151. ADM MBUF+2
  2152. CRM TBUF,WC
  2153. TLDC MRST*100-MSST*100-100,MIH SET MRT ADDRESS
  2154. ADD T1
  2155. RAD EA+1
  2156. SHN -14
  2157. RAD EA
  2158. WRITEM *,TBUF WRITE MRT
  2159. CDI4 LDD RQ RESET ADDRESS OF MST
  2160. SHN 3
  2161. ADK SDGL
  2162. CRD EA
  2163.  
  2164. * RELEASE MST/TRT INTERLOCK.
  2165.  
  2166. CDI5 WRITEM SDGL+1,MBUF
  2167. LDD FN+2 CLEAR OUTPUT REGISTER
  2168. CRD OR
  2169. LDN 0
  2170. STD OR
  2171. LDD FN+2
  2172. CWD OR
  2173. TLDN GLGL-LLLL,ML SET ADDRESS OF LOCAL AREA TO WRITE TO
  2174. RAD EA+1
  2175. SHN -14
  2176. RAD EA
  2177. LDK LLLL SET LOCAL MST LENGTH
  2178. STD T1
  2179. LDD RQ READ LOCAL MST
  2180. SHN 3
  2181. ADK GLGL
  2182. CRM TBUF,T1
  2183. WRITEM LLLL,TBUF
  2184. LJM CFR1 RETURN
  2185. CET SPACE 4,10
  2186. ** CET - CLEAR EXTENDED MEMORY TRACK.
  2187. *
  2188. * ENTRY (A) = NUMBER OF SECTORS TO CLEAR.
  2189. * (EA - EA+1) = ESM ADDRESS TO START CLEARING.
  2190. * (TBUF - TBUF+505) = ZERO SECTOR BUFFER.
  2191.  
  2192.  
  2193. CET SUBR ENTRY/EXIT
  2194. STD T8 SAVE SECTOR COUNT
  2195. LDD HN SET WORD COUNT
  2196. STD WC
  2197. CET1 WRITEM *,TBUF
  2198. LDD WC ADVANCE TO NEXT SECTOR
  2199. RAD EA+1
  2200. SHN -14
  2201. RAD EA
  2202. SOD T8
  2203. NJN CET1 IF MORE SECTORS
  2204. UJN CETX RETURN
  2205. CFI SPACE 4,10
  2206. ** CFI - CLEAR *FATI* FLAG INTERLOCK.
  2207. *
  2208. * ENTRY *FATI* INTERLOCK SET.
  2209. *
  2210. * EXIT *FATI* INTERLOCK CLEARED.
  2211. *
  2212. * MACROS CFLAG, SFA.
  2213.  
  2214.  
  2215. CFI SUBR ENTRY/EXIT
  2216. CFLAG FATI RELEASE FAT INTERLOCK
  2217. SFA FNT,OR+4 SET FNT ADDRESS
  2218. UJN CFIX RETURN
  2219. CSZ SPACE 4,10
  2220. ** CSZ - CREATE SECTOR OF ZERO WORDS.
  2221. *
  2222. * USES CM - CM+1.
  2223.  
  2224.  
  2225. CSZ SUBR ENTRY/EXIT
  2226. LDC TBUF SET START OF SECTOR
  2227. STD CM
  2228. LDC 505 SET LENGTH TO CLEAR
  2229. STD CM+1
  2230. CSZ1 LDN 0
  2231. STI CM
  2232. AOD CM
  2233. SOD CM+1
  2234. NJN CSZ1 IF MORE TO CLEAR
  2235. UJN CSZX RETURN
  2236. GBA SPACE 4,10
  2237. ** GBA - GET BAT ADDRESS.
  2238. *
  2239. * ENTRY (A) = EST ORDINAL.
  2240. *
  2241. * EXIT (EA - EA+1) = EM ADDRESS OF BAT.
  2242. *
  2243. * USES T9, CM - CM +4, EA - EA+4.
  2244.  
  2245.  
  2246. GBA SUBR ENTRY/EXIT
  2247. SFA EST
  2248. ADK EQDE
  2249. CRD CM
  2250. LDD CM+4 GET EM ADDRESS OF BAT
  2251. SHN 3
  2252. ADK NVGL
  2253. CRD EA-1 (THIS DESTROYS T9)
  2254. UJN GBAX RETURN
  2255. GBI SPACE 4,10
  2256. ** GBI - GET BATI INTERLOCK.
  2257. *
  2258. * EXIT (A) .LT. 0 AND (BIAA) INCREMENTED IF CANNOT GET
  2259. * *BATI* INTERLOCK AFTER *NBIR* RETRIES.
  2260. *
  2261. * MACROS DELAY, SFLAG.
  2262.  
  2263.  
  2264. GBI3 AOM BIAA INCREMENT STATISTIC
  2265. LCN 0 SET FAILURE CONDITION
  2266.  
  2267. GBI SUBR ENTRY/EXIT
  2268. LDN NBIR SET MAXIMUM RETRY COUNT
  2269. STM GBIA
  2270. UJN GBI2 REQUEST INTERLOCK
  2271.  
  2272. GBI1 SOM GBIA
  2273. MJN GBI3 IF RETRIES EXHAUSTED
  2274. DELAY
  2275. GBI2 SFLAG BATI,GBI1
  2276. LDN 0
  2277. UJN GBIX RETURN
  2278.  
  2279. GBIA CON 0 RETRY COUNT
  2280. IBF SPACE 4,10
  2281. ** IBF - ISSUE *BFMM* FUNCTION.
  2282. *
  2283. * ENTRY (FN - FN+4) = REQUEST.
  2284. * (A) = 6/ OPERATION CODE,6/ERROR CODE.
  2285. *
  2286. * EXIT (OR - OR+4) = *BFMM* REPLY.
  2287. *
  2288. * USES CM - CM+4, FS - FS+4.
  2289. *
  2290. * MACROS MONITOR.
  2291.  
  2292.  
  2293. IBF SUBR ENTRY/EXIT
  2294. STD CM+4 SET OPERATION CODE/ERROR CODE
  2295. LDN ZERL CLEAR FNT ENTRY
  2296. CRD FS
  2297. LDD FN SET EST ORDINAL
  2298. STD FS
  2299. LDD FN+1 SET CURRENT TRACK
  2300. STD FS+2
  2301. LDN 0 CLEAR CP
  2302. STD CM+1
  2303. STD CM+2
  2304. LDD MA SET MB AS FNT ENTRY ADDRESS
  2305. STD CM+3
  2306. ADN 1
  2307. CWD FS WRITE PSEUDO FNT ENTRY WORD
  2308. MONITOR BFMM
  2309. UJN IBFX RETURN
  2310. PBR SPACE 4,15
  2311. ** PBR - PROCESS BAT REQUESTS.
  2312. *
  2313. * EXIT ALL ENTRIES IN *MTBT* PROCESSED.
  2314. * BRT REWRITTEN TO EM AND STATISTICS UPDATED IF ANY
  2315. * ENTRIES WERE ADDED.
  2316. *
  2317. * USES IN, OT, CM - CM+4, FS - FS+4.
  2318. *
  2319. * CALLS AEB, CAP, CBA, RBW.
  2320. *
  2321. * MACROS WRITEM.
  2322.  
  2323.  
  2324. PBR3 LDM BRTT
  2325. ZJN PBRX IF NO BRT ENTRIES ADDED
  2326. TLDN 0,MI REWRITE BRT
  2327. RJM CBA
  2328. WRITEM *,BRTB
  2329. LDM BRTB SET CURRENT ENTRY COUNT
  2330. STM BREC
  2331.  
  2332. PBR SUBR ENTRY/EXIT
  2333. TLDC MTIN,PQ READ *MTBT* BUFFER POINTERS
  2334. CRD CM
  2335. ADK MTOT-MTIN
  2336. CRD FS
  2337. LDD CM+4 SAVE IN
  2338. STD IN
  2339. LDD FS+4 SAVE OUT
  2340. STD OT
  2341. PBR1 LDM BRTF
  2342. NJN PBR3 IF BRT IS NOW FULL
  2343. LDD IN
  2344. SBD OT
  2345. ZJN PBR3 IF BUFFER IS EMPTY
  2346. TLDC MTBT,PQ READ NEXT ENTRY
  2347. ADD OT
  2348. CRD FN
  2349. RJM GBI GET *BATI* INTERLOCK
  2350. MJP PBR3 IF CANNOT GET *BATI* INTERLOCK
  2351. AOM BATT INCREMENT BAT REQUEST COUNT
  2352. RJM RBW READ BAT WORD
  2353. RJM CAP CHECK ACCESS PERMISSIONS
  2354. PJN PBR2 IF REQUEST COMPLETE
  2355. RJM AEB ADD ENTRY TO BRT
  2356. PBR2 TLDC MTOT,PQ UPDATE OUT POINTER
  2357. CRD CM
  2358. AOD OT
  2359. LPN 77
  2360. STD OT
  2361. STD CM+4
  2362. TLDC MTOT,PQ
  2363. CWD CM
  2364. UJP PBR1 CHECK NEXT BUFFER ENTRY
  2365. RBD SPACE 4,15
  2366. ** RBD - READ *BDT* ENTRY.
  2367. *
  2368. * ENTRY (OR+4) = EST ORDINAL.
  2369. *
  2370. * EXIT (FN - FN+4) = *BDT* ENTRY FOR SPECIFIED DEVICE.
  2371. * (EA - EA+1) = ESM ADDRESS FOR *BDT* ENTRY.
  2372. *
  2373. * USES CM - CM+4, EA - EA+1.
  2374. *
  2375. * CALLS CBD.
  2376. *
  2377. * MACROS READEM, SFA.
  2378.  
  2379.  
  2380. RBD SUBR ENTRY/EXIT
  2381. RJM CBD GET ESM ADDRESS OF BDT
  2382. LDD OR+4 EST ORDINAL
  2383. SFA EST
  2384. ADK EQDE
  2385. CRD CM
  2386. LDD CM+4 READ MST DRIVER WORD
  2387. SHN 3
  2388. ADK MDGL
  2389. CRD CM
  2390. LDD CM ISOLATE DAT INDEX
  2391. LPC 377
  2392. RAD EA+1 ADVANCE TO SELECTED ENTRY
  2393. SHN -14
  2394. RAD EA
  2395. READEM 1,FN READ BDT ENTRY
  2396. UJN RBDX RETURN
  2397. RBR SPACE 4,25
  2398. ** RBR - REPROCESS BRT REQUESTS.
  2399. *
  2400. * ENTRY (BRTF) = *NBRR*, IF BRT IS FULL.
  2401. * = 0, OTHERWISE.
  2402. *
  2403. * EXIT ALL BRT ENTRY REQUESTS RETRIED.
  2404. * IF ANY CHANGES, BRT IS REPACKED, HEADER UPDATED, AND
  2405. * THE TABLE IS REWRITTEN TO EM.
  2406. * IF THE BRT WAS FULL ON ENTRY THE FIRST *NBRR* ENTRIES
  2407. * ARE REJECTED BEFORE PROCESSING THE REST.
  2408. * (BREC) = CURRENT BRT ENTRY COUNT.
  2409. *
  2410. * USES T1, T8.
  2411. *
  2412. * CALLS CAP, CBA, IBF, RBW, UBH.
  2413. *
  2414. * MACROS READEM, WRITEM.
  2415. *
  2416. * NOTE - THIS ROUTINE MUST ALWAYS READ THE BRT.
  2417. * IF BRT PROCESSING IS DISABLED, WE ASSUME THAT ANY
  2418. * REQUESTS FOR BAT ACCESS WILL BE GRANTED AND NO ENTRIES
  2419. * WILL NEED TO BE ADDED TO THE BRT.
  2420.  
  2421.  
  2422. RBR8 LDM RBRC
  2423. ZJN RBR10 IF BRT NOT CHANGED
  2424. LDM RBRB SET START OF BRT TO CLEAR
  2425. STM RBRD
  2426. RBR9 LDN ZERL CLEAR VACATED PORTION OF BRT
  2427. CRM **,ON
  2428. RBRD EQU *-1
  2429. LDN 5
  2430. RAM RBRD
  2431. SBM RBRA
  2432. MJN RBR9 IF MORE TO CLEAR
  2433. RJM UBH UPDATE BRT HEADER
  2434. LDN 0 CLEAR BRT CHANGED FLAG
  2435. STM RBRC
  2436. TLDN 0,MI REWRITE BRT
  2437. RJM CBA
  2438. WRITEM *,BRTB
  2439. RBR10 LDM BRTB SET ENTRY COUNT
  2440. RBR11 STM BREC
  2441.  
  2442. RBR SUBR ENTRY/EXIT
  2443. LDM BRTP
  2444. ZJN RBRX IF BRT PROCESSING DISABLED
  2445. TLDN 0,MI READ BRT
  2446. RJM CBA
  2447. READEM *,BRTB
  2448. LDM BRTB CHECK BRT ENTRY COUNT
  2449. ZJN RBR11 IF EMPTY
  2450. STD T8
  2451. LDM BRTF INDICATE BRT FULL PROCESSING
  2452. STM RBRE
  2453. LDN 0
  2454. STM BRTF CLEAR BRT FULL INDICATOR
  2455. LDC BRTB INITIALIZE ADDRESSES
  2456. STM RBRA NEXT ENTRY TO READ
  2457. ADN 5
  2458. STM RBRB NEXT ENTRY TO WRITE
  2459. RBR1 LDN 5 ADVANCE TO READ NEXT ENTRY
  2460. RAM RBRA
  2461. SOD T8
  2462. RBR2 MJP RBR8 IF DONE
  2463. LDD MA
  2464. CWM **,ON
  2465. RBRA EQU *-1
  2466. SBN 1
  2467. CRD FN READ NEXT BRT ENTRY
  2468. LDC **
  2469. RBRE EQU *-1
  2470. NJN RBR5 IF BRT FULL PROCESSING
  2471. RJM GBI GET *BATI* INTERLOCK
  2472. MJN RBR2 IF CANNOT GET *BATI* INTERLOCK
  2473. RJM RBW READ BAT WORD
  2474. RJM CAP
  2475. MJN RBR6 IF REQUEST NOT PROCESSED
  2476. RBR3 SOM BRTB DECREMENT BRT ENTRY COUNT
  2477. AOM RBRC INDICATE BRT CHANGED
  2478. RBR4 UJN RBR1 PROCESS NEXT ENTRY
  2479.  
  2480. RBR5 SOM RBRE
  2481. ERRNZ BMCW-BMCR-1
  2482. LDD FN+2 SET *BFMM* OPERATION CODE
  2483. SHN -13
  2484. ADN BMCR
  2485. SHN 6
  2486. ADN 1 ADD ERROR CODE
  2487. RJM IBF ISSUE *BFMM* FUNCTION
  2488. AOM BRTR INCREMENT REJECTED ENTRIES
  2489. UJN RBR3 CONTINUE AS IF ENTRY PROCESSED
  2490.  
  2491. RBR6 LDM RBRA UPDATE MASKS OF MACHINES W/CONFLICTS
  2492. STD T1
  2493. LDD FN+2
  2494. LMM 2,T1
  2495. ZJN RBR6.1 IF NO CHANGE IN MACHINE MASKS
  2496. LDD FN+2
  2497. STM 2,T1
  2498. AOM RBRC INDICATE BRT CHANGED
  2499. RBR6.1 LDM RBRB
  2500. SBM RBRA
  2501. ZJN RBR7 IF NO NEED TO MOVE THIS ENTRY
  2502. LDD MA MOVE ENTRY
  2503. CWD FN
  2504. CRM **,ON
  2505. RBRB EQU *-1
  2506. AOM RBRC INDICATE BRT CHANGED
  2507. RBR7 LDN 5 ADVANCE ADDRESS FOR WRITE
  2508. RAM RBRB
  2509. UJP RBR4 PROCESS NEXT ENTRY
  2510.  
  2511. RBRC CON 0 NON-ZERO IF BRT CHANGED
  2512. RBW SPACE 4,15
  2513. ** RBW - READ BAT WORD.
  2514. *
  2515. * ENTRY (FN - FN+4) = REQUEST (FROM *MTBT* QUEUE OR BRT).
  2516. *
  2517. * EXIT (T2) = READ MASK FOR THIS M/F.
  2518. * (T3) = WRITE MASK FOR THIS M/F.
  2519. * (T6) = ADDRESS OF BYTE TO UPDATE.
  2520. * (EA - EA+1) = EM ADDRESS OF WORD TO UPDATE.
  2521. * (TBUF - TBUF+4) = BAT WORD CONTAINING BYTE TO UPDATE.
  2522. *
  2523. * CALLS GBA.
  2524. *
  2525. * MACROS READEM.
  2526.  
  2527.  
  2528. RBW SUBR ENTRY/EXIT
  2529. LDD FN
  2530. RJM GBA GET EM ADDRESS OF BAT FOR EQUIPMENT
  2531. LDD FN+1 CALCULATE OFFSET OF WORD TO READ
  2532. LPC 3777
  2533. SHN -2
  2534. RAD EA+1
  2535. SHN -14
  2536. RAD EA
  2537. READEM 1,TBUF READ BAT WORD
  2538. TLDN 0,MM
  2539. SHN 4
  2540. STD T3 WRITE MASK
  2541. SHN 4
  2542. STD T2 READ MASK
  2543. LDD FN+1 ISOLATE BYTE TO UPDATE
  2544. LPN 3
  2545. ADC TBUF
  2546. STD T6
  2547. UJP RBWX RETURN
  2548. SDI SPACE 4,10
  2549. ** SDI - SET DEVICE INTERLOCK.
  2550. *
  2551. * ENTRY (OR - OR+4) = OUTPUT REGISTER.
  2552. *
  2553. * EXIT TO *FNR* IF DEVICE BUSY.
  2554. * TO *CPF* IF SUCCESSFUL.
  2555. *
  2556. * USES WC, CM - CM+4, EA - EA+4, OR - OR+4.
  2557. *
  2558. * MACROS CFLAG, READED, SFA, SFLAG.
  2559.  
  2560.  
  2561.  
  2562. SDI6 SFLAG COMI INITIATE EXTENDED MEMORY ERROR RECOVERY
  2563. SDI7 CFLAG TRTI
  2564. SDI8 UJP FNR QUEUE FUNCTION
  2565.  
  2566. SDI LDD OR+1 READ EST ENTRY
  2567. LPC 777
  2568. SFA EST
  2569. ADK EQDE
  2570. CRD FS
  2571. LDD FS+4
  2572. SHN 3
  2573. ADK SDGL
  2574. CRD EA
  2575. LDD EA+4
  2576. LPN 76
  2577. NJP SDI8 IF FUNCTION IN PROGRESS
  2578. SFLAG TRTI,SDI8 SET TRT FLAG INTERLOCK
  2579. READEM SDGL+1,MBUF,SDI6
  2580. LDM MBUF+SDGL*5+4
  2581. LPN 77
  2582. SDI1 NJP SDI7 IF DEVICE INTERLOCKED
  2583. LDM MBUF+SDGL*5 CHECK FOR CORRECT EXTENDED MEMORY ADDRESS
  2584. LMD EA
  2585. ADM MBUF+SDGL*5+1
  2586. LMD EA+1
  2587. NJN SDI1 IF BAD ADDRESS READ, LOOP
  2588. TLDN 0,MI2 SET MACHINE INDEX * 2 IN EXTENDED MEMORY
  2589. RAM MBUF+SDGL*5+4
  2590. LMD EA+4
  2591. SCN 77
  2592. NJN SDI2 IF READ OF MST/TRT NEEDED
  2593. LDD EA+3
  2594. LMM MBUF+SDGL*5+3
  2595. NJN SDI2 IF READ OF MST/TRT NEEDED
  2596. LDD EA+2
  2597. LMM MBUF+SDGL*5+2
  2598. ZJP SDI3 IF NO READ OF MST/TRT NEEDED
  2599. SDI2 LDM MBUF+TDGL*5+2 SET TRT WORD COUNT
  2600. STD T8
  2601. LDD HN ADVANCE TO TRT ADDRESS
  2602. RAD EA+1
  2603. SHN -14
  2604. RAD EA
  2605. LDD FS+4 SET CM ADDRESS
  2606. SHN 3
  2607. ADK TRLL
  2608. CRD FN
  2609. LDK BRTL SET FULL BUFFER WRITE WORD COUNT
  2610. STD WC
  2611. SDI2.1 LDD T8
  2612. SBD WC
  2613. PJN SDI2.2 IF FULL BUFFER TO WRITE
  2614. RAD WC
  2615. ZJN SDI2.3 IF DONE
  2616. LDN 0
  2617. SDI2.2 STD T8
  2618. READEM *,TBUF,SDI6 READ TRT
  2619. LDD FN+3
  2620. SHN 14
  2621. ADD FN+4
  2622. CWM TBUF,WC COPY TO CM
  2623. STD FN+4 ADVANCE CM ADDRESS
  2624. SHN -14
  2625. STD FN+3
  2626. LDD WC ADVANCE EM ADDRESS
  2627. RAD EA+1
  2628. SHN -14
  2629. RAD EA
  2630. UJN SDI2.1 CONTINUE COPY LOOP
  2631.  
  2632. SDI2.3 LDD FS+4 RESET EM ADDRESS
  2633. SHN 3
  2634. ADK SDGL
  2635. CRD EA
  2636. LDN SDGL+1 RESET MST WRITE WORD COUNT
  2637. STD WC
  2638. LDD HN ADVANCE UPDATE COUNTER
  2639. RAM MBUF+SDGL*5+4
  2640. SHN -14
  2641. SDI3 ZJN SDI4 IF NO OVERFLOW
  2642. RAM MBUF+SDGL*5+3
  2643. SHN -14
  2644. RAM MBUF+SDGL*5+2
  2645.  
  2646. * WRITE INTERLOCKED MST TO EXTENDED MEMORY.
  2647.  
  2648. SDI4 WRITEM *,MBUF WRITE INTERLOCKED MST
  2649. CFLAG TRTI CLEAR *TRTI* INTERLOCK
  2650. LDD FS+4 WRITE MST WORDS TO CM
  2651. SHN 3
  2652. ADK TDGL WRITE UPDATED MST WORDS
  2653. ERRNZ SDGL-TDGL-2 CODE DEPENDS ON VALUE OF TAG
  2654. CWM MBUF,TR *SDGL* MUST BE LAST WORD WRITTEN TO CM
  2655. LJM CPF PASS FUNCTION TO *CPUMTR*
  2656. SEA SPACE 4,10
  2657. ** SEA - SET ESM TRACK ADDRESS.
  2658. *
  2659. * ENTRY (A) = TRACK NUMBER IN EXTENDED MEMORY.
  2660. *
  2661. * EXIT (A) = ESM ADDRESS OF TRACK.
  2662. *
  2663. * USES T1.
  2664.  
  2665.  
  2666. SEA SUBR ENTRY/EXIT
  2667. LPC 3777
  2668. STD T1
  2669. SHN 6
  2670. ADD T1 (101B * TRACK)
  2671. SEAA SHN 4 (2020B * TRACK)
  2672. * SHN 4+EMSC
  2673. SEAB ADC 20
  2674. * ADC (NUMBER OF SECTORS/TRACK)
  2675. UJN SEAX RETURN
  2676. SLA SPACE 4,10
  2677. ** SLA - SET LABEL ADDRESS.
  2678. *
  2679. * ENTRY (A) = RELATIVE ADDRESS IN *ETLT* SECTOR OF LABEL.
  2680. *
  2681. * EXIT (EA - EA+1) = ABSOLUTE LABEL ADDRESS.
  2682.  
  2683.  
  2684. SLA SUBR ENTRY/EXIT
  2685. SLAA ADC ETLT*100B
  2686. * ADC ETLT*100B+(SECTORS PER TRACK)
  2687. STD EA+1
  2688. SHN -14
  2689. STD EA
  2690. UJN SLAX RETURN
  2691. UBA SPACE 4,10
  2692. ** UBA - UPDATE BAT ACCESS.
  2693. *
  2694. * ENTRY (UBAA) = *BFMM* REPLY STATUS.
  2695. * (FN - FN+2) = REQUEST.
  2696. *
  2697. * EXIT (A) .LT. 0 IF CANNOT GET *BATI* INTERLOCK.
  2698. *
  2699. * CALLS CBI, GBI, RBW.
  2700. *
  2701. * MACROS WRITEM.
  2702.  
  2703.  
  2704. UBA SUBR ENTRY/EXIT
  2705. RJM GBI GET *BATI* INTERLOCK
  2706. MJN UBAX IF CANNOT GET *BATI* INTERLOCK
  2707. RJM RBW READ BAT WORD
  2708. LDC **
  2709. UBAA EQU *-1 *BFMM* REPLY STATUS
  2710. SHN -7
  2711. ZJN UBA1 IF OK TO RELEASE ACCESS
  2712.  
  2713. * IF THIS MF DOES NOT HAVE WRITE PERMISSION, HANG RATHER THAN
  2714. * SETTING *URW*.
  2715.  
  2716. LDI T6
  2717. TLPC 0,WM
  2718. NJN UBA0 IF WRITE MODE ACCESS BIT SET
  2719. MONITOR HNGM HANG PP
  2720.  
  2721. UBA0 LDI T6 SET *URW* BIT
  2722. SCN 10
  2723. ADN 10
  2724. STI T6
  2725. UJN UBA4 UPDATE BAT
  2726.  
  2727. UBA1 LDD FN+2
  2728. SHN -13
  2729. ZJN UBA2 IF OTHER M/F WANTS READ ACCESS
  2730. LDI T6
  2731. TLPC 0,RWMC CLEAR READ/WRITE FOR THIS M/F
  2732. SCN 10 CLEAR *URW*
  2733. UJN UBA3 UPDATE BAT WORD
  2734.  
  2735. UBA2 LDI T6
  2736. TLPC 0,RWMC CLEAR READ/WRITE FOR THIS M/F
  2737. LMD T2 ADD READ ACCESS
  2738. UBA3 STI T6
  2739. UBA4 WRITEM 1,TBUF
  2740. RJM CBI CLEAR *BATI* INTERLOCK
  2741. UJP UBAX RETURN
  2742. UBH SPACE 4,10
  2743. ** UBH - UPDATE BRT HEADER.
  2744. *
  2745. * ENTRY BRT CHANGED DURING REPROCESSING.
  2746. * (RBRB) = ADDRESS+5 OF LAST BRT ENTRY.
  2747. *
  2748. * EXIT BRT HEADER UPDATED.
  2749. *
  2750. * USES T1, T8, T9.
  2751.  
  2752.  
  2753. UBH SUBR ENTRY/EXIT
  2754. LDN MXMF
  2755. STD T1
  2756. UBH1 SOD T1
  2757. MJN UBHX IF ALL MAINFRAMES PROCESSED
  2758. LDN 0 INITIALIZE HEADER BYTE FOR M/F
  2759. STM BRTB+1,T1
  2760. LDM TMMK,T1 SET MACHINE MASK
  2761. STM UBHA
  2762. TLMN 0,MM
  2763. ZJN UBH1 IF THIS MAINFRAME
  2764. LDM RBRB INITIALIZE ADDRESS TO START SEARCH
  2765. STD T8
  2766. LDM BRTB BRT ENTRY COUNT
  2767. ADN 1
  2768. STD T9
  2769. UBH2 LCN 5 ADVANCE TO NEXT ENTRY
  2770. RAD T8
  2771. SOD T9
  2772. ZJN UBH1 IF ALL ENTRIES CHECKED
  2773. LDM 2,T8
  2774. LPC **
  2775. UBHA EQU *-1
  2776. ZJN UBH2 IF MASK FOR THIS M/F NOT SET
  2777. LDD T9 SET HEADER ENTRY FOR THIS M/F
  2778. STM BRTB+1,T1
  2779. UJP UBH1 PROCESS NEXT MAINFRAME
  2780. UMS SPACE 4,10
  2781. ** UPDATE *MTE* STATISTICS.
  2782. *
  2783. * EXIT STATISTICAL DATA AREA UPDATED.
  2784. * BRT STATISTICS COUNTERS CLEARED.
  2785. *
  2786. * USES CM - CM+4, FN - FN+4, FS - FS+4.
  2787.  
  2788.  
  2789. UMS SUBR ENTRY/EXIT
  2790. TLDC DM1S,SDA READ STATSTICS WORDS
  2791. CRD CM
  2792. ADK DM2S-DM1S
  2793. CRD FN
  2794. LDM BREC CURRENT BRT ENTRY COUNT
  2795. STD CM
  2796. SBD CM+1
  2797. MJN UMS1 IF NOT NEW WORST CASE
  2798. RAD CM+1
  2799. UMS1 LDM BRTR BRT ENTRIES REJECTED
  2800. RAD CM+2
  2801. LDM BRTT TOTAL BRT ENTRIES
  2802. RAD CM+4
  2803. SHN -14
  2804. RAD CM+3
  2805. LDK RTCL
  2806. CRD FS
  2807. LDD FS+4
  2808. SBM CYTM
  2809. PJN UMS2 IF NO OVERFLOW
  2810. ADC 10000
  2811. UMS2 STD FN CURRENT CYCLE TIME
  2812. RAM CYTM
  2813. LDD FN
  2814. SBD FN+1
  2815. MJN UMS3 IF NOT NEW WORST CASE
  2816. RAD FN+1
  2817. UMS3 LDM BIAA *BATI* INTERLOCK ATTEMPTS ABANDONED
  2818. RAD FN+2
  2819. LDM BATT TOTAL BAT REQUESTS
  2820. RAD FN+4
  2821. SHN -14
  2822. RAD FN+3
  2823. TLDC DM1S,SDA WRITE STATISTICS WORDS
  2824. CWD CM
  2825. ADK DM2S-DM1S
  2826. CWD FN
  2827. LDN ZERL CLEAR CURRENT TOTALS
  2828. CRM BRTS,ON
  2829. UJP UMSX RETURN
  2830. SPACE 4,10
  2831. * COMMON DECKS.
  2832.  
  2833.  
  2834. FNT$ EQU 1 SELECT FNT PROCESSOR
  2835. IFP$ EQU 1 SELECT REMOTE INITIALIZATION
  2836. *CALL COMPGFP
  2837. TITLE EXTENDED MEMORY INTERFACE ROUTINES.
  2838. FUNCTION SPACE 4,15
  2839. ** FUNCTION - ISSUE EXTENDED MEMORY FUNCTION.
  2840. *
  2841. * THE FUNCTION MACRO ISSUES A FUNCTION TO THE ESM LOW SPEED
  2842. * PORT, AS WELL AS GENERATING A REMOTE TABLE FOR THE
  2843. * DETERMINATION OF THE OPERATION (READ, WRITE, FLAG) BEING
  2844. * PERFORMED.
  2845. *
  2846. * FUNCTION CD,RTN
  2847. *
  2848. * ENTRY *CD* = FUNCTION CODE TO ISSUE.
  2849. * *ST* = STATUS.
  2850. * *RD* = READ.
  2851. * *WT* = WRITE.
  2852. * *RTN* = ROUTINE WHICH ISSUES FUNCTION.
  2853. *
  2854. * CALLS SFN.
  2855.  
  2856.  
  2857. PURGMAC FUNCTION
  2858.  
  2859. FUNCTION MACRO CD,OP
  2860. LOCAL A
  2861. LDN CD_FN
  2862. RJM SFN
  2863. A BSS 0
  2864. .SFN MICRO 1,, ".SFN"A,OP,
  2865. FUNCTION ENDM
  2866.  
  2867. .SFN MICRO 1,, INITIALIZE FUNCTION CALLER MICRO
  2868. RDW SPACE 4,15
  2869. ** RDW - READ EXTENDED MEMORY WORDS.
  2870. *
  2871. * ENTRY (A) = BUFFER ADDRESS FOR SECTOR.
  2872. * (EA - EA+1) = ADDRESS TO READ FROM.
  2873. * (WC) = WORD COUNT OF TRANSFER.
  2874. *
  2875. * EXIT (A) .LT. 0, IF UNRECOVERABLE PARITY ERROR.
  2876. *
  2877. * USES BR.
  2878. *
  2879. * CALLS CKS.
  2880. *
  2881. * MACROS FUNCTION.
  2882.  
  2883.  
  2884. RDW2 LDN RDFN
  2885. RJM CKS CHECK STATUS
  2886.  
  2887. RDW SUBR ENTRY/EXIT
  2888. STM RDWA SAVE PP BUFFER ADDRESS
  2889. FUNCTION RD,RDW ISSUE READ FUNCTION
  2890. OAM EA,CH OUTPUT ADDRESS
  2891. LDD WC SET BYTE COUNT TO INPUT
  2892. SHN 2
  2893. ADD WC
  2894. IAM *,CH
  2895. RDWA EQU *-1 READ BUFFER ADDRESS
  2896. STD BR SAVE BYTE COUNT
  2897. DCN CH+40
  2898. UJN RDW2 CHECK STATUS
  2899. WTW SPACE 4,15
  2900. ** WTW - WRITE WORDS TO EXTENDED MEMORY.
  2901. *
  2902. * ENTRY (A) = BYTE ADDRESS OF DATA TO WRITE.
  2903. * (EA - EA+1) =ADDRESS TO READ FROM.
  2904. * (WC) = WORD COUNT OF TRANSFER.
  2905. *
  2906. * EXIT (A) .LT. 0, IF UNRECOVERABLE PARITY ERROR.
  2907. *
  2908. * USES BR.
  2909. *
  2910. * CALLS CKS.
  2911. *
  2912. * MACROS FUNCTION.
  2913.  
  2914.  
  2915. WTW2 LDN WTFN
  2916. RJM CKS CHECK STATUS OF WRITE
  2917.  
  2918. WTW SUBR ENTRY/EXIT
  2919. STM WTWA SET BUFFER ADDRESS
  2920. FUNCTION WT,WTW ISSUE WRITE FUNCTION
  2921. OAM EA,CH OUTPUT ADDRESS
  2922. LDD WC SET BYTE COUNT OF TRANSFER
  2923. SHN 2
  2924. ADD WC
  2925. OAM *,CH
  2926. WTWA EQU *-1
  2927. FJM *,CH IF DATA NOT ACCEPTED
  2928. STD BR SAVE BYTE COUNT
  2929. DCN CH+40
  2930. UJN WTW2 CHECK STATUS
  2931. IFR SPACE 4,10
  2932. ** IFR - ISSUE FLAG FUNCTION.
  2933. *
  2934. * ENTRY (A) = ADDRESS OF FLAG FUNCTION WORDS.
  2935. *
  2936. * EXIT (A) = 0, IF FLAG FUNCTION PERFORMED.
  2937. *
  2938. * USES ST.
  2939. *
  2940. * MACROS FUNCTION.
  2941.  
  2942.  
  2943. IFR SUBR ENTRY/EXIT
  2944. STM IFRA
  2945. FUNCTION RD,IFR ISSUE READ FUNCTION
  2946. OAM **,CH OUTPUT ADDRESS
  2947. IFRA EQU *-1
  2948. FJM *,CH IF CHANNEL STILL FULL
  2949. DCN CH+40
  2950. FUNCTION ST,IFR ISSUE STATUS FUNCTION
  2951. IAN CH+40
  2952. DCN CH+40
  2953. STD ST
  2954. LMN 2
  2955. UJN IFRX RETURN STATUS
  2956. CKS SPACE 4,10
  2957. ** CKS - CHECK STATUS OF TRANSFER.
  2958. *
  2959. * ENTRY (BR) = BYTES REMAINING IN TRANSFER.
  2960. *
  2961. * EXIT (A) = 0, IF NO ERROR.
  2962. *
  2963. * MACROS EXECUTE, FUNCTION.
  2964.  
  2965.  
  2966. CKS SUBR ENTRY/EXIT
  2967. STM CKSA SAVE CALLER FUNCTION
  2968. CKS1 FUNCTION ST,CKS ISSUE STATUS FUNCTION
  2969. IAN CH+40
  2970. DCN CH+40
  2971. STD ST
  2972. LMN 2
  2973. ADD BR CHECK REMAINING BYTE COUNT
  2974. ZJN CKSX IF COMPLETE TRANSFER
  2975. LDD ST
  2976. LPN 10
  2977. NJN CKS1 IF WRITE IN PROGRESS BIT SET
  2978. ERR EXECUTE 7EA PROCESS INCOMPLETE TRANSFER / STATUS ERROR
  2979.  
  2980. CKSA CON 0 CALLER FUNCTION CODE
  2981. REC SPACE 4,10
  2982. ** REC - RECOVERED ERROR PROCESSOR.
  2983. *
  2984. * ENTRY (RECA) = EXIT ADDRESS.
  2985. *
  2986. * USES RC.
  2987. *
  2988. * WHEN AN ESM ERROR OCCURS THE EXIT ADDRESS IS SAVED IN *RECA*,
  2989. * AND THE EXIT IS REPLACED WITH A JUMP TO *REC*. THIS MAKES
  2990. * IT POSSIBLE FOR *REC* TO RESET THE RETRY COUNT TO ZERO FOR
  2991. * THE NEXT ERROR.
  2992.  
  2993.  
  2994. REC LDC 0 GET EXIT ADDRESS
  2995. RECA EQU *-1 (EXIT ADDRESS)
  2996. STD T1
  2997. LDN 0
  2998. STD RC RESET RETRY COUNT
  2999. STM RECA CLEAR EXIT ADDRESS
  3000. LJM 0,T1 RETURN
  3001. SFN SPACE 4,10
  3002. ** SFN - SELECT FUNCTION.
  3003. *
  3004. * ENTRY (A) = FUNCTION CODE.
  3005. *
  3006. * EXIT (A) = 2.
  3007. * CHANNEL ACTIVATED.
  3008. * TO *ERR* IF FUNCTION TIMEOUT.
  3009.  
  3010.  
  3011. SFN2 LDN 2
  3012. ACN CH+40
  3013.  
  3014. SFN SUBR ENTRY/EXIT
  3015. ADC SC
  3016. FAN CH+40
  3017. SFN1 IJM SFN2,CH IF FUNCTION ACCEPTED
  3018. SBN 77
  3019. PJN SFN1 IF NOT TIMED OUT
  3020. UJP ERR PROCESS ERROR
  3021. DSW SPACE 4,10
  3022. ** DSW - DRIVER SERVICE PROCESSING.
  3023. *
  3024. * ENTRY (A) = 1, RESERVE CHANNEL.
  3025. * (A) = 0, RELEASE CHANNEL.
  3026. *
  3027. * USES T0, T1, CM - CM+4.
  3028. *
  3029. * MACROS MONITOR.
  3030.  
  3031.  
  3032. DSW2 RAI T0 UPDATE CHANNEL INSTRUCTION
  3033. AOD CM+4
  3034. DSW3 LDI CM+4
  3035. STD T0
  3036. LDD T4
  3037. DSWA SBN CH
  3038. NJN DSW2 IF MORE INSTRUCTIONS TO MODIFY
  3039.  
  3040. DSW SUBR ENTRY/EXIT
  3041. STD CM+3
  3042. LMN 1
  3043. STD CM
  3044. LDD MA WRITE *DSWM* PARAMETERS
  3045. CWD T4
  3046. MONITOR DSWM
  3047. LDD CM+4
  3048. SBD T4
  3049. ZJN DSWX IF NOT TO MODIFY INSTRUCTIONS
  3050. RAD T4
  3051. LDC ADNI-1
  3052. STM MTEB
  3053. DSW1 AOM MTEB
  3054. LCN 5
  3055. RAD CM+4
  3056. PJN DSW1 IF NOT END OF DIVIDE
  3057. ADC LDDI+CM+5
  3058. STM MTEC
  3059. LDC TCHS START OF CHANNEL LIST
  3060. STD CM+4
  3061. LJM DSW3 MODIFY INSTRUCTIONS
  3062. SPACE 4,10
  3063. * CHANNEL TABLE.
  3064.  
  3065.  
  3066. CHTL DSWA TERMINATE CHANNEL TABLE
  3067. TCHS CHTB
  3068.  
  3069. EEMI EQU * END OF EXTENDED MEMORY INTERFACE ROUTINES
  3070. TITLE TABLES.
  3071. TPPR SPACE 4,10
  3072. * TPPR - TABLE OF *MTE* PP REQUESTS.
  3073. *
  3074. * ENTRY = 1 WORD.
  3075. * INDEXED BY MONITOR FUNCTION CODE.
  3076. *
  3077. *T, 12/ ADDR
  3078.  
  3079.  
  3080. TPPR EQU *-CPUM
  3081.  
  3082. DUP MXFNC+1-CPUM,1
  3083. CON HNG
  3084.  
  3085. LIST G
  3086. PPR HERE INSERT REQUEST PROCESSOR ADDRESSES
  3087. LIST *
  3088. ORG TPPR+MXFNC+1
  3089. FLAG SPACE 4,10
  3090. * FLAG BIT SET/CLEAR FUNCTIONS.
  3091.  
  3092.  
  3093. SCOMI VFD 24/40000000+.COMI
  3094. TCOMI VFD 24/60000000+.COMI
  3095. SFATI VFD 24/40000000+.FATI
  3096. CFATI VFD 24/70000000+.FATI
  3097. STRTI VFD 24/40000000+.TRTI
  3098. CTRTI VFD 24/70000000+.TRTI
  3099. SBATI VFD 24/40000000+.BATI
  3100. CBATI VFD 24/70000000+.BATI
  3101. SBDTI VFD 24/40000000+.BDTI
  3102. CBDTI VFD 24/70000000+.BDTI
  3103. SBDRI VFD 24/40000000+.BDRI
  3104. TBDRI VFD 24/60000000+.BDRI
  3105. CBDRI VFD 24/70000000+.BDRI
  3106. CREL STRTI,MM ADD MACHINE MASK TO *TRTI* FLAG OPERATIONS
  3107. CREL CTRTI,MM
  3108.  
  3109. LWA EQU *L
  3110. MAINL EQU LWA-FWA LENGTH OF MAIN BLOCK
  3111.  
  3112. ERRNG EPFW-* CODE OVERFLOWS INTO ERROR PROCESSOR
  3113. TITLE UEM SIMULATION OF EXTENDED MEMORY.
  3114. ** UEM SIMULATION OF EXTENDED MEMORY.
  3115. *
  3116. * THE FOLLOWING CODE OVERLAYS THE EXTENDED MEMORY INTERFACE
  3117. * ROUTINES WHEN UEM IS DECLARED AS THE LINK DEVICE. THE
  3118. * ENTRY POINTS *IFR*, *RDW*, *WTW*, AND *DSW* MUST BE THE SAME
  3119. * IN THE OVERLAYED CODE.
  3120.  
  3121.  
  3122. UEMI BSS 0 BEGINING OF UEM INTERFACE CODE
  3123. OEMI EQU RDW-1 ORIGIN OF INTERFACE ROUTINES
  3124. LOC OEMI
  3125. QUAL UEM
  3126. IFR EQU //IFR INSURE ENTRY POINTS MATCH
  3127. RDW EQU //RDW
  3128. WTW EQU //WTW
  3129. DSW EQU //DSW
  3130. RDW SPACE 4,10
  3131. ** RDW - READ UEM WORDS.
  3132. *
  3133. * ENTRY (A) = BUFFER ADDRESS FOR SECTOR.
  3134. * (EA - EA+1) = UEM ADDRESS TO READ FROM.
  3135. * (WC) = WORD COUNT OF TRANSFER.
  3136. *
  3137. * EXIT (A) .LT. 0, IF UNRECOVERABLE PARITY ERROR.
  3138. *
  3139. * CALLS SUA.
  3140.  
  3141.  
  3142. BSS RDW-1-* INSURE ENTRY POINT COINCIDES
  3143. RDW SUBR ENTRY/EXIT
  3144. STM RDWA SAVE PP BUFFER ADDRESS
  3145. RJM SUA SET ADDRESS
  3146. CRM *,WC
  3147. RDWA EQU *-1 READ BUFFER ADDRESS
  3148. LDN 0
  3149. UJN RDWX RETURN
  3150. WTW SPACE 4,10
  3151. ** WTW - WRITE WORDS TO UEM.
  3152. *
  3153. * ENTRY (A) = BYTE ADDRESS OF DATA TO WRITE.
  3154. * (EA - EA+1) = UEM ADDRESS TO READ FROM.
  3155. * (WC) = WORD COUNT OF TRANSFER.
  3156. *
  3157. * EXIT (A) .LT. 0, IF UNRECOVERABLE PARITY ERROR.
  3158. *
  3159. * CALLS SUA.
  3160.  
  3161.  
  3162. BSS WTW-1-*-7 INSURE ENTRY POINT COINCIDES
  3163. WTW1 STM WTWA SET BUFFER ADDRESS
  3164. RJM SUA SET ADDRESS
  3165. CWM *,WC
  3166. WTWA EQU *-1 WRITE BUFFER ADDRESS
  3167. LDN 0
  3168.  
  3169. WTW SUBR ENTRY/EXIT
  3170. UJN WTW1 PROCESS WRITE
  3171. IFR SPACE 4,10
  3172. ** IFR - SIMULATE FLAG FUNCTION FOR UEM.
  3173. *
  3174. * ENTRY (A) = ADDRESS OF FLAG FUNCTION WORDS.
  3175. *
  3176. * EXIT (A) = 0, IF FLAG FUNCTION PERFORMED.
  3177. *
  3178. * USES T1, CM - CM+4.
  3179.  
  3180.  
  3181. BSS IFR-1-*-13 INSURE ENTRY POINT COINCIDES
  3182. IFR2 LDD CM+3 CLEAR FLAG BITS
  3183. IFRA SCN 0
  3184. STD CM+3
  3185. LDD CM+4
  3186. LPC 7777
  3187. IFRB EQU *-1
  3188. STD CM+4
  3189. IFR3 LDK EFRL REWRITE FLAG BITS TO CM
  3190. CWD CM
  3191. LDN 0
  3192.  
  3193. IFR SUBR ENTRY/EXIT
  3194. STD T1
  3195. LDK EFRL READ CURRENT STATUS
  3196. CRD CM
  3197. LDI T1
  3198. SHN 21-11
  3199. MJN IFR1 IF CLEAR FUNCTION
  3200.  
  3201. * TEST AND SET FLAG OPERATION.
  3202.  
  3203. SHN 11-21+22
  3204. LMD CM+3
  3205. SBD CM+3
  3206. LMI T1
  3207. NJN IFRX IF BIT SET
  3208. LDM 1,T1
  3209. LMD CM+4
  3210. SBD CM+4
  3211. LMM 1,T1
  3212. NJN IFRX IF BIT SET
  3213. LDI T1
  3214. SHN -11
  3215. LMN 6
  3216. ZJN IFRX IF TEST FUNCTION
  3217. LDI T1 SET BIT(S) IN CM WORD
  3218. LPN 77
  3219. RAD CM+3
  3220. LDM 1,T1
  3221. RAD CM+4
  3222. UJP IFR3 RETURN STATUS
  3223.  
  3224. IFR1 SHN 11-21 CLEAR FLAG BITS
  3225. ADK SCNI-1000
  3226. STM IFRA
  3227. LCN 0
  3228. LMM 1,T1
  3229. STM IFRB
  3230. UJP IFR2 CLEAR FLAG BITS
  3231. SUA SPACE 4,10
  3232. ** SUA - SET UEM ADDRESS.
  3233. *
  3234. * ENTRY (EA - EA-1) = UEM ADDRESS TO SET.
  3235. *
  3236. * EXIT (A) = 400000 + UEM ADDRESS.
  3237. * R-REGISTER SET TO UEM BASE ADDRESS.
  3238. *
  3239. * USES CM - CM+4.
  3240.  
  3241.  
  3242. SUA SUBR ENTRY/EXIT
  3243. LDK UEML SET R REGISTER
  3244. CRD CM
  3245. LDD EA SET R-REGISTER
  3246. SCN 17
  3247. SHN 3
  3248. ADD CM ADD BASE ADDRESS
  3249. SHN 3
  3250. STD CM+1
  3251. SHN -14
  3252. STD CM
  3253. LRD CM
  3254. LDD EA SET RELATIVE ADDRESS
  3255. LPN 17
  3256. ADN 40
  3257. SHN 14
  3258. ADD EA+1
  3259. UJN SUAX RETURN
  3260. DSW SPACE 4,10
  3261. ** DSW - DRIVER SERVICE PROCESSING.
  3262. *
  3263. * USES T4.
  3264.  
  3265.  
  3266. BSS DSW-1-* INSURE ENTRY POINTS COINCIDE
  3267. DSW SUBR ENTRY/EXIT
  3268. LDN 37 INSURE CHANNEL NUMBER IN BOUNDS
  3269. STD T4
  3270. UJN DSWX RETURN
  3271.  
  3272. QUAL *
  3273. LOC *O
  3274. UEMIL EQU *-UEMI LENGTH OF UEM BLOCK
  3275. ERRPL *-7777 CODE EXCEEDS PP
  3276. SPACE 4,10
  3277. TITLE PRESET.
  3278. PRS SPACE 4,10
  3279. * PRS - PRESET TABLES AND CONSTANTS.
  3280.  
  3281.  
  3282. USE
  3283.  
  3284. PRS LDN MXQP-1 PRESET QUEUE ENTRY
  3285. STD QE
  3286. LDN NPPU-1
  3287. STD QH
  3288. STD QT
  3289. LDD OA SET MESSAGE BUFFER ADDRESS
  3290. ADN 1
  3291. STD MA
  3292. LDN ZERL SET ZERO WORD
  3293. CRD ZR
  3294. LDK PPCP
  3295. CRD CM
  3296. AOD CM+4 SET *MTR* OUTPUT REGISTER ADDRESS
  3297. STD OF
  3298. LDD CM SET EXTENDED PP COMMUNICATION AREA ADDRESS
  3299. STM PPX
  3300. LDD CM+1
  3301. STM PPX+1
  3302. RJM IFP INITIALIZE *COMPGFP*
  3303. LDN 0 INITIALIZE DRIVER STATUS BYTES
  3304. STD BR
  3305. STD ST
  3306. STD RC
  3307. LDK CHTP SET CHANNEL INTERLOCK TABLE ADDRESS
  3308. CRD CM
  3309. LDD CM+3
  3310. STM MTEA+1
  3311. LDD CM+2
  3312. RAM MTEA
  3313. LDK MABL READ HARDWARE OPTIONS
  3314. CRD CM
  3315. LDD CM+1 CHECK MAINFRAME TYPE
  3316. SHN 21-13
  3317. MJN PRS1 IF NOT CM EXTENSION
  3318. AOM RWEA CHANGE READ TO *FLSW*+1
  3319. PRS1 LDK MMFL SET LINK DEVICE EQUIPMENT
  3320. CRD CM
  3321. LDD CM+1
  3322. LPC 777
  3323. STD T5
  3324. SFA EST SET EXTENDED MEMORY EQUIPMENT TYPE
  3325. CRD CM
  3326. ADK EQAE-EQDE
  3327. CRD FS
  3328. LDD FS+2
  3329. SHN -6
  3330. LPN 3
  3331. STD CM+2 SAVE EXTENDED MEMORY SHIFT COUNT
  3332. LDD CM+2 PICK UP *EMSC*
  3333. ADN 5
  3334. LMN 77
  3335. RAM CLEE MODIFY *CLE* TO ROUND TO *EMBS*
  3336. LDN 4
  3337. SBD CM+2
  3338. LMN 77
  3339. RAM PRSB
  3340. LDC 377
  3341. PRSB SHN 0
  3342. * SHN 4-EMSC
  3343. STM CLED
  3344. LDD CM+2
  3345. RAM AFPA
  3346. STM SEAA
  3347. LDD CM+2
  3348. RAM ILDA
  3349. STM PRSC
  3350. STM CLEC
  3351. LDN 20 MINIMUM SECTORS PER TRACK
  3352. PRSC SHN 0 CALCULATE SECTORS PER TRACK
  3353. * SHN EMSC
  3354. STD CM+2
  3355. STM CLEB
  3356. STM SEAB+1
  3357. STM EBRA+1
  3358. STM EBRB+1
  3359. RAM AFAA+1
  3360. SHN -14
  3361. RAM AFAA
  3362. LDD CM+2
  3363. RAM SLAA+1
  3364. SHN -14
  3365. RAM SLAA
  3366. LDD T5
  3367. SFA EST
  3368. CRD CM
  3369. LDD CM+4
  3370. SHN 3
  3371. ADN DILL
  3372. CRD CM
  3373. SBN DILL SET *AFAM* PRESET
  3374. RAM AFP+1
  3375. SHN -14
  3376. RAM AFP
  3377. LDD CM+3
  3378. SHN -6
  3379. LPN 7
  3380. STM PRSA
  3381. LMN 4
  3382. NJN PRS3 IF NOT UEM
  3383. LDC UEMIL-1 MOVE EXTENDED MEMORY SIMULATION CODE
  3384. STD T1
  3385. PRS2 LDM UEMI,T1
  3386. STM OEMI,T1
  3387. SOD T1
  3388. PJN PRS2 IF MOVE NOT COMPLETE
  3389. UJP PRS7 AVOID PORT PRESET
  3390.  
  3391. PRS3 LDN CH PRESET CHANNEL NUMBER
  3392. STD T4
  3393. LDN 1 RESERVE CHANNEL
  3394. RJM DSW
  3395. RJM SCP SET CHANNEL IN PRESET INSTRUCTIONS
  3396. FNC MCFN+SC,CH MASTER CLEAR PORT
  3397. LDN 40
  3398. PRS4 SBN 1
  3399. MJN PRS6 IF FUNCTION TIMED OUT
  3400. AJM PRS4,CH IF CHANNEL ACTIVE
  3401. LDC 0
  3402. PRSA EQU *-1 EXTENDED MEMORY TYPE
  3403. SBN 5
  3404. MJN PRS7 IF NEITHER ESM NOR STORNET
  3405. SBN 7-5
  3406. PJN PRS7 IF NEITHER ESM NOR STORNET
  3407. FNC ESFN+SC,CH SET ECS MODE ADDRESSING
  3408. LDN 40
  3409. PRS5 SBN 1
  3410. IJM PRS7,CH IF CHANNEL INACTIVE
  3411. PJN PRS5 IF FUNCTION NOT TIMED OUT
  3412. PRS6 LDC 200+MS2W
  3413. CWM MSGA,TR *PORT PRESET FAILED ON MMF LINK.*
  3414. UJN * HANG
  3415. ILD SPACE 4,10
  3416. ** ILD - INITIALIZE MMF LINK DEVICE.
  3417. *
  3418. * ENTRY (IR+4) = RECOVERY MODE.
  3419. *
  3420. * EXIT TO MAIN LOOP.
  3421. *
  3422. * USES IR+2, RM, T1, T6, T8, CM - CM+4, EA - EA+4,
  3423. * FS - FS+4, OR - OR+4
  3424. *
  3425. * CALLS CAM, CIR, CLE, IBP, SIC, SLA.
  3426. *
  3427. * MACROS CFLAG, DELAY, ISTORE, READEM, SFLAG, WRITEM.
  3428.  
  3429.  
  3430. PRS7 BSS 0
  3431. ILD LDN ZERL ZERO LABEL TRACK ADDRESS
  3432. CRD EA
  3433. ADK EFRL-ZERL READ LINK DEVICE PARAMETERS
  3434. CRD FS
  3435. CRD CM
  3436. LDN 0
  3437. STD CM+3
  3438. STD CM+4
  3439. LDK EFRL CLEAR FLAG REGISTER STATUS
  3440. CWD CM
  3441. LDD FS+4
  3442. STD IR+2
  3443. LPN 77
  3444. STD T6
  3445. LDD FS+2
  3446. LPN 20
  3447. ZJN ILD3 IF NO INITIALIZE OF LINK DEVICE
  3448. ILD1 SOD T6 COMPUTE LABEL TRACK ADDRESS
  3449. MJN ILD4 IF NOT END OF MULTIPLY
  3450. ILD2 LDC 2020 MINIMUM POSSIBLE WORDS PER TRACK
  3451. ILDA SHN 0 CALCULATE WORDS PER TRACK
  3452. * SHN EMSC
  3453. RAD EA+1
  3454. SHN -14
  3455. RAD EA
  3456. LDD FS+2
  3457. LPN 20
  3458. NJN ILD1 IF INITIALIZE OF LINK DEVICE
  3459.  
  3460. * SEARCH FOR LABEL TRACK.
  3461.  
  3462. ILD3 READEM 1,OR READ LABEL LINKAGE WORD
  3463. LDD OR
  3464. ADD OR+1
  3465. ADD OR+2
  3466. ADD OR+3
  3467. ADD OR+4
  3468. LMC 3777+77+2RLA+2RBE+1RL*100
  3469. ZJN ILD4 IF LABEL TRACK FOUND
  3470. AOD IR+2
  3471. ADC -LTKL
  3472. MJN ILD2 IF MORE TRACKS TO CHECK
  3473. LDN 1 SET LABEL TRACK NOT FOUND ERROR
  3474. LJM ILD18 PROCESS ERROR
  3475.  
  3476. ILD4 LDD EA+1 INSERT LABEL ADDRESS IN *SLA*
  3477. RAM SLAA+1
  3478. SHN -14
  3479. ADD EA
  3480. RAM SLAA
  3481. LDK DSSL
  3482. CRD CM
  3483. ADK MMFL-DSSL
  3484. CRD OR
  3485. LDD CM+4 SET RECOVERY MODE
  3486. LPN 3
  3487. STD RM
  3488. UJN ILD6 SET PRESET INTERLOCK
  3489.  
  3490. ILD5 LDD FS+2
  3491. LPN 40
  3492. NJN ILD7 IF TO PRESET
  3493. ILD6 SFLAG PRSI,ILD5 SET PRESET INTERLOCK
  3494.  
  3495. ILD7 RJM CAM INITIALIZE MACHINE CLOCKS
  3496. LDD FS+2
  3497. LPN 40
  3498. STD T8
  3499. ZJP ILD9 IF NO PRESET OF LINK DEVICE
  3500.  
  3501. * PRESET PROCESSING.
  3502. * CHECK FOR MACHINES ACTIVE BY STATUSING *MFET* WORDS.
  3503.  
  3504. LDC 200+MS2W
  3505. CWM MSGB,TR *CHECKING FOR ACTIVE MACHINES.*
  3506. DELAY 2048D*10 TOTAL DELAY IS 2048 MILLISECONDS
  3507. RJM CAM CHECK ACTIVE MACHINES
  3508. LDD T9
  3509. ZJN ILD8 IF NO ACTIVE MACHINE FOUND
  3510. LDN 6 MACHINE ACTIVITY PREVENTS PRESET
  3511. LJM ILD18 PROCESS ERROR
  3512.  
  3513. * THE SECTOR OF ZERO WORDS THAT BEGINS AT *TBUF* MUST NOT
  3514. * EXTEND PAST HERE, SINCE *CLE* CREATES AND USES THIS BUFFER.
  3515.  
  3516. ERRNG *-TBUF-505
  3517.  
  3518. ILD8 CFLAG FRGI,NW CLEAR ALL FLAG INTERLOCKS EXCEPT *PRSI*
  3519. RJM CLE CLEAR EXTENDED MEMORY
  3520. NJP ILD18 IF ERROR IN CLEARING MEMORY
  3521. LDC 200+MS2W
  3522. CWM MSGC,TR *LINK DEVICE PRESET COMPLETE.*
  3523. LDN 1
  3524. LJM ILD20 SET MACHINE INDEX
  3525.  
  3526. * PROCESS NON-PRESET DEADSTARTS.
  3527.  
  3528. ILD9 LDN MFET PRESET STATE TABLE
  3529. ADD T8
  3530. RJM SLA
  3531. READEM 1,FN READ *MFET* WORD
  3532. LDK EFRL GET STATE TABLE ADDRESS
  3533. CRD CM
  3534. LDN 0
  3535. STD FN+3
  3536. STD FN+4
  3537. LDD CM WRITE STATE TABLE WORD
  3538. SHN 14
  3539. ADD CM+1
  3540. ADK MFST
  3541. ADD T8
  3542. CWD FN
  3543. AOD T8
  3544. LMN MXMF
  3545. NJN ILD9 IF NOT END OF STATE TABLE
  3546. LDD RM
  3547. LMN 3
  3548. NJN ILD11 IF NOT LEVEL THREE
  3549.  
  3550. * RECOVER *MFET* SLOT ON LEVEL THREE RECOVERY. *MFET* ENTRY IS
  3551. * VERIFIED FOR CORRECT MACHINE ID, MACHINE INDEX AND THAT
  3552. * *MREC* HAS NOT RUN.
  3553.  
  3554. LDK MFET-1
  3555. ADD OR+4
  3556. RJM SLA SET ADDRESS IN LABEL TRACK
  3557. READEM 1,FN
  3558. LDD OR
  3559. LMD FN
  3560. NJN ILD10 IF NO VERIFY ON MACHINE ID
  3561. LDD OR+4
  3562. LMD FN+4
  3563. ILD10 NJN ILD15 IF NO VERIFY ON MACHINE INDEX
  3564. UJN ILD14 VERIFY *MREC* NOT RUN
  3565.  
  3566. * ASSIGN OR RECOVER *MFET* SLOT.
  3567.  
  3568. ILD11 LDN MXMF+1 PRESET MACHINE INDEX
  3569. STD OR+4
  3570. LDN 0 SET EMPTY ENTRY INDEX
  3571. STD T8
  3572. ILD12 SOD OR+4
  3573. ZJN ILD16 IF MORE MID-S TO CHECK
  3574. ADK MFET-1
  3575. RJM SLA SET ADDRESS IN LABEL TRACK
  3576. READEM 1,FN READ *MFET* WORD
  3577. LDD FN
  3578. NJN ILD13 IF NOT EMPTY
  3579. LDD OR+4 SET EMPTY INDEX
  3580. STD T8
  3581. UJN ILD12 TRY NEXT MIN
  3582.  
  3583. ILD13 LMD OR
  3584. NJN ILD12 IF NO MATCH ON MID
  3585. LDD RM
  3586. ZJN ILD17 IF LEVEL ZERO
  3587. ILD14 LDD FN+1
  3588. NJN ILD19 IF *MREC* NOT RUN
  3589. ILD15 LDN 2 *RECOVERY DEADSTART PREVENTED THIS MID.*
  3590. UJN ILD18 RETURN ERROR
  3591.  
  3592. * NO MATCHING MID FOUND IN EXTENDED MEMORY.
  3593.  
  3594. ILD16 LDD RM
  3595. NJN ILD15 IF NOT LEVEL ZERO
  3596. LDD T8
  3597. STD OR+4
  3598. NJN ILD19 IF EMPTY SLOT FOUND
  3599. LDN 4 *MID SPOT UNAVAILABLE.*
  3600. UJN ILD18 RETURN ERROR
  3601.  
  3602. ILD17 LDD FN+1
  3603. ZJN ILD19 IF *MREC* RUN
  3604. LDN 3 *MACHINE ID IN USE.*
  3605. ILD18 STD IR+2
  3606. LDD OA RETURN ERROR RESPONSE IN INPUT REGISTER
  3607. SBN 1
  3608. CWD IR
  3609. CFLAG PRSI
  3610. UJN * HANG
  3611.  
  3612. ILD19 RJM IBP INITIALIZE BRT/BDT PROCESSING
  3613. LDD OR+4
  3614.  
  3615. * SET MACHINE INDEX IN *MMFL* AND IN EXTENDED MEMORY.
  3616.  
  3617. ILD20 STD OR+4
  3618. STD T1
  3619. STM MI+1
  3620. SHN 1
  3621. STM MI2+1
  3622. SHN 5
  3623. STM MIH+1
  3624. SHN 2-6
  3625. ADD OR+4
  3626. STM MI5+1
  3627. LDM TMMK-1,OR+4 SET MACHINE MASK
  3628. STD OR+3
  3629. STM MM+1
  3630. SHN 4
  3631. STM WM+1 MASK FOR WRITE BAT ACCESS BIT
  3632. SHN 4
  3633. ADM WM+1
  3634. STM RWM+1 MASK FOR READ/WRITE BAT ACCESS BITS
  3635. LMC 7777
  3636. STM RWMC+1 MASK FOR R/W BAT ACCESS BITS FOR OTHER MFS
  3637. LDD OR+1
  3638. SHN 21-11
  3639. PJN ILD20.1 IF NO SHARED BUFFERED DEVICES PRESENT
  3640. ISTORE MTED,(PSN ) ENABLE BAT/BRT CODE
  3641. ILD20.1 LDK MMFL
  3642. CWD OR
  3643. ILD21 LDN LLLL COMPUTE MACHINE INDEX * LLLL
  3644. RAM ML+1
  3645. SOD T1
  3646. NJN ILD21 IF NOT END OF MULTIPLY
  3647. LDK MFET-1 SET ADDRESS IN LABEL TRACK
  3648. ADD OR+4
  3649. RJM SLA
  3650. WRITEM 1,OR WRITE *MMFL* WORD
  3651. RJM CAM INITIALIZE MACHINE CLOCKS
  3652. CFLAG PRSI CLEAR PRESET INTERLOCK
  3653. LDK EFRL SET *CPUMTR* REQUEST QUEUE ADDRESS
  3654. CRM PQ,ON (MUST PRECEDE READ INTO *SDA*)
  3655. LDK SDAP SET STATISTICAL DATA AREA ADDRESS
  3656. CRM SDA,ON
  3657. LDK RTCL INITIALIZE *MTE* CYCLE TIME
  3658. CRD CM
  3659. LDD CM+4
  3660. STM CYTM
  3661. LDC TSIC SET RELOCATION TABLE ADDRESS
  3662. RJM SIC RELOCATE INSTRUCTIONS
  3663. RJM CIR CLEAR INTERLOCKS ON LEVEL 3
  3664. LDD OA SIGNAL COMPLETION VIA INPUT REGISTER
  3665. SBN 1
  3666. CWD IR
  3667. LJM MTE ENTER MAIN LOOP
  3668.  
  3669.  
  3670. CFRGI VFD 24/70777777-.PRSI
  3671. SPRSI VFD 24/40000000+.PRSI
  3672. CPRSI VFD 24/70000000+.PRSI
  3673.  
  3674. IFP HERE *COMPGFP* INITIALIZATION CODE
  3675. CLE SPACE 4,15
  3676. ** CLE - CLEAR EXTENDED MEMORY.
  3677. *
  3678. * ENTRY PRESET DEADSTART SELECTED.
  3679. * (FS+2) = *EFRL* PARAMETERS.
  3680. *
  3681. * EXIT (A) = 0, IF NO WRITE ERROR DETECTED.
  3682. * (A) = 5, IF WRITE ERRORS.
  3683. *
  3684. * USES WC, CM - CM+4, EA - EA+4, FN - FN+4.
  3685. *
  3686. * CALLS SLA.
  3687. *
  3688. * MACROS WRITEM.
  3689.  
  3690.  
  3691. CLE4 RJM SLA CLEAR ENVIRONMENT TABLE
  3692. WRITEM IBDT,TBUF
  3693. ZJN CLE5 IF NO ERROR
  3694. LDN 5 SET ERROR STATUS
  3695. STD EA+2
  3696. CLE5 LDN 4 WRITE *IBDT*
  3697. STD WC
  3698. LDK DSDL+1
  3699. CRM TBUF,WC
  3700. LDD FN COMPUTE LENGTH OF LINK DEVICE
  3701. SHN 6
  3702. ADD FN
  3703. CLEC SHN 0 TRACKS * 101B
  3704. * SHN EMSC TRACKS * 101B * EMBS
  3705. ADC ** ROUND UP TO NEAREST *EMBS*
  3706. CLED EQU *-1
  3707. * ADC 37 EMBS = 1000
  3708. * ADC 77 EMBS = 2000
  3709. * ADC 177 EMBS = 4000
  3710. * ADC 377 EMBS = 10000
  3711.  
  3712. CLEE SHN 0
  3713. * SHN -5-EMSC
  3714. STM TBUF+5+3 FIRST MACHINE BUFFER START ADDRESS
  3715. LDN 5 START ALLOCATION FOLLOWING THIS MACHINE
  3716. STD T2
  3717. CLE6 LDM TBUF+3,T2
  3718. ADM TBUF+4,T2
  3719. STM TBUF+5+3,T2
  3720. LDN 5
  3721. RAD T2
  3722. LMN 5*4
  3723. NJN CLE6 IF NOT END OF MACHINES
  3724. LDN IBDT SET I/O BUFFER TABLE
  3725. RJM SLA
  3726. WRITEM *,TBUF WRITE BUFFER ALLOCATION TABLE
  3727. ZJN CLE7 IF NO ERROR
  3728. LDN 5 SET ERROR STATUS
  3729. STD EA+2
  3730. CLE7 LDD EA+2 RETURN ERROR STATUS
  3731.  
  3732. CLE SUBR ENTRY/EXIT
  3733. RJM CSZ CREATE SECTOR OF ZERO WORDS
  3734. SFA EST,T5 READ EXTENDED MEMORY EST ENTRY
  3735. CRD CM
  3736. LDD CM+4 READ EXTENDED MEMORY TRACK COUNT
  3737. SHN 3
  3738. ADK TDGL
  3739. CRD FN
  3740. LDN ZERL CLEAR ERROR STATUS/UEM ADDRESS
  3741. CRD EA
  3742. LDD FS+2
  3743. LPN 20
  3744. ZJP CLE4 IF NO INITIALIZE OF LINK
  3745. LDC /DSL/DSCP*CPAS+MS2W
  3746. CWM MSGD,TR *CLEARING EXTENDED MEMORY.*
  3747. LDC 101 SET SECTOR WORD COUNT
  3748. STD WC
  3749. LDD FN SET TOTAL TRACKS
  3750. STD EA+4
  3751.  
  3752. * CLEAR EXTENDED MEMORY.
  3753.  
  3754. CLE1 LDC ** SET SECTOR COUNT FOR TRACK
  3755. CLEB EQU *-1
  3756. * LDC 20 TRACK SIZE = 20 SECTORS
  3757. * LDC 40 TRACK SIZE = 40 SECTORS
  3758. * LDC 100 TRACK SIZE = 100 SECTORS
  3759. * LDC 200 TRACK SIZE = 200 SECTORS
  3760.  
  3761. STD EA+3
  3762. CLE2 WRITEM *,TBUF WRITE WORDS TO UEM
  3763. ZJN CLE3 IF NO ERROR
  3764. LDN 5 WRITE ERROR STATUS
  3765. STD EA+2
  3766. CLE3 LDD WC
  3767. RAD EA+1
  3768. SHN -14
  3769. RAD EA
  3770. SOD EA+3
  3771. NJN CLE2 IF MORE SECTORS
  3772. SOD EA+4
  3773. NJN CLE1 IF MORE TRACKS
  3774. UJP CLE5 WRITE *IBDT*
  3775.  
  3776. CIR SPACE 4,20
  3777. ** CIR - CLEAR FLAG REGISTER AND MST INTERLOCKS ON LEVEL 3.
  3778. *
  3779. * ON LEVEL 3 RECOVERIES WHERE NO OTHER MACHINES ARE ACTIVE
  3780. * FLAG REGISTER INTERLOCKS AND DEVICE INTERLOCKS MUST BE
  3781. * CLEARED IN EXTENDED MEMORY. THESE INTERLOCKS ARE CLEARED
  3782. * DURING DOWN MACHINE PROCESSING WHEN OTHER MACHINES ARE
  3783. * ACTIVE.
  3784. *
  3785. * ENTRY (RM) = RECOVERY MODE.
  3786. *
  3787. * USES T8, T9, CM - CM+4, EA - EA+4, FN - FN+1.
  3788. *
  3789. * CALLS IFR, SFA.
  3790. *
  3791. * MACROS CFLAG, READEM, SFA, SFLAG, WRITEM.
  3792.  
  3793.  
  3794. CIR6 CFLAG CIRI CLEAR INTERLOCK
  3795.  
  3796. CIR SUBR ENTRY/EXIT
  3797. LDD RM
  3798. LMN 3
  3799. NJN CIRX IF NOT LEVEL 3
  3800. LDN 18D PRESET FLAG REGISTER BIT NUMBER
  3801. STD T8
  3802. UJN CIR2 SET *CIRI* INTERLOCK
  3803.  
  3804. CIR1 LDN FRET+CIRI CHECK IF INTERLOCKED BY THIS MACHINE
  3805. RJM SLA
  3806. READEM 1,FN,CIR2
  3807. LDD FN+4
  3808. TLMN 0,MI
  3809. ZJN CIR3 IF INTERLOCKED BY THIS MACHINE
  3810. CIR2 SFLAG CIRI,CIR1 SET FLAG INTERLOCK TO CLEAR INTERLOCKS
  3811.  
  3812. * CHECK FLAG OWNER WORDS TO SEE IF ANY OWNED BY THIS MACHINE.
  3813.  
  3814. CIR3 SOD T8
  3815. MJP CIR4 IF END OF FLAG BITS
  3816. LMN CIRI
  3817. ZJN CIR3 IF CHECKING *CIRI* BIT
  3818. LDN FRET CHECK FLAG BIT
  3819. ADD T8
  3820. RJM SLA
  3821. READEM 1,FN,CIR3 TRY NEXT FLAG BIT ON READ ERROR
  3822. LDD FN+4
  3823. TLMN 0,MI
  3824. ZJN CIR3 IF NOT OWNED BY THIS MACHINE
  3825. WRITEM *,ZR CLEAR FLAG OWNER
  3826. LDD T8 CLEAR FLAG BIT
  3827. ADD TH
  3828. ERRNZ 1000-SHNI
  3829. STM CIRC
  3830. LDN 1 SET FLAG BIT
  3831. CIRC SHN **
  3832. STD FN+1
  3833. SHN -14
  3834. ADC 7000 USE CLEAR FLAG FUNCTION
  3835. STD FN
  3836. LDN FN
  3837. RJM IFR ISSUE FLAG FUNCTION
  3838. UJP CIR3 LOOP FOR NEXT BIT
  3839.  
  3840. CIR4 LDK ESTP SET LAST EST ORDINAL
  3841. CRD CM
  3842. LDD CM+3
  3843. STD T9
  3844.  
  3845. * CLEAR DEVICE INTERLOCKS IN EXTENDED MEMORY.
  3846.  
  3847. CIR5 SOD T9 TRY NEXT EQUIPMENT
  3848. ZJP CIR6 IF END OF EST
  3849. SFA EST
  3850. CRD CM
  3851. LDD CM
  3852. SHN 21-13
  3853. PJN CIR5 IF NOT MASS STORAGE
  3854. LDD CM+4
  3855. SHN 3
  3856. ADK SDGL
  3857. CRD EA
  3858. LDD EA
  3859. ADD EA+1
  3860. ZJN CIR5 IF NOT SHARED
  3861. READEM SDGL+1,MBUF READ MST
  3862. LDM MBUF+SDGL*5+4
  3863. LPN 77
  3864. SHN -1
  3865. TLMN 0,MI
  3866. NJN CIR5 IF NOT INTERLOCKED BY THIS MACHINE
  3867. LDM MBUF+TDGL*5+2 SET TRT LENGTH
  3868. STM CIRE+1
  3869. LDD CM+4 SET MST ADDRESS
  3870. STM CIRE+3
  3871. TLDC MTQP,PQ PP QUEUE POINTER ADDRESS
  3872. CRD CM
  3873. TLDC MTET,PQ PP QUEUE ADDRESS
  3874. ADD CM+4
  3875. CWM CIRE,ON WRITE CLEAR DEVICE INTERLOCK REQUEST
  3876. SOD CM+4
  3877. TLDC MTQP,PQ WRITE NEW REQUEST QUEUE POINTER
  3878. CWD CM
  3879. LJM CIR5 LOOP FOR NEXT DEVICE
  3880.  
  3881. CIRE CON 0,777,4000,0,CDIF CLEAR DEVICE INTERLOCK SKELETON
  3882.  
  3883.  
  3884. SCIRI VFD 24/40000000+.CIRI
  3885. CCIRI VFD 24/70000000+.CIRI
  3886. IBP SPACE 4,15
  3887. ** IBP - INITIALIZE BRT/BDT PROCESSING.
  3888. *
  3889. * ON NON-PRESET DEADSTARTS, WHEN SHARED BUFFERED DEVICES ARE
  3890. * PRESENT, CLEAR THE BRT FOR THIS MACHINE AND CLEAR ANY BDT
  3891. * INTERLOCKS BELONGING TO THIS MACHINE.
  3892. *
  3893. * USES EA, EA+1, T1, T8, FN - FN+4.
  3894. *
  3895. * CALLS CBA, CBD, CBJ, CSZ, SEA, SLA.
  3896. *
  3897. * MACROS DELAY, READEM, SFLAG, WRITEM.
  3898.  
  3899.  
  3900. IBP SUBR ENTRY/EXIT
  3901. LDD OR+1
  3902. SHN 21-11
  3903. PJN IBPX IF NO SHARED BUFFERED DEVICES PRESENT
  3904. LDN BAET PRESET BRT ADDRESS
  3905. RJM SLA
  3906. READEM 1,FN
  3907. LDD FN TRACK POINTER FOR BRT
  3908. STM BRTP
  3909. RJM SEA SET ESM ADDRESS OF BRT
  3910. RAM CBAA+1
  3911. SHN -14
  3912. RAM CBAA
  3913. LDD FN+1 TRACK POINTER FOR BDT
  3914. RJM SEA SET ESM ADDRESS OF BDT
  3915. RAM CBDA+1
  3916. SHN -14
  3917. RAM CBDA
  3918.  
  3919. * CLEAR BRT FOR THIS MACHINE.
  3920.  
  3921. RJM CSZ CREATE SECTOR OF ZERO WORDS
  3922. LDD OR+4
  3923. RJM CBA GET ADDRESS OF BRT
  3924. LDD HN
  3925. STD WC
  3926. LDN BRTL/100
  3927. STD T8
  3928. IBP1 WRITEM *,TBUF CLEAR BLOCK OF ESM
  3929. LDD WC
  3930. RAD EA+1
  3931. SHN -14
  3932. RAD EA
  3933. SOD T8
  3934. NJN IBP1 IF MORE TO CLEAR
  3935.  
  3936. * CLEAR BDT INTERLOCKS BELONGING TO THIS MACHINE.
  3937.  
  3938. IBP2 DELAY
  3939. SFLAG BDTI,IBP2
  3940. LDN DAET
  3941. RJM SLA
  3942. READEM 1,FN READ DAET POINTER
  3943. LDD FN+4 NUMBER OF BDT ENTRIES
  3944. STD WC
  3945. RJM CBD SET ESM ADDRESS OF BDT
  3946. READEM *,TBUF READ BDT
  3947. LDC TBUF-5 INITIALIZE SEARCH ADDRESS
  3948. STD T1
  3949. IBP3 LDN 5 ADVANCE TO NEXT BDT ENTRY
  3950. RAD T1
  3951. LDC 4000
  3952. ADD OR+4 MACHINE INDEX
  3953. LMI T1 CHECK ERROR PROCESSING INTERLOCK
  3954. NJN IBP4 IF NOT INTERLOCKED BY THIS MACHINE
  3955. STI T1 CLEAR ERROR PROCESSING INTERLOCK
  3956. IBP4 LDC 4000
  3957. ADD OR+4 MACHINE INDEX
  3958. LMM 1,T1 CHECK RESTORE PARITY INTERLOCK
  3959. NJN IBP5 IF NOT INTERLOCKED BY THIS MACHINE
  3960. STM 1,T1 CLEAR PARITY RESTORE INTERLOCK
  3961. STM 2,T1 CLEAR CONTROLLER SERIAL NUMBER
  3962. STM 3,T1
  3963. STM 4,T1
  3964. IBP5 SOD FN+4
  3965. NJN IBP3 IF MORE TO CHECK
  3966. WRITEM *,TBUF UPDATE BDT
  3967. RJM CBJ CLEAR *BDTI* INTERLOCK
  3968. LJM IBPX RETURN
  3969. TSIC SPACE 4,10
  3970. ** TSIC - INSTRUCTION RELOCATION TABLE.
  3971.  
  3972.  
  3973. LIST G
  3974. TSIC BSS 0 INSTRUCTION RELOCATION TABLE
  3975. SIC HERE
  3976. CON 0 END OF TABLE
  3977. LIST *
  3978. SPACE 4,10
  3979. ** INSTRUCTION MODIFICATION VALUES.
  3980. *
  3981. * NOTE - INSTRUCTION MODIFICATION VALUES ARE TWO BYTES.
  3982.  
  3983. PPX CON 0,0 EXTENDED PP COMMUNICATION AREA ADDRESS
  3984. MI2 CON 0,0 MACHINE INDEX * 2
  3985. MI5 CON 0,0 MACHINE INDEX * 5
  3986. ML CON 0,0 MACHINE INDEX * LLLL
  3987. MIH CON 0,0 MACHINE INDEX * 100
  3988. MM CON 0,0 MACHINE MASK
  3989. RWM CON 0,0 READ/WRITE MASK FOR BAT ACCESS
  3990. WM CON 0,0 WRITE MASK FOR BAT ACCESS
  3991. RWMC CON 0,0 COMPLEMENT OF READ/WRITE MASK
  3992. PQ CON 0,0 PP REQUEST QUEUE ADDRESS
  3993. SDA CON 0,0 STATISTICAL DATA AREA ADDRESS
  3994. CON 0,0,0 ALLOW SPACE FOR READING INTO *SDA*
  3995. SCP SPACE 4,10
  3996. ** SCP - SET CHANNEL IN PRESET INSTRUCTIONS.
  3997. *
  3998. * ENTRY (T4) = CHANNEL TO SET IN INSTRUCTIONS.
  3999. *
  4000. * USES T0.
  4001.  
  4002.  
  4003. SCP SUBR ENTRY/EXIT
  4004. SCP1 LDM TSCP
  4005. SCPA EQU *-1
  4006. ZJN SCPX IF END OF TABLE
  4007. STD T0
  4008. LDD T4
  4009. RAI T0
  4010. AOM SCPA
  4011. UJN SCP1 LOOP
  4012. TSCP SPACE 4,10
  4013. TSCP CHTB PRESET CHANNEL TABLE
  4014. CON 0 TERMINATE TABLE
  4015.  
  4016. * PRESET MESSAGES.
  4017.  
  4018. MSGA DATA 30HPORT PRESET FAILED ON MMF LINK
  4019. MSGB DATA C*CHECKING FOR ACTIVE MACHINES*
  4020. MSGC DATA C*LINK DEVICE PRESET COMPLETE*
  4021. MSGD DATA C*CLEARING EXTENDED MEMORY*
  4022. SPACE 4,10
  4023. ** PRESET COMMON DECKS.
  4024.  
  4025.  
  4026. *CALL COMPSIC
  4027. SPACE 4,10
  4028. BSS EPFW-MAINL-* INSURE MAIN IS UP AGAINST *EPFW*
  4029. ERRNG *-EBUF INSURE TRT BUFFER FITS
  4030. TITLE MTE/2EA - DOWN MACHINE PROCESSING.
  4031. QUAL 2EA
  4032. IDENT 2EA,O2EA DOWN MACHINE PROCESSING.
  4033. *COMMENT MTE - DOWN MACHINE PROCESSING.
  4034. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  4035. O2EA EQU PPFW
  4036. ORG O2EA
  4037. SPACE 4,20
  4038. *** 2EA - DOWN MACHINE PROCESSING.
  4039. *
  4040. * *2EA* IS CALLED BY *MTE* WHEN THE MACHINE CLOCK STATUS
  4041. * IS INAPPROPRIATE FOR THE STATE IN *TSTA*. THIS OCCURS
  4042. * WHEN A MACHINE IS DEADSTARTED OR GOES DOWN.
  4043. *
  4044. * *2EA* PERFORMS THE FOLLOWING MACHINE STATE PROCESSING.
  4045. *
  4046. * MFDN MACHINE DOWN STATE.
  4047. *
  4048. * FOR A MACHINE PREVIOUSLY IN A DOWN STATE, OR ANY
  4049. * OTHER NON-ACTIVE STATE WHICH IS NOW ACTIVE, SET THE ACTIVE
  4050. * STATE (*MFAC*) IN THE INTERNAL TABLE *TSTA* AS WELL AS THE
  4051. * *MFST* TABLE POINTED TO BY *EFRL*.
  4052. *
  4053. * MFAC MACHINE ACTIVE STATE.
  4054. * IF A MACHINE IS NO LONGER UPDATING ITS EXTENDED
  4055. * MEMORY CLOCK IT IS PLACED IN THE *MFD1* STATE.
  4056. *
  4057. * MFD1 MACHINE SENSED DOWN ONCE.
  4058. * IF A MACHINE IS NO LONGER UPDATING ITS EXTENDED
  4059. * MEMORY CLOCK AND IT IN THE *MFD1* STATE, IT IS PLACED IN THE
  4060. * *MFD2* STATE.
  4061. *
  4062. * MFD2 MACHINE SENSED DOWN TWO OR MORE TIMES.
  4063. * IF A MACHINE IS NO LONGER UPDATING ITS EXTENDED
  4064. * MEMORY CLOCK AND IS IN THE *MFD2* STATE, A CHECK IS MADE
  4065. * TO SEE IF IT IS A LOW SPEED PORT MACHINE. IF IT IS, THE
  4066. * MESSAGE
  4067. * IF XX DOWN, ENTER *DOWN,MID=XX*
  4068. * IS DISPLAYED AT THE SYSTEM CONTROL POINT. THIS MESSAGE
  4069. * IS DISPLAYED UNTIL THE OPERATOR RESPONDS WITH THE
  4070. * *DOWN,MID=XX* COMMAND, OR A *GO,SYS*. IF THE MESSAGE IS
  4071. * CLEARED BY A *GO,SYS*, BUT THE MACHINE DETECTED AS DOWN IS
  4072. * STILL IS NOT UPDATING ITS CLOCK, (DUE TO BEING IN STEP MODE
  4073. * OR A CHANNEL IS HUNG) THE MESSAGE WILL REAPPEAR.
  4074. * IF THE MACHINE IS NOT A LOW SPEED PORT MACHINE, THE STATE
  4075. * WILL BE ADVANCED TO *MFDA*.
  4076. * THE *DOWN,MID=XX* ADVANCES TO THE *MFDA* STATE FOR DOWN
  4077. * LOW SPPED PORT MACHINES.
  4078. *
  4079. * MFDA MAINFRAME DOWN IS ACKNOWLEGED.
  4080. * IF A MACHINE IS NO LONGER UPDATING ITS EM CLOCK
  4081. * AND IS IN THE *MFDA* STATE, INTERLOCKS WHICH IT HOLDS MUST
  4082. * BE RELEASED. FLAG REGISTER AND DEVICE INTERLOCKS ARE
  4083. * CLEARED UNDER CONTROL OF THE *CIRI* INTERLOCK WHILE IN
  4084. * THE *MFDA* STATE. WHEN THESE INTERLOCKS ARE CLEARED FOR
  4085. * THE DOWN MACHINE IT ADVANCES TO THE *MFCD* STATE.
  4086. *
  4087. * MFCD DEVICE AND FLAG INTERLOCK CLEARING DONE.
  4088. * IF A MACHINE IS NO LONGER UPDATING ITS EM CLOCK
  4089. * AND IS IN THE *MFCD* STATE, *1MR* IS CALLED TO CLEAR TRACK
  4090. * INTERLOCKS AND PF COUNTS. IF A PP IS AVAILABLE FOR *1MR*
  4091. * THE DOWN MACHINE ADVANCES TO THE *MFMR* STATE.
  4092. *
  4093. * MFMR *1MR* CALLED STATE.
  4094. * WHEN *1MR* COMPLETES CLEARING TRACK INTERLOCKS
  4095. * AND PF COUNTS FOR THE DOWN MACHINE IT ADVANCES IT BACK
  4096. * TO THE *MFDN* STATE.
  4097. *
  4098. * ENTRY (T8) = MACHINES REQUIRING STATE PROCESSING.
  4099. * (T9) = ACTIVE MACHINE MASKS.
  4100. *
  4101. * USES T1, T3, FN - FN+4.
  4102. *
  4103. * CALLS SLA.
  4104. *
  4105. * MACROS READEM.
  4106.  
  4107.  
  4108. PDM SUBR ENTRY/EXIT
  4109. LDK EFRL SET STATE TABLE ADDRESS
  4110. CRD FN
  4111. LDD FN+1
  4112. RAM PDMA+1
  4113. SHN -14
  4114. ADD FN
  4115. RAM PDMA
  4116. LDN MXMF PRESET MACHINE INDEX
  4117. STD T3
  4118. UJN PDM2 ENTER SEARCH LOOP
  4119.  
  4120. * ADVANCE TO NEXT STATE.
  4121.  
  4122. PDM1 AOD FN+4 SET NEW STATE
  4123. STM TSTA,T3
  4124. LDM PDMA WRITE STATE ENTRY TO MFST
  4125. LPN 77
  4126. SHN 14
  4127. ADM PDMA+1
  4128. ADD T3
  4129. CWD FN
  4130.  
  4131. PDM2 SOD T3
  4132. MJN PDMX IF END OF MACHINE CHECK
  4133. PDMA ADC MFST GET MAINFRAME STATE TABLE ENTRY
  4134. CRD FN
  4135. LDD T8
  4136. LMM TMMK,T3
  4137. SBD T8
  4138. PJN PDM2 IF NO STATE PROCESSING REQUIRED
  4139. LDD T9
  4140. LMM TMMK,T3
  4141. SBD T9
  4142. PJN PDM3 IF CLOCK NOT CHANGING
  4143.  
  4144. * SET MACHINE ACTIVE IN *MFST* AND INTERNAL TABLES.
  4145.  
  4146. LDN MFET
  4147. ADD T3
  4148. RJM SLA
  4149. READEM 1,FN
  4150. LDN 0
  4151. STD FN+3
  4152. LDN MFAC-1 SET ACTIVE STATE
  4153. STD FN+4
  4154. UJP PDM1 STORE STATE
  4155.  
  4156. PDM3 LDM TPDM,FN+4 SET MACHINE STATE PROCESSOR
  4157. STD T1
  4158. LJM 0,T1 ENTER STATE PROCESSOR
  4159. STATE SPACE 4,10
  4160. ** STATE - SET STATE PROCESSOR.
  4161. *
  4162. * STATE STA,PRC
  4163. *
  4164. * ENTRY *STA* = STATE NAME.
  4165. * *PRC* = ALTERNATE PROCESSOR.
  4166. *
  4167. * THIS MACRO BUILDS A TABLE OF STATE PROCESSORS.
  4168. * THE TABLE IS NAMED *TPDM*, AND EACH ENTRY IS THE
  4169. * ADDRESS OF THE PROCESSOR FOR THE STATE.
  4170.  
  4171.  
  4172. PURGMAC STATE
  4173.  
  4174. STATE MACRO STA,PRC
  4175. LOCAL A
  4176. .A IFC EQ,*PRC**
  4177. A MICRO 2,4, STA
  4178. "A" BSS 0
  4179. .A ELSE
  4180. A MICRO 1,, PRC
  4181. .A ENDIF
  4182. TPDM RMT
  4183. ORG TPDM+STA
  4184. CON "A"
  4185. TPDM RMT
  4186. STATE ENDM
  4187. MFDN SPACE 4,10
  4188. * DOWN STATE PROCESSOR.
  4189.  
  4190. STATE MFDN NO STATE CHANGE
  4191. LDN MFDN SET STATE IN INTERNAL TABLE
  4192. STM TSTA,T3
  4193. LJM PDM2 PROCESS NEXT MACHINE
  4194. MFAC SPACE 4,10
  4195. * ACTIVE STATE PROCESSOR.
  4196.  
  4197. STATE MFAC,PDM1 ADVANCE TO *MFD1* STATE
  4198. MFD1 SPACE 4,10
  4199. * DOWN SENSED ONCE STATE PROCESSOR.
  4200.  
  4201. STATE MFD1,PDM1 ADVANCE TO *MFD2* STATE
  4202. MFD2 SPACE 4,10
  4203. * DOWN SENSED TWICE OR MORE STATE PROCESSOR.
  4204.  
  4205. STATE MFD2
  4206. LDD FN+1 CHECK FOR LOW SPEED PORT MMF MACHINE
  4207. SHN 21-12
  4208. PJP PDM1 IF NOT LOW SPEED PORT MMF MACHINE
  4209. LDD FN
  4210. SHN 6
  4211. LMN 1R
  4212. STM FD2A+2
  4213. SHN 6
  4214. STM FD2A+1
  4215. LDD FN
  4216. SHN 6
  4217. LMN 1R*
  4218. STM FD2A+16
  4219. SCN 77
  4220. LMN 1R=
  4221. SHN 6
  4222. STM FD2A+15
  4223. LDD CP
  4224. ADN MS2W
  4225. CWM FD2A,TR
  4226. UJP PDM2 PROCESS NEXT MACHINE
  4227.  
  4228. FD2A DATA 30HIF XX DOWN ENTER *DOWN,MID=XX*
  4229. MFDA SPACE 4,10
  4230. * DOWN MACHINE ACKNOWLEGED STATE PROCESSOR.
  4231.  
  4232. STATE MFDA
  4233. LDD FN SET MACHINE ID IN MESSAGE
  4234. STM FDAB+4
  4235. LDD CP
  4236. ADN MS2W
  4237. CWM FDAB,TR
  4238. SFLAG CIRI,PDM2 OBTAIN FLAG INTERLOCK TO CLEAR INTERLOCKS
  4239. LDM TMMK,T3 CHECK DOWN MACHINE HAS *TRTI* INTERLOCK
  4240. STD EA+1
  4241. LDC 6000 SET TEST FLAG FUNCTION
  4242. STD EA
  4243. LDN EA
  4244. RJM IFR
  4245. ZJN FDA1 IF NOT HELD BY DOWN MACHINE
  4246. LDC .TRTI
  4247. RAD EA+1
  4248. LDC 7000
  4249. STD EA
  4250. LDN EA CLEAR *TRTI* INTERLOCK
  4251. RJM IFR
  4252.  
  4253. * CLEAR FLAG BITS HELD BY DOWN MACHINE.
  4254.  
  4255. FDA1 LDD TH PRESET SHIFT INSTRUCTION
  4256. STM FDAA
  4257. LDN 1 SET WORD COUNT FOR READEM/WRITEM
  4258. STD WC
  4259. LDN FRET SET FLAG OWNER ADDRESS
  4260. RJM SLA
  4261. FDA2 READEM *,FS
  4262. SOD FS+4
  4263. LMD T3
  4264. NJN FDA3 IF INTERLOCK NOT HELD BY DOWN MACHINE
  4265. LDN 1 CLEAR FLAG BIT
  4266. FDAA SHN **
  4267. STD FS+1
  4268. SHN -14
  4269. ADC 7000
  4270. STD FS
  4271. LDN FS
  4272. RJM IFR
  4273. WRITEM *,ZR
  4274. FDA3 AOD EA+1 ADVANCE EXTENDED MEMORY ADDRESS
  4275. SHN -14
  4276. RAD EA
  4277. AOM FDAA
  4278. LMC SHNI+18D
  4279. NJN FDA2 IF NOT END OF FLAG BITS
  4280.  
  4281. * CLEAR DEVICE INTERLOCKS.
  4282.  
  4283. LDK ESTP PRESET EQUIPMENT FOR SEARCH
  4284. CRD CM
  4285. LDD CM+3
  4286. STD T7
  4287. FDA4 RJM SSD SEARCH FOR SHARED DEVICE
  4288. ZJN FDA5 IF NO MORE DEVICES
  4289. READEM SDGL+1,MBUF READ MST
  4290. NJN FDA5 IF EXTENDED MEMORY ERROR
  4291. LDM MBUF+SDGL*5+4
  4292. LPN 76
  4293. SHN -1
  4294. SBN 1
  4295. SBD T3
  4296. NJN FDA4 IF NOT INTERLOCKED BY DOWN MACHINE
  4297. LDM MBUF+SDGL*5+4
  4298. SCN 77
  4299. STM MBUF+SDGL*5+4
  4300. WRITEM *,MBUF REWRITE MST WITH INTERLOCK CLEARED
  4301. UJN FDA4 TRY NEXT DEVICE
  4302.  
  4303. FDA5 STD T7 SAVE ADVANCE STATUS
  4304. CFLAG CIRI CLEAR FLAG INTERLOCK
  4305. LDD T7
  4306. ZJP PDM1 IF PROCESSING COMPLETE ADVANCE TO *MFCD*
  4307. LJM PDM2 CHECK NEXT MACHINE ON PARITY ERROR
  4308.  
  4309. FDAB DATA 30CMACHINE XX DOWN.
  4310. MFCD SPACE 4,10
  4311. * *MTE* INTERLOCK CLEARING DONE STATE PROCESSOR.
  4312.  
  4313. STATE MFCD
  4314. LDK NCPL SET CONTROL POINT ADDRESS
  4315. CRD CM
  4316. AOD CM+1
  4317. LMC 2L R
  4318. STM MFCA+1
  4319. LDD T3 SET MACHINE INDEX
  4320. ADN 1
  4321. STM MFCA+4
  4322. LDN ZERL SET IMMEDIATE ASSIGNMENT
  4323. CRD CM
  4324. LDD MA WRITE REQUEST
  4325. CWM MFCA,ON
  4326. MONITOR RPPM
  4327. LDD CM+1
  4328. ZJP PDM2 IF NO PP ASSIGNED
  4329. UJP PDM1 ADVANCE TO *MFMR* STATE
  4330.  
  4331.  
  4332. MFCA VFD 18/3L1MR,18/0,6/CDV,18/0
  4333.  
  4334. * *1MR* CALLED TO CLEAR TRACK INTERLOCKS STATE PROCESSOR.
  4335. * NOTE - THIS STATE IS SIMPLY A WAIT FOR *1MR* TO COMPLETE.
  4336. * *1MR* ADVANCES TO THE NEXT STATE.
  4337.  
  4338. STATE MFMR,PDM2
  4339. TPDM SPACE 4,10
  4340. ** TPDM - TABLE OF STATE PROCESSOR ADDRESSES.
  4341. *
  4342. * INDEXED BY STATE NUMBER.
  4343. * 12/ PROCESSOR ADDRESS
  4344.  
  4345.  
  4346. TPDM BSS 0
  4347. DUP MFMX,1
  4348. CON HNG
  4349. TPDM HERE
  4350. ORG TPDM+MFMX
  4351.  
  4352. SCIRI VFD 24/40000000+.CIRI
  4353. CCIRI VFD 24/70000000+.CIRI
  4354. SSD SPACE 4,15
  4355. ** SSD - SEARCH FOR SHARED DEVICE.
  4356. *
  4357. * ENTRY (T7) = LAST DEVICE ORDINAL FOUND.
  4358. *
  4359. * EXIT (T7) = SHARED DEVICE ORDINAL FOUND.
  4360. * (A) = 0, IF NO DEVICE FOUND.
  4361. * (EA - EA+1) = EXTENDED MEMORY MST ADDRESS OF SHARED
  4362. * DEVICE.
  4363. *
  4364. * USES T7, CM - CM+4, EA - EA+4.
  4365. *
  4366. * MACROS SFA.
  4367.  
  4368.  
  4369. SSD SUBR ENTRY/EXIT
  4370. SSD1 SOD T7
  4371. ZJN SSDX IF END OF EST
  4372. SFA EST,T7
  4373. CRD CM
  4374. LDD CM
  4375. SHN 21-13
  4376. PJN SSD1 IF NOT MASS STORAGE
  4377. SHN 13-11
  4378. PJN SSD1 IF NOT SHARED
  4379. LDD CM+4 READ EXTENDED MEMORY ADDRESS OF MST
  4380. SHN 3
  4381. ADK SDGL
  4382. CRD EA
  4383. UJN SSDX RETURN
  4384.  
  4385. ERRNG EBUF-* *2EA* OVERFLOW
  4386. QUAL *
  4387. TITLE MTE/2EB - EXTENDED MEMORY ERROR RECOVERY.
  4388. IDENT 2EB,O2EB EXTENDED MEMORY ERROR RECOVERY.
  4389. *COMMENT MTE - EXTENDED MEMORY ERROR RECOVERY.
  4390. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  4391. O2EB EQU PPFW
  4392. ORG O2EB
  4393. SPACE 4,30
  4394. *** 2EB - EXTENDED MEMORY ERROR RECOVERY.
  4395. *
  4396. * THERE EXIST FAILURE MODES FOR BOTH ECS AND ESM WHERE
  4397. * AN ERROR IS PRESENT IN THE DATA STORED IN MEMORY BUT
  4398. * NOTHING IS INHERENTLY WRONG WITH THE MEMORY. THE DATA
  4399. * WORD MAY BE REWRITTEN WITH CORRECT DATA THUS ELIMINATING
  4400. * THE ERROR ON FUTURE READS. THIS IS PRIMARILY A FAILURE
  4401. * MODE ASSOCIATED WITH ECS WHERE A BIT VALUE READ FROM
  4402. * MEMORY IS NOT DETECTED PROPERLY. DUE TO THE DESTRUCTIVE
  4403. * READ THE BAD DATA IS SUBSEQUENTLY REWRITTEN. FOR ESM
  4404. * CERTAIN TYPES OF DATA CORRUPTION DURING THE WRITE WILL
  4405. * CAUSE THE GENERATION OF AN INVALID SECDED CODE. THIS
  4406. * IS ONE WAY A HARD ERROR CAN BE DETECTED DURING A READ.
  4407. * HARD READ ERRORS ON ESM ARE AN EXTREMELY RARE SITUATION.
  4408. * THE ERROR RECOVERY LOGIC IMPLEMENTED IN THE FOLLOWING
  4409. * CODE IS PROVIDED PRIMARILY FOR THE SUPPORT OF ECS AS
  4410. * A LINK DEVICE. IT IS POSSIBLE THAT THIS LOGIC COULD
  4411. * CORRECT AN ERROR IN ESM AS WELL.
  4412. *
  4413. * *2EB* IS CALLED BY *MTE* WHEN THE *COMI* FLAG BITS IS SET,
  4414. * INDICATING EXTENDED MEMORY ERRORS WERE DETECTED BY SOME
  4415. * SOME MACHINE.
  4416. *
  4417. * *2EB* PERFORMS THE FOLLOWING ERROR RECOVERY FUNCTIONS.
  4418. *
  4419. * 1. FAST ATTACH FILE PARITY ERROR PROCESSING.
  4420. * FOR EACH GLOBAL FAST ATTACH FILE FOUND IN THE FNT
  4421. * THE FILE NAME, LOCAL ACCESS COUNT, AND FAMILY NAME
  4422. * WORDS OF THE FAT ARE GENERATED FROM INFORMATION IN
  4423. * CM AND THEN WRITTEN TO EM. ALL LOCAL ACCESS COUNTS
  4424. * ARE SUBSEQUENTLY READ FROM EM WHICH PROVIDES THE
  4425. * INFORMATION NEEDED TO GENERATE THE GLOBAL ACCESS
  4426. * COUNT WORD. ONCE GENERATED, THE GLOBAL COUNT WORD
  4427. * IS WRITTEN BACK TO EM COMPLETING THE RESTORATION OF
  4428. * A FAT TABLE ENTRY.
  4429. * 2. MST/TRT PARITY ERROR PROCESSING.
  4430. * THE ERROR RECOVERY ALGORITHM FOR MST/TRT ERROR
  4431. * RECOVERY DEPENDS ON BEING ABLE TO READ THE *SDGL*
  4432. * MST WORD FOR THE DEVICE. WHEN THE *SDGL* WORD READ
  4433. * FROM EM INDICATES THAT THIS MACHINE HAS THE
  4434. * UP-TO-DATE COPY OF THE DEVICE TABLE THESE TABLES
  4435. * ARE REWRITTEN TO EM.
  4436.  
  4437.  
  4438. RPE SUBR ENTRY/EXIT
  4439.  
  4440. * ISSUE MESSAGE TO SYSTEM CONTROL POINT.
  4441.  
  4442. LDK NCPL
  4443. CRD CM
  4444. AOD CM+1
  4445. SHN 7
  4446. ADN MS2W
  4447. CWM RPEB,TR *MST/TRT PARITY ERROR.*
  4448.  
  4449. * PROCESS FAST ATTACH FILES.
  4450.  
  4451. LDN 20 SET RETRY COUNT
  4452. STD EA+4
  4453. RPE1 SOD EA+4
  4454. ZJN RPEX IF UNABLE TO INTERLOCK FAT
  4455. SFLAG FATI,RPE1 SET FAT INTERLOCK
  4456. LDM TPPR+AFAM
  4457. LMC AFP
  4458. ZJP RPE8 IF *AFAM* PRESET NOT EXECUTED YET
  4459.  
  4460. * SEARCH FNT FOR GLOBAL FAST ATTACH FILES.
  4461.  
  4462. LDN FNTP
  4463. CRD OR
  4464. RPE2 LDN FNTE ADVANCE FNT ADDRESS
  4465. RAD OR+1
  4466. SHN -14
  4467. RAD OR READ FST
  4468. SHN 14
  4469. ADD OR+1
  4470. ADK FNTG
  4471. CRD FN
  4472. ADK FSTG-FNTG
  4473. CRD FS
  4474. SOD OR+2
  4475. MJP RPE8 IF END OF FNT
  4476. LDD FN+4
  4477. SHN -6
  4478. LMN FAFT
  4479. NJN RPE2 IF NOT FAST ATTACH FILE
  4480. LDD FN+3
  4481. LPN 77
  4482. ZJN RPE2 IF NOT GLOBAL FAST ATTACH
  4483. SHN FATS COMPUTE FAT ADDRESS
  4484. ADM AFAA+1
  4485. STD EA+1
  4486. SHN -14
  4487. ADM AFAA
  4488. LPN 77
  4489. STD EA
  4490. LDD FS SAVE EQUIPMENT AND TRACK
  4491. LPC 777
  4492. STD T7
  4493. LDD FS+1
  4494. STD T6
  4495. LDD FN+3 SET FILE NAME IN FAT WORD 0
  4496. SCN 77
  4497. STD FN+3
  4498. LDN 0
  4499. STD FN+4
  4500. WRITEM 1,FN WRITE FILE NAME TO FAT
  4501. LDK MMFL BUILD LOCAL FAT WORD
  4502. CRD CM
  4503. LDM MI+1 ADVANCE ADDRESS TO LOCAL FAT WORD
  4504. ADN 1
  4505. RAD EA+1
  4506. SHN -14
  4507. RAD EA
  4508. LDD CM SET MACHINE ID IN LOCAL FAT WORD
  4509. STD FS
  4510. LDN 0
  4511. STD FS+1
  4512. WRITEM 1,FS WRITE LOCAL FAT WORD
  4513. LDN MXMF+1 ADVANCE TO FAMILY NAME WORD
  4514. SBM MI+1
  4515. RAD EA+1
  4516. SHN -14
  4517. RAD EA
  4518. SFA EST,T7 READ FAMILY NAME FROM MST
  4519. ADK EQDE
  4520. CRD CM
  4521. LDD CM+4
  4522. SHN 3
  4523. ADN PFGL
  4524. CRD FN
  4525. LDN 0
  4526. STD FN+4
  4527. WRITEM 1,FN WRITE FAMILY NAME WORD
  4528.  
  4529. * READ LOCAL WORDS CHECKING FOR ERRORS AND ACCUMULATING COUNTS.
  4530.  
  4531. LDN ZERL CLEAR GLOBAL COUNTS
  4532. CRD FN
  4533. LDD T6 SET TRACK
  4534. STD FN+1
  4535. LDN MXMF SET COUNTER
  4536. STD T7
  4537. RPE3 SOD EA+1 ADVANCE BACKWARD FROM FAMILY NAME WORD
  4538. PJN RPE4 IF NO UNDERFLOW
  4539. AOD EA+1
  4540. SOD EA
  4541. RPE4 SOD T7
  4542. MJN RPE6 IF END OF LOCAL WORDS TO READ
  4543. READEM 1,FS,RPE5 NOTE IF ERROR
  4544. LDD FS+4
  4545. RAD FN+4
  4546. SHN -14
  4547. NJN RPE6 IF INVALID BITS SET
  4548. LDD FS+3
  4549. RAD FN+3
  4550. SHN -14
  4551. NJN RPE6 IF INVALID BITS SET
  4552. LDD FS+2
  4553. RAD FN+2
  4554. SHN -14
  4555. ZJN RPE3 IF NOT INVALID BITS SET
  4556. RPE5 AOM RPEA ADVANCE ERROR COUNT
  4557. UJN RPE7 ADVANCE TO NEXT FILE
  4558.  
  4559. RPE6 WRITEM 1,FN WRITE GLOBAL WORD
  4560. RPE7 LJM RPE2 ADVANCE TO NEXT FILE
  4561.  
  4562. RPE8 CFLAG FATI CLEAR FAT INTERLOCK
  4563.  
  4564. * PROCESS MST/TRT EXTENDED MEMORY ERRORS.
  4565.  
  4566. LDN 20 SET RETRY COUNT
  4567. STD EA+4
  4568. RPE9 SOD EA+4
  4569. ZJP RPEX IF UNABLE TO INTERLOCK
  4570. SFLAG TRTI,RPE9 SET TRT INTERLOCK
  4571.  
  4572. * SEARCH EST FOR SHARED DEVICES.
  4573.  
  4574. LDN ESTP
  4575. CRD OR
  4576. LDN NOPE-1
  4577. STD OR
  4578. UJN RPE11 ENTER SEARCH LOOP
  4579.  
  4580. RPE10 AOM RPEA NOTE ERROR
  4581. RPE11 AOD OR
  4582. LMD OR+3
  4583. ZJP RPE14 IF END OF DEVICES
  4584. SFA EST,OR
  4585. ADK EQDE
  4586. CRD FN
  4587. LDD FN
  4588. LPC 5020
  4589. LMC 5000
  4590. NJN RPE11 IF NOT MMF SHARED
  4591. LDD FN+4 READ *SDGL* MST WORD FROM EXTENDED MEMORY
  4592. SHN 3
  4593. ADK SDGL
  4594. CRD EA
  4595. LDK SDGL
  4596. RAD EA+1
  4597. SHN -14
  4598. RAD EA
  4599. READEM 1,FS,RPE10 NOTE ERROR ON EXTENDED MEMORY READ
  4600. LDD FS+4
  4601. LPN 77
  4602. NJN RPE11 IF DEVICE INTERLOCKED
  4603. LDD EA+1 CHECK DATA READ
  4604. SBN SDGL
  4605. SBD FS+1
  4606. LMD EA
  4607. SBD FS
  4608. NJP RPE10 IF ERROR IN ADDRESS
  4609. LDD EA+4
  4610. LMD FS+4
  4611. NJP RPE11 IF NOT UP-TO-DATE IN THIS MACHINE
  4612. LDD EA+3
  4613. LMD FS+3
  4614. NJP RPE11 IF NOT UP-TO-DATE IN THIS MACHINE
  4615. LDD EA+2
  4616. LMD FS+2
  4617. NJP RPE11 IF NOT UP-TO-DATE IN THIS MACHINE
  4618.  
  4619. * THIS MACHINE HAS THE UP-TO-DATE COPY OF THE MST/TRT.
  4620. * WRITE THESE TABLES TO EXTENDED MEMORY TO CORRECT ANY ERRORS.
  4621.  
  4622. LDD FN+4 RESET ADDRESS OF MST
  4623. SHN 3
  4624. ADK SDGL
  4625. CRD EA
  4626. ADK TDGL-SDGL
  4627. CRM MBUF,TR
  4628. WRITEM SDGL+1,MBUF WRITE MST GLOBAL WORDS
  4629. LDM MBUF+2 SET TRT LENGTH
  4630. STD T7
  4631. LDD HN SET BUFFER SIZE
  4632. STD WC
  4633. LDD FN+4 GET TRT ADDRESS
  4634. SHN 3
  4635. ADN TRLL
  4636. CRD FS
  4637. LDK TRST*100-MSST*100 ADVANCE EM ADDRESS TO TRT
  4638. RAD EA+1
  4639. SHN -14
  4640. RAD EA
  4641. RPE12 LDD T7
  4642. SBD WC
  4643. PJN RPE13 IF FULL BUFFER TO WRITE
  4644. RAD WC
  4645. ZJP RPE11 IF END OF TRT
  4646. LDN 0
  4647. RPE13 STD T7
  4648. LDD FS+3 READ TRT BUFFER
  4649. SHN 14
  4650. ADD FS+4
  4651. CRM TBUF,WC
  4652. STD FS+4 ADVANCE CM ADDRESS
  4653. SHN -14
  4654. STD FS+3
  4655. WRITEM *,TBUF
  4656. LDD WC ADVANCE EXTENDED MEMORY ADDRESS
  4657. RAD EA+1
  4658. SHN -14
  4659. RAD EA
  4660. UJP RPE12 ADVANCE TO NEXT BUFFER
  4661.  
  4662. * CLEAR TRTI FLAG INTERLOCK.
  4663.  
  4664. RPE14 CFLAG TRTI
  4665.  
  4666. * CHECK FOR COMPLETION OF ERROR PROCESSING.
  4667.  
  4668. LDM RPEA
  4669. NJN RPE15 IF INCOMPLETE ERROR PROCESSING
  4670. CFLAG COMI,NW CLEAR ERROR PROCESSING FLAG BIT
  4671. RPE15 LJM RPEX RETURN
  4672.  
  4673. RPEA CON 0 ERROR COUNTER
  4674. RPEB DATA C* MST/TRT PARITY ERROR.*
  4675. CCOMI VFD 24/70000000+.COMI
  4676.  
  4677. ERRNG EBUF-* *2EB* OVERFLOW
  4678. SPACE 4,10
  4679. TITLE MTE/7EA - EXTENDED MEMORY ERROR PROCESSING.
  4680. QUAL 7EA
  4681. IDENT 7EA,L7EA
  4682. *COMMENT MTE - EXTENDED MEMORY ERROR PROCESSING.
  4683. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  4684. SPACE 4,10
  4685. L7EA EQU EPFW+3 LOAD ADDRESS FOR *7EA*
  4686. ORG L7EA
  4687. SPACE 4,15
  4688. *** 7EA - EXTENDED MEMORY ERROR PROCESSING.
  4689. *
  4690. * *7EA* IS CALLED WHEN AN ERROR IS DETECTED IN COMMUNICATING
  4691. * WITH EXTENDED MEMORY.
  4692. *
  4693. * *7EA* PERFORMS THE FOLLOWING RECOVERY PROCEEDURES.
  4694. * 1. REVERSE THE ORDER OF CHANNEL ASSIGNMENT PRIORITY.
  4695. * 2. RELEASE AND REQUEST THE CHANNEL TO TRY ANOTHER
  4696. * CHANNEL WHEN PRESENT.
  4697. * 3. RETRY THE ENTIRE OPERATION, INCLUDING STEPS 1 AND 2
  4698. * UP TO 8 TIMES.
  4699. * 4. THE MESSAGE *MMF LINK DEVICE ERROR.* IS DISPLAYED AT
  4700. * THE SYSTEM CONTROL POINT.
  4701.  
  4702.  
  4703. PER BSS 0 ENTRY
  4704.  
  4705. * SEARCH TABLE FOR OPERATION TYPE.
  4706.  
  4707. PER1 LDN 2
  4708. RAD T1
  4709. LDI T1
  4710. ZJN * IF END OF TABLE
  4711. LMM SFN
  4712. NJN PER1 IF FUNCTION CALLER NOT FOUND
  4713. LDM 1,T1
  4714. STD T2
  4715. LMC CKS
  4716. NJN PER3 IF NOT CALLED FROM CHECK STATUS
  4717. LDM CKS
  4718. LMC RDWX
  4719. ZJN PER2 IF READ OPERATION
  4720. LDK WTW-RDW
  4721. PER2 ADC RDW
  4722. STD T2
  4723. PER3 LDM RECA
  4724. NJN PER4 IF EXIT ADDRESS PREVIOUSLY SET
  4725. LDI T2 SET EXIT ADDRESS
  4726. STM RECA
  4727. LDC REC SET EXIT TO *REC*
  4728. STI T2
  4729.  
  4730. * (T2) = *RDW*, *WTW*, OR *IFR*.
  4731.  
  4732. PER4 AOD RC INCREMENT ERROR COUNTER
  4733.  
  4734. * DISPLAY ERROR MESSAGE AT SYSTEM CONTROL POINT.
  4735.  
  4736. LDK NCPL
  4737. CRD CM
  4738. AOD CM+1
  4739. SHN 7
  4740. ADN MS2W
  4741. CWM PERA,TR *MMF LINK DEVICE ERROR.*
  4742. LDD EA SAVE PARITY ERROR DATA
  4743. STM PERB+2
  4744. LDD EA+1
  4745. STM PERB+3
  4746. LDD WC
  4747. STM PERB+1
  4748. LDM CKSA
  4749. STM PERB
  4750. LDD ST
  4751. STM PERB+4
  4752.  
  4753. * REVERSE ORDER OF CHANNEL ASSIGNMENT PRIORITY.
  4754.  
  4755. LDD T5
  4756. STD CM+1
  4757. LDK RVCS
  4758. STD CM+3
  4759. MONITOR SCSM
  4760.  
  4761. * ATTEMPT TO TRY OTHER CHANNEL BY RELEASING AND REQUESTING.
  4762.  
  4763. LDN 0 RELEASE CHANNEL
  4764. RJM DSW
  4765. LDN 1 REQUEST CHANNEL
  4766. RJM DSW
  4767. LDD RC
  4768. SBN 10
  4769. PJN PER6 IF UNRECOVERED ERROR
  4770. LJM 3,T2 RETRY OPERATION
  4771.  
  4772. * PROCESS UNRECOVERED ERROR.
  4773.  
  4774. PER6 LCN 2 CHECK FOR ERROR PROCESSOR
  4775. STD T1
  4776. LDM RECA SET EXIT ADDRESS
  4777. STD T2
  4778. PER7 LDN 2
  4779. RAD T1
  4780. LDM TERP,T1
  4781. ZJN PER8 IF END OF TABLE
  4782. LMD T2
  4783. NJN PER7 IF ERROR PROCESSOR NOT FOUND
  4784. LDM TERP+1,T1 GET ERROR PROCESSOR ADDRESS
  4785. STD T2
  4786. PER8 LDN 0 CLEAR ERROR INDICATION
  4787. STD RC
  4788. STM RECA
  4789. LDN 1 RETURN ERROR STATUS
  4790. LJM 0,T2 RETURN
  4791.  
  4792. PERA DATA C*MMF LINK DEVICE ERROR.*
  4793. PERB CON 0,0,0,0,0 PARITY ERROR INFORMATION
  4794. TPER SPACE 4,10
  4795. ** TPER - TABLE OF FUNCTION CALLER ADDRESSES.
  4796. *
  4797. * ENTRY = TWO WORDS.
  4798. * WORD 1 = *SFN* CALLER RETURN ADDRESS.
  4799. * WORD 2 = ROUTINE CALLING *SFN*, EITHER *RDW*, *WTW* OR *CKS*.
  4800.  
  4801.  
  4802. TPER BSS 0
  4803. LIST G
  4804. ECHO 1,A=(".SFN")
  4805. CON A
  4806. LIST *
  4807. TERP SPACE 4,10
  4808. ** TERP - TABLE OF ERROR PROCESSOR ADDRESSES.
  4809. *
  4810. * ENTRY = TWO WORDS.
  4811. * WORD 1 = *RDW/WTW* CALLER RETURN ADDRESS.
  4812. * WORD 2 = ERROR PROCESSOR ADDRESS FOR *RDW/WTW*.
  4813.  
  4814.  
  4815. TERP BSS 0
  4816. LIST G
  4817. ECHO 1,A=(".ERP")
  4818. CON A
  4819. LIST *
  4820.  
  4821. BSS 10000-* SPARES
  4822. CON PER-1 (T0) = ENTRY ADDRESS - 1
  4823. CON TPER-2 (T1) = TABLE SEARCH POINTER
  4824. CON RECA (T2) = POINTER TO RECOVERY ADDRESS
  4825. ERRNZ 10003-* CODE DOES NOT WRAP PP CORRECTLY
  4826.  
  4827. OVLL EQU *-L7EA LENGTH OF OVERLAY
  4828. ERRNZ OVLL/5*5-OVLL CODE DOES NOT WRAP PP CORRECTLY
  4829.  
  4830. QUAL *
  4831. SPACE 4
  4832. END