Table of Contents

1MV

Table Of Contents

  • [00007] 1MV - MASS STORAGE AND MEDIA VERIFICATION.
  • [00009] MASS STORAGE AND MEDIA VERIFICATION.
  • [00103] MACRO DEFINITIONS.
  • [00105] FCN - DEFINE FUNCTION PROCESSOR.
  • [00132] OVERLAY - DEFINE THE SECONDARY OVERLAY(S).
  • [00151] “.O” - TEXT
  • [00160] ENTRY - DEFINE OVERLAY ENTRY POINT.
  • [00175] VERIFY - DEFINE HARDWARE VERIFICATION ROUTINE FOR EQUIPMENT.
  • [00252] MAIN PROGRAM.
  • [00253] MAIN PROGRAM.
  • [00266] FUNCTION PROCESSORS.
  • [00268] DVFC - DEVICE VERIFICATION AND CLEAR SUSPECT.
  • [00285] ONFC - DEVICE VERIFICATION AND SET DEVICE *ON*.
  • [00302] IDFC - DEVICE VERIFICATION AND SET DEVICE *IDLE*.
  • [00317] LVFC - LABEL VERIFICATION AND SET DEVICE *OFF*.
  • [00331] MVFC - MEDIA VERIFICATION OF A PARTICULAR TRACK.
  • [00394] UCFC - DATA PATH VERIFICATION AND SET CHANNEL STATE = *UP*.
  • [00434] SCFC - PERFORM DISK SWEEP CYCLING.
  • [00444] SUBROUTINES.
  • [00446] AEC - ANALYZE ERROR CODE.
  • [00510] CDA - CALCULATE PHYSICAL DISK ADDRESS.
  • [00622] CEQ - CLEAR ERRORS FROM UNIT I/O QUEUE.
  • [00660] CFE - CHECK FOR ERRORS.
  • [00809] CSF - CALL *SEQM* SUBFUNCTION.
  • [00841] CVI - CLEAR VERIFICATION INTERLOCK.
  • [00864] DCH - DOWN CHANNEL.
  • [00895] DHV - PERFORM DEVICE VERIFICATION.
  • [00924] FBP - FILL BUFFER WITH PATTERN TO WRITE.
  • [00941] FDC - FORMAT 895 DEVICE MAINTENANCE TRACK.
  • [00968] HVE - HARDWARE VERIFICATION FOR EXTENDED MEMORY DEVICES.
  • [01002] HVL - HARDWARE VERIFICATION FOR RMS DEVICES.
  • [01099] IBM - ISSUE BML MESSAGE.
  • [01123] IHD - INITIATE HYDRA DIAGNOSTICS.
  • [01159] IPE - ISSUE REMOVABLE PACK EVENT.
  • [01188] LBV - LABEL VERIFICATION.
  • [01235] RCS - READ CONSECUTIVE SECTORS.
  • [01290] RAE - RELEASE ASSIGNED EQUIPMENT.
  • [01307] RLT - REPAIR LABEL TRACK.
  • [01343] SDA - SET DEVICE AVAILABLE.
  • [01380] SNC - SELECT NEXT CHANNEL.
  • [01413] SUT - SCAN (BUFFERED I/O) UNIT TABLE.
  • [01462] SVF - SET VERIFICATION FAILURE COUNT.
  • [01492] SVI - SET VERIFICATION INTERLOCK.
  • [01523] VBD - VERIFY BUFFER DATA.
  • [01576] VLS - VERIFY LABEL SECTOR.
  • [01724] VLT - VERIFY LEVEL TWO LABEL.
  • [01795] VSF - VERIFY SYSTEM FILE.
  • [01836] WCS - WRITE CONSECUTIVE SECTORS.
  • [01894] WSF - WRITE SYSTEM FILE.
  • [01940] BUFFERS.
  • [01983] PRESET TABLES.
  • [01985] TDVC - TABLE OF DEVICE CONSTANTS.
  • [02024] TFCN - TABLE OF FUNCTION PROCESSORS.
  • [02042] PRESET.
  • [02044] PRS - PRESET.
  • [02243] PRESET SUBROUTINES.
  • [02245] ECA - ENABLE CONTROLLER ACTIVITY.
  • [02369] ELM - ERROR LOG MESSAGE PROCESSOR.
  • [02518] TFCN - TABLE OF SYMPTOM CODE DEPENDENT PROCESSORS.
  • [02635] FMT - FORMAT 895 DEVICE MAINTENANCE TRACK.
  • [02755] FNC - FUNCTION CHANNEL.
  • [02787] VTE - VERIFY TRT EOI SECTORS.
  • [02824] CMI - CHECK MACHINE RECOVERY TABLE INTERLOCK.
  • [02872] CPF - CHECK PRESERVED FILE STATUS.
  • [02910] CPS - CHECK FOR PRESERVED FILE STATUS.
  • [02931] CPI - CHECK MMF PERMANENT FILE INTERLOCKS.
  • [02954] FEB - FIND EOI TRT BYTE.
  • [02977] FFT - FIND FIRST TRACK LINK.
  • [02998] FTP - FIND TRT BYTE PATTERN.
  • [03055] PCV - PRESET CONDITIONS FOR *VTE*.

Source Code

