User Tools

Site Tools


cdc:nos2.source:opl871:1ds

Table of Contents

1DS

Table Of Contents

  • [00008] 1DS - DSD REQUEST PROCESSOR.
  • [00010] DSD REQUEST PROCESSOR.
  • [00167] MACRO DEFINITIONS.
  • [00169] BIODF - DEFINE *BIO* DEVICE/FUNCTIONS.
  • [00207] CHKERR - CHECK ERROR FLAG.
  • [00222] FCN - DEFINE FUNCTION PROCESSOR.
  • [00235] OVERLAY - DEFINE THE SECONDARY OVERLAY(S).
  • [00264] SUBSYST - GENERATE SUBSYSTEM TABLE.
  • [00306] ENTRY - DEFINE OVERLAY ENTRY POINT.
  • [00322] MAIN PROGRAM.
  • [00323] IDS - MAIN PROGRAM.
  • [00355] RESIDENT SUBROUTINES.
  • [00357] CSS - CHECK SUBSYSTEM STATUS.
  • [00378] FAS - FORMAT AND SEND ACCOUNT FILE MESSAGE.
  • [00418] LKC - LOG KEYBOARD COMMAND.
  • [00451] RPK - READ AND PACK KEYBOARD BUFFER.
  • [00490] SCP - SET CP/PCP AREA ADDRESS.
  • [00511] SRD - SAVE REPLY TO *DSD*.
  • [00556] OVERLAYABLE SUBROUTINES.
  • [00559] CCF - CLEAR CHECKPOINT FLAGS.
  • [00614] CCI - COMPLETE COMMAND IMAGE.
  • [00647] CSB - CLEAR SLA BIT.
  • [00700] EJB - ENTER JOB.
  • [01028] GAC - GENERATE ASSIGN COMMAND.
  • [01055] GJC - GENERATE JOB COMMAND.
  • [01083] ISJ - INITIATE SUBSYSTEM JOB.
  • [01170] SJF - SET JOB FIELD LENGTH.
  • [01196] SSC - SET SERVICE CLASS.
  • [01228] REQUEST PROCESSORS.
  • [01312] TSJN - TABLE OF SPECIAL JOB NAMES.
  • [01855] IRM - INITIATE REMOTE MAINTENANCE FACILITY.
  • [02149] OVERLAYABLE REQUEST PROCESSORS.
  • [02288] SPR - SET CPU PRIORITY OF ROLLED OUT JOB.
  • [02487] OVERLAYABLE SUBROUTINES.
  • [02489] CCP - CHANGE CONTROL POINT.
  • [02525] CSJ - CHECK CP FOR SPECIFIED JOB.
  • [02558] SEJ - SEARCH CP-S FOR SPECIFIED JOB.
  • [02597] PRESET.
  • [02600] PRS - PRESET.
  • [02715] TRQP - TABLE OF REQUEST PROCESSORS.
  • [02791] CIO - CHECK INITIALIZE OPTIONS.
  • [02815] CSD - CHECK SHARED DEVICE.
  • [02895] CSM - CHECK SHARED RMS.
  • [02972] C0S - CALL *0SD*.
  • [02985] SFA - SEARCH FOR FAST ATTACH FILE.
  • [03022] SFD - SEARCH FOR DAYFILES.
  • [03049] SUL - SCAN UNIT LIST.
  • [03088] UDD - UP *DD* DRIVE.
  • [03128] FUNCTION PROCESSORS.
  • [03729] DOD - DISMOUNT OPTICAL DRIVE.
  • [04032] TMRF - TABLE OF MAGNET REQUEST FLAGS.
  • [04055] TMRP - TABLE OF MAGNET REQUEST PROCESSORS.
  • [04069] IAF FUNCTION SUBROUTINES.
  • [04071] ITR - ISSUE *TSEM* REQUEST.
  • [04104] SBT - SET BUFFER AND TRANSFER DATA TO POTS.
  • [04195] MAGNET FUNCTION SUBROUTINES.
  • [04197] CAM - CHECK ACS MOUNT REQUEST.
  • [04237] CLE - CHECK LOAD POINT ERROR.
  • [04256] CLC - CHECK INITIAL LABEL CHECK COMPLETE.
  • [04281] CNV - CHECK *NEXTVSN* COMMAND REQUEST.
  • [04296] CUG - CHECK FOR TMS UNIT GO PROMPT.
  • [04315] CVR - CHECK ENTER VSN REQUEST.
  • [04337] CVS - COMPARE VSN-S.
  • [04357] FAV - FIND ACS VSN.
  • [04421] GMC - GET PREVIEW DISPLAY MESSAGE CODE.
  • [04438] IMR - ISSUE MAGNET EXTERNAL REQUEST.
  • [04472] UAD - SET UDT ADDRESS.
  • [04650] ASN - ASSEMBLE NAME.
  • [04922] TNSC - TABLE OF SERVICE CLASSES.
  • [04927] TSVP - TABLE OF SERVICE PARAMETERS.
  • [04984] ASD - ASSEMBLE DIGITS.
  • [05024] SPT - SEARCH PARAMETER TABLE.
  • [05152] TBDF - TABLE OF *BIO* DEVICE FUNCTIONS.
  • [05172] TAEQ - TABLE OF AVAILABLE EQUIPMENTS.
  • [05243] IDL - IDLEDOWN SUBSYSTEM.
  • [05409] CDS - CHECK BUFFERED I/O DRIVER STATUS.
  • [05513] CMV - CALL *1MV* IF *UP* REQUEST FOR MASS STORAGE CHANNEL.
  • [05551] CRC - CLEAR RELOAD COUNT IN CONTROLWARE TABLE.
  • [05574] DCH - DROP CHANNEL.
  • [05599] DDP - DETERMINE IF DEVICE SHOULD BE PROCESSED.
  • [05681] DEQ - DOWN EQUIPMENT.
  • [05712] IBM - ISSUE BML MESSAGE.
  • [05883] IFL - INITIATE FIRMWARE LOAD.
  • [05956] IMS - ISSUE MESSAGES TO THE ERRLOG AND BML.
  • [06033] RCE - READ CONTROLWARE TABLE ENTRY.
  • [06051] RCH - REQUEST CHANNEL ASSIGNMENT.
  • [06102] RCS - REQUEST CHANNEL STATUS CHANGE.
  • [06184] PRS - PRESET.

Source Code