1MV.txt
  1. IDENT 1MV,IMV
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. *COMMENT 1MV - MASS STORAGE AND MEDIA VERIFICATION.
  6. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  7. TITLE 1MV - MASS STORAGE AND MEDIA VERIFICATION.
  8. SPACE 4,10
  9. *** 1MV - MASS STORAGE AND MEDIA VERIFICATION.
  10. *
  11. * R. K. MYERS. 84/11/19.
  12. * W. E. GOEBEL. 85/04/12.
  13. SPACE 4,10
  14. *** *1MV* PERFORMS THE FOLLOWING MASS STORAGE VALIDATION
  15. * FUNCTIONS.
  16. *
  17. * 0 = DVFC = MASS STORAGE DEVICE VERIFICATION.
  18. * PERFORM A PHYSICAL AND LOGICAL VERIFICATION OF A MASS
  19. * STORAGE EQUIPMENT.
  20. * PHYSICAL VERIFICATION INVOLVES WRITING AND READING
  21. * THE MAINTENANCE CYLINDER ON ALL UNITS OF A DEVICE
  22. * THROUGH ALL CHANNELS OF ACCESS. THE DATA READ IS
  23. * VERIFIED AGAINST THE DATA WRITTEN.
  24. * LOGICAL VERIFICATION INVOLVES THE READING OF THE
  25. * LABEL SECTOR ON ALL UNITS OF A DEVICE THROUGH ALL
  26. * CHANNELS OF ACCESS. THE LABEL READ IS VERIFIED FOR
  27. * THE PROPER DATA.
  28. *
  29. * 1 = ONFC = SET DEVICE IN *ON* STATE.
  30. * THE DEVICE IS TURNED ON UPON SUCCESSFUL VERIFICATION.
  31. *
  32. * 2 = IDFC = SET DEVICE IN *IDLE* STATE.
  33. * SET THE DEVICE IN THE *IDLE* STATE UPON A SUCCESSFULL
  34. * VERIFICATION.
  35. *
  36. * 3 = OFFC = SET DEVICE IN *OFF* STATE.
  37. * SET THE DEVICE IN THE *OFF* STATE UPON A SUCCESSFULL
  38. * LABEL VERIFICATION. THE PHYSICAL VERIFICATION IS
  39. * NOT PERFORMED.
  40. *
  41. * 4 = MVFC = MEDIA VERIFICATION.
  42. * A LOGICAL TRACK IS WRITTEN AND READ SECTOR
  43. * BY SECTOR THROUGH ALL CHANNELS OF ACCESS.
  44. * IF NO ERRORS ARE ENCOUNTERED, THE TRACK FLAW
  45. * IS CLEARED AND THE TRACK CAN BE REUSED.
  46. *
  47. * 5 = UCFC = MASS STORAGE DATA PATH VERIFICATION AND SET
  48. * CHANNEL STATE = *UP*.
  49. * PERFORM A PHYSICAL AND LOGICAL VERIFICATION OF A
  50. * MASS STORAGE EQUIPMENT USING A SPECIFIED CHANNEL.
  51. * PHYSICAL AND LOGICAL VERIFICATION ARE PERFORMED IN THE
  52. * SAME FASHION AS FOR FUNCTION *DVFC* WITH THE EXCEPTION
  53. * THAT ONLY THE SPECIFIED CHANNEL IS USED. UPON
  54. * SUCCESSFUL VERIFICATION, THE CHANNEL STATE IS CHANGED
  55. * TO *UP*.
  56. *
  57. * 6 = SCFC = DISK SWEEP CYCLING.
  58. * PERFORM THE NEXT SEEK SEQUENCE IN THE SWEEP CYCLING
  59. * ALGORITHM FOR ALL PHYSICAL UNITS OF THE DEVICE WHOSE
  60. * EST ORDINAL WAS PASSED IN THE *1MV* CALL.
  61. SPACE 4,15
  62. *** CALL.
  63. *
  64. *T 18/1MV, 6/CP, 12/EST, 6/FCN, 1/R, 17/PAR.
  65. *
  66. * CP CALLING CONTROL POINT.
  67. * EST EST ORDINAL TO PROCESS.
  68. * FCN FUNCTION CODE.
  69. * R LABEL REPAIR HAS BEEN ATTEMPTED.
  70. * PAR = TRACK NUMBER TO TEST (FUNCTION *MVFC*).
  71. * = CHANNEL NUMBER, INCLUDING CONCURRENCY FLAG (FUNCTION
  72. * *UCFC*).
  73. SPACE 4,10
  74. ** COMMON DECKS.
  75.  
  76.  
  77. *CALL COMPMAC
  78. *CALL COMPCHI
  79. *CALL COMSCPS
  80. *CALL COMSDFS
  81. QUAL DSL
  82. *CALL COMSDSL
  83. QUAL *
  84. PLSS EQU /DSL/PLSS
  85. *CALL COMSEVT
  86. *CALL COMSHIO
  87. *CALL COMSLSD
  88. QUAL MMF
  89. *CALL COMSMMF
  90. QUAL *
  91. MISD EQU /MMF/MISD
  92. *CALL COMSMSP
  93. *CALL COMSMST
  94. *CALL COMSPFM
  95. *CALL COMSPIM
  96. *CALL COMSSSE
  97. *CALL COMSWEI
  98. *CALL COMSZOL
  99. *CALL COMS1DS
  100. LIST X
  101. *CALL COMS1MV
  102. LIST *
  103. TITLE MACRO DEFINITIONS.
  104. FCN SPACE 4,10
  105. ** FCN - DEFINE FUNCTION PROCESSOR.
  106. *
  107. * FN FCN P,R,E
  108. *
  109. * FN FUNCTION CODE.
  110. * P NAME OF FUNCTION PROCESSOR.
  111. * R NAME OF REPAIR PROCESSOR (HANDLES REPAIRABLE ERRORS).
  112. * E ERRORS THAT CAN BE REPAIRED BY *R*.
  113. *
  114. * TABLE GENERATED.
  115. *
  116. *T,TN 12/ P,12/ R,12/ E
  117.  
  118.  
  119. PURGMAC FCN
  120.  
  121. MACRO FCN,FN,P,R,E
  122. MACREF FCN
  123. ORG TFCN+3*FN
  124. LOC FN
  125. .A IFC NE,$P$$
  126. CON P,R,E
  127. .A ELSE
  128. LOC *O
  129. .A ENDIF
  130. ENDM
  131. OVERLAY SPACE 4,10
  132. ** OVERLAY - DEFINE THE SECONDARY OVERLAY(S).
  133. *
  134. * OVERLAY (TEXT)
  135. * ENTRY *TEXT* = TEXT OF SUBTITLE.
  136.  
  137.  
  138. .N SET 0
  139. OVLB MICRO 1,, 2V OVERLAY NAME
  140.  
  141.  
  142. PURGMAC OVERLAY
  143.  
  144. OVERLAY MACRO TEXT
  145. MACREF OVERLAY
  146. QUAL
  147. .N SET .N+1
  148. .M MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
  149. .O MICRO 1,3, "OVLB"".M"
  150. QUAL ".O"
  151. TITLE ".O" - TEXT
  152. IDENT ".O",OVLA TEXT
  153. *COMMENT 1MV - TEXT
  154. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  155. ORG OVLA
  156. LJM * ENTRY/EXIT
  157. UJN *-2 OVERLAY EXIT ADDRESS
  158. ENDM
  159. ENTRY SPACE 4,10
  160. ** ENTRY - DEFINE OVERLAY ENTRY POINT.
  161. *
  162. * NAME ENTRY
  163. * NAME = NAME OF ENTRY ADDRESS.
  164.  
  165.  
  166. PURGMAC ENTRY
  167.  
  168. MACRO ENTRY,NAME
  169. MACREF ENTRY
  170. QUAL
  171. NAME BSS 0 ENTRY
  172. QUAL *
  173. ENDM
  174. VERIFY SPACE 4,10
  175. ** VERIFY - DEFINE HARDWARE VERIFICATION ROUTINE FOR EQUIPMENT.
  176. *
  177. * NAME ENTRY EQ
  178. * NAM = NAME OF ENTRY ADDRESS.
  179. * EQ = EQUIPMENT TYPE(S) TO VERIFY.
  180.  
  181.  
  182. PURGMAC VERIFY
  183. MACRO VERIFY,NAM,EQ
  184. MACREF VERIFY
  185. NAM SUBR ENTRY/EXIT
  186. IRP EQ
  187. PRC._EQ EQU NAM
  188. IRP
  189. ENDM
  190. SPACE 4,20
  191. **** DIRECT LOCATION ASSIGNMENTS.
  192.  
  193.  
  194. BEGIN BSSN 16
  195. T8 BSSN 1 SCRATCH
  196. T9 BSSN 1 SCRATCH
  197. CN BSSN 5 CM WORD BUFFER (5 LOCATIONS)
  198. CC BSSN 1 CURRENT CHANNEL ORDINAL FOR DEVICE
  199. DA BSSN 1 CHANNEL COUNT - 1 FOR DEVICE
  200. ES BSSN 5 EST ENTRY (5 LOCATIONS)
  201. EI BSSN 1 SCRATCH
  202. FC BSSN 1 FUNCTION CODE
  203. FP BSSN 1 *SEQM* FUNCTION PARAMETER
  204. HC BSSN 1 HEAD PROCESSING COUNTER
  205. MT BSSN 1 MEDIA ERROR THRESHOLD (1MV)
  206. * SCRATCH CELL (2VA)
  207. NS BSSN 1 NUMBER OF SECTORS TO PROCESS
  208. SU BSSN 1 SINGLE UNIT SECTOR LIMIT
  209. DP BSSN 5 DEVICE SEEK PARAMETERS (5 LOCATIONS)
  210. ERRNG 50-* DIRECT CELL OVERFLOW
  211. BSSN 57-*
  212. SP BSSN 1 STATISTICS BUFFER POINTER
  213. ERRNG 70-* DIRECT CELL OVERFLOW
  214. END BSSN
  215.  
  216. EQ EQU IR+2 EQUIPMENT ORDINAL TO PROCESS
  217. ****
  218. SPACE 4,10
  219. **** ASSEMBLY CONSTANTS.
  220.  
  221.  
  222. BUFL EQU 502 PP BUFFER SIZE
  223. BUFP EQU 5252 BUFFER WORD PATTERN FOR WRITE/READ TEST
  224. CH EQU 0 MASS STORAGE CHANNEL
  225. DVSC EQU 3 DEVICE VERIFICATION SECTOR COUNT
  226. FCOC EQU 10 OPERATION COMPLETE FUNCTION CODE
  227. FCGS EQU 12 GENERAL STATUS FUNCTION CODE
  228. FCFP EQU 16 FORMAT 895 FUNCTION CODE
  229. FPBL EQU 22 PARAMETER BLOCK LENGTH FOR 895 FORMATTING
  230. METH EQU 6 MAINTENANCE CYLINDER MEDIA ERROR THRESHOLD
  231.  
  232.  
  233. ** STATISTICS BUFFER DEFINITION.
  234.  
  235.  
  236. BEGIN BSSN 0
  237. WCDB BSSN 1 WRITE ERROR CODE BYTE
  238. RCDB BSSN 1 READ ERROR CODE BYTE
  239. FMTB BSSN 1 895 FORMATTING ERROR COUNT BYTE
  240. WCTB BSSN 1 WRITE ERROR COUNT BYTE
  241. RCTB BSSN 1 READ ERROR COUNT BYTE
  242. VCTB BSSN 1 VERIFY ERROR COUNT BYTE
  243. FMNB BSSN 3 FAMILY/PACK NAME BYTES
  244. DNMB BSSN 1 DEVICE NUMBER BYTE
  245. EMNB BSSN 1 EQUIPMENT MNEMONIC BYTE
  246. LREB BSSN 1 LABEL READ ERROR CODE
  247. LEFB BSSN 1 LABEL ERROR FLAGS
  248. MXNB BSSN 0 MAXIMUM STATUS BUFFER BYTES
  249. END BSSN
  250. TBUFL EQU 2*10*MXNB TOTAL BUFFER LENGTH IN PP BYTES
  251. ****
  252. TITLE MAIN PROGRAM.
  253. ** 1MV - MAIN PROGRAM.
  254.  
  255.  
  256. ORG PPFW
  257. IMV LJM PRS PRESET PROGRAM
  258. DPP SPACE 4,10
  259. ** DROP PP.
  260.  
  261.  
  262. DPP RJM RAE RELEASE ASSIGNED EQUIPMENT
  263. RJM CVI CLEAR VERIFICATION INTERLOCK
  264. MONITOR DPPM DROP PP
  265. LJM PPR EXIT TO PP RESIDENT
  266. TITLE FUNCTION PROCESSORS.
  267. DVFC SPACE 4,10
  268. ** DVFC - DEVICE VERIFICATION AND CLEAR SUSPECT.
  269. *
  270. * ENTRY (IR+2) = EST ORDINAL TO VERIFY.
  271. * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *DVFC*.
  272.  
  273.  
  274. DVF ENTRY ENTRY
  275. RJM DHV PERFORM DEVICE VERIFICATION
  276. RJM LBV PERFORM LABEL VERIFICATION
  277. DVF1 RJM CFE CHECK FOR ERRORS
  278. MJN DVF2 IF ERRORS
  279. LDN CSES CLEAR SUSPECT
  280. RJM SDA SET DEVICE AVAILABLE
  281. RJM IPE ISSUE REMOVABLE PACK EVENT
  282. DVF2 CMSTF L1MV CLEAR *1MV* ACTIVE FLAG
  283. DVF3 UJP DPP DROP PP
  284. ONFC SPACE 4,10
  285. ** ONFC - DEVICE VERIFICATION AND SET DEVICE *ON*.
  286. *
  287. * ENTRY (IR+2) = EST ORDINAL TO VERIFY.
  288. * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *ONFC*.
  289.  
  290.  
  291. ONF ENTRY ENTRY
  292. RJM DHV PERFORM DEVICE VERIFICATION
  293. RJM LBV PERFORM LABEL VERIFICATION
  294. ONF1 RJM CFE CHECK FOR ERRORS
  295. MJN ONF2 IF ERRORS
  296. LDN ONES SET DEVICE ON
  297. RJM SDA SET DEVICE AVAILABLE
  298. * LDN 0
  299. RJM SVF CLEAR VERIFICATION FAILURE COUNT
  300. ONF2 UJN DVF3 DROP PP
  301. IDFC SPACE 4,10
  302. ** IDFC - DEVICE VERIFICATION AND SET DEVICE *IDLE*.
  303. *
  304. * ENTRY (IR+2) = EST ORDINAL TO VERIFY.
  305. * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *IDFC*.
  306.  
  307.  
  308. IDF ENTRY ENTRY
  309. RJM DHV PERFORM DEVICE VERIFICATION
  310. RJM LBV PERFORM LABEL VERIFICATION
  311. IDF1 RJM CFE CHECK FOR ERRORS
  312. MJN IDF2 IF ERRORS
  313. LDN IDES SET DEVICE IN *IDLE* STATE
  314. RJM SDA SET DEVICE AVAILABLE
  315. IDF2 UJN ONF2 DROP PP
  316. LVA SPACE 4,10
  317. ** LVFC - LABEL VERIFICATION AND SET DEVICE *OFF*.
  318. *
  319. * ENTRY (IR+2) = EST ORDINAL TO VERIFY.
  320. * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *OFFC*.
  321.  
  322.  
  323. LVA ENTRY ENTRY
  324. RJM LBV PERFORM LABEL VERIFICATION
  325. RJM CFE CHECK FOR ERRORS
  326. MJN LVA1 IF ERRORS
  327. LDN OFES SET DEVICE OFF
  328. RJM CSF ISSUE *SEQM* FUNCTION
  329. LVA1 UJN IDF2 DROP PP
  330. MVA SPACE 4,10
  331. ** MVFC - MEDIA VERIFICATION OF A PARTICULAR TRACK.
  332. *
  333. * ENTRY (IR+2) = EST ORDINAL TO PROCESS.
  334. * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *MVFC*.
  335. * (IR+4) = LOGICAL TRACK NUMBER TO VERIFY.
  336.  
  337.  
  338. MVA ENTRY ENTRY
  339. LDD ES+4 READ MAXIMUM TRACKS
  340. SHN 3
  341. ADK TDGL
  342. CRD CM
  343. LDD IR+4 PRESET TRACK NUMBER TO PROCESS
  344. STD T6
  345. LPC 3777
  346. SBD CM
  347. PJP MVA6 IF BEYOND END OF TRT
  348. SETMS IOCH,(AD,DE,DF,ND,NR),DBUF
  349. RJM FBP FILL BUFFER WITH WRITE PATTERN
  350.  
  351. * WRITE, READ AND VERIFY ENTIRE TRACK.
  352.  
  353. LDD T4 SET CHANNEL FOR BUFFERED DEVICE
  354. MVA1 STM STSB
  355. LDN 0 INITIALIZE SECTOR NUMBER
  356. STD T7
  357. LDN MXSC SET SECTOR COUNT
  358. STD NS
  359. MVA2 SBD NS
  360. PJN MVA3 IF NOT MAXIMUM SECTORS TO PROCESS
  361. RAD NS
  362. MVA3 RJM WCS WRITE CONSECUTIVE SECTORS
  363. NJN MVA5 IF WRITE ERRORS
  364. RJM RCS READ BACK SECTOR DATA
  365. NJN MVA5 IF READ ERRORS
  366. RJM VBD VERIFY BUFFER DATA
  367. NJN MVA5 IF DATA VERIFICATION ERRORS
  368. LDM SLM
  369. SBD T7
  370. NJN MVA2 IF NOT SECTOR LIMIT
  371. RJM SNC
  372. PJP MVA1 IF ANOTHER CHANNEL TO PROCESS
  373. LDD EQ
  374. STD CM+1
  375. LDD IR+4 TRACK NUMBER TO CLEAR FLAW ON
  376. STD CM+2
  377. LDN CTFS
  378. STD CM+3
  379. MONITOR STBM
  380. UJN MVA6 RETURN
  381.  
  382. MVA5 ENDMS
  383. LDK /COMSDFS/HS0105 ISSUE BML MESSAGE
  384. RJM IBM
  385. MVA6 LDD EQ CLEAR TRACK NUMBER IN MST
  386. STD CM+1
  387. LDD IR+4
  388. STD CM+2
  389. LDN CFTS CONDTIONALLY CLEAR TRACK NUMBER
  390. STD CM+3
  391. MONITOR SMDM
  392. MVA7 UJP DVF2 CLEAR *1MV* ACTIVE AND DROP PP
  393. UCFC SPACE 4,10
  394. ** UCFC - DATA PATH VERIFICATION AND SET CHANNEL STATE = *UP*.
  395. *
  396. * ENTRY (IR+2) = EST ORDINAL OF EQUIPMENT TO VERIFY.
  397. * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *UCFC*.
  398. * (IR+4) = CHANNEL NUMBER, INCLUDING CONCURRENCY FLAG.
  399.  
  400.  
  401. UCF ENTRY ENTRY
  402. UCF1 LDM TSCH,CC
  403. STD T4 STORE CHANNEL FOR VERIFICATION PROCESSOR
  404. STM TSCH
  405. LMD IR+4
  406. ZJN UCF3 IF CHANNEL FOUND IN TABLE
  407. AOD CC
  408. LMD DA
  409. NJN UCF1 IF ANOTHER CHANNEL
  410. UCF2 UJN MVA7 DROP PP
  411.  
  412. UCF3 STD CC FORCE SINGLE CHANNEL VERIFICATION
  413. STM DCHA+4
  414. STM HVLA DISABLE HYDRA DIAGNOSTICS
  415. ADN 1
  416. STD DA
  417. LDD ES
  418. SHN 21-6
  419. MJN UCF5 IF UNAVAILABLE DEVICE
  420. RJM DHV PERFORM VERIFICATION ON SPECIFIED CHANNEL
  421. RJM LBV PERFORM LABEL VERIFICATION
  422. UCF4 RJM CFE CHECK FOR ERRORS
  423. MJN UCF2 IF ERRORS
  424. UCF5 LDD T5 SET CHANNEL STATE TO *UP*
  425. STD CM+1
  426. LDM TSCH CHANNEL
  427. STD CM+2
  428. LDK SUCS SUBFUNCTION
  429. STD CM+3
  430. MONITOR SCSM
  431. RJM CEQ CLEAR ERRORS FROM UNIT I/O QUEUE
  432. UCF6 UJP UCF2 CLEAR ACTIVE FLAG AND DROP PP
  433. SCF SPACE 4,10
  434. ** SCFC - PERFORM DISK SWEEP CYCLING.
  435. *
  436. * ENTRY (IR+2) = EST ORDINAL OF EQUIPMENT ON WHICH TO PERFORM
  437. * SWEEP CYCLING SEEK SEQUENCE.
  438. * (IR+3) = UPPER 6 BITS IS FUNCTION CODE *SCFC*.
  439.  
  440.  
  441. SCF ENTRY ENTRY
  442. EXECUTE 0SC,OVLA EXECUTE *0SC*
  443. UJN UCF6 CLEAR ACTIVE FLAG AND DROP PP
  444. TITLE SUBROUTINES.
  445. AEC SPACE 4,15
  446. ** AEC - ANALYZE ERROR CODE.
  447. *
  448. * ENTRY (RDCT) = 6/, 6/ EC.
  449. * EC = ERROR CODE.
  450. * (MT) = MEDIA ERROR THRESHOLD.
  451. *
  452. * EXIT (A) = 0, IF *EC* IS *DRVE* OR *CRSE*.
  453. * = *PARE*, IF *EC*=*PARE* AND *METH* NOT EXCEEDED.
  454. * = 1/1, 1/D, 6/, 1/C, 3/, 6/ EC.
  455. * D = 1, IF *EC*=*DDFE*.
  456. * C = 1, IF CHANNEL OR CONTROLLER ERROR.
  457. * (MT) DECREMENTED IF MEDIA ERROR ENCOUNTERED.
  458. *
  459. * USES MT.
  460.  
  461.  
  462. AEC1 LDD MT MEDIA ERROR THRESHOLD
  463. ZJN AEC3 IF TOO MANY MEDIA ERRORS
  464. SOD MT
  465. LDK PARE+1000*IDC.ME
  466. UJN AECX RETURN
  467.  
  468. AEC2 LMC SHNI&77&DDFE
  469. STM AECA
  470. LDC AECB BIT MAP OF ERRORS INVOLVING CHAN/CONT
  471. SHN 0-** POSITION BIT CORRESPONDING TO ERROR
  472. AECA EQU *-1
  473. LPN 1
  474. LMK IDC.ME
  475. SHN 9D
  476. LMD T0
  477. AEC3 LMC 400000+PARE+1000*IDC.ME
  478.  
  479. AEC SUBR ENTRY/EXIT
  480. LDM RDCT
  481. LPN 77
  482. LMN DRVE
  483. ZJN AECX IF DRIVE RESERVE ERROR
  484. LMN CRSE&DRVE
  485. ZJN AECX IF CONTROLLER RESERVE ERROR
  486. LMN PARE&CRSE
  487. ZJN AEC1 IF MEDIA ERROR
  488. STD T0
  489. LMN DDFE&PARE
  490. NJN AEC2 IF NOT DIAGNOSTIC FAILURE
  491. LDC 600000+1000*IDC.DF+DDFE
  492. UJN AECX RETURN
  493.  
  494.  
  495. * GENERATE THE SET OF ERROR CODES OF CHANNEL/CONTROLLER ERRORS.
  496.  
  497. .1 SET 1
  498. .2 SET 0
  499. .A ECHO ,ES=("DREC")
  500. .B IFEQ IDC.ES,1
  501. ERRNG 17D-.1 ERROR CODE OVER 17 IS CHAN/CONT ERROR CODE
  502. .1 DECMIC .1
  503. .2 SET .2+1S".1"
  504. .B ENDIF
  505. .1 SET .1+1
  506. .A ENDD
  507.  
  508. AECB EQU .2
  509. CDA SPACE 4,10
  510. ** CDA - CALCULATE PHYSICAL DISK ADDRESS.
  511. *
  512. * ENTRY (T4 - T7) = MASS STORAGE DRIVER PARAMETERS.
  513. * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
  514. *
  515. * EXIT (DP - DP+4) = SEEK PARAMETERS.
  516. *
  517. * USES T1, T2, T3, T8, T9, CM - CM+4, DP - DP+4.
  518. *
  519. * MACROS MONITOR.
  520.  
  521.  
  522. CDA9 LDD MA STORE LOGICAL DISK ADDRESS
  523. CWD T4
  524. MONITOR LDAM CONVERT TO PHYSICAL ADDRESS
  525. LDD MA
  526. ADN 1 RETRIEVE SEEK PARAMETERS
  527. CRD DP
  528. CDA10 AOD DP FLAG DISK ADDRESS PRESENT
  529.  
  530. CDA SUBR ENTRY/EXIT
  531. LDD DP
  532. NJN CDAX IF ADDRESS ALREADY OBTAINED
  533. STD CM+1
  534. STD T8 CLEAR PHYSICAL SECTOR ACCUMULATOR
  535. CDAA LDD T6
  536. * UJN CDA9 (NON-BUFFERED DEVICE)
  537. LPC 3777
  538. STD T3 ITERATION COUNT FOR CONVERSION
  539.  
  540. * UNIT INDEX = SECTOR NUMBER / SINGLE UNIT SECTOR LIMIT.
  541.  
  542. LDD T7 LOGICAL SECTOR NUMBER
  543. STD T9
  544. CDA1 STD T2
  545. AOD DP ADVANCE UNIT INDEX
  546. LDD T2
  547. SBD SU
  548. PJN CDA1 IF DIVISION INCOMPLETE
  549. LDD ES+4
  550. SHN 3
  551. ADN DDLL FETCH UNIT DESCRIPTOR WORD FROM MST
  552. CRD CM
  553. SOD DP
  554. SHN -1
  555. LMC -0 CALCULATE BYTE ADDRESS
  556. ADN CM+4
  557. STD T1
  558. LDD DP
  559. LPN 1
  560. SHN 21-0 DETERMINE POSITION WITHIN BYTE
  561. LMI T1
  562. PJN CDA2 IF UNIT POSITIONED LOW
  563. SHN -6
  564. CDA2 LPN 77 EXTRACT UNIT NUMBER
  565. STD DP+1
  566. LDD CM MERGE WITH EQUIPMENT (CONTROLLER) NUMBER
  567. LPC 700
  568. RAD DP+1
  569.  
  570. * CONVERT LOGICAL DISK ADDRESS TO RELATIVE SECTOR COUNT.
  571.  
  572. CDA3 SOD T3
  573. MJN CDA5 IF CONVERSION COMPLETE
  574. LDM LSLT
  575. RAD T9 ADVANCE LOGICAL SECTOR COUNT
  576. SHN -14
  577. RAD T8
  578. UJN CDA3 LOOP ON CONVERSION
  579.  
  580. * DIVIDE THE RELATIVE SECTOR COUNT BY THE NUMBER OF LOGICAL
  581. * SECTORS PER CYLINDER.
  582.  
  583. CDA4 AOD DP+2 ADVANCE RELATIVE CYLINDER NUMBER
  584. CDA5 LDM LSCY
  585. STD T0
  586. LDD T9
  587. SBM LSCY+1 DIVIDE BY ITERATIVE SUBTRACTION
  588. STD T9
  589. PJN CDA6 IF NO BORROW
  590. AOD T9
  591. AOD T0
  592. CDA6 LDD T8
  593. SBD T0
  594. STD T8
  595. PJN CDA4 IF DIVISION NOT COMPLETE
  596. LDM LSCY+1
  597. RAD T9
  598. SHN -14
  599. ADD T0
  600. RAD T8
  601. LDD ES+4
  602. SHN 3
  603. ADN SCYL FETCH STARTING CYLINDER FROM MST
  604. CRD CM
  605. LDD CM+2 CONVERT RELATIVE CYLINDER TO ABSOLUTE
  606. RAD DP+2
  607. UJN CDA8 COMPLETE ADDRESS CONVERSION
  608.  
  609. * DIVIDE THE REMAINDER OF THE ABOVE CALCULATION BY THE NUMBER
  610. * OF LOGICAL SECTORS PER PHYSICAL TRACK.
  611.  
  612. CDA7 AOD DP+3 ADVANCE PHYSICAL TRACK NUMBER
  613. CDA8 LDN 0
  614. SBM LSPT DIVIDE BY ITERATIVE SUBTRACTION
  615. RAD T9
  616. PJN CDA7 IF NO UNDERFLOW
  617. ADM LSPT
  618. CDAB SHN 0 SET PHYSICAL SECTOR NUMBER
  619. STD DP+4
  620. LJM CDA10 RETURN
  621. CEQ SPACE 4,10
  622. ** CEQ - CLEAR ERRORS FROM UNIT I/O QUEUE.
  623. *
  624. * ENTRY (EQ) = EST ORDINAL.
  625. * (ES - ES+4) = EST ENTRY.
  626. *
  627. * USES CM - CM+4.
  628. *
  629. * CALLS SUT.
  630. *
  631. * MACROS DELAY, MONITOR.
  632.  
  633.  
  634. CEQ1 DELAY
  635. LDD CN *PUT* ORDINAL
  636. CEQ2 STD CM+2
  637. LDN SUIS *BIOM* SUBFUNCTION
  638. STD CM+1
  639. MONITOR BIOM INTERLOCK *PUT* ENTRY
  640. LDD CM+1
  641. NJN CEQ1 IF CURRENTLY UNAVAILABLE
  642. LDD CN
  643. STD CM+2
  644. LDN CETS CLEAR ERROR STATUS FROM I/O QUEUE
  645. STD CM+1
  646. MONITOR BIOM
  647. * LDN 0 SCAN UNIT TABLE
  648. CEQ3 RJM SUT
  649. NJN CEQ2 IF SPECIFIED DEVICE
  650.  
  651. CEQ SUBR ENTRY/EXIT
  652. LDD ES+3
  653. LMC 2RDV
  654. ZJN CEQX IF AN 819 DISK
  655. LMK 2RDW&2RDV
  656. ZJN CEQX IF AN 819 DISK
  657. LCN 0
  658. UJN CEQ3 CLEAR ERRORS
  659. CFE SPACE 4,25
  660. ** CFE - CHECK FOR ERRORS.
  661. *
  662. * ENTRY (DVC1) = CHANNEL 1 DEVICE STATISTICS.
  663. * (DVC2) = CHANNEL 2 DEVICE STATISTICS.
  664. *
  665. * EXIT (A) .LT. 0 IF ERRORS FOUND.
  666. * *1DS* CALLED TO DOWN CHANNEL IF ERRORS ON ONE OF TWO
  667. * CHANNELS OR PATH VERIFICATION FAILURE.
  668. * DEVICE DOWNED IF VERIFY ERRORS.
  669. * DEVICE TURNED OFF IF OTHER ERRORS.
  670. *
  671. * USES CC, SP, T2, T3, CM - CM+4, CN - CN+4.
  672. *
  673. * CALLS CSF, DCH, IBM, SVF, VSF.
  674. *
  675. * NOTE - *CFE* USES CM - CM+4 AND CN - CN+4 TO ACCUMULATE ANY
  676. * ERRORS DETECTED ON THE FIRST AND SECOND CHANNELS,
  677. * RESPECTIVELY. THE FIVE BYTES ARE USED AS FOLLOWS -
  678. *
  679. * BYTE 0 = CHANNEL NUMBER.
  680. * BYTE 1 = VERIFICATION ERROR COUNT.
  681. * BYTE 2 = TOTAL ERROR COUNT.
  682. * BYTE 3 = UNREPAIRABLE ERROR COUNT.
  683. * BYTE 4 = CHANNEL/CONTROLLER ERROR COUNT.
  684.  
  685.  
  686. CFE SUBR ENTRY/EXIT
  687. LDN ZERL CLEAR CHANNEL ERROR COUNTS
  688. CRD CM
  689. CRD CN
  690. LDN CM SET FIRST CHANNEL ACCUMULATOR ADDRESS
  691. STD T2
  692. LDC DVC1 BUFFER START ADDRESS
  693. STD SP
  694. LDN 0
  695. STD CC
  696. CFE1 LDM TSCH,CC SET CHANNEL NUMBER
  697. STI T2
  698. LDN 10 SET UNIT COUNT
  699. STD T3
  700. CFE2 LDM VCTB,SP ACCUMULATE VERIFY ERROR COUNTS
  701. ZJN CFE3 IF NO VERIFY ERROR
  702. AOM 1,T2 COUNT VERIFY ERROR THIS UNIT
  703. CFE3 LDM LEFB,SP GET REPAIRABLE LABEL ERRORS
  704. LPC **
  705. CFEA EQU *-1 (SET BY PRESET)
  706. STD T0
  707. LMM LEFB,SP ACCUMULATE READ/WRITE/LABEL ERROR COUNTS
  708. ZJN CFE3.1 IF NO UNREPAIRABLE LABEL ERRORS
  709. LDN 1
  710. CFE3.1 ADM RCTB,SP
  711. ADM WCTB,SP
  712. ADM FMTB,SP
  713. ZJN CFE3.3 IF NO UNREPAIRABLE ERRORS
  714. SHN -9D
  715. ZJN CFE3.2 IF NO CHANNEL/CONTROLLER ERRORS
  716. AOM 4,T2 COUNT CHANNEL/CONTROLLER ERRORS
  717. CFE3.2 AOM 3,T2 COUNT UNREPAIRABLE ERRORS
  718. CFE3.3 ADD T0
  719. ZJN CFE4 IF NO ERRORS
  720. AOM 2,T2 COUNT ERRORS
  721. CFE4 LDN MXNB
  722. RAD SP
  723. SOD T3
  724. NJP CFE2 IF NOT THROUGH WITH ALL UNITS
  725. LDN CN SET SECOND CHANNEL ACCUMULATOR ADDRESS
  726. STD T2
  727. AOD CC
  728. LMD DA
  729. NJP CFE1 IF ANOTHER CHANNEL
  730. SOD CC
  731. ZJN CFE8 IF ONLY ONE CHANNEL
  732. LDD CN+1
  733. ADD CN+2
  734. NJN CFE5 IF ERRORS ON SECOND CHANNEL
  735. LDD CM+1
  736. ADD CM+2
  737. ZJN CFE7 IF NO ERROR ON PRIMARY CHANNEL
  738.  
  739. * ERROR EXISTS ON PRIMARY CHANNEL BUT NOT ON SECONDARY CHANNEL.
  740.  
  741. LDN CM
  742. UJN CFE6 DOWN CHANNEL
  743.  
  744. CFE5 LDD CM+1
  745. ADD CM+2
  746. NJN CFE8 IF ERRORS ON BOTH CHANNELS
  747. LDN CN
  748. CFE6 RJM DCH DOWN CHANNEL
  749. CFE7 RJM VSF VERIFY SYSTEM FILE
  750. UJP CFEX RETURN
  751.  
  752. CFE8 LDD CM+1
  753. ADD CN+1
  754. NJP CFE10 IF DATA VERIFICATION ERRORS
  755. LDD CM+2
  756. ADD CN+2
  757. ZJN CFE7 IF NO READ/WRITE/LABEL ERRORS
  758. LDD CM+3
  759. ADD CN+3
  760. NJN CFE9 IF UNREPAIRABLE ERRORS
  761. LJM ** PROCESS REPAIRABLE ERROR
  762. CFEB EQU *-1 (SET BY PRESET)
  763.  
  764. CFE9 LDM DCHA+4
  765. ZJN CFE11 IF PATH VERIFICATION
  766. LDD ES+4
  767. SHN 3
  768. ADN CTLL
  769. CRD CN
  770. AOD CN INCREMENT VERIFICATION FAILURE COUNTER
  771. RJM SVF
  772. LDD ES+4
  773. SHN 3
  774. ADN THLL
  775. CRD CM
  776. LDD CN
  777. SBD CM
  778. MJP CFE7 IF COUNT BELOW THRESHOLD - CLEAR ERROR
  779. LDD ES
  780. SHN 21-1
  781. MJN CFE13 IF DEVICE OFF OR DOWN
  782. LDN OFES
  783. RJM CSF ISSUE *SEQM*
  784. LDN /COMSDFS/HS0030 ISSUE BML MESSAGE
  785. RJM IBM
  786. UJN CFE13 RETURN
  787.  
  788. CFE10 LDM DCHA+4
  789. NJN CFE12 IF NOT PATH VERIFICATION
  790. CFE11 LDN CM
  791. RJM DCH DOWN CHANNEL
  792. LDC 4000+UCFC
  793. RJM IBM ISSUE ERROR LOG MESSAGE
  794. UJN CFE14 RETURN
  795.  
  796. * DOWN DEVICE WHEN VERIFY ERRORS ARE PRESENT ON ALL CHANNELS.
  797.  
  798. CFE12 LDD ES CHECK DEVICE STATE
  799. LPN 3
  800. LMN 3
  801. ZJN CFE13 IF DEVICE DOWN
  802. LDN DWES RETURN DOWN STATUS
  803. RJM CSF ISSUE *SEQM*
  804. LDN /COMSDFS/HS0034 ISSUE BML MESSAGE
  805. RJM IBM
  806. CFE13 LCN 0
  807. CFE14 LJM CFEX RETURN
  808. CSF SPACE 4,15
  809. ** CSF - CALL *SEQM* SUBFUNCTION.
  810. *
  811. * ENTRY (A) = *SEQM* SUBFUNCTION.
  812. * (EQ) = EST ORDINAL.
  813. * (ES - ES+4) = EST ENTRY.
  814. *
  815. * USES T3, CM - CM+4.
  816. *
  817. * CALLS RAE.
  818. *
  819. * MACROS MONITOR, SFA.
  820.  
  821.  
  822. CSF SUBR ENTRY/EXIT
  823. STD T3
  824. LDD ES CHECK DEVICE STATE
  825. LPN 3
  826. LMN 3
  827. NJN CSF1 IF NOT *DOWN*
  828. RJM RAE RELEASE ASSIGNED EQUIPMENT
  829. CSF1 LDD T3
  830. STD CM+2 SET SUBFUNCTION FOR *SEQM* CALL
  831. LDD EQ
  832. STD CM+1
  833. LDN 0
  834. STD CM+4
  835. MONITOR SEQM
  836. SFA EST,EQ REREAD EST ENTRY
  837. ADK EQDE
  838. CRD ES
  839. UJN CSFX RETURN
  840. CVI SPACE 4,10
  841. ** CVI - CLEAR VERIFICATION INTERLOCK.
  842. *
  843. * ENTRY (CVIA) = EST ORDINAL OF DEVICE WITH INTERLOCK SET.
  844. *
  845. * USES CM - CM+4.
  846. *
  847. * MACROS MONITOR.
  848.  
  849.  
  850. CVI SUBR ENTRY/EXIT
  851. LDN ZERL
  852. CRD CM
  853. LDC ** (EST ORDINAL OF DEVICE WITH INTERLOCK SET)
  854. CVIA EQU *-1
  855. ZJN CVIX IF NO INTERLOCK SET
  856. STD CM+1 SET EST ORDINAL
  857. LDN CVIS CLEAR DEVICE VERIFICATION INTERLOCK
  858. STD CM+3
  859. MONITOR STBM
  860. * LDN 0
  861. STM CVIA CLEAR EST ORDINAL
  862. UJN CVIX RETURN
  863. DCH SPACE 4,10
  864. ** DCH - DOWN CHANNEL.
  865. *
  866. * ENTRY (A) = ADDRESS OF CHANNEL SUMMARY.
  867. * ((A)) = CHANNEL NUMBER.
  868. * ((A)+4) = CHANNEL/CONTROLLER ERROR COUNT.
  869. * (EQ) = EST ORDINAL OF EQUIPMENT BEING VERIFIED.
  870. *
  871. * USES CM - CM+4.
  872. *
  873. * MACROS EXECUTE, MONITOR.
  874.  
  875.  
  876. DCH SUBR ENTRY/EXIT
  877. STD CM+1
  878. LDI CM+1
  879. STM DCHA+3 SAVE CHANNEL AND CONCURRENCY FLAG
  880. LDM 4,CM+1
  881. NJN DCH1 IF CHANNEL/CONTROLLER ERRORS DETECTED
  882. LDD EQ SET EST ORDINAL IN REQUEST
  883. RAM DCHA+4
  884. DCH1 LDD MA
  885. CWM DCHA,ON
  886. LDN 0
  887. STD CM+1
  888. EXECUTE 1DS,=
  889. MONITOR RPPM CALL *1DS* TO DOWN CHANNEL
  890. UJN DCHX RETURN
  891.  
  892.  
  893. DCHA VFD 18/3L1DS,6/,12/DWNF,12/0,12/4000
  894. DHV SPACE 4,10
  895. ** DHV - PERFORM DEVICE VERIFICATION.
  896. *
  897. * ENTRY (CC) = CHANNEL COUNT.
  898. * (T5) = EST ORDINAL.
  899. * (ES - ES+4) = WORD *EQDE* OF EST ENTRY.
  900. *
  901. * EXIT (A) .NE. 0 IF PREMATURE VERIFICATION TERMINATION.
  902. * ERRORS ENCOUNTERED ARE REFLECTED IN STATISTICS BUFFER.
  903. *
  904. * USES T8.
  905. *
  906. * CALLS FBP, SVI, DEVICE DEPENDENT PROCESSORS.
  907.  
  908.  
  909. DHV1 LDN 0 SET RETURN STATUS
  910.  
  911. DHV SUBR ENTRY/EXIT
  912. RJM SVI SET VERIFICATION INTERLOCK
  913. RJM FBP FILL BUFFER WITH WRITE PATTERN
  914. LDM DVPC SETUP PROCESSOR
  915. ZJN DHVX IF DEVICE NOT SUPPORTED
  916. STD T8
  917. LDC LDNI+METH ALLOW MAINTENANCE CYLINDER MEDIA ERRORS
  918. ERRPL METH-100 CODE DEPENDS ON VALUE
  919. STM RCSA
  920. STM WCSA
  921. RJM 0,T8 PERFORM DEVICE DEPENDENT PROCESSING
  922. UJN DHVX RETURN
  923. FBP SPACE 4,10
  924. ** FBP - FILL BUFFER WITH PATTERN TO WRITE.
  925. *
  926. * EXIT (A) = 0.
  927. *
  928. * USES T1.
  929.  
  930.  
  931. FBP SUBR ENTRY/EXIT
  932. LDC BUFL
  933. STD T1
  934. FBP1 LDC BUFP FILL BUFFER WITH PATTERN
  935. STM BFMS-1,T1
  936. SOD T1 FILL BUFFER WITH PATTERN
  937. NJN FBP1 IF NOT END OF BUFFER
  938. * LDN 0
  939. UJN FBPX RETURN
  940. FDC SPACE 4,10
  941. ** FDC - FORMAT 895 DEVICE MAINTENANCE TRACK.
  942. *
  943. * ENTRY (T4) = CHANNEL NUMBER.
  944. * (EQ) = EST ORDINAL.
  945. * (DVMT) = MAINTENANCE TRACK NUMBER.
  946. * (ES - ES+4) = EST ENTRY.
  947. *
  948. * EXIT (A) .NE. 0 IF ERROR.
  949. * (T4) = CHANNEL NUMBER.
  950. * (T5) = EST ORDINAL.
  951. * (T6) = MAINTENANCE TRACK NUMBER.
  952. *
  953. * CALLS /2VA/FDC.
  954. *
  955. * MACROS EXECUTE.
  956.  
  957.  
  958. FDC SUBR ENTRY/EXIT
  959. LDD T4 SAVE CHANNEL NUMBER
  960. STM FDCA
  961. EXECUTE 2VA
  962. LDC * (CHANNEL NUMBER)
  963. FDCA EQU *-1
  964. STD T4
  965. RJM /2VA/FMT FORMAT 895 MAINTENANCE TRACK
  966. UJN FDCX RETURN
  967. HVE SPACE 4,15
  968. ** HVE - HARDWARE VERIFICATION FOR EXTENDED MEMORY DEVICES.
  969. *
  970. * ENTRY (CC) = CHANNEL COUNT.
  971. * (T5) = EST ORDINAL.
  972. *
  973. * EXIT ERRORS NOTED IN STATISTICS BUFFER.
  974. *
  975. * USES T6, T7.
  976. *
  977. * CALLS RCS, SNC, VBD, WCS.
  978. *
  979. * MACROS SETMS, VERIFY.
  980.  
  981.  
  982. HVE VERIFY (DE,DP) ENTRY/EXIT
  983. SETMS IOCH,(AD,AR,DE,DF,ND),DBUF
  984. LDM DVMT SETUP MAINTENANCE TRACK
  985. STD T6
  986. ZJN HVEX IF UNDEFINED
  987. HVE1 LDN 1
  988. STD NS SET NUMBER OF SECTORS TO PROCESS
  989. HVEA LDN 0
  990. * LDN 20 IF EM TRACK SIZE IS MORE THAN 2020 WORDS
  991. STD T7
  992. HVE2 RJM WCS
  993. RJM RCS
  994. RJM VBD VERIFY READ BUFFERS
  995. LDM SLM
  996. SBD T7
  997. NJN HVE2 IF MORE SECTORS TO PROCESS
  998. RJM SNC SELECT NEXT CHANNEL
  999. PJN HVE1 IF SECOND CHANNEL PRESENT
  1000. UJP HVEX RETURN
  1001. HVL SPACE 4,15
  1002. ** HVL - HARDWARE VERIFICATION FOR RMS DEVICES.
  1003. *
  1004. * ENTRY (CC) = CHANNEL COUNT.
  1005. * (T4) = FIRST CHANNEL.
  1006. * (T5) = EST ORDINAL.
  1007. * (ES - ES+4) = WORD *EQDE* OF EST ENTRY.
  1008. *
  1009. * EXIT ERRORS NOTED IN STATISTICS BUFFER.
  1010. *
  1011. * USES HC, NS, SP, T6, T7.
  1012. *
  1013. * CALLS FDC, IHD, RCS, SNC, VBD, WCS.
  1014. *
  1015. * MACROS SETMS, VERIFY.
  1016.  
  1017.  
  1018. HVL VERIFY (DB,DC,DD,DF,DG,DH,DI,DJ,DK,DL,DM,DN,DQ,DR,DX,DY,DZ,EA,
  1019. ,EB,EC,ED,EE,EF,EM,EN,EG,EH,EI,EJ,EK,EL,EO,EP,ES,EU,EV,EW)
  1020. SETMS IOCH,(AD,AR,DE,DF,ND),DBUF
  1021. HVLA UJN HVL2 INITIATE HYDRA DIAGNOSTICS
  1022. * PSN (PATH VERIFICATION)
  1023.  
  1024. HVL1 LDC 0 (HYDRA DIAGNOSTICS DISABLED)
  1025. * LDC 2*DDFE+1 (HYDRA DIAGNOSTIC FAILURE DETECTED)
  1026. HVLB EQU *-1
  1027. ZJN HVL3 IF NO DIAGNOSTICS
  1028. HVL2 RJM IHD
  1029. * UJN HVL3 (IF NOT HYDRA DEVICE)
  1030. HVLE EQU HVL2
  1031. HVL3 LDM DVMT SET MAINTENANCE TRACK
  1032. STD T6
  1033. ZJN HVLX IF UNDEFINED
  1034. HVLF RJM FDC FORMAT MAINTENANCE TRACK, IF 895
  1035. * UJN HVL3.1 (IF NOT 895 DEVICE)
  1036. NJP HVL5 IF FORMATTING ERROR
  1037. HVL3.1 LDN 0
  1038. STD HC
  1039. STM HVLD
  1040. STM HVLG INITIALIZE SECTOR NUMBER
  1041. SBM DVSB PHYSICAL SECTORS/BUFFER-1
  1042. STM HVLH INITIALIZE MASK
  1043. LDD T4 STORE CHANNEL IN CASE OF BUFFERED DEVICE
  1044. STM STSB
  1045. LDN DVSC SET NUMBER OF SECTORS TO PROCESS
  1046. STD NS
  1047. LDM DVST RESET FOR OTHER CHANNEL
  1048. STM HVLC
  1049. HVL4 LDC ** SECTOR NUMBER
  1050. HVLG EQU *-1
  1051. ADM DVSB ROUND UP TO BUFFER MULTIPLE
  1052. LPC **
  1053. HVLH EQU *-1
  1054. STD T7
  1055. SBM HVLC
  1056. PJN HVL7 IF ROUNDING EXCEEDS SECTOR LIMIT
  1057. RJM WCS WRITE CONSECUTIVE SECTORS
  1058. HVL5 NJN HVL6 IF WRITE ERRORS
  1059. RJM RCS READ BACK SECTOR DATA
  1060. NJN HVL6 IF READ ERRORS
  1061. RJM VBD VERIFY READ BUFFERS
  1062. HVL6 NJN HVL10 IF DATA VERIFICATION ERRORS
  1063. HVL7 LDM DVSI
  1064. SBN DVSC ADVANCE SECTOR TO NEXT PHYSICAL TRACK
  1065. RAM HVLG
  1066. LDC 0 SECTORS + GAP SECTORS PER LOGICAL TRACK
  1067. HVLC EQU *-1
  1068. SBM HVLG
  1069. SBN 1
  1070. PJN HVL8 IF STILL WITHIN SAME LOGICAL TRACK
  1071. LMC -0
  1072. ADC 0 OFFSET TO NEXT UNIT
  1073. HVLD EQU *-1
  1074. SBN 1
  1075. STM HVLG
  1076. AOD T6 INCREMENT TO NEXT LOGICAL TRACK
  1077. HVL8 AOD HC
  1078. SBM DVHL
  1079. ZJN HVL11 IF ALL HEADS PROCESSED
  1080. HVL9 LJM HVL4 PROCESS NEXT HEAD
  1081.  
  1082. HVL10 NJN HVL12 IF ERROR
  1083. HVL11 STD HC
  1084. LDN MXNB INCREMENT STATISTICS POINTER TO NEXT UNIT
  1085. RAD SP
  1086. LDM DVMT RESET LOGICAL TRACK POINTER
  1087. STD T6
  1088. LDD SU CHANGE FOR NEXT UNIT
  1089. RAM HVLC
  1090. LDD SU CHANGE SECTOR OFFSET TO NEXT UNIT
  1091. RAM HVLD
  1092. STD T7 SET NEXT SECTOR
  1093. LMM SLM
  1094. NJN HVL9 IF ANOTHER UNIT
  1095. HVL12 RJM SNC SELECT NEXT CHANNEL
  1096. PJP HVL1 IF SECOND CHANNEL PRESENT
  1097. LJM HVLX RETURN
  1098. IBM SPACE 4,15
  1099. ** IBM - ISSUE BML MESSAGE.
  1100. *
  1101. * ENTRY (A) = SYMPTOM CODE OF BML MESSAGE.
  1102. * (CH) = CHANNEL NUMBER BEING DOWNED.
  1103. * (EQ) = EST ORDINAL.
  1104. *
  1105. * EXIT (A) = 0.
  1106. *
  1107. * USES CN.
  1108. *
  1109. * CALLS CDA, /2VA/ELM.
  1110. *
  1111. * MACROS EXECUTE.
  1112.  
  1113.  
  1114. IBM SUBR DVF2 ENTRY/EXIT
  1115. STD CN
  1116. RJM CDA GET PHYSICAL DISK ADDRESS
  1117. EXECUTE 2VA
  1118. LDD EQ RESET EQUIPMENT
  1119. STD T5
  1120. RJM /2VA/ELM ISSUE BML MESSAGE
  1121. UJN IBMX RETURN
  1122. IHD SPACE 4,10
  1123. ** IHD - INITIATE HYDRA DIAGNOSTICS.
  1124. *
  1125. * ENTRY (EQ) = EST ORDINAL.
  1126. * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
  1127. *
  1128. * USES CM - CM+4.
  1129. *
  1130. * CALLS SUT.
  1131. *
  1132. * MACROS MONITOR.
  1133.  
  1134.  
  1135. IHD2 SHN PUTLS CHANGE ORDINAL TO INDEX
  1136. ADD CN+4
  1137. STD CM+4
  1138. SHN -14 FORM *PUT* ENTRY ADDRESS
  1139. ADD CN+3
  1140. STD CM+3
  1141. LDN 1 PARAMETER WORD COUNT
  1142. STD CM+1
  1143. LDN 0 CLEAR UNUSED BYTE
  1144. STD CM+2
  1145. LDD MA STORE MESSAGE BUFFER PARAMETERS
  1146. CWM IHDA,CM+1
  1147. MONITOR UTEM
  1148. * LDN 0 SCAN UNIT TABLE
  1149. IHD3 RJM SUT
  1150. NJN IHD2 IF SPECIFIED DEVICE
  1151.  
  1152. IHD SUBR ENTRY/EXIT
  1153. IHD1 LCN 0
  1154. UJN IHD3 SEARCH FOR *PUT* ENTRY
  1155.  
  1156.  
  1157. IHDA VFD 6/PILL,6/1,6/DVDF,42/1
  1158. IPE SPACE 4,10
  1159. ** IPE - ISSUE REMOVABLE PACK EVENT.
  1160. *
  1161. * ENTRY (ES - ES+4) = EST ENTRY.
  1162. *
  1163. * USES CM - CM+4.
  1164. *
  1165. * MACROS MONITOR.
  1166.  
  1167.  
  1168. IPE SUBR ENTRY/EXIT
  1169. LDD ES+4 READ PACKNAME/DEVICE NUMBER
  1170. SHN 3
  1171. ADK PFGL
  1172. CRD CM
  1173. LDD CM+3
  1174. LPN 77
  1175. NJN IPEX IF NOT AUXILIARY DEVICE
  1176. LDD CM+3 BUILD PACKNAME HASH
  1177. ADD CM+2
  1178. ADD CM+1
  1179. ADD CM
  1180. STD CM+4
  1181. LDN 0 SET EVENT
  1182. STD CM+1
  1183. LDN VSNE/10000
  1184. STD CM+3
  1185. MONITOR EATM
  1186. UJN IPEX RETURN
  1187. LBV SPACE 4,10
  1188. ** LBV - LABEL VERIFICATION.
  1189. *
  1190. * EXIT STATISTICS BUFFER UPDATED WITH LABEL ERROR STATUS.
  1191. *
  1192. * USES CC, NS, SP, T7, CM - CM+4.
  1193. *
  1194. * CALLS SNC, VLS.
  1195.  
  1196.  
  1197. LBV SUBR ENTRY/EXIT
  1198. LDD ES CHECK UNAVAILABLE DEVICE
  1199. SHN 21-6
  1200. MJN LBVX IF NOT TO PERFORM LABEL CHECK
  1201. SHN 21-5-21+6
  1202. MJN LBVX IF BUFFERED DEVICE
  1203. LDD ES+4 CHECK FOR INITIALIZE PENDING
  1204. SHN 3
  1205. ADN STLL
  1206. CRD CM
  1207. LDD CM
  1208. LPC MLIAL+MLIHD+MLIFD
  1209. NJN LBVX IF INITIALIZE PENDING
  1210. ADK /MMF/LSLT
  1211. STD T7
  1212. STD NS
  1213. STD CC
  1214. LDK DVC1 SET POINTER TO FIRST CHANNEL BUFFER
  1215. STD SP
  1216.  
  1217. * VALIDATE LABEL SECTORS ON ALL UNITS.
  1218.  
  1219. LBV1 RJM VLS CHECK CONTENTS OF LABEL
  1220. AOD NS INCREMENT RELATIVE UNIT NUMBER
  1221. LDN MXNB INCREMENT STATISTICS POINTER
  1222. RAD SP
  1223. LDD SU INCREMENT TO NEXT UNIT
  1224. RAD T7
  1225. SBM SLM
  1226. MJN LBV1 IF NOT FINISHED WITH LOGICAL TRACK
  1227. LDN /MMF/LSLT
  1228. STD T7 RESET STARTING SECTOR NUMBER
  1229. ADK 0-/MMF/LSLT
  1230. STD NS RESET RELATIVE UNIT NUMBER
  1231. RJM SNC SET NEXT CHANNEL
  1232. PJN LBV1 IF ALL CHANNELS NOT PROCESSED
  1233. UJP LBVX RETURN
  1234. RCS SPACE 4,25
  1235. ** RCS - READ CONSECUTIVE SECTORS.
  1236. *
  1237. * *RCS* READS (NS) CONSECUTIVE SECTORS IN CONSECUTIVE BUFFERS
  1238. * AT (DBUF). IF A READ ERROR OCCURS, ((SP)+RCTB) IS INCREMENTED
  1239. * AND READ ERROR CODE SAVED IN ((SP)+RCDB).
  1240. *
  1241. * ENTRY (NS) = NUMBER OF SECTORS TO READ.
  1242. * (SP) = STATISTICS GATHERING POINTER.
  1243. * (T4 - T7) = MASS STORAGE DRIVER PARAMETERS.
  1244. *
  1245. * EXIT (A) = READ ERROR COUNT.
  1246. *
  1247. * USES MT, T7, T8, T9.
  1248. *
  1249. * CALLS AEC, RDS.
  1250. *
  1251. * MACROS SETMS.
  1252.  
  1253.  
  1254. RCS5 SETMS POSITION FORCE SEEK ON NEXT I/O REQUEST
  1255. * LDN 0
  1256.  
  1257. RCS SUBR ENTRY/EXIT
  1258. LDN 0 SET MEDIA ERROR THRESHOLD
  1259. * LDN METH (I/O ON MAINTENANCE CYLINDER)
  1260. RCSA EQU *-1
  1261. STD MT
  1262. LDC DBUF SET BUFFER POINTER
  1263. STD T8
  1264. LDN 0 SET SECTOR NUMBER
  1265. STD T9
  1266. RCS1 SBD NS
  1267. ZJN RCS5 IF ALL SECTORS READ
  1268. LDM DVBE,T9
  1269. NJN RCS3 IF SECTOR HAD WRITE ERRORS
  1270. LDD T8 SET UP BUFFER ADDRESS FOR READ
  1271. RJM RDS
  1272. PJN RCS3 IF NO ERROR
  1273. RJM AEC ANALYZE ERROR CODE
  1274. NJN RCS2 IF NO CONTROLLER RESERVE
  1275. LDN 1 SET ERROR INDICATION
  1276. UJN RCSX RETURN
  1277.  
  1278. RCS2 STM DVBE,T9
  1279. STM RCDB,SP SAVE LATEST READ ERROR CODE
  1280. PJN RCS3 IF NOT TOO MANY MEDIA OR OTHER ERRORS
  1281. AOM RCTB,SP SET READ ERROR COUNT
  1282. UJN RCSX RETURN
  1283.  
  1284. RCS3 AOD T7 ADVANCE TO NEXT SECTOR
  1285. LDC BUFL INCREMENT TO NEXT READ BUFFER
  1286. RAD T8
  1287. AOD T9 INCREMENT SECTOR NUMBER
  1288. UJP RCS1 PROCESS NEXT SECTOR
  1289. RAE SPACE 4,10
  1290. ** RAE - RELEASE ASSIGNED EQUIPMENT.
  1291. *
  1292. * USES CM - CM+4.
  1293. *
  1294. * MACROS MONITOR.
  1295.  
  1296.  
  1297. RAE SUBR ENTRY/EXIT
  1298. LDC 0
  1299. RAEA EQU *-1
  1300. ZJN RAEX IF EQUIPMENT NOT ASSIGNED
  1301. STD CM+1
  1302. MONITOR DEQM RELEASE EQUIPMENT ASSIGNMENT
  1303. * LDN 0
  1304. STM RAEA
  1305. UJN RAEX RETURN
  1306. RLT SPACE 4,10
  1307. ** RLT - REPAIR LABEL TRACK.
  1308. *
  1309. * EXIT TO *CFE9* IF DEVICE NOT OWNED BY THIS MAINFRAME.
  1310. *
  1311. * USES CM - CM+4, CN - CN+4, IR+3.
  1312. *
  1313. * CALLS *1CK*, *1RU*.
  1314. *
  1315. * MACROS EXECUTE.
  1316.  
  1317.  
  1318. RLT LDD ES
  1319. SHN 21-4
  1320. MJN RLT1 IF ISHARED
  1321. EXECUTE 1CK REWRITE LABELS
  1322. * LJM IMV RERUN *1MV*
  1323.  
  1324. RLT1 LDD ES+4
  1325. SHN 3
  1326. ADK SDGL
  1327. CRD CM
  1328. ADK DULL-SDGL
  1329. CRD CN
  1330. LDD CN+2
  1331. LPN 17
  1332. ADN 1
  1333. SHN 1
  1334. LMD CM+4
  1335. LPN 76
  1336. ZJN RLT2 IF INTERLOCKED BY THIS MAINFRAME
  1337. LJM CFE9 PROCESS THE ERRORS
  1338.  
  1339. RLT2 STD IR+3 SET *1RU* FUNCTION CODE
  1340. EXECUTE 1RU REWRITE LABELS
  1341. * LJM IMV RERUN *1MV*
  1342. SDA SPACE 4,10
  1343. ** SDA - SET DEVICE AVAILABLE.
  1344. *
  1345. * ENTRY (A) = *SEQM* SUBFUNCTION.
  1346. * (EQ) = EST ORDINAL.
  1347. *
  1348. * EXIT (A) = 0.
  1349. *
  1350. * USES T3, CM - CM+4.
  1351. *
  1352. * CALLS CEQ, CSF.
  1353. *
  1354. * MACROS MONITOR.
  1355.  
  1356.  
  1357. SDA SUBR ENTRY/EXIT
  1358. STD T3
  1359. RJM CEQ CLEAR ERRORS FROM UNIT I/O QUEUE
  1360. LDD T3
  1361. RJM CSF ISSUE *SEQM* FUNCTION
  1362. LDD EQ
  1363. STD CM+1
  1364. LDN STDE
  1365. STD CM+2
  1366. LDN CERS CLEAR *DE* DEVICE ERROR STATUS
  1367. STD CM+3
  1368. MONITOR SMDM
  1369. LDN ZERL CLEAR *CMS* TIMERS
  1370. CRD CM
  1371. ADN RDSL-ZERL
  1372. CWD CM
  1373. ERRNZ WISE CODE DEPENDS ON VALUE
  1374. LDD EQ
  1375. STD CM+3
  1376. MONITOR EATM ISSUE EVENT FOR THIS DEVICE
  1377. * LDN 0
  1378. UJN SDAX RETURN
  1379. SNC SPACE 4,15
  1380. ** SNC - SELECT NEXT CHANNEL.
  1381. *
  1382. * ENTRY (CC) = CURRENT CHANNEL TABLE ORDINAL.
  1383. *
  1384. * EXIT (A) .EQ. CHANNEL NUMBER.
  1385. * .LT. 0 IF NO MORE CHANNELS.
  1386. * (T4) CHANNEL SELECTED.
  1387. * (CC) INCREMENTED.
  1388. * (SP) = SECOND CHANNEL STATISTICS POINTER.
  1389. * CURRENT CHANNEL RELEASED.
  1390. *
  1391. * USES CC, SP, T4.
  1392. *
  1393. * MACROS ENDMS.
  1394.  
  1395.  
  1396. SNC1 LCN 0
  1397.  
  1398. SNC SUBR ENTRY/EXIT
  1399. ENDMS
  1400. AOD CC ADVANCE CHANNEL TABLE INDEX
  1401. LMD DA
  1402. ZJN SNC1 IF NO MORE CHANNELS
  1403. LDC DVC2
  1404. STD SP
  1405. LDM TSCH,CC SET CHANNEL AND CONCURRENCY FLAG
  1406. STD T4
  1407. UJN SNCX RETURN
  1408.  
  1409.  
  1410. TSCH CON 0 PRIMARY CHANNEL (FIRST IF SINGLE ACCESS)
  1411. CON 0 SECONDARY CHANNEL
  1412. SUT SPACE 4,15
  1413. ** SUT - SCAN (BUFFERED I/O) UNIT TABLE.
  1414. *
  1415. * ENTRY (A) .LT. 0 IF INITIAL CALL.
  1416. * (CN) = CURRENT *PUT* ORDINAL IF NOT INITIAL CALL.
  1417. * (EQ) = EST ORDINAL.
  1418. * (ES - ES+4) = EST ENTRY.
  1419. * (CN+3 - CN+4) = FWA OF *PUT* IF NOT INITIAL CALL.
  1420. *
  1421. * EXIT (A) = 0 IF END OF SCAN.
  1422. * = (CN) = *PUT* ORDINAL.
  1423. * (CN+3 - CN+4) = FWA OF PHYSICAL UNIT TABLE.
  1424. *
  1425. * USES CM - CM+4, CN - CN+4.
  1426.  
  1427.  
  1428. SUT1 SOD CN
  1429. ZJN SUTX IF END OF UNIT TABLE
  1430. SUT2 LDD CN+3
  1431. SHN 14-PUTLS
  1432. ADD CN FORM *PUT* ADDRESS
  1433. SHN PUTLS
  1434. ADD CN+4
  1435. ADK UNCT READ UNIT CONTROL WORD
  1436. CRD CM
  1437. LDD CM+1 CHECK EST ORDINAL
  1438. LMD EQ
  1439. NJN SUT1 IF NOT REQUIRED DEVICE
  1440. LDD CN
  1441.  
  1442. SUT SUBR ENTRY/EXIT
  1443. PJN SUT1 IF NOT INITIAL CALL
  1444. LDD ES+4
  1445. SHN 3
  1446. ADN DILL FETCH DEVICE STATUS FROM MST
  1447. CRD CM
  1448. LDD CM+2
  1449. ZJN SUTX IF NOT BUFFERED DEVICE
  1450. LDC BIOL
  1451. CRD CN
  1452. LDD CN+1 GET *PUT* DESCRIPTOR
  1453. SHN 14
  1454. LMD CN+2
  1455. ADN PUTP
  1456. CRD CN
  1457. LDD CN+3
  1458. LPN 77 CLEAR FLAGS
  1459. STD CN+3
  1460. UJP SUT2 BEGIN UNIT TABLE SCAN
  1461. SVF SPACE 4,10
  1462. ** SVF - SET VERIFICATION FAILURE COUNT.
  1463. *
  1464. * ENTRY (A) = VERIFICATION FAILURE COUNT TO SET.
  1465. *
  1466. * EXIT FAILURE COUNT IN *CTLL* MST WORD UPDATED.
  1467. *
  1468. * USES CM - CM+4.
  1469. *
  1470. * MACROS MONITOR.
  1471.  
  1472.  
  1473. SVF SUBR ENTRY/EXIT
  1474. STM SVFA+4
  1475. LDN 0
  1476. STD CM+2
  1477. LDD ES+4 BASE TABLE ADDRESS
  1478. SHN 3
  1479. STD CM+4
  1480. SHN -14
  1481. STD CM+3
  1482. LDN 1
  1483. STD CM+1
  1484. LDD MA UPDATE FAILURE COUNT
  1485. CWM SVFA,ON
  1486. MONITOR UTEM
  1487. UJN SVFX RETURN
  1488.  
  1489.  
  1490. SVFA VFD 1/0,5/CTLL,6/12D,6/48D,42/0
  1491. SVI SPACE 4,10
  1492. ** SVI - SET VERIFICATION INTERLOCK.
  1493. *
  1494. * ENTRY (T5) = EST ORDINAL.
  1495. * (ES - ES+4) = WORD *EQDE* OF EST ENTRY.
  1496. *
  1497. * EXIT (CVIA) = EST ORDINAL OF DEVICE WITH INTERLOCK SET.
  1498. *
  1499. * USES CM - CM+4.
  1500. *
  1501. * MACROS DELAY, MONITOR.
  1502.  
  1503.  
  1504. SVI SUBR ENTRY/EXIT
  1505. LDD ES
  1506. SHN 21-11
  1507. PJN SVIX IF NOT SHARED DEVICE
  1508. SHN 21-4-21+11
  1509. MJN SVIX IF ISD DEVICE
  1510. SVI1 LDN ZERL
  1511. CRD CM
  1512. LDD T5 SET EST ORDINAL
  1513. STD CM+1
  1514. STM CVIA
  1515. LDN SVIS SET DEVICE VERIFICATION INTERLOCK
  1516. STD CM+3
  1517. MONITOR STBM
  1518. LDD CM+1
  1519. ZJN SVIX IF INTERLOCK SET SUCCESSFULLY
  1520. DELAY 20B DELAY 2 MILLISECONDS
  1521. UJN SVI1 RETRY
  1522. VBD SPACE 4,15
  1523. ** VBD - VERIFY BUFFER DATA.
  1524. *
  1525. * FOR EACH BUFFER THAT DOES NOT VERIFY, ((SP)+VCTB) IS
  1526. * INCREMENTED.
  1527. *
  1528. * ENTRY (NS) = NUMBER OF BUFFERS TO PROCESS.
  1529. * (SP) = STATISTICS GATHERING POINTER.
  1530. * (T7) = LAST SECTOR TO CHECK + 1.
  1531. *
  1532. * EXIT (A) = DATA ERROR COUNT.
  1533. *
  1534. * USES CN, T1, T2, T3.
  1535.  
  1536.  
  1537. VBD SUBR ENTRY/EXIT
  1538. LDC DBUF SET BUFFER POINTER
  1539. STD T3
  1540. LDN 0 SET SECTOR NUMBER
  1541. STD T2
  1542. VBD1 SBD NS
  1543. ZJN VBDX IF ALL BUFFERS PROCESSED
  1544. LDD T3
  1545. STD T1 SET BUFFER ADDRESS TO CHECK
  1546. ADC BUFL
  1547. STD T3
  1548. LDM DVBE,T2
  1549. NJN VBD3 IF ERROR OCCURRED
  1550. LDD T7 COMPUTE SECTOR NUMBER
  1551. SBD NS
  1552. ADD T2
  1553. STD T0
  1554. ADN 1
  1555. LMI T1
  1556. NJN VBD4 IF MISMATCH ON SECTOR
  1557. AOD T1
  1558. LDI T1
  1559. LMD HN
  1560. NJN VBD4 IF MISMATCH ON WORD COUNT
  1561. AOD T1
  1562. VBD2 LDC BUFP
  1563. LMI T1
  1564. NJN VBD4 IF PATTERN MISMATCH
  1565. AOD T1
  1566. LMD T3
  1567. NJN VBD2 IF NOT END OF BUFFER
  1568. VBD3 AOD T2
  1569. UJN VBD1 CHECK FOR END OF BUFFERS
  1570.  
  1571. VBD4 LDD T0 SET (T7) TO SECTOR IN ERROR
  1572. STD T7
  1573. AOM VCTB,SP SET DATA ERROR COUNT
  1574. UJP VBDX RETURN
  1575. VLS SPACE 4,15
  1576. ** VLS - VERIFY LABEL SECTOR.
  1577. *
  1578. * ENTRY (T7) = LABEL SECTOR NUMBER.
  1579. * (NS) = RELATIVE UNIT NUMBER.
  1580. * (SP) = ERROR STATISTICS BUFFER POINTER.
  1581. *
  1582. * EXIT ERROR INDICATORS SET IN STATISTICS BUFFER.
  1583. *
  1584. * USES MT, T4, T6, T7, T8, CM - CM+4, CN - CN+4, IR - IR+4.
  1585. *
  1586. * CALLS AEC, RDS, VLT, *5ME*.
  1587. *
  1588. * MACROS ENDMS, EXECUTE, SETMS.
  1589.  
  1590.  
  1591. VLS11 RJM AEC ANALYZE ERROR CODE
  1592. ZJN VLS12 IF DRIVE OR CONTROLLER RESERVE
  1593. STM LREB,SP SAVE LABEL READ ERROR
  1594. LDK REFG SET READ ERROR FLAG
  1595. VLS12 STM LEFB,SP
  1596. ENDMS
  1597.  
  1598. VLS SUBR ENTRY/EXIT
  1599. VLS0 SETMS IOCH,(AD,AR,DE,DF,ND)
  1600. * LDN 0 SET MEDIA ERROR THRESHOLD
  1601. STD MT
  1602. LDM TSCH,CC SET CHANNEL
  1603. STD T4
  1604. STM STSB STORE CHANNEL IN CASE BUFFERED DEVICE
  1605. LDD ES+4 READ MST DATA
  1606. SHN 3
  1607. ADN ALGL
  1608. CRD CM
  1609. LDD CM+1 SET LABEL TRACK NUMBER
  1610. STD T6
  1611. LDC BFMS
  1612. RJM RDS READ SECTOR
  1613. VLS0.1 MJP VLS11 IF MASS STORAGE ERROR
  1614.  
  1615. * CHECK CONTENTS OF LABEL.
  1616.  
  1617. * LDN 0
  1618. STD T8 SET ERROR STATUS
  1619. LDM LLSS
  1620. SHN -1
  1621. ZJN VLS0.2 IF NOT LEVEL 2 LABEL
  1622. LDD NS
  1623. NJN VLS0.2 IF NOT RELATIVE UNIT ZERO
  1624. RJM VLT VERIFY LEVEL 2 LABEL
  1625. MJN VLS0.1 IF TRT READ ERROR
  1626. STD T8 SET ERROR STATUS
  1627. LPK CKFG
  1628. NJP VLS12 IF CHECKSUM ERROR
  1629. VLS0.2 LDM BFMS CHECK CONTROL BYTES
  1630. LMC 3777
  1631. ZJN VLS1 IF PROPER CONTROL BYTE
  1632. LDK CBFG SET BAD CONTROL BYTE FLAG
  1633. RAD T8
  1634. VLS1 LDM BFMS+1
  1635. LMN 77
  1636. ZJN VLS2 IF PROPER WORD COUNT
  1637. LDK WCFG SET BAD WORD COUNT FLAG
  1638. RAD T8
  1639. VLS2 LDM FTSS
  1640. LMD T6
  1641. ZJN VLS3 IF PROPER TRACK
  1642. LDK TNFG SET BAD TRACK NUMBER FLAG
  1643. RAD T8
  1644. VLS3 LDM E4SS COMPARE EQUIPMENT TYPE WITH EST
  1645. STM EMNB,SP
  1646. LMM DVDT
  1647. ZJN VLS6 IF MATCHING EQUIPMENT MNEMONIC
  1648. LMN 1RP&1RE
  1649. VLSA PSN
  1650. * ZJN VLS6 (IF NON-MATCHING EM EQUIPMENT TYPES)
  1651. LDK EQFG SET BAD EQUIPMENT MNEMONIC
  1652. RAD T8
  1653. VLS6 LDD ES+4 GET FAMILY/PACKNAME
  1654. SHN 3
  1655. ADN PFGL
  1656. CRD CN
  1657. LDD MA COPY LABEL NAME TO MESSAGE BUFFER
  1658. CWM N4SS+5*PFGL,ON
  1659. SBN 1 MOVE NAME TO DIRECT CELLS
  1660. CRD CM
  1661. LDD CM
  1662. LMD CN
  1663. NJN VLS7 IF NOT THE SAME LABEL
  1664. LDD CM+1
  1665. LMD CN+1
  1666. NJN VLS7 IF NOT THE SAME LABEL
  1667. LDD CM+2
  1668. LMD CN+2
  1669. NJN VLS7 IF NOT THE SAME LABEL
  1670. LDD CM+3
  1671. LMD CN+3
  1672. SCN 77 CHECK DEVICE NUMBER SEPARATELY
  1673. NJN VLS7 IF NOT THE SAME LABEL
  1674. LDD CM+4
  1675. LMD CN+4
  1676. SCN 70
  1677. ZJN VLS8 IF GOOD COMPARE
  1678. VLS7 LDK FPFG SET FAMILY/PACK NAME ERROR FLAG
  1679. RAD T8
  1680. VLS8 LDD CM+3 COMPARE DEVICE NUMBERS
  1681. LMD CN+3
  1682. LPN 77
  1683. ZJN VLS9 IF DEVICE NUMBERS MATCH
  1684. LDK DNFG SET BAD DEVICE NUMBER FLAG
  1685. RAD T8
  1686. VLS9 LDD CM
  1687. STM FMNB,SP
  1688. LDD CM+1
  1689. STM FMNB+1,SP
  1690. LDD CM+2
  1691. STM FMNB+2,SP
  1692. LDD CM+3
  1693. STM DNMB,SP
  1694. LDD CM+4 CHECK RELATIVE UNIT NUMBER
  1695. SHN -3
  1696. LPN 7
  1697. LMD NS
  1698. ZJN VLS10 IF CORRECT UNIT NUMBER
  1699. LDK RUFG SET RELATIVE UNIT NUMBER ERROR
  1700. VLS10 RAD T8
  1701. LPK FPFG+DNFG+RUFG
  1702. NJN VLS10.2 IF WRONG PACK
  1703. VLS10.1 LDD T8
  1704. LJM VLS12 RETURN
  1705.  
  1706. VLS10.2 LDD ES
  1707. SHN 21-11
  1708. PJN VLS10.1 IF NOT SHARED
  1709. SHN 11-21
  1710. LPN 3
  1711. LMN 3
  1712. ZJN VLS10.1 IF DOWN
  1713. LDD T5
  1714. STD IR+3 SET EST ORDINAL
  1715. LDK BFMS
  1716. STD IR+2 SET BUFFER ADDRESS
  1717. EXECUTE 5ME
  1718. LDD IA RESTORE INPUT REGISTER
  1719. CRD IR
  1720. LDN /MMF/LSLT RESET LABEL SECTOR
  1721. STD T7
  1722. LJM VLS0 RETRY VERIFICATION
  1723. VLT SPACE 4,15
  1724. ** VLT - VERIFY LEVEL TWO LABEL.
  1725. *
  1726. * ENTRY (NS) = RELATIVE UNIT NUMBER.
  1727. * (SP) = ERROR STATISTICS BUFFER POINTER.
  1728. * (T7) = LABEL SECTOR NUMBER.
  1729. * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
  1730. *
  1731. * EXIT (A) = ERROR INDICATORS.
  1732. *
  1733. * USES T1, T7, T9, CM - CM+4.
  1734. *
  1735. * CALLS CLC, RDS.
  1736.  
  1737.  
  1738. VLT6 LDK CKFG CHECKSUM ERROR
  1739.  
  1740. VLT SUBR ENTRY/EXIT
  1741. RJM CLC COMPUTE LABEL CHECKSUM
  1742. LMM CKSS
  1743. NJN VLT6 IF INCORRECT CHECKSUM
  1744. LDM N4SS+SDGL*5+4 CHECK MST/TRT INTERLOCK
  1745. LPN 76
  1746. ZJN VLT1 IF NOT INTERLOCKED
  1747. SHN -1
  1748. STD T1
  1749. LDD ES+4 COMPARE INTERLOCK WITH THIS MF-S INDEX
  1750. SHN 3
  1751. ADK DULL
  1752. CRD CM
  1753. LDD CM+2
  1754. LPN 17
  1755. ADN 1
  1756. LMD T1
  1757. ZJN VLT1 IF INTERLOCKED BY THIS MAINFRAME
  1758. LDD T1
  1759. SHN 2
  1760. RAD T1
  1761. LDM DISS-5+3,T1
  1762. LPN 1
  1763. LMN 1
  1764. ZJN VLT1 IF INTERLOCKED FOR DEVICE RECOVERY
  1765. LDK ILFG
  1766. VLT1 STD T9
  1767. LDD NS
  1768. NJP VLT4 IF NOT RELATIVE UNIT ZERO
  1769. LDM N4SS+TDGL*5+2 CHECK MST AND TRT COUNTERS
  1770. SHN -6
  1771. ADN 1
  1772. RAD T7
  1773. LDC DBUF
  1774. RJM RDS READ LAST SECTOR OF TRT
  1775. MJN VLT5 IF READ ERROR
  1776. LDM N4SS+SDGL*5+2
  1777. LMM DBUF+2+77*5+2
  1778. NJN VLT2 IF COUNTERS DON-T MATCH
  1779. LDM N4SS+SDGL*5+3
  1780. LMM DBUF+2+77*5+3
  1781. NJN VLT2 IF COUNTERS DON-T MATCH
  1782. LDM N4SS+SDGL*5+4
  1783. LMM DBUF+2+77*5+4
  1784. SCN 77
  1785. ZJN VLT3 IF COUNTERS MATCH
  1786. VLT2 LDD TH COUNTER MISMATCH
  1787. * LDK CMFG
  1788. ERRNZ CMFG-1000B
  1789. RAD T9
  1790. VLT3 LDN /MMF/LSLT RESET LABEL SECTOR
  1791. STD T7
  1792. VLT4 LDD T9
  1793. VLT5 LJM VLTX RETURN
  1794. VSF SPACE 4,15
  1795. ** VSF - VERIFY SYSTEM FILE.
  1796. *
  1797. * ENTRY (EQ) = (T5) = EST ORDINAL.
  1798. * (ES - ES+4) = EST ENTRY.
  1799. *
  1800. * EXIT (A) .LT. 0 IF I/O ERROR.
  1801. *
  1802. * USES CM - CM+4, CN - CN+4.
  1803. *
  1804. * CALLS IRA, WSF.
  1805. *
  1806. * MACROS SFA.
  1807.  
  1808.  
  1809. VSF SUBR ENTRY/EXIT
  1810. LDD ES
  1811. LPC 2003 CHECK DEVICE STATE
  1812. LMC 2003
  1813. NJN VSFX IF NOT DOWN SYSTEM DEVICE
  1814. LDN FNTP
  1815. CRD CM FETCH FNT POINTER
  1816. LDD CM
  1817. SHN 14 READ SYSTEM FILE FST
  1818. LMD CM+1
  1819. ERRNZ SYFO CODE DEPENDS ON VALUE
  1820. ADN FSTG
  1821. CRD CN
  1822. RJM IRA INITIALIZE RANDOM ACCESS PROCESSORS
  1823.  
  1824. * WRITE SYSTEM FILE - SYSTEM + EOI SECTORS.
  1825.  
  1826. LDD CN+1 PROCESS SYSTEM FILE
  1827. RJM WSF
  1828. MJN VSFX IF I/O ERROR
  1829.  
  1830. * WRITE PP LIBRARY FILE - SYSTEM + EOI SECTORS.
  1831.  
  1832. LDM PLSS PROCESS PP LIBRARY FILE
  1833. RJM WSF
  1834. UJP VSFX RETURN
  1835. WCS SPACE 4,15
  1836. ** WCS - WRITE CONSECUTIVE SECTORS.
  1837. *
  1838. * ENTRY (NS) = NUMBER OF SECTORS TO WRITE.
  1839. * (SP) = STATISTICS GATHERING POINTER.
  1840. * (T4 - T7) = MASS STORAGE DRIVER PARAMETERS.
  1841. * (BFMS) = DATA TO WRITE.
  1842. *
  1843. * EXIT (A) = WRITE ERROR COUNT.
  1844. *
  1845. * USES MT, T7, T9.
  1846. *
  1847. * CALLS AEC, WDS.
  1848.  
  1849.  
  1850. WCS6 LDN 0 RESTORE ORIGINAL SECTOR NUMBER
  1851. SBD NS
  1852. RAD T7
  1853. LDN 0
  1854.  
  1855. WCS SUBR ENTRY/EXIT
  1856. LDN 0 SET MEDIA ERROR THRESHOLD
  1857. * LDN METH (I/O ON MAINTENANCE CYLINDER)
  1858. WCSA EQU *-1
  1859. STD MT
  1860. LDD HN
  1861. STM BFMS+1 SET SECTOR WORD COUNT
  1862. LDN 0
  1863. STD T9 INITIALIZE SECTOR NUMBER
  1864. LDD T7
  1865. WCS1 ADN 1 SET SECTOR LINKAGE
  1866. STM BFMS
  1867. AOD T9
  1868. SBD NS
  1869. ERRNZ WLSF CODE DEPENDS ON VALUE
  1870. ZJN WCS2 IF WRITING LAST SECTOR
  1871. PJN WCS6 IF WRITING COMPLETE
  1872. LDC WCSF
  1873. WCS2 ADC BFMS
  1874. RJM WDS
  1875. PJN WCS3 IF NO ERROR
  1876. RJM AEC ANALYZE ERROR CODE
  1877. NJN WCS3 IF NOT DRIVE OR CONTROLLER RESERVE
  1878. STM DVBE-1,T9
  1879. LDN 1 SET ERROR INDICATOR
  1880. WCS2.1 UJP WCSX RETURN
  1881.  
  1882. WCS3 STM DVBE-1,T9
  1883. STM WCDB,SP SAVE LATEST WRITE ERROR CODE
  1884. MJN WCS4 IF TOO MANY MEDIA OR OTHER ERRORS
  1885. AOD T7
  1886. UJP WCS1 PROCESS NEXT SECTOR
  1887.  
  1888. WCS4 SHN 21-20
  1889. PJN WCS5 IF NOT DIAGNOSTIC FAILURE
  1890. STM HVLB
  1891. WCS5 AOM WCTB,SP SET WRITE ERROR COUNT
  1892. UJN WCS2.1 RETURN
  1893. WSF SPACE 4,15
  1894. ** WSF - WRITE SYSTEM FILE.
  1895. *
  1896. * ENTRY (A) = FIRST TRACK OF FILE.
  1897. * (EQ) = ORDINAL OF DEVICE BEING VERIFIED.
  1898. *
  1899. * EXIT (A) .LT. 0 IF I/O ERROR.
  1900. *
  1901. * USES T5, T6, T7.
  1902. *
  1903. * CALLS RDS, SEI, WEI, WSS.
  1904. *
  1905. * MACROS ENDMS, SETMS.
  1906.  
  1907.  
  1908. WSF SUBR ENTRY/EXIT
  1909. STD T6
  1910. LDN 0 SYSTEM SECTOR NUMBER
  1911. STD T7
  1912. SETMS READSYS,(AD,DF,ND)
  1913. LDC BFMS READ SYSTEM SECTOR
  1914. RJM RDS
  1915. MJN WSFX IF READ ERROR
  1916. ENDMS
  1917. LDD EQ SELECT DEVICE BEING VERIFIED
  1918. STD T5
  1919. SETMS IO,(AD,DF,ND,NR)
  1920. RJM WSS WRITE SYSTEM SECTOR
  1921. MJN WSFX IF WRITE ERROR
  1922. RJM SEI LOCATE EOI ON SYSTEM FILE
  1923. SETMS POSITION
  1924. RJM WEI WRITE EOI SECTOR
  1925. MJN WSF1 IF WRITE ERROR
  1926. ENDMS
  1927. * LDN 0
  1928. WSF1 UJP WSFX RETURN
  1929. SPACE 4,10
  1930. ** COMMON DECKS.
  1931.  
  1932.  
  1933. *CALL COMPCLC
  1934. IRA$ EQU 0 SET *IRA* INITIALIZATION COMPLETE
  1935. *CALL COMPSEI
  1936. *CALL COMPIRA
  1937. *CALL COMPTLB
  1938. *CALL COMPWEI
  1939. *CALL COMPWSS
  1940. TITLE BUFFERS.
  1941. SPACE 4,10
  1942. ** BUFFERS.
  1943.  
  1944.  
  1945. BUF EQU *
  1946. BEGIN BSSN BUF
  1947.  
  1948. * CELLS SET BY PRESET.
  1949.  
  1950. DVDT BSSN 1 DEVICE TYPE
  1951. DVMT BSSN 1 DEVICE MAINTENANCE TRACK
  1952. DVHL BSSN 1 DEVICE HEAD COUNT LIMIT PER TRACK
  1953. DVSI BSSN 1 DEVICE SECTOR INCREMENT TO NEXT HEAD
  1954. CVNF BSSN 1 CONVERSION FACTOR
  1955. DVST BSSN 0 DEVICE SECTORS BETWEEN LOGICAL TRACKS
  1956. LSLT BSSN 1 LOGICAL SECTORS/LOGICAL TRACK
  1957. LSCY BSSN 2 LOGICAL SECTORS/CYLINDER
  1958. LSPT BSSN 1 LOGICAL SECTORS/PHYSICAL TRACK
  1959. DVSB BSSN 1 PHYSICAL SECTORS / BUFFER - 1
  1960. DVPC BSSN 1 DEVICE HARDWARE VERIFICATION PROCESSOR
  1961.  
  1962. * ZEROED OUT TABLES.
  1963.  
  1964. DVC1 BSSN 10*MXNB CHANNEL 1 STATISTICS BUFFER
  1965. DVC2 BSSN 10*MXNB CHANNEL 2 STATISTICS BUFFER
  1966. EZOT BSSN 0 END OF ZEROED OUT TABLES
  1967.  
  1968. * SCRATCH CELLS.
  1969.  
  1970. .1 SET BFMS-*
  1971. MXSC EQU .1/503 MAXIMUM SECTORS IN BUFFER
  1972. DVBE BSSN MXSC DEVICE VERIFICATION ERROR FLAG BUFFER
  1973. DBUF BSSN MXSC*BUFL DATA VERIFICATION DATA BUFFER
  1974.  
  1975.  
  1976. END BSSN
  1977.  
  1978. OVLA EQU DVBE+5 *2VA* OVERLAY LOAD POINT
  1979. SPACE 4,10
  1980. ERRNG BFMS-DBUF-MXSC*BUFL OVERFLOW INTO WRITE BUFFER
  1981. ERRNG MXSC-DVSC NOT ENOUGH SECTORS FOR DEVICE VERIFY
  1982. ERRNG EPFW-OVLA-ZSCL *0SC* OVERLAYED BY ERROR PROCESSOR
  1983. TITLE PRESET TABLES.
  1984. TDVC SPACE 4,10
  1985. ** TDVC - TABLE OF DEVICE CONSTANTS.
  1986.  
  1987.  
  1988. TDVC BSS 0
  1989. TDVCL EQU 13 TABLE ENTRY LENGTH
  1990. .A SET TDVCL+4
  1991. TDVCS EQU .A/5 TABLE ENTRY SIZE (CM WORD COUNT)
  1992. LIST G
  1993. ECHO ,DT="MSEQ"
  1994. .1 IF DEF,PRC._DT
  1995. CON 2R_DT DT
  1996. CON MCLT_DT LOGICAL TRACK OF MAINTENANCE CYLINDER
  1997. .2 IFEQ PRC.DT,HVL
  1998. CON PTCY_DT PHYSICAL TRACKS PER CYLINDER
  1999. .A SET TT_DT+1
  2000. CON LSPS_DT*PSPT_DT/.A SECTOR OFFSET TO NEXT HEAD POSITION
  2001. CON CFS_DT CONVERSION FACTOR SHIFT COUNT
  2002. CON SL_DT+GS_DT LOGICAL SECTORS/LOGICAL TRACK
  2003. .A SET PSPT_DT*PTCY_DT-SPSC_DT PHYSICAL SECTORS/CYLINDER
  2004. .B SET .A*LSPS_DT LOGICAL SECTORS/CYLINDER
  2005. .C SET .B/10000
  2006. .D SET .C*10000
  2007. CON .C UPPER LOGICAL SECTORS/CYLINDER
  2008. CON .B-.D LOWER LOGICAL SECTORS/CYLINDER
  2009. CON LSPT_DT LOGICAL SECTORS/PHYSICAL TRACK
  2010. .3 IF DEF,PSBF_DT
  2011. CON 37 LOGICAL SECTOR BUFFER ROUNDING FACTOR
  2012. .3 ELSE
  2013. CON 0
  2014. .3 ENDIF
  2015. .2 ELSE
  2016. BSSZ TDVCL-3
  2017. .2 ENDIF
  2018. CON PRC._DT DEVICE TYPE PROCESSOR
  2019. .1 ENDIF
  2020. ENDD
  2021. LIST *
  2022. BSSZ TDVCL END OF TABLE - NULL PARAMETERS
  2023. TFCN SPACE 4,10
  2024. ** TFCN - TABLE OF FUNCTION PROCESSORS.
  2025. *
  2026. * ENTRY - 3 BYTES.
  2027. * BYTE 0 = FUNCTION PROCESSOR.
  2028. * BYTE 1 = REPAIR PROCESSOR.
  2029. * BYTE 2 = REPAIRABLE ERRORS.
  2030.  
  2031.  
  2032. TFCN BSS 0
  2033.  
  2034. DVFC FCN DVF,RLT,REFG+CKFG+CMFG
  2035. ONFC FCN ONF,RLT,REFG+CKFG+CMFG
  2036. IDFC FCN IDF,RLT,REFG+CKFG+CMFG
  2037. OFFC FCN LVA,RLT,REFG+CKFG+CMFG
  2038. MVFC FCN MVA,CFE9,0
  2039. UCFC FCN UCF,CFE9,0
  2040. SCFC FCN SCF,DVF2,0
  2041. MXFN FCN
  2042. TITLE PRESET.
  2043. PRS SPACE 4,30
  2044. ** PRS - PRESET.
  2045. *
  2046. * ENTRY (IR - IR+4) = *1MV* CALL.
  2047. *
  2048. * EXIT (CC) = (DA) = CHANNEL COUNT.
  2049. * (FC) = FUNCTION CODE.
  2050. * (SU) = SINGLE UNIT SECTOR COUNT FROM MST.
  2051. * (SP) = POINTER TO STATISTICS BUFFER.
  2052. * (T4) = FIRST CHANNEL.
  2053. * (T5) = EST ORDINAL.
  2054. * (T7) = 0.
  2055. * (DP - DP+4) = 0 ((DP) = 1 IF EXTENDED MEMORY).
  2056. * (ES - ES+4) = *EQDE* WORD OF EST ENTRY.
  2057. * (DVSA) = SINGLE UNIT SECTOR + GAP COUNT.
  2058. * (DVHL) = HEAD COUNT LIMIT FOR DEVICE.
  2059. * (DVMT) = MAINTENANCE CYLINDER LOGICAL TRACK.
  2060. * (DVSI) = SECTOR INCREMENT FOR FUNCTION.
  2061. *
  2062. * ERROR TO *DPP* IF BAD CALL.
  2063. *
  2064. * USES T1, T8, CM - CM+4, CN - CN+4, ES - ES+4.
  2065.  
  2066.  
  2067. PRS BSS ENTRY
  2068. LDD IR+3
  2069. SHN -6
  2070. STD FC EXTRACT FUNCTION CODE
  2071. SHN 1
  2072. ADD FC
  2073. STD T1
  2074. SBN MXFN*3
  2075. PJN PRS1 IF INCORRECT FUNCTION CODE
  2076. LDM TFCN,T1 SET PROCESSOR ADDRESS
  2077. STM PRSB
  2078. LDM TFCN+1,T1 SET REPAIR PROCESSOR ADDRESS
  2079. STM CFEB
  2080. LDM TFCN+2,T1 SET REPAIRABLE ERRORS
  2081. STM CFEA
  2082. LDK ESTP
  2083. CRD CM
  2084. LDD EQ SET EST ORDINAL
  2085. STD T5
  2086. SBD CM+3
  2087. PJN PRS1 IF OUT OF EST
  2088. SFA EST,T5 READ EST ENTRY
  2089. ADK EQDE
  2090. CRD ES
  2091. ADK EQAE-EQDE
  2092. CRD CN
  2093. LDD ES
  2094. SHN 21-13
  2095. MJN PRS2 IF DEVICE IS MASS STORAGE
  2096. PRS1 LJM DPP DROP PP
  2097.  
  2098. PRS2 LDD ES+3
  2099. LMC 2RDC
  2100. ZJN PRS2.1 IF 895 TYPE DEVICE
  2101. ISTORE HVLF,(UJN HVL3.1) DISABLE 895 FORMATTING
  2102. LDD ES+3
  2103. LMC 2RDF
  2104. ZJN PRS2.2 IF 887 TYPE (HYDRA) DEVICE
  2105. LMN 2RDH&2RDF
  2106. ZJN PRS2.2 IF 887 TYPE (HYDRA) DEVICE
  2107. PRS2.1 ISTORE HVLE,(UJN HVL3) DISABLE HYDRA DIAGNOSTICS
  2108. PRS2.2 LDD ES+4 READ MST DATA
  2109. SHN 3
  2110. ADN MDGL
  2111. CRD CM
  2112. ADN DILL-MDGL GET DRIVER WORD
  2113. CRD DP
  2114. LDD CM+1 SAVE SINGLE UNIT SECTOR LIMIT
  2115. LPC 3777
  2116. STD SU
  2117.  
  2118. * SEARCH FOR DEVICE IN TABLE.
  2119.  
  2120. LDC TDVC-TDVCL INITIALIZE POINTER INTO DEVICE CONSTANTS
  2121. STD T1
  2122. LDD DP+3
  2123. NJN PRS3 IF BUFFERED DEVICE
  2124. LDC *
  2125. ORG *-1 TRANSFER FOR NON-BUFFERED DEVICE
  2126. LOC CDAA
  2127. UJN CDA9 PROCESS *LDAM* DEVICE
  2128. LOC *O
  2129. STM CDAA
  2130. PRS3 LDN TDVCL INCREMENT POINTER
  2131. RAD T1
  2132. LDI T1 CHECK DEVICE MNEMONIC
  2133. ZJN PRS4 IF DEVICE NOT FOUND
  2134. LMD ES+3
  2135. NJN PRS3 IF NO MATCH
  2136. PRS4 STD CC
  2137. STD T7
  2138. STD DA
  2139. LDD T1 TRANSFER DEVICE PARAMETERS
  2140. STM PRSA
  2141. LDN TDVCS SET WORD COUNT
  2142. STD T1
  2143. ERRNG 6-TDVCS TRANSFER OVERFLOWS MESSAGE BUFFER
  2144. LDD MA
  2145. CWM 0,T1 MOVE TABLE ENTRY INTO MESSAGE BUFFER
  2146. PRSA EQU *-1
  2147. SBN TDVCS COPY ENTRY TO DEVICE PARAMETER BLOCK
  2148. CRM DVDT,T1
  2149. LDN ZERL CLEAR DEVICE SEEK PARAMETERS
  2150. CRD DP
  2151. LDN 77 SET LOGICAL TO PHYSICAL SECTOR CONVERSION
  2152. SBM CVNF
  2153. RAM CDAB
  2154. LDD ES+3
  2155. STM DVDT
  2156. LMC 2RDP
  2157. ZJN PRS5 IF ESM
  2158. LMN 2RDE&2RDP
  2159. NJN PRS6 IF NOT UEM
  2160. PRS5 ISTORE VLSA,(ZJN VLS6)
  2161. AOD DP AVOID ADDRESS CONVERSION
  2162. LDD CN+2
  2163. SHN -6
  2164. LPN 3
  2165. ZJN PRS6 IF XM TRACK SIZE IS 2020 WORDS
  2166. LDD ES+4
  2167. SHN 3 FORM MST ADDRESS
  2168. ADK ALGL
  2169. CRD CM
  2170. LDD CM+1
  2171. STM DVMT USE LABEL TRACK FOR VERIFICATION
  2172. LDN 20
  2173. RAM HVEA BEGIN VERIFICATION AT SECTOR 20
  2174. PRS6 LDD ES+3
  2175. LMC 2RDE
  2176. ZJN PRS9 IF EXTENDED MEMORY
  2177. LDN ES+1
  2178. STD T1
  2179. PRS7 LDI T1 SET CHANNEL IN TABLE
  2180. LPN 77
  2181. STM TSCH,DA
  2182. LMI T1
  2183. SHN 0-12
  2184. LMN 2
  2185. NJN PRS8 IF ACCESS NOT PRESENT OR DISABLED
  2186. AOD DA
  2187. PRS8 AOD T1 ADVANCE CHANNEL BYTE ADDRESS
  2188. LMN ES+3
  2189. NJN PRS7 IF ANOTHER CHANNEL BYTE
  2190. SOD DA
  2191. MJP DPP IF NO CHANNELS
  2192. ZJN PRS10 IF SINGLE ACCESS DEVICE
  2193. LDD ES
  2194. SHN 21-6
  2195. PJN PRS10 IF DEVICE IS AVAILABLE
  2196. LDD ES+1
  2197. LMD ES+2
  2198. LPC 400
  2199. PRS9 ZJN PRS10 IF SAME CONTROLLER TYPES
  2200. LDD ES+2
  2201. SHN 0-10
  2202. LPN 1
  2203. STD T1
  2204. LDM ES+1,T1 SET HALF TRACK CHANNEL FOR VERIFICATION
  2205. LPN 77
  2206. STM TSCH
  2207. UJN PRS11 CONTINUE
  2208.  
  2209. PRS10 AOD DA SET CHANNEL COUNT
  2210. LDM TSCH
  2211. PRS11 STD T4 SET FIRST CHANNEL
  2212. LDD IR+3 GET REPAIR STATUS
  2213. LPN 40
  2214. NJN PRS12 IF REPAIR HAS BEEN ATTEMPTED
  2215. LDD T5
  2216. STD CM+1
  2217. LDN RVES RESERVE EQUIPMENT
  2218. STD CM+2
  2219. MONITOR REQM
  2220. LDD CM+1
  2221. NJN PRS13 IF DEVICE RESERVED
  2222. LJM IBM+1 ISSUE BML MESSAGE
  2223.  
  2224. PRS12 LDN 0 COUNT ALL LABEL ERRORS AS UNREPAIRABLE
  2225. STM CFEA
  2226. PRS13 LDD T5
  2227. STM RAEA SET EQUIPMENT RESERVED
  2228.  
  2229. * CLEAR STATISTICS BUFFER.
  2230.  
  2231. LDC EZOT-1 SET BUFFER LWA+1
  2232. STD SP SAVE STARTING ADDRESS
  2233. ERRNG *-EZOT-1 TABLES OVERLAP CODE
  2234. PRS14 LDN 0
  2235. STI SP
  2236. SOD SP DECREMENT POINTER
  2237. LMC DVC1
  2238. NJN PRS14 IF NOT DONE CLEARING
  2239. STI SP
  2240. RJM ECA ENABLE CONTROLLER ACTIVITY
  2241. LJM * EXIT TO PROCESSOR
  2242. PRSB EQU *-1
  2243. TITLE PRESET SUBROUTINES.
  2244. ECA SPACE 4,15
  2245. ** ECA - ENABLE CONTROLLER ACTIVITY.
  2246. *
  2247. * THIS ROUTINE FORCES THE 583X/47444 (*DAS*) OR 9853 (*XMD*)
  2248. * DRIVER TO REENABLE ACTIVITY TO A CONTROLLER IN ORDER TO
  2249. * ALLOW A *UCFC* (*UP,CCH*) FUNCTION TO BE PROCESSED.
  2250. * THIS IS ACCOMPLISHED BY SETTING A SPECIAL REQUEST BIT IN
  2251. * WORD *PILL* OF THE *PUT*, AND A BIT FOR THE SPECIFIED
  2252. * CHANNEL IN WORD *BDLL* OF THE *MST*.
  2253. *
  2254. * ENTRY (FC) = FUNCTION CODE.
  2255. * (IR+2) = EST ORDINAL.
  2256. * (IR+4) = CHANNEL.
  2257. *
  2258. * USES CM - CM+4, CN - CN+4, T1.
  2259. *
  2260. * MACROS MONITOR, SFA.
  2261.  
  2262.  
  2263. ECA SUBR ENTRY/EXIT
  2264. LDD FC CHECK FUNCTION CODE
  2265. LMN UCFC
  2266. NJN ECAX IF NOT *UP,CCH* FUNCTION
  2267. SFA EST,IR+2 READ EST ENTRY
  2268. ADK EQDE
  2269. CRD CM
  2270. LDN TECAL CHECK DEVICE TYPE
  2271. STD T1
  2272. ECA2 SOD T1 CHECK NEXT TABLE ENTRY
  2273. MJN ECAX IF THIS DEVICE TYPE NOT IN TABLE
  2274. LDD CM+3
  2275. LMM TECA,T1
  2276. NJN ECA2 IF DEVICE TYPE DOES NOT MATCH
  2277.  
  2278. * SET CHANNEL SELECTION FLAGS.
  2279.  
  2280. LDD CM+1 CHECK FOR FIRST CHANNEL SPECIFIED
  2281. LPN 77
  2282. LMD IR+4
  2283. NJN ECA3 IF FIRST CHANNEL NOT SPECIFIED
  2284. LDN 1 SET FLAG FOR FIRST CHANNEL
  2285. UJN ECA4 UPDATE *MST*
  2286.  
  2287. ECA3 LDN 2 SET FLAG FOR SECOND CHANNEL
  2288.  
  2289. * SET CHANNEL SELECTION FLAGS INTO *MST*.
  2290.  
  2291. ECA4 STD CN+4
  2292. LDC BDLL*100+2 6/INDEX INTO *MST*, 6/BITS TO CHANGE
  2293. STD CN
  2294. LDC 49D*100 6/LOW ORDER BIT, 6/0
  2295. STD CN+1
  2296. LDD MA
  2297. CWD CN STORE MESSAGE BUFFER PARAMETERS
  2298. LDD CM+4 SAVE *MST* ADDRESS
  2299. STD T1
  2300. SHN 3
  2301. STD CM+4
  2302. SHN -14
  2303. STD CM+3
  2304. LDN 1
  2305. STD CM+1 REQUESTS IN MESSAGE BUFFER
  2306. MONITOR UTEM UPDATE TABLE ENTRY
  2307.  
  2308. * SET SPECIAL REQUEST INTO *PUT*.
  2309.  
  2310. LDC PILL*100+1 6/INDEX INTO *PUT*, 6/BITS TO CHANGE
  2311. STD CN
  2312. LDC ECAF*100 6/LOW ORDER BIT, 6/0
  2313. STD CN+1
  2314. LDN 1
  2315. STD CN+4 NEW VALUE
  2316. LDD MA
  2317. CWD CN STORE MESSAGE BUFFER PARAMETERS
  2318. LDD T1
  2319. SHN 3 *MST* ADDRESS
  2320. ADK DILL
  2321. CRD CM (CM+2) = PUT ORDINAL
  2322. LDK BIOL
  2323. CRD CN READ BUFFERED I/O POINTERS
  2324. LDD CN+1
  2325. SHN 14
  2326. LMD CN+2
  2327. ADK PUTP
  2328. CRD CN READ *PUT* POINTER
  2329. LDD CM+2
  2330. SHN PUTLS
  2331. ADD CN+4
  2332. STD CM+4 SET START ADDRESS OF *PUT*
  2333. SHN -14
  2334. ADD CN+3
  2335. STD CM+3
  2336. LDN 1
  2337. STD CM+1 REQUESTS IN MESSAGE BUFFER
  2338. MONITOR UTEM UPDATE TABLE ENTRY
  2339. UJP ECAX RETURN
  2340.  
  2341.  
  2342. TECA BSS 0 TABLE OF 583X/9853/47444 DEVICES
  2343. CON 2RDN 9853
  2344. CON 2REA 5832 (1X SSD)
  2345. CON 2REB 5832 (2X SSD)
  2346. CON 2REC 5833 (1X SABRE)
  2347. CON 2RED 5833 (1XP SABRE)
  2348. CON 2REE 5833 (2X SABRE)
  2349. CON 2REF 5833 (2XP SABRE)
  2350. CON 2REG 5838 (1X ELITE)
  2351. CON 2REH 5838 (1XP ELITE)
  2352. CON 2REI 5838 (2X ELITE) (MP)
  2353. CON 2REJ 5838 (2XP ELITE) (MP)
  2354. CON 2REK 5838 (3XP ELITE) (MP)
  2355. CON 2REL 5838 (4X ELITE) (MP)
  2356. CON 2REM 5833 (3XP SABRE) (MP)
  2357. CON 2REN 5833 (4X SABRE) (MP)
  2358. CON 2REO 47444 (1X 3.5IN)
  2359. CON 2REP 47444 (1XP 3.5IN)
  2360. CON 2RES 47444 (2X 3.5IN) (MP)
  2361. CON 2REU 47444 (2XP 3.5IN) (MP)
  2362. CON 2REV 47444 (3XP 3.5IN) (MP)
  2363. CON 2REW 47444 (4X 3.5IN) (MP)
  2364. TECAL EQU *-TECA LENGTH OF TABLE
  2365. SPACE 4,10
  2366. OVERFLOW
  2367. OVERLAY (*1MV* FUNCTION COMPLETION OVERLAY.)
  2368. ELM SPACE 4,20
  2369. ** ELM - ERROR LOG MESSAGE PROCESSOR.
  2370. *
  2371. * ENTRY (CN) = SYMPTOM CODE.
  2372. * (DCHA+3) = CHANNEL NUMBER, INCLUDING CONCURRENCY FLAG.
  2373. * (CN) = SYMPTOM CODE FOR BML MESSAGE.
  2374. * (EQ) = EST ORDINAL.
  2375. * (FC) = *1MV* FUNCTION CODE.
  2376. * (DP - DP+4) = DEVICE SEEK PARAMETERS.
  2377. *
  2378. * EXIT (A) = 0.
  2379. *
  2380. * USES MT, T1, T2, T3, T8, CM - CM+4, CN - CN+4.
  2381. *
  2382. * CALLS C2D, DFM.
  2383. *
  2384. * MACROS MONITOR.
  2385.  
  2386.  
  2387. ELM SUBR ENTRY/EXIT
  2388. LDD EQ CONVERT UPPER TWO DIGITS OF EST ORDINAL
  2389. SHN -3
  2390. RJM C2D
  2391. STM ELMB+1
  2392. STM ELMC+1
  2393. STM ELMD+1
  2394. STM ELME+1
  2395. STM ELMF+1
  2396. LDD EQ CONVERT LOWER DIGIT OF EST ORDINAL
  2397. STM BMLEO STORE EST ORDINAL IN BML MESSAGE
  2398. LPN 7
  2399. SHN 6
  2400. ADC 2R0
  2401. STM ELMB+2
  2402. STM ELMC+2
  2403. STM ELMD+2
  2404. STM ELME+2
  2405. STM ELMF+2
  2406. LDD CN STORE SYMPTOM CODE IN MESSAGE
  2407. STD T2
  2408. STM BMLSC
  2409. LDD DP+1 ADD UNIT NUMBER TO MESSAGE
  2410. STM BMLUN
  2411. ELM1 LDK PPCP ADD PP NUMBER TO MESSAGE
  2412. CRD CM
  2413. ADN MMFL-PPCP
  2414. CRD CN
  2415. LDD CN ADD MACHINE ID TO MESSAGE
  2416. STM BMLMF
  2417. LDD IA STORE PP NUMBER IN BML MESSAGE
  2418. SBD CM+4
  2419. SHN 3
  2420. LMM DCHA+3 APPEND CHANNEL NUMBER
  2421. STM BMLPP
  2422.  
  2423. * DETERMINE THE APPROPRIATE BML MESSAGE IDENTIFIER TO BE
  2424. * ADDED TO THE MESSAGE. FOR DISKS, THE MESSAGE ID CAN BE
  2425. * DETERMINED FROM THE DEVICE CODE. FOR EXTENDED MEMORY,
  2426. * IT MUST BE DETERMINED FROM DATA IN WORD *DILL* OF THE MST.
  2427.  
  2428. LDN 0 INITIALIZE TABLE POINTERS
  2429. STD T8
  2430. LDC MSGID-2 SET TABLE ADDRESS
  2431. STD T1
  2432. LDD ES+3 SAVE DEVICE CODE
  2433. STD T3
  2434. LMC 2RDE
  2435. ZJN ELM2 IF A *DE* TYPE DEVICE
  2436. LMN 2RDP&2RDE
  2437. NJN ELM3 IF NOT A *DP* TYPE DEVICE
  2438. ELM2 LDD ES+4 GET MST WORD *DILL*
  2439. SHN 3
  2440. ADN DILL
  2441. CRD CM
  2442. LDD CM+3 USE *DILL* DATA FIELDS
  2443. LPC 707
  2444. STD T3
  2445. LDC MSEID-2 SET TABLE ADDRESS
  2446. STD T1
  2447. ELM3 LDN 2
  2448. RAD T1
  2449. LDI T1 SCAN TABLE FOR A MATCH
  2450. ZJN ELM4 IF DEVICE IS NOT FOUND IN TABLE
  2451. LMD T3
  2452. NJN ELM3 IF A MATCH HAS NOT YET BEEN FOUND
  2453. LDM 1,T1
  2454. ELM4 STM BMLID STORE MESSAGE ID IN BML MESSAGE
  2455. LDN BMLL1
  2456. STD T3 SET BML MESSAGE LENGTH
  2457. ELM5 LDN 2
  2458. RAD T8
  2459. LDM TFCN-2,T8
  2460. LMD T2
  2461. NJN ELM5 IF NOT A SYMPTOM CODE MATCH
  2462. LDM TFCN-1,T8
  2463. STD T1
  2464. LDC ELMD SET DEFAULT ERRORLOG MESSAGE
  2465. LJM 0,T1 PROCESS SYMPTOM CODE DEPENDENT DATA
  2466.  
  2467. ELM6 LDM DCHA+3 CHANNEL NUMBER (AND CONCURRENCY FLAG)
  2468. RJM C2D CONVERT CHANNEL NUMBER FOR MESSAGE
  2469. STM ELMA+1
  2470. LDN 0 SET NO BML MESSAGE
  2471. STD T3
  2472. LDC ELMA *CHXX, EQXXX VERIFICATION FAILURE.*
  2473. LJM ELM9.1 ISSUE ERRLOG MESSAGE
  2474.  
  2475. ELM7 LDN BMLL2 SET BML MESSAGE LENGTH
  2476. STD T3
  2477. LDD DP+2 SET CYLINDER IN MESSAGE
  2478. STM BMLCY
  2479. LDD DP+3 SET PHYSICAL TRACK IN MESSAGE
  2480. STM BMLTR
  2481. LDD DP+4 SET PHYSICAL SECTOR IN MESSAGE
  2482. STM BMLSN
  2483. LDD IR+4 STORE TRACK NUMBER IN ERRLOG MESSAGE
  2484. RJM C2D
  2485. STM ELMF+5
  2486. LDD IR+4
  2487. SHN -6
  2488. RJM C2D
  2489. STM ELMF+4
  2490. LDC ELMF+ERLN ISSUE ERROR LOG MESSAGE
  2491. RJM DFM
  2492. UJN ELM11 ISSUE BML MESSAGE
  2493.  
  2494. ELM8 LDC ELMC *EQXXX DOWNED BY SYSTEM.*
  2495. ELM9 STD MT
  2496. LDC ELMB+ERLN *EQXXX VERIFICATION FAILURE.*
  2497. RJM DFM
  2498. LDD MT
  2499. ELM9.1 LMC ERLN ISSUE ERROR LOG MESSAGE
  2500. ELM10 RJM DFM
  2501. LDN ZERL ISSUE *SEE, ERRORLOG* EVENT
  2502. CRD CM
  2503. LDN ELAE
  2504. STD CM+4
  2505. MONITOR EATM
  2506. ELM11 LDD T3
  2507. ZJN ELM12 IF NULL MESSAGE
  2508. STD CM+1 SET BML MESSAGE LENGTH
  2509. LDC BML+BMLN ISSUE BML MESSAGE
  2510. RJM DFM
  2511. ELM12 LJM ELMX RETURN
  2512.  
  2513. ELM13 LDN 0 SET NO BML MESSAGE
  2514. STD T3
  2515. LDC ELME+ERLN
  2516. UJP ELM10 ISSUE ERRLOG MESSAGE
  2517. TFCN SPACE 4
  2518. ** TFCN - TABLE OF SYMPTOM CODE DEPENDENT PROCESSORS.
  2519.  
  2520.  
  2521. TFCN BSS 0
  2522. CON 4000+UCFC,ELM6 CHANNEL VERIFICATION FAILURE
  2523. CON /COMSDFS/HS0030,ELM9 DEVICE SET *OFF* BY SYSTEM
  2524. CON /COMSDFS/HS0034,ELM8 DEVICE SET *DOWN* BY SYSTEM
  2525. CON /COMSDFS/HS0105,ELM7 TRACK FLAWED BY SYSTEM
  2526. CON 0,ELM13 DEVICE UNAVAILABLE
  2527. MSGID SPACE 4,10
  2528. * MSGID - TABLE OF MESSAGE ID-S FOR NON-EXTENDED MEMORY DEVICES.
  2529.  
  2530.  
  2531. MSGID BSS 0
  2532. CON 2RDI,/COMSDFS/RM0002 (DI) 844-2X, HALF TRACK
  2533. CON 2RDJ,/COMSDFS/RM0003 (DJ) 844-4X, HALF TRACK
  2534. CON 2RDK,/COMSDFS/RM0004 (DK) 844-2X, FULL TRACK
  2535. CON 2RDL,/COMSDFS/RM0005 (DL) 844-4X, FULL TRACK
  2536. CON 2RDV,/COMSDFS/RM0006 (DV) 819, SINGLE DENSITY
  2537. CON 2RDW,/COMSDFS/RM0006 (DW) 819, DOUBLE DENSITY
  2538. CON 2RDM,/COMSDFS/RM0007 (DM) 885, HALF TRACK
  2539. CON 2RDQ,/COMSDFS/RM0017 (DQ) 885, FULL TRACK
  2540. CON 2RDR,/COMSDFS/RM0015 (DR) CDSS II
  2541. CON 2RDX,/COMSDFS/RM0010 (DX) 3330-1
  2542. CON 2RDY,/COMSDFS/RM0011 (DY) 3330-11
  2543. CON 2RDZ,/COMSDFS/RM0012 (DZ) 3350
  2544. CON 2RDA,/COMSDFS/RM0013 (DA) 33502
  2545. CON 2RDB,/COMSDFS/RM0014 (DB) 885-42 (PFMD)
  2546. CON 2RDC,/COMSDFS/RM0115 (DC) 895
  2547. CON 2RDD,/COMSDFS/RM0110 (DD) 834
  2548. CON 2RDF,/COMSDFS/RM0120 (DF) 887 (4KB SECTOR)
  2549. CON 2RDG,/COMSDFS/RM0111 (DG) 836
  2550. CON 2RDH,/COMSDFS/RM0121 (DH) 887 (16KB SECTOR)
  2551. CON 2RDN,/COMSDFS/RM0124 (DN) 9853 (XMD/CM3)
  2552. CON 2REA,/COMSDFS/RM0130 (EA) 5832 (1X SSD)
  2553. CON 2REB,/COMSDFS/RM0131 (EB) 5832 (2X SSD)
  2554. CON 2REC,/COMSDFS/RM0132 (EC) 5833 (1X SABRE)
  2555. CON 2RED,/COMSDFS/RM0133 (ED) 5833 (1XP SABRE)
  2556. CON 2REE,/COMSDFS/RM0134 (EE) 5833 (2X SABRE)
  2557. CON 2REF,/COMSDFS/RM0137 (EF) 5833 (2XP SABRE)
  2558. CON 2REG,/COMSDFS/RM0142 (EG) 5838 (1X ELITE)
  2559. CON 2REH,/COMSDFS/RM0143 (EH) 5838 (1XP ELITE)
  2560. CON 2REI,/COMSDFS/RM0144 (EI) 5838 (2X ELITE) (MP)
  2561. CON 2REJ,/COMSDFS/RM0147 (EJ) 5838 (2XP ELITE) (MP)
  2562. CON 2REK,/COMSDFS/RM0145 (EK) 5838 (3XP ELITE) (MP)
  2563. CON 2REL,/COMSDFS/RM0146 (EL) 5838 (4X ELITE) (MP)
  2564. CON 2REM,/COMSDFS/RM0135 (EM) 5833 (3XP SABRE) (MP)
  2565. CON 2REN,/COMSDFS/RM0136 (EN) 5833 (4X SABRE) (MP)
  2566. CON 2REO,/COMSDFS/RM0162 (EO) 47444 (1X 3.5IN)
  2567. CON 2REP,/COMSDFS/RM0163 (EP) 47444 (1XP 3.5IN)
  2568. CON 2RES,/COMSDFS/RM0164 (ES) 47444 (2X 3.5IN) (MP)
  2569. CON 2REU,/COMSDFS/RM0167 (EU) 47444 (2XP 3.5IN) (MP)
  2570. CON 2REV,/COMSDFS/RM0165 (EV) 47444 (3XP 3.5IN) (MP)
  2571. CON 2REW,/COMSDFS/RM0166 (EW) 47444 (4X 3.5IN) (MP)
  2572. CON 0 END OF TABLE
  2573. MSEID SPACE 4,10
  2574. * MSEID - TABLE OF MESSAGE ID-S FOR EXTENDED MEMORY DEVICES.
  2575.  
  2576.  
  2577. MSEID BSS 0
  2578. CON 102,/COMSDFS/RM0070 (DP) ECS I - DC135 DDP
  2579. CON 100,/COMSDFS/RM0071 (DE) ECS I - COUPLER
  2580. CON 202,/COMSDFS/RM0072 (DP) ECS II - DC135 DDP
  2581. CON 200,/COMSDFS/RM0073 (DE) ECS II - COUPLER
  2582. CON 101,/COMSDFS/RM0074 (DP) ECS I - DC145 DDP
  2583. CON 201,/COMSDFS/RM0075 (DP) ECS II - DC145 DDP
  2584. CON 300,/COMSDFS/RM0076 (DP) LCME - COUPLER
  2585. CON 400,/COMSDFS/RM0077 (DE) UEM
  2586. CON 500,/COMSDFS/RM0207 (DE) ESM - COUPLER
  2587. CON 501,/COMSDFS/RM0210 (DP) ESM - LOW SPEED PORT
  2588. CON 601,/COMSDFS/RM0172 (DP) STORNET
  2589. CON 0 END OF TABLE
  2590. SPACE 4,10
  2591. * BINARY MAINTENANCE LOG MESSAGE.
  2592.  
  2593. BML BSS 0
  2594.  
  2595. BMLID VFD 12/ MESSAGE ID
  2596.  
  2597. BMLSC VFD 12/ SYMPTOM CODE
  2598.  
  2599. BMLPP VFD 6/ PP NUMBER
  2600. VFD 6/ CHANNEL NUMBER
  2601.  
  2602. BMLUN VFD 6/0 EQUIPMENT NUMBER
  2603. VFD 6/ UNIT NUMBER
  2604.  
  2605. VFD 12/0 RESERVED
  2606.  
  2607. BMLEO VFD 12/ EST ORDINAL
  2608.  
  2609. VFD 24/0 RESERVED
  2610. BMLMF VFD 12/ MAINFRAME ID
  2611.  
  2612. VFD 12/0 RESERVED
  2613.  
  2614. BMLL1 EQU *-BML MESSAGE LENGTH (NON-TRACK FLAW FORMAT)
  2615.  
  2616. VFD 24/0 RESERVED
  2617. BMLCY VFD 12/ CYLINDER
  2618.  
  2619. BMLTR VFD 12/ TRACK
  2620.  
  2621. BMLSN VFD 12/ SECTOR
  2622.  
  2623. BMLL2 EQU *-BML MESSAGE LENGTH (TRACK FLAW FORMAT)
  2624. SPACE 4,10
  2625. * ERROR LOG MESSAGES.
  2626.  
  2627.  
  2628. ELMA DATA 6HCHXX,
  2629. ELMB DATA C*EQXXX VERIFICATION FAILURE.*
  2630. ELMC DATA C*EQXXX DOWNED BY SYSTEM.*
  2631. ELMD DATA C*EQXXX OFFED BY SYSTEM.*
  2632. ELME DATA C*EQXXX UNAVAILABLE.*
  2633. ELMF DATA C*EQXXX,TKNNNN, MEDIA DEFECT FLAWED.*
  2634. FMT SPACE 4,10
  2635. ** FMT - FORMAT 895 DEVICE MAINTENANCE TRACK.
  2636. *
  2637. * ENTRY (T4) = CHANNEL NUMBER.
  2638. * (EQ) = EST ORDINAL.
  2639. * (DVMT) = MAINTENANCE TRACK NUMBER.
  2640. * (ES - ES+4) = EST ENTRY.
  2641. *
  2642. * EXIT (A) .NE. 0 IF ERROR.
  2643. * (T4) = CHANNEL NUMBER.
  2644. * (T5) = EST ORDINAL.
  2645. * (T6) = MAINTENANCE TRACK NUMBER.
  2646. *
  2647. * USES T1, T2, T4, T5, T6, CM - CM+4, CN - CN+2.
  2648. *
  2649. * CALLS FNC, SDR.
  2650. *
  2651. * MACROS DCHAN, DELAY, RCHAN.
  2652.  
  2653.  
  2654. FMT12 LDD ES+4 GET UNIT COUNT
  2655. SHN 3
  2656. ADK DDLL
  2657. CRD CM
  2658. LDD CM
  2659. LPN 7
  2660. STD T2
  2661. LDN FMMC
  2662. RJM SDR
  2663. LDN 0 SET RETURN STATUS
  2664.  
  2665. FMT SUBR ENTRY/EXIT
  2666. LDM DVMT RESTORE MAINTENANCE TRACK NUMBER
  2667. STD T6
  2668. LDD EQ RESTORE EST ORDINAL
  2669. STD T5
  2670. LDD T4
  2671. LPN 40
  2672. NJN FMT12 IF CONCURRENT CHANNEL
  2673. LDD T4
  2674. RCHAN RESERVE CHANNEL
  2675. LDC CTAB
  2676. STD T1 SET CHANNEL TABLE ADDRESS
  2677. FMT1 LDI T1
  2678. ZJN FMT2 IF END OF LIST
  2679. STD T2
  2680. LDI T2 MODIFY INSTRUCTION
  2681. SCN 37
  2682. LMD T4
  2683. STI T2
  2684. AOD T1 ADVANCE LIST POINTER
  2685. UJN FMT1 MODIFY NEXT INSTRUCTION
  2686.  
  2687. FMT2 LDD ES+4 GET UNIT LIST
  2688. SHN 3
  2689. ADK DDLL
  2690. CRD CM
  2691. LDD T6 STORE CYLINDER NUMBER
  2692. LPC 3777
  2693. SHN -1
  2694. STD CN
  2695. FMT3 LDD CM+4 EXTRACT NEXT UNIT
  2696. SHN 14
  2697. STD CM+4
  2698. ERRPL 4000-3*SLDC CODE DEPENDS ON VALUE
  2699. SHN -14
  2700. LMC 3S6 SET MODE/OPERATION DECODE
  2701. STD CN+1
  2702. LDD TH SET LARGE RECORD SIZE
  2703. STD CN+2
  2704. FMT4 LDK FCFP ISSUE FORMAT FUNCTION
  2705. RJM FNC
  2706. MJN FMT6 IF ERROR
  2707. ACN CH
  2708. LDN FPBL
  2709. OAM CN,CH
  2710. NJN FMT6 IF INCOMPLETE DATA TRANSFER
  2711. FMT5 EJM FMT7,CH IF ALL DATA WAS ACCEPTED
  2712. ADN 1
  2713. NJN FMT5 IF NOT TIMEOUT
  2714. FMT6 UJN FMT9 SET ERROR STATUS
  2715.  
  2716. FMT7 DCN CH+40
  2717. LCN 0 SET 4 SECOND TIMEOUT
  2718. STD T2
  2719. FMT8 DELAY 10
  2720. LDK FCGS ISSUE GENERAL STATUS FUNCTION
  2721. RJM FNC
  2722. MJN FMT9 IF ERROR
  2723. ACN CH
  2724. LDN 1
  2725. IAM T1,CH
  2726. NJN FMT9 IF INCOMPLETE DATA TRANSFER
  2727. SFM FMT9,CH IF CHANNEL PARITY ERROR
  2728. DCN CH+40
  2729. LDD T1
  2730. ZJN FMT10 IF TRACK FORMATTING COMPLETE
  2731. SOD T2
  2732. NJN FMT8 IF NOT TIMEOUT
  2733. FMT9 AOM FMTB,SP SET ERROR STATUS
  2734. UJN FMT11 COMPLETE PROCESSING
  2735.  
  2736. FMT10 AOD CN+2 INCREMENT TRACK NUMBER
  2737. LPN 77
  2738. LMN PTCYDC
  2739. NJP FMT4 IF NOT END OF CYLINDER
  2740. LDD CM
  2741. LPN 7
  2742. SBN 1
  2743. STD CM
  2744. PJP FMT3 IF MORE UNITS TO FORMAT
  2745. FMT11 DCN CH+40
  2746. LDK FCOC RELEASE HARDWARE RESERVES
  2747. RJM FNC
  2748. SHN 0-21 SET ERROR STATUS IF ERROR
  2749. RAM FMTB,SP
  2750. LDD T4 RELEASE CHANNEL
  2751. DCHAN
  2752. LDM FMTB,SP
  2753. LJM FMTX RETURN
  2754. FNC SPACE 4,10
  2755. ** FNC - FUNCTION CHANNEL.
  2756. *
  2757. * ENTRY (A) = FUNCTION CODE.
  2758. *
  2759. * EXIT (A) .EQ. 0 IF FUNCTION WAS ACCEPTED.
  2760. * .LT. 0 IF TIMEOUT OR CHANNEL ACTIVE UPON ENTRY.
  2761.  
  2762.  
  2763. FNC SUBR ENTRY/EXIT
  2764. AJM FNC2,CH IF CHANNEL ALREADY ACTIVE
  2765. FAN CH
  2766. FNC1 ADD ON
  2767. IJM FNC3,CH IF FUNCTION ACCEPTED
  2768. NJN FNC1 IF NOT TIMEOUT YET
  2769. FNC2 DCN CH+40
  2770. LCN 0 RETURN ERROR STATUS
  2771. UJN FNCX RETURN
  2772.  
  2773. FNC3 LDN 0 RETURN SUCCESSFUL STATUS
  2774. UJN FNCX RETURN
  2775.  
  2776.  
  2777. CTAB BSS 0 TABLE OF CHANNEL INSTRUCTION ADDRESSES
  2778. CHTB
  2779. SPACE 4,10
  2780. ** COMMON DECKS.
  2781.  
  2782.  
  2783. *CALL COMPC2D
  2784. *CALL COMPSDR
  2785. *CALL COMPSMI
  2786. VTE SPACE 4,15
  2787. ** VTE - VERIFY TRT EOI SECTORS.
  2788. *
  2789. * ENTRY (EQ) = EST ORDINAL BEING PROCESSED.
  2790. *
  2791. * USES T6, T7.
  2792. *
  2793. * CALLS CMI, CPF, CPS, FEB, FFT, PCV, WEI.
  2794. *
  2795. * MACROS SETMS.
  2796.  
  2797.  
  2798. VTE SUBR ENTRY/EXIT
  2799. RJM PCV PRESET
  2800. VTE1 RJM FEB FIND *EOI* BYTE IN TRT
  2801. ZJN VTEX IF FINISHED WITH *EOI* PROCESSING
  2802. RJM FFT FIND FIRST TRACK OF TRT CHAIN
  2803. RJM CPS CHECK IF FILE IS PRESERVED
  2804. ZJN VTE5 IF FILE IS NOT PRESERVED
  2805. RJM CPF CHECK PRESERVED FILE INTERLOCKS
  2806. NJN VTE1 IF FILE INTERLOCKED ON OTHER MAINFRAME
  2807. VTE2 LDD T9 SETUP TO WRITE AN ENHANCED EOI SECTOR
  2808. SBN 1
  2809. STD T6
  2810. LDD EI
  2811. STD T7
  2812. SETMS IO,(AD,ND,NR)
  2813. RJM WEI WRITE PROPER EOI SECTOR
  2814.  
  2815. * CHECK FOR MS ERROR.
  2816.  
  2817. ENDMS
  2818. VTE3 UJP VTE1 CONTINUE TO NEXT EOI
  2819.  
  2820. VTE5 RJM CMI CHECK MACHINE RECOVERY TABLE INTERLOCK
  2821. ZJN VTE3 IF FILE NOT LOCAL TO THIS MAINFRAME
  2822. UJP VTE2 GO WRITE CORRECT EOI TO FILE
  2823. CMI SPACE 4,15
  2824. ** CMI - CHECK MACHINE RECOVERY TABLE INTERLOCK.
  2825. *
  2826. * ENTRY (T6) = FIRST TRACK NUMBER OF FILE.
  2827. * (T8) = BYTE NUMBER IN TRT WORD.
  2828. * (CM - CM+4) = TRT WORD CONTAINING (T6).
  2829. * (FTPB) = LENGTH OF TRT BEING PROCESSED.
  2830. *
  2831. * EXIT (A) = 0 IF FILE IS NOT LOCAL TO THIS MAINFRAME.
  2832. * .NE. 0 IF FILE IS LOCAL TO THIS MAINFRAME.
  2833. *
  2834. * USES T1, T2, CM - CM+4.
  2835.  
  2836.  
  2837. CMI3 LDN 1 RETURN WITH LOCAL FILE STATUS
  2838.  
  2839. CMI SUBR ENTRY/EXIT
  2840. LDD CM+4 CHECK TRACK INTERLOCK
  2841. LMM TCMI,T8
  2842. SBD CM+4
  2843. PJN CMI3 IF FILE NOT INTERLOCKED
  2844.  
  2845. * CHECK MRT TO DETERMINE WHO HAS FILE INTERLOCKED.
  2846.  
  2847. CMI1 LDD T6 CALCULATE WORD OFFSET INTO MRT
  2848. SHN 21-4
  2849. STD T1
  2850. SHN 4-21 SAVE BIT INTERLOCK NUMBER (BITS 0-4)
  2851. STD T2
  2852. CMIB LDC ** GET TRT FWA
  2853. ADM FTPB ADD LENGTH OF TRT
  2854. ADD T1 ADD OFFSET INTO MRT
  2855. CRD CM
  2856. LDN CM+5 SET BYTE POINTER WITHIN MRT WORD
  2857. STD T0
  2858. CMI2 SOD T0
  2859. LCN 14
  2860. RAD T2
  2861. PJN CMI2 IF NOT POSITIONED TO PROPER BYTE
  2862. ADC SHNI+21-0+14
  2863. STM CMIC
  2864. LDI T0
  2865. CMIC SHN **
  2866. SHN 0-21
  2867. UJP CMIX RETURN
  2868.  
  2869.  
  2870. TCMI CON 200,100,40,20 TABLE OF TRACK INTERLOCK BITS
  2871. CPF SPACE 4,15
  2872. ** CPF - CHECK PRESERVED FILE STATUS.
  2873. *
  2874. * ENTRY (MT) = FIRST TRACK NUMBER OF FILE.
  2875. *
  2876. * EXIT (A) = 0 IF FILE IS NOT INTERLOCKED.
  2877. * .NE. 0 IF FILE IS INTERLOCKED ON OTHER MAINFRAME.
  2878. *
  2879. * USES T6, T7.
  2880. *
  2881. * CALLS CPI, RDS.
  2882. *
  2883. * MACROS ENDMS, SETMS.
  2884.  
  2885.  
  2886. CPF SUBR ENTRY/EXIT
  2887. LDD MT SETUP TO READ SYSTEM SECTOR
  2888. STD T6
  2889. LDN 0
  2890. STD T7
  2891. SETMS IO,(AD,ND)
  2892. LDC BFMS READ SYSTEM SECTOR
  2893. RJM RDS
  2894.  
  2895. * CHECK FOR MS ERROR.
  2896.  
  2897. ENDMS
  2898. LDM BFMS+2+4
  2899. SHN -6
  2900. LMN PMFT
  2901. ZJN CPF1 IF DIRECT ACCESS PERMANENT FILE
  2902. LMN FAFT&PMFT
  2903. NJN CPF2 IF NOT FAST ATTACH PERMANENT FILE
  2904. CPF1 LDD ES
  2905. LPC 1020
  2906. ZJN CPF2 IF DEVICE NOT A SHARED DEVICE
  2907. RJM CPI CHECK MMF PERMANENT FILE INTERLOCKS
  2908. CPF2 UJP CPFX RETURN
  2909. CPS SPACE 4,10
  2910. ** CPS - CHECK FOR PRESERVED FILE STATUS.
  2911. *
  2912. * ENTRY (T6) = FIRST TRACK NUMBER.
  2913. * (T8) = BYTE NUMBER IN TRT WORD.
  2914. * (CM - CM+4) = TRT WORD CONTAINING (T6).
  2915. *
  2916. * EXIT (A) = 0 IF FILE IS NOT PRESERVED.
  2917. * .NE. 0 IF FILE IS PRESERVED FILE.
  2918.  
  2919.  
  2920. CPS SUBR ENTRY/EXIT
  2921. LDD CM+4 CHECK FOR PRESERVED BIT
  2922. LMM TCPS,T8
  2923. SBD CM+4
  2924. SHN -21
  2925. UJN CPSX RETURN
  2926.  
  2927. * BIT MASKS FOR INTERLOCK TESTS.
  2928.  
  2929. TCPS CON 4000,2000,1000,0400
  2930. CPI SPACE 4,10
  2931. ** CPI - CHECK MMF PERMANENT FILE INTERLOCKS.
  2932. *
  2933. * ENTRY (BFMS) = SYSTEM SECTOR OF PRESERVED FILE.
  2934. *
  2935. * EXIT (A) = 0 IF FILE IS NOT INTERLOCKED.
  2936. * .NE. 0 IF FILE IS INTERLOCKED ON OTHER MAINFRAME.
  2937. *
  2938. * USES T2, T3, T5.
  2939. *
  2940. * CALLS SMI.
  2941.  
  2942.  
  2943. CPI SUBR ENTRY/EXIT
  2944. LDD EQ
  2945. STD T5
  2946. RJM SMI GET CURRENT MACHINE INDEX
  2947. STD T2
  2948. SHN 1
  2949. STD T3 *2
  2950. ADD T3 *4
  2951. RAD T2 *5
  2952. UJN CPIX RETURN
  2953. FEB SPACE 4,15
  2954. ** FEB - FIND EOI TRT BYTE.
  2955. *
  2956. * ENTRY (T9) = TRACK NUMBER TO BEGIN SEARCH.
  2957. *
  2958. * EXIT (A) = 0 IF NO EOI BYTE FOUND.
  2959. * (T6) = TRACK NUMBER CONTAINING EOI BYTE, IF FOUND.
  2960. * (T9) = UPDATED TO BEGIN NEXT SEARCH.
  2961. *
  2962. * USES T2.
  2963. *
  2964. * CALLS FTP.
  2965.  
  2966.  
  2967. FEB SUBR ENTRY/EXIT
  2968. LDN 0
  2969. STD T2
  2970. LDD T9
  2971. RJM FTP
  2972. ZJN FEBX IF NO *EOI* FOUND
  2973. ADN 1
  2974. STD T9
  2975. UJN FEBX RETURN
  2976. FFT SPACE 4,10
  2977. ** FFT - FIND FIRST TRACK LINK.
  2978. *
  2979. * ENTRY (T6) = TRACK NUMBER TO LINK BACK TO *BOI*.
  2980. *
  2981. * EXIT (A) = (MT) = (T6) = TRACK NUMBER OF FIRST TRACK.
  2982. *
  2983. * USES MT, T2, T6.
  2984. *
  2985. * CALLS FTP.
  2986.  
  2987.  
  2988. FFT SUBR ENTRY/EXIT
  2989. FFT1 LDD T6
  2990. STD T2
  2991. LDN 0 BEGIN SEARCH FROM BEGINNING OF TRT
  2992. RJM FTP
  2993. NJN FFT1 IF FIRST LINK NOT FOUND
  2994. LDD T6 SAVE FIRST TRACK NUMBER
  2995. STD MT
  2996. UJN FFTX RETURN
  2997. FTP SPACE 4,15
  2998. ** FTP - FIND TRT BYTE PATTERN.
  2999. *
  3000. * ENTRY (A) = TRACK NUMBER IN TRT TO BEGIN WITH.
  3001. * (T2) = PATTERN TO FIND IN TRT BYTES.
  3002. *
  3003. * EXIT (A) = (T6) = TRACK NUMBER OF PATTERN MATCH.
  3004. * (EI) = *EOI* SECTOR NUMBER, IF FOUND AS MATCH.
  3005. * (T8) = BYTE NUMBER IN TRT WORD.
  3006. *
  3007. * USES EI, T1, T2, T6, T8, CM - CM+4.
  3008.  
  3009.  
  3010. FTP SUBR ENTRY/EXIT
  3011. STD T6
  3012. LPN 3 CALCULATE FIRST OFFSET
  3013. ADN CM
  3014. STD T1
  3015. LDD T6 CALCULATE TRT WORD OFFSET
  3016. LPC 3777
  3017. SHN -2
  3018. STD T6
  3019. FTP1 LDC ** READ TRT WORD
  3020. FTPA EQU *-1
  3021. ADD T6
  3022. CRD CM
  3023. FTP2 LDI T1
  3024. SHN 21-13
  3025. PJN FTP4 IF *EOI* BYTE
  3026. SHN 21+1-21+13
  3027. LMD T2
  3028. ZJN FTP5 IF PATTERN MATCH
  3029. FTP3 AOD T1
  3030. SBN CM+4
  3031. NJN FTP2 IF NOT THROUGH ALL TRT BYTES
  3032. LDN CM
  3033. STD T1
  3034. LDC ** CHECK IF DONE WITH TRT
  3035. FTPB EQU *-1 (NUMBER OF WORDS IN TRT)
  3036. SBD T6
  3037. ZJN FTPX IF NO PATTERN MATCH FOUND
  3038. AOD T6 INCREMENT TRT WORD OFFSET
  3039. UJN FTP1 CONTINUE SEARCHING TRT
  3040.  
  3041. FTP4 LDD T2
  3042. NJN FTP3 IF NOT SEARCHING FOR *EOI*
  3043. LDI T1 SAVE *EOI* SECTOR NUMBER
  3044. STD EI
  3045. FTP5 LDD T1 CONSTRUCT TRACK NUMBER
  3046. SBN CM
  3047. STD T8 SAVE BYTE NUMBER IN TRT WORD
  3048. SHN 21-2
  3049. ADD T6
  3050. SHN 2
  3051. ADC 4000
  3052. STD T6
  3053. LJM FTPX RETURN
  3054. PCV SPACE 4,20
  3055. ** PCV - PRESET CONDITIONS FOR *VTE*.
  3056. *
  3057. * ENTRY (ES - ES+4) = EST ENTRY.
  3058. *
  3059. * EXIT (FTPB) = TRT LENGTH IN CM WORDS.
  3060. *
  3061. * USES CM - CM+4, CN - CN+4.
  3062. *
  3063. * CALLS IRA.
  3064.  
  3065.  
  3066. PCV SUBR ENTRY/EXIT
  3067. RJM IRA SET ADDRESSES
  3068. LDD ES+4
  3069. SHN 3
  3070. ADK TDGL GET TRT LENGTH
  3071. CRD CN
  3072. ADN TRLL-TDGL GET TRT FWA
  3073. CRD CM
  3074. LDD CN+2
  3075. STM FTPB
  3076. LDD CM+4 PRESET TRT ADDRESS
  3077. STM CMIB+1
  3078. STM FTPA
  3079. LDD CM+3
  3080. LPN 77
  3081. LMC LDCI
  3082. STM CMIB
  3083. STM FTPA-1
  3084. UJP PCVX RETURN
  3085.  
  3086. QUAL *
  3087.  
  3088. OVERFLOW OVLA,BFMS
  3089. TITLE
  3090. END