1DS.txt
  1. IDENT 1DS,IDS
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. *COMMENT 1DS - DSD REQUEST PROCESSOR.
  6. EQV$ EQU 1 DO NOT VERIFY EQUIPMENT IN *COMPRSS*
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE 1DS - DSD REQUEST PROCESSOR.
  9. SPACE 4,10
  10. *** 1DS - DSD REQUEST PROCESSOR.
  11. * G. R. MANSFIELD. 70/10/24.
  12. * R. E. DENNIS. 74/10/15.
  13. * C. B. LOSCHEIDER. 78/09/11.
  14. SPACE 4,10
  15. *** *1DS* PROCESSES FUNCTIONS FOR *DSD* WHICH ARE NOT
  16. * POSSIBLE FOR *DSD* TO PROCESS. *1DS* IS CALLED BY
  17. * *1SJ* TO INITIATE THE JOB *CMS*. *1DS* IS CALLED
  18. * BY *6DI* TO INITIATE THE *LBC* JOB.
  19. SPACE 4,10
  20. *** PROGRAMMING CONSIDERATIONS.
  21. *
  22. ** FOR A DETAILED EXPLAINATION OF THE *DSD*/*1DS*
  23. * INTERFACE, SEE COMMON DECK *COMS1DS*.
  24. SPACE 4,15
  25. *** CALL.
  26. *
  27. *T 18/1DS, 6/SC, 1/C, 1/L, 3/LOG, 6/REQ, 12/P1, 12/P2
  28. *
  29. * SC SYSTEM CONTROL POINT.
  30. * C CONTROL POINT CHANGE REQUIRED (CP NUMBER IN P2).
  31. * L LOCKED BUFFER.
  32. * LOG LOGGING CONTROL BITS.
  33. * REQ FUNCTION CODE.
  34. * P1 PARAMETER 1.
  35. * P2 PARAMETER 2.
  36. SPACE 4,10
  37. *** DAYFILE MESSAGES.
  38. *
  39. *
  40. * *DEADSTART SEQUENCING FAILED.*
  41. * THE DEADSTART SEQUENCING JOB COULD NOT BE INITIATED
  42. * AFTER SEVERAL RETRIES BECAUSE OF AN I/O ERROR
  43. * ENCOUNTERED ON A MASS STORAGE DEVICE.
  44. SPACE 4,15
  45. *** ACCOUNT DAYFILE MESSAGES.
  46. *
  47. *
  48. * *ABLQ, C1, JSN, YYMMDD, HHMMSS, DC.*
  49. * *ABLQ, C2, XXXXXX.XXXKUNS.*
  50. * QUEUED FILE WITH JOB SEQUENCE NAME JSN AND
  51. * DISPOSITION CODE DC HAS BEEN ROUTED TO THE
  52. * QUEUE ON DATE YYMMDD AT TIME HHMMSS.
  53. * THE FILE HAS A DISPOSITION CODE OF DC AND IS
  54. * XXXXXX.XXX THOUSAND PRU-S IN LENGTH.
  55. *
  56. * *ACDT, DATE YY/MM/DD.*
  57. * WHERE YY=YEAR, MM=MONTH, DD=DAY OF THE NEW
  58. * DATE ENTERED BY THE OPERATOR.
  59. *
  60. * *ACDT, TIME HH.MM.SS.*
  61. * WHERE HH=HOURS, MM=MINUTES, SS=SECONDS OF THE
  62. * NEW TIME ENTERED BY THE OPERATOR.
  63. *
  64. * *MSEQ, NNN, LEVEL1, LEVEL2.*
  65. * WHERE NNN=EST ORDINAL, LEVEL1=LOWER ACCESS LEVEL,
  66. * LEVEL2=UPPER ACCESS LEVEL ENTERED BY THE OPERATOR
  67. * VIA THE *SECUREQ* COMMAND.
  68. *
  69. * *MSOT, OT, LEVEL1, LEVEL2.*
  70. * WHERE OT=ORIGIN TYPE (IN DISPLAY CODE),
  71. * LEVEL1=LOWER ACCESS LEVEL, LEVEL2=UPPER ACCESS LEVEL
  72. * ENTERED BY THE OPERATOR VIA THE *SECURES* COMMAND.
  73. *
  74. * *MSSA, USERNAME.*
  75. * WHERE USERNAME=VALID USER NAME (I.E., A USER WITH
  76. * SECURITY ADMINISTRATOR PRIVILEGES) ENTERED BY THE
  77. * OPERATOR VIA THE *SECURITY-UNLOCK* COMMAND.
  78. *
  79. * *MSSI, USERNAME.*
  80. * WHERE USERNAME=INCORRECT USER NAME (I.E., A USER WHO
  81. * DOES NOT HAVE SECURITY ADMINISTRATOR PRIVILEGES)
  82. * ENTERED BY THE OPERATOR VIA THE
  83. * *SECURITY-UNLOCK* COMMAND.
  84. SPACE 4,20
  85. **** DIRECT LOCATION ASSIGNMENTS.
  86.  
  87.  
  88. PP EQU LA POT POINTER
  89. S1 EQU 16 SCRATCH CELL
  90. S2 EQU 17 SCRATCH CELL
  91. PA EQU S1 - S2 POT ADDRESS (2 LOCATIONS)
  92. FS EQU 20 - 24 FST ENTRY (5 LOCATIONS)
  93. MS EQU FS+5 MST POINTER
  94. QA EQU 26 FNT ORDINAL
  95. CA EQU 27 COMMAND ADDRESS
  96. CN EQU 30 - 34 CM WORD BUFFER (5 LOCATIONS)
  97. JF EQU 35 JOB FIELD LENGTH
  98. TN EQU 36 TABLE NUMBER
  99. FG EQU 37 CPU FLAGS
  100. AB EQU 40 - 44 CM WORD BUFFER (5 LOCATIONS)
  101. NC EQU 45 SYSTEM CP NUMBER
  102. JS EQU 57 JOB SERVICE CLASS
  103. FN EQU 60 - 64 CM WORD BUFFER (5 LOCATIONS)
  104. SR EQU FN SCRATCH (5 LOCATIONS)
  105. FV EQU 65 CONSTANT FIVE
  106. JC EQU 66 JOB COUNTER
  107. BA EQU 67 SECTOR BUFFER ADDRESS
  108. ****
  109. SPACE 4,10
  110. * ASSEMBLY CONSTANTS.
  111.  
  112.  
  113. CPMR EQU 10D CONTROL POINT MOVE RETRY COUNT
  114. DFFL EQU 60000 DEFAULT FIELD LENGTH
  115. DFTL EQU 777777 DEFAULT JOB STEP TIME LIMIT
  116. SPACE 4,10
  117. *CALL COMPMAC
  118. *CALL COMSACC
  119. QUAL BIO
  120. *CALL COMSBIO
  121. QUAL *
  122. *CALL COMSCPS
  123. *CALL COMSDFS
  124. QUAL DSL
  125. *CALL COMSDSL
  126. QUAL *
  127. *CALL COMSDSP
  128. *CALL COMSEJT
  129. QUAL EVENT
  130. *CALL COMSEVT
  131. QUAL *
  132. *CALL COMSHIO
  133. *CALL COMSJIO
  134. QUAL LSD
  135. *CALL COMSLSD
  136. QUAL *
  137. *CALL COMSMLS
  138. QUAL MMF
  139. *CALL COMSMMF
  140. QUAL *
  141. QUAL MTX
  142. *CALL COMSMTX
  143. QUAL *
  144. *CALL COMSMSP
  145. *CALL COMSMST
  146. *CALL COMSPFM
  147. QUAL REM
  148. *CALL COMSREM
  149. QUAL *
  150. QUAL RSX
  151. *CALL COMSRSX
  152. QUAL *
  153. *CALL COMSSCD
  154. *CALL COMSSSD
  155. *CALL COMSSSE
  156. *CALL COMSPIM
  157. *CALL COMSPRD
  158. *CALL COMSTCM
  159. *CALL COMSWEI
  160. *CALL COMSZOL
  161. QUAL 1DS
  162. LIST X
  163. *CALL COMS1DS
  164. LIST *
  165. QUAL *
  166. *CALL COMS1MV
  167. TITLE MACRO DEFINITIONS.
  168. BIODF SPACE 4,20
  169. ** BIODF - DEFINE *BIO* DEVICE/FUNCTIONS.
  170. *
  171. * BIODF FUNC,(DV,DV,...DV)
  172. *
  173. * ENTRY *FUNC* = *BIO* REQUEST FUNCTION.
  174. * *DV* = DEVICE TYPE.
  175. *
  176. * THIS MACRO WORKS LIKE THE *INDEX* MACRO DEFINED IN *COMPMAC*.
  177. * IT IS USED TO GENERATE A TABLE OF ALLOWABLE DEVICES FOR
  178. * REQUESTS TO *BIO*. ENTRIES IN THE TABLE ARE PLACED
  179. * BETWEEN THE FIRST *BIODF* AND LAST *BIODF* SHOWN BELOW.
  180. *
  181. *TAG BIODF
  182. * .
  183. * .
  184. * BIODF MAXFUNC
  185. *
  186. * MACROS .1.
  187.  
  188.  
  189. PURGMAC BIODF
  190.  
  191. MACRO BIODF,A,B,C
  192. MACREF BIODF
  193. IFC NE,$A$$
  194. A BSS 0
  195. .3 SET A
  196. ELSE 8
  197. ORG .3+/BIO/_B
  198. IFC NE,$C$$,5
  199. QUAL BIO
  200. LOC B
  201. .1 (C)
  202. CON .1
  203. QUAL *
  204. BSS 0
  205. BIODF ENDM
  206. CHKERR SPACE 4,10
  207. ** CHKERR - CHECK ERROR FLAG.
  208. *
  209. * RETURNS BYTE ONE OF *STSW*.
  210.  
  211.  
  212. PURGMAC CHKERR
  213.  
  214. CHKERR MACRO
  215. MACREF CHKERR
  216. LDD CP
  217. ADK STSW
  218. CRD CM
  219. LDD CM+1
  220. ENDM
  221. FCN SPACE 4,10
  222. ** FCN - DEFINE FUNCTION PROCESSOR.
  223. *
  224. * FCN CODE,NAME
  225. *
  226. * ENTRY *CODE* = FUNCTION CODE.
  227. * *NAME* = FUNCTION PROCESSING ROUTINE NAME.
  228.  
  229.  
  230. FCN MACRO C,N
  231. INDEX C*2,N-N/10000B*10000B
  232. CON N/10000B
  233. ENDM
  234. OVERLAY SPACE 4,10
  235. ** OVERLAY - DEFINE THE SECONDARY OVERLAY(S).
  236. *
  237. * OVERLAY (TEXT)
  238. * ENTRY *TEXT* = TEXT OF SUBTITLE.
  239.  
  240.  
  241. .N SET 0
  242. OVLB MICRO 1,, 2D OVERLAY NAME
  243.  
  244.  
  245. PURGMAC OVERLAY
  246.  
  247. OVERLAY MACRO TEXT
  248. MACREF OVERLAY
  249. QUAL
  250. .N SET .N+1
  251. .M MICRO .N,1, ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
  252. .O MICRO 1,3, "OVLB"".M"
  253. QUAL ".O"
  254. TTL 1DS/".O" - TEXT
  255. TITLE
  256. IDENT ".O",OVLA TEXT
  257. *COMMENT 1DS - TEXT
  258. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  259. ORG OVLA
  260. LJM * ENTRY/EXIT
  261. UJN *-2 OVERLAY EXIT ADDRESS
  262. ENDM
  263. SUBSYST SPACE 4,10
  264. ** SUBSYST - GENERATE SUBSYSTEM TABLE.
  265. *
  266. * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT
  267. *
  268. * ENTRY *NAME* = 3 CHARACTER SUBSYSTEM NAME.
  269. * *ID* = SUBSYSTEM ID.
  270. * *PP* = NAME OF PP, IF PP INITIATED SUBSYSTEM.
  271. * *AUTO* = *AUTO* IF *AUTO* ENABLED SUBSYSTEM.
  272.  
  273. PURGMAC SUBSYST
  274.  
  275. SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
  276. .SUB RMT
  277. IAS.NM EQU * TAG FOR TABLE ENTRY
  278. VFD 18/3L_NM NAME
  279. .A IFC EQ,$PP$$
  280. VFD 1/0 PPU FLAG
  281. .A ELSE
  282. VFD 1/1 PPU FLAG
  283. .A ENDIF
  284. .B IFC EQ,$AU$AUTO$
  285. VFD 1/1 AUTO FLAG
  286. .B ELSE
  287. VFD 1/0 AUTO FLAG
  288. .B ENDIF
  289. .1 SET MXSI-ID
  290. .2 SET .1/12D
  291. .3 SET 4-.2
  292. .4 DECMIC .1-12D*.2
  293. .5 SET 1S".4"
  294. VFD 4/.3 *SSSL* BYTE
  295. VFD 12/ID SSID
  296. VFD 12/.5 *SSSL* MASK
  297. .C IFC EQ,$NM$CMS$
  298. VFD 12/NOQF*100+7
  299. .C ELSE
  300. VFD 12/0
  301. .C ENDIF
  302. IASBE EQU *-IAS.NM
  303. .SUB RMT
  304. SUBSYST ENDM
  305. ENTRY SPACE 4,10
  306. ** ENTRY - DEFINE OVERLAY ENTRY POINT.
  307. *
  308. * NAME ENTRY
  309. * NAME = NAME OF ENTRY ADDRESS.
  310.  
  311.  
  312. PURGMAC ENTRY
  313.  
  314. MACRO ENTRY,NAME
  315. MACREF ENTRY
  316. QUAL
  317. NAME_X LJM * EXIT ADDRESS
  318. NAME EQU *-1+.N*10000B
  319. .NAME EQU NAME-.N*10000B ENTRY ADDRESS WITHIN OVERLAY
  320. QUAL *
  321. ENDM
  322. TITLE MAIN PROGRAM.
  323. ** IDS - MAIN PROGRAM.
  324.  
  325.  
  326. ORG PPFW
  327. IDS RJM /PRESET/PRS PRESET PROGRAM
  328. LDM /PRESET/TRQP+1,CM CHECK OVERLAY LOAD
  329. ZJN IDS1 IF OVERLAY NOT NEEDED
  330. LMC 2L"OVLB" LOAD OVERLAY
  331. RJM EXR
  332. IDS1 RJM * PROCESS FUNCTION
  333. IDSA EQU *-1
  334. IDS2 RJM LKC LOG COMMAND
  335. LDC 0
  336. IDSB EQU *-1
  337. ZJN IDS3 IF NO JOBS ENTERED
  338. LDC INWL CHECK CHECKPOINT IN PROGRESS FLAG
  339. CRD CN
  340. LDD CN+4
  341. LPN 20
  342. NJN IDS3 IF CHECKPOINT IN PROGRESS
  343. LDN 1
  344. STD CM+2
  345. MONITOR RSJM REQUEST SCHEDULER
  346. LDN **
  347. IDSE EQU *-1
  348. NJN IDS4 IF PP NOT TO BE DROPPED
  349. IDS3 MONITOR DPPM DROP PP
  350. IDS4 LJM PPR EXIT TO PP RESIDENT
  351.  
  352.  
  353. IDSC CON 0 ORIGINAL (IR+2)
  354. IDSD CON 0 *DSD* REPLY STATUS
  355. TITLE RESIDENT SUBROUTINES.
  356. CSS SPACE 4,10
  357. ** CSS - CHECK SUBSYSTEM STATUS.
  358. *
  359. * ENTRY (A) = SUBSYSTEM ID.
  360. * (CP) = SUBSYSTEM CPA ADDRESS.
  361. *
  362. * EXIT (A) = 0, IF SUBSYSTEM ACTIVE.
  363. * TO *IDS2* IF SUBSYSTEM NOT ACTIVE.
  364. *
  365. * USES T7, CM - CM+4.
  366.  
  367.  
  368. CSS SUBR ENTRY/EXIT
  369. STD T7
  370. LDD CP
  371. ADN JCIW
  372. CRD CM
  373. LDD CM+2
  374. LMD T7
  375. ZJN CSSX IF CORRECT SUBSYSTEM
  376. LJM IDS2 DROP PP
  377. FAS SPACE 4,10
  378. ** FAS - FORMAT AND SEND ACCOUNT FILE MESSAGE.
  379. *
  380. * FORMAT AND SEND *DSD* MESSAGE TO ACCOUNT DAYFILE
  381. * AND/OR ERROR LOG AND/OR SYSTEM DAYFILE.
  382. *
  383. * ENTRY (IDSC) = LOGGING CONTROL BITS.
  384. * (IR+4) = 6/KEYBOARD BUFFER OFFSET, 6/ .
  385. * (BUF+2 - BUF+61) = DSD KEYBOARD DATA.
  386. *
  387. * CALLS DFM, RPK.
  388.  
  389.  
  390. FAS SUBR ENTRY/EXIT
  391. LDC /OVERLAY/BUF+2 READ AND PACK KEYBOARD BUFFER
  392. RJM RPK
  393. LDN ZERL CLEAR LAST WORD
  394. CRM /OVERLAY/BUF+31,ON
  395. LDC 2RDS PLACE HEADER ON MESSAGE
  396. STM /OVERLAY/BUF
  397. LDC 2R,
  398. STM /OVERLAY/BUF+1
  399. LDM IDSC
  400. SHN 21-6
  401. PJN FAS1 IF ERROR LOG NOT SELECTED
  402. LDC /OVERLAY/BUF+ERLN SEND TO ERROR LOG
  403. RJM DFM
  404. FAS1 LDM IDSC
  405. SHN 21-7
  406. PJN FAS2 IF SYSTEM DAYFILE NOT SELECTED
  407. LDC /OVERLAY/BUF+MDON
  408. RJM DFM
  409. FAS2 LDM IDSC
  410. SHN 21-10
  411. PJN FAS3 IF ACCOUNT FILE NOT SELECTED
  412. LDN ZERL CLEAR LAST WORD
  413. CRM /OVERLAY/BUFB+31,ON
  414. LDC /OVERLAY/BUFB+ACFN
  415. RJM DFM
  416. FAS3 LJM FASX EXIT
  417. LKC SPACE 4,10
  418. ** LKC - LOG KEYBOARD COMMAND.
  419. *
  420. * ENTRY (IDSC) = ORIGINAL IR+2.
  421. *
  422. * EXIT (IR+4) = 0.
  423. *
  424. * USES IR+4, CM - CM+4.
  425. *
  426. * CALLS FAS.
  427.  
  428.  
  429. LKC SUBR ENTRY/EXIT
  430. LDM IDSC SET LOGGING PARAMETER
  431. LPC 700
  432. ZJN LKC1 IF NO LOGGING REQUIRED
  433. LDN 0
  434. STD IR+4
  435. RJM FAS PROCESS LOGGING
  436. LKC1 LDM IDSC
  437. LPC 1700
  438. ZJN LKCX IF INTERLOCK NOT SET
  439. LMM IDSC
  440. STM IDSC
  441. LDM IDSD *DSD* REPLY
  442. STD T7
  443. LDN ZERL CLEAR INTERLOCK
  444. CRD CM
  445. ADN /1DS/DSDL+1-ZERL
  446. CWD T7
  447. SBN 1
  448. CWD CM
  449. UJN LKCX RETURN
  450. RPK SPACE 4,10
  451. ** RPK - READ AND PACK KEYBOARD BUFFER.
  452. *
  453. * ENTRY (A) = DESTINATION ADDRESS.
  454. * (IR+4) = 6/KEYBOARD BUFFER OFFSET, 6/ .
  455. *
  456. * USES S1, S2, T0.
  457.  
  458.  
  459. RPK SUBR ENTRY/EXIT
  460. STD S1 SAVE ADDRESS
  461. LDN /1DS/KBCML
  462. STD S2
  463. LDC /1DS/DSDL
  464. CRM BFMS+100D,S2
  465. LDN ZERL
  466. CRM BFMS+100D+/1DS/KBCML*5,ON
  467. LDD IR+4 SET KEYBOARD ADDRESS
  468. SHN -6
  469. ADC BFMS+100D
  470. STD S2
  471. LDN /1DS/KBCML*5/2
  472. STD T0
  473. RPK1 LDI S2 PACK NEXT TWO CHARACTERS
  474. SHN 6
  475. LMM 1,S2
  476. STI S1
  477. ZJN RPK2 IF END OF MESSAGE
  478. LDN 2
  479. RAD S2
  480. RPK2 AOD S1
  481. SOD T0
  482. PJN RPK1 IF MORE DATA TO PACK
  483. LDD S1 READ ONE CM WORD OF ZERO
  484. STM RPKA
  485. LDN ZERL
  486. CRM *,ON
  487. RPKA EQU *-1
  488. LJM RPKX EXIT
  489. SCP SPACE 4,10
  490. ** SCP - SET CP/PCP AREA ADDRESS.
  491. *
  492. * ENTRY (A) = CP/PCP NUMBER.
  493. * (NC) = SYSTEM CP NUMBER.
  494. *
  495. * EXIT (A) = CPA/PCPA ADDRESS.
  496.  
  497.  
  498. SCP1 ADD NC SET REAL CP AREA ADDRESS
  499. SHN 7
  500.  
  501. SCP SUBR ENTRY/EXIT
  502. SBD NC
  503. MJN SCP1 IF REAL CP
  504. ZJN SCP1 IF SYSTEM CP
  505. SBN 1 SET PCP AREA ORDINAL
  506. SHN 7
  507. ADC 0 ADD BASE PCPA ADDRESS
  508. SCPA EQU *-1
  509. UJN SCPX RETURN
  510. SRD SPACE 4,10
  511. ** SRD - SAVE REPLY TO *DSD*.
  512. *
  513. * ENTRY (A) = 0 IF POSITIVE REPLY TO *DSD*.
  514. *
  515. * EXIT (IDSD) = *DSD* REPLY.
  516. * (IDSC) LOGGING BITS (6-8) CLEARED IF ERROR RESPONSE.
  517.  
  518.  
  519. SRD SUBR ENTRY/EXIT
  520. STM IDSD SAVE REPLY
  521. ZJN SRDX IF NO ERROR
  522. LDM IDSC
  523. LPC -700 CLEAR LOGGING
  524. STM IDSC
  525. UJN SRDX RETURN
  526. SPACE 4,10
  527. ** COMMON DECKS.
  528.  
  529.  
  530. QUAL ACS
  531. QUAL$ EQU 0 DO NOT FURTHER QUALIFY *ACS*
  532. T2 EQU LA
  533. *CALL COMPACS
  534. QUAL *
  535. ACS EQU /ACS/ACS
  536. *CALL COMPCLD
  537. *CALL COMPC2D
  538. *CALL COMPCTI
  539. RND$ EQU 1 SELECT ROUNDING FOR *COMPDV5*
  540. *CALL COMPDV5
  541. EJT$ EQU 1 EJT SEARCH
  542. FNT$ EQU 1 FNT SEARCH
  543. IFP$ EQU 1 *COMPGFP* REMOTE ASSEMBLY
  544. JCB$ EQU 1 JCB SEARCH
  545. QFT$ EQU 1 QFT SEARCH
  546. *CALL COMPGFP
  547. SFI$ EQU 1 SELECT CALLER DELAY PROCESSING
  548. *CALL COMPSFI TABLE INTERLOCK
  549. *CALL COMPSTI
  550. *CALL COMPTGB
  551. *CALL COMPTLB
  552. WCS$ EQU 1 CONSECUTIVE SECTORS AFTER SYSTEM SECTOR
  553. *CALL COMPWSS
  554. SPACE 4,10
  555. OVLA EQU *+5 ORIGIN OF OVERLAY AREA
  556. TITLE OVERLAYABLE SUBROUTINES.
  557. QUAL OVERLAY
  558. CCF SPACE 4,15
  559. ** CCF - CLEAR CHECKPOINT FLAGS.
  560. *
  561. * THIS ROUTINE CLEARS THE *VALID CHECKPOINT
  562. * FILE* FLAG IN THE SECTOR OF LOCAL AREAS FOR
  563. * EACH CHECKPOINT DEVICE. THIS PREVENTS
  564. * LEVEL 1 AND 2 RECOVERY DEADSTART FROM
  565. * AN OBSOLETE CHECKPOINT FILE.
  566. *
  567. * USES T6, AB - AB+4, CM - CM+4, CN - CN+4,
  568. * FN - FN+4, FS - FS+4.
  569. *
  570. * CALLS CSB, LKC.
  571. *
  572. * MACROS SFA.
  573.  
  574.  
  575. CCF SUBR ENTRY/EXIT
  576. RJM LKC LOG KEYBOARD COMMAND
  577. CCF1 LDN JSCL READ SCHEDULER CONTROL WORD
  578. CRD AB
  579. LDD AB
  580. SHN 21-13
  581. PJN CCF2 IF SCHEDULER ACTIVE
  582. DELAY
  583. UJN CCF1 WAIT UNTIL SCHEDULER ACTIVE
  584.  
  585. CCF2 LDK ESTP GET LAST MASS STORAGE EST ORDNAL+1
  586. CRD AB
  587. ADK MMFL-ESTP
  588. CRD FN
  589. LDN NOPE-1 INITIALIZE EST ORDINAL
  590. STD S1
  591. CCF3 AOD S1 ADVANCE EST ORDINAL
  592. STD T5
  593. LMD AB+3
  594. ZJN CCFX IF END OF MASS STORAGE DEVICES
  595. SFA EST,S1 READ EST ENTRY
  596. ADK EQDE
  597. CRD FS
  598. LDD FS
  599. SHN 21-13
  600. PJN CCF3 IF NOT MASS STORAGE DEVICE
  601. SHN 13-2
  602. PJN CCF3 IF NOT CHECKPOINT DEVICE
  603. LDD FS+4
  604. SHN 3
  605. ADK ACGL
  606. CRD CN
  607. ADK ALGL-ACGL
  608. CRD CM
  609. LDD CM+1 SET LABEL TRACK FOR *CSB*
  610. STD T6
  611. RJM CSB CLEAR SLA BIT
  612. UJN CCF3 PROCESS NEXT DEVICE
  613. CCI SPACE 4,15
  614. ** CCI - COMPLETE COMMAND IMAGE.
  615. *
  616. * ENTRY (A) = ADDRESS OF COMMAND COMPLETION IN *C* FORMAT.
  617. * (CA) = FWA OF COMMAND BUFFER.
  618. *
  619. * EXIT (T1) = BUFFER ADDRESS FOR NEXT COMMAND.
  620. *
  621. * ERROR TO *IDS2* IF FULL SECTOR.
  622. *
  623. * USES T1.
  624. *
  625. * CALLS ACS, DV5.
  626.  
  627.  
  628. CCI2 ADD HN SET ADDRESS FOR NEXT COMMAND
  629. STD T1
  630. SHN 2
  631. ADD CA
  632. RAD T1
  633.  
  634. CCI SUBR ENTRY/EXIT
  635. RJM ACS ASSEMBLE CHARACTER STRING
  636. LDI T1
  637. ZJN CCI1 IF ASSEMBLY ON BYTE BOUNDARY
  638. AOD T1
  639. CCI1 AOD T1 CALCULATE CM WORD COUNT
  640. SBD CA
  641. RJM DV5
  642. STM -1,CA SET WORD COUNT IN LINKAGE
  643. SBD HN
  644. MJN CCI2 IF NOT FULL SECTOR
  645. LJM IDS2 DROP PP
  646. CSB SPACE 4,15
  647. ** CSB - CLEAR SLA BIT.
  648. *
  649. * ENTRY (T5) = CHECKPOINT DEVICE EST ORDINAL.
  650. * (T6) = LABEL TRACK.
  651. * (CN - CN+4) = *ACGL* WORD OF MST.
  652. * (FN - FN+4) = *MMFL*.
  653. *
  654. * USES T1, T2, T7.
  655. *
  656. * CALLS CTI, RDS, STI, WDS.
  657. *
  658. * MACROS ENDMS, SETMS.
  659.  
  660.  
  661. CSB3 ENDMS
  662. CSB4 LDD T6 CLEAR TRACK INTERLOCK
  663. RJM CTI
  664.  
  665. CSB SUBR ENTRY/EXIT
  666. LDD CN+4
  667. LPC MGLAP
  668. ZJN CSBX IF NO SECTOR OF LOCAL AREAS
  669. RJM STI SET LABEL TRACK INTERLOCK
  670. NJN CSBX IF ERROR
  671. LDN /MMF/LMLT SET LOCAL AREA SECTOR
  672. STD T7
  673. SETMS IO,RW
  674. LDC BFMS
  675. RJM RDS
  676. MJN CSB4 IF ERROR
  677. LDM BFMS
  678. ZJN CSB3 IF UNFORMATTED SECTOR
  679. LCN 2*5-1 INITIALIZE ENTRY OFFSET
  680. STD T2
  681. LCN 2-1 INITIALIZE WORD COUNT
  682. STD T1
  683. CSB1 LDN 2*5 ADVANCE ENTRY OFFSET
  684. RAD T2
  685. LDN 2 INCREMENT WORD COUNT
  686. RAD T1
  687. LDD T1
  688. SBM BFMS+1
  689. PJN CSB2 IF NO ENTRY FOR THIS MF
  690. LDM BFMS+2,T2
  691. LMD FN
  692. NJN CSB1 IF ENTRY NOT FOR THIS MF
  693. LDM BFMS+2+1,T2 CLEAR *VALID CHECKPOINT FILE* FLAG
  694. LPC 3777
  695. STM BFMS+2+1,T2
  696. LDC BFMS+WLSF REWRITE SECTOR
  697. RJM WDS
  698. CSB2 LJM CSB3 CLEAR TRACK INTERLOCK
  699. EJB SPACE 4,25
  700. ** EJB - ENTER JOB.
  701. *
  702. * ENTRY (BUFA - BUFA+4) = UJN, ZERO-FILLED.
  703. * (BA) = FWA OF COMMAND SECTOR.
  704. * (JS) = JOB SERVICE CLASS.
  705. * (FN - FN+4) = SUBSYSTEM NAME, SPACE-FILLED.
  706. * (EJBC) = FILE TYPE AND STATUS, IF FILE TYPE .NE.
  707. * *INQF*.
  708. * (EJBE) = SUBSYSTEM ID.
  709. * (EJBF - EJBG) = PROCEDURE FILE NAME.
  710. *
  711. * EXIT (A) = 0 IF JOB ENTERED.
  712. * (A) .LT. 0 FOR - QFT FULL / TRACK LIMIT / DISK ERROR.
  713. * (QA) = QFT ORDINAL.
  714. * = 0, IF NO QFT ENTRY WAS ASSIGNED.
  715. * (FN - FN+4) = FIRST WORD OF QFT ENTRY.
  716. *
  717. * USES QA, CM - CM+4, FN - FN+4, T1 - T7.
  718. *
  719. * CALLS CTE, RFI, WDS, WEI, WSS, *0QM*.
  720. *
  721. * MACROS ENDMS, EXECUTE, MONITOR, SETMS, SFA.
  722. *
  723. * NOTE THAT THE CONTENTS OF *BUF* STARTING AT *BUFA* WILL BE
  724. * OVERLAYED BY THE EOI BUFFER AND *0QM* ON EXIT.
  725.  
  726.  
  727. EJB SUBR ENTRY/EXIT
  728. LDC 501
  729. STD T7
  730. EJB1 LDN 0 CLEAR SYSTEM SECTOR BUFFER
  731. STM BFMS,T7
  732. SOD T7
  733. NJN EJB1 IF NOT START OF BUFFER
  734. STD QA INITIALIZE QFT ORDINAL
  735. LDN PDTL ENTER CREATION DATE
  736. CRM CDSS,ON
  737. ADN RTCL-PDTL-1 SET ENTRY TIME
  738. CRM IOSS+5*ENTQ+3,ON
  739.  
  740. * SET JOB ACCESS LEVEL LIMITS AND ACCESS LEVEL VALIDATION
  741. * BITS TO ALL LEVELS VALID FOR THE SYSTEM. FOR THE
  742. * DEADSTART SEQUENCING JOB, SET ALL LEVELS AND VALIDATIONS,
  743. * REGARDLESS OF SYSTEM LIMITS. A NULL CATEGORY SET WILL BE
  744. * SET FOR ALL JOBS.
  745.  
  746. LDN ZERL SET UP *VSAM* FUNCTION
  747. CRD CM
  748. ERRNZ SYOT CODE DEPENDS ON VALUE
  749. CRM IOSS+5*ENTQ+5,ON
  750. LDN 7 REQUEST ALL VALID ACCESS LEVELS
  751. STD CM+3
  752. LDN VJCS VALIDATE JOB CREATION PARAMETERS
  753. STD CM+1
  754. LDD MA SET ALL LEVELS AND VALIDATIONS
  755. CWM EJBL,ON
  756. SBN 1
  757. CRM VASS+5*ASVW,ON
  758. MONITOR VSAM REQUEST VALID LEVELS AND CATEGORIES
  759. LDM EJBE
  760. LMC DSSI
  761. ZJN EJB1.0 IF DEADSTART SEQUENCING JOB
  762. LDD MA SET ONLY VALID LEVELS
  763. CRM VASS+5*ASVW,ON
  764. LDN 0 CLEAR VALIDATION BITS
  765. STM VASS+5*ASVW
  766.  
  767. * SET JOB ACCESS LEVEL LIMITS INTO QFT.
  768.  
  769. EJB1.0 LDD CM+4 LOWER ACCESS LEVEL LIMIT
  770. SHN 3
  771. LMD CM+2 INITIAL JOB ACCESS LEVEL
  772. SHN 3
  773. LMD CM+3 UPPER ACCESS LEVEL LIMIT
  774. STM IOSS+5*INSQ+3
  775.  
  776. * ASSIGN MASS STORAGE FOR FILE.
  777.  
  778. LDN ZERL
  779. CRD CM
  780. LDM IOSS+5*INSQ+3 GET LOWER ACCESS LEVEL LIMIT
  781. SHN -6
  782. ADN 40 SET ACCESS LEVEL SELECTION BIT
  783. SHN 6
  784. STD CM+3
  785. EJBF LDN TNDS SELECT TEMPORARY - NONSHARED DEVICE
  786. * LDN TSDS (SELECT SYSTEM DEVICE)
  787. STD CM+2
  788. MONITOR RTCM REQUEST TRACK CHAIN
  789. LDD CM+4
  790. STM IOSS+5*ENTQ+1
  791. NJN EJB1.1 IF TRACK ASSIGNED
  792. LDD CP ISSUE B-DISPLAY MESSAGE
  793. ADK MS2W
  794. CWM EJBN,TR
  795. LJM EJB2.1 SET QUEUED STATUS
  796.  
  797. EJB1.1 STD T6
  798. LDD CM+1 SAVE EQUIPMENT
  799. STD T5
  800. STM IOSS+5*ENTQ
  801. LDC 7777 SET UI=377777
  802. * LDC 0 (SET BY *ICJ*)
  803. EJBA EQU *-1
  804. STD FN+3
  805. LDC 100+37 SET FAMILY ORDINAL=1
  806. * LDC 0 (SET BY *ICJ*)
  807. EJBB EQU *-1
  808. STD FN+2
  809. LDC INQF*100+7 SET FILE TYPE AND STATUS
  810. EJBC EQU *-1
  811. STD FN+4
  812. LDD MA
  813. CWD FN
  814. CRD CM+3
  815. LDD JS
  816. LMN SYSC
  817. ZJN EJB2 IF SYSTEM JOB
  818. LMN SYSC&DSSC
  819. ZJN EJB2 IF DEADSTART SEQUENCING JOB
  820. LMN DSSC&SSSC
  821. ZJN EJB2 IF SUBSYSTEM
  822. LDC -4000
  823. EJB2 ADC 4000 SET SYSTEM JOB FLAG
  824. EJBD ADC PQFT REQUEST QFT ENTRY
  825. * ADC 10000B+PQFT (DISABLE JSN ACQUISITION)
  826. RJM CTE
  827. NJN EJB3 IF ENTRY CREATED
  828. EJB2.0 LDD T6 SET TRACK
  829. STD CM+2
  830. LDD T5 SET EQUIPMENT
  831. STD CM+1
  832. MONITOR DTKM DROP ALL TRACKS
  833. EJB2.1 LCN 0 SET JOB NOT QUEUED STATUS
  834. LJM EJBX RETURN
  835.  
  836. EJB3 CRD FN FIRST WORD OF QFT ENTRY
  837. CRM IOSS,ON
  838. LDM IOSS+JSNQ*5+4 CLEAN UP STATUS FIELD
  839. SCN 17
  840. STM IOSS+JSNQ*5+4
  841. LDD CM+1 SAVE QFT ORDINAL
  842. STD QA
  843. STM GQSS
  844. LDD FN SET JSN
  845. STM OJSS
  846. LDD FN+1
  847. STM OJSS+1
  848. LDD JS SET SERVICE CLASS/JOB ORIGIN TYPE
  849. SHN 6
  850. LMK SYOT
  851. STM IOSS+SCLQ*5
  852. LCN 0 INDICATE NO JOB COMMAND FL
  853. STM JCSS
  854. STM JESS
  855.  
  856. * SET SYSTEM SECTOR FIELDS FOR *SYSTEMX* JOB.
  857.  
  858. LDD MA SET UN, UI, AND UNLIMITED VALIDATIONS
  859. CWM EJBJ,ON
  860. CWM EJBM,ON
  861. SBN 2
  862. CRM VASS+ACCN*5,ON
  863. CRM VASS+AHMT*5,ON
  864. SBN 1
  865. CRM VASS+AHDS*5,ON
  866. SBN 1
  867. CRM VASS+AAWC*5,ON
  868. LDN IPRL SET DEFAULT KEYPUNCH MODE
  869. CRD CM
  870. LDD CM+2
  871. SHN -13
  872. STM JFSS
  873. LDC DFTL SET DEFAULT TIME LIMIT
  874. STM JTSS+1
  875. SHN -14
  876. STM JTSS
  877. LDC 0 SET SUBSYSTEM ID
  878. EJBE EQU *-1 (SUBSYSTEM ID)
  879. STM SISS
  880. LDN 3 SET FLAGS
  881. STM FGSS
  882. LDC MMFL SET MACHINE ID
  883. CRD CM
  884. LDD CM
  885. STM RMSS
  886. STM CMSS
  887. LDM EJBA CHECK IF UI WAS SPECIFIED
  888. ZJN EJB5 IF NO UI SPECIFIED
  889.  
  890. * SET INFORMATION IN SYSTEM SECTOR TO MATCH QFT
  891. * FAMILY ORDINAL AND UI INFORMATION.
  892.  
  893. LDD MA SET CREATION USER NAME
  894. CWM EJBJ,ON
  895. SBN 1
  896. CRM OASS,ON
  897. SBN 1
  898. CRM ACSS,ON
  899. LDK FOTP SET CREATION FAMILY
  900. CRD CM
  901. LDD CM
  902. SHN 14
  903. LMD CM+1
  904. ADN 1
  905. CRD CM
  906. LDD CM+3
  907. SCN 77
  908. STD CM+3
  909. LDN 0
  910. STD CM+4
  911. LDD MA MOVE FAMILY NAME TO SYSTEM SECTOR
  912. CWD CM
  913. CRM FOSS,ON
  914. SBN 1
  915. CRM FMSS,ON
  916. EJB5 LDN 0 SET CREATION JSN
  917. SFA QFT
  918. CRM CJSS,ON
  919. LDD MA
  920. CWM BUFA,ON
  921. CWM EJBH,ON SET FNT
  922. LDD MA
  923. CRM JNSS,ON
  924. CRM FNSS,ON
  925. LDC 2RIN SET DISPOSITION CODE
  926. STM DCSS
  927. LDD BA
  928. ZJN EJB9 IF NO COMMAND SECTOR
  929. AOM FLSS+1
  930. LDC JNSS REMOVE *.* FROM UJN
  931. STD T1
  932. ADN 3
  933. STD T2
  934. EJB6 LDI T1
  935. LPN 77
  936. LMN 1R.
  937. ZJN EJB7 IF *.* FOUND
  938. LDM 1,T1
  939. SHN -6
  940. LMN 1R.
  941. ZJN EJB8 IF *.* FOUND
  942. AOD T1
  943. LMD T2
  944. NJN EJB6 IF NOT END OF UJN
  945. EJB7 LDI T1
  946. SCN 77 REMOVE *.*
  947. STI T1
  948. LDN 0
  949. EJB8 STM 1,T1
  950. EJB9 AOM FLSS+1 SET FILE LENGTH
  951. LDC FLSS GET ADDRESS OF SYSTEM SECTOR FILE LENGTH
  952. RJM RFI SET FILE SIZE INDEX IN QFT ENTRY
  953.  
  954. * WRITE FILE.
  955.  
  956. SETMS IO
  957. RJM WSS WRITE SYSTEM SECTOR
  958. EJB9.1 MJP EJB2.0 IF DISK ERROR
  959. LDD BA
  960. ZJN EJB10 IF NO COMMANDS
  961. LMC WCSF
  962. RJM WDS WRITE COMMAND SECTOR
  963. EJB9.2 MJN EJB9.1 IF DISK ERROR
  964. AOD T7 ADVANCE SECTOR
  965. EJB10 LDN QFTE*5-5-1 SAVE QFT ENTRY
  966. STD T2
  967. EJB10.1 LDM IOSS+5,T2
  968. STM EJBK,T2
  969. SOD T2
  970. PJN EJB10.1 IF MORE TO MOVE
  971. LDD MA SET FNT/FST INFORMATION IN EOI SECTOR
  972. CWM FNSS,TR
  973. SBN 3
  974. CRM BUFA+FNEI,TR
  975. LDC 501-DTEI-5 CLEAR END OF EOI BUFFER
  976. STD T2
  977. EJB11 LDN 0
  978. STM BUFA+DTEI+5,T2
  979. SOD T2
  980. PJN EJB11 IF MORE TO CLEAR
  981. LDC BUFA SET EOI BUFFER ADDRESS
  982. RJM WEI WRITE EOI
  983. MJN EJB9.2 IF DISK ERROR
  984. ENDMS
  985. LDD T5 SET EQUIPMENT
  986. STD CM+1
  987. LDD T7 SET LAST SECTOR
  988. STD CM+3
  989. LDD T6 SET TRACK
  990. LPC 3777
  991. STD CM+2
  992. MONITOR DTKM DROP TRACKS
  993.  
  994. * QUEUE FILE.
  995.  
  996. LDC 2RAB SET *ABLQ* ACCOUNT FILE MESSAGE
  997. STM OVL0-2
  998. LDC 2RLQ
  999. STM OVL0-1
  1000. EXECUTE 0QM,OVL0 ISSUE MESSAGE TO ACCOUNT FILE
  1001. LCN 7 CLEAR ENTRY INTERLOCK
  1002. RAD FN+4
  1003. LDN QFTE-1
  1004. STD T2
  1005. SFA QFT,QA SET QFT ADDRESS
  1006. ADN 1 WRITE QFT DATA
  1007. CWM EJBK,T2
  1008. SBN QFTE-JSNQ WRITE INTERLOCK WORD
  1009. CWD FN
  1010. AOM IDSB ADVANCE JOB ENTRY COUNT
  1011. LDK INQF*100+7 SET DEFAULT FILE TYPE AND STATUS
  1012. STM EJBC
  1013.  
  1014. * REINITIALIZE *EJB*.
  1015.  
  1016. LDN 0 CLEAR PARAMETERS
  1017. STM EJBE
  1018. LJM EJBX RETURN
  1019.  
  1020.  
  1021. EJBH VFD 42/0LINPUT,6/0,6/INFT,6/0
  1022. EJBK BSS QFTE*5-5 BUFFER FOR QFT ENTRY
  1023. EJBJ VFD 42/0,18/SYUI
  1024. EJBL VFD 12/7777,12/377,36/0
  1025. EJBM VFD 60/-0
  1026. EJBN DATA C* NO INPUT FILE SPACE AVAILABLE.*
  1027. GAC SPACE 4,10
  1028. ** GAC - GENERATE ASSIGN COMMAND.
  1029. *
  1030. * ENTRY (A) = ADDRESS OF STRING *XXX,LOAD)*.
  1031. * (IR+3) = EST ORDINAL.
  1032. *
  1033. * USES T3.
  1034. *
  1035. * CALLS ACS, C2D, CCI.
  1036.  
  1037.  
  1038. GAC SUBR ENTRY/EXIT
  1039. STD T3 SAVE ADDRESS OF FILE NAME
  1040. LDC =C*ASSIGN(*
  1041. RJM ACS
  1042. LDD IR+3 CONVERT UPPER TWO DIGITS OF EST ORDINAL
  1043. SHN -3
  1044. RJM C2D
  1045. STI T3
  1046. LDD IR+3 CONVERT LOWER DIGIT OF EST ORDINAL
  1047. LPN 7
  1048. SHN 6
  1049. ADC 2R0,
  1050. STM 1,T3
  1051. LDD T3 COMPLETE COMMAND IMAGE
  1052. RJM CCI
  1053. UJN GACX RETURN
  1054. GJC SPACE 4,10
  1055. ** GJC - GENERATE JOB COMMAND.
  1056. *
  1057. * ENTRY (A) = ADDRESS OF LEFT JUSTIFIED NAME.
  1058. *
  1059. * EXIT (BUFA - BUFA+4) = JOB COMMAND.
  1060. *
  1061. * USES T1, T3.
  1062. *
  1063. * CALLS ACS, CCI.
  1064.  
  1065.  
  1066. GJC SUBR ENTRY/EXIT
  1067. STD T3 SAVE JOB COMMAND ADDRESS
  1068. LDD CA
  1069. ADC 477
  1070. STD T1
  1071. GJC1 LDN 0 CLEAR COMMAND BUFFER
  1072. STI T1
  1073. SOD T1
  1074. LMD CA
  1075. NJN GJC1 IF NOT END OF BUFFER
  1076. STI T1
  1077. LDD T3 COPY JOB COMMAND TO BUFFER
  1078. RJM ACS
  1079. LDC =C*.* COMPLETE JOB COMMAND
  1080. RJM CCI
  1081. UJN GJCX RETURN
  1082. ISJ SPACE 4,10
  1083. ** ISJ - INITIATE SUBSYSTEM JOB.
  1084. *
  1085. * ENTRY (A) = SUBSYSTEM ID.
  1086. * (TN) = ADDRESS OF SUBSYSTEM TABLE ENTRY.
  1087. *
  1088. * EXIT (A) = 0, IF SUBSYSTEM INITIATED.
  1089. *
  1090. * USES BA, JS, FN - FN+4.
  1091. *
  1092. * CALLS AST, EJB.
  1093.  
  1094.  
  1095. ISJ SUBR ENTRY/EXIT
  1096. STM EJBE SET SUBSYSTEM ID
  1097. LMC DSSI
  1098. ZJN ISJ0 IF DEADSTART SEQUENCING JOB
  1099. LMC FEAF*10000&DSSI FETCH *SSAT* ENTRY
  1100. RJM AST
  1101. NJN ISJX IF SUBSYSTEM ACTIVE
  1102. ISJ0 STD BA
  1103. LDN ZERL ZERO FILL BUFFER
  1104. CRM BUFA,ON
  1105. LDI TN SET JSN AND UJN = SUBSYSTEM NAME
  1106. STD FN
  1107. STM BUFA
  1108. LDM 1,TN
  1109. SCN 77
  1110. STM BUFA+1
  1111. LMN 1R SPACE-FILL JSN
  1112. STD FN+1
  1113. LDC ADCI+1 DISABLE JSN ACQUISITION
  1114. STM EJBD
  1115. ISJA LDN SSSC SET SERVICE CLASS
  1116. * LDN DSSC (DEADSTART SEQUENCING JOB)
  1117. STD JS
  1118. LDM 4,TN SET FILE TYPE AND STATUS
  1119. ZJN ISJ1 IF NOT SPECIFIED
  1120. STM EJBC
  1121. ISJ1 LDM 1,TN
  1122. SHN 21-5
  1123. MJP ISJ2 IF PP-INITIATED SUBSYSTEM
  1124.  
  1125. * FOR NON-PP-INITIATED SUBSYSTEMS, GENERATE A JOB INPUT FILE
  1126. * WITH THE FOLLOWING FORMAT -
  1127. * SUBPROC.
  1128. * GET,SUBPROC/NA.
  1129. * SUBPROC.
  1130.  
  1131. LDC BUF INDICATE COMMAND RECORD PRESENT
  1132. STD BA
  1133. LDN ZERL BUILD SUBSYSTEM PROCEDURE FILE NAME
  1134. CRD AB
  1135. LDI TN SUBSYSTEM NAME
  1136. STD AB
  1137. LDM 1,TN
  1138. SCN 77
  1139. SHN 6
  1140. LMC ** (FIRST BYTE OF PROCEDURE NAME SUFFIX)
  1141. ISJB EQU *-1
  1142. SHN -6+22
  1143. STD AB+1
  1144. LPC 770000
  1145. LMC ** (SECOND BYTE OF PROCEDURE NAME SUFFIX)
  1146. ISJC EQU *-1
  1147. SHN -6+22
  1148. STD AB+2
  1149. SHN -6
  1150. SCN 77
  1151. STD AB+3
  1152. LDN AB GENERATE JOB COMMAND
  1153. RJM GJC
  1154. LDC =C*GET,* GENERATE *GET,SUBPROC/NA.*
  1155. RJM ACS
  1156. LDN AB
  1157. RJM ACS
  1158. LDC =C*/NA.*
  1159. RJM CCI
  1160. LDN AB GENERATE NAME CALL TO PROCEDURE
  1161. RJM ACS
  1162. LDC =C*.*
  1163. RJM CCI
  1164. LDN 0 CLEAR SUFFIX FOR NEXT CALL
  1165. STM ISJB
  1166. STM ISJC
  1167. ISJ2 RJM EJB ENTER JOB
  1168. LJM ISJX RETURN
  1169. SJF SPACE 4,10
  1170. ** SJF - SET JOB FIELD LENGTH.
  1171. *
  1172. * ENTRY (AB - AB+4) = ENTRY POINT NAME.
  1173. *
  1174. * EXIT (JF) = FIELD LENGTH.
  1175. *
  1176. * USES JF, CM - CM+4.
  1177. *
  1178. * CALLS CLD.
  1179.  
  1180.  
  1181. SJF1 LDC DFFL/100 SET DEFAULT FIELD LENGTH
  1182. SJF2 STD JF
  1183.  
  1184. SJF SUBR ENTRY/EXIT
  1185. RJM CLD SEARCH FOR PROGRAM
  1186. CRD CM
  1187. LDD CM CHECK FOR MFL=/RFL= ENTRY POINT
  1188. ZJN SJF1 IF NO FILE LENGTH SPECIFIED
  1189. STD JF
  1190. SHN 6
  1191. PJN SJFX IF NOT MFL= ENTRY POINT
  1192. SHN 2
  1193. SHN -8D
  1194. UJN SJF2 SET FIELD LENGTH
  1195. SSC SPACE 4,10
  1196. ** SSC - SET SERVICE CLASS.
  1197. *
  1198. * ENTRY (AB - AB+1) = COMMAND.
  1199. *
  1200. * EXIT (JS) = *MASC* IF MAINTENANCE JOB.
  1201. * = *SYSC* IF NOT MAINTENANCE JOB.
  1202. *
  1203. * USES JC, TN.
  1204.  
  1205.  
  1206. SSC2 LMD AB FIND COMMAND
  1207. NJN SSC3 IF NO MATCH
  1208. LDM 1,JC
  1209. LMD AB+1
  1210. ZJN SSC5 IF MAINTENANCE JOB
  1211. SSC3 LDN 2 ADVANCE TABLE ADDRESS
  1212. RAD JC
  1213. SSC4 LDI JC
  1214. NJN SSC2 IF NOT END OF TABLE
  1215. AOD TN ADVANCE LIST ADDRESS
  1216. LMN ITJAL
  1217. NJN SSC1 IF NOT END OF TABLES
  1218. LDN SYSC&MASC
  1219. SSC5 LMN MASC SET SERVICE CLASS
  1220. STD JS
  1221.  
  1222. SSC SUBR ENTRY/EXIT
  1223. LDN 0
  1224. STD TN
  1225. SSC1 LDM ITJA,TN SET TABLE ADDRESS
  1226. STD JC
  1227. UJN SSC4 ENTER LOOP
  1228. TITLE REQUEST PROCESSORS.
  1229. ICJ SPACE 4,10
  1230. *** FUNCTION ICJF - INITIATE COMMAND JOB.
  1231. *
  1232. * ENTRY (IR+4) = 6/KEYBOARD BUFFER OFFSET, 6/.
  1233. * (IJCA) = FIELD LENGTH SPECIFIED BY CALLER (*IJCF*
  1234. * FUNCTION ONLY. ZERO, OTHERWISE.)
  1235.  
  1236.  
  1237. ICJ ENTRY ENTRY/EXIT
  1238. LDC BFMS GET COMMAND
  1239. RJM RPK
  1240. LDC /1DS/DSDL+/1DS/KBCML GET SPECIAL PARAMETER
  1241. CRD AB
  1242. LDN 0
  1243. STM BFMS+/1DS/KBCML/2*5
  1244. RJM SJF SET JOB FIELD LENGTH
  1245. LDM IJCA
  1246. ZJN ICJ1 IF NO FIELD LENGTH SPECIFIED
  1247. STD JF
  1248. ICJ1 LDD JF CONVERT INITIAL RFL
  1249. SHN -6
  1250. RJM C2D
  1251. STM ICJH+2
  1252. LDD JF
  1253. RJM C2D
  1254. STM ICJH+3
  1255. LDN AB GENERATE JOB COMMAND
  1256. RJM GJC
  1257. LDC ICJF
  1258. RJM CCI CREATE COMMAND IMAGE
  1259. LDC TSJN
  1260. STD T3
  1261. UJN ICJ3 CHECK SPECIAL JOB NAME
  1262.  
  1263. ICJ2 LDI T3 ADVANCE TO NEXT ENTRY
  1264. ADN 1
  1265. RAD T3
  1266. STM ICJA
  1267. ICJ3 LDI T3 SET ENTRY LENGTH
  1268. ZJN ICJ5 IF END OF TABLE
  1269. STD T2
  1270. ICJ4 LDM TSJN,T2 COMPARE JOB NAMES
  1271. ICJA EQU *-1
  1272. LMM AB-1,T2
  1273. NJN ICJ2 IF NO COMPARE
  1274. SOD T2
  1275. NJN ICJ4 IF NOT END OF NAME
  1276. STM EJBA
  1277. STM EJBB
  1278. LCN ICJGL
  1279. ICJ5 ADN ICJGL+1 ADJUST POINTER FOR NEXT COMMAND
  1280. RAD LA
  1281. ICJ6 LDD LA CREATE COMMAND IMAGE
  1282. RJM CCI
  1283. AOD LA ADVANCE COMMAND POINTER
  1284. LDI LA
  1285. NJN ICJ6 IF NOT END OF COMMAND STREAM
  1286. LDC BFMS COPY COMMAND (OR JOB COMMAND)
  1287. * LDC BUFA (INITIATE JOB CALL)
  1288. ICJB EQU *-1
  1289. RJM CCI
  1290. RJM SSC SET SERVICE CLASS
  1291. LDC UJSI SET *SISS* FIELD
  1292. * LDC IRSI (SET INHIBIT ROLLOUT ID)
  1293. ICJC EQU *-1
  1294. STM EJBE
  1295. LDC INQF*100+7 GENERATE OUTPUT
  1296. * LDC NOQF*100+7 (DO NOT GENERATE OUTPUT)
  1297. ICJD EQU *-1
  1298. STM EJBC
  1299. RJM EJB ENTER JOB
  1300. LJM ICJX RETURN
  1301.  
  1302.  
  1303. ICJF DATA Z*MODE(0)*
  1304. * DATA Z*MODE(1)* (CYBER 176)
  1305. ICJG DATA Z*SUI(0)*
  1306. ICJGL EQU *-ICJG
  1307. DATA Z*RETURN(INPUT)*
  1308. DATA Z*NORERUN.*
  1309. ICJH DATA Z*RFL(XXXX00)*
  1310. CON 0 END OF COMMANDS
  1311. TSJN SPACE 4,10
  1312. ** TSJN - TABLE OF SPECIAL JOB NAMES.
  1313. *
  1314. * JOBS LISTED IN THIS TABLE WILL HAVE A *SUI(0)*
  1315. * COMMAND INCLUDED IN THEIR JOB STREAM.
  1316. *
  1317. * 12/ L, 12*L/ NAME
  1318. * L = LENGTH OF JOB NAME IN PP WORDS.
  1319. * NAME = JOB NAME TO COMPARE.
  1320.  
  1321.  
  1322. TSJN BSS 0
  1323. VFD 12/2,24/0LDDF
  1324. VFD 12/2,24/0LDIS
  1325. VFD 12/2,24/0LO26
  1326. VFD 12/0 END OF TABLE
  1327. ISC SPACE 4,10
  1328. *** FUNCTION ISCF - INITIATE SYSTEM COMMAND JOB.
  1329. *
  1330. * ENTRY (IR+4) = 6/ KEYBOARD BUFFER OFFSET, 6/.
  1331. *
  1332. * NOTE FLAGS SET IN ROUTINE *ICJ* TO SET
  1333. * *SISS* FIELD IN THE SYSTEM SECTOR AND
  1334. * TO NOT DISPOSE OUTPUT AT END OF JOB TIME.
  1335.  
  1336.  
  1337. ISC ENTRY ENTRY/EXIT
  1338. LDN IRSI SET INHIBIT ROLLOUT IN *SISS*
  1339. STM ICJC
  1340. LDC NOQF*100+7 SET NO OUTPUT
  1341. STM ICJD
  1342. RJM ICJ INITIATE COMMAND JOB
  1343. UJN ISCX RETURN
  1344. ITJ SPACE 4,10
  1345. *** FUNCTION ITJF.
  1346. *
  1347. * INITIATE JOBS FROM TABLE.
  1348. * INITIATE ALL ENABLED SUB-SYSTEMS.
  1349.  
  1350.  
  1351. * CALCULATE NEXT TABLE NUMBER FROM CPU TYPE.
  1352.  
  1353. ITJ8 LDD FG CALCULATE NEXT TABLE NUMBER
  1354. SHN 0-4
  1355. LPN 1 ZERO IF INSTRUCTION STACK PRESENT
  1356. STD T1
  1357. LDD FG
  1358. SHN 1-6
  1359. LPN 2 ZERO IF CYBER 170 MAINFRAME
  1360. RAD T1
  1361. LDN 4
  1362. SBD T1
  1363. UJN ITJ11 CONTINUE PROCESSING
  1364.  
  1365. * CHECK FOR 6700 OR CYBER 74-2X MAINFRAME TYPE.
  1366.  
  1367. ITJ9 LDD FG CHECK DUAL CPU BIT
  1368. LPN 2
  1369. NJN ITJ13 IF NOT DUAL CPU
  1370. LDN 1 SET TABLE 1
  1371. UJN ITJ1 PROCESS TABLE 1 JOBS
  1372.  
  1373. * CHECK FOR CMU.
  1374.  
  1375. ITJ10 LDD FG CHECK CMU BIT
  1376. SHN 21-3
  1377. MJN ITJ13 IF NO CMU
  1378. LDN 5 SET TABLE 5
  1379. ITJ11 UJN ITJ1 PROCESS TABLE
  1380.  
  1381. * CHECK IF ALL TABLES PROCESSED.
  1382.  
  1383. ITJ12 LDD TN CHECK CURRENT TABLE NUMBER
  1384. ZJN ITJ8 IF TABLE 0
  1385. LMN 2
  1386. ZJN ITJ9 IF TABLE 2
  1387. LMN 5&2
  1388. NJN ITJ10 IF NOT TABLE 5
  1389. ITJ13 RJM IAS INITIATE ALL ENABLED SUBSYSTEMS
  1390.  
  1391. ITJ ENTRY ENTRY/EXIT
  1392. LDD FG
  1393. SHN -6
  1394. LPN 71
  1395. ZJN ITJ0 IF CYBER 170-865/875
  1396. LMN 70
  1397. ZJN ITJ0.1 IF CYBER 176
  1398. SHN -5
  1399. ZJN ITJ1 IF NOT CYBER 170-815/825/835/855
  1400. LDN 0 SPIN UP ISMD DEVICES
  1401. RJM SUD
  1402. LDN 7&10 SET TABLE FOR CYBER 170-815/825/835/855
  1403. ITJ0 LMN 10&6 SET TABLE FOR CYBER 170-865/875
  1404. ITJ0.1 LMN 6 SET TABLE FOR CYBER 176
  1405. ITJ1 STD TN SET TABLE NUMBER
  1406. LDM ITJA,TN SET JOB TABLE ADDRESS
  1407. STD JC
  1408. LDN 0 CLEAR SECOND PASS FLAG
  1409. STM ITJD
  1410. ITJ2 LDN ZERL
  1411. CRD AB
  1412. LDI JC SET JOB NAME
  1413. NJN ITJ2.2 IF NOT END OF TABLE
  1414. LDC *
  1415. ITJC EQU *-1
  1416. ITJ2.1 NJP ITJ12 IF NOT A DUAL CPU MACHINE
  1417. LDC **
  1418. ITJD EQU *-1
  1419. NJN ITJ2.1 IF END OF SECOND PASS
  1420. AOM ITJD FLAG SECOND PASS
  1421. LDM ITJA,TN RESET TABLE POINTER
  1422. STD JC
  1423. LDI JC
  1424. ITJ2.2 STD AB
  1425. LDM 1,JC
  1426. STD AB+1
  1427. RJM SJF SET JOB FIELD LENGTH
  1428. LDN AB GENERATE JOB COMMAND
  1429. RJM GJC
  1430. LDC ICJF
  1431. RJM CCI CREATE COMMAND IMAGE
  1432.  
  1433. * ISSUE USECPU COMMAND IF ON 6700 OR CYBER 74-2X.
  1434.  
  1435. LDD FG CHECK DUAL AND STACK CPU BITS
  1436. LPC 4122
  1437. LMC 4100 PREVENT SELECTION FOR CYBER 170 AND 8X5
  1438. NJN ITJ2.4 IF NOT DUAL AND STACK CPU ON 6000 OR C70
  1439. LDD TN CHECK TABLE NUMBER
  1440. ZJN ITJ5 IF TABLE 0
  1441. LMN 1
  1442. ZJN ITJ3 IF TABLE 1
  1443. ITJ2.3 LDC =C*USECPU(1)* CPU0
  1444. UJN ITJ4 CREATE COMMAND IMAGE
  1445.  
  1446. ITJ2.4 LDD FG
  1447. LPN 2
  1448. STM ITJC
  1449. NJN ITJ5 IF NOT A DUAL CPU MACHINE
  1450. LDM ITJD
  1451. NJN ITJ3 IF PASS 2
  1452. UJN ITJ2.3 CREATE COMMAND IMAGE
  1453.  
  1454. ITJ3 LDC =C*USECPU(2)* CPU1
  1455. ITJ4 RJM CCI CREATE COMMAND IMAGE
  1456. ITJ5 LDD TN
  1457. LMN 6
  1458. NJN ITJ6 IF NOT CYBER 176 STACK
  1459. LDC TSBJA
  1460. LMD JC
  1461. NJN ITJ6 IF NOT JOB *LCM*
  1462. LDC =C*RFL,EC=10.*
  1463. RJM CCI CREATE COMMAND IMAGE
  1464. ITJ6 LDD CA
  1465. RJM CCI CREATE COMMAND IMAGE
  1466. LDC =C*EXIT.*
  1467. RJM CCI CREATE COMMAND IMAGE
  1468. LDC =C*DMP.*
  1469. RJM CCI CREATE COMMAND IMAGE
  1470. LDD JF CONVERT FIELD LENGTH
  1471. SHN -6
  1472. RJM C2D
  1473. STM ITJB+2
  1474. LDD JF
  1475. RJM C2D
  1476. STM ITJB+3
  1477. LDC ITJB
  1478. RJM CCI CREATE COMMAND IMAGE
  1479. LDC =C*IFE(EF.EQ.ODE,NOLIST)*
  1480. RJM CCI CREATE COMMAND IMAGE
  1481. LDC =C*RETURN(OUTPUT)*
  1482. RJM CCI CREATE COMMAND IMAGE
  1483. LDC =C*ENDIF(NOLIST)*
  1484. RJM CCI CREATE COMMAND IMAGE
  1485. LDN MASC SET SERVICE CLASS
  1486. STD JS
  1487. RJM EJB ENTER JOB
  1488. PJN ITJ7 IF JOB QUEUED
  1489. LJM ITJ13 ENABLE JOB SCHEDULING
  1490.  
  1491. ITJ7 LDN 2 ADVANCE JOB COUNTER
  1492. RAD JC
  1493. LJM ITJ2 LOOP
  1494.  
  1495.  
  1496. ITJA BSS 0
  1497. LOC 0
  1498. CON TCMJ COMMON MAINTENANCE JOBS
  1499. CON TNSJ CYBER 70 NO STACK MAINTENANCE JOBS
  1500. CON TSSJ CYBER 70 WITH STACK MAINTENANCE JOBS
  1501. CON TNOJ CYBER 170 NO STACK MAINTENANCE JOBS
  1502. CON TSOJ CYBER 170 WITH STACK MAINTENANCE JOBS
  1503. CON TMUJ MAINFRAMES WITH CMU MAINTENANCE JOBS
  1504. CON TSBJ CYBER 176 MAINTENANCE JOBS
  1505. CON TSAJ CYBER 170-815/825/835/855 MAINTENANCE JOBS
  1506. CON TSCJ CYBER 170-865/875 MAINTENANCE JOBS
  1507. ITJAL BSS 0 LENGTH OF LIST
  1508. LOC *O
  1509.  
  1510. ITJB DATA C*DMP(XXXX00)*
  1511. TCMJ SPACE 4,10
  1512. ** JOB TABLE 0.
  1513. * COMMON MAINTENANCE JOBS.
  1514. * JOBS RUN ON ALL MAINFRAME TYPES.
  1515.  
  1516.  
  1517. TCMJ BSS 0
  1518. VFD 24/0LALX
  1519. VFD 24/0LCU1
  1520. VFD 24/0LFST
  1521. DATA 0
  1522. TNSJ SPACE 4,10
  1523. ** JOB TABLE 1.
  1524. *
  1525. * NO STACK CYBER 70 MAINTENANCE JOBS.
  1526. * JOBS RUN ON MAINFRAME TYPES 6400, 6500, CYBER 72, CYBER
  1527. * 73, CPU1 OF 6700 AND CPU1 OF CYBER 74-2X.
  1528. *
  1529. * NOTE JOB TABLE 1 STARTS IN THE
  1530. * MIDDLE OF JOB TABLE 2.
  1531. TSSJ SPACE 4,10
  1532. ** JOB TABLE 2.
  1533. *
  1534. * WITH STACK CYBER 70 MAINTENANCE JOBS.
  1535. * JOBS RUN ON MAINFRAME TYPES 6600, CYBER 74-1X, CPU0 OF
  1536. * 6700 AND CPU0 OF CYBER 74-2X.
  1537.  
  1538.  
  1539. TSSJ BSS 0
  1540. VFD 24/0LFM2
  1541. VFD 24/0LIWS
  1542. TNSJ BSS 0 START OF JOB TABLE 1
  1543. VFD 24/0LCT3
  1544. VFD 24/0LMRG
  1545. VFD 24/0LMY1
  1546. VFD 24/0LRAN
  1547. DATA 0
  1548. TNOJ SPACE 4,10
  1549. ** JOB TABLE 3.
  1550. *
  1551. * NO STACK CYBER 170 MAINTENANCE JOBS.
  1552. * JOBS RUN ON MAINFRAME TYPES CYBER 172, 173 AND 174.
  1553.  
  1554.  
  1555. TNOJ BSS 0
  1556. VFD 24/0LCSU
  1557. VFD 24/0LCT3
  1558. VFD 24/0LMRG
  1559. VFD 24/0LRAN
  1560. DATA 0
  1561. TSOJ SPACE 4,10
  1562. ** JOB TABLE 4.
  1563. *
  1564. * WITH STACK CYBER 170 MAINTENANCE JOBS.
  1565. * JOBS RUN ON MAINFRAME TYPE CYBER 175.
  1566.  
  1567.  
  1568. TSOJ BSS 0
  1569. VFD 24/0LCSU
  1570. VFD 24/0LCT7
  1571. VFD 24/0LRAN
  1572. DATA 0
  1573. TMUJ SPACE 4,10
  1574. ** JOB TABLE 5.
  1575. *
  1576. * JOBS RUN ON MAINFRAMES WITH CMU.
  1577.  
  1578.  
  1579. TMUJ BSS 0
  1580. VFD 24/0LCMU
  1581. DATA 0
  1582. TSBJ SPACE 4,10
  1583. ** JOB TABLE 6.
  1584. *
  1585. * CYBER 176 MAINTENANCE JOBS.
  1586.  
  1587.  
  1588. TSBJ BSS 0
  1589. VFD 24/0LRAN
  1590. VFD 24/0LFST
  1591. VFD 24/0LCTB
  1592. TSBJA VFD 24/0LLCM
  1593. VFD 24/0LMEM
  1594. DATA 0
  1595. TSAJ SPACE 4,10
  1596. ** JOB TABLE 7.
  1597. *
  1598. *
  1599. * CYBER 170 - 815/825/835/855 MAINTENANCE JOBS.
  1600.  
  1601.  
  1602. TSAJ VFD 24/0LALX
  1603. VFD 24/0LCSU
  1604. VFD 24/0LCT8
  1605. VFD 24/0LCU8
  1606. VFD 24/0LFS8
  1607. VFD 24/0LMRG
  1608. VFD 24/0LRA8
  1609. DATA 0
  1610. TSCJ SPACE 4,10
  1611. ** JOB TABLE 8.
  1612. *
  1613. * CYBER 170 - 865/875 MAINTENANCE JOBS.
  1614.  
  1615.  
  1616. TSCJ VFD 24/0LALX
  1617. VFD 24/0LCSU
  1618. VFD 24/0LCT6
  1619. VFD 24/0LCU8
  1620. VFD 24/0LFS8
  1621. VFD 24/0LRA8
  1622. DATA 0
  1623. IJC SPACE 4,10
  1624. *** FUNCTION IJCF - INITIATE JOB CALL.
  1625. *
  1626. * ENTRY (IR+3) = FIELD LENGTH, IF SPECIFIED BY CALLER.
  1627. * = 0, OTHERWISE.
  1628. * (IR+4) = 6/ KEYBOARD BUFFER OFFSET, 6/.
  1629.  
  1630.  
  1631. IJC ENTRY ENTRY/EXIT
  1632. LDC BUFA SET JOB COMMAND ADDRESS
  1633. STM ICJB
  1634. LDD IR+3 SAVE FIELD LENGTH
  1635. STM IJCA
  1636. RJM ICJ
  1637. UJN IJCX RETURN
  1638.  
  1639. IJCA CON 0 FIELD LENGTH SPECIFIED BY CALLER
  1640. ILJ SPACE 4,10
  1641. *** FUNCTION ILJF - INITIATE *LBC* JOB.
  1642. *
  1643. * CALLED BY *6DI* AND *1DS* FUNCTIONS *UPCF* AND *OCMF* TO
  1644. * INITIATE SYSTEM JOB TO RELOAD CONTROLWARE.
  1645. *
  1646. * ENTRY (IR+4) = 1/,2/F,9/EQ.
  1647. * F 0 IF NO RECALL OF CALLER REQUIRED.
  1648. * 1 IF *UPCF* *1DS* FUNCTION TO BE
  1649. * RECALLED.
  1650. * 2 IF *OCMF* *1DS* FUNCTION TO BE
  1651. * RECALLED.
  1652. * EQ INDICATES CONTROL MODULE RELOAD IF VALUE
  1653. * IS EITHER 1 OR A CONTROL MODULE EST
  1654. * ORDINAL.
  1655.  
  1656.  
  1657. ILJ ENTRY ENTRY/EXIT
  1658. LDC =Z*LBC*
  1659. RJM GJC GENERATE JOB COMMAND
  1660. LDD IR+4
  1661. SHN 0-11
  1662. LPN 3
  1663. STD MS
  1664. SHN 14
  1665. NJN ILJ2 IF NOT *6DI* CALL
  1666. LDD IR+4
  1667. LPC 777
  1668. STD CM
  1669. SBN 1
  1670. MJN ILJ1 IF NOT CONTROL MODULE
  1671. ZJN ILJ2 IF CONTROL MODULE
  1672. SFA EST,CM
  1673. ADK EQDE
  1674. CRD CM
  1675. LDD CM+3
  1676. LMC 2RCM
  1677. ZJN ILJ2 IF CONTROL MODULE
  1678. ILJ1 LDC ILJA&ILJB
  1679. ILJ2 LMC ILJB
  1680. STD LA
  1681. ILJ3 LDD LA COMPLETE COMMAND IMAGE
  1682. RJM CCI
  1683. AOD LA ADVANCE COMMAND POINTER
  1684. LDI LA
  1685. NJN ILJ3 IF NOT END OF COMMAND STREAM
  1686. LDN SYSC SET SYSTEM SERVICE CLASS
  1687. STD JS
  1688. LCN TNDS-TSDS SELECT SYSTEM DEVICE FOR JOB FILE
  1689. RAM EJBF
  1690. RJM EJB ENTER JOB
  1691. LDD MS
  1692. ZJN ILJ4 IF NO *1DS* CALL REQUIRED
  1693. LDM IDSC SET FUNCTION CODE
  1694. SCN 77 PRESERVE BUFFER LOCK/LOGGING CONTROL BITS
  1695. LMM ILJC-1,MS
  1696. STD IR+2
  1697. LDN 0 DISABLE LOGGING/INTERLOCK CLEARING
  1698. STM IDSC
  1699. LDD IR+4
  1700. LPC -3000
  1701. STD IR+4
  1702. LDD IA REWRITE PP INPUT REGISTER
  1703. CWD IR
  1704. AOM IDSE SET *NO DROP* FLAG
  1705. EXECUTE 1DS,=
  1706. ILJ4 LJM ILJX RECALL *1DS* FUNCTION
  1707.  
  1708.  
  1709. ILJA DATA Z*LOADBC,D=DUMP.*
  1710.  
  1711. * THE FOLLOWING COMMANDS SHOULD BE ACTIVATED IF THE NEED EVER
  1712. * ARISES AGAIN TO DUMP THE MEMORY OF A FAILING CONTROLLER.
  1713. * THE DUMP CAPABILITY WAS ADDED TO DETERMINE WHY 7155
  1714. * CONTROLLERS WERE FAILING. SINCE THE CAUSE OF THIS PROBLEM
  1715. * IS NOW UNDERSTOOD, THERE IS NO LONGER A NEED TO DUMP
  1716. * CONTROLLERS DURING THE RELOAD PROCESS.
  1717.  
  1718. * DATA Z*DSDI,DMB,Z.+BCDUMP/V.*
  1719. * DATA Z*ATTACH,LBCDUMP/M=W,NA.*
  1720. * DATA Z*IF,.NOT.FILE(LBCDUMP,PM).DEFINE,LBCDUMP.*
  1721. * DATA Z*SKIPEI,LBCDUMP.*
  1722. * DATA Z*REWIND,DUMP.*
  1723. * DATA Z*COPY,DUMP,LBCDUMP.*
  1724.  
  1725. CON 0 END OF STATEMENTS
  1726.  
  1727.  
  1728. ILJB DATA Z*LOADBC.*
  1729. CON 0 END OF STATEMENTS
  1730.  
  1731.  
  1732. ILJC CON /1DS/UPCF
  1733. CON /1DS/OCMF
  1734. DSP SPACE 4,10
  1735. *** FUNCTION DSPF - INITIATE *L* DISPLAY JOB.
  1736. *
  1737. * ENTRY (IR+4) = 6/ KEYBOARD BUFFER OFFSET, 6/.
  1738.  
  1739.  
  1740. DSP ENTRY ENTRY/EXIT
  1741. LDC LDSP GET *L* DISPLAY CONTROL WORD
  1742. CRD CM+1
  1743. LDN 0
  1744. STD CM+2
  1745. LDN 2 SET WORD COUNT OF OPTIONS TO PROCESS
  1746. STD CM+1
  1747. LDD MA
  1748. CWM DSPA,CM+1
  1749. MONITOR UTEM INTERLOCK JSN FIELD IF .EQ. 0
  1750. LDD CM+1
  1751. NJP DSP2 IF VERIFICATION FALIED, RETURN ERROR
  1752. LDC NOQF*100+7 DO NOT GENERATE OUTPUT
  1753. STM ICJD
  1754. RJM ICJ INITIATE COMMAND JOB
  1755. SHN -21 SAVE REPLY
  1756. STD T1
  1757. ZJN DSP1 IF *L* DISPLAY JOB SUBMITTED
  1758. LDN 0 CLEAR JSN
  1759. STD FN
  1760. STD FN+1
  1761. DSP1 LDC LDSP *L* DISPLAY POINTER
  1762. CRD CM+1
  1763. LDN 0
  1764. STD CM+2
  1765. LDN 2
  1766. STD CM+1 STORE WORD COUNT OF OPTIONS
  1767. LDD FN SET JSN
  1768. STM DSPB+1*5+3
  1769. LDD FN+1
  1770. STM DSPB+1*5+4 STORE *JSN*
  1771. LDD MA
  1772. CWM DSPB,CM+1
  1773. MONITOR UTEM STORE *JSN* IN FWA *L* BUFFER ZERO FILLED
  1774. LDD T1 SET DSD RESPONSE
  1775. DSP2 RJM SRD
  1776. LJM DSPX EXIT
  1777.  
  1778.  
  1779. * *UTEM* MONITOR FUNCTION BUFFER.
  1780.  
  1781. DSPA VFD 1/1,5/0,6/24D,6/36D,42/0 VERIFY *JSN* .EQ. 0
  1782. VFD 1/0,5/0,6/24D,6/36D,42/-1 INTERLOCK JSN FIELD
  1783.  
  1784. DSPB VFD 1/0,5/0,6/36D,6/0,6/0 CLEAR CONTROL WORD STATUS BITS
  1785. CON 0,0,0
  1786. VFD 1/0,5/0,6/24D,6/36D,6/0 STORE *JSN*
  1787. CON 0,0,0
  1788. DSS SPACE 4,10
  1789. *** FUNCTION DSSF - INITIATE DEADSTART SEQUENCING JOB.
  1790. *
  1791. * ENTRY (IR+3 - IR+4) = 18/*CMS*, 6/0.
  1792.  
  1793.  
  1794. DSS ENTRY ENTRY/EXIT
  1795. LDN DSSC-SSSC CHANGE SERVICE CLASS
  1796. RAM ISJA
  1797. LDK DSSI CHANGE SUBSYSTEM ID
  1798. STM IAS.CMS+2
  1799. DSS1 RJM ISS INITIATE SUBSYSTEM
  1800. PJN DSSX IF JOB QUEUED SUCCESSFULLY
  1801. LDK ZERL
  1802. CRD CM
  1803. LDD QA SET QFT ORDINAL
  1804. ZJN DSS2 IF NO ENTRY WAS ASSIGNED
  1805. STD CM+1
  1806. LDN PQFT
  1807. STD CM+2
  1808. MONITOR MTRM RETURN QFT ENTRY
  1809. DSS2 SOM DSSA
  1810. NJN DSS1 IF RETRY COUNT NOT EXCEEDED
  1811. LDK NCPL GET SYSTEM CONTROL POINT
  1812. CRD CM
  1813. AOD CM+1 ISSUE MESSAGE TO SYSTEM CONTROL POINT
  1814. SHN 7
  1815. ADN MS2W
  1816. CWM DSSB,TR
  1817. LJM DSSX RETURN
  1818.  
  1819.  
  1820. DSSA CON 5 SUBSYSTEM INITIATION RETRY COUNT
  1821. DSSB DATA C*DEADSTART SEQUENCING FAILED.*
  1822. LOD SPACE 4,10
  1823. *** FUNCTION LODF - LOAD JOB.
  1824. *
  1825. * ENTRY (IR+3) = EST ORDINAL.
  1826. * (IR+4) = ID.
  1827.  
  1828.  
  1829. LOD ENTRY ENTRY/EXIT
  1830. LDC =C*LOAD*
  1831. RJM GJC GENERATE JOB COMMAND
  1832. LDD IR+3
  1833. ZJN LOD1 IF NO EST ORDINAL SPECIFIED
  1834. LDC =C*XXX,LOAD)*
  1835. RJM GAC
  1836. LOD1 LDD IR+4
  1837. ZJN LOD2 IF NO ID
  1838. RJM C2D ENTER ID
  1839. SHN 6
  1840. LMN 1R.
  1841. STM LODA+3
  1842. SHN -14
  1843. SBN 1R.
  1844. RAM LODA+2
  1845. LOD2 LDC LODA
  1846. RJM CCI
  1847. LDN SYSC SET SERVICE CLASS
  1848. STD JS
  1849. RJM EJB ENTER JOB
  1850. LJM LODX RETURN
  1851.  
  1852.  
  1853. LODA VFD 60/6LLDI,,.
  1854. IRM SPACE 4,10
  1855. ** IRM - INITIATE REMOTE MAINTENANCE FACILITY.
  1856. *
  1857. * EXIT RDF INITIATED.
  1858. *
  1859. * USES TN, T6, AB - AB+4, CM - CM+4, CN - CN+4.
  1860. *
  1861. * CALLS AST, ISJ.
  1862. *
  1863. * MACROS DELAY, MONITOR, PAUSE.
  1864.  
  1865.  
  1866. IRM3 LDD MA MAKE *IAF*REQUEST*
  1867. CWM IRMB,ON
  1868. IRM4 LDK ZERL
  1869. CRD CM
  1870. MONITOR TSEM
  1871. LDD CM+1
  1872. ZJN IRMX IF *IAF* INACCESSIBLE OR ERROR
  1873. LMC 7777
  1874. NJN IRMX IF REQUEST COMPLETE
  1875. PAUSE ST
  1876. LDC 3600 *TSEM* QUEUE FULL - DELAY AND RETRY
  1877. STD T6
  1878. IRM5 DELAY
  1879. SOD T6
  1880. ZJN IRM4 IF TIME TO REISSUE REQUEST
  1881. UJN IRM5 CONTINUE TO DELAY
  1882.  
  1883. IRM SUBR ENTRY/EXIT
  1884. LDD TN SAVE CURRENT ID
  1885. STM IRMC
  1886. LDM IRMD
  1887. NJN IRMX IF AUTO SELECTED *IAF*
  1888. LDC IAS.IAF GET ADDRESS OF *IAF* SUBSYSTEM ENTRY
  1889. STD TN
  1890. LDM 2,TN CHECK SUBSYSTEM ACTIVE
  1891. LMC FEAF*10000 FETCH *SSAT* ENTRY
  1892. RJM AST
  1893. NJP IRM3 IF ACTIVE
  1894. LDK SSSL CHECK IF *IAF* IS ENABLED
  1895. CRD CN
  1896. LDM 3,TN
  1897. STM IRMA
  1898. LDM 1,TN
  1899. LPN 17
  1900. ADN CN
  1901. STD T6
  1902. LDI T6 CHECK SUBSYSTEM
  1903. LPC 0
  1904. IRMA EQU *-1
  1905. ZJN IRM1 IF *IAF* ENABLED
  1906. LDC IAS.RDF CHECK IF *RDF* IS ACTIVE
  1907. STD TN
  1908. LDM 2,TN
  1909. LMC FEAF*10000
  1910. RJM AST
  1911. NJN IRM2 IF *RDF* ACTIVE
  1912. IRM1 LDM 2,TN
  1913. RJM ISJ INITIATE *RDF* OR *IAF*
  1914. IRM2 LDM IRMC RESTORE CURRENT ID
  1915. STD TN
  1916. LJM IRMX RETURN
  1917.  
  1918.  
  1919. * BUFFER FOR *TSEM* MONITOR CALL TO LOAD *RDF* DRIVER.
  1920.  
  1921. IRMB CON /REM/VITP
  1922. CON 0
  1923. CON 0
  1924. CON 0
  1925. CON 0
  1926. IRMC CON 0 CURRENT ID
  1927. IRMD CON 0 IAF AUTO FLAG
  1928.  
  1929. ISS SPACE 4,10
  1930. *** FUNCTION ISSF - INITIATE SPECIFIED SUB-SYSTEM.
  1931. *
  1932. * ENTRY (IR+3 - IR+4) = 18/NAME, 6/0, IF NOT *DSD* CALL.
  1933. * (IR+3) = 0, IF *DSD* CALL.
  1934. * (KBCML) = 18/NAME, 6/0, 24/PFC, 12/0, IF *DSD* CALL.
  1935. * NAME = 3-CHARACTER SUBSYSTEM NAME.
  1936. * PFC = PROCEDURE FILE NAME.
  1937. *
  1938. * EXIT (A) = 0, IF SUBSYSTEM INITIATED.
  1939.  
  1940.  
  1941. ISS ENTRY ENTRY/EXIT
  1942. LDD IR+3
  1943. NJN ISS1 IF NOT *DSD* CALL
  1944. LDC /1DS/DSDL+/1DS/KBCML GET SPECIAL PARAMETER WORD
  1945. CRD AB
  1946. LDD AB+2 SET PROCEDURE FILE NAME
  1947. STM ISJB
  1948. LDD AB+3
  1949. STM ISJC
  1950. UJN ISS2 GET SUBSYSTEM ID
  1951.  
  1952. ISS1 STD AB SET SUBSYSTEM NAME
  1953. LDD IR+4
  1954. STD AB+1
  1955. ISS2 LDC IASB FIND SUBSYSTEM ID
  1956. STD TN
  1957. ISS3 LDI TN
  1958. LMD AB
  1959. NJN ISS4 IF NO MATCH
  1960. LDM 1,TN
  1961. SCN 77
  1962. LMD AB+1
  1963. ZJN ISS5 IF MATCH
  1964. ISS4 LDN IASBE GET NEXT TABLE ENTRY
  1965. RAD TN
  1966. LMC IASBL
  1967. NJN ISS3 IF NOT END OF TABLE
  1968. LDN 1 SET ERROR STATUS
  1969. LJM ISSX RETURN
  1970.  
  1971. ISS5 LDD TN
  1972. LMC IAS.RDF
  1973. NJN ISS6 IF NOT *RDF*
  1974. RJM IRM INITIATE *RDF*
  1975. UJN ISS7 RETURN
  1976.  
  1977. ISS6 LDM 2,TN
  1978. RJM ISJ
  1979. ISS7 LJM ISSX RETURN
  1980. IAS SPACE 4,10
  1981. *** FUNCTION IASD - INITIATE ALL ENABLED SUB-SYSTEMS.
  1982.  
  1983.  
  1984. IAS5 RJM CCF CLEAR CHECKPOINT FLAGS
  1985. LDN 1
  1986. STD CM+1 SET NUMBER OF OPTIONS
  1987. STD CM+2 DO NOT DROP PPU
  1988. LDD MA
  1989. CWM IASD,ON
  1990. MONITOR UADM ENABLE JOB SCHEDULING
  1991.  
  1992. IAS ENTRY ENTRY/EXIT
  1993. LDN 0 SPIN UP ISMD DEVICES
  1994. RJM SUD
  1995. LDD IR+2
  1996. LMN /1DS/SCHF
  1997. ZJN IAS5 IF ENABLE SCHEDULING CALL
  1998. LDC IASB-IASBE SET LIST ADDRESS
  1999. STD TN
  2000. LDK SSSL GET SUBSYSTEM STATUS WORD
  2001. CRD CN
  2002. IAS1 LDN IASBE ADVANCE LIST ADDRESS
  2003. RAD TN
  2004. LMC IASBL
  2005. ZJN IAS5 IF END OF LIST
  2006. LDM 1,TN
  2007. SHN 21-4
  2008. PJN IAS1 IF NOT *AUTO* INITIATED SUBSYSTEM
  2009. LDD TN
  2010. LMC IAS.IAF
  2011. NJN IAS2 IF NOT *IAF*
  2012. AOM IRMD SET *IAF* AUTO FLAG
  2013. IAS2 LDD TN
  2014. LMC IAS.RDF
  2015. NJN IAS3 IF NOT *RDF*
  2016. RJM IRM INITIATE *RDF*
  2017. UJN IAS1 NEXT SUBSYSTEM
  2018.  
  2019. IAS3 LDM 3,TN SET MASK
  2020. STM IASA
  2021. LDM 1,TN SET BYTE ADDRESS
  2022. LPN 17
  2023. ADN CN
  2024. STD T6
  2025. LDI T6 CHECK SUBSYSTEM
  2026. LPC 0
  2027. IASA EQU *-1
  2028. NJN IAS4 IF DISABLED
  2029. LDM 2,TN INITIATE SUBSYSTEM
  2030. RJM ISJ
  2031. IAS4 LJM IAS1 CHECK NEXT SUBSYSTEM
  2032. SPACE 4,15
  2033. ** TABLE OF SUBSYSTEMS.
  2034. *
  2035. * ENTRY FORMAT.
  2036. *
  2037. *T 18/ NAME, 1/P, 1/A, 4/ BYTE, 12/ SSID, 12/ MASK, 12/ TYPE
  2038. *
  2039. * NAME = 3-CHARACTER SUBSYSTEM NAME.
  2040. * BYTE = BYTE POSITION IN *SSTL*.
  2041. * P = SET IF PP-INITIATED SUBSYSTEM.
  2042. * A = SET IF *AUTO* INITIATED SUBSYSTEM.
  2043. * SSID = SUBSYSTEM ID.
  2044. * MASK BIT MASK FOR SUBSYSTEM ENABLE/DISABLE BIT.
  2045. * TYPE FILE TYPE AND STATUS, IF FILE TYPE .NE. *INQF*.
  2046.  
  2047.  
  2048. SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO
  2049. *CALL COMSSSD
  2050.  
  2051. IASB BSS 0
  2052. LIST G
  2053. .SUB HERE
  2054. LIST *
  2055.  
  2056. IASBL BSS 0 END OF SUBSYSTEMS
  2057.  
  2058.  
  2059. IASD CON LDOS DECREMENT BY ONE
  2060. CON INWL WORD ADDRESS
  2061. CON 13D*100+1 BIT ADDRESS AND FIELD WIDTH
  2062. CON 0,0
  2063. SPACE 4,10
  2064. ** COMMON DECKS.
  2065.  
  2066.  
  2067. QUAL$ EQU 1 DO NOT QUALIFY COMMON DECKS
  2068. *CALL COMPAST
  2069. *CALL COMPCTE
  2070. *CALL COMPRFI
  2071. *CALL COMPSUD
  2072. WEI$ EQU 1 DEFINE ALTERNATE EOI BUFFER
  2073. *CALL COMPWEI
  2074. SPACE 4,10
  2075. USE OVERLAY FORCE /LITERALS*/
  2076. MSG SPACE 4,10
  2077. *** FUNCTION MSGF - SEND DAYFILE MESSAGE.
  2078. *
  2079. * ENTRY (IR+4) = 6/KEYBOARD BUFFER OFFSET, 6/.
  2080.  
  2081.  
  2082. MSG ENTRY ENTRY/EXIT
  2083. LDC BUF GET MESSAGE
  2084. RJM RPK
  2085. LDN 0 CLEAR LAST BYTE
  2086. STM BUF+31
  2087. LDC BUF SEND MESSAGE TO DAYFILE
  2088. RJM DFM
  2089. UJN MSGX RETURN
  2090. DIS SPACE 4,10
  2091. *** FUNCTION DISF - CALL DIS TO JOB.
  2092.  
  2093.  
  2094. DIS ENTRY ENTRY/EXIT
  2095. RJM LKC LOG COMMAND
  2096. LDC 2RDI BUILD INPUT REGISTER
  2097. STD IR
  2098. LDD CP
  2099. SHN -7
  2100. LMC 2L S
  2101. STD IR+1
  2102. LDN 0
  2103. STD IR+2
  2104. STD IR+3
  2105. LDC 4000 SET DIRECT CALL
  2106. STD IR+4
  2107. LDD MA ENTER *DIS* IN RECALL STACK
  2108. CWD IR
  2109. LDN ZERL
  2110. CRD CM
  2111. MONITOR RECM
  2112. LJM PPR EXIT TO PP RESIDENT
  2113. ECB SPACE 4,10
  2114. *** FUNCTION ECBF - ENTER CENTRAL MEMORY BUFFER.
  2115. *
  2116. * ENTRY (IR+4) = 6/KEYBOARD BUFFER OFFSET, 6/.
  2117.  
  2118.  
  2119. ECB ENTRY ENTRY/EXIT
  2120. LDC BUF READ AND PACK MESSAGE
  2121. RJM RPK
  2122. LDD CP READ DISPLAY CONTROL WORD
  2123. ADC DBAW
  2124. CRD CM
  2125. LDD CM CHECK ADDRESS
  2126. LPN 37
  2127. SHN 14
  2128. LMD CM+1
  2129. ADN 5
  2130. SHN -6
  2131. SBD FL
  2132. PJN ECBX IF .GE. FL - 5
  2133. LDD CM STORE MESSAGE
  2134. LPN 37
  2135. SHN 6
  2136. ADD RA
  2137. SHN 6
  2138. ADD CM+1
  2139. CWM BUF,FV
  2140. UJN ECBX RETURN
  2141. BUF SPACE 4,10
  2142. BUFB DATA 6HACDT,
  2143. BUF DATA 2,0 COMMAND SECTOR BUFFER
  2144. BUFA BSS 0
  2145. OVL0 EQU BUFA+2 LOAD ADDRESS FOR *0SD*, *0QM*
  2146. ERRNG BFMS-BUF-510 CHECK FOR BUFFER OVERFLOW
  2147. ERRNG BFMS-OVL0-2-ZQML *0QM* OVERFLOW
  2148. ERRNG BFMS-OVL0-2-ZSDL *0SD* OVERFLOW
  2149. TITLE OVERLAYABLE REQUEST PROCESSORS.
  2150. SPACE 4,10
  2151. * THE FOLLOWING ROUTINES CANNOT USE BUFFER *BUF*.
  2152.  
  2153.  
  2154. QUAL OVLNB
  2155. ECP SPACE 4,10
  2156. *** FUNCTION ECPF - ENTER CPU PRIORITY.
  2157. *
  2158. * ENTRY (IR+3) = EJT ORDINAL.
  2159. * (IR+4) = CPU PRIORITY IF .NE. 0.
  2160. * (IR+4) = 0 IF SET PRIORITY TO SERVICE CLASS VALUE.
  2161. * (KBCML) = 36/, 24/ JSN.
  2162.  
  2163.  
  2164. ECP ENTRY ENTRY/EXIT
  2165. LDC /1DS/DSDL+/1DS/KBCML
  2166. CRD FN READ PARAMETER WORD
  2167. LDD FN+3 SET JSN IN *UTEM* PARAMETER BLOCK
  2168. STM ECPA+3
  2169. LDD FN+4
  2170. STM ECPA+4
  2171. LDD MA
  2172. CWM ECPA,ON
  2173. LDN 60 SET RETRY COUNT
  2174. STD T4
  2175.  
  2176. * INTERLOCK EJT.
  2177.  
  2178. ECP1 LDN VFIN SET INTERLOCK FLAG + WORD COUNT
  2179. STD T1
  2180. LDN 0 CLEAR UNUSED BYTE
  2181. STD CM+2
  2182. SFA EJT,IR+3
  2183. RJM SFI SET INTERLOCK
  2184. ZJN ECP4 IF ENTRY INTERLOCKED
  2185. SBN 2
  2186. PJN ECP3 IF VERIFICATION FAILED OR ENTRY NOT IN USE
  2187. LDD HN DELAY
  2188. STD T0
  2189. ECP2 DELAY
  2190. SOD T0
  2191. PJN ECP2 IF MORE DELAY
  2192. SOD T4
  2193. PJN ECP1 IF NOT TIMED OUT
  2194. ECP3 LDN 1 SET *EJT ENTRY BUSY*
  2195. RJM SRD RETURN STATUS TO *DSD*
  2196. LJM ECPX EXIT
  2197.  
  2198. * DETERMINE JOB STATE.
  2199.  
  2200. ECP4 SFA EJT,IR+3
  2201. ADK JSNE FETCH JOB STATUS FROM EJT
  2202. CRD FN
  2203. ADK SCHE-JSNE GET ROLLOUT INFORMATION
  2204. CRD T5
  2205. LDD FN+4 EXTRACT JOB STATUS
  2206. LPN 76
  2207. LMN EXJS*2
  2208. NJP ECP8 IF NOT EXECUTING JOB STATE
  2209.  
  2210. * PROCESS JOB AT CONTROL POINT.
  2211.  
  2212. LDD T5+3 SET CONTROL POINT NUMBER
  2213. STD T6
  2214. LDD NC SET SYSTEM CP ADDRESS
  2215. STD T7
  2216. RJM CCP CHANGE CONTROL POINT
  2217. NJN ECP5 IF UNABLE TO MOVE TO DESIRED CP
  2218. LDD CP CHECK CURRENT PRIORITY
  2219. ADN CWQW
  2220. CRD T1
  2221. LDD T1
  2222. SHN -3
  2223. ADC -200-LSCS
  2224. PJN ECP6 IF NOT .LT. SYSTEM PRIORITIES
  2225. LDD IR+4
  2226. LPC 177
  2227. STD CM+4 SET CPU PRIORITY IN REQUEST
  2228. LDN CPRS
  2229. STD CM+1 CHANGE CPU PRIORITY
  2230. MONITOR SJCM
  2231. ECP5 SOD FN+4
  2232. SFA EJT,IR+3 CLEAR EJT INTERLOCK
  2233. ADK JSNE
  2234. CWD FN
  2235. UJP ECPX RETURN
  2236.  
  2237. ECP6 LDN 3 SET *INCORRECT ENTRY*
  2238. ECP7 RJM SRD SET ERROR RESPONSE FOR *DSD*
  2239. UJN ECP5 CLEAR EJT INTERLOCK
  2240.  
  2241. * PROCESS JOB AT PSEUDO-CONTROL POINT.
  2242.  
  2243. ECP8 LMN PCJS*2&EXJS*2
  2244. NJP ECP10 IF JOB NOT AT PSEUDO CP
  2245. LDD T6
  2246. RJM SCP SET PSEUDO CP AREA ADDRESS
  2247. CRM BFMS+2,HN READ FIRST SECTOR OF CP AREA
  2248. RJM SPR SET PRIORITY
  2249. PJN ECP6 IF PRIORITY CHANGE NOT ALLOWED
  2250. LDD T6 RESET PCP AREA ADDRESS
  2251. RJM SCP
  2252. ADN CWQW UPDATE CPU SCHEDULING INFORMATION
  2253. CWM BFMS+2+5*CWQW,ON
  2254. CWM BFMS+2+5*CSAW,ON CLEAR CPU SLICE ACCUMULATORS
  2255. ERRNZ CSAW-CWQW-1
  2256. UJP ECP5 CLEAR EJT INTERLOCK
  2257.  
  2258. ECP9 LDN 2 SET *CANNOT ACCESS ROLLOUT DEVICE.*
  2259. UJP ECP7 SET ERROR STATUS
  2260.  
  2261. * PROCESS ROLLED-OUT JOB.
  2262.  
  2263. ECP10 LMN PRJS*2&PCJS*2
  2264. ZJN ECP9 IF PRE-INITIAL JOB STATE
  2265. LMN PWJS*2&PRJS*2
  2266. ZJN ECP9 IF PRE-INITIAL WAIT JOB STATE
  2267. SETMS IO,(NS,RW)
  2268. LDN FSMS SET FIRST SECTOR OF CP AREA
  2269. STD T7
  2270. LDC BFMS READ ROLLOUT FILE
  2271. RJM RDS
  2272. MJN ECP9 IF DISK ERROR
  2273. RJM SPR SET PRIORITY
  2274. MJN ECP11 IF PRIORITY CHANGE ALLOWED
  2275. ENDMS
  2276. LJM ECP6 SET *INCORRECT ENTRY*
  2277.  
  2278. ECP11 LDC BFMS+WLSF UPDATE ROLLOUT FILE
  2279. RJM WDS
  2280. ENDMS
  2281. UJP ECP5 CLEAR EJT INTERLOCK
  2282.  
  2283.  
  2284. ECPA VFD 1/1,5/JSNE,6/24D VERIFY THAT JSN-S MATCH
  2285. VFD 6/36D,6/0
  2286. VFD 36/0
  2287. SPR SPACE 4,10
  2288. ** SPR - SET CPU PRIORITY OF ROLLED OUT JOB.
  2289. *
  2290. * ENTRY FIRST SECTOR OF CONTROL POINT AREA IN *BFMS*.
  2291. *
  2292. * EXIT (A) .LT. 0 IF NO ERROR.
  2293.  
  2294.  
  2295. SPR SUBR ENTRY/EXIT
  2296. LDM BFMS+2+5*CWQW+0
  2297. ERRPL CWQW-100 *CWQW* MUST BE IN FIRST SECTOR OF CPA
  2298. SHN -3
  2299. ADC -200-LSCS
  2300. PJN SPRX IF JOB AT SYSTEM PRIORITY
  2301.  
  2302. * IF SETTING THE PRIORITY TO THE SERVICE CLASS VALUE, THE
  2303. * SERVICE CLASS FLAG IN *CWQW* IS CLEARED SO THAT THE *JACM*
  2304. * FUNCTION WILL RESET THE PRIORITY ON ROLLIN.
  2305.  
  2306. LDM BFMS+2+5*CWQW+1
  2307. LPC 2777 CLEAR SLICE AND SERVICE CLASS FLAGS
  2308. LMC 4000 SET INCOMPLETE EXTENDED CPU SLICE
  2309. STM BFMS+2+5*CWQW+1
  2310. LDD IR+4 SET NEW PRIORITY
  2311. ZJN SPR1 IF SET PRIORITY TO SERVICE CLASS VALUE
  2312. SHN 3
  2313. ADC 2000
  2314. STM BFMS+2+5*CWQW+0
  2315. LDD TH SET PRIORITY NOT FROM SERVICE CLASS FLAG
  2316. RAM BFMS+2+5*CWQW+1
  2317. SPR1 LDN ZERL CLEAR CPU SLICE ACCUMULATORS
  2318. CRM BFMS+2+5*CSAW,ON
  2319. ERRPL CSAW-100 *CSAW* MUST BE IN FIRST SECTOR OF CPA
  2320. LCN 1 SET NO ERROR
  2321. UJN SPRX RETURN
  2322. SPACE 4,10
  2323. * THE FOLLOWING ROUTINES CANNOT USE BUFFERS *BUF* OR *BFMS*.
  2324.  
  2325.  
  2326. ERRNG BFMS-* OVERFLOW INTO BUFFER
  2327. AEJ SPACE 4,10
  2328. *** FUNCTION AEJF - ASSIGN EQUIPMENT TO JOB.
  2329. *
  2330. * ENTRY (IR+3) = EQUIPMENT.
  2331.  
  2332.  
  2333. AEJ ENTRY ENTRY/EXIT
  2334. LDD CP SET OPERATOR ASSIGNED EQUIPMENT
  2335. ADN OAEW
  2336. CRD CM
  2337. LDD IR+3
  2338. STD CM+4
  2339. LDD CP
  2340. ADN OAEW
  2341. CWD CM
  2342. UJN AEJX RETURN
  2343. CKP SPACE 4,10
  2344. *** FUNCTION CKPF - CALL CHECKPOINT TO JOB.
  2345.  
  2346.  
  2347. CKP ENTRY ENTRY/EXIT
  2348. LDN 0
  2349. STD CM+1
  2350. MONITOR DCPM GET RID OF CP ACTIVITY
  2351. LDD CM+1 SAVE STATUS
  2352. STD T1
  2353. CKP1 PAUSE
  2354. LDD CM+1
  2355. NJN CKPX IF ERROR
  2356. LDD CM+2
  2357. LPN 1
  2358. NJN CKP3 IF ROLLOUT REQUESTED
  2359. LDD CM CHECK PP ACTIVITY
  2360. LPN 36 IGNORE THIS PP
  2361. ZJN CKP2 IF NO PP ACTIVITY
  2362. LDN 77
  2363. SBN 1
  2364. NJN *-1 IF DELAY NOT FINISHED
  2365. UJN CKP1 LOOP
  2366.  
  2367. CKP2 LDD CM+4
  2368. SHN -4
  2369. NJN CKP3 IF PP RECALL REQUESTS
  2370. LDD CP
  2371. ADN JCIW
  2372. CRD CN
  2373. ADK TFSW-JCIW
  2374. CRD AB
  2375. ADK SPCW-TFSW
  2376. CRD CM
  2377. LDD CN+3
  2378. LPC 600
  2379. NJN CKP3 IF USER FILE PRIVACY
  2380. LDD CM
  2381. CKP3 NJN CKP4 IF *SPCW* BUSY
  2382. SFA EJT,AB CHECK FOR SCP CONNECTION
  2383. ADK JSNE
  2384. CRD AB
  2385. LDD AB+4
  2386. SHN 21-13
  2387. MJN CKP4 IF JOB IS CONNECTED TO A SCP
  2388. LDN ZERL
  2389. CRD CN
  2390. CRD CM
  2391. LDC 2RCK BUILD *SPCW* CALL
  2392. STD CN
  2393. LDC 2L P+20
  2394. STD CN+1
  2395. LDD CP STORE SPECIAL REQUEST
  2396. ADC SPCW
  2397. CWD CN
  2398. MONITOR ROCM SET ROLLOUT FLAG
  2399. CKP4 LDD T1
  2400. ZJN CKP6 IF NO ORIGINAL STATUS
  2401. LDD RA CHECK SYSTEM REQUEST
  2402. SHN 6
  2403. ADN 1
  2404. CRD CM
  2405. LDD CM
  2406. NJN CKP5 IF CALL
  2407. LDN ZERL CLEAR SYSTEM REQUEST
  2408. CRD CM
  2409. LDD RA
  2410. SHN 6
  2411. ADN 1
  2412. CWD CM
  2413. CKP5 LDD CP INDICATE CPU STATUS AT ROLLOUT
  2414. ADN STSW
  2415. CRD CM
  2416. LDN 2
  2417. RAD CM+2
  2418. LDD CP
  2419. ADN STSW
  2420. CWD CM
  2421. CKP6 LJM CKPX RETURN
  2422. CLR SPACE 4,10
  2423. *** FUNCTION CLRF - SET/CLEAR PAUSE BIT.
  2424. *
  2425. * ENTRY (IR+3) = 0 IF CLEARING PAUSE BIT.
  2426. * = 1 IF SETTING PAUSE BIT.
  2427. * (IR+4) = 6/ KEYBOARD BUFFER OFFSET, 6/.
  2428. *
  2429. * EXIT TO *ISC* IF JOB NOT AT CP.
  2430.  
  2431.  
  2432. CLR4 LDM CLR SET RETURN ADDRESS
  2433. STM ISC
  2434. LJM ISC+1 INITIATE JOB CALL AND EXIT
  2435.  
  2436. CLR ENTRY ENTRY/EXIT
  2437. LDC /1DS/DSDL+/1DS/KBCML FETCH PARAMETER WORD
  2438. CRD FN
  2439. LDN ERLN/10000 SET DEFAULT DAYFILE
  2440. STD T4
  2441. LDD FN+1
  2442. LPN 77
  2443. NJN CLR1 IF NOT JSN FOR SUBSYSTEM
  2444. LDN 1R
  2445. RAD FN+1
  2446. CLR1 LDD FN+2
  2447. NJN CLRX IF INCORRECT JSN
  2448. RJM SSJ SEARCH FOR SPECIFIED JOB
  2449. NJN CLR4 IF JOB NOT FOUND
  2450. CLR2 LDD CP
  2451. ADN SNSW
  2452. CRD CM
  2453. ADN MS2W-SNSW
  2454. CRD CN
  2455. LDN 0 CLEAR MESSAGE
  2456. STD CN
  2457. LDD CM+3 SET/CLEAR PAUSE BIT IN CPA
  2458. SCN 3
  2459. LMD IR+3
  2460. STD CM+3
  2461. LDD CP
  2462. ADN SNSW
  2463. CWD CM
  2464. ADN MS2W-SNSW
  2465. CWD CN
  2466. LDD FL
  2467. ZJN CLR3 IF NO FIELD LENGTH
  2468. LDD RA
  2469. SHN 6
  2470. CRD FS
  2471. LDD FS+3 SET/CLEAR PAUSE FLAGS IN (RA)
  2472. SCN 3
  2473. LMD IR+3
  2474. STD FS+3
  2475. LDD RA STORE (RA)
  2476. SHN 6
  2477. CWD FS
  2478. CLR3 LDD T4 ISSUE DAYFILE MESSAGE
  2479. SHN 14
  2480. ADM CLRA,IR+3
  2481. RJM DFM
  2482. LJM CLRX RETURN
  2483.  
  2484.  
  2485. CLRA CON MSGA
  2486. CON MSGB
  2487. TITLE OVERLAYABLE SUBROUTINES.
  2488. CCP SPACE 4,15
  2489. ** CCP - CHANGE CONTROL POINT.
  2490. *
  2491. * ENTRY (T6) = CONTROL POINT NUMBER.
  2492. * (T7) = SYSTEM CONTROL POINT NUMBER.
  2493. *
  2494. * EXIT (A) = 0 IF CHANGE MADE.
  2495. *
  2496. * USES CM+1, T5.
  2497. *
  2498. * CALLS CSJ.
  2499. *
  2500. * MACROS DELAY, MONITOR.
  2501.  
  2502.  
  2503. CCP2 DELAY
  2504. SOD T5
  2505. PJN CCP1 IF RETRY COUNT NOT EXHAUSTED
  2506.  
  2507. CCP SUBR ENTRY/EXIT
  2508. LDN 10-1 SET RETRY COUNT
  2509. STD T5
  2510. CCP1 LDD T6 CHANGE TO REQUESTED CP
  2511. ADD TH SET REJECT ON STORAGE MOVE
  2512. ERRNZ RCMS-1000
  2513. STD CM+1
  2514. MONITOR CCAM
  2515. LDD CM+1
  2516. NJN CCP2 IF CHANGE REJECTED
  2517. RJM CSJ RECHECK JSN
  2518. ZJN CCPX IF JOB STILL AT CP
  2519. LDD T7
  2520. STD CM+1
  2521. MONITOR CCAM MOVE BACK TO SYSTEM CP
  2522. LDN 1
  2523. UJN CCPX RETURN
  2524. CSJ SPACE 4,10
  2525. ** CSJ - CHECK CP FOR SPECIFIED JOB.
  2526. *
  2527. * ENTRY (T6) = CP NUMBER.
  2528. * (FN - FN+1) = JSN OF SPECIFIED JOB.
  2529. *
  2530. * EXIT (A) = 0 IF JOB EXECUTING AT CP.
  2531. *
  2532. * USES AB - AB+4, CM - CM+4.
  2533. *
  2534. * MACROS SFA.
  2535.  
  2536.  
  2537. CSJ SUBR ENTRY/EXIT
  2538. LDD T6 FETCH EJT ORDINAL
  2539. SHN 7
  2540. ADN TFSW
  2541. CRD CM
  2542. LDD CM
  2543. ZJN CSJ1 IF CP INACTIVE
  2544. SFA EJT
  2545. ADK JSNE READ EJT ENTRY
  2546. CRD AB
  2547. LDD AB+1 COMPARE JSN
  2548. LMD FN+1
  2549. NJN CSJX IF NO MATCH
  2550. LDD AB
  2551. CSJ1 LMD FN
  2552. NJN CSJX IF NO MATCH
  2553. LDD AB+4
  2554. LPN 76
  2555. LMN EXJS*2
  2556. UJN CSJX RETURN
  2557. SSJ SPACE 4,10
  2558. ** SEJ - SEARCH CP-S FOR SPECIFIED JOB.
  2559. *
  2560. * ENTRY (FN - FN+1) = JSN OF SPECIFIED JOB.
  2561. *
  2562. * EXIT (A) = 0 IF SPECIFIED JOB ACTIVE AT CP.
  2563. * (T4) = MESSAGE OFFSET + DAYFILE OPTION.
  2564. *
  2565. * USES T6, T7.
  2566. *
  2567. * CALLS CCP, CSJ.
  2568.  
  2569.  
  2570. SSJ2 LDD FN
  2571. LMC 2RSY
  2572. NJN SSJX IF NOT SYSTEM JSN
  2573. LDD FN+1
  2574. LMC 2RS
  2575.  
  2576. SSJ SUBR ENTRY/EXIT
  2577. LDN 0
  2578. STD T6
  2579. LDD CP SET SYSTEM CP NUMBER
  2580. SHN -7
  2581. STD T7
  2582. SSJ1 AOD T6 ADVANCE CP
  2583. LMD T7
  2584. ZJN SSJ2 IF ALL CP-S CHECKED
  2585. RJM CSJ CHECK FOR SPECIFIED JOB
  2586. NJN SSJ1 IF JOB NOT ACTIVE AT THIS CP
  2587. LDC 2S6 CHANGE DAYFILE/MESSAGE OFFSET
  2588. STD T4
  2589. RJM CCP CHANGE TO CP
  2590. UJN SSJX RETURN
  2591. SPACE 4,10
  2592. ** OVERLAID MESSAGES.
  2593.  
  2594.  
  2595. MSGA DATA C*DS, GO.*
  2596. MSGB DATA C*DS, PAUSE.*
  2597. TITLE PRESET.
  2598. QUAL PRESET
  2599. PRS SPACE 4,10
  2600. ** PRS - PRESET.
  2601. *
  2602. * EXIT (IDSA) = FUNCTION PROCESSOR ADDRESS.
  2603. * (IDSC) = ORIGINAL (IR+2).
  2604. * (BA) = BUFFER ADDRESS.
  2605. * (CA) = COMMAND ADDRESS.
  2606. * (FG) = CPU FLAGS.
  2607. * (JF) = DEFAULT FIELD LENGTH.
  2608. * (CP) = CONTROL POINT ADDRESS.
  2609. * (QA) = 0.
  2610. * (IR+2) = REQ.
  2611. *
  2612. * CALLS IFP.
  2613. *
  2614. * MACROS DELAY, MONITOR, SFA.
  2615.  
  2616.  
  2617. PRS SUBR ENTRY/EXIT
  2618. LDN 0 PRESET DIRECT CELLS
  2619. STD QA
  2620. LDC /OVERLAY/BUF SET SECTOR BUFFER ADDRESS
  2621. STD BA
  2622. ADN 2 SET COMMAND ADDRESS
  2623. STD CA
  2624. LDN CPMR SET RETRY COUNT
  2625. STD S1
  2626. LDC DFFL/100 SET DEFAULT FIELD LENGTH
  2627. STD JF
  2628. LDN 5 SET CONSTANT FIVE
  2629. STD FV
  2630. LDN NCPL GET NUMBER OF CP-S
  2631. CRD CM
  2632. ADK MABL-NCPL FETCH HARDWARE OPTIONS
  2633. CRD CN
  2634. ADK PCPP-MABL GET FWA OF PCP AREA
  2635. CRD FS
  2636. AOD CM+1 SET SYSTEM CP NUMBER
  2637. STD NC
  2638. LDD FS+3
  2639. RAM SCPA-1
  2640. LDD FS+4 SET PCP AREA BASE ADDRESS
  2641. STM SCPA
  2642. LDD IR+2 SAVE PARAMETERS
  2643. STM IDSC
  2644. LPN 77 GET FUNCTION CODE
  2645. STD IR+2
  2646. SBN /1DS/MAXF
  2647. PJN PRS3 IF INCORRECT FUNCTION
  2648. RJM IFP INITIALIZE *SFA* MACRO
  2649. LDD CN+1
  2650. STD FG
  2651. SHN -11
  2652. LMN 7
  2653. NJN PRS1 IF NOT A CYBER 176
  2654. AOM /OVERLAY/ICJF+2
  2655. PRS1 LDM IDSC
  2656. SHN 21-12
  2657. MJN PRS2 IF CP CHANGE REQUIRED
  2658. LJM PRS7 PROCESS FUNCTION
  2659.  
  2660. PRS2 LDD IR+4 SET CP NUMBER
  2661. LPN 37
  2662. STD TN
  2663. NJN PRS4 IF ASSIGNED
  2664. PRS3 LJM IDS2 DROP PP
  2665.  
  2666. PRS4 ADD TH SET REJECT ON STORAGE MOVE
  2667. ERRNZ RCMS-1000
  2668. STD CM+1
  2669. LPN 77
  2670. SHN 7
  2671. ADN TFSW READ EJTO AND JSN
  2672. CRD CN
  2673. LDD CN
  2674. ZJN PRS3 IF NO EJTO
  2675. SFA EJT READ EJT ENTRY
  2676. CRD CN
  2677. LDD CN+4 CHECK JOB STATUS
  2678. LPN 76
  2679. LMN EXJS*2
  2680. NJN PRS5 IF JOB NOT AT CONTROL POINT
  2681. MONITOR CCAM MOVE TO USER-S CP
  2682. LDD CM+1
  2683. ZJN PRS6 IF MOVE SUCCESSFUL
  2684. DELAY 4*10 DELAY FOR 4 MILLISECONDS
  2685. SOD S1
  2686. ZJN PRS5 IF RETRY COMPLETE
  2687. LDD TN RESET CONTROL POINT NUMBER
  2688. UJN PRS4 RETRY CONTROL POINT MOVE
  2689.  
  2690. PRS5 LJM IDS2 DROP PP
  2691.  
  2692. PRS6 LDD IR+1
  2693. SCN 77
  2694. LMD TN
  2695. STD IR+1
  2696. LDD CP READ JSN FROM EJT ENTRY
  2697. ADN TFSW
  2698. CRD CM
  2699. SFA EJT,CM
  2700. CRD CM
  2701. LDD CN CHECK FOR SAME JOB
  2702. LMD CM
  2703. NJN PRS5 IF DIFFERENT JOB
  2704. LDD CN+1
  2705. LMD CM+1
  2706. NJN PRS5 IF DIFFERENT JOB
  2707. PRS7 LDD IR+2 GET FUNCTION CODE
  2708. SHN 1
  2709. STD CM
  2710. LDM TRQP,CM SET/GET PROCESSOR ADDRESS
  2711. ZJN PRS5 IF FUNCTION NOT DEFINED
  2712. STM IDSA
  2713. LJM PRSX EXIT
  2714. TRQP SPACE 4,10
  2715. ** TRQP - TABLE OF REQUEST PROCESSORS.
  2716. * ENTRY = 2 WORDS.
  2717. * INDEXED BY REQUEST NUMBER * 2.
  2718. *
  2719. *T, 12/ ADDR, 12/ OVLN
  2720. * ADDR ADDRESS OF REQUEST PROCESSOR.
  2721. * OVLN OVERLAY NUMBER.
  2722.  
  2723.  
  2724. TRQP INDEX
  2725.  
  2726. * FUNCTION *FASF* MUST REMAIN FIRST.
  2727.  
  2728. FCN /1DS/FASF,0
  2729.  
  2730.  
  2731. FCN /1DS/AEJF,AEJ
  2732. FCN /1DS/CLRF,CLR
  2733. FCN /1DS/CKPF,CKP
  2734. FCN /1DS/DCMF,DCM
  2735. FCN /1DS/DIAF,DIA
  2736. FCN /1DS/DISF,DIS
  2737. FCN /1DS/DSPF,DSP
  2738. FCN /1DS/DSSF,DSS
  2739. FCN /1DS/DWNF,DWN
  2740. FCN /1DS/UPCF,DWN
  2741. FCN /1DS/EBRF,EBR
  2742. FCN /1DS/ECBF,ECB
  2743. FCN /1DS/ECPF,ECP
  2744. FCN /1DS/EUFF,EUF
  2745. FCN /1DS/IASF,IAS
  2746. FCN /1DS/ICJF,ICJ
  2747. FCN /1DS/IDLF,IDD
  2748. FCN /1DS/IJCF,IJC
  2749. FCN /1DS/ILJF,ILJ
  2750. FCN /1DS/ISCF,ISC
  2751. FCN /1DS/ISSF,ISS
  2752. FCN /1DS/ITJF,ITJ
  2753. FCN /1DS/KIJF,KIJ
  2754. FCN /1DS/LODF,LOD
  2755. FCN /1DS/MSGF,MSG
  2756. FCN /1DS/OCMF,OCM
  2757. FCN /1DS/RSTF,RST
  2758. FCN /1DS/SAMF,SAM
  2759. FCN /1DS/SCAF,SCA
  2760. FCN /1DS/SCDF,SCD
  2761. FCN /1DS/SCHF,IAS
  2762. FCN /1DS/SPNF,SPD
  2763. FCN /1DS/SERF,SER
  2764. FCN /1DS/TPSF,TPS
  2765. FCN /1DS/VMSF,VMS
  2766. FCN /1DS/VSAF,VSA
  2767. FCN /1DS/WARF,WAR
  2768.  
  2769. INDEX /1DS/MAXF*2
  2770. SPACE 4,10
  2771. IFP HERE REMOTE CODE FOR *SFA* MACRO
  2772. SPACE 4,10
  2773.  
  2774. OVERFLOW PPFW,EPFW
  2775. EJECT
  2776. OVERLAY (MASS STORAGE FUNCTIONS.)
  2777. 2DA SPACE 4,10
  2778. ** COMMON DECK EQUIVALENCES.
  2779.  
  2780.  
  2781. CKSS EQU /LSD/CKSS
  2782. DISS EQU /LSD/DISS
  2783. DKSS EQU /LSD/DKSS
  2784. MNEC EQU /LSD/MNEC
  2785. N4SS EQU /LSD/N4SS
  2786. STVE EQU /LSD/STVE
  2787.  
  2788. MISD EQU /MMF/MISD
  2789. MXMF EQU /MMF/MXMF
  2790. CIO SPACE 4,10
  2791. ** CIO - CHECK INITIALIZE OPTIONS.
  2792. *
  2793. * ENTRY (MS) = MST POINTER.
  2794. *
  2795. * EXIT (IR+3) = INITIALIZE FLAG BIT NUMBER.
  2796. *
  2797. * USES CM - CM+4.
  2798.  
  2799.  
  2800. CIO SUBR ENTRY/EXIT
  2801. LDN LIAL
  2802. CIOA LMN 0
  2803. NJN CIOX IF NOT *AL* OPTION
  2804. LDD MS
  2805. SHN 3
  2806. ADN MDGL FETCH CURRENT RECORDING MODE FROM MST
  2807. CRD CM
  2808. LDD CM+1
  2809. SHN -13 FORM *HT* OR *FT* OPTION
  2810. ADN LIFD
  2811. ERRNZ LIFD+1-LIHD CODE DEPENDS ON VALUE
  2812. STD IR+3
  2813. UJN CIOX RETURN
  2814. CSD SPACE 4,15
  2815. ** CSD - CHECK SHARED DEVICE.
  2816. *
  2817. * ENTRY (MS-4 - MS) = EST ENTRY OF DEVICE.
  2818. *
  2819. * EXIT (A) = 0 IF NOT SHARED DEVICE, OR IF INITIALIZE NOT
  2820. * SET ON SHARED DEVICE FOR ANY MAINFRAME.
  2821. * (A) .NE. 0 OTHERWISE, OR IF *EXTENDED MEMORY* ERROR.
  2822. *
  2823. * USES T3, CM - CM+4, CN - CN+4.
  2824. *
  2825. * CALLS DFM.
  2826. *
  2827. * MACROS MONITOR.
  2828.  
  2829.  
  2830. CSD6 LDN 0
  2831.  
  2832. CSD SUBR ENTRY/EXIT
  2833. LDD MS-4
  2834. SHN 21-11
  2835. PJN CSD6 IF NOT SHARED
  2836. SHN 21-4-21+11
  2837. MJN CSD6 IF INDEPENDENT SHARED DEVICE
  2838. LDK MMFL SET MACHINE ID OF THIS MACHINE
  2839. CRD CM
  2840. LDD CM
  2841. STM CSDA
  2842. LDD MS READ MST
  2843. SHN 3
  2844. ADN SDGL
  2845. CRD CN
  2846. LDN MXMF
  2847. STD T3
  2848. CSD1 LDD CN+1 SET EXTENDED MEMORY ADDRESS
  2849. ADN STLL
  2850. STD CM+4
  2851. SHN -14
  2852. ADD CN
  2853. LMC RECS*1000 SET UP MONITOR REQUEST
  2854. STD CM+3
  2855. LDD MA SET CM ADDRESS FOR READ
  2856. STD CM+2
  2857. LDN 1-1 SET WORD COUNT
  2858. * SHN 6
  2859. STD CM+1
  2860. MONITOR ECSM
  2861. LDD CM+1 CHECK RETURN STATUS
  2862. SHN 21-13
  2863. PJN CSD4 IF NO ERROR
  2864. LDD CM+3
  2865. SHN 14
  2866. LMD CM+4
  2867. ZJN CSD4 IF NO RETRY ERROR
  2868. LDC =C*EXTENDED MEMORY ERROR.*
  2869. CSD2 RJM DFM
  2870. LDN 77
  2871. CSD3 LJM CSDX EXIT
  2872.  
  2873. CSD4 LDD MA
  2874. CRD CM
  2875. LDD CM+2 CHECK MACHINE ID
  2876. LMC *
  2877. CSDA EQU *-1
  2878. ZJN CSD5 IF THIS MACHINE
  2879. LDD CM CHECK INITIALIZE BITS
  2880. SCN 77
  2881. * LPC MLFPR+MLIAL+MLIHD+MLIFD+MLIPF+MLIQF
  2882. ERRNZ MLFPR+MLIAL+MLIHD+MLIFD+MLIPF+MLIQF-7700
  2883. ZJN CSD5 IF NO INITIALIZE BIT SET
  2884. LDC =C*INITIALIZE PENDING ON THIS DEVICE.*
  2885. UJN CSD2 SEND ERROR MESSAGE TO DAYFILE
  2886.  
  2887. CSD5 LDN LLLL ADVANCE TO NEXT MAINFRAME
  2888. RAD CN+1
  2889. SHN -14
  2890. RAD CN
  2891. SOD T3
  2892. ZJN CSD3 IF ALL MAINFRAMES
  2893. LJM CSD1 PROCESS NEXT MAINFRAME
  2894. CSM SPACE 4,15
  2895. ** CSM - CHECK SHARED RMS.
  2896. *
  2897. * ENTRY (T5) = EST ORDINAL.
  2898. * (MS) = MST POINTER.
  2899. * (IR+4) BIT 2**12 = PRESET FOR SHARED RMS, IF SET.
  2900. *
  2901. * EXIT (A) = 0, IF NOT INDEPENDENT SHARED DEVICE.
  2902. * (A) .GT. 0, IF INDEPENDENT SHARED DEVICE.
  2903. * (A) = NEGATIVE, IF INCORRECT CALL.
  2904. *
  2905. * USES T6, T7, CM - CM+4.
  2906. *
  2907. * CALLS CDC, RDS, SMI, WDS.
  2908. *
  2909. * MACROS ENDMS, SETMS, SFA, SMSTF.
  2910.  
  2911.  
  2912. CSM7 LDD IR+4
  2913. SHN 21-12
  2914. MJN CSMX IF INCORRECT PRESET
  2915. LDN 0
  2916.  
  2917. CSM SUBR ENTRY/EXIT
  2918. SFA EST,T5
  2919. ADK EQDE
  2920. CRD CM
  2921. LDD CM
  2922. SHN 21-4
  2923. PJN CSM7 IF NOT ISD
  2924. SHN 5+21-10
  2925. PJN CSM4 IF NON-REMOVABLE DEVICE
  2926. CSM1 LDD IR+4
  2927. SHN 21-12
  2928. PJN CSM2 IF MOUNT ON ISD WITHOUT PRESET
  2929. SMSTF GPRS SET ISD PRESET BIT FOR DEVICE
  2930. CSM2 LDN 1
  2931. CSM3 UJN CSMX RETURN
  2932.  
  2933. CSM4 SHN 10-3
  2934. PJN CSM1 IF DEVICE NOT PREVIOUSLY RECOVERED
  2935. SETMS IO,(DE,NR)
  2936. LDD MS FETCH LABEL TRACK FROM MST
  2937. SHN 3
  2938. ADN ALGL
  2939. CRD CM
  2940. LDD CM+1
  2941. ZJN CSM1 IF LABEL TRACK UNDEFINED
  2942. STD T6
  2943. LDN 0
  2944. STD T7
  2945. LDC BFMS READ LABEL SECTOR
  2946. RJM RDS
  2947. PJN CSM6 IF NO READ ERROR
  2948. ENDMS
  2949. LCN 1
  2950. CSM5 UJN CSM3 RETURN
  2951.  
  2952. CSM6 RJM SMI SET MACHINE INDEX
  2953. STD CM
  2954. SHN 2
  2955. RAD CM
  2956. LDM DISS-5+3,CM
  2957. SCN 2 CLEAR UNLOAD STATUS
  2958. STM DISS-5+3,CM
  2959. RJM CDC COMPUTE LABEL CHECKSUM
  2960. STM CKSS
  2961. LDC BFMS+WLSF REWRITE LABEL SECTOR
  2962. RJM WDS
  2963. ENDMS
  2964. LDN GLGL-ALGL
  2965. STD T7
  2966. LDD MS UPDATE GLOBAL MST
  2967. SHN 3
  2968. ADN ALGL
  2969. CWM N4SS+5*ALGL,T7
  2970. UJN CSM5 RETURN
  2971. C0S SPACE 4,10
  2972. ** C0S - CALL *0SD*.
  2973. *
  2974. * ENTRY (A) = 0 IF SPIN UP ALL UNITS.
  2975. * = 20B IF SPIN DOWN ALL UNITS.
  2976. *
  2977. * EXIT (A) = *0SD* PROCESSOR ENTRY ADDRESS.
  2978.  
  2979.  
  2980. C0S SUBR ENTRY/EXIT
  2981. STM L0SD-2
  2982. EXECUTE 0SD,L0SD
  2983. UJN C0SX RETURN
  2984. SFA SPACE 4,15
  2985. ** SFA - SEARCH FOR FAST ATTACH FILE.
  2986. *
  2987. * ENTRY (T5) = EST ORDINAL.
  2988. * SEARCHES THE FNT FOR ANY FILE OF TYPE
  2989. * *FAFT* ASSIGNED TO THIS EQUIPMENT.
  2990. *
  2991. * EXIT (A) = 0 IF NO FILE FOUND.
  2992. * (A) = 1 IF *FAFT* TYPE FILE FOUND ON EQUIPMENT.
  2993. *
  2994. * USES QA, FN - FN+4, FS - FS+4.
  2995. *
  2996. * MACROS SFA.
  2997.  
  2998.  
  2999. SFA SUBR ENTRY/EXIT
  3000. LDN 0
  3001. STD QA
  3002. LDN FNTP READ FNT POINTER
  3003. CRD FN
  3004. SFA1 AOD QA ADVANCE FNT ORDINAL
  3005. LMD FN+2
  3006. ZJN SFAX IF END OF FNT
  3007. SFA FNT,QA READ FNT ENTRY
  3008. CRD FS
  3009. LDD FS+4 CHECK FILE TYPE
  3010. SHN -6
  3011. LMN FAFT
  3012. NJN SFA1 IF NOT FAST ATTACH
  3013. SFA FNT,QA READ FST ENTRY
  3014. ADN FSTG
  3015. CRD FS
  3016. LDD FS CHECK EQUIPMENT ASSIGNMENT
  3017. LMD T5
  3018. NJN SFA1 IF NOT SAME EQUIPMENT
  3019. LDN 1
  3020. UJN SFAX EXIT WITH FAST ATTACH FOUND
  3021. SFD SPACE 4,10
  3022. ** SFD - SEARCH FOR DAYFILES.
  3023. *
  3024. * ENTRY (IR+4) = EST ORDINAL.
  3025. *
  3026. * EXIT (A) = 0, IF SYSTEM DAYFILES ON DEVICE.
  3027. *
  3028. * USES CM - CM+4, T1 - T5.
  3029.  
  3030.  
  3031. SFD SUBR ENTRY/EXIT
  3032. LDK DFPP
  3033. CRD T1
  3034. LDN 3*3+2 SET DAYFILE EST OFFSET
  3035. STD T3
  3036. SFD1 LDD T1
  3037. SHN 14
  3038. LMD T2
  3039. ADD T3
  3040. CRD CM
  3041. LDD CM
  3042. LMD IR+4
  3043. ZJN SFDX IF DAYFILE ON EQUIPMENT
  3044. LCN 3
  3045. RAD T3
  3046. PJN SFD1 IF MORE DAYFILES TO CHECK
  3047. UJN SFDX RETURN
  3048. SUL SPACE 4,10
  3049. ** SUL - SCAN UNIT LIST.
  3050. *
  3051. * ENTRY (T3) = CONTROL MODULE NUMBER * 10B.
  3052. * (AB+4) = ISMD DEVICE MST ADDRESS/10.
  3053. *
  3054. * EXIT (A) = 0 IF THE ISMD CONTAINS A UNIT ON THE *CM*.
  3055. *
  3056. * USES T4, T5, FN - FN+4.
  3057.  
  3058.  
  3059. SUL SUBR ENTRY/EXIT
  3060. LDD AB+4 READ MST WORD *DDLL*
  3061. SHN 3
  3062. ADN DDLL
  3063. CRD FN
  3064. LDD FN
  3065. SHN 21-12
  3066. MJN SULX IF NULL EQUIPMENT
  3067. LDD FN GET NUMBER OF UNITS - 1
  3068. LPN 7
  3069. STD T4
  3070. LDN FN+4 INITIALIZE UNIT LIST ADDRESS
  3071. STD T5
  3072. SUL1 LDI T5
  3073. LMD T3 COMPARE WITH CONTROL MODULE NUMBER
  3074. LPN 70
  3075. ZJN SULX IF NUMBER MATCHES
  3076. SOD T4
  3077. MJN SULX IF END OF UNITS
  3078. LDI T5
  3079. SHN 3-11
  3080. LMD T3 COMPARE WITH CONTROL MODULE NUMBER
  3081. LPN 70
  3082. ZJN SULX IF NUMBER MATCHES
  3083. SOD T4
  3084. MJN SULX IF END OF UNITS
  3085. SOD T5
  3086. UJN SUL1 CHECK NEXT UNIT
  3087. UDD SPACE 4,10
  3088. ** UDD - UP *DD* DRIVE.
  3089. *
  3090. * ENTRY (AB - AB+4) = EST ENTRY.
  3091. *
  3092. * EXIT (A) .NE. 0 IF DRIVE SPUN UP.
  3093. * (A) = 0 IF CONTROL MODULE DOWN.
  3094. *
  3095. * USES T1, T3, CN - CN+4.
  3096. *
  3097. * CALLS COS, SUL.
  3098.  
  3099.  
  3100. UDD2 RJM C0S SPIN UP *DD* DRIVE
  3101. STM UDDA
  3102. RJM *
  3103. UDDA EQU *-1
  3104. LDN 1
  3105.  
  3106. UDD SUBR ENTRY/EXIT
  3107. LDN ESTP
  3108. CRD CN
  3109. LDD CN+2 SET LAST EST ORDINAL + 1
  3110. STD T1
  3111. UDD1 SOD T1
  3112. ZJN UDD2 IF END OF EST
  3113. SFA EST
  3114. CRD CN
  3115. LDD CN+3
  3116. LMC 2RCM
  3117. NJN UDD1 IF NOT *CM*
  3118. LDD CN
  3119. LPN 3 CHECK DEVICE STATE
  3120. LMN 3
  3121. NJN UDD1 IF NOT DOWN
  3122. LDD CN+4
  3123. SHN 3-11 SAVE EQUIPMENT NUMBER
  3124. STD T3
  3125. RJM SUL SCAN UNIT LIST
  3126. NJN UDD1 IF NO UNIT ON THIS *CM*
  3127. UJP UDDX RETURN
  3128. TITLE FUNCTION PROCESSORS.
  3129. DCM SPACE 4,10
  3130. *** FUNCTION DCMF - DOWN CONTROL MODULE.
  3131. *
  3132. * ENTRY (IR+4) = CONTROL MODULE EQUIPMENT NUMBER.
  3133. *
  3134. * NOTE IF ANY ISMD DEVICE WHICH IS NOT DOWN HAS A UNIT ON
  3135. * THE SPECIFIED CONTROL MODULE, A NEGATIVE REPLY IS
  3136. * RETURNED TO *DSD* AND THE CONTROL MODULE IS NOT
  3137. * DOWNED.
  3138.  
  3139.  
  3140. DCM3 LDN DWES *SEQM* SUBFUNCTION
  3141. STD CM+2
  3142. LDD IR+4 EST ORDINAL
  3143. STD CM+1
  3144. MONITOR SEQM SET EQUIPMENT DOWN
  3145.  
  3146. DCM ENTRY ENTRY/EXIT
  3147. LDN ESTP GET LAST MASS STORAGE ORDINAL + 1
  3148. CRD CN
  3149. SFA EST,IR+4 GET *CM* EST ENTRY
  3150. CRD CM
  3151. LDD CM+4 SAVE EQUIPMENT NUMBER
  3152. SHN 3-11
  3153. STD T3
  3154. DCM1 SOD CN+3
  3155. ZJN DCM3 IF END OF EST
  3156. SFA EST
  3157. ADK EQDE FETCH EST ENTRY
  3158. CRD AB
  3159. LDD AB+3 CHECK DEVICE TYPE
  3160. LMC 2RDD
  3161. ZJN DCM2 IF ISD (TYPE *DD*)
  3162. LMN 1RG&1RD
  3163. NJN DCM1 IF NOT TYPE *DG*
  3164. DCM2 LDD AB
  3165. LPN 3 CHECK DEVICE STATE
  3166. LMN 3
  3167. ZJN DCM1 IF DEVICE DOWN
  3168. RJM SUL SCAN UNIT LIST
  3169. NJN DCM1 IF NO UNIT ON THIS *CM*
  3170. LDN 1 INDICATE *CM* NOT DOWNED
  3171. RJM SRD SAVE REPONSE TO *DSD*
  3172. LJM DCMX RETURN
  3173. OCM SPACE 4,10
  3174. *** FUNCTION OCMF - ON CONTROL MODULE.
  3175. *
  3176. * ENTRY (IR+4) = CONTROL MODULE EST ORDINAL.
  3177.  
  3178.  
  3179. * CHECK FOR FIRMWARE RELOAD COMPLETION.
  3180.  
  3181. OCM1 LMN 1&3
  3182. NJN OCM2 IF CONTROL MODULE NOT IDLE
  3183. LDD FN+2
  3184. SHN 0-12
  3185. ZJN OCM2 IF FIRMWARE RELOAD COMPLETE
  3186. LDK ZERL SET 1 SECOND TIMED RECALL PARAMETERS
  3187. CRD CM
  3188. LDM IDSC RESTORE ORIGINAL CONTENTS
  3189. STD IR+2
  3190. LDD MA SET PP INPUT REGISTER IMAGE
  3191. CWD IR
  3192. MONITOR RECM ENTER RECALL AND DROP PP
  3193. LJM PPR EXIT TO PP RESIDENT
  3194.  
  3195. * SET CONTROL MODULE STATUS = ON.
  3196.  
  3197. OCM2 LDN ONES *SEQM* SUBFUNCTION
  3198. STD CM+2
  3199. MONITOR SEQM
  3200.  
  3201. OCM ENTRY ENTRY
  3202. LDD IR+4
  3203. STD CM+1
  3204. SFA EST READ CONTROL MODULE EST ENTRY
  3205. ADK EQDE
  3206. CRD CN
  3207. ADK EQAE-EQDE
  3208. CRD FN
  3209. STD CM+4 SAVE ADDRESS OF *EQAE* WORD
  3210. SHN -14
  3211. STD CM+3
  3212. LDD CN
  3213. LPN 3
  3214. LMN 3
  3215. NJP OCM1 IF CONTROL MODULE NOT DOWN
  3216.  
  3217. * IDLE CONTROL MODULE FOR FIRMWARE LOAD.
  3218.  
  3219. LDN IDES SET *SEQM* SUBFUNCTION
  3220. STD CM+2
  3221. MONITOR SEQM
  3222.  
  3223. * SET CONTROLWARE LOAD FLAG IN EST ENTRY.
  3224.  
  3225. LDN 1 SET REQUEST COUNT
  3226. STD CM+1
  3227. LDD MA PLACE *UTEM* PARAMETERS IN MB
  3228. CWM OCMA,ON
  3229. MONITOR UTEM
  3230.  
  3231. * USE THIS PP TO INITIATE CONTROLWARE LOAD.
  3232.  
  3233. LDM IDSC SET FUNCTION CODE
  3234. SCN 77 PRESERVE BUFFER LOCK/LOGGING CONTROL BITS
  3235. LMN /1DS/ILJF
  3236. STD IR+2
  3237. LDC 2000 SET *OCMF* CALL FLAG
  3238. RAD IR+4
  3239. LDD IA REWRITE PP INPUT REGISTER
  3240. CWD IR
  3241. EXECUTE 1DS,=
  3242. LJM PPR EXIT TO PP RESIDENT
  3243.  
  3244.  
  3245. OCMA VFD 1/0,5/0,6/1,6/43,42/1 *UTEM* REQUEST
  3246. RST SPACE 4,10
  3247. *** FUNCTION RSTF - RESTORE PARITY PROTECTION FOR DAS DEVICE.
  3248. *
  3249. * ENTRY (IR+4) = DEVICE EST ORDINAL.
  3250.  
  3251.  
  3252. RST ENTRY ENTRY/EXIT
  3253. LDD IR+4
  3254. STD T5
  3255. SFA EST GET EST ENTRY
  3256. ADK EQDE
  3257. CRD CM
  3258.  
  3259. * CHECK DEVICE TYPE.
  3260.  
  3261. LDN TRSTL CHECK DEVICE TYPE
  3262. STD T1
  3263. RST1 SOD T1
  3264. MJN RSTX IF DEVICE DOES NOT SUPPORT RESTORE
  3265. LDD CM+3
  3266. LMM TRST,T1
  3267. NJN RST1 IF DEVICE TYPE DOES NOT MATCH
  3268.  
  3269. * CALCULATE *PUT* ENTRY ADDRESS.
  3270.  
  3271. LDD CM+4 GET *PUT* ORDINAL
  3272. SHN 3
  3273. ADN DILL
  3274. CRD CM
  3275. LDD CM+2
  3276. SHN PUTLS
  3277. STM RSTA+1
  3278. SHN -14
  3279. RAM RSTA
  3280. LDC BIOL GET POINTER TO BUFFERED I/O TABLES
  3281. CRD CM
  3282. LDD CM+1 FETCH *PUT* TABLE POINTER WORD
  3283. SHN 14
  3284. LMD CM+2
  3285. ADN PUTP
  3286. CRD CM
  3287. LDD CM+3 FWA OF FIRST *PUT* ENTRY
  3288. LPN 77
  3289. SHN 14
  3290. ADD CM+4
  3291. RSTA ADC 0 (*PUT* ORDINAL SHIFTED BY *PUTLS*)
  3292.  
  3293. * SET *RSPF* SPECIAL REQUEST FLAG IN *PUT*.
  3294.  
  3295. STD CM+4 SET ADDRESS OF *PUT* ENTRY
  3296. SHN -14
  3297. STD CM+3
  3298. LDN 1 SET NUMBER OF REQUESTS
  3299. STD CM+1
  3300. LDD MA STORE *UTEM* REQUEST IN MESSAGE BUFFER
  3301. CWM RSTB,ON
  3302. MONITOR UTEM SET FLAG FOR BUFFERED DEVICE DRIVER
  3303. UJP RSTX RETURN
  3304.  
  3305.  
  3306. RSTB VFD 1/0,5/PILL,6/1,6/RSPF,42/1 *UTEM* REQUEST
  3307.  
  3308. PURGMAC TBLM
  3309.  
  3310. TBLM MACRO TY
  3311. TBLM IFEQ BF_TY,7,1
  3312. CON 2R_TY
  3313. TBLM ENDIF
  3314. TBLM ENDM
  3315.  
  3316. TRST BSS 0 DEVICES ALLOWED FOR RESTORE
  3317. LIST G
  3318. TBL "MSEQ"
  3319. LIST *
  3320. TRSTL EQU *-TRST LENGTH OF TABLE
  3321.  
  3322. PURGMAC TBLM
  3323. SCA SPACE 4,10
  3324. *** FUNCTION SCAF - SET/CLEAR BIT IN MST WORD ACGL.
  3325. *
  3326. * ENTRY (IR+3) = BIT NUMBER.
  3327. * (IR+4) = EST ORDINAL.
  3328. * BIT 2**11 OF (IR+3) SET IF BIT TO BE CLEARED.
  3329.  
  3330.  
  3331. SCA ENTRY ENTRY/EXIT
  3332. LDD IR+4 SET EST ORDINAL
  3333. STD T5
  3334. LDD IR+3 CHECK REQUEST
  3335. LPC 4000
  3336. ZJN SCA1 IF BIT TO BE SET
  3337. LMC -0
  3338. SCA1 LMD IR+3 SET/CLEAR GLOBAL BIT
  3339. RJM TGB
  3340. UJN SCAX RETURN
  3341. SCD SPACE 4,10
  3342. *** FUNCTION SCDF - SET/CLEAR FLAGS FOR RMS DEVICES.
  3343. *
  3344. * ENTRY (IR+3) = *ONES* TO SET DEVICE *ON*.
  3345. * *IDES* TO SET DEVICE *IDLE*.
  3346. * *OFES* TO SET DEVICE *OFF*.
  3347. * *DWES* TO SET DEVICE *DOWN*.
  3348. * (IR+4) = EST ORDINAL.
  3349.  
  3350.  
  3351. SCD14 LDN 1 RETURN NEGATIVE RESPONSE
  3352. RJM SRD
  3353.  
  3354. SCD ENTRY
  3355. LDD IR+4 SAVE EST ORDINAL
  3356. STM L0SD-1
  3357. STM SCDA+2
  3358. SFA EST FETCH EST ENTRY
  3359. ADK EQDE
  3360. CRD AB
  3361. LDD IR+3
  3362. LMN DWES
  3363. NJN SCD2 IF NOT SETTING DEVICE DOWN
  3364. RJM SFD SEARCH FOR DAYFILES ON DEVICE
  3365. SCD1 ZJN SCD14 IF DAYFILES PRESENT
  3366. UJN SCD5 CONTINUE DOWN PROCESSING
  3367.  
  3368. SCD2 LDN TSCDL CHECK DEVICE TYPE FOR NON-*LDAM* DEVICE
  3369. STD T1
  3370. SCD3 SOD T1
  3371. MJN SCD4 IF DRIVE SHOULD NOT BE SPUN UP
  3372. LDD AB+3
  3373. LMM TSCD,T1
  3374. NJN SCD3 IF DEVICE TYPE DOES NOT MATCH
  3375. RJM UDD SPIN UP DRIVE
  3376. ZJN SCD1 IF SPIN-UP ERROR
  3377. SCD4 LDD AB
  3378. SHN 21-6
  3379. MJN SCD9 IF DEVICE UNAVAILABLE
  3380. SCD5 LDD IR+3
  3381. SBN OFES
  3382. PJN SCD8 IF SETTING DEVICE *OFF* OR *DOWN*
  3383. ADN OFES-ONES
  3384. ZJN SCD6 IF SETTING DEVICE *ON*
  3385. LDN ONFC&IDFC
  3386. SCD6 LMN ONFC
  3387. SCD7 SHN 6
  3388. STM SCDA+3
  3389. RJM LKC LOG KEYBOARD COMMAND
  3390. LDD IR+1
  3391. LPN 77
  3392. RAM SCDA+1
  3393. LDD IA CALL *1MV* TO PROCESS REQUEST
  3394. CWM SCDA,ON
  3395. EXECUTE 1MV,=
  3396. LJM PPR EXIT TO PPR TO LOAD *1MV*
  3397.  
  3398. SCD8 ZJN SCD10 IF *OFF* REQUESTED
  3399. LDK OFES SET DEVICE *OFF* TO ELIMINATE ACTIVITY
  3400. STD CM+2
  3401. LDD IR+4
  3402. STD CM+1
  3403. MONITOR SEQM
  3404. SCD9 UJN SCD11 SET DEVICE *DOWN*
  3405.  
  3406. SCD10 LDD AB
  3407. LPN 3
  3408. LMN 3
  3409. NJN SCD11 IF NOT CURRENTLY DOWN
  3410. LDN OFFC
  3411. UJN SCD7 CALL *1MV* TO GO FROM DOWN TO OFF
  3412.  
  3413. SCD11 LDD IR+3 *SEQM* SUBFUNCTION
  3414. STD CM+2
  3415. LDD IR+4 EST ORDINAL
  3416. STD CM+1
  3417. MONITOR SEQM CHANGE EQUIPMENT STATE
  3418. LDD CM+1
  3419. NJN SCD12 IF DEVICE STATE WAS CHANGED
  3420. LDD AB RESTORE ORIGINAL DEVICE STATE
  3421. LPN 3
  3422. STD CM+2
  3423. ERRNZ ONES CODE DEPENDS ON VALUE
  3424. ERRNZ IDES-1 CODE DEPENDS ON VALUE
  3425. ERRNZ OFES-2 CODE DEPENDS ON VALUE
  3426. LDD IR+4 EST ORDINAL
  3427. STD CM+1
  3428. MONITOR SEQM
  3429. LJM SCD14 RETURN
  3430.  
  3431. SCD12 LDD IR+3
  3432. LMK ONES
  3433. NJN SCD13 IF NOT TURNING DEVICE ON
  3434. LPN 2
  3435. ERRNZ ONES CODE DEPENDS ON VALUE
  3436. ERRNZ IDES-1 CODE DEPENDS ON VALUE
  3437. NJN SCD10 IF NOT ATTEMPTING TO *ON* OR *IDLE* DEVICE
  3438. LDD AB
  3439. SHN -3 CHECK EQUIPMENT STATUS
  3440. LPN 41
  3441. NJN SCD13 IF NOT INACTIVE NON-REMOVABLE DEVICE
  3442. LDC 4000+LUNL
  3443. STD IR+3
  3444. RJM .TPS PROCESS MOUNT REQUEST
  3445. SCD13 LDN ZERL
  3446. CRD CM
  3447. ADN PFNL+1-ZERL CLEAR *CMS* TIMEOUT
  3448. CWD CM
  3449. LJM SCDX RETURN
  3450.  
  3451.  
  3452. SCDA VFD 18/3R1MV,42/0
  3453.  
  3454. TSCD BSS 0 DEVICES TO SPIN UP ON *ON*
  3455. CON 2RDD 834
  3456. CON 2RDG 836
  3457. CON 2RDF 887 (4KB SECTOR)
  3458. CON 2RDH 887 (16KB SECTOR)
  3459.  
  3460. TSCDL EQU *-TSCD LENGTH OF TABLE
  3461. SPD SPACE 4,10
  3462. *** FUNCTION SPNF - SPIN MASS STORAGE DRIVE.
  3463. *
  3464. * ENTRY (IR+3) = 0 IF SPIN UP.
  3465. * .GT. 0 IF SPIN DOWN.
  3466. * (IR+4) = DEVICE EST ORDINAL.
  3467.  
  3468.  
  3469. SPD ENTRY ENTRY/EXIT
  3470. LDD IR+3
  3471. ZJN SPD1 IF SPIN UP
  3472. LDN 20
  3473. SPD1 RJM C0S CALL *0SD*
  3474. STM SPDA SAVE *0SD* PROCESSOR ENTRY ADDRESS
  3475. LDD IR+4 SET EST ORDINAL
  3476. STM L0SD-1
  3477. RJM * SPIN UP/DOWN MASS STORAGE DEVICE
  3478. SPDA EQU *-1 (*0SD* PROCESSOR ENTRY ADDRESS)
  3479. UJN SPDX RETURN
  3480. TPS SPACE 4,20
  3481. *** FUNCTION TPSF - TOGGLE PF STATUS.
  3482. *
  3483. * PROCESS COMMAND FOR *DSD* -
  3484. * *INITIALIZE*, *MOUNT*, OR *UNLOAD*.
  3485. *
  3486. * ENTRY (IR+3) = 1/M, 11/TYPE.
  3487. * M = 1, IF *MOUNT* REQUEST.
  3488. * = 0, IF *UNLOAD* REQUEST.
  3489. * TYPE = LUNL, IF *MOUNT* OR *UNLOAD*.
  3490. * (IR+4) = 1/, 1/S, 10/EQ.
  3491. * S = 1, IF SHARED RMS IS PRESET.
  3492. * EQ = EST ORDINAL, IF NOT *INITIALIZE*.
  3493. * = UNUSED, IF *INITIALIZE*.
  3494. * (PARAMETER WORD) = 12/EQ1,12/EQ2,12/EQ3,12/EQ4,12/EQ5.
  3495. * (USED ONLY FOR *INITIALIZE*.)
  3496. * THE FIRST EQUIPMENT THAT EQUALS
  3497. * ZERO ENDS THE LIST OF EQUIPMENTS.
  3498.  
  3499.  
  3500. * PROCESS *MOUNT* OR *UNLOAD* OF ONE EQUIPMENT.
  3501.  
  3502. TPS14 LDD IR+4 GET EST ENTRY
  3503. LPC 777
  3504. STD T5
  3505. STM L0SD-1
  3506. SFA EST
  3507. ADK EQDE
  3508. CRD MS-4
  3509. *
  3510. * CHECK IF OPTICAL DISK DRIVE.
  3511. *
  3512. LDD MS-1
  3513. LMC 2ROD OPTICAL DISK
  3514. NJN TPS14.1 IF NOT OPTICAL DISK
  3515. RJM DOD DISMOUNT OPTICAL DISK
  3516. LJM TPSX RETURN TO CALLER
  3517.  
  3518. TPS14.1 LDD IR+3
  3519. SHN 0-13
  3520. ZJP TPS20 IF UNLOAD REQUEST
  3521. LDD MS-4
  3522. SHN 21-3
  3523. PJN TPS15 IF DEVICE INACTIVE
  3524. SHN 4+21-10
  3525. PJN TPS16 IF NON-REMOVABLE DEVICE
  3526. TPS15 LDD MS
  3527. SHN 3
  3528. ADN STLL
  3529. CRD CM
  3530. LDD CM CHECK LOCAL STATUS
  3531. LPN MLDUL
  3532. ZJN TPS19 IF DEVICE NOT UNLOADED
  3533. SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
  3534. TPS16 RJM CSM
  3535. MJN TPS17 IF BAD CALL
  3536. NJN TPS18 IF INDEPENDENT SHARED DEVICE MOUNT
  3537. RJM CSD CHECK EXTENDED MEMORY MMF SHARED DEVICE
  3538. TPS17 NJN TPS21 IF DEVICE CANNOT BE RECOVERED
  3539. TPS18 CMSTF LDUL CLEAR DEVICE UNLOADED STATUS
  3540. CMSTF GUNL CLEAR GLOBAL UNLOAD
  3541. RJM C0S CALL 0SD
  3542. STM TPSB
  3543. RJM ** SPIN UP ISMD DEVICE
  3544. TPSB EQU *-1 (*0SD* PROCESSOR ENTRY ADDRESS)
  3545. TPS19 LCN 0
  3546. TPS20 LMN LUNL SET/CLEAR UNLOAD REQUESTED
  3547. RJM TLB
  3548. TPS21 LDK ZERL
  3549. CRD CM
  3550. ADN PFNL+1-ZERL CLEAR *CMS* TIMEOUT
  3551. CWD CM
  3552.  
  3553. TPS ENTRY ENTRY/EXIT
  3554. LDD IR+3 CHECK REQUEST
  3555. LPN 77
  3556. LMN LUNL
  3557. NJN TPS1 IF NOT MOUNT/UNLOAD
  3558. LJM TPS14 PROCESS MOUNT/UNLOAD
  3559.  
  3560. * PROCESS *INITIALIZE* OF MULTIPLE EQUIPMENTS.
  3561.  
  3562. TPS1 LDC /1DS/DSDL+/1DS/KBCML READ SPECIAL PARAMETER WORD
  3563. CRM TPSA,ON
  3564. LDD IR+3 SET REQUESTED INITIALIZE OPTION
  3565. RAM CIOA
  3566. LDC TPSA
  3567. STD T4
  3568. UJN TPS3 ENTER LOOP
  3569.  
  3570. TPS2 AOD T4
  3571. ADC -TPSA-4-1
  3572. ZJN TPSX IF END OF PARAMETER WORD
  3573. TPS3 LDI T4 GET NEXT EQUIPMENT
  3574. ZJN TPSX IF NO MORE EQUIPMENTS
  3575. STD T5
  3576. SFA EST GET EST ENTRY
  3577. ADK EQDE
  3578. CRD MS-4
  3579. LDD MS READ *STLL*
  3580. SHN 3
  3581. ADN STLL
  3582. CRD AB
  3583. RJM CIO CHECK INITIALIZE OPTIONS
  3584. LDD AB
  3585. LPC MLFPR+MLIAL+MLIHD+MLIFD
  3586. ZJN TPS7 IF FULL INITIALIZE NOT SET
  3587. LDD IR+3
  3588. SBN LIFD
  3589. MJN TPS2 IF REQUEST FOR PARTIAL INITIALIZE
  3590. ADN LIFD
  3591. RJM TLB SET INITIALIZE REQUEST
  3592. LDN LIAL
  3593. STD T2
  3594. LDD CM+1 CHECK REPLY
  3595. LPN 1
  3596. ZJN TPS4 IF INITIALIZE FLAG NOT ALREADY SET
  3597. LJM TPS9 CLEAR INITIALIZE FLAG
  3598.  
  3599. TPS4 LDD IR+3 CHECK FULL INITIALIZE FLAG
  3600. LMD T2
  3601. ZJN TPS5 IF FLAG JUST SET
  3602. LCN 0 CLEAR OTHER FULL INITIALIZE FLAGS
  3603. LMD T2
  3604. RJM TLB
  3605. TPS5 SOD T2 DECREMENT FLAG NUMBER
  3606. LMN LIFD-1
  3607. NJN TPS4 IF NOT END OF FULL INITIALIZE FLAG
  3608. TPS6 LJM TPS2 LOOP
  3609.  
  3610. TPS7 LDD IR+3
  3611. SBN LIQF
  3612. MJN TPS8 IF PRESERVED FILES NOT BEING INITIALIZED
  3613. RJM CSD CHECK SHARED DEVICE
  3614. NJN TPS6 IF NOT CLEAR FOR INITIALIZE
  3615. LDD IR+3
  3616. SBN LIPF
  3617. MJN TPS8 IF PERMANENT FILES NOT INVOLVED
  3618. RJM SFA
  3619. ZJN TPS8 IF NO FAST ATTACH FILES ON DEVICE
  3620. LDC =C*FAST ATTACH FILES ON DEVICE.*
  3621. RJM DFM
  3622. LJM TPSX RETURN
  3623.  
  3624. TPS8 LDD IR+3 SET INITIALIZE REQUEST
  3625. RJM TLB
  3626. LDD CM+1 CHECK REPLY
  3627. LPN 1
  3628. ZJN TPS10 IF INITIALIZE FLAG NOT ALREADY SET
  3629. TPS9 LCN 0 CLEAR INITIALIZE FLAG
  3630. LMD IR+3
  3631. RJM TLB
  3632. TPS10 LDD IR+3 CHECK REQUEST
  3633. SBN LIFD
  3634. MJN TPS12 IF NOT FULL INITIALIZE REQUEST
  3635. LDD AB
  3636. LPC MLIPF+MLIQF
  3637. ZJN TPS11 IF PARTIAL INITIALIZE NOT SET
  3638. CMSTF LIPF
  3639. CMSTF LIQF
  3640. TPS11 LDD AB+1
  3641. LPC MLIDF+MLIAF+MLIEF+MLIMF
  3642. ZJN TPS12 IF NO DAYFILE INITIALIZATION SET
  3643. CMSTF LIDF
  3644. CMSTF LIAF
  3645. CMSTF LIEF
  3646. CMSTF LIMF
  3647. TPS12 LDD MS REREAD INITIALIZE STATUS FROM MST
  3648. SHN 3
  3649. ADN STLL
  3650. CRD AB
  3651. LDD AB+1
  3652. SCN 77
  3653. SHN 6
  3654. LMD AB
  3655. SCN MLIRP+MLUNL+MLCKP+MLDUL+MRASD+MLPTU
  3656. ZJN TPS13 IF NO INITIALIZE FLAGS SET
  3657. LCN 0
  3658. TPS13 LMC -LIRP SET/CLEAR INITIALIZE PENDING
  3659. RJM TLB
  3660. LJM TPS2 LOOP
  3661.  
  3662.  
  3663. TPSA VFD 60/0 EQUIPMENT LIST
  3664. VMS SPACE 4,10
  3665. *** VMSF - VERIFY MASS STORAGE FUNCTION.
  3666. *
  3667. * ENTRY (IR+4) = EST ORDINAL.
  3668.  
  3669.  
  3670. VMS ENTRY ENTRY/EXIT
  3671. LDD IR+4 SET EST ORDINAL
  3672. STD T5
  3673. SFA EST
  3674. ADK EQDE
  3675. CRD CM
  3676. LDD CM+4 GET MST PARAMETERS
  3677. SHN 3
  3678. ADN SDGL
  3679. CRD CM
  3680. ADN STLL-SDGL
  3681. CRD AB
  3682. LDD AB+1 EXTRACT CURRENT ERROR STATUS
  3683. LPN 77
  3684. STD T7
  3685. LDD CM+4
  3686. LPN 1
  3687. ZJN VMS1 IF DEVICE NOT INTERLOCKED
  3688. LDD T7 CHECK CURRENT ERROR STATUS
  3689. LMN STVE
  3690. SHN 14
  3691. NJN VMS1 IF NOT INTERLOCKED WITH VALIDATION ERROR
  3692. SMSTF LPTU PROHIBIT TRT UPDATE BY *1RU*
  3693. LDN VEQS&VEIS
  3694. VMS1 LMK VEIS SET UP MONITOR CALL
  3695. STD CM+3
  3696. LDD T5
  3697. STD CM+1
  3698. MONITOR VMSM REQUEST MASS STORAGE VALIDATION
  3699. LDD CM+1
  3700. NJN VMS3 IF VALIDATION NOT SUCCESSFUL
  3701. CMSTF LPTU ALLOW TRT UPDATES BY *1RU*
  3702. LDD T7 CHECK PREVIOUS ERROR STATUS
  3703. LMN STVE
  3704. NJN VMS2 IF NOT VALIDATION ERROR
  3705. RJM SES CLEAR MST ERROR STATUS
  3706. LDN NCPL
  3707. CRD CN
  3708. AOD CN+1 CLEAR MESSAGE AT SYSTEM CONTROL POINT
  3709. SHN 7
  3710. ADN MS2W
  3711. CWD CM
  3712. CMSTF GDEI CLEAR ERROR IDLE FLAG
  3713. SMSTF LCKP SET CHECKPOINT REQUEST
  3714. VMS2 LJM VMSX RETURN
  3715.  
  3716. VMS3 STD IR+2 SET ERROR CODES
  3717. LDD T7 CHECK PREVIOUS ERROR STATUS
  3718. SBN MNEC
  3719. PJN VMS4 IF PREVIOUS ERROR NOT TO BE CHANGED
  3720. LDD TH
  3721. RAD T5
  3722. LDN STVE SET ERROR STATUS IN MST
  3723. RJM SES
  3724. VMS4 LDD T5 SET EST ORDINAL FOR *5ME*
  3725. STD IR+3
  3726. EXECUTE 5ME
  3727. UJN VMS2 RETURN
  3728. DOD SPACE 4,10
  3729. ** DOD - DISMOUNT OPTICAL DRIVE.
  3730. *
  3731. * ENTRY (T5) = EST ORDINAL.
  3732. *
  3733. * USES CM+1.
  3734. *
  3735. * CALLS (1OS).
  3736. *
  3737. * MACROS DELAY, MONITOR.
  3738.  
  3739.  
  3740. DOD2 LDD CP CLEAR WAIT MESSAGE
  3741. ADK MS2W
  3742. CWD CM
  3743.  
  3744. DOD SUBR ENTRY/EXIT
  3745. LDM IDSC PASS RELEVANT CALL DATA ON TO *1OS*
  3746. STM DODA+2
  3747. LDD IR+3
  3748. STM DODA+3
  3749. LDD IR+4
  3750. STM DODA+4
  3751. DOD1 LDD MA PLACE REQUEST IN MESSAGE BUFFER
  3752. CWM DODA,ON
  3753. LDN 0
  3754. STD CM+1
  3755. MONITOR RPPM CALL *1OS*
  3756. LDD CM+1
  3757. NJP DOD2 IF PP ASSIGNED OR IN REQUEST QUEUE
  3758. LDD CP ISSUE WAIT MESSAGE
  3759. ADK MS2W
  3760. CWM DODB,TR
  3761. DELAY 100D DELAY BETWEEN *1OS* CALLS
  3762. UJN DOD1 RETRY *1OS* CALL
  3763.  
  3764.  
  3765. DODA VFD 18/3R1OS,6/0,12/0,12/0,12/0
  3766. DODB DATA C*WAITING FOR PP.*
  3767. SPACE 4,10
  3768. ** COMMON DECKS.
  3769.  
  3770.  
  3771. QUAL$ EQU 0 DON-T QUALIFY COMMON DECKS
  3772. *CALL COMPCLC
  3773. *CALL COMPSES
  3774. *CALL COMPSMI
  3775.  
  3776.  
  3777. L0SD EQU *+2 *0SD* LOAD ADDRESS
  3778.  
  3779. ERRNG BFMS-L0SD-ZSDL *0SD* OVERFLOW
  3780.  
  3781. OVERFLOW OVLA,/OVERLAY/BUFB
  3782. OVERLAY (IAF/MAGNET FUNCTIONS.)
  3783. DIA SPACE 4,10
  3784. *** FUNCTION DIAF - SEND MESSAGE TO *IAF* USER.
  3785. *
  3786. * ENTRY (CP) = *IAF* CONTROL POINT ADDRESS.
  3787. * (IR+3) = USER TERMINAL NUMBER.
  3788. * = 7777 IF DIALING ALL TERMINALS.
  3789. * (IR+4) = 6/KEYBOARD BUFFER OFFSET, 6/.
  3790.  
  3791.  
  3792. DIA ENTRY ENTRY/EXIT
  3793. LDC IFSI FIND *IAF*
  3794. RJM CSS
  3795. CHKERR CHECK ERROR FLAG
  3796. NJN DIAX IF ERROR FLAG
  3797. LDN 1 INITIALIZE TERMINAL COUNT
  3798. STD SR+4
  3799. LDN 40 INITIALIZE NO POT CHAIN RETRY COUNT
  3800. STD AB
  3801. LDD IR+3 GET TERMINAL NUMBER
  3802. LMC 7777 CHECK FOR DIAL ALL REQUEST
  3803. NJP DIA2 IF DIALING A SPECIFIC JSN
  3804. LDK /REM/VPST INITIALIZE TERMINAL NUMBER
  3805. STD IR+3
  3806. LDD RA
  3807. SHN 6
  3808. ADK /REM/VTTP
  3809. CRD CN GET FWA OF TERMINAL TABLE
  3810. ADK /REM/VMNL-/REM/VTTP
  3811. CRD SR GET MAX NUMBER OF TERMINALS
  3812. LDN 2 SET WORD COUNT FOR CM READ
  3813. STD CN
  3814. LDK /REM/VPST*/REM/VTTL
  3815. DIA1 RAD CN+2
  3816. SHN -14
  3817. RAD CN+1
  3818. SHN 6 CALCULATE ADDRESS FOR THIS ENTRY
  3819. ADD RA
  3820. SHN 6
  3821. ADD CN+2
  3822. ADK /REM/VFST
  3823. CRD T1 READ JSN
  3824. ADK /REM/VDCT-/REM/VFST GET OUTPUT POT POINTERS
  3825. ERRNZ /REM/VSTT-/REM/VDCT-1 CODE REQUIRES CONTIGUOUS WORDS
  3826. CRM T3,CN
  3827. LDD T1
  3828. ZJN DIA3 IF ENTRY NOT IN USE
  3829. STM DIAA+7 PLACE JSN IN FAILURE MESSAGE
  3830. LDD T3+4
  3831. ADD T3+5+4
  3832. ZJN DIA2 IF OUTPUT NOT ALREADY QUEUED
  3833. LDD T2
  3834. STM DIAA+10
  3835. LDC DIAA
  3836. RJM DFM SEND FAILURE MESSAGE TO DAYFILE
  3837. UJN DIA3 CHECK FOR ERROR
  3838.  
  3839. DIA2 LDN 3 ONE HEADER AND TWO LINKAGE WORDS
  3840. RJM SBT FILL POTS WITH MESSAGE
  3841. ZJN DIA7 IF NO POT CHAIN AVAILABLE
  3842. LDN 40 RESET NO POT CHAIN RETRY COUNT
  3843. STD AB
  3844. LDD IR+3
  3845. STM WARA+4 ADD TERMINAL NUMBER TO REQUEST
  3846. RJM ITR ISSUE *TSEM* REQUEST
  3847. DIA3 CHKERR CHECK ERROR FLAG
  3848. NJN DIA6 IF ERROR FLAG SET
  3849. AOD IR+3 INCREMENT TERMINAL NUMBER
  3850. SOD SR+4 DECREMENT TERMINAL COUNT
  3851. ZJN DIA6 IF ALL TERMINALS DIALED
  3852. LDN /REM/VTTL ADVANCE TERMINAL TABLE POINTER
  3853. DIA4 UJP DIA1 READ TERMINAL TABLE ENTRY
  3854.  
  3855. DIA5 LDC DIAB *DIAL - NO POT CHAIN.*
  3856. RJM DFM SEND FAILURE MESSAGE
  3857. DIA6 LJM DIAX RETURN
  3858.  
  3859. DIA7 SOD AB DECREMENT NO POT CHAIN RETRY COUNT
  3860. MJN DIA5 IF THROUGH RETRYING
  3861. LDC 1400 DELAY 100 MILLISECONDS AND RETRY
  3862. STD T0
  3863. DIA8 DELAY
  3864. CHKERR CHECK ERROR FLAG
  3865. NJN DIA6 IF ERROR FLAG SET
  3866. SOD T0
  3867. NJN DIA8 IF NOT THROUGH DELAYING
  3868. UJN DIA4 RETRY DIAL
  3869.  
  3870.  
  3871. DIAA DATA C*OUTPUT BUSY - JSNX.*
  3872. DIAB DATA C*DIAL - NO POT CHAIN.*
  3873. KIJ SPACE 4,10
  3874. *** FUNCTION KIJF - KILL INTERACTIVE JOB.
  3875. *
  3876. * ENTRY (IR+3 - IR+4) = JSN.
  3877.  
  3878.  
  3879. KIJ ENTRY ENTRY/EXIT
  3880. LDD MA COPY JSN INTO (AB - AB+1)
  3881. CWD IR+3
  3882. CRD AB
  3883. LDN /REM/VCPT MOVE TO *IAF* CP
  3884. STD CM+1
  3885. MONITOR CCAM
  3886. LDD CM+1
  3887. NJP IDS2 IF UNABLE TO CHANGE CONTROL POINTS
  3888. LDC IFSI CHECK IF IAF PRESENT
  3889. RJM CSS
  3890. * LDN 0
  3891. STD AB+3 INITIALIZE TERMINAL NUMBER
  3892. LDD RA SET *IAF* RA
  3893. STD T7
  3894. RJM GTN GET TERMINAL NUMBER
  3895. MJN KIJX IF NOT FOUND
  3896. LDD AB+3 SET TERMINAL NUMBER
  3897. STM WARA+4
  3898. LDC /REM/VTLF
  3899. STM WARA
  3900. LDN 2 SET UNCONDITIONAL LOGOFF
  3901. STM WARA+2
  3902. RJM ITR ISSUE *TSEM* REQUEST
  3903. LJM KIJX RETURN
  3904. WAR SPACE 4,10
  3905. *** FUNCTION WARF - SEND *IAF* WARNING MESSAGE.
  3906. *
  3907. * ENTRY (CP) = *IAF* CONTROL POINT ADDRESS.
  3908. * (IR+4) = 6/KEYBOARD BUFFER OFFSET, 6/.
  3909.  
  3910.  
  3911. WAR ENTRY ENTRY/EXIT
  3912. LDC IFSI FIND *IAF*
  3913. RJM CSS
  3914. LDD IR+4
  3915. SHN -6
  3916. NJN WAR1 IF NOT CLEAR PREVIOUS MESSAGE
  3917. LDC 2R"NL" SET NEW LINE TO CLEAR BUFFER
  3918. STM BFMS+5*6+2
  3919. UJN WAR2 CLEAR OLD MESSAGE
  3920.  
  3921. WAR1 LDN TIML SET TIME
  3922. CRM BFMS+5*3,ON
  3923. LDD MA SET WARNING
  3924. CWM =C* WARNING*,ON
  3925. SBN 1
  3926. CRM BFMS+5*4,ON
  3927. LDN ZERL
  3928. CRM BFMS+5*5,ON
  3929. CHKERR
  3930. NJN WAR4 IF ERROR FLAG
  3931. LDN 6 FOUR HEADER AND TWO LINKAGE WORDS
  3932. RJM SBT FILL POTS WITH MESSAGE
  3933. ZJN WAR4 IF POT CHAIN NOT AVAILABLE
  3934. WAR2 LDC BFMS+5*6+2-1 FIND NEW LINE
  3935. STD T1
  3936. WAR3 AOD T1
  3937. LDI T1
  3938. LMC 2R"NL"
  3939. NJN WAR3 IF NOT FOUND
  3940. STI T1 SET MESSAGE TERMINATOR
  3941. RJM ITR ISSUE *TSEM* REQUEST
  3942. ZJN WAR4 IF IAF NOT AVAILABLE
  3943. LDD CP COPY MESSAGE TO B DISPLAY
  3944. ADN MS1W
  3945. CWM BFMS+5*6+2,FV
  3946. WAR4 LJM WARX EXIT
  3947.  
  3948.  
  3949. WARA CON /REM/VMSG
  3950. CON 0
  3951. CON 0 LAST POT FILLED
  3952. CON 0 FIRST POT FILLED
  3953. CON 0 TERMINAL NUMBER (DIAL)
  3954. EUF SPACE 4,10
  3955. *** FUNCTION EUFF - ENTER MAGNET UDT ENTRY.
  3956. *
  3957. * ENTRY (IR+3) = OFFSET INTO KEYBOARD BUFFER.
  3958.  
  3959.  
  3960. EUF ENTRY ENTRY/EXIT
  3961.  
  3962. * CHECK MAGNET STATUS AND FIND UDT ENTRY.
  3963.  
  3964. LDC MTSI
  3965. RJM CSS CHECK MAGNET STATUS
  3966. LDK /1DS/DSDL+/1DS/KBCML GET REQUEST
  3967. CRD AB
  3968. LDD RA
  3969. SHN 6
  3970. ADC /MTX/UBUF GET UDT POINTERS
  3971. CRD T1
  3972. LDD T1+3 SET UDT ADDRESS
  3973. LPN 77
  3974. RAM UADA
  3975. LDD T1+4
  3976. STM UADA+1
  3977. EUF1 RJM UAD SET UDT ADDRESS
  3978. CRD T1
  3979. ADK /MTX/UST1 GET EST ORDINAL
  3980. CRD CM
  3981. ADK /MTX/UVRI-/MTX/UST1 GET EJT ORDINAL
  3982. CRD CN
  3983. LDD T1
  3984. SHN -13
  3985. LMN 1
  3986. ZJN EUF3 IF END OF UDT
  3987. LDD AB+1
  3988. LMD CM+2
  3989. ZJN EUF2 IF UDT ENTRY FOUND
  3990. AOM IMRA ADVANCE UDT ORDINAL
  3991. LMK /MTX/MUNIT
  3992. ZJN EUF3 IF BEYOND MAXIMUM UDT
  3993. LDK /MTX/UNITL ADVANCE UDT ADDRESS
  3994. RAM UADA+1
  3995. SHN -14
  3996. RAM UADA
  3997. UJN EUF1 CHECK NEXT UNIT
  3998.  
  3999. * DETERMINE IF REQUEST ALLOWED ON UNIT.
  4000.  
  4001. EUF2 LDD CM
  4002. SHN -1
  4003. LPN 1 ACS UNIT FLAG
  4004. RAM EUFA
  4005. LDM TMRF,AB SET TABLE ADDRESS FOR REQUEST
  4006. EUFA LPN 1
  4007. * LPN 2 (ACS UNIT)
  4008. EUF3 ZJN EUF5 IF REQUEST NOT ALLOWED ON UNIT
  4009. LDM TMRF,AB
  4010. SHN 21-2
  4011. PJN EUF3.1 IF UNASSIGNED UNIT NOT REQUIRED
  4012. LDD CN
  4013. NJN EUF5 IF UNIT ASSIGNED TO JOB
  4014. UJN EUF4 SET PROCESSOR ADDRESS
  4015.  
  4016. EUF3.1 LDD CN
  4017. ZJN EUF5 IF UNIT NOT ASSIGNED
  4018. LDD CN+4
  4019. SHN 21-0
  4020. PJN EUF5 IF NO PREVIEW DISPLAY MESSAGE
  4021. EUF4 LDM TMRP,AB SET PROCESSOR ADDRESS
  4022. STD T1
  4023. RJM 0,T1 CALL PROCESSOR
  4024. NJN EUF6 IF ERROR
  4025. RJM IMR ISSUE MAGNET REQUEST
  4026. UJN EUF7 RETURN
  4027.  
  4028. EUF5 LDN 1 SET INCORRECT EQUIPMENT ERROR
  4029. EUF6 RJM SRD SET RETURN STATUS
  4030. EUF7 LJM EUFX RETURN
  4031. TMRF SPACE 4,15
  4032. ** TMRF - TABLE OF MAGNET REQUEST FLAGS.
  4033. *
  4034. * ENTRY FORMAT -
  4035. *
  4036. *T 9/0,1/U,1/A,1/N
  4037. *
  4038. * U UNASSIGNED UNIT REQUIRED.
  4039. * A REQUEST ALLOWED ON ACS UNITS.
  4040. * N REQUEST ALLOWED ON NON-ACS UNITS.
  4041.  
  4042.  
  4043. TMRF INDEX
  4044. INDEX /MTX/XEV,5 ENTER VSN
  4045. INDEX /MTX/XUU,7 UNLOAD UNIT
  4046. INDEX /MTX/XSV,5 ENTER SCRATCH VSN
  4047. INDEX /MTX/XRT,3 SET *RETRY* FLAG
  4048. INDEX /MTX/XUG,3 UNIT GO
  4049. INDEX /MTX/XUS,3 UNIT STOP
  4050. INDEX /MTX/XTR,3 SET *TERMINATE* FLAG
  4051. INDEX /MTX/XMU,6 ACS UNIT MOUNT
  4052. INDEX /MTX/XNV,3 SPECIFY NEXT VSN
  4053. INDEX /MTX/XRMX
  4054. TMRP SPACE 4,15
  4055. ** TMRP - TABLE OF MAGNET REQUEST PROCESSORS.
  4056.  
  4057.  
  4058. TMRP INDEX
  4059. INDEX /MTX/XEV,CVR ENTER VSN
  4060. INDEX /MTX/XUU,CLC UNLOAD UNIT
  4061. INDEX /MTX/XSV,CLC ENTER SCRATCH VSN
  4062. INDEX /MTX/XRT,CLE SET *RETRY* FLAG
  4063. INDEX /MTX/XUG,CUG UNIT GO
  4064. INDEX /MTX/XUS,CUG UNIT STOP
  4065. INDEX /MTX/XTR,CLE SET *TERMINATE* FLAG
  4066. INDEX /MTX/XMU,CAM ACS UNIT MOUNT
  4067. INDEX /MTX/XNV,CNV SPECIFY NEXT VSN
  4068. INDEX /MTX/XRMX
  4069. TITLE IAF FUNCTION SUBROUTINES.
  4070. ITR SPACE 4,10
  4071. ** ITR - ISSUE *TSEM* REQUEST.
  4072. *
  4073. * ENTRY (WARA - WARA+4) = FORMATTED *TSEM* REQUEST.
  4074. *
  4075. * EXIT (A) .EQ. 0, IF IAF UNAVAILABLE.
  4076. * .NE. 0, IF REQUEST SENT.
  4077. *
  4078. * USES T2, CM - CM+4.
  4079. *
  4080. * MACROS DELAY, MONITOR, CHKERR.
  4081.  
  4082.  
  4083. ITR3 LDN 0
  4084.  
  4085. ITR SUBR ENTRY/EXIT
  4086. ITR1 LDD MA ISSUE *TSEM* REQUEST
  4087. CWM WARA,ON
  4088. LDK ZERL
  4089. CRD CM
  4090. MONITOR TSEM
  4091. LDD CM+1
  4092. ZJN ITRX IF IAF UNAVAILABLE
  4093. LMC 7777
  4094. NJN ITRX IF REQUEST COMPLETE
  4095. LDC 7313 REISSUE REQUEST AFTER ONE HALF SECOND
  4096. STD T2
  4097. ITR2 DELAY
  4098. CHKERR
  4099. NJN ITR3 IF ERROR FLAG
  4100. SOD T2
  4101. ZJN ITR1 IF TIME TO REISSUE REQUEST
  4102. UJN ITR2 CONTINUE TO DELAY
  4103. SBT SPACE 4,15
  4104. ** SBT - SET BUFFER AND TRANSFER DATA TO POTS.
  4105. *
  4106. * ENTRY (A) = NUMBER OF WORDS IN HEADER, INCLUDING THE FIRST
  4107. * TWO WORDS USED FOR QUEUE LINKAGE BY IAF.
  4108. *
  4109. * EXIT (A) = 0, IF POTS NOT AVAILABLE.
  4110. * (WARA+2 - WARA+3) = SET UP FOR *TSEM* REQUEST.
  4111. *
  4112. * USES T1, T2, T3.
  4113. *
  4114. * CALLS RPK, SPA, UPP.
  4115. *
  4116. * MACROS MONITOR.
  4117.  
  4118.  
  4119. SBT SUBR ENTRY/EXIT
  4120. STD T3 COMPUTE ADDRESS OF FIRST WORD AFTER HEADER
  4121. SHN 2
  4122. ADC BFMS
  4123. RAD T3
  4124. LDK ZERL PUT AN EOL IN THE FIRST WORD OF MESSAGE
  4125. CRM BFMS+5*2,ON
  4126. LDK 2R"EM" SET EXTENDED MODE AS FIRST BYTE OF HEADER
  4127. STI T3
  4128. LDK 2R"NL" SET NEW LINE AS SECOND BYTE
  4129. STM 1,T3
  4130. LDD T3
  4131. ADN 2
  4132. RJM RPK PACK MESSAGE AFTER HEADER
  4133. LDN 0 ENSURE MESSAGE TERMINATOR AFTER FIVE WORDS
  4134. STM 1+5*5,T3
  4135. SBT1 AOD T3 NEXT BYTE
  4136. LDI T3
  4137. NJN SBT1 IF NOT END OF MESSAGE
  4138. LDM -1,T3 CHECK PREVIOUS BYTE
  4139. LPN 77
  4140. NJN SBT2 IF NOT ZERO CHARACTER IN LAST BYTE
  4141. LDN 1R INSERT BLANK
  4142. RAM -1,T3
  4143. SBT2 LDC 2R"NL" ISSUE NEW LINE
  4144. STI T3
  4145. AOD T3
  4146. LDK 2R"EB" SET STOP BYTE
  4147. STI T3
  4148. AOD T3
  4149. STM SBTA
  4150. LDN ZERL
  4151. CRM *,ON INSURE END OF LINE
  4152. SBTA EQU *-1
  4153. LDN 5 ADVANCE BEYOND EOL
  4154. RAD T3
  4155. LDN 0 SET CM WORD COUNT
  4156. STD T2
  4157. LDC -BFMS
  4158. RAD T3
  4159. SBT3 AOD T2
  4160. LCN 5
  4161. RAD T3
  4162. PJN SBT3 IF NOT START OF MESSAGE
  4163. LDN /REM/VCPC
  4164. STD T3
  4165. LDK ZERL CALCULATE HOW MANY POTS ARE NEEDED
  4166. CRD CM
  4167. LDD T2
  4168. ADK /REM/VCPC-1 ROUND UP TO THE NEAREST POT
  4169. SHN -3
  4170. STD CM+1
  4171. MONITOR TGPM
  4172. LDC BFMS INITIALIZE BUFFER ADDRESS
  4173. STM SBTB
  4174. LDD CM+1
  4175. ZJN SBT5 IF IAF UNAVAILABLE
  4176. LMC 7777
  4177. ZJN SBT5 IF POT QUEUE IN IAF CURRENTLY EMPTY
  4178. LMC 7777
  4179. STD PP
  4180. STM WARA+3
  4181. SBT4 STM WARA+2
  4182. RJM SPA SET POT ADDRESS
  4183. CWM *,T3
  4184. SBTB EQU *-1
  4185. LCN /REM/VCPC
  4186. RAD T2
  4187. SBN 1
  4188. MJN SBT5 IF TRANSFER COMPLETE
  4189. LDN /REM/VCPC*5
  4190. RAM SBTB
  4191. RJM UPP UPDATE TO NEXT POT
  4192. NJN SBT4 IF MORE POTS IN CHAIN
  4193. LDN 1
  4194. SBT5 LJM SBTX EXIT
  4195. TITLE MAGNET FUNCTION SUBROUTINES.
  4196. CAM SPACE 4,15
  4197. ** CAM - CHECK ACS MOUNT REQUEST.
  4198. *
  4199. * EXIT (A) = 0 IF MOUNT CAN BE PROCESSED.
  4200. * (A) = 1 IF UNIT STATUS PROHIBITS MOUNT.
  4201. * (A) = 2 IF VSN ACTIVITY PROHIBITS MOUNT.
  4202. *
  4203. * USES CM - CM+4.
  4204. *
  4205. * CALLS FAV, UAD.
  4206. *
  4207. * MACROS SFA.
  4208.  
  4209.  
  4210. CAM2 LDN 1 SET EQUIPMENT ERROR
  4211.  
  4212. CAM SUBR ENTRY/EXIT
  4213. SFA EST,AB+1 GET EQUIPMENT STATUS
  4214. ADK EQDE
  4215. CRD CM
  4216. LDD CM
  4217. LPN 3
  4218. LMN DWES
  4219. ZJN CAM2 IF UNIT DOWN
  4220. LDD CM+1
  4221. SHN -11
  4222. LMN 4
  4223. ZJN CAM1 IF UNIT ACCESSIBLE ON PRIMARY CHANNEL
  4224. LDD CM+2
  4225. SHN -11
  4226. LMN 4
  4227. NJN CAM2 IF NO ACCESS ON SECONDARY CHANNEL
  4228. CAM1 RJM UAD SET UDT ADDRESS
  4229. ADK /MTX/UMST GET MOUNT STATUS
  4230. CRD CM
  4231. LDD CM+4
  4232. LPN 7
  4233. NJN CAMX IF NOT DISMOUNTED OR CONTROL PATH ERROR
  4234. RJM FAV FIND ACS VSN
  4235. UJN CAMX RETURN WITH STATUS
  4236. CLE SPACE 4,10
  4237. ** CLE - CHECK LOAD POINT ERROR.
  4238. *
  4239. * EXIT (A) = 0 IF LOAD POINT ERROR OPERATOR PROMPT PRESENT.
  4240. * (A) = 1 IF NO LOAD POINT ERROR OPERATOR PROMPT.
  4241. *
  4242. * CALLS GMC.
  4243.  
  4244.  
  4245. CLE SUBR ENTRY/EXIT
  4246. RJM GMC GET MESSAGE CODE
  4247. LMN /RSX/TCF
  4248. ZJN CLEX IF LOAD POINT ERROR
  4249. LMN /RSX/BFR&/RSX/TCF
  4250. ZJN CLEX IF LOAD POINT ERROR
  4251. LMN /RSX/BFW&/RSX/BFR
  4252. ZJN CLEX IF LOAD POINT ERROR
  4253. LDN 1 SET EQUIPMENT ERROR
  4254. UJN CLEX RETURN
  4255. CLC SPACE 4,10
  4256. ** CLC - CHECK INITIAL LABEL CHECK COMPLETE.
  4257. *
  4258. * EXIT (A) = 0 IF INITIAL LABEL CHECK COMPLETE.
  4259. * (A) = 1 IF INITIAL LABEL CHECK NOT COMPLETE.
  4260. * (CM - CM+4) = *UVSN*.
  4261. *
  4262. * USES CM - CM+4.
  4263. *
  4264. * CALLS UAD.
  4265.  
  4266.  
  4267. CLC1 LDN 1 SET EQUIPMENT ERROR
  4268.  
  4269. CLC SUBR ENTRY/EXIT
  4270. RJM UAD SET UDT ADDRESS
  4271. ADK /MTX/UVSN GET LABEL CHECK STATUS
  4272. CRD CM
  4273. LDD CM
  4274. ADD CM+1
  4275. ADD CM+2
  4276. ZJN CLC1 IF LABELS NOT CHECKED
  4277. LDD CM+3
  4278. SHN -13 CHECK FOR LABEL CHECK IN PROGRESS
  4279. UJN CLCX RETURN WITH STATUS
  4280. CNV SPACE 4,10
  4281. ** CNV - CHECK *NEXTVSN* COMMAND REQUEST.
  4282. *
  4283. * EXIT (A) = 0 IF NO ERROR.
  4284. * (A) = 1 IF ERROR.
  4285. *
  4286. * CALLS GMC.
  4287.  
  4288.  
  4289. CNV SUBR ENTRY/EXIT
  4290. RJM GMC GET MESSAGE CODE
  4291. LMN /RSX/NTV
  4292. ZJN CNVX IF NEXT VSN PROMPT
  4293. LDN 1 SET EUIPMENT ERROR
  4294. UJN CNVX RETURN
  4295. CUG SPACE 4,10
  4296. ** CUG - CHECK FOR TMS UNIT GO PROMPT.
  4297. *
  4298. * EXIT (A) = 0 IF UNIT GO PROMPT.
  4299. * (A) = 1 IF NO UNIT GO PROMPT.
  4300. *
  4301. * CALLS GMC.
  4302.  
  4303.  
  4304. CUG SUBR ENTRY EXIT
  4305. RJM GMC GET MESSAGE CODE
  4306. LMN /RSX/NLG
  4307. ZJN CUGX IF UNIT GO PROMPT
  4308. LMN /RSX/CAG&/RSX/NLG
  4309. ZJN CUGX IF UNIT GO PROMPT
  4310. LMN /RSX/WVG&/RSX/CAG
  4311. ZJN CUGX IF UNIT GO PROMPT
  4312. LDN 1 SET EQUIPMENT ERROR
  4313. UJN CUGX RETURN
  4314. CVR SPACE 4,10
  4315. ** CVR - CHECK ENTER VSN REQUEST.
  4316. *
  4317. * EXIT (A) = 0 IF NO ERROR.
  4318. * (A) = 1 IF ERROR.
  4319. *
  4320. * CALLS CLC.
  4321.  
  4322.  
  4323. CVR SUBR ENTRY/EXIT
  4324. RJM CLC CHECK LABEL CHECK COMPLETE
  4325. NJN CVRX IF LABELS NOT CHECKED
  4326. LDD AB+2
  4327. ADD AB+3
  4328. ADD AB+4
  4329. ZJN CVRX IF CLEARING VSN
  4330. LDD CM+3
  4331. LPN 4
  4332. LMN 4
  4333. ZJN CVRX IF UNLABELED TAPE
  4334. LDN 1 SET EQUIPMENT ERROR
  4335. UJN CVRX RETURN
  4336. CVS SPACE 4,10
  4337. ** CVS - COMPARE VSN-S.
  4338. *
  4339. * ENTRY (AB+2 - AB+4) = REQUESTED VSN.
  4340. * (CM - CM+2) = VSN TO COMPARE.
  4341. *
  4342. * EXIT (A) = 0 IF VSN-S MATCH.
  4343. * (A) .NE. 0 IF VSN-S DO NOT MATCH.
  4344.  
  4345.  
  4346. CVS SUBR ENTRY/EXIT
  4347. LDD CM
  4348. LMD AB+2
  4349. NJN CVSX IF NO MATCH
  4350. LDD CM+1
  4351. LMD AB+3
  4352. NJN CVSX IF NO MATCH
  4353. LDD CM+2
  4354. LMD AB+4
  4355. UJN CVSX RETURN WITH STATUS
  4356. FAV SPACE 4,10
  4357. ** FAV - FIND ACS VSN.
  4358. *
  4359. * EXIT (A) = 0 IF VSN NOT FOUND IN UDT OR VSN ERROR TABLE.
  4360. * (A) = 2 IF VSN FOUND IN UDT OR VSN ERROR TABLE.
  4361. *
  4362. * USES CM - CM+4, CN - CN+4, T1 - T1+4.
  4363. *
  4364. * CALLS CVS.
  4365.  
  4366.  
  4367. FAV SUBR ENTRY/EXIT
  4368.  
  4369. * CHECK UDT.
  4370.  
  4371. LDD RA
  4372. SHN 6
  4373. ADK /MTX/UBUF GET UDT POINTERS
  4374. CRD T1
  4375. LDN 0 INITIALIZE UDT ORDINAL
  4376. STD T1
  4377. FAV1 LDD T4
  4378. SHN 6
  4379. ADD RA
  4380. SHN 6
  4381. ADD T5
  4382. CRD CN
  4383. ADK /MTX/UMST
  4384. CRD CM
  4385. LDD CN
  4386. SHN 21-13
  4387. MJN FAV2 IF END OF UDT
  4388. RJM CVS COMPARE VSN-S
  4389. ZJN FAV4 IF VSN FOUND
  4390. LDK /MTX/UNITL ADVANCE UDT ADDRESS
  4391. RAD T5
  4392. SHN -14
  4393. RAD T4
  4394. AOD T1
  4395. LMN /MTX/MUNIT
  4396. ZJN FAV4 IF BEYOND MAXIMUM UDT
  4397. UJN FAV1 CHECK NEXT UNIT
  4398.  
  4399. * CHECK VSN ERROR TABLE.
  4400.  
  4401. FAV2 LDN 0 INITIALIZE ERROR TABLE INDEX
  4402. STD T1
  4403. FAV3 LDD RA SET ERROR TABLE ADDRESS
  4404. SHN 6
  4405. ADK /MTX/VET
  4406. ADD T1
  4407. CRD CM GET ERROR TABLE ENTRY
  4408. LDD CM
  4409. ZJN FAV5 IF END OF ENTRIES
  4410. RJM CVS COMPARE VSN-S
  4411. ZJN FAV4 IF VSN FOUND
  4412. AOD T1 ADVANCE ENTRY INDEX
  4413. LMK /MTX/VETL
  4414. NJN FAV3 IF NOT BEYOND MAXIMUM ENTRY
  4415.  
  4416. * RETURN STATUS.
  4417.  
  4418. FAV4 LDN 2 SET VSN ERROR
  4419. FAV5 LJM FAVX RETURN
  4420. GMC SPACE 4,10
  4421. ** GMC - GET PREVIEW DISPLAY MESSAGE CODE.
  4422. *
  4423. * EXIT (A) = PREVIEW DISPLAY MESSAGE CODE.
  4424. *
  4425. * USES CM - CM+4.
  4426. *
  4427. * CALLS UAD.
  4428.  
  4429.  
  4430. GMC SUBR ENTRY/EXIT
  4431. RJM UAD SET UDT ADDRESS
  4432. ADK /MTX/UISN GET PREVIEW DISPLAY MESSAGE CODE
  4433. CRD CM
  4434. LDD CM+3
  4435. LPN 77 SET MESSAGE CODE
  4436. UJN GMCX RETURN
  4437. IMR SPACE 4,10
  4438. ** IMR - ISSUE MAGNET EXTERNAL REQUEST.
  4439. *
  4440. * USES AB+1, T1, CM+1 - CM+4.
  4441. *
  4442. * MACROS DELAY, MONITOR, PAUSE.
  4443.  
  4444.  
  4445. IMR SUBR ENTRY/EXIT
  4446. LDC 0 SET UDT ORDINAL
  4447. IMRA EQU *-1 (UDT ORDINAL)
  4448. STD AB+1
  4449. LDD MA SET REQUEST
  4450. CWD AB
  4451. LDC 250D SET 1 SECOND RETRY LIMIT
  4452. STD T1
  4453. IMR1 LDN 1 SET WRITE FLAG
  4454. STD CM+1
  4455. LCN 7777-MTSI SET SUBSYSTEM ID
  4456. STD CM+2
  4457. LDD HN SET WORD COUNT
  4458. STD CM+3
  4459. LDN /MTX/XREQ SET WRITE ADDRESS
  4460. STD CM+4
  4461. MONITOR TDAM
  4462. LDD CM+1
  4463. ZJN IMRX IF TRANSFER COMPLETE
  4464. SBN 4
  4465. ZJN IMRX IF *MAGNET* NOT ACTIVE
  4466. SOD T1
  4467. ZJN IMRX IF MAXIMUM RETRIES
  4468. PAUSE ST
  4469. DELAY 40 DELAY 4 MILLISECONDS
  4470. UJN IMR1 RETRY FUNCTION
  4471. UAD SPACE 4,10
  4472. ** UAD - SET UDT ADDRESS.
  4473. *
  4474. * EXIT (A) = ABSOLUTE UDT ADDRESS.
  4475.  
  4476.  
  4477. UAD SUBR ENTRY/EXIT
  4478. LDD RA
  4479. SHN 6
  4480. UADA ADC 0 SET UDT ADDRESS
  4481. UJN UADX RETURN
  4482. SPACE 4,10
  4483. ** COMMON DECKS.
  4484.  
  4485.  
  4486. *CALL COMPSPA
  4487. *CALL COMPUPP
  4488. *CALL COMPGTN
  4489.  
  4490.  
  4491. OVERFLOW OVLA,/OVERLAY/BUFB
  4492. OVERLAY (MULTILEVEL SECURITY FUNCTIONS.)
  4493. SAM SPACE 4,10
  4494. *** FUNCTION SAMF - SEND ACCOUNT FILE MESSAGE.
  4495. *
  4496. * ENTRY (IR+3) = 2/T, 4/, 3/LA, 3/UA.
  4497. * T = 0, IF *MSOT* MESSAGE.
  4498. * = 1, IF *MSLK* MESSAGE.
  4499. * = 2, IF *MSEQ* MESSAGE.
  4500. * = 3, IF *MSUL* MESSAGE.
  4501. * LA = NEW LOWER ACCESS LEVEL LIMIT.
  4502. * UA = NEW UPPER ACCESS LEVEL LIMIT.
  4503. * (IR+4) = 12/ORD.
  4504. * ORD = EST ORDINAL, IF *MSEQ* MESSAGE.
  4505. * = ORIGIN TYPE ORDINAL, IF *MSOT* MESSAGE.
  4506.  
  4507.  
  4508. SAM ENTRY ENTRY/EXIT
  4509. LDD IR+3
  4510. SHN 21-12
  4511. PJN SAM2 IF NOT *MSLK* OR *MSUL* MESSAGE
  4512. LPN 1
  4513. ZJN SAM1 IF *MSLK*
  4514. LDC 2RUL&2RLK
  4515. SAM1 LMC 2RLK
  4516. STM SAMA+1 CHANGE ACCOUNT FILE MESSAGE
  4517. LDC 2R. APPEND PERIOD
  4518. STM SAMA+2
  4519. LJM SAM6 ISSUE MESSAGE
  4520.  
  4521. SAM2 LPN 1
  4522. ZJN SAM3 IF *MSOT* MESSAGE
  4523. LDD IR+4 CONVERT EST ORDINAL TO DISPLAY CODE
  4524. SHN -3
  4525. RJM C2D
  4526. STM SAMA+3
  4527. LDD IR+4
  4528. LPN 7
  4529. ADN 1R0
  4530. SHN 6
  4531. STM SAMC TEMPORARILY SAVE DISPLAY-CODED ORDINAL
  4532. LDC SAMB FWA OF MESSAGE BUFFER
  4533. STD T1
  4534. LDC SAMC ADDRESS OF EST ORDINAL
  4535. RJM ACS
  4536. UJN SAM4 APPEND COMMA
  4537.  
  4538. SAM3 LDC 2ROT CHANGE ACCOUNT FILE MESSAGE
  4539. STM SAMA+1
  4540. LDM TJOT,IR+4 SAVE ORIGIN TYPE
  4541. STM SAMA+3
  4542. LDC SAMB FWA OF MESSAGE BUFFER
  4543. STD T1
  4544. SAM4 LDC =C*, *
  4545. RJM ACS APPEND COMMA
  4546. LDD IR+3 DETERMINE MNEMONIC OF LOWER ACCESS LEVEL
  4547. SHN -3
  4548. LPN 7
  4549. SHN 2
  4550. ADC TALV APPEND NEW LOWER ACCESS LEVEL LIMIT
  4551. RJM ACS
  4552. LDC =C*, * APPEND COMMA
  4553. RJM ACS
  4554. LDD IR+3 DETERMINE MNEMONIC OF UPPER ACCESS LEVEL
  4555. LPN 7
  4556. SHN 2
  4557. ADC TALV APPEND NEW UPPER ACCESS LEVEL LIMIT
  4558. RJM ACS
  4559. LDC =C*. * TERMINATE MESSAGE WITH A PERIOD
  4560. RJM ACS
  4561. SAM6 LDC ACFN+SAMA ISSUE ACCOUNT FILE MESSAGE
  4562. RJM DFM
  4563. LJM SAMX RETURN
  4564.  
  4565. SAMA DATA C*MSEQ, *
  4566. SAMB BSSZ 13
  4567. SAMC BSS 1 TEMPORARY STORAGE LOCATION
  4568. TJOT SPACE 4,10
  4569. * TJOT - TABLE OF JOB ORIGIN TYPES.
  4570.  
  4571. TJOT DATA H+"NMOT"+
  4572. VSA SPACE 4,10
  4573. *** FUNCTION VSAF - VALIDATE SECURITY-UNLOCK ACCESS.
  4574. *
  4575. * ENTRY (IR+4) = BUFFER OFFSET.
  4576.  
  4577.  
  4578. VSA ENTRY ENTRY/EXIT
  4579. LDN /1DS/KBCML READ KEYBOARD BUFFER
  4580. STD BA
  4581. LDC /1DS/DSDL
  4582. CRM VSAA,BA
  4583. LDD IR+4 SET POINTER TO BUFFER
  4584. ADC VSAA
  4585. STD BA
  4586. RJM ASN EXTRACT USERNAME
  4587. LDC VSAB+3 SET POINTER TO ACCOUNT FILE MESSAGE
  4588. STD T1
  4589. LDN AB APPEND USERNAME TO ACCOUNT FILE MESSAGE
  4590. RJM ACS
  4591. LDC =C*. * TERMINATE MESSAGE WITH A PERIOD
  4592. RJM ACS
  4593. AOD BA SKIP SEPARATOR
  4594. LDN ZERL FORCE SYSTEM DEFAULT FAMILY
  4595. CRD CN
  4596. LDC 1R0*100
  4597. STD CN
  4598. EXECUTE 0AV,L0AV GET USER VALIDATION INFORMATION
  4599. LDD T1 CHECK FOR USER INDEX
  4600. ADD T2
  4601. ZJN VSA2 IF USER NOT VALID
  4602. RJM ASN EXTRACT PASSWORD
  4603. LDD MA SET PARAMETER FOR *RDCM* CALL
  4604. CWD AB
  4605. LDN REPS ENCRYPT SUPPLIED PASSWORD
  4606. STD CM+1
  4607. MONITOR RDCM
  4608. LDD MA
  4609. CRD AB
  4610. LDD AB COMPARE ENCRYPTED PASSWORDS
  4611. LMM APSW*5,T3
  4612. NJN VSA2 IF NO MATCH
  4613. LDD AB+1
  4614. LMM APSW*5+1,T3
  4615. NJN VSA2 IF NO MATCH
  4616. LDD AB+2
  4617. LMM APSW*5+2,T3
  4618. NJN VSA2 IF NO MATCH
  4619. LDD AB+3
  4620. LMM APSW*5+3,T3
  4621. SCN 77
  4622. ZJN VSA3 IF MATCH
  4623. VSA2 LDC 2RSI CONVERT ACCOUNT FILE MESSAGE
  4624. STM VSAB+1
  4625. LDN 1 ERROR CONDITION
  4626. RJM SRD SAVE RESPONSE TO *DSD*
  4627. VSA2.1 LDC ACFN+VSAB ISSUE ACCOUNT FILE MESSAGE
  4628. RJM DFM
  4629. LJM VSAX RETURN ERROR
  4630.  
  4631. * CHECK FOR SECURITY ADMINISTRATOR PRIVILEGES.
  4632.  
  4633. VSA3 LDM ASVW*5,T3
  4634. SHN 21-13
  4635. PJN VSA2 IF NOT SECURITY ADMINISTRATOR
  4636. LDN SSTL SET SECURITY UNLOCK
  4637. CRD AB
  4638. LDD AB
  4639. LPC 6377
  4640. LMC 1400
  4641. STD AB
  4642. LDN SSTL
  4643. CWD AB
  4644. UJN VSA2.1 ISSUE ACCOUNT FILE MESSAGE
  4645.  
  4646. VSAA BSSZ /1DS/KBCML*5 KEYBOARD BUFFER
  4647. VSAB DATA C*MSSA, *
  4648. VSAC BSSZ 5
  4649. SPACE 4,10
  4650. ** ASN - ASSEMBLE NAME.
  4651. *
  4652. * ENTRY (BA) = CHARACTER ADDRESS.
  4653. *
  4654. * EXIT (AB - AB+4) = ASSEMBLED NAME LEFT JUSTIFIED WITH
  4655. * ZERO FILL.
  4656. * (CA) ADVANCED TO SEPARATOR CHARACTER.
  4657. *
  4658. * USES T1, BA, AB - AB+4.
  4659.  
  4660.  
  4661. ASN SUBR ENTRY/EXIT
  4662. LDN ZERL CLEAR ASSEMBLY BUFFER
  4663. CRD AB
  4664. LDN AB SET BYTE ADDRESS
  4665. STD T1
  4666. ASN1 LDI BA CHECK CHARACTER
  4667. ZJN ASNX IF END OF STRING
  4668. SBN 1R9+1
  4669. PJN ASNX IF SEPARATOR
  4670. ADN 1R9+1 STORE UPPER
  4671. SHN 6
  4672. STI T1
  4673. AOD BA ADVANCE CHARACTER
  4674. LDI BA CHECK CHARACTER
  4675. ZJN ASNX IF END OF STRING
  4676. SBN 1R9+1
  4677. PJN ASNX IF SEPARATOR
  4678. ADN 1R9+1 STORE LOWER
  4679. RAI T1
  4680. AOD BA ADVANCE CHARACTER
  4681. AOD T1 ADVANCE BYTE
  4682. LMN AB+5
  4683. NJN ASN1 IF NOT 5 BYTES
  4684. UJN ASNX RETURN
  4685. SPACE 4,10
  4686. * COMMON DECKS.
  4687.  
  4688.  
  4689. QUAL
  4690. VAL$ EQU 1 DEFINE ACCESS LEVEL TABLE
  4691. *CALL COMPVLC
  4692. QUAL *
  4693.  
  4694.  
  4695. USE LITERALS
  4696.  
  4697. L0AV EQU *+5 LOAD ADDRESS FOR *0AV*
  4698. ERRNG BFMS-L0AV-ZAVL *0AV* OVERFLOW
  4699.  
  4700.  
  4701. OVERFLOW OVLA,/OVERLAY/BUFB
  4702.  
  4703. ERRNG L0AV-* CODE OVERFLOWS INTO *0AV*
  4704. OVERLAY (*SERVICE* COMMAND PROCESSOR.)
  4705. SER SPACE 4,10
  4706. *** FUNCTION SERF - PROCESS *SERVICE* COMMAND.
  4707. *
  4708. * ENTRY (IR+4) = OFFSET IN KEYBOARD BUFFER TO START OF
  4709. * COMMAND PARAMETERS.
  4710. * (IR+3) = SERVICE CLASS.
  4711.  
  4712.  
  4713. SER ENTRY ENTRY/EXIT
  4714. LDN CSAT-SVJT
  4715. STD SR+2 SET LENGTH OF SERVICE CONTROL BLOCK
  4716. SFA JCB,IR+3 GET JOB CONTROL BLOCK
  4717. ADN SVJT
  4718. CRM SERF,SR+2
  4719. SBD SR+2 SAVE FWA OF WORDS READ
  4720. STD T7
  4721. SHN -14
  4722. STD T6
  4723. LDN /1DS/KBCML GET CONTENTS OF KEYBOARD BUFFER
  4724. STD T1
  4725. LDC /1DS/DSDL
  4726. CRM CBUF,T1
  4727. LDD IR+4 GET ADDRESS OF COMMAND
  4728. ADK CBUF+2 SKIP SERVICE CLASS
  4729. STD CA
  4730.  
  4731. * PROCESS NEXT PARAMETER.
  4732.  
  4733. SER1 AOD CA SKIP SEPARATOR
  4734. LDC TSVP SEARCH PARAMETER TABLE
  4735. RJM SPT
  4736. MJN SER2 IF NOT FOUND
  4737. STD SR+1
  4738. SBN TSVPE-TSVP
  4739. NJN SER3 IF NOT *DT* PARAMETER
  4740.  
  4741. * PROCESS *DT* PARAMETER.
  4742.  
  4743. LDC TNSC SEARCH FOR VALID SERVICE CLASS
  4744. RJM SPT
  4745. MJN SER2 IF NOT FOUND
  4746. STD AB+4
  4747. LMN SSSC
  4748. ZJN SER2 IF SUBSYSTEM SERVICE CLASS
  4749. LMN DSSC&SSSC
  4750. NJN SER5 IF NOT DEADSTART SERVICE CLASS
  4751. SER2 LDN 1
  4752. LJM SER18 RETURN ERROR STATUS TO *DSD*
  4753.  
  4754. SER3 RJM ASD ASSEMBLE DIGITS
  4755.  
  4756. SER5 LDM SERE,SR+1 SET PROCESSOR ADDRESS
  4757. STD T5
  4758. LJM 0,T5 EXIT TO PROCESSOR
  4759.  
  4760. * PROCESS *PR* PARAMETER.
  4761.  
  4762. SER6 LDD AB+4
  4763. SBN 2
  4764. MJN SER2 IF PRIORITY .LT. 2
  4765. SBN 100-2
  4766. PJN SER2 IF PRIORITY .GE. 100B
  4767. AOM SERG SET TO ISSUE *SCTM* FUNCTION
  4768. LJM SER14 VALIDATE ASSEMBLY
  4769.  
  4770. * PROCESS INDEX ENTRY.
  4771.  
  4772. SER7 LDD SR+1 SET FIELD POSITION
  4773. SBN TSVPD-TSVP
  4774. STD T2 MULTIPLY BY 3
  4775. SHN 1
  4776. ADD T2 SET SHIFT INSTRUCTION
  4777. LMD TH
  4778. ERRNZ SHNI-1000 CODE DEPENDS ON VALUE
  4779. STM SERA
  4780. STM SERB
  4781. LCN 7 SET MASK FIELD
  4782. SERA SHN **
  4783. * SHN 11 (DS)
  4784. * SHN 6 (FC)
  4785. * SHN 3 (CS)
  4786. * SHN 0 (FS)
  4787. STM SERC
  4788. LDD AB+4 SET NEW INDEX VALUE
  4789. SBN 10
  4790. PJN SER9 IF INVALID INDEX
  4791. ADN 10
  4792. SERB SHN **
  4793. * SHN 11 (DS)
  4794. * SHN 6 (FC)
  4795. * SHN 3 (CS)
  4796. * SHN 0 (FS)
  4797. STD CM
  4798. LDN TSVPD-TSVP SET SERVICE BLOCK INDEX
  4799. STD SR+1
  4800. LDM SERF,SR+1 INSERT INDEX VALUE IN EXISTING BYTE
  4801. LPC **
  4802. SERC EQU *-1
  4803. * LPC 0777 (DS)
  4804. * LPC 7077 (FC)
  4805. * LPC 7707 (CS)
  4806. * LPC 7770 (FS)
  4807. LMD CM
  4808. STD AB+4
  4809. UJN SER14 CHECK VALUE RANGE
  4810.  
  4811. * PROCESS *RS* PARAMETER.
  4812.  
  4813. SER8 LDM SERF+CSJT*5-SVJT*5+4 EXISTING *US* VALUE
  4814. SBD AB+4 SPECIFIED *RS* VALUE
  4815. UJN SER8.2 ENSURE *RS* .LE. *US*
  4816.  
  4817. * PROCESS *US* PARAMETER.
  4818.  
  4819. SER8.1 LDD AB+4 SPECIFIED *US* VALUE
  4820. SBM SERF+CSJT*5-SVJT*5+3 EXISTING *RS* VALUE
  4821. SER8.2 MJN SER9 IF *RS* .GT. *US*
  4822. LDD AB+4
  4823. ZJN SER9 IF NOT VALID PARAMETER
  4824.  
  4825. * PROCESS *IT* AND *SE* PARAMETERS.
  4826.  
  4827. SER8.3 AOM SERG FORCE *SCTM*/*CCSS* MONITOR FUNCTION
  4828. UJN SER14 CHECK VALUE RANGE
  4829.  
  4830. * RETURN ERROR STATUS.
  4831.  
  4832. SER9 LDN 1
  4833. LJM SER18 RETURN ERROR STATUS TO *DSD*
  4834.  
  4835. SER10 LDD AB+3 ALLOW *AM* UP TO 77777
  4836. STM SERF-1,SR+1
  4837. SCN 7
  4838. UJN SER15 CHECK VALUE RANGE
  4839.  
  4840. SER13 AOM SERD FLAG *NJ* PARAMETER
  4841.  
  4842. * CHECK VALUE RANGE.
  4843.  
  4844. SER14 LDD AB+3 CHECK ASSEMBLY
  4845. SER15 ADD AB+2
  4846. ADD AB+1
  4847. ADD AB
  4848. NJN SER9 IF VALUE TOO LARGE
  4849.  
  4850. * STORE VALUE.
  4851.  
  4852. SER16 LDD AB+4 SET VALUE IN SERVICE CONTROL BLOCK
  4853. STM SERF,SR+1
  4854. LDI CA CHECK SEPARATOR
  4855. LMN 1R,
  4856. ZJP SER1 IF NOT END OF PARAMETERS
  4857. LMN 1R.&1R,
  4858. NJN SER9 IF INCORRECT TERMINATION
  4859. LDD T6
  4860. SHN 14
  4861. LMD T7 STORE SERVICE CONTROL BLOCK
  4862. CWM SERF,SR+2
  4863. SERD LDN 0
  4864. ZJN SER17 IF NO *NJ* PARAMETER
  4865. LDN ZERL
  4866. CRD CM
  4867. LDN /EVENT/SCFE ISSUE JOB LIMIT CHANGED EVENT
  4868. STD CM+4
  4869. MONITOR EATM
  4870. SER17 LDN 0
  4871. SERG EQU *-1
  4872. ZJN SER18 IF NO *SCTM* UPDATE REQUIRED
  4873. LDN ZERL
  4874. CRD CM
  4875. LDN CCSS CONVERT CPU SCHEDULING PARAMETERS
  4876. STD CM+1
  4877. LDD IR+3 SET SERVICE CLASS
  4878. STD CM+4
  4879. MONITOR SCTM SET SYSTEM CONTROL PARAMETERS
  4880. * LDN 0 RETURN NO ERROR TO *DSD*
  4881. SER18 RJM SRD
  4882. LJM SERX RETURN
  4883.  
  4884.  
  4885. SERE BSS 0 SERVICE COMMAND PROCESSORS
  4886. CON SER9 UNUSED
  4887. CON SER14 *CT* PARAMETER
  4888. CON SER14 *CM* PARAMETER
  4889. CON SER13 *NJ* PARAMETER
  4890. CON SER14 *TD* PARAMETER
  4891.  
  4892. CON SER14 *CP* PARAMETER
  4893. CON SER14 *TP* PARAMETER
  4894. CON SER14 *FL* PARAMETER
  4895. CON SER9 UNUSED
  4896. CON SER10 *AM* PARAMETER
  4897.  
  4898. CON SER9 UNUSED
  4899. CON SER9 UNUSED
  4900. CON SER14 *EC* PARAMETER
  4901. CON SER9 UNUSED
  4902. CON SER14 *EM* PARAMETER
  4903.  
  4904. CON SER7 *FS* PARAMETER
  4905. CON SER7 *CS* PARAMETER
  4906. CON SER7 *FC* PARAMETER
  4907. CON SER7 *DS* PARAMETER
  4908. CON SER16 *DT* PARAMETER
  4909.  
  4910. CON SER6 *PR* PARAMETER
  4911. CON SER8.3 *IT* PARAMETER
  4912. CON SER8.3 *SE* PARAMETER
  4913. CON SER8 *RS* PARAMETER
  4914. CON SER8.1 *US* PARAMETER
  4915.  
  4916. SERF VFD 60/0 *SVJT*
  4917. VFD 60/0 *MCMT*
  4918. VFD 60/0 *MECT*
  4919. VFD 60/0 *PFCT*
  4920. VFD 60/0 *CSJT*
  4921. TNSC SPACE 4,10
  4922. ** TNSC - TABLE OF SERVICE CLASSES.
  4923.  
  4924. TNSC DATA H+"NMSC"+
  4925. CON 0 END OF TABLE
  4926. TSVP SPACE 4,10
  4927. ** TSVP - TABLE OF SERVICE PARAMETERS.
  4928. *
  4929. *T 12/ NAME
  4930. *
  4931. * NAME = TWO-CHARACTER MNEMONIC.
  4932. *
  4933. * THE TABLE IS INDEXED BY BYTE NUMBER, RELATIVE TO
  4934. * JOB CONTROL BLOCK WORD *SVJT*. HOWEVER, THE
  4935. * TABLE ENTRIES FOR WORD *PFCT* ARE IN ORDER
  4936. * BY 3-BIT FIELD. SEE COMMENTS ON THE *PFCT*
  4937. * TABLE ENTRIES.
  4938.  
  4939.  
  4940. TSVP BSS 0
  4941.  
  4942. * *SVJT*.
  4943.  
  4944. CON 6060
  4945. CON 2RCT CONTROL POINT TIME SLICE
  4946. CON 2RCM CENTRAL MEMORY TIME SLICE
  4947. CON 2RNJ NUMBER OF JOBS
  4948. CON 2RTD TIME OUT DELAY (SUSPENDED JOBS)
  4949.  
  4950. * *MCMT*.
  4951.  
  4952. CON 2RCP CONTROL POINT SLICE PRIORITY
  4953. CON 2RTP BASE PRIORITY FOR INTERACTIVE JOBS
  4954. CON 2RFL MAXIMUM FIELD LENGTH PER JOB
  4955. CON 6060
  4956. CON 2RAM MAXIMUM MEMORY AVAILABLE FOR ALL JOBS
  4957.  
  4958. * *MECT*.
  4959.  
  4960. CON 6060
  4961. CON 6060
  4962. CON 2REC MAXIMUM EXTENDED MEMORY PER JOB
  4963. CON 6060
  4964. CON 2REM MAXIMUM EXTENDED MEMORY FOR ALL JOBS
  4965.  
  4966. * *PFCT*.
  4967.  
  4968. TSVPD CON 2RFS INDIVIDUAL INDIRECT ACCESS FILE SIZE
  4969. CON 2RCS CUMULATIVE INDIRECT ACCESS FILE SIZE
  4970. CON 2RFC NUMBER OF FILES IN CATALOG
  4971. CON 2RDS INDIVIDUAL DIRECT ACCESS FILE SIZE
  4972. TSVPE CON 2RDT SERVICE CLASS TO ASSIGN ON A DETACH
  4973.  
  4974. * *CSJT*.
  4975.  
  4976. CON 2RPR CPU PRIORITY
  4977. CON 2RIT SYSTEM I/O CPU THRESHOLD (MILLISECONDS)
  4978. CON 2RSE CPU SLICE EXTENSION (MILLISECONDS)
  4979. CON 2RRS CPU RECALL SLICE (MILLISECONDS)
  4980. CON 2RUS UNEXTENDED CPU SLICE (MILLISECONDS)
  4981.  
  4982. CON 0
  4983. ASD SPACE 4,15
  4984. ** ASD - ASSEMBLE DIGITS.
  4985. *
  4986. * ENTRY (CA) = ADDRESS OF NEXT CHARACTER.
  4987. *
  4988. * EXIT (A) = NON OCTAL DIGIT IN STRING.
  4989. * (CA) UPDATED.
  4990. * (AB - AB+4) = DIGITS ASSEMBLED, RIGHT-JUSTIFIED.
  4991. *
  4992. * USES T1, T2, T3, AB - AB+4.
  4993.  
  4994.  
  4995. ASD SUBR ENTRY/EXIT
  4996. LDN ZERL CLEAR ASSEMBLY
  4997. CRD AB
  4998. ASD1 LDI CA CHECK CHARACTER
  4999. SBN 1R0
  5000. MJN ASD2 IF ALPHA
  5001. SBN 10
  5002. MJN ASD3 IF OCTAL DIGIT
  5003. SBN 1R -1R8
  5004. ZJN ASD5 IF * *
  5005. ASD2 LDI CA GET CHARACTER
  5006. UJN ASDX RETURN
  5007.  
  5008. ASD3 ADN 10 SET NEW DIGIT
  5009. STD T2
  5010. LDN AB+4 SET BYTE ADDRESS
  5011. STD T3
  5012. ASD4 LDI T3 BYTE * 10
  5013. SHN 3
  5014. ADD T2 ADD NEW DIGIT
  5015. STI T3
  5016. SHN -14 NEW DIGIT = OVERFLOW
  5017. STD T2
  5018. SOD T3 DECREMENT BYTE ADDRESS
  5019. LMN AB-1
  5020. NJN ASD4 IF NOT 5 BYTES
  5021. ASD5 AOD CA ADVANCE CHARACTER
  5022. UJN ASD1 LOOP
  5023. SPT SPACE 4,10
  5024. ** SPT - SEARCH PARAMETER TABLE.
  5025. *
  5026. * ENTRY (A) = FWA OF PARAMETER TABLE.
  5027. * (CA) = CHARACTER ADDRESS.
  5028. *
  5029. * EXIT (A) = INDEX OF ENTRY FOUND.
  5030. * (A) .LT. 0, IF NOT FOUND.
  5031. * (T5) = ADDRESS OF TABLE ENTRY FOUND.
  5032. * (CA) = CHARACTER ADDRESS ADVANCED.
  5033. *
  5034. * USES T1, T3, T5.
  5035.  
  5036.  
  5037. SPT2 LDN 2 ADVANCE CHARACTER ADDRESS
  5038. RAD CA
  5039. LDD T5 SET INDEX OF ENTRY
  5040. SBD T3
  5041.  
  5042. SPT SUBR ENTRY/EXIT
  5043. STD T3
  5044. STD T5
  5045. LDI CA ASSEMBLE PARAMETER NAME
  5046. SHN 6
  5047. LMM 1,CA
  5048. STD T1
  5049. LDI T5
  5050. SPT1 LMD T1
  5051. ZJN SPT2 IF MATCH FOUND
  5052. AOD T5
  5053. LDI T5
  5054. NJN SPT1 IF NOT END OF TABLE
  5055. LCN 0 FLAG ENTRY NOT FOUND
  5056. UJP SPTX RETURN
  5057. SPACE 4,10
  5058. * BUFFERS.
  5059.  
  5060. CBUF BSS /1DS/KBCML*5 KEYBOARD BUFFER
  5061. SPACE 4,10
  5062. OVERFLOW OVLA,/OVERLAY/BUFB
  5063. OVERLAY (*BIO* FUNCTIONS.)
  5064. EBR SPACE 4,10
  5065. *** FUNCTION EBRF - ENTER *BIO* BUFFER POINT REQUEST.
  5066. *
  5067. * ENTRY (CP) = *BIO* CONTROL POINT ADDRESS.
  5068. * (IR+4) = 6/KEYBOARD BUFFER OFFSET, 6/.
  5069. * (PARAMETER) = 12/,12/PR,6/,6/PA,12/EST ORD,12/FUNC.
  5070. * PR = PRIORITY.
  5071. * PA = PARAMETER.
  5072. * FUNC = *BIO* REQUEST FUNCTION.
  5073. * IF REQUEST FUNCTION = *REPM* (*REPEAT* COMMAND)
  5074. * (PARAMETER) = 12/J1,12/PR,6/,6/PA,12/J2,12/FUNC.
  5075. * J1 = FIRST TWO CHARACTERS OF JSN.
  5076. * J2 = LAST TWO CHARACTERS OF JSN.
  5077.  
  5078.  
  5079. EBR ENTRY ENTRY/EXIT
  5080. LDC BISI CHECK IF *BIO* IS ACTIVE
  5081. RJM CSS
  5082. LDN TAEQL/5 READ AVAILABLE EQUIPMENT TABLE
  5083. STD T1
  5084. LDD RA
  5085. SHN 6
  5086. ADK /BIO/TEQR
  5087. CRM TAEQ,T1
  5088. LDC /1DS/DSDL+/1DS/KBCML READ SPECIAL PARAMETER WORD
  5089. CRD AB
  5090. LDD AB+4
  5091. LMN /BIO/REPM
  5092. NJN EBR0 IF NOT *REPEAT*
  5093. LCN 2
  5094. RAM EBRB
  5095. LDC NJNI+EBR2-EBRC
  5096. ERRNG EBRC-EBR2+37 INCORRECT JUMP INSTRUCTION
  5097. STM EBRC
  5098. EBR0 LDC /BIO/BFCW SET ADDRESS OF FIRST BUFFER POINT
  5099. STD T7
  5100. STD T1
  5101. SBN /BIO/BFCWL SET END OF BUFFER POINTS
  5102. STD T6
  5103. EBR1 NFA T7,R READ BUFFER POINT WORD
  5104. CRD CM
  5105. LDD CM
  5106. ZJN EBR2 IF BUFFER POINT INACTIVE
  5107. EBRB LDD CM+3 CHECK EST ORDINAL
  5108. * LDD CM+1 (*REPEAT*)
  5109. LMD AB+3
  5110. EBRC UJN EBR1.1 CHECK EST
  5111. * NJN EBR2 (IF *REPEAT* AND JSN DOES NOT MATCH)
  5112. LDD CM
  5113. LMD AB
  5114. EBR1.1 ZJN EBR5 IF SPECIFIED EQUIPMENT FOUND
  5115. EBR2 LCN 2 ADVANCE BUFFER POINT ADDRESS
  5116. RAD T7
  5117. LMD T6
  5118. NJN EBR1 IF NOT END OF BUFFER POINTS
  5119. EBR3 LDN 1 SET ERROR
  5120. EBR4 RJM SRD
  5121. UJP EBRX RETURN
  5122.  
  5123. EBR5 LDD CM+4
  5124. LPN 77
  5125. ZJN EBR6 IF LAST COMMAND PROCESSED
  5126. LDN 2 SET *BIO BUSY*
  5127. UJN EBR4 SAVE RESPONSE TO *DSD*
  5128.  
  5129. EBR6 LDD T1 SET EQUIPMENT INDEX
  5130. SBD T7
  5131. SHN -1
  5132. STD T1
  5133. LDM TAEQ+1,T1 SET DEVICE TYPE
  5134. LPN 7
  5135. LMC -0
  5136. RAM EBRA
  5137. LDM TBDF,AB+4 CHECK IF COMMAND ALLOWED FOR DEVICE
  5138. EBRA SHN 21-0
  5139. * SHN 21-XX
  5140. PJN EBR3 IF COMMAND NOT ALLOWED FOR THIS DEVICE
  5141. LDD AB+2 MERGE PARAMETER AND REQUEST
  5142. SHN 6
  5143. LMD AB+4
  5144. STD CM+4
  5145. LDD AB+1 SET PRIORITY VALUE
  5146. STD CM+2
  5147. NFA T7,R STORE BUFFER POINT REQUEST
  5148. CWD CM
  5149. LDN 0 SET NO ERROR
  5150. UJP EBR4 SAVE REPSONSE TO *DSD*
  5151. TBDF SPACE 4,10
  5152. ** TBDF - TABLE OF *BIO* DEVICE FUNCTIONS.
  5153. *
  5154. * INDEXED BY *BIO* REQUEST FUNCTION.
  5155.  
  5156.  
  5157. TBDF BIODF
  5158. BIODF ENDM,(LPDT,NPDT,CPDT,CRDT) END
  5159. BIODF REPM,(LPDT,NPDT,CPDT) REPEAT
  5160. BIODF SUPM,(LPDT) SUPPRESS
  5161. BIODF RRNM,(LPDT,NPDT,CPDT) REPRINT/REPUNCH
  5162. BIODF HLDM,(LPDT,NPDT) STOP (HOLD)
  5163. BIODF CNTM,(LPDT,NPDT) CONTINUE
  5164. BIODF BKPO,(LPDT) BACKSPACE PRUS
  5165. BIODF BKRO,(LPDT) BACKSPACE RECORDS
  5166. BIODF BKFO,(LPDT) BACKSPACE FILES
  5167. BIODF SKPO,(LPDT) SKIP PRUS
  5168. BIODF SKRO,(LPDT) SKIP RECORDS
  5169. BIODF SKFO,(LPDT) SKIP FILES
  5170. BIODF FPRE
  5171. TAEQ SPACE 4,10
  5172. ** TAEQ - TABLE OF AVAILABLE EQUIPMENTS.
  5173.  
  5174.  
  5175. TAEQ BSS 0
  5176. TAEQL EQU /BIO/CTIR*5-/BIO/TEQR*5
  5177. SPACE 4,10
  5178. OVERFLOW OVLA,/OVERLAY/BUFB-TAEQL
  5179. OVERLAY (IDLEDOWN PROCESSING.)
  5180. IDD SPACE 4,10
  5181. *** FUNCTION IDLF - IDLEDOWN SUBSYSTEMS.
  5182. *
  5183. * ENTRY (IR+4) = EJT ORDINAL.
  5184.  
  5185.  
  5186. IDD ENTRY ENTRY/EXIT
  5187. IDD1 SFA EJT,IR+4 INTERLOCK EJT ENTRY
  5188. STD CM+4
  5189. SHN -14
  5190. STD CM+3
  5191. LDN 41
  5192. STD CM+1
  5193. LDD MA
  5194. CWM IDDA,ON
  5195. MONITOR UTEM
  5196. LDD CM+1
  5197. ZJN IDD2 IF INTERLOCK SET
  5198. LMN 3
  5199. ZJN IDDX IF EJT NOT IN USE
  5200. DELAY
  5201. UJN IDD1 LOOP ON INTERLOCK
  5202.  
  5203. IDD2 SFA EJT,IR+4
  5204. ADK JSNE
  5205. CRD CM
  5206. ADK SCHE-JSNE
  5207. CRD CN
  5208. LDD CM+4
  5209. LMK EXJS*2
  5210. LPN 76
  5211. ZJN IDD4 IF JOB AT CONTROL POINT
  5212. LDD CM SET JSN
  5213. STD CM+3
  5214. LDD CM+1
  5215. STD CM+4
  5216. LDD IR+4 SET ERROR FLAG IN EJT
  5217. STD CM+2
  5218. LDK IDET+4000
  5219. STD CM+1
  5220. MONITOR CEFM
  5221. IDD3 SFA EJT,IR+4 CLEAR THE EJT INTERLOCK
  5222. STD CM+4
  5223. SHN -14
  5224. STD CM+3
  5225. LDN 40
  5226. STD CM+1
  5227. MONITOR UTEM
  5228. LJM IDDX RETURN
  5229.  
  5230. IDD4 LDD CN+3 MOVE TO JOB-S CONTROL POINT
  5231. STD CM+1
  5232. MONITOR CCAM
  5233. LDD CM+1
  5234. ZJN IDD5 IF CHANGE MADE
  5235. DELAY
  5236. UJN IDD4 RETRY CP CHANGE
  5237.  
  5238. IDD5 RJM IDL SET IDLEDOWN CONTROL FLAGS
  5239. LJM IDD3 CLEAR THE EJT INTERLOCK
  5240.  
  5241. IDDA VFD 6/40,6/1,6/6,42/0 VERIFY JOB ADVANCE NOT SET
  5242. IDL SPACE 4,15
  5243. ** IDL - IDLEDOWN SUBSYSTEM.
  5244. *
  5245. * IF JOB IS A SPECIAL SUBSYSTEM (*BATCHIO*, *MAGNET*, *MSS*,
  5246. * *MAS*, *RHF*) THE SUBSYSTEM IDLEDOWN FLAG (BIT 2**15 OF RA+0
  5247. * AND BIT 2**15 OF CONTROL POINT AREA WORD *SNSW*) WILL BE SET.
  5248. * IF THE JOB IS NOT A SPECIAL SUBSYSTEM, IT WILL BE
  5249. * ABORTED WITH THE *IDET* ERROR FLAG.
  5250. *
  5251. * ENTRY EJT INTERLOCK SET.
  5252. *
  5253. * USES T1, CM - CM+4.
  5254. *
  5255. * MACROS MONITOR.
  5256.  
  5257.  
  5258. IDL2 LDN IDET SET *IDET* ERROR FLAG
  5259. STD CM+1
  5260. MONITOR CEFM
  5261.  
  5262. IDL SUBR ENTRY/EXIT
  5263. LDD CP
  5264. ADN JCIW
  5265. CRD CM
  5266. LDC IDLA-1 SET TABLE ADDRESS
  5267. STD T1
  5268. IDL1 AOD T1 CHECK NEXT TABLE ENTRY
  5269. LDI T1
  5270. ZJN IDL2 IF END OF TABLE
  5271. LMD CM+2
  5272. NJN IDL1 IF NOT A MATCH
  5273. LDD RA READ RA+0
  5274. SHN 6
  5275. CRD CM
  5276. LDD CM+3 SET IDLEDOWN FLAG IN (RA)
  5277. SCN 10
  5278. LMN 10
  5279. STD CM+3
  5280. LDD RA REWRITE RA+0
  5281. SHN 6
  5282. CWD CM
  5283. LDD CP READ CPA WORD *SNSW*
  5284. ADK SNSW
  5285. CRD CM
  5286. LDD CM+3 SET IDLEDOWN FLAG IN CPA
  5287. SCN 10
  5288. LMN 10
  5289. STD CM+3
  5290. LDD CP REWRITE CPA WORD *SNSW*
  5291. ADK SNSW
  5292. CWD CM
  5293. ADK CSSW-SNSW READ CPA WORD *CSSW*
  5294. CRD CM
  5295. LDD CM CLEAR *SKIP-TO-EXIT* FLAG
  5296. LPC 5777
  5297. STD CM
  5298. LDD CP WRITE CPA WORD *CSSW*
  5299. ADK CSSW
  5300. CWD CM
  5301. LJM IDLX RETURN
  5302.  
  5303.  
  5304. IDLA BSS 0 TABLE OF SPECIAL SUBSYSTEMS
  5305. CON BISI *BATCHIO*
  5306. CON MTSI *MAGNET*
  5307. CON MFSI *MSS*
  5308. CON ASSI *MAS*
  5309. CON RFSI *RHF*
  5310. CON 0 END OF TABLE
  5311.  
  5312. OVERFLOW OVLA,/OVERLAY/BUFB
  5313. OVERLAY (UP/DOWN CHANNEL.)
  5314. SPACE 4,10
  5315. ** DIRECT CELL ASSIGNMENTS.
  5316.  
  5317. CB EQU PP CONTROLWARE TABLE BYTE ADDRESS
  5318. TA EQU PA CONTROLWARE TABLE WORD ADDRESS
  5319. CH EQU 60 CHANNEL NUMBER
  5320. MX EQU 61 MUX CHANNEL FLAG (100 IF MUX CHANNEL)
  5321. CS EQU 62 CHANNEL RESERVATION STATUS
  5322. MI EQU 63 NON-ZERO IF ERROR LOG MESSAGE ISSUED
  5323. S1 EQU 64 SCRATCH
  5324. TI EQU 65 DEVICE TABLE INDEX
  5325. FT EQU 66 FUNCTION TYPE
  5326. UPC SPACE 4,15
  5327. *** FUNCTION UPCF - UP CHANNEL.
  5328. *
  5329. * ENTRY (IR+3) = 5/MT, 1/M, 1/C, 5/CH.
  5330. * (IR+4) = 1/S, 2/0, 9/EQ.
  5331. *
  5332. * WHERE M = 1, IF MUX CHANNEL.
  5333. * C = 1, IF CONCURRENT CHANNEL.
  5334. * CH = CHANNEL NUMBER.
  5335. * S = 1, IF CALLED BY DRIVER OR *1MV*.
  5336. * EQ = EST ORDINAL (0 IF FUNCTION TO BE PERFORMED
  5337. * ON ALL EQUIPMENTS THAT THE CHANNEL
  5338. * ACCESSES).
  5339.  
  5340.  
  5341. *UPC ENTRY ENTRY/EXIT
  5342. *
  5343. * THIS FUNCTION USES THE *DWNF* PROCESSOR.
  5344. DWN SPACE 4,15
  5345. *** FUNCTION DWNF - DOWN CHANNEL.
  5346. *
  5347. * ENTRY (IR+3) = 5/0, 1/M, 1/C, 5/CH.
  5348. * (IR+4) = 3/0, 9/EQ.
  5349. *
  5350. * WHERE M = 1, IF MUX CHANNEL.
  5351. * C = 1, IF CONCURRENT CHANNEL.
  5352. * CH = CHANNEL NUMBER.
  5353. * EQ = EST ORDINAL (0 IF FUNCTION TO BE PERFORMED
  5354. * ON ALL EQUIPMENTS THAT THE CHANNEL
  5355. * ACCESSES).
  5356.  
  5357.  
  5358. DWN6 RJM DCH RELEASE CHANNEL, IF RESERVED
  5359. DWN7 LDD MI
  5360. ZJN DWN8 IF NO ERROR LOG MESSAGES ISSUED
  5361. LDK ZERL ISSUE *CHANNEL DOWNED BY SYSTEM* EVENT
  5362. CRD CM
  5363. LDN /EVENT/CDSE
  5364. STD CM+4
  5365. MONITOR EATM
  5366. DWN8 LDD IR+2
  5367. ZJN DWNX IF *DOWN* REQUEST
  5368. RJM CRC CLEAR CONTROLWARE RELOAD COUNT
  5369.  
  5370. DWN ENTRY ENTRY/EXIT
  5371. RJM PRS PRESET
  5372. LDD IR+4
  5373. LPC 777
  5374. NJN DWN1 IF EST ORDINAL SPECIFIED
  5375. LDK ESTP INITIALIZE CELLS FOR EST SCAN
  5376. CRD T5
  5377. LDK NOPE-1
  5378. STD T5
  5379. UJN DWN2 ENTER EST SCAN LOOP
  5380.  
  5381. DWN1 SBN 1
  5382. STD T5
  5383. ADN 2 SET SCAN TERMINATION CONDITION
  5384. STD T5+2
  5385. DWN2 AOD T5 INCREMENT EST ORDINAL
  5386. STM CMVA+2 STORE EST ORDINAL IN *1MV* CALL
  5387. LMD T5+2
  5388. ZJP DWN6 IF END OF EST SCAN
  5389. SFA EST,T5 READ EST ENTRY
  5390. ADK EQDE
  5391. CRD CN
  5392. RJM DDP DETERMINE IF DEVICE SHOULD BE PROCESSED
  5393. MJN DWN2 IF DEVICE NOT TO BE PROCESSED
  5394. DWN3 RJM RCH REQUEST CHANNEL, IF NECESSARY
  5395. MJP DWN7 IF CHANNEL CANNOT BE OBTAINED
  5396. RJM RCS REQUEST CHANNEL STATUS CHANGE ON DEVICE
  5397. PJN DWN5 IF CHANNEL STATUS HAS BEEN CHANGED
  5398. RJM DCH DROP CHANNEL
  5399. LDD IR+2
  5400. NJN DWN2 IF *UP* REQUEST
  5401. RJM DEQ DOWN EQUIPMENT
  5402. PJN DWN3 IF EQUIPMENT WAS DOWNED
  5403. DWN4 UJP DWN2 PROCESS NEXT EST ENTRY
  5404.  
  5405. DWN5 RJM CDS CHECK DRIVER STATUS
  5406. RJM CMV CALL *1MV*, IF NECESSARY
  5407. UJN DWN4 PROCESS NEXT EST ENTRY
  5408. CDS SPACE 4,20
  5409. ** CDS - CHECK BUFFERED I/O DRIVER STATUS.
  5410. *
  5411. * IF CHANNEL UP FUNCTION
  5412. * AND BUFFERED I/O DRIVER IS NOT UP
  5413. * THEN
  5414. * CLEAR DRIVER DROPPED FLAG IN CHANNEL CONTROLWARE TABLE.
  5415. * ISSUE *RPPM* FUNCTION TO START APPROPRIATE DRIVER.
  5416. *
  5417. * ENTRY (CH) = CHANNEL NUMBER.
  5418. * (FT) = FUNCTION TYPE (1 IF *UP*, 0 IF *DOWN*).
  5419. * (MX) = MUX CHANNEL FLAG.
  5420. * (CB) = CONTROLWARE TABLE BYTE ADDRESS.
  5421. * (TA - TA+1) = CONTROLWARE TABLE WORD ADDRESS.
  5422. *
  5423. * USES CM - CM+4, FS - FS+4.
  5424. *
  5425. * MACROS DELAY, MONITOR.
  5426.  
  5427.  
  5428. CDS5 LDD CP ISSUE WAIT MESSAGE
  5429. ADK MS2W
  5430. CWM CMVB,TR
  5431. DELAY 10D*8D
  5432. CDS6 LDD MA
  5433. CWD FS STORE INPUT REGISTER FOR PP REQUEST
  5434. LDN 1
  5435. STD CM+1 SELECT NO QUEUEING OF PP REQUEST
  5436. LDD FS+4
  5437. LPN 40
  5438. NJN CDS7 IF CONCURRENT CHANNEL
  5439. MONITOR RPPM
  5440. UJN CDS8 CHECK MONITOR RESPONSE
  5441.  
  5442. CDS7 SBD FS+4 ISOLATE CHANNEL
  5443. ADN 4
  5444. SHN 0-21
  5445. ADN 2 DETERMINE BARREL SUBFUNCTION
  5446. STD CM+4
  5447. MONITOR CPRM REQUEST CONCURRENT PP
  5448. CDS8 LDD CM+1
  5449. ZJP CDS5 IF PP NOT ASSIGNED
  5450. LDD CP CLEAR WAIT MESSAGE
  5451. ADK MS2W
  5452. CWD CM
  5453.  
  5454. CDS SUBR ENTRY/EXIT
  5455. LDD FT
  5456. ZJN CDSX IF *DOWN* REQUEST
  5457. LDD MX
  5458. NJN CDSX IF MUX CHANNEL
  5459. RJM RCE READ CONTROLWARE TABLE
  5460. SHN 21-11
  5461. CDS1 PJN CDSX IF DRIVER IS UP
  5462. CDS1.1 DELAY
  5463. LDD TA
  5464. SHN 14
  5465. LMD TA+1
  5466. SBK CTALL*2
  5467. CRD CM
  5468. LDI CB
  5469. SHN 21-5
  5470. MJN CDS1.1 IF *MTR* HASN-T YET UPDATED CHANNEL TABLE
  5471. LDN 2 SET NUMBER OF REQUESTS
  5472. STD CM+1
  5473. LDD TA+1
  5474. STD CM+4
  5475. LDD TA
  5476. STD CM+3
  5477. LDD MA SET *UTEM* REQUEST IN MESSAGE BUFFER
  5478. CWM CDSD,CM+1
  5479. MONITOR UTEM
  5480. LDD CM+1
  5481. NJN CDS1 IF BUFFER DRIVER FLAG NOT CLEARED
  5482. LDC BIOL READ BUFFERED I/O TABLES POINTER
  5483. CRD CM
  5484. LDD CM+1 CHECK BUFFERED I/O PRESENT
  5485. SHN 14
  5486. ADD CM+2
  5487. CDS2 ZJP CDSX IF NO BUFFERED DEVICES PRESENT
  5488. ADN CCTP
  5489. CRD CM CHANNEL TABLE POINTER WORD
  5490. LDN CUN1
  5491. UJN CDS4 SCAN CHANNEL CONTROL TABLE
  5492.  
  5493. CDS3 SOD CM
  5494. ZJN CDS2 IF NO MORE CHANNELS
  5495. LDN CCTL
  5496. CDS4 RAD CM+4 ADVANCE CCT POINTER
  5497. SHN -14
  5498. RAD CM+3
  5499. SHN 14 READ PP DRIVER INPUT REGISTER
  5500. ADD CM+4
  5501. CRD FS
  5502. LDD FS
  5503. ZJN CDS3 IF 819 ENTRY
  5504. LDD FS+4
  5505. LMD CH
  5506. NJN CDS3 IF NOT SELECTED CHANNEL
  5507. LJM CDS6 LOAD DRIVER
  5508.  
  5509.  
  5510. CDSD VFD 1/1,5/,6/1,6/,42/1 VERIFY BUFFERED I/O DRIVER FLAG
  5511. CDSE VFD 1/0,5/,6/1,6/,42/0 UPDATE BUFFERED I/O DRIVER FLAG
  5512. CMV SPACE 4,10
  5513. ** CMV - CALL *1MV* IF *UP* REQUEST FOR MASS STORAGE CHANNEL.
  5514. *
  5515. * ENTRY (FT) = FUNCTION TYPE (1 IF *UP*, 0 IF *DOWN*).
  5516. * (CN - CN+4) = WORD *EQDE* OF EST ENTRY.
  5517. *
  5518. * USES CM+1.
  5519. *
  5520. * MACROS DELAY, MONITOR, SMSTF.
  5521.  
  5522.  
  5523. CMV2 LDD CP CLEAR WAIT MESSAGE
  5524. ADK MS2W
  5525. CWD CM
  5526. SMSTF L1MV SET *1MV* ACTIVE
  5527.  
  5528. CMV SUBR ENTRY/EXIT
  5529. LDD CN
  5530. SHN 21-13
  5531. PJN CMVX IF NOT MASS STORAGE
  5532. LDD FT
  5533. ZJN CMVX IF *DOWN* REQUEST
  5534. CMV1 DELAY 100D*8D DELAY BETWEEN *1MV* CALLS
  5535. LDD MA PLACE REQUEST IN MESSAGE BUFFER
  5536. CWM CMVA,ON
  5537. LDN 0
  5538. STD CM+1
  5539. MONITOR RPPM CALL *1MV*
  5540. LDD CM+1
  5541. NJP CMV2 IF PP ASSIGNED OR IN REQUEST QUEUE
  5542. LDD CP ISSUE WAIT MESSAGE
  5543. ADK MS2W
  5544. CWM CMVB,TR
  5545. UJN CMV1 RETRY *1MV* CALL
  5546.  
  5547.  
  5548. CMVA VFD 18/3R1MV,6/0,12/0,6/UCFC,6/0,12/0
  5549. CMVB DATA C*WAITING FOR PP.*
  5550. CRC SPACE 4,10
  5551. ** CRC - CLEAR RELOAD COUNT IN CONTROLWARE TABLE.
  5552. *
  5553. *
  5554. * USES CM+1 - CM+4.
  5555. *
  5556. * MACROS MONITOR.
  5557.  
  5558.  
  5559. CRC SUBR ENTRY/EXIT
  5560. LDN 1 NUMBER OF PARAMETER WORDS
  5561. STD CM+1
  5562. LDD TA+1
  5563. STD CM+4
  5564. LDD TA
  5565. STD CM+3
  5566. LDD MA STORE *UTEM* PARAMETERS
  5567. CWM CRCB,ON
  5568. MONITOR UTEM
  5569. UJN CRCX RETURN
  5570.  
  5571.  
  5572. CRCB VFD 1/0,5/0,6/3,6/,42/0 *UTEM* REQUEST
  5573. DCH SPACE 4,15
  5574. ** DCH - DROP CHANNEL.
  5575. *
  5576. * THIS SUBROUTINE DROPS THE CHANNEL IF IT IS PRESENTLY ASSIGNED
  5577. * TO THIS PP.
  5578. *
  5579. * ENTRY (CH) = CHANNEL NUMBER.
  5580. * (CS) = 1 IF CHANNEL ASSIGNED.
  5581. *
  5582. * EXIT (CS) = 0.
  5583. *
  5584. * USES CM+1, CS.
  5585. *
  5586. * MACROS MONITOR.
  5587.  
  5588.  
  5589. DCH SUBR ENTRY/EXIT
  5590. LDD CS
  5591. ZJN DCHX IF CHANNEL NOT ASSIGNED
  5592. LDD CH DROP THE CHANNEL
  5593. STD CM+1
  5594. MONITOR DCHM
  5595. * LDN 0 CLEAR CHANNEL STATUS
  5596. STD CS
  5597. UJN DCHX RETURN
  5598. DDP SPACE 4,30
  5599. ** DDP - DETERMINE IF DEVICE SHOULD BE PROCESSED.
  5600. *
  5601. * THIS SUBROUTINE DETERMINES IF A DEVICE IS ACCESSED BY A
  5602. * PARTICULAR CHANNEL AND IF THE STATE OF THE CHANNEL ON THE
  5603. * DEVICE IS SUCH THAT THE DEVICE SHOULD BE PROCESSED. ONLY
  5604. * MASS STORAGE, TAPE, *NIP*, AND OPTICAL DISK DEVICE TYPES
  5605. * WILL BE CONSIDERED FOR PROCESSING.
  5606. *
  5607. * ENTRY (CH) = CHANNEL NUMBER.
  5608. * (FT) = FUNCTION TYPE (1 IF *UP*, 0 IF *DOWN*).
  5609. * (MX) = 100 IF MUX CHANNEL.
  5610. * (CN - CN+4) = *EQDE* WORD OF EST ENTRY.
  5611. *
  5612. * EXIT (A) .GE. 0 IF THE DEVICE SHOULD BE PROCESSED.
  5613. * .LT. 0 IF AT LEAST ONE OF THE FOLLOWING CONDITIONS
  5614. * IS TRUE -
  5615. * A. THE DEVICE IS OF A TYPE NOT SUITABLE
  5616. * FOR PROCESSING.
  5617. * B. THE CHANNEL DOES NOT ACCESS THE
  5618. * DEVICE.
  5619. * C. THE CONCURRENCY OF THE CHANNEL DOES
  5620. * NOT MATCH THAT OF THE CHANNELS
  5621. * ACCESSING THE DEVICE.
  5622. * D. THE CHANNEL IS A MUX CHANNEL BUT THE
  5623. * DEVICE TYPE IS *LDAM*.
  5624. * E. THE *UP*/*DOWN* STATUS OF THE
  5625. * CHANNEL ON THE DEVICE MISMATCHES THE
  5626. * *1DS* FUNCTION TYPE.
  5627. * (TI) = TABLE INDEX IF TAPE, *NIP* OR OPTICAL DISK.
  5628. *
  5629. * USES TI, T1.
  5630.  
  5631.  
  5632. DDP SUBR ENTRY/EXIT
  5633. LDD CN VALIDATE DEVICE TYPE
  5634. SHN 21-13
  5635. MJN DDP2 IF MASS STORAGE
  5636. LDN TDVTL SET DEVICE TYPE TABLE LENGTH
  5637. STD TI
  5638. DDP1 SOD TI DECREMENT TABLE INDEX
  5639. MJN DDPX IF DEVICE TYPE NOT FOUND
  5640. LDM TDVT,TI
  5641. LMD CN+3
  5642. NJN DDP1 IF NOT DEVICE TYPE MATCH
  5643. DDP2 LDN 1
  5644. STD T1
  5645. DDP3 LDM CN+1,T1
  5646. LMD CH
  5647. LPN 77
  5648. NJN DDP4 IF WRONG CHANNEL
  5649. LDM CN+1,T1
  5650. SHN 0-11
  5651. SBN 4
  5652. MJN DDP4 IF CHANNEL NOT PRESENT OR DISABLED
  5653. LMN 1
  5654. ZJN DDP6 IF CHANNEL STATE = *IDLE*
  5655. LMD FT
  5656. LPN 1
  5657. NJN DDP6 IF RIGHT CHANNEL STATE
  5658. DDP4 SOD T1
  5659. PJN DDP3 IF CHANNEL 1 NOT YET CHECKED
  5660. DDP5 UJP DDPX RETURN
  5661.  
  5662. DDP6 LDD MX
  5663. ZJN DDP5 IF MUX CHANNEL NOT SPECIFIED
  5664. LDD CN
  5665. SHN 21-13
  5666. PJN DDP5 IF NOT MASS STORAGE DEVICE
  5667. SHN 13-7
  5668. UJN DDP5 RETURN WITH (A) .LT. 0 IF *LDAM* DEVICE
  5669.  
  5670.  
  5671. TDVT BSS 0 TABLE OF DEVICE TYPES TO BE PROCESSED
  5672. CON 2ROD
  5673. CON 2RLX
  5674. CON 2RLY
  5675. CON 2RCT
  5676. CON 2RMT
  5677. CON 2RNT
  5678. CON 2RAT
  5679. TDVTL EQU *-TDVT TABLE LENGTH
  5680. DEQ SPACE 4,20
  5681. ** DEQ - DOWN EQUIPMENT.
  5682. *
  5683. * THIS SUBROUTINE REQUESTS *MTR* TO DOWN A MASS STORAGE
  5684. * DEVICE. IT ALSO ISSUES BML AND ERRLOG MESSAGES TO
  5685. * RECORD THE EVENT.
  5686. *
  5687. * ENTRY (T5) = EST ORDINAL.
  5688. *
  5689. * EXIT (A) .GE. 0 IF EQUIPMENT WAS DOWNED.
  5690. * .LT. 0 IF EQUIPMENT CANNOT BE DOWNED.
  5691. *
  5692. * USES CM+1, CM+2.
  5693. *
  5694. * CALLS IMS.
  5695. *
  5696. * MACROS MONITOR.
  5697.  
  5698. DEQ1 LCN 0 SET REJECT STATUS
  5699.  
  5700. DEQ SUBR ENTRY/EXIT
  5701. LDD T5 STORE EST ORDINAL IN REQUEST
  5702. STD CM+1
  5703. LDK DWES STORE SUBFUNCTION IN REQUEST
  5704. STD CM+2
  5705. MONITOR SEQM
  5706. LDD CM+1
  5707. ZJN DEQ1 IF FUNCTION REJECTED
  5708. LDN MSI1 MESSAGE INDEX
  5709. RJM IMS ISSUE MESSAGES (IF CALLED BY DRIVER)
  5710. UJN DEQX RETURN
  5711. IBM SPACE 4,15
  5712. ** IBM - ISSUE BML MESSAGE.
  5713. *
  5714. * ENTRY (CH) = CHANNEL NUMBER, INCLUDING CONCURRENCY FLAG.
  5715. * (S1) = MESSAGE INDEX.
  5716. * (T5) = EST ORDINAL.
  5717. * (CN - CN+4) = *EQDE* WORD OF EST ENTRY.
  5718. *
  5719. * EXIT (A) = 0.
  5720. *
  5721. * USES T1, T2, CM - CM+4, FS - FS+4.
  5722. *
  5723. * CALLS DFM.
  5724.  
  5725.  
  5726. IBM SUBR ENTRY/EXIT
  5727. LDC TMID-2 SET TABLE ADDRESS
  5728. STD T1
  5729. LDD CN+3 SAVE DEVICE TYPE
  5730. STD T2
  5731. LMC 2RDP
  5732. NJN IBM1 IF NOT *DP* DEVICE TYPE
  5733. LDC TEMID-2 SET TABLE ADDRESS
  5734. STD T1
  5735. LDD CN+4
  5736. SHN 3
  5737. ADK DILL
  5738. CRD CM
  5739. LDD CM+3
  5740. LPC 707
  5741. STD T2
  5742. IBM1 LDN 2 CHECK NEXT TABLE ENTRY
  5743. RAD T1
  5744. LDI T1
  5745. ZJN IBM2 IF DEVICE TYPE NOT FOUND IN TABLE
  5746. LMD T2
  5747. NJN IBM1 IF NOT A MATCH
  5748. LDM 1,T1 MESSAGE ID
  5749. IBM2 STM BMLID
  5750. LDM IBMA,S1 SYMPTOM CODE
  5751. STM BMLSC
  5752. LDD CH CHANNEL NUMBER
  5753. STM BMLPP
  5754. LDK PPCP READ PP COMMUNICATIONS AREA POINTER
  5755. CRD CM
  5756. ADK MMFL-PPCP
  5757. CRD FS
  5758. LDD FS MAINFRAME ID
  5759. STM BMLMF
  5760. LDD IA COMPUTE PP NUMBER
  5761. SBD CM+4
  5762. SHN 6-3
  5763. RAM BMLPP
  5764. LDD CN+4 READ EQUIPMENT AND UNIT NUMBERS
  5765. SHN 3
  5766. ADK DDLL
  5767. CRD CM
  5768. LDD CM GET EQUIPMENT (CONTROLLER) NUMBER
  5769. LPC 700
  5770. LMD CM+4 MERGE WITH UNIT NUMBER
  5771. SCN 77
  5772. LMD CM+4
  5773. STM BMLUN
  5774. LDD T5 STORE EST ORDINAL
  5775. STM BMLEO
  5776. LDM IBMA,S1 SYMPTOM CODE
  5777. STM BMLSC
  5778. LDK BMLL SET MESSAGE LENGTH
  5779. STD CM+1
  5780. LDC BML+BMLN ISSUE MESSAGE
  5781. RJM DFM
  5782. * LDN 0
  5783. LJM IBMX RETURN
  5784.  
  5785.  
  5786. * MESSAGE INDICES.
  5787.  
  5788. BEGIN BSSN 0
  5789. MSI0 BSSN 1
  5790. MSI1 BSSN 1
  5791. MSIX BSSN 1 MAXIMUM INDEX + 1
  5792. END BSSN
  5793.  
  5794.  
  5795. * TABLE OF SYMPTOM CODES.
  5796.  
  5797. IBMA INDEX
  5798. INDEX MSI0,/COMSDFS/HS0015
  5799. INDEX MSI1,/COMSDFS/HS0034
  5800. INDEX MSIX
  5801. TMID SPACE 4,10
  5802. * TABLE OF MESSAGE ID-S.
  5803.  
  5804. TMID BSS 0
  5805. CON 2RDI,/COMSDFS/RM0002 (DI) 844-2X, HALF TRACK
  5806. CON 2RDJ,/COMSDFS/RM0003 (DJ) 844-4X, HALF TRACK
  5807. CON 2RDK,/COMSDFS/RM0004 (DK) 844-2X, FULL TRACK
  5808. CON 2RDL,/COMSDFS/RM0005 (DL) 844-4X, FULL TRACK
  5809. CON 2RDM,/COMSDFS/RM0007 (DM) 885-1X, HALF TRACK
  5810. CON 2RDQ,/COMSDFS/RM0017 (DQ) 885-1X, FULL TRACK
  5811. CON 2RDR,/COMSDFS/RM0015 (DR) CDSS II
  5812. CON 2RDX,/COMSDFS/RM0010 (DX) 3330-1
  5813. CON 2RDY,/COMSDFS/RM0011 (DY) 3330-11
  5814. CON 2RDZ,/COMSDFS/RM0012 (DZ) 3350
  5815. CON 2RDA,/COMSDFS/RM0013 (DA) 33502
  5816. CON 2RDB,/COMSDFS/RM0014 (DB) 885-42
  5817. CON 2RDD,/COMSDFS/RM0110 (DD) 834
  5818. CON 2RDF,/COMSDFS/RM0120 (DF) 887 (4KB SECTOR)
  5819. CON 2RDG,/COMSDFS/RM0111 (DG) 836
  5820. CON 2RDH,/COMSDFS/RM0121 (DH) 887 (16KB SECTOR)
  5821. CON 2RDC,/COMSDFS/RM0115 (DC) 895
  5822. CON 2RDN,/COMSDFS/RM0124 (DN) 9853 (XMD/CM3)
  5823. CON 2REA,/COMSDFS/RM0130 (EA) 5832 (1X SSD)
  5824. CON 2REB,/COMSDFS/RM0131 (EB) 5832 (2X SSD)
  5825. CON 2REC,/COMSDFS/RM0132 (EC) 5833 (1X SABRE)
  5826. CON 2RED,/COMSDFS/RM0133 (ED) 5833 (1XP SABRE)
  5827. CON 2REE,/COMSDFS/RM0134 (EE) 5833 (2X SABRE)
  5828. CON 2REF,/COMSDFS/RM0137 (EF) 5833 (2XP SABRE)
  5829. CON 2REG,/COMSDFS/RM0142 (EG) 5838 (1X ELITE)
  5830. CON 2REH,/COMSDFS/RM0143 (EH) 5838 (1XP ELITE)
  5831. CON 2REI,/COMSDFS/RM0144 (EI) 5838 (2X ELITE)
  5832. CON 2REJ,/COMSDFS/RM0147 (EJ) 5838 (2XP ELITE)
  5833. CON 2REK,/COMSDFS/RM0145 (EK) 5838 (3XP ELITE)
  5834. CON 2REL,/COMSDFS/RM0146 (EL) 5838 (4X ELITE)
  5835. CON 2REM,/COMSDFS/RM0135 (EM) 5833 (3XP SABRE)
  5836. CON 2REN,/COMSDFS/RM0136 (EN) 5833 (4X SABRE)
  5837. CON 2REO,/COMSDFS/RM0162 (EO) 47444 (1X 3.5IN)
  5838. CON 2REP,/COMSDFS/RM0163 (EP) 47444 (1XP 3.5IN)
  5839. CON 2RES,/COMSDFS/RM0164 (ES) 47444 (2X 3.5IN)
  5840. CON 2REU,/COMSDFS/RM0167 (EU) 47444 (2XP 3.5IN)
  5841. CON 2REV,/COMSDFS/RM0165 (EV) 47444 (3XP 3.5IN)
  5842. CON 2REW,/COMSDFS/RM0166 (EW) 47444 (4X 3.5IN)
  5843. CON 0
  5844. TEMID SPACE 4,10
  5845. * TABLE OF MESSAGE ID-S FOR EXTENDED MEMORY DEVICES.
  5846.  
  5847.  
  5848. TEMID BSS 0
  5849. CON 102,/COMSDFS/RM0070 (DP) ECS I - DC135 DDP
  5850. CON 202,/COMSDFS/RM0072 (DP) ECS II - DC135 DDP
  5851. CON 101,/COMSDFS/RM0074 (DP) ECS I - DC145 DDP
  5852. CON 201,/COMSDFS/RM0075 (DP) ECS II - DC145 DDP
  5853. CON 300,/COMSDFS/RM0076 (DP) LCME - COUPLER
  5854. CON 501,/COMSDFS/RM0210 (DP) ESM - LOW SPEED PORT
  5855. CON 601,/COMSDFS/RM0172 (DP) STORNET
  5856. CON 0 END OF TABLE
  5857. BML SPACE 4,10
  5858. * BINARY MAINTENANCE LOG MESSAGE.
  5859.  
  5860. BML BSS 0
  5861.  
  5862. BMLID VFD 12/ MESSAGE ID
  5863.  
  5864. BMLSC VFD 12/ SYMPTOM CODE
  5865.  
  5866. BMLPP VFD 6/ PP NUMBER
  5867. VFD 6/ CHANNEL NUMBER
  5868.  
  5869. BMLUN VFD 6/0 EQUIPMENT NUMBER
  5870. VFD 6/ UNIT NUMBER
  5871.  
  5872. VFD 12/0 RESERVED
  5873.  
  5874. BMLEO VFD 12/ EST ORDINAL
  5875.  
  5876. VFD 24/0 RESERVED
  5877. BMLMF VFD 12/ MAINFRAME ID
  5878.  
  5879. VFD 12/0 RESERVED
  5880.  
  5881. BMLL EQU *-BML MESSAGE LENGTH
  5882. IFL SPACE 4,15
  5883. ** IFL - INITIATE FIRMWARE LOAD.
  5884. *
  5885. * ENTRY (FT) = FUNCTION TYPE (1 IF *UP*, 0 IF *DOWN*).
  5886. * (MX) = MUX CHANNEL FLAG.
  5887. * (CN - CN+4) = *EQDE* EST WORD.
  5888. *
  5889. * USES IR+2, IR+4, CM - CM+4.
  5890. *
  5891. * CALLS RCE.
  5892. *
  5893. * MACROS EXECUTE, MONITOR.
  5894.  
  5895.  
  5896. * CHECK FOR FIRMWARE LOAD COMPLETE.
  5897.  
  5898. IFL1 RJM RCE READ CONTROLWARE TABLE ENTRY
  5899. SHN 21-13
  5900. PJN IFLX IF LOAD IS COMPLETE
  5901.  
  5902. * ENTER PP RECALL QUEUE.
  5903.  
  5904. LDK ZERL SET 1 SECOND TIMED RECALL PARAMETERS
  5905. CRD CM
  5906. LDM IDSC RESTORE ORIGINAL CONTENTS
  5907. STD IR+2
  5908. LDD MA SET PP INPUT REGISTER IMAGE
  5909. CWD IR
  5910. MONITOR RECM ENTER RECALL AND DROP PP
  5911. LJM PPR EXIT TO PP RESIDENT
  5912.  
  5913. IFL SUBR ENTRY
  5914. LDD CN
  5915. SHN 21-13
  5916. PJN IFLX IF NOT MASS STORAGE
  5917. LDD MX
  5918. NJN IFLX IF MUX CHANNEL
  5919. LDD FT
  5920. ZJN IFLX IF *DOWN* REQUEST
  5921. RJM RCE READ CONTROLWARE TABLE
  5922. LPN 37
  5923. ZJN IFLX IF NO CONTROLWARE
  5924. LDN **
  5925. IFLA EQU *-1
  5926. ZJP IFL1 IF FIRMWARE RELOAD ALREADY STARTED
  5927.  
  5928. * SET RELOAD REQUEST FLAG IN CONTROLWARE TABLE.
  5929.  
  5930. LDD TA+1
  5931. STD CM+4
  5932. LDD TA
  5933. STD CM+3
  5934. LDN 1 SET REQUEST COUNT
  5935. STD CM+1
  5936. LDD MA PLACE PARAMETERS IN MESSAGE BUFFER
  5937. CWM IFLE,ON
  5938. MONITOR UTEM
  5939.  
  5940. * USE THIS PP TO INITIATE CONTROLWARE RELOAD.
  5941.  
  5942. LDM IDSC SET FUNCTION CODE
  5943. SCN 77 PRESERVE BUFFER LOCK/LOGGING CONTROL BITS
  5944. LMN /1DS/ILJF
  5945. STD IR+2
  5946. LDD TH SET *UPCF* CALL FLAG
  5947. RAD IR+4
  5948. LDD IA REWRITE PP INPUT REGISTER
  5949. CWD IR
  5950. EXECUTE 1DS,=
  5951. LJM PPR EXIT TO PP RESIDENT
  5952.  
  5953.  
  5954. IFLE VFD 1/0,5/,6/1,6/13,42/1 *UTEM* REQUEST
  5955. IMS SPACE 4,15
  5956. ** IMS - ISSUE MESSAGES TO THE ERRLOG AND BML.
  5957. *
  5958. * ENTRY (A) = MESSAGE INDEX.
  5959. * (CH) = CHANNEL NUMBER.
  5960. * (IR+4) = DRIVER CALL FLAG.
  5961. * (MI) = INCREMENTED IF MESSAGES WERE ISSUED.
  5962. * (T5) = EST ORDINAL.
  5963. *
  5964. * EXIT (A) .GE. 0.
  5965. *
  5966. * USES S1, T1.
  5967. *
  5968. * CALLS C2D, DFM, IBM.
  5969.  
  5970.  
  5971. * *MSI0* PROCESSOR.
  5972.  
  5973. IMS1 LDD CH CONVERT CHANNEL NUMBER TO DISPLAY CODE
  5974. RJM C2D
  5975. STM MSG0+1
  5976.  
  5977. * *MSI1* PROCESSOR.
  5978.  
  5979. IMS2 LDD T5 CONVERT EST ORDINAL TO DISPLAY CODE
  5980. SHN -3
  5981. RJM C2D
  5982. STM MSG1+1
  5983. LDD T5
  5984. LPN 7
  5985. SHN 6
  5986. ADC 2R0
  5987. STM MSG1+2
  5988. LDM IMSB,S1 ISSUE ERRLOG MESSAGE
  5989. LMK ERLN
  5990. RJM DFM
  5991. RJM IBM ISSUE BML MESSAGE
  5992. * LDN 0
  5993.  
  5994. IMS SUBR ENTRY/EXIT
  5995. STD S1 SAVE MESSAGE INDEX
  5996. LDD IR+4
  5997. SHN 21-13
  5998. PJN IMSX IF NOT CALLED BY DRIVER
  5999. AOD MI SET *MESSAGE ISSUED* FLAG
  6000. LDM IMSA,S1 GET PROCESSOR ADDRESS
  6001. STD T1
  6002. LJM 0,T1 ENTER PROCESSOR
  6003.  
  6004.  
  6005. * MESSAGE INDICES.
  6006.  
  6007. BEGIN BSSN 0
  6008. MSI0 BSSN 1
  6009. MSI1 BSSN 1
  6010. MSIX BSSN 1 MAXIMUM INDEX + 1
  6011. END BSSN
  6012.  
  6013.  
  6014. * TABLE OF PROCESSOR ADDRESSES.
  6015.  
  6016. IMSA INDEX
  6017. INDEX MSI0,IMS1
  6018. INDEX MSI1,IMS2
  6019. INDEX MSIX
  6020.  
  6021.  
  6022. * TABLE OF MESSAGE ADDRESSES.
  6023.  
  6024. IMSB INDEX
  6025. INDEX MSI0,MSG0
  6026. INDEX MSI1,MSG1
  6027. INDEX MSIX
  6028.  
  6029.  
  6030. MSG0 DATA 6HCHXX,
  6031. MSG1 DATA C*EQXXX DOWNED BY SYSTEM.*
  6032. RCE SPACE 4,10
  6033. ** RCE - READ CONTROLWARE TABLE ENTRY.
  6034. *
  6035. * ENTRY (CB) = CONTROLWARE TABLE BYTE ADDRESS.
  6036. * (TA - TA+1) = CONTROLWARE TABLE WORD ADDRESS.
  6037. *
  6038. * EXIT (A) = CONTROLWARE TABLE ENTRY.
  6039. *
  6040. * USES CM - CM+4.
  6041.  
  6042.  
  6043. RCE SUBR ENTRY/EXIT
  6044. LDD TA
  6045. SHN 14
  6046. LMD TA+1
  6047. CRD CM
  6048. LDI CB
  6049. UJN RCEX RETURN
  6050. RCH SPACE 4,30
  6051. ** RCH - REQUEST CHANNEL ASSIGNMENT.
  6052. *
  6053. * THIS SUBROUTINE DETERMINES IF CHANNEL ASSIGNMENT TO THIS PP
  6054. * IS NECESSARY BEFORE PROCEDING WITH THE *UP*/*DOWN* FUNCTION.
  6055. * IF THE CHANNEL MUST BE ASSIGNED, THE *CCHM* MONITOR FUNCTION
  6056. * WILL BE REPEATEDLY ISSUED UNTIL EITHER THE ASSIGNMENT OCCURS
  6057. * OR CHANNEL ASSIGNMENT BECOMES IMPOSSIBLE DUE TO ASSIGNMENT OF
  6058. * THE CHANNEL TO A JOB.
  6059. *
  6060. * ENTRY (CH) = CHANNEL NUMBER (AND CONCURRENCY FLAG).
  6061. * (CS) = CHANNEL STATUS.
  6062. * (FT) = FUNCTION TYPE (1 IF *UP*, 0 IF *DOWN*).
  6063. * (MX) = 100 IF MUX CHANNEL.
  6064. * (CN - CN+4) = WORD *EQDE* OF EST ENTRY.
  6065. *
  6066. * EXIT (A) .GE. 0 IF ONE OF THE FOLLOWING IS TRUE -
  6067. * A. CHANNEL ASSIGNMENT IS NOT REQUIRED FOR
  6068. * PROCESSING THIS FUNCTION.
  6069. * B. CHANNEL ASSIGNMENT IS NOT REQUIRED FOR
  6070. * PROCESSING THIS DEVICE TYPE.
  6071. * C. THE CHANNEL WAS ALREADY ASSIGNED.
  6072. * D. THE CHANNEL IS A MUX CHANNEL.
  6073. * E. CHANNEL ASSIGNMENT WAS OBTAINED.
  6074. * .LT. 0 IF THE CHANNEL IS PRESENTLY ASSIGNED TO A
  6075. * JOB.
  6076. * (CS) = 1 IF CHANNEL ASSIGNED, ELSE 0.
  6077. *
  6078. * USES CM+1, CS.
  6079. *
  6080. * MACROS MONITOR, PAUSE.
  6081.  
  6082.  
  6083. RCH SUBR ENTRY/EXIT
  6084. LDD CN
  6085. SHN 0-13
  6086. ADD CS
  6087. ADD FT
  6088. ADD MX
  6089. NJN RCHX IF CHANNEL NOT TO BE ASSIGNED
  6090. RCH1 LDD CH REQUEST CHANNEL ASSIGNMENT
  6091. STD CM+1
  6092. MONITOR CCHM
  6093. LDD CM+1
  6094. SHN 21-5
  6095. MJN RCHX IF DOWN CHANNEL ASSIGNED TO JOB
  6096. LDD CM+2 SET CHANNEL STATUS
  6097. STD CS
  6098. NJN RCHX IF CHANNEL ASSIGNED
  6099. PAUSE ST
  6100. UJN RCH1 RETRY
  6101. RCS SPACE 4,30
  6102. ** RCS - REQUEST CHANNEL STATUS CHANGE.
  6103. *
  6104. * THIS SUBROUTINE REQUESTS, VIA THE *SEQM* MONITOR FUNCTION,
  6105. * THAT THE CHANNEL STATE BE CHANGED TO *UP* OR *DOWN* ON THE
  6106. * CURRENT DEVICE ACCORDING TO THE *1DS* FUNCTION BEING
  6107. * PROCESSED.
  6108. *
  6109. * ENTRY (CH) = CHANNEL NUMBER.
  6110. * (FT) = FUNCTION TYPE (1 IF *UP*, 0 IF *DOWN*).
  6111. * (MX) = 100 IF MUX CHANNEL.
  6112. * (TI) = DEVICE TABLE INDEX.
  6113. * (T5) = EST ORDINAL.
  6114. * (CN - CN+4) = WORD *EQDE* OF EST ENTRY.
  6115. *
  6116. * EXIT (A) .GE. 0 IF CHANNEL STATUS HAS BEEN CHANGED.
  6117. * .LT. 0 IF THE *SEQM* REQUEST WAS REJECTED. THIS
  6118. * CAN OCCUR IN THE FOLLOWING CASES -
  6119. * A. THE REQUEST IS TO *UP* THE CHANNEL AND
  6120. * IT IS PRESENTLY ASSIGNED TO A
  6121. * DIAGNOSTIC JOB.
  6122. * B. THE REQUEST IS TO *DOWN* THE CHANNEL
  6123. * AND THE CHANNEL PROVIDES THE ONLY
  6124. * NON-DOWN ACCESS PATH TO THE SPECIFIED
  6125. * DEVICE AND THAT DEVICE IS NOT DOWN.
  6126. *
  6127. * USES T1, CM+1 - CM+4.
  6128. *
  6129. * CALLS IFL, IMS.
  6130. *
  6131. * MACROS MONITOR.
  6132.  
  6133.  
  6134. RCS6 LDD T1
  6135. SHN -1
  6136. STD T1
  6137. NJN RCS1 IF MORE RETRIES REQUIRED
  6138. LCN 0 SET REJECT STATUS
  6139.  
  6140. RCS SUBR ENTRY/EXIT
  6141. LDN 10 SET RETRY CONTROL
  6142. STD T1
  6143. RCS1 LDD T5 STORE EST ORDINAL IN REQUEST
  6144. STD CM+1
  6145. ERRNZ UPCS-DNCS-1 CODE DEPENDS ON VALUE
  6146. LDD FT SET *SEQM* SUBFUNCTION
  6147. ADK DNCS
  6148. STD CM+2
  6149. LDD CH STORE CHANNEL IN REQUEST
  6150. STD CM+3
  6151. LDD MX STORE MUX FLAG IN REQUEST
  6152. STD CM+4
  6153. MONITOR SEQM REQUEST CHANNEL STATUS CHANGE
  6154. LDD CM+1
  6155. ZJN RCS6 IF REQUEST WAS REJECTED
  6156. RJM IFL INITIATE FIRMWARE RELOAD IF NEEDED
  6157. LDD CN
  6158. SHN 0-13
  6159. NJN RCS4 IF MASS STORAGE DEVICE
  6160. LDD FT
  6161. ZJN RCS3 IF *DOWN* REQUEST
  6162. LDD T5 EST ORDINAL
  6163. STD CM+1
  6164. LDD CH CHANNEL NUMBER
  6165. STD CM+2
  6166. LDK SUCS *SCSM* SUBFUNCTION
  6167. STD CM+3
  6168. MONITOR SCSM SET CHANNEL STATE = *UP*
  6169. RCS3 LDD FT
  6170. ZJN RCS4.1 IF *DOWN* REQUEST
  6171. LDD T5 SET CONTROLWARE LOAD REQUIRED
  6172. STD CM+1
  6173. LDN SB0S SET SUBFUNCTION
  6174. STD CM+2
  6175. LCN 20 SET MASK
  6176. STD CM+3
  6177. LDN 20 SET VALUE
  6178. STD CM+4
  6179. MONITOR SEQM
  6180. RCS4 LDK MSI0 MESSAGE INDEX
  6181. RJM IMS ISSUE MESSAGES, IF NECESSARY
  6182. RCS4.1 LJM RCSX RETURN
  6183. PRS SPACE 4,10
  6184. ** PRS - PRESET.
  6185. *
  6186. * EXIT (CB) = CONTROLWARE TABLE BYTE ADDRESS.
  6187. * (CH) = CHANNEL NUMBER (INCLUDING CONCURRENCY FLAG).
  6188. * (CS) = 0.
  6189. * (FG) = CME FLAG.
  6190. * (FT) = FUNCTION TYPE (1 IF *UP*, 0 IF *DOWN*).
  6191. * (MI) = 0.
  6192. * (MX) = MUX FLAG (100 IF MUX CHANNEL, ELSE 0).
  6193. * (TA - TA+1) = CONTROLWARE TABLE WORD ADDRESS.
  6194. *
  6195. * USES CH, CS, FT, MI, MX, T1 - T3, CM - CM+4.
  6196.  
  6197.  
  6198. PRS SUBR ENTRY/EXIT
  6199. LDN 0
  6200. STD CS
  6201. STD MI
  6202. STD T1
  6203. LDD IR+3 SET CHANNEL NUMBER
  6204. LPN 77
  6205. STD CH
  6206. STD T2
  6207. STM CMVA+4
  6208. LDD IR+2 SET FUNCTION TYPE
  6209. ERRNZ /1DS/UPCF-/1DS/DWNF-1 CODE DEPENDS ON VALUE
  6210. SBN /1DS/DWNF
  6211. STD FT
  6212. LDD IR+3 SET/CLEAR MUX FLAG
  6213. LPC 100
  6214. STD MX
  6215. LDN 60D
  6216. STD T3
  6217. PRS1 AOD T1 ADVANCE CM WORD INDEX
  6218. LCN 5
  6219. RAD T2
  6220. PJN PRS1 IF NOT AT PROPER WORD
  6221. ADN 5+CM SET CONTROLWARE TABLE BYTE ADDRESS
  6222. STD CB
  6223. SBN CM
  6224. LPN 7
  6225. STD T2
  6226. PRS2 LCN 12D DECREMENT POSITION
  6227. RAD T3
  6228. SOD T2 DECREMENT BYTE NUMBER
  6229. PJN PRS2 IF NOT TO PROPER POSITION
  6230. LDD T3 BIT POSITION
  6231. ADN 13 ADD OFFSET OF BIT WITHIN BYTE
  6232. SHN 6
  6233. STM IFLE+1
  6234. SBK 200
  6235. RAM CDSD+1
  6236. STM CDSE+1
  6237. SBK 300
  6238. RAM CRCB+1
  6239. LDK CHTP READ CHANNEL STATUS TABLE
  6240. CRD CM
  6241. LDD CM+2
  6242. SHN 14
  6243. LMD CM+3
  6244. ADD T1
  6245. SBN 1
  6246. CRD CM
  6247. ADN CTALL*2 CONTROLWARE TABLE ADDRESS
  6248. STD TA+1
  6249. SHN -14
  6250. STD TA
  6251. LDI CB SAVE GLOBAL DOWN STATUS
  6252. LPN 40
  6253. RAM IFLA
  6254. LJM PRSX RETURN
  6255.  
  6256.  
  6257. OVERFLOW OVLA,/OVERLAY/BUFB
  6258. TTL 1DS - DSD REQUEST PROCESSOR.
  6259. SPACE 4,10
  6260. END
cdc/nos2.source/opl871/1ds.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator