Table of Contents

SFM

Table Of Contents

  • [00008] SFM - SYSTEM FILE MANAGER.
  • [00010] SYSTEM FILE MANAGER.
  • [00347] MACRO DEFINITIONS.
  • [00349] ABORT - ABORT CONTROL POINT.
  • [00366] ENTRY - DEFINE OVERLAY ENTRY NAME.
  • [00383] ERROR - RETURN ERROR CODE TO FET.
  • [00400] FCN - DEFINE FUNCTION PROCESSOR.
  • [00475] OVERLAY - GENERATE OVERLAY CONSTANTS.
  • [00507] PERR - PUT ERROR CODE IN PARAMETER BLOCK ENTRY.
  • [00527] SUBSYST - GENERATE SUBSYSTEM TABLE.
  • [00550] MAIN PROGRAM.
  • [00552] MAIN PROGRAM.
  • [00603] RESIDENT SUBROUTINES.
  • [00605] ABT - ABORT JOB.
  • [00630] ERR - ERROR EXIT PROCESSOR.
  • [00647] ERS - ENTER PP RECALL STACK.
  • [00669] CFB - CLEAR FILE BUSY.
  • [00690] DRF - DROP FILE.
  • [00708] EER - EVALUATE MASS STORAGE ERROR RETURN.
  • [00741] EFN - ENTER FILE NAME.
  • [00771] FDB - FLUSH DAYFILE BUFFER.
  • [00791] GFE - GET FET ADDRESS.
  • [00804] LLT - LOCATE LABEL TRACK.
  • [00827] SDA - SET DAYFILE POINTER ADDRESS.
  • [00848] SDT - SET DAYFILE TYPE.
  • [00868] RMS - READ MASS STORAGE.
  • [00885] RTI - RELEASE TRACK INTERLOCK.
  • [00903] WMS - WRITE MASS STORAGE.
  • [00920] WTI - WAIT FOR TRACK INTERLOCK.
  • [00982] CFS - CHECK FILE STATUS.
  • [01021] TDYN - TABLE OF DAYFILE NAMES.
  • [01711] SUBROUTINES.
  • [01713] CBL - CHECK DAYFILE BUFFER LENGTH.
  • [01734] CDF - COPY DAYFILE.
  • [01799] CIB - CLEAR FST INTERLOCK BIT.
  • [01832] SBA - SET BUFFER ADDRESS.
  • [01852] RDI - READ DEVICE INFORMATION SECTOR.
  • [01883] VBP - VALIDATE BUFFER POINTERS.
  • [01925] VEQ - VALIDATE EQUIPMENT.
  • [01954] PRS - PRESET PROGRAM.
  • [02109] TFCN - TABLE OF FUNCTION CODE PROCESSORS.
  • [02165] ABP - ABORT JOB.
  • [02220] ERP - COMMON ERROR EXIT FROM SFM.
  • [02975] CAC - CHECK ACTIVITY COUNTS.
  • [03010] SUBROUTINES.
  • [03012] CFE - CLEAR LOCAL FNT ENTRY.
  • [03036] CFI - CLEAR FLAG REGISTER INTERLOCK.
  • [03056] CFM - COMPARE FAMILY NAMES.
  • [03079] EXTENDED MEMORY - READ/WRITE EXTENDED MEMORY.
  • [03099] EFI - ENTER *FAT* ITEM.
  • [03174] IFA - INITIALIZE FAST ATTACH FILE.
  • [03238] IFC - INCREMENT FAST ATTACH COUNT.
  • [03261] RET - READ ENVIRONMENT TABLE.
  • [03296] RFS - READ FILE SYSTEM SECTOR.
  • [03345] SFR - SET FLAG REGISTER INTERLOCK.
  • [03386] SFS - SEARCH *FAT* SECTOR.
  • [03463] SFT - SEARCH *FAT* TABLE.
  • [03515] SMP - SET MULTI-MAINFRAME PARAMETERS.
  • [03567] SSF - SEARCH FOR *SYFT* FILE.
  • [03610] UFI - UPDATE *FAT* ITEM.
  • [03647] VLF - VERIFY LOCAL FILE.
  • [03691] WFS - WRITE FILE SYSTEM SECTOR.
  • [03710] WFW - WRITE *FAT* WORD.
  • [03765] SECURITY FUNCTIONS.
  • [03891] CSS - CHECK FOR SSJ= ENTRY POINT OR SUBSYSTEM ID.
  • [03910] MAIN ROUTINE.
  • [03984] SUBFUNCTION PROCESSORS.
  • [03986] IOS - RETURN BUFFER I/O STATISTICS.
  • [04142] RDD - RETURN DAYFILE DATA FROM SECTOR OF LOCAL AREAS.
  • [04295] PDAF - RETURN/CLEAR *PROBE* DATA TABLES.
  • [04373] CBS - CLEAR BUFFERED I/O STATISTICS.
  • [04459] RFDF - RETURN FAMILY ORDINAL TABLE FROM LOW CORE.
  • [04519] RSCF - RETURN SERVICE CLASS CONTROL TABLE FROM LOW CORE.
  • [04552] RSSF - RETURN SUBSYSTEM DATA.
  • [04634] TSSS - TABLE OF SUBSYSTEM STATUS INFORMATION.
  • [04650] DPT - DETERMINE *PROBE* TABLE LENGTH.
  • [04674] LPT - LOCK *PROBE* TABLES.
  • [04720] RPC - RETURN *PLD* COUNTS.
  • [04837] SDR - SET DEVICE RESIDENCE.
  • [04872] RCIF - RETURN/UPDATE SYSTEM SERVICE CLASS DATA.
  • [04967] GCA - GET CM BUFFER ADDRESS.
  • [05005] CSTF/SSTF/SUSF FUNCTION PROCESSOR.
  • [05130] TSSS - TABLE OF SUBSYSTEM STATUS INFORMATION.
  • [05138] MDFF FUNCTION PROCESSOR.
  • [05403] LID TABLE FUNCTION PROCESSORS.
  • [06000] SPTF - SET PID ATTRIBUTES.
  • [06060] SUBROUTINES.
  • [06062] ALD - ADD LID AND/OR SET NEW LID ATTRIBUTES.
  • [06168] CLI - CLEAR LID TABLE INTERLOCK.
  • [06183] DLD - DELETE LID.
  • [06240] FMP - FIND MATCHING PID.
  • [06300] ILT - INTERLOCK LID TABLE.
  • [06323] PER - PROCESS PARAMETER BLOCK ENTRY ERROR.
  • [06349] RLE - READ LID ENTRY.
  • [06411] RPE - READ PID ENTRY.
  • [06446] SMF - SET MAINFRAME DESCRIPTOR.
  • [06511] SNS - SET NETWORK STATUS.
  • [06583] SPA - SET PID ATTRIBUTES.
  • [06630] UTE - UPDATE LDT TABLE ENTRY.
  • [07185] TDMO - TABLE OF DAYFILE MESSAGE OPTIONS.
  • [07199] TDMP - TABLE OF DAYFILE MESSAGE PROCESSOR OPTIONS.
  • [07213] BWA - GET BUFFER WORD ADDRESS.
  • [07234] CML - CHECK MESSAGE LENGTH.

Source Code

SFM.txt
  1. IDENT SFM,SFM
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. STI$ EQU 1 SET UNCONDITIONAL RETURN FROM *COMPSTI*
  6. *COMMENT SFM - SYSTEM FILE MANAGER.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE SFM - SYSTEM FILE MANAGER.
  9. SPACE 4
  10. *** SFM - SYSTEM FILE MANAGER.
  11. * G. R. MANSFIELD. 70/10/02.
  12. * R. A. JAPS. 75/01/02.
  13. * S. L. KSANDER. 75/05/26.
  14. * P. D. HAAS. 79/05/23.
  15. SPACE 4
  16. *** SFM PERFORMS VARIOUS FILE MANAGING TASKS FOR A JOB.
  17. SPACE 4
  18. *** CALL.
  19. *
  20. *
  21. *T 18/ *SFM*,1/,1/1,4/,12/ CODE,6/,18/ FET
  22. * CODE FUNCTION CODE
  23. * FET ADDRESS OF FET
  24. *
  25. *T FET 42/ LFN , 17/ , 1/0
  26. *T,FET+1 12/ ET , 3/ , 1/E, 26/ , 18/ FIRST
  27. *T,FET+2 42/ , 18/ IN
  28. *T,FET+3 42/ , 18/ OUT
  29. *T,FET+4 42/ , 18/ LIMIT
  30. *T,FET+5 60/
  31. *T,FET+6 60/
  32. *T,FET+7 12/ EQ, 24/ , 12/ TY, 6/ , 6/ WI
  33. *
  34. * LFN = LOCAL FILE NAME.
  35. * ET = EQUIPMENT TYPE.
  36. * E = RETURN ERROR CODE.
  37. * EQ = EST ORDINAL.
  38. * TY = DAYFILE TYPE. (SEE COMSIOQ FOR DEFINED CODES).
  39. * 1 = SYSTEM DAYFILE
  40. * 2 = ACCOUNT DAYFILE
  41. * 3 = ERRLOG DAYFILE
  42. * 4 = MAINTENANCE LOG DAYFILE
  43. * WI = WORD INDEX IN SECTOR (SETDI).
  44. *
  45. * RETURN.
  46. *
  47. *T FET 42/ *FILE NAME*,8/ EC,9/,1/1
  48. * EC ERROR CODE
  49. SPACE 4
  50. *** DAYFILE MESSAGES.
  51. *
  52. *
  53. * * SFM ARGUMENT ERROR.*
  54. * ARGUMENT TO SFM WAS OUT OF RANGE.
  55. *
  56. * * SFM BML MESSAGE LENGTH ERROR.*
  57. * BML MESSAGE LENGTH IS = 0, OR .GT. 6.
  58. *
  59. * * SFM INCORRECT REQUEST.*
  60. * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS -
  61. * 1. SFM NOT CALLED WITH AUTO RECALL.
  62. * 2. FUNCTION CODE OUT OF RANGE.
  63. * 3. USER DOES NOT HAVE SYSTEM ORIGIN PRIVILEGES.
  64. * 4. CALLING PROGRAM IS NOT SSJ=.
  65. *
  66. * * SFM INCORRECT DAYFILE CODE.*
  67. * DAYFILE CODE PASSED IN THE FET WAS NOT WITHIN RANGE.
  68. *
  69. * * SFM INCORRECT EQUIPMENT.*
  70. * EQUIPMENT NOT WITHIN EST OR NOT MASS STORAGE.
  71. *
  72. * * SFM FILE NOT FOUND.*
  73. * REQUESTED FILE WAS NOT FOUND.
  74. *
  75. * * SFM DUPLICATE FILE FOUND.*
  76. * THE REQUESTED FILE IS ALREADY ATTACHED TO THE
  77. * CONTROL POINT.
  78. *
  79. * * SFM FILE NOT ON MASS STORAGE.*
  80. * SELF EXPLANATORY.
  81. *
  82. * * SFM I/O SEQUENCE ERROR.*
  83. * ACTION HAS BEEN REQUESTED ON A BUSY FILE.
  84. *
  85. * * SFM FILE EMPTY.*
  86. * SELF EXPLANATORY.
  87. *
  88. * * SFM FILE NAME ERROR.*
  89. * FILE NAME, LFN, PASSED THROUGH FET IS NOT A
  90. * VALID FILE NAME.
  91. *
  92. * * SFM FNT FULL.*
  93. * A FAST ATTACH FILE COULD NOT BE CREATED BECAUSE
  94. * THE FNT WAS FULL.
  95. *
  96. * * SFM INCORRECT FILE TYPE.*
  97. * FILE MUST BE LOCAL FOR SYSTEM FILE AND DIRECT
  98. * ACCESS FOR FAST ATTACH FILE.
  99. *
  100. * * SFM DIRECT ACCESS FILE ERROR.*
  101. * ERROR WAS ENCOUNTERED ON SYSTEM SECTOR OF A DIRECT
  102. * ACCESS FILE.
  103. *
  104. * * XXXXXXX TERMINATED.*
  105. * THE DAYFILE XXXXXXX, HAS BEEN TERMINATED.
  106. * (ISSUED TO SYSTEM AND CONTROL POINT DAYFILES).
  107. *
  108. * * DAYFILE TERMINATED.*
  109. * SELF EXPLANATORY. (ISSUED TO TERMINATED DAYFILE).
  110. *
  111. * * SFM UNABLE TO INTERLOCK DEVICE.*
  112. * REQUEST WAS NOT PERFORMED BECAUSE DEVICE COULD
  113. * NOT BE INTERLOCKED.
  114. *
  115. * * SFM TRACK INTERLOCK ERROR.*
  116. * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS.
  117. * 1. TRACK WAS INTERLOCKED WHEN IT SHOULD NOT
  118. * HAVE BEEN.
  119. * 2. TRACK WAS NOT INTERLOCKED WHEN IT SHOULD
  120. * HAVE BEEN.
  121. *
  122. * * SFM SYSTEM SECTOR ERROR.*
  123. * AN ERROR HAS BEEN ENCOUNTERED WHILE ATTEMPTING
  124. * TO READ A SYSTEM SECTOR.
  125. *
  126. * * SFM GLOBAL FAST ATTACH LIMIT.*
  127. * THIS MESSAGE IS ISSUED WHEN A REQUEST IS
  128. * MADE TO ENTER A GLOBAL FAST ATTACH FILE
  129. * AND NO SPACE IS AVAILABLE IN THE *FAT*.
  130. *
  131. * * SFM ABORTED.*
  132. * ERROR FLAG WAS SET AT SFM,S CONTROL POINT.
  133. *
  134. * * SFM UNRECOVERABLE LINK DEVICE ERROR.*
  135. * READ OR WRITE ERROR WHEN ATTEMPTING TO UPDATE
  136. * *FAT* ENTRIES ON LINK DEVICE.
  137. *
  138. * * SFM FAST ATTACH SYSTEM SECTOR ERROR.*
  139. * AN UNRECOVERABLE ERROR WAS DETECTED WHEN TRYING TO
  140. * READ THE SYSTEM SECTOR OF THE FILE BEING ENTERED
  141. * INTO FAST ATTACH STATUS. THE FILE WAS ENTERED,
  142. * HOWEVER, THE SYSTEM SECTOR POINTERS WERE NOT SET.
  143. * THIS FILE MAY NOT BE DUMPED PROPERLY BY *PFDUMP*
  144. * WHEN THIS OCCURS.
  145. *
  146. * * SFM LINK FAST ATTACH FILE NOT FOUND.*
  147. * AN ATTEMPT TO LINK TO AN EXISTING FAST ATTACH FILE
  148. * WAS UNSUCCESSFUL BECAUSE THE FILE WAS NOT FOUND
  149. * IN THE *FAT*.
  150. *
  151. * * SFM FAMILY STILL ACTIVE.*
  152. * AN ATTEMPT HAS BEEN MADE TO REMOVE A FAST ATTACH FILE
  153. * FROM A FAMILY WHILE ACTIVITY STILL EXISTS WITHIN
  154. * THAT FAMILY.
  155. *
  156. * THE FOLLOWING ERROR MESSAGES ARE ISSUED IF THE *EP* BIT
  157. * IS NOT SET. OTHERWISE, THE SPECIFIED ERROR CODE IS
  158. * RETURNED TO FET+0. ERRORS FOR THOSE FUNCTIONS WHICH
  159. * HAVE ONLY A ONE-WORD PARAMETER BLOCK WILL ALWAYS BE
  160. * PROCESSED AS IF *EP* HAD BEEN SET. (THESE ERRORS
  161. * ARE DOCUMENTED BELOW IN PARENTHESES.)
  162. *
  163. * * SFM DAYFILE BUSY.*
  164. * EC = 1. THE DAYFILE IS CURRENTLY BUSY.
  165. *
  166. * * SFM MASS STORAGE NOT AVAILABLE.*
  167. * EC = 2. MASS STORAGE IS NOT AVAILABLE ON THE
  168. * SPECIFIED DEVICE.
  169. *
  170. * * SFM FILE NOT FOUND.*
  171. * EC = 3. THE FILE FOR WHICH ACTION HAS BEEN
  172. * REQUESTED CAN NOT BE FOUND.
  173. *
  174. * * SFM UNCORRECTABLE RMS ERROR.*
  175. * EC = 4. AN UNCORRECTABLE RMS ERROR HAS BEEN DETECTED
  176. * DURING AN I/O OPERATION.
  177. *
  178. * + *CPD* NOT ACTIVE.+
  179. * EC = 5. *SFM* WAS CALLED TO SET THE *CPD* DROP
  180. * FLAG WHEN *CPD* WAS NOT ACTIVE.
  181. *
  182. * * SFM - LID TABLE TOO LONG FOR BUFFER.*
  183. * EC = 6. AN ATTEMPT WAS MADE TO GET A COPY OF THE
  184. * LID TABLE BUT THE LIDT WAS LARGER THAN THE CALLER-S
  185. * BUFFER.
  186. *
  187. * (LID UNKNOWN OR NOT LEGAL.)
  188. * EC=7. THE SPECIFIED LID WAS NOT FOUND IN THE
  189. * LID TABLE, OR IS NOT EXACTLY 3 CHARACTERS LONG.
  190. *
  191. * ( INCORRECT LID ATTRIBUTES.)
  192. * EC=10. THE SPECIFIED ATTRIBUTES ARE NOT CORRECT FOR
  193. * THE SPECIFIED LID.
  194. *
  195. * ( CURRENT ATTRIBUTES NOT IN LID TABLE.)
  196. * EC = 11. THE CURRENT ATTRIBUTES SPECIFIED DO NOT
  197. * MATCH THOSE CURRENTLY IN THE LID TABLE FOR THE
  198. * SPECIFIED LID.
  199. *
  200. * ( LID TABLE OVERFLOW.)
  201. * EC = 12. THE SPECIFIED NEW LID CANNOT BE ADDED TO THE
  202. * LID TABLE, SINCE THE LID TABLE IS ALREADY FULL.
  203. *
  204. * ( TOO MANY HOST LIDS.)
  205. * EC = 13. THE SPECIFIED NEW HOST LID CANNOT BE ADDED
  206. * TO THE LID TABLE, SINCE THE TABLE ALREADY CONTAINS
  207. * THE MAXIMUM NUMBER OF HOST LIDS.
  208. *
  209. * ( INCORRECT SUBFUNCTION CODE.)
  210. * EC = 14. THE SPECIFIED SUBFUNCTION IS NOT DEFINED FOR
  211. * THIS FUNCTION.
  212. *
  213. * ( INCORRECT NETWORK STATUS PARAMETER.)
  214. * EC = 15. THE SPECIFIED NETWORK STATUS IS NOT VALID.
  215. *
  216. * ( CHECK PARAMETER BLOCK ENTRIES FOR ERROR.)
  217. * EC = 16. AT LEAST ONE PARAMETER BLOCK ENTRY COULD NOT
  218. * BE PROCESSED DUE TO AN ERROR DETECTED. THE CALLER MAY
  219. * NEED TO CHECK EACH PARAMETER ENTRY (BYTE 4) TO DETER-
  220. * MINE WHICH ONES WERE NOT PROCESSED, AND WHY.
  221. SPACE 4
  222. *** ACCOUNT FILE MESSAGES.
  223. *
  224. *
  225. * *SDCA, XXXXXX.XXXSECS.*
  226. * CPU MONITOR PROGRAM MODE TIME.
  227. *
  228. * *SDCM, XXXXXX.XXXKUNS.*
  229. * NUMBER OF STORAGE MOVES.
  230. *
  231. * *SDMR, XXXXXX.XXXKUNS.*
  232. * CONTROL POINTS MOVED.
  233. *
  234. * *SDMS, XXXXXX.XXXKUNS.*
  235. * SECTORS ROLLED.
  236. *
  237. * *SDNF, XXXXXX.XXXKUNS.*
  238. * NUMBER OF FL INCREASES TO NFL.
  239. *
  240. * *SDSF, XXXXXX.XXXKUNS.*
  241. * NUMBER OF TIMES RECALL STACK IS FULL.
  242. *
  243. * *SDTS, XXXXXX.XXXKUNS.*
  244. * JOBS ROLLED DUE TO TIME SLICE.
  245. *
  246. * *SDTO, XXXXXX.XXXKUNS.*
  247. * JOBS ROLLED DUE TO SLICE LIMIT OR TIME SLICE
  248. * WITH OUTPUT PENDING.
  249. *
  250. * *SDPX, XXXXXX.XXXKUNS.*
  251. * PP EXCHANGE PRIORITY REQUESTS.
  252. *
  253. * *ABST, X...X.*
  254. * SYSTEM TITLE.
  255. *
  256. * *ABSV, X...X.*
  257. * SYSTEM VERSION.
  258. *
  259. * *ABSY, YY/MM/DD.*
  260. * BEGINNING OF A NEW ACCOUNT DAYFILE DUE TO
  261. * INITIALIZATION OR TERMINATION ON DATE
  262. * YY/MM/DD.
  263. *
  264. * *AESY, YY/MM/DD.*
  265. * END OF AN ACCOUNT DAYFILE ON DATE YY/MM/DD.
  266. SPACE 4,10
  267. *** ERROR LOG MESSAGES.
  268. *
  269. *
  270. * *CHXX,YYYYYYYYY.* = EQUIPMENT ON CHANNEL XX IS RUNNING WITH
  271. * FIRMWARE REVISION YYYYYYYYY.
  272. *
  273. * *ETXXX, UYY,PS=ZZZZZZ.* = THE PACK ON PHYSICAL UNIT YY OF EST
  274. * ORDINAL XXX OF TYPE ET HAS A SERIAL NUMBER OF ZZZZZZ.
  275. SPACE 4
  276. SPACE 4
  277. ** ROUTINES CALLED.
  278. *
  279. *
  280. * 0BF - BEGIN FILE.
  281. * 0DF - DROP FILE.
  282. * 0TD - TERMINATE DAYFILE.
  283. * 0CI - IDENTIFY FIRMWARE.
  284. * 0PI - LIST PACK SERIAL NUMBER.
  285. SPACE 4
  286. *CALL COMPMAC
  287. *CALL COMSCPS
  288. *CALL COMSSSD
  289. *CALL COMSDFS
  290. *CALL COMSEJT
  291. *CALL COMSHIO
  292. *CALL COMSIOQ
  293. *CALL COMSLFD
  294. *CALL COMSMSC
  295. *CALL COMSMSP
  296. *CALL COMSMST
  297. QUAL COMSMTX
  298. *CALL COMSMTX
  299. QUAL *
  300. *CALL COMSPFM
  301. *CALL COMSPIM
  302. *CALL COMSSCD
  303. *CALL COMSSSE
  304. *CALL COMSSSJ
  305. QUAL TFM
  306. *CALL COMSTFM
  307. QUAL *
  308. *CALL COMSMMF
  309. *CALL COMSWEI
  310. *CALL COMSZOL
  311. LIST X
  312. *CALL COMSSFM
  313. LIST *
  314. SPACE 4,10
  315. **** DIRECT LOCATION ASSIGNMENTS.
  316.  
  317.  
  318. FS EQU 20 - 24 FST ENTRY (5 LOCATIONS)
  319. FT EQU 20 - 21 FIRST
  320. IN EQU 22 - 23 IN
  321. P0 EQU 25 OVERLAY PROCESSOR ADDRESS
  322. HI EQU 25 *FAT* INDEX OF AVAILABLE HOLE
  323. QA EQU 26 FNT ORDINAL
  324. FC EQU 27 *FAT* TABLE COUNT
  325. TY EQU 30 DAYFILE TYPE
  326. DA EQU 30 - 31 LINK DEVICE PARAMETERS
  327. ID EQU 32 MACHINE ID
  328. CN EQU 33 - 37 CM WORD BUFFER
  329. FN EQU 40 - 44 FILE NAME (5 LOCATIONS)
  330. OT EQU 40 - 41 OUT
  331. LM EQU 42 - 43 LIMIT
  332. LS EQU 45 LAST FET STATUS
  333. JC EQU 46 JOB COUNT (MAXIMUM)
  334. MI EQU 46 MACHINE INDEX
  335. BA EQU 47 *FAT* ITEM BASE ADDRESS
  336. FA EQU 57 ADDRESS OF FNT ENTRY
  337. TE EQU 60 NUMBER OF TABLE ENTRIES (FNT)
  338. LO EQU 61 LAST MASS STORAGE ORDINAL + 1
  339. ES EQU 62 - 66 CM WORD BUFFER (EST ENTRY)
  340. FI EQU 67 *FAT* INDEX OF ENTRY / HOLE
  341. SPACE 4,10
  342. ** ASSEMBLY CONSTANTS.
  343.  
  344.  
  345. ILKN EQU 200000 INTERLOCK DAYFILE MESSAGE OPTION
  346. ****
  347. TITLE MACRO DEFINITIONS.
  348. ABORT SPACE 4,10
  349. ** ABORT - ABORT CONTROL POINT.
  350. *
  351. * ABORT ADDR
  352. *
  353. * ENTRY *ADDR* = MESSAGE ADDRESS.
  354. *
  355. * EXIT TO *ABT*.
  356.  
  357.  
  358. PURGMAC ABORT
  359.  
  360. ABORT MACRO A
  361. MACREF ABORT
  362. LDC A
  363. LJM ABT
  364. ENDM
  365. ENTRY SPACE 4,10
  366. ** ENTRY - DEFINE OVERLAY ENTRY NAME.
  367. *
  368. * ENTRY NAME
  369. *
  370. * ENTRY *NAME* = NAME OF PROCESSOR ADDRESS.
  371.  
  372.  
  373. PURGMAC ENTRY
  374.  
  375. MACRO ENTRY,N
  376. MACREF ENTRY
  377. QUAL
  378. N EQU *+1R".M"*10000B
  379. QUAL ".O"
  380. N BSS 0
  381. ENDM
  382. ERROR SPACE 4,10
  383. ** ERROR - RETURN ERROR CODE TO FET.
  384. *
  385. * ERROR EC
  386. *
  387. * ENTRY *EC* = ERROR CODE.
  388. *
  389. * EXIT TO *ERR*.
  390.  
  391.  
  392. PURGMAC ERROR
  393.  
  394. ERROR MACRO E
  395. MACREF ERROR
  396. LDN E
  397. LJM ERR
  398. ENDM
  399. FCN SPACE 4,50
  400. ** FCN - DEFINE FUNCTION PROCESSOR.
  401. *
  402. * TN FCN F,N,L,P,S,M,E,A
  403. *
  404. * TN TABLE NAME (FIRST CALL ONLY).
  405. * F FUNCTION CODE.
  406. * N NAME OF FUNCTION PROCESSOR.
  407. * L REQUIRED FET LENGTH - 1.
  408. * P CALLER MUST HAVE SYSTEM ORIGIN PRIVILEGES.
  409. * S CALLER MUST BE SPECIAL SYSTEM JOB (SSJ).
  410. * M MAINTENANCE ACCESS ALLOWED
  411. * E EITHER SSJ= OR SYSTEM ORIGIN PRIVILEGES REQUIRED.
  412. * A ALLOW ACCESS IF CALLER HAS PRIVILEGED ANALYST
  413. * VALIDATION AND IF *PRIVILEGED ANALYST MODE* ENABLED.
  414. *
  415. * TABLE GENERATED.
  416. *
  417. *T,TN 12/O,12/N,1/S,1/P,1/M,1/E,1/A,1/0,6/L
  418. *
  419. * O OVERLAY NAME (LAST CHARACTER)
  420. * N PROCESSOR ADDRESS
  421. * S SSJ= REQUIRED
  422. * P SYSTEM ORIGIN PRIVILEDGES REQUIRED
  423. * M MAINTENANCE ACCESS ALLOWED
  424. * E EITHER SSJ= OR SYSTEM ORIGIN PRIVILEGES REQUIRED.
  425. * A ALLOW ACCESS IF CALLER HAS PRIVILEGED ANALYST
  426. * VALIDATION AND IF *PRIVILEGED ANALYST MODE* ENABLED.
  427. * L REQUIRED FET LENGTH - 1
  428.  
  429.  
  430. MACRO FCN,TN,F,N,L,P,S,M,E,A
  431. MACREF FCN
  432. .1 IFC NE,$TN$$
  433. TN BSS 0
  434. .T SET TN
  435. .1 ELSE
  436. ORG .T+3*F
  437. .2 IFC NE,$N$$
  438. LOC F
  439. CON N/10000B,N-N/10000B*10000B
  440. .3 IFC EQ,$S$SSJ$
  441. VFD 1/1
  442. .3 ELSE
  443. VFD 1/0
  444. .3 ENDIF
  445. .4 IFC NE,$P$$
  446. VFD 1/1
  447. .4 ELSE
  448. VFD 1/0
  449. .4 ENDIF
  450. .5 IFC NE,$M$$
  451. VFD 1/1
  452. .5 ELSE
  453. VFD 1/0
  454. .5 ENDIF
  455. .6 IFC NE,$E$$
  456. VFD 1/1
  457. .6 ELSE
  458. VFD 1/0
  459. .6 ENDIF
  460. .7 IFC NE,$A$$
  461. VFD 1/1
  462. .7 ELSE
  463. VFD 1/0
  464. .7 ENDIF
  465. VFD 1/0
  466. VFD 6/L
  467. .2 ENDIF
  468. BSS 0
  469. .1 ENDIF
  470. ENDM
  471. SPACE 4,2
  472. .N SET 0
  473. OVLB MICRO 1,, 3S BASE OVERLAY NAME
  474. OVERLAY SPACE 4,20
  475. ** OVERLAY - GENERATE OVERLAY CONSTANTS.
  476. *
  477. * OVERLAY (TEXT),LOAD,NQ
  478. *
  479. * ENTRY *TEXT* = TEXT FOR SUBTITLE.
  480. * *LOAD* = IF SPECIFIED, DEFINE ORIGIN ADDRESS.
  481. * *NQ* = IF SPECIFIED, OVERLAY NOT QUALIFIED.
  482.  
  483. PURGMAC OVERLAY
  484.  
  485. OVERLAY MACRO TEXT,LOAD,NQ
  486. QUAL
  487. NOREF .N
  488. MACREF OVERLAY
  489. .N SET .N+1
  490. .M MICRO .N,1, ZYXWVUTSRQPONMLKJIHGFEDCBA
  491. .O MICRO 1,3 "OVLB"".M"
  492. IFC EQ,*NQ**,1
  493. QUAL ".O"
  494. TTL SFM/".O" - TEXT
  495. IDENT ".O",OVL TEXT
  496. TITLE
  497. *COMMENT SFM - TEXT
  498. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  499. IFC NE,*LOAD**
  500. ORG LOAD
  501. ELSE 1
  502. ORG OVLA
  503. OVL LJM *
  504. UJN OVL
  505. ENDM
  506. PERR SPACE 4,10
  507. ** PERR - PUT ERROR CODE IN PARAMETER BLOCK ENTRY.
  508. *
  509. * PERR EC
  510. *
  511. * ENTRY *EC* = ERROR CODE.
  512. *
  513. * EXIT *EC* PLACED IN BYTE 4 OF PARAMETER BLOCK ENTRY
  514. * AND WORD REWRITTEN TO USER-S FL.
  515. *
  516. * CALLS /3SW/PER.
  517.  
  518.  
  519. PURGMAC PERR
  520.  
  521. PERR MACRO E
  522. MACREF PERR
  523. LDN E
  524. RJM PER
  525. ENDM
  526. SUBSYST SPACE 4,10
  527. ** SUBSYST - GENERATE SUBSYSTEM TABLE.
  528. *
  529. * SUBSYST NAME,ID,PR,PP,AUTO,DEF,DCP,CP,PROC,ABT
  530. *
  531. * ENTRY *ID* = SUBSYSTEM ID.
  532. *
  533. * GENERATE TABLE OF *SSSL* BYTES AND MASKS.
  534. *
  535. *T 12/ BYTE, 12/ MASK
  536.  
  537.  
  538. PURGMAC SUBSYST
  539.  
  540. SUBSYST MACRO NM,ID,PT,PP,AU,DF,DC,CP,PR,AB
  541. .SUB RMT
  542. .1 SET MXSI-ID
  543. .21 SET .1/12D
  544. .3 SET 4-.21 *SSSL* BYTE
  545. .4 DECMIC .1-12D*.21
  546. .5 SET 1S".4" *SSSL* MASK
  547. INDEX (MXSI*2-ID*2),(.3,.5)
  548. .SUB RMT
  549. SUBSYST ENDM
  550. TITLE MAIN PROGRAM.
  551. SFM SPACE 4
  552. ** SFM - MAIN PROGRAM.
  553.  
  554.  
  555. ORG PPFW
  556. SFM RJM PRS PRESET PROGRAM
  557. SFM1 LDC 0
  558. SFMA EQU *-1
  559. ZJN SFM2 IF NO OVERLAY LOAD
  560. LMC 2L"OVLB" LOAD OVERLAY
  561. RJM EXR
  562. SFM2 LJM * PROCESS REQUEST
  563. SFMB EQU *-1
  564.  
  565. SFMX RJM CFB SET FILE NOT BUSY
  566. RJM GFE READ FILE NAME
  567. CRD FN
  568. AOD LS SET FET NOT BUSY
  569. STD FN+4
  570. LDD FN+3
  571. SCN 77
  572. LMC 0
  573. SFMC EQU *-1 (ERROR CODE)
  574. STD FN+3
  575. RJM GFE STORE FET STATUS
  576. CWD FN
  577. SFMD LDN 0
  578. ZJN SFM3 IF NO SYSTEM SECTOR ERROR
  579. LDC ERFS * FAST ATTACH SYSTEM SECTOR ERROR.*
  580. RJM DFM
  581. SFM3 LDM SFMF
  582. ZJN DPP IF OPERATION COMPLETE
  583. STD T1
  584. LDD T5
  585. STM CKPA+3 SET EQUIPMENT IN REQUEST
  586. LDD CP SET CONTROL POINT
  587. SHN -7
  588. RAM 1,T1
  589. LDD IA STORE INPUT REGISTER
  590. CWM 0,ON
  591. SFMF EQU *-1
  592. EXECUTE CPD,=
  593. EXECUTE 1CK,=
  594. UJN SFM4 EXIT TO PP RESIDENT
  595.  
  596. DPP MONITOR DPPM DROP PP
  597. SFM4 LJM PPR EXIT TO PP RESIDENT
  598.  
  599. CKPA VFD 18/3R1CK,6/40,12/4,24/0
  600. ERFS DATA C* SFM FAST ATTACH SYSTEM SECTOR ERROR.*
  601.  
  602. FETL CON 0 FET LENGTH REQUIRED FOR FUNCTION
  603. TITLE RESIDENT SUBROUTINES.
  604. ABT SPACE 4
  605. ** ABT - ABORT JOB.
  606. *
  607. * ENTRY (A) = FWA OF MESSAGE.
  608. *
  609. * EXIT TO *ERR1*.
  610. * (DA) = ADDRESS OF MESSAGE.
  611. *
  612. * CALLS CFI.
  613.  
  614.  
  615. ABT BSS 0 ENTRY
  616. STD DA
  617. LDC 0
  618. * LDC 1 (*DATI* INTERLOCK SET)
  619. * LDC 2 (*DATI* AND *FATI* INTERLOCK SET)
  620. ABTB EQU *-1
  621. ZJN ABT0 IF NO FLAG REGISTER INTERLOCKS SET
  622. LDN DATI CLEAR *DATI* INTERLOCK
  623. RJM /3SY/CFI
  624. ZJN ABT0 IF *FATI* INTERLOCK NOT SET
  625. LDN FATI CLEAR *FATI* INTERLOCK
  626. RJM /3SY/CFI
  627. ABT0 LDC ABP
  628. UJN ERR1 LOAD ERROR PROCESSING OVERLAY
  629. ERR SPACE 4,10
  630. ** ERR - ERROR EXIT PROCESSOR.
  631. *
  632. * ENTRY (A) = ERROR CODE.
  633. *
  634. * EXIT TO *SFM0*.
  635. *
  636. * USES DA.
  637.  
  638.  
  639. ERR BSS 0 ENTRY
  640. STD DA
  641. LDC ERP
  642. ERR1 STM SFMB SET PROCESSOR ADDRESS
  643. SHN -14
  644. STM SFMA
  645. LJM SFM1 LOAD ERROR PROCESSING OVERLAY
  646. ERS SPACE 4,10
  647. ** ERS - ENTER PP RECALL STACK.
  648. *
  649. * ENTRY (A) = RECALL STACK REASON CODE.
  650. *
  651. * EXIT TO *PPR*.
  652. *
  653. * USES CM - CM+5.
  654. *
  655. * MACROS MONITOR.
  656.  
  657.  
  658. ERS BSS 0 ENTRY
  659. STD CM SAVE RECALL STACK REASON CODE
  660. LDN ZERL
  661. CRD CM+1
  662. LDD MA RECALL *SFM*
  663. CWD IR
  664. ADN 1
  665. CWD CM
  666. MONITOR RECM
  667. LJM PPR EXIT TO PP RESIDENT
  668. CFB SPACE 4,10
  669. ** CFB - CLEAR FILE BUSY.
  670. *
  671. * ENTRY (FA) = FNT ADDRESS OF BUSY FILE.
  672. * (FS - FS+4) = FST INFORMATION.
  673. *
  674. * EXIT (A) = (FA) = 0.
  675. *
  676. * MACROS NFA.
  677.  
  678.  
  679. CFB SUBR ENTRY/EXIT
  680. LDD FA
  681. ZJN CFBX IF NO FILE ASSIGNED
  682. AOD FS+4
  683. NFA FA,R CLEAR FILE BUSY
  684. ADN FSTL
  685. CWD FS
  686. LDN 0 CLEAR FNT ADDRESS
  687. STD FA
  688. UJN CFBX RETURN
  689. DRF SPACE 4,15
  690. ** DRF - DROP FILE.
  691. *
  692. * ENTRY (FA) = INDEX OF FNT ENTRY.
  693. *
  694. * EXIT (A) = (FA) = 0.
  695. *
  696. * ERROR TO *EER* IF MASS STORAGE DEVICE INACCESSIBLE.
  697. *
  698. * CALLS *0DF*.
  699.  
  700.  
  701. DRF SUBR ENTRY/EXIT
  702. LDN 1 SET *UNLOAD* FILE FLAG FOR *0DF*
  703. STM OVL0-1
  704. EXECUTE 0DF,OVL0
  705. ZJN DRFX IF FILE RELEASED
  706. * UJN EER EVALUATE MASS STORAGE ERROR RETURN
  707. EER SPACE 4,15
  708. ** EER - EVALUATE MASS STORAGE ERROR RETURN.
  709. *
  710. * ENTRY (T5) = EST ORDINAL.
  711. *
  712. * EXIT JOB IS ROLLED OUT TO WAIT FOR A DEVICE TO BECOME
  713. * ACCESSIBLE IF A NON-SUBSYSTEM JOB ENCOUNTERED A
  714. * RECOVERABLE READ/WRITE ERROR ON THE DEVICE.
  715. *
  716. * USES IR+4.
  717. *
  718. * CALLS CFB, RTI, *1RJ*.
  719. *
  720. * MACROS ENDMS, ERROR, EXECUTE, PAUSE.
  721.  
  722.  
  723. EER ENDMS
  724. RJM RTI RELEASE TRACK INTERLOCK
  725. LDM RDCT
  726. SHN 21-12
  727. PJN EER2 IF RECOVERABLE ERROR
  728. EER1 ERROR /ERR/RMS
  729.  
  730. EER2 LDM MSD CHECK CALLER
  731. SHN 21-13
  732. PJN EER1 IF SUBSYSTEM
  733. PAUSE
  734. LDD CM+1
  735. NJP SFMX IF ERROR FLAG SET
  736. RJM CFB
  737. LDD T5 SET EST ORDINAL
  738. STD IR+4
  739. EXECUTE 1RJ RECALL JOB
  740. EFN SPACE 4
  741. ** EFN - ENTER FILE NAME.
  742. *
  743. * ENTRY (FN - FN+4) = FILE NAME.
  744. *
  745. * EXIT (FA) = INDEX OF FNT ENTRY.
  746. * (FS - FS+4) = FST ENTRY.
  747. *
  748. * CALLS VFN, *0BF*.
  749. *
  750. * MACROS ABORT, EXECUTE.
  751.  
  752.  
  753. EFN SUBR ENTRY/EXIT
  754. RJM VFN VERIFY FILE NAME
  755. NJN EFN1 IF NO ERROR
  756. ABORT /MESS/ERFN * SFM FILE NAME ERROR.*
  757.  
  758. EFN1 LDN 0 SELECT NO RETURN WITHOUT FILE CREATED
  759. STM OVL0-1
  760. LDN NEEQ ASSIGN NULL EQUIPMENT
  761. STD FS
  762. EXECUTE 0BF,OVL0
  763. UJN EFNX RETURN WITH NEW FILE CREATED
  764.  
  765. * PROCESS ADVANCE EXIT FROM *0BF* IF FILE ALREADY EXISTS.
  766.  
  767. LDN 0 CLEAR FNT ENTRY ADDRESS
  768. STD FA
  769. ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
  770. FDB SPACE 4,10
  771. ** FDB - FLUSH DAYFILE BUFFER.
  772. *
  773. * ENTRY (A) = ADDRESS OF TERMINATING MESSAGE.
  774. * (TY) = DAYFILE TYPE.
  775. *
  776. * EXIT DAYFILE BUFFER FLUSHED.
  777. *
  778. * CALLS DFM, *0TD*.
  779. *
  780. * MACROS EXECUTE.
  781.  
  782.  
  783. FDB SUBR ENTRY/EXIT
  784. LMC ILKN ADD INTERLOCK REQUEST
  785. RJM DFM ISSUE DAYFILE MESSAGE
  786. LDD TY
  787. STM OVL0-1 SET *0TD* PARAMETER
  788. EXECUTE 0TD,OVL0 FLUSH BUFFER
  789. UJN FDBX RETURN
  790. GFE SPACE 4,5
  791. ** GFE - GET FET ADDRESS.
  792. *
  793. * EXIT (A) = FET ADDRESS.
  794.  
  795.  
  796. GFE SUBR ENTRY/EXIT
  797. LDD IR+3
  798. SHN 6
  799. ADD RA
  800. SHN 6
  801. ADD IR+4
  802. UJN GFEX RETURN
  803. LLT SPACE 4,10
  804. ** LLT - LOCATE LABEL TRACK.
  805. *
  806. * ENTRY (T5) = EST ORDINAL.
  807. *
  808. * EXIT (A) = (T6) = LABEL TRACK.
  809. * (CM - CM+4) = EST ENTRY.
  810. * (T0 - T4) = *ALGL* WORD OF MST.
  811. *
  812. * USES T6, CM - CM+4, T0 - T4.
  813.  
  814.  
  815. LLT SUBR ENTRY/EXIT
  816. SFA EST,T5 READ EST ENTRY
  817. ADK EQDE
  818. CRD CM
  819. LDD CM+4 READ *ALGL* WORD FROM THE MST
  820. SHN 3
  821. ADN ALGL
  822. CRD T0
  823. LDD T0+1 SET LABEL TRACK
  824. STD T6
  825. UJN LLTX RETURN
  826. SDA SPACE 4,8
  827. ** SDA - SET DAYFILE POINTER ADDRESS.
  828. *
  829. * ENTRY (TY) = DAYFILE TYPE.
  830. * = 0 IF USER DAYFILE.
  831. *
  832. * EXIT (A) = ADDRESS OF DAYFILE POINTER FST.
  833. *
  834. * MACROS NFA.
  835.  
  836.  
  837. SDA1 NFA DAPN+2 SET ADDRESS OF JOB DAYFILE FST
  838.  
  839. SDA SUBR ENTRY/EXIT
  840. LDD TY
  841. ZJN SDA1 IF USER DAYFILE
  842. STD T0
  843. SHN 1
  844. ADD T0
  845. SDAA ADC ** (FWA-1 OF DAYFILE POINTERS)
  846. UJN SDAX RETURN
  847. SDT SPACE 4,10
  848. ** SDT - SET DAYFILE TYPE.
  849. *
  850. * EXIT (TY) = DAYFILE TYPE.
  851. * (CN - CN+4) = WORD 7 OF FET.
  852. *
  853. * CALLS GFE.
  854.  
  855.  
  856. SDT SUBR ENTRY/EXIT
  857. RJM GFE READ FET+7
  858. ADN 7
  859. CRD CN
  860. LDD CN+3 SET DAYFILE TYPE
  861. LPN 77
  862. STD TY
  863. ZJN SDT1 IF INCORRECT TYPE
  864. SBN EXDF+1
  865. MJN SDTX IF VALID DAYFILE TYPE
  866. SDT1 ABORT /MESS/ERDC * SFM INCORRECT DEVICE CODE.*
  867. RMS SPACE 4,10
  868. ** RMS - READ MASS STORAGE.
  869. *
  870. * ENTRY (A) = BUFFER ADDRESS.
  871. * (T5 - T7) = MASS STORAGE PARAMETERS.
  872. *
  873. * EXIT (A) .GE. 0.
  874. *
  875. * ERROR TO *EER*.
  876. *
  877. * CALLS RDS.
  878.  
  879.  
  880. RMS SUBR ENTRY/EXIT
  881. RJM RDS
  882. PJN RMSX IF SUCCESSFUL READ
  883. LJM EER EVALUATE ERROR RETURN
  884. RTI SPACE 4,10
  885. ** RTI - RELEASE TRACK INTERLOCK.
  886. *
  887. * ENTRY (RTIA) = TRACK NUMBER IF TRACK INTERLOCKED.
  888. *
  889. * EXIT (A) = (RTIA) = 0.
  890. *
  891. * CALLS CTI.
  892.  
  893.  
  894. RTI SUBR ENTRY/EXIT
  895. LDC 0
  896. RTIA EQU *-1
  897. ZJN RTIX IF NO TRACK INTERLOCK
  898. RJM CTI
  899. * LDN 0 CLEAR INTERLOCK STATUS
  900. STM RTIA
  901. UJN RTIX RETURN
  902. WMS SPACE 4,10
  903. ** WMS - WRITE MASS STORAGE.
  904. *
  905. * ENTRY (A) = BUFFER ADDRESS.
  906. * (T5 - T7) = MASS STORAGE PARAMETERS.
  907. *
  908. * EXIT (A) .GE. 0.
  909. *
  910. * ERROR TO *EER*.
  911. *
  912. * CALLS WDS.
  913.  
  914.  
  915. WMS SUBR ENTRY/EXIT
  916. RJM WDS
  917. PJN WMSX IF SUCCESSFUL WRITE
  918. LJM EER EVALUATE ERROR RETURN
  919. WTI SPACE 4,15
  920. ** WTI - WAIT FOR TRACK INTERLOCK.
  921. *
  922. * ENTRY (T5) = EQUIPMENT.
  923. * (T6) = TRACK.
  924. *
  925. * EXIT (A) = 0, IF INTERLOCK SET.
  926. * = 1, IF *ORET* ERROR FLAG SET IN CPA.
  927. *
  928. * USES CM - CM+4.
  929. *
  930. * CALLS STI.
  931. *
  932. * MACROS DELAY, PAUSE.
  933.  
  934.  
  935. WTI3 LDN 1 RETURN WITH ERROR
  936.  
  937. WTI SUBR ENTRY/EXIT
  938. WTI1 RJM STI SET TRACK INTERLOCK
  939. ZJN WTIX IF INTERLOCK SET
  940.  
  941. * DELAY 100 MILLISECONDS AND RETRY.
  942.  
  943. LDC 1400
  944. STD T0
  945. WTI2 DELAY
  946. PAUSE
  947. LDD CM+1
  948. LMN ORET
  949. ZJN WTI3 IF *ORET* ERROR FLAG SET
  950. SOD T0
  951. PJN WTI2 IF MORE DELAY REQUIRED
  952. UJN WTI1 LOOP TO RETRY INTERLOCK
  953. SPACE 4
  954. * COMMON DECKS.
  955.  
  956.  
  957. *CALL COMPCTI
  958. *CALL COMPDTS
  959. EJT$ EQU 0 DEFINE *COMPGFP* ACCESS TO EJT
  960. FNT$ EQU 0 DEFINE *COMPGFP* ACCESS TO FNT
  961. IFP$ EQU 0 GENERATE *IFP* REMOTE CODE
  962. JCB$ EQU 0 DEFINE *COMPGFP* ACCESS TO JCB
  963. *CALL COMPGFP
  964. *CALL COMPRLA
  965. *CALL COMPSAF
  966. *CALL COMPSEI
  967. *CALL COMPSFB
  968. *CALL COMPSTI
  969. *CALL COMPVFN
  970. QUAL MIO
  971. QUAL$ EQU 1
  972. RDS EQU RMS
  973. WDS EQU WMS
  974. *CALL COMPRSS
  975. *CALL COMPWEI
  976. *CALL COMPWSS
  977. QUAL *
  978. RSS EQU /MIO/RSS
  979. WEI EQU /MIO/WEI
  980. WSS EQU /MIO/WSS
  981. CFS SPACE 4,10
  982. ** CFS - CHECK FILE STATUS.
  983. *
  984. * ENTRY (FA) = INDEX OF FNT ENTRY.
  985. *
  986. * EXIT (FS - FS+4) = FST ENTRY.
  987. * (ES - ES+4) = FILE EQUIPMENT EST ENTRY.
  988. * (CM - CM+4) = FNT ENTRY.
  989. * (T5) = EST ORDINAL.
  990. * (T6) = FIRST TRACK.
  991. *
  992. * CALLS SFB.
  993. *
  994. * MACROS ABORT, SFA.
  995.  
  996.  
  997. CFS SUBR ENTRY/EXIT
  998. RJM SFB SET FILE BUSY
  999. ZJN CFS1 IF NO REJECT
  1000. LDN 0
  1001. STD FA
  1002. ABORT /MESS/ERIO * SFM I/O SEQUENCE ERROR.*
  1003.  
  1004. CFS1 LDD FS READ EST ENTRY
  1005. STD T5
  1006. SFA EST
  1007. ADK EQDE
  1008. CRD ES
  1009. LDD ES CHECK EQUIPMENT
  1010. SHN 6
  1011. MJN CFS2 IF MASS STORAGE
  1012. ABORT /MESS/ERMS * SFM FILE NOT ON MASS STORAGE.*
  1013.  
  1014. CFS2 LDD FS+1 SET FIRST TRACK
  1015. STD T6
  1016. LDD FS+2
  1017. NJN CFSX RETURN IF FILE USED
  1018. ABORT /MESS/ERFE * SFM FILE EMPTY.*
  1019. SPACE 4
  1020. TDYN SPACE 4,10
  1021. ** TDYN - TABLE OF DAYFILE NAMES.
  1022.  
  1023.  
  1024. TDYN BSS 0
  1025. LOC SDAY
  1026. CON NDYF SYSTEM DAYFILE
  1027. CON NACF ACCOUNT DAYFILE
  1028. CON NERL ERRLOG DAYFILE
  1029. CON NBML MAINTENANCE LOG
  1030. LOC *O
  1031. SPACE 4
  1032. NDYF VFD 42/0LDAYFILE,6/1,6/LIFT,6/0
  1033. NACF VFD 42/0LACCOUNT,6/1,6/LIFT,6/0
  1034. NERL VFD 42/0LERRLOG,6/1,6/LIFT,6/0
  1035. NBML VFD 42/0LMAINLOG,6/1,6/LIFT,6/0
  1036. USE OVERLAY
  1037. OVLA EQU *+5 OVERLAY BASE ADDRESS
  1038. ADF TITLE FUNCTION PROCESSORS.
  1039. ADF SPACE 4
  1040. *** FUNCTION *AMDF* - ACCESS MASTER DAYFILE.
  1041. *
  1042. * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
  1043. * LIBRARY FILE AT CONTROL POINT.
  1044. *
  1045. * ENTRY CONDITIONS.
  1046. *
  1047. * MESSAGE TO ISSUE IN BUFFER STARTING AT FIRST.
  1048. * (MAXIMUM LENGTH OF 30 CHARACTERS.) THE MESSAGE IS
  1049. * ISSUED BEFORE THE CM BUFFER IS COPIED AND THE FILE
  1050. * LENGTH CALCULATED. THE MESSAGE WILL BE THE LAST ONE
  1051. * IN THE DAYFILE FOR THIS ACCESS TO THE DAYFILE.
  1052. *
  1053. * EXIT CONDITIONS.
  1054. *
  1055. *T FET+5 42/ 0 , 18/ RL
  1056. *T,FET+6 42/ 0 , 18/ CL
  1057. *
  1058. * RL = DAYFILE LENGTH AT LAST DEADSTART.
  1059. * CL = CURRENT DAYFILE LENGTH IN PRUS.
  1060.  
  1061.  
  1062. ADF BSS 0 ENTRY
  1063. LDN SDAY SELECT MASTER DAYFILE
  1064. ADF1 STD TY SAVE DAYFILE TYPE
  1065. RJM CBL CHECK DAYFILE BUFFER LENGTH
  1066.  
  1067. * CHECK FILE STATUS.
  1068.  
  1069. RJM SAF SEARCH FOR ASSIGNED FILE
  1070. ZJN ADF3 IF NOT FOUND
  1071. RJM SFB SET FILE BUSY
  1072. ZJN ADF2 IF NO REJECT
  1073. LDN 0
  1074. STD FA
  1075. ABORT /MESS/ERIO * SFM I/O SEQUENCE ERROR.*
  1076.  
  1077. ADF2 RJM DRF DROP FILE
  1078. ADF3 RJM EFN ENTER FILE NAME
  1079. RJM SDA SET DAYFILE FST ADDRESS
  1080. CRD FS READ DAYFILE FST
  1081. SBN 1 READ DAYFILE BUFFER POINTERS
  1082. CRD CM
  1083. AOD CM+2 VALIDATE BUFFER POINTERS
  1084. RJM VBP
  1085. MJN ADF4 IF DATA FITS IN BUFFER AND IN FL
  1086. NFA FA,R READ CORRECT FST FOR *ABT*
  1087. ADN FSTL
  1088. CRD FS
  1089. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  1090.  
  1091. * INTERLOCK DAYFILE.
  1092.  
  1093. ADF4 LDD FS SET EQUIPMENT
  1094. STD T5
  1095. LDD FS+1 SET FIRST TRACK
  1096. STD T6
  1097. LDD TY
  1098. NJN ADF5 IF NOT USER DAYFILE DUMP
  1099. LJM ADF8 PROCESS USER DAYFILE DUMP
  1100.  
  1101. ADF5 LDD TH FLAG TRACK INTERLOCK SET
  1102. RAM ADFE
  1103. RJM STI SET TRACK INTERLOCK
  1104. ZJN ADF6 IF TRACK INTERLOCKED
  1105. NFA FA,R READ CORRECT FST FOR *ABT*
  1106. ADN FSTL
  1107. CRD FS
  1108. ERROR /ERR/DFB EC=1, DAYFILE BUSY
  1109.  
  1110. ADF6 LDD T6 SET TRACK INTERLOCKED STATUS
  1111. STM RTIA
  1112. LDD CP FETCH EJT ORDINAL
  1113. ADN TFSW
  1114. CRD CM
  1115. SFA EJT,CM READ SEQUENCE NUMBER FROM EJT
  1116. CRM BFMS,ON
  1117. ADN SCLE-JSNE-1 GET JOB SERVICE CLASS
  1118. CRD CM
  1119. LDC 2R
  1120. STM BFMS+2
  1121. STM BFMS+3
  1122. LDD CM SET SERVICE CLASS IN MESSAGE
  1123. SHN -6
  1124. STM BFMS+4
  1125. LDD CN+3 READ DAYFILE MESSAGE
  1126. SHN 6
  1127. ADD RA
  1128. SHN 6
  1129. ADD CN+4
  1130. CRD CM+1
  1131. ADFC ADN 0
  1132. * ADN 1 (MAINTENANCE LOG PROCESSING)
  1133. CRM BFMS+5,TR
  1134. * CRM BFMS,TR (MAINTENANCE LOG PROCESSING)
  1135. ADFD EQU *-1
  1136. LDN 0 ENSURE MESSAGE HAS TERMINATOR
  1137. STM BFMS+5+3*5
  1138. LDD CM+1 BYTE COUNT OF MAINTENANCE LOG MESSAGE
  1139. ADFF UJN ADF7.4 CONTINUE
  1140. * NJN ADF7.3 (MAINTENANCE LOG PROCESSING)
  1141. ADF7 RJM RTI RELEASE TRACK INTERLOCK
  1142. NFA FA,R RESTORE FST FOR ABORT PROCESSING
  1143. ADN FSTL
  1144. CRD FS
  1145. ABORT /MESS/ERWC * SFM BML MESSAGE LENGTH ERROR.*
  1146.  
  1147. ADF7.3 SBN 7
  1148. PJN ADF7 IF WORD COUNT TOO LARGE
  1149. ADN 7
  1150. ADF7.4 SHN 2
  1151. RAD CM+1
  1152. LDM ADFG-1,TY ISSUE MESSAGE AND INTERLOCK DAYFILE
  1153. SHN 14
  1154. ADC ILKN+BFMS
  1155. RJM DFM
  1156.  
  1157. * TRANSFER CM DAYFILE BUFFER TO CONTROL POINT.
  1158.  
  1159. LDD TY CHECK DAYFILE TYPE
  1160. LMN BMLF
  1161. NJN ADF8 IF NOT MAINTENANCE LOG
  1162. LDN BMLL READ MAINTENANCE LOG CONTROL WORD
  1163. CRD CM
  1164. LDD CN+3 STORE CONTROL WORD IN BUFFER
  1165. SHN 6
  1166. ADD RA
  1167. SHN 6
  1168. ADD CN+4
  1169. CWD CM
  1170. AOD CN+4 ADVANCE IN POINTER
  1171. SHN -14
  1172. RAD CN+3
  1173. ADF8 RJM CDF DUMP CM DAYFILE TO CONTROL POINT
  1174.  
  1175. * UPDATE FET INFORMATION.
  1176.  
  1177. LDD T6
  1178. STD T2
  1179. STD T3
  1180. ZJN ADF9 IF NO FIRST TRACK
  1181. RJM SEI
  1182. LCN FSMS DISCOUNT SYSTEM SECTOR
  1183. RAD T3
  1184. PJN ADF9 IF NO BORROW
  1185. SOD T2 PROPAGATE BORROW
  1186. AOD T3
  1187. ADF9 LDN ZERL
  1188. CRD CM
  1189. LDD T3
  1190. STD CM+4 LOWER HALF OF FILE LENGTH
  1191. LDD T2
  1192. STD CM+3 UPPER HALF OF FILE LENGTH
  1193. LDN 0
  1194. STD CN
  1195. STD CN+1
  1196. STD CN+2
  1197. RJM GFE STORE IN
  1198. ADN 2
  1199. CWD CN
  1200. ADN 6-2 STORE SECTOR COUNT
  1201. CWD CM
  1202.  
  1203. * GET LENGTH OF DAYFILE AT LAST DEADSTART.
  1204.  
  1205. LDD TY
  1206. NJN ADF10 IF NOT USER DAYFILE DUMP
  1207. LJM ADF12
  1208.  
  1209. ADF10 RJM SDA READ BUFFER STATUS WORD
  1210. CRD CM
  1211. LDN 2 CLEAR BUFFER INTERLOCK
  1212. RAD CM+4
  1213. RJM SDA STORE BUFFER STATUS WORD
  1214. CWD CM
  1215. SETMS IO
  1216. LDD FS+1 SET FIRST TRACK
  1217. STD T6
  1218. LDM TDYN-1,TY READ SYSTEM SECTOR
  1219. RJM RSS
  1220. ZJN ADF11 IF NO ERROR
  1221. RJM RTI RELEASE TRACK INTERLOCK
  1222. NFA FA,R READ CORRECT FST FOR *ABT*
  1223. ADN FSTL
  1224. CRD FS
  1225. ABORT /MESS/ERSE * SFM SYSTEM SECTOR ERROR.*
  1226.  
  1227. ADF11 ENDMS
  1228. LDN ZERL SET LENGTH IN FET+5
  1229. CRD CM
  1230. LDM FLSS
  1231. STD CM+3
  1232. LDM FLSS+1
  1233. STD CM+4
  1234. RJM GFE
  1235. ADN 5
  1236. CWD CM
  1237.  
  1238. * ATTACH DAYFILE TO CONTROL POINT.
  1239.  
  1240. ADF12 LDC 4 SET FILE STATUS
  1241. * LDC 1004 (IF TRACK INTERLOCK SET)
  1242. ADFE EQU *-1
  1243. STD FS+4
  1244. LDD FS+2
  1245. ZJN ADF13 IF FILE NOT USED
  1246. LDD FS+1 REWIND FILE
  1247. STD FS+2
  1248. LDN FSMS SET FIRST DATA SECTOR
  1249. STD FS+3
  1250. ADF13 NFA FA,R READ FNT ENTRY
  1251. CRD CM
  1252. LDD CM+3 SET EXTEND-ONLY AND WRITE LOCKOUT
  1253. SCN 77
  1254. LMN 21
  1255. STD CM+3
  1256. LDC LIFT*100 SET FILE TYPE TO *LIBRARY*
  1257. STD CM+4
  1258. NFA FA,R STORE FNT ENTRY
  1259. CWD CM
  1260. LDN 22 LAST STATUS = EOR
  1261. STD LS
  1262. LJM SFMX EXIT
  1263.  
  1264. ADFG BSS 0 TABLE OF DAYFILE MESSAGE OPTIONS
  1265. LOC SDAY
  1266. CON JNMN/10000
  1267. CON AJNN/10000
  1268. CON EJNN/10000
  1269. CON BMLN/10000
  1270. LOC *O
  1271. AAC SPACE 4
  1272. *** FUNCTION *AAFF* - ACCESS ACCOUNT FILE.
  1273. *
  1274. * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
  1275. * LIBRARY TYPE FILE AT CONTROL POINT.
  1276.  
  1277.  
  1278. AAC BSS 0 ENTRY
  1279. LDN ACCF SELECT ACCOUNT FILE
  1280. UJN AER1
  1281. AER SPACE 4
  1282. *** FUNCTION *AELF* - ACCESS ERROR LOG.
  1283. *
  1284. * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
  1285. * LIBRARY TYPE FILE AT CONTROL POINT.
  1286.  
  1287.  
  1288. AER LDN ERLF SELECT ERROR LOG
  1289. AER1 LJM ADF1 ACCESS DAYFILE
  1290. AMF SPACE 4,10
  1291. *** FUNCTION *AMLF* - ACCESS MAINTENANCE LOG.
  1292. *
  1293. * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
  1294. * LIBRARY TYPE FILE AT CONTROL POINT.
  1295.  
  1296.  
  1297. AMF LCN 5 ADJUST ADDRESS FOR ACCESS MESSAGE
  1298. RAM ADFD
  1299. AOM ADFC
  1300. LDC NJNI+ADF7.3-ADFF
  1301. STM ADFF
  1302. LDN BMLF SELECT MAINTENANCE LOG
  1303. UJN AER1 ACCESS DAYFILE
  1304.  
  1305. ERRNG 37-ADF7.3+ADFF JUMP OUT OF RANGE
  1306. AUD SPACE 4
  1307. *** FUNCTION *AUDF* - ACCESS USER DAYFILE.
  1308. *
  1309. * READ CM PART OF DAYFILE STARTING AT FIRST, AND MAKE LOCKED
  1310. * LIBRARY TYPE FILE AT CONTROL POINT.
  1311.  
  1312.  
  1313. AUD LDN 0 SELECT USER DAYFILE
  1314. UJN AER1
  1315. RDT SPACE 4
  1316. *** FUNCTION *RDTF* - RETURN DEVICE TYPE.
  1317. *
  1318. * FET+1, BYTE 0 = EST ORDINAL.
  1319. * RETURN DEVICE TYPE IN FET+1, BYTE 0.
  1320.  
  1321.  
  1322. RDT RJM GFE GET FET ADDRESS
  1323. ADN 1
  1324. CRD CM
  1325. LDN ESTP READ EST POINTER
  1326. CRD FS
  1327. LDD CM LOAD EST ORDINAL
  1328. SBD FS+2
  1329. MJN RDT1 IF IN TABLE
  1330. ABORT /MESS/EREQ * SFM INCORRECT EQUIPMENT.*
  1331.  
  1332. RDT1 SFA EST,CM
  1333. ADK EQDE
  1334. CRD FS READ EST ENTRY
  1335. LDD FS
  1336. LPC 4000
  1337. LMD FS+3
  1338. STD CM
  1339. RJM GFE RETURN DEVICE TYPE TO FET
  1340. ADN 1
  1341. CWD CM
  1342. LJM SFMX EXIT
  1343. PAD SPACE 4,5
  1344. *** FUNCTION *PADF* - PROTECT ACTIVE DAYFILE.
  1345. *
  1346. * AN ACTIVE DAYFILE OF TYPE, TY, WILL BE PROTECTED BY
  1347. * PLACING THE FIRST TRACK FROM THE DAYFILE POINTER INTO THE
  1348. * APPROPRIATE TRACK BYTE IN THE SECTOR OF LOCAL AREAS.
  1349. * THE TRACK INTERLOCK IS ASSUMED TO BE INTERLOCKED.
  1350. * THE TRACK INTERLOCK WILL BE CLEARED.
  1351.  
  1352.  
  1353. PDF RJM SDT SET DAYFILE TYPE
  1354. RJM SDA SET DAYFILE POINTER ADDRESS
  1355. CRD CM
  1356. LDD CM SET EQUIPMENT
  1357. STD T5
  1358. LDD CM+1 SET FIRST TRACK
  1359. STD T6
  1360. RJM DTS DETERMINE TRACK STATUS
  1361. MJN PDF1 IF TRACK INTERLOCKED
  1362. ABORT /MESS/ERTE * SFM TRACK INTERLOCK ERROR.*
  1363.  
  1364. PDF1 LDD T6 CLEAR TRACK INTERLOCK
  1365. RJM CTI
  1366. LDN SPFS SET PRESERVED FILE BIT
  1367. STD CM+3
  1368. LDD T5 SET EQUIPMENT
  1369. STD CM+1
  1370. LDD T6 SET FIRST TRACK
  1371. STD CM+2
  1372. MONITOR STBM
  1373. PDF2 LDC CKPA SET CHECKPOINT REQUEST
  1374. STM SFMF
  1375. LJM SFMX RETURN
  1376. CDB SPACE 4,6
  1377. *** FUNCTION *CDBF* - CLEAR DAYFILE BYTE.
  1378. *
  1379. * THE TRACK INTERLOCK AND THE FIRST TRACK BYTE FOR THE
  1380. * SPECIFIED DAYFILE ON THE SPECIFIED DEVICE WILL BE CLEARED.
  1381.  
  1382.  
  1383. CDB RJM SDT SET DAYFILE TYPE
  1384. LDD CN SET EQUIPMENT
  1385. STD T5
  1386. STM CDBA
  1387. SFA EST READ EST ENTRY
  1388. ADK EQDE
  1389. CRD CN
  1390. LDD CN CHECK IF MASS STORAGE
  1391. SHN 21-13
  1392. MJN CDB2 IF MASS STORAGE EQUIPMENT
  1393. CDB1 ABORT /MESS/EREQ * SFM INCORRECT EQUIPMENT.*
  1394.  
  1395. CDB2 RJM RLA READ SECTOR OF LOCAL AREAS
  1396. ZJN CDB1 IF NO ENTRY FOR THIS MACHINE
  1397. PJN CDB3 IF NO MASS STORAGE ERROR
  1398. ERROR /ERR/RMS EC=3, SFM UNCORECTABLE RMS ERROR
  1399.  
  1400. CDB3 ADD TY SET TRACK BYTE ADDRESS
  1401. SBN SDAY
  1402. STD T1
  1403. LDI T1 SET FIRST TRACK OF INACTIVE DAYFILE
  1404. STD T6
  1405. RJM DTS DETERMINE TRACK STATUS
  1406. MJN CDB4 IF TRACK INTERLOCK SET
  1407. ABORT /MESS/ERTE * SFM TRACK INTERLOCK ERROR.*
  1408.  
  1409. CDB4 LDD TY SET CHECKPOINT PARAMETER
  1410. STM CKPA+4
  1411. RJM CIB CLEAR FST INTERLOCK BIT
  1412. LDD T6 CLEAR TRACK INTERLOCK
  1413. RJM CTI
  1414. LDD MA LOCATE THE *ZZZZLBT* FILE
  1415. CWM ATDD,ON
  1416. SBN 1
  1417. CRD FN
  1418. RJM SAF
  1419. ZJN CDB5 IF FILE NOT FOUND
  1420. RJM DRF RETURN THE *ZZZZLBT* FILE
  1421. LDC * RESET THE EST ORDINAL
  1422. CDBA EQU *-1
  1423. STD T5
  1424. LJM PDF2 SET CHECKPOINT REQUEST
  1425.  
  1426. CDB5 ABORT /MESS/ERFF * SFM FILE NOT FOUND.*
  1427. ATD SPACE 4,15
  1428. ATD TITLE ATTACH INACTIVE DAYFILE.
  1429. *** FUNCTION *ATDF* - ATTACH INACTIVE DAYFILE.
  1430. *
  1431. * THE SPECIFIED INACTIVE DAYFILE ON EQUIPMENT, EQ, IS ATTACHED
  1432. * TO THE CONTROL POINT AS A LIBRARY TYPE FILE WITH ITS TRACK
  1433. * INTERLOCK BIT SET. THE FILE NAME IS TAKEN FROM THE FIRST
  1434. * WORD OF THE FET.
  1435. *
  1436. * IF A LIBRARY TYPE FILE WITH THE SAME FILE NAME IS FOUND
  1437. * ATTACHED TO THE CONTROL POINT, THEN THE CALLER IS ABORTED.
  1438. * IF THE DUPLICATE FILE IS NOT A LIBRARY TYPE FILE, THEN
  1439. * IT IS RETURNED BEFORE CREATING THE NEW FILE.
  1440. *
  1441. * THE LABEL TRACK ON THE DAYFILE DEVICE WILL BE INTERLOCKED TO
  1442. * PREVENT PROBLEMS CAUSED BY MULTIPLE *DFTERM* RUNS. THIS
  1443. * INTERLOCK IS NORMALLY CLEARED BY A *CDBF* CALL. TO ALLOW
  1444. * FOR A POSSIBLE ABORT OF *DFTERM*, A LOCAL FILE *ZZZZLBT* OF
  1445. * FILE TYPE *LIFT* WILL BE CREATED. THIS FILE POINTS TO THE
  1446. * INTERLOCKED LABEL. *0DF* WILL CLEAR THE INTERLOCK WHEN
  1447. * THE *ZZZZLBT* FILE IS RETURNED.
  1448.  
  1449.  
  1450. ATD BSS 0 ENTRY
  1451. LDD MA CREATE THE *ZZZZLBT* FILE
  1452. CWM ATDD,ON
  1453. SBN 1
  1454. CRD FN
  1455. ATD0 LDN NEEQ SET THE NULL EQUIPMENT
  1456. STD FS
  1457. LDN 2 RETURN IF NFL INCREASE PENDING
  1458. STM OVL0-1
  1459. EXECUTE 0BF,OVL0
  1460. UJN ATD0.2 CHECK FOR FNT ENTRY CREATED
  1461.  
  1462. * PROCESS DUPLICATE FILE.
  1463.  
  1464. RJM SFB SET FILE BUSY
  1465. NJN ATD0.1 IF FILE BUSY REJECT
  1466. RJM DRF DROP THE FILE
  1467. UJN ATD0 RETRY THE FILE CREATION
  1468.  
  1469. ATD0.1 ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
  1470.  
  1471. ATD0.2 ZJN ATD0.3 IF FNT CREATED
  1472. LDN NFIR
  1473. LJM ERS ENTER PP RECALL STACK
  1474.  
  1475. ATD0.3 LDD FA SAVE THE FNT OFFSET
  1476. STM ATDC
  1477. RJM GFE GET THE DAYFILE FNT NAME
  1478. CRD FN
  1479. RJM VFN VERIFY FILE NAME
  1480. NJN ATD1 IF NAME VERIFIES
  1481. ABORT /MESS/ERFN * SFM FILE NAME ERROR.*
  1482.  
  1483. * GET FIRST TRACK OF FILE TO ATTACH.
  1484.  
  1485. ATD1 RJM SDT SET DAYFILE TYPE
  1486. LDD CN SET EST ORDINAL
  1487. STD T5
  1488. STM ATDB SAVE EST ORDINAL
  1489. SFA EST READ EST ENTRY
  1490. ADK EQDE
  1491. CRD CN
  1492. LDD CN
  1493. SHN 21-13
  1494. MJN ATD3 IF MASS STORAGE
  1495. ATD2 ABORT /MESS/EREQ * SFM INCORRECT EQUIPMENT.*
  1496.  
  1497. ATD3 RJM RLA READ SECTOR OF LOCAL AREAS
  1498. ZJN ATD2 IF NO ENTRY FOR THIS MACHINE
  1499. PJN ATD4 IF NO MASS STORAGE ERROR
  1500. ERROR /ERR/RMS EC=3, UNCORRECTABLE RMS ERROR
  1501.  
  1502. ATD4 ADD TY SET TRACK BYTE ADDRESS
  1503. SBN SDAY
  1504. STD T1
  1505. LDI T1 SET FIRST TRACK OF INACTIVE DAYFILE
  1506. STD T6
  1507. STM ATDA
  1508. NJN ATD5 IF FILE EXISTS
  1509. ERROR /ERR/FNF EC=2, FILE NOT FOUND
  1510.  
  1511. * SET TRACK INTERLOCK.
  1512.  
  1513. ATD5 RJM STI SET TRACK INTERLOCK
  1514. ZJN ATD7 IF INTERLOCK SET
  1515. ERROR /ERR/DFB EC=0, DAYFILE BUSY
  1516.  
  1517. * ENTER FILE IN FNT TABLE.
  1518.  
  1519. ATD6 RJM SFB SET FILE BUSY
  1520. NJN ATD7.1 IF FILE BUSY REJECT
  1521. RJM DRF DROP FILE
  1522.  
  1523. ATD7 LDN NEEQ SET NULL EQUIPMENT
  1524. STD FS
  1525. LDN 2 RETURN TO ENTER PP STACK ON NFL INCREASE
  1526. STM OVL0-1
  1527. EXECUTE 0BF,OVL0 MAKE FNT/FST ENTRY
  1528. UJN ATD7.2 CHECK IF FNT ENTRY CREATED
  1529.  
  1530. * PROCESS DUPLICATE FILE.
  1531.  
  1532. NFA FA,R READ FNT ENTRY OF DUPLICATE FILE
  1533. CRD FS
  1534. LDD FS+4 CHECK FILE TYPE
  1535. SHN -6
  1536. LMN LIFT
  1537. NJN ATD6 IF FILE NOT *LIBRARY* TYPE
  1538. ATD7.1 LDN 0 CLEAR FNT ENTRY ADDRESS
  1539. STD FA
  1540. LDM ATDA CLEAR TRACK INTERLOCK
  1541. RJM CTI
  1542. ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
  1543.  
  1544. ATD7.2 ZJN ATD8 IF FNT ENTRY CREATED
  1545. LDM ATDA CLEAR TRACK INTERLOCK
  1546. RJM CTI
  1547. LDN NFIR REASON CODE = NFL INCREASE PENDING
  1548. LJM ERS ENTER PP RECALL STACK
  1549.  
  1550. * BUILD FNT/FST ENTRY.
  1551.  
  1552. ATD8 LDC * SET FIRST TRACK
  1553. ATDA EQU *-1 (DAYFILE FIRST TRACK)
  1554. STD FS+1
  1555. STD FS+2 SET CURRENT TRACK
  1556. LDC * SET EQUIPMENT
  1557. ATDB EQU *-1 (EST ORDINAL)
  1558. STD FS
  1559. STD T5 SET EST ORDINAL
  1560. LDN FSMS SET CURRENT SECTOR
  1561. STD FS+3
  1562. LDC 1005 SET TRACK INTERLOCK, EOR
  1563. STD FS+4
  1564. LDC LIFT*100 SET FILE TYPE TO *LIBRARY*
  1565. STD FN+4
  1566. RJM LLT LOCATE LABEL TRACK
  1567. RJM WTI SET TRACK INTERLOCK
  1568. NJP ATD9 IF TRACK INTERLOCK NOT SET
  1569. NFA FA,R STORE FNT ENTRY
  1570. CWD FN
  1571. ADN FSTL STORE THE FST ENTRY
  1572. CWD FS
  1573. LDC ** COMPLETE THE *ZZZZLBT* FILE
  1574. ATDC EQU *-1
  1575. STD FA
  1576. NFA FA,R
  1577. ADK FNTL
  1578. CRD FN
  1579. ADN FSTL-FNTL
  1580. CRD FS
  1581. LDM ATDB SET THE EST ORDINAL
  1582. STD FS
  1583. RJM LLT SET THE LABEL TRACK
  1584. STD FS+1
  1585. STD FS+2
  1586. LDC 1005 SET THE TRACK INTERLOCK FLAG
  1587. STD FS+4
  1588. LDC LIFT*100 SET LIBRARY FILE TYPE
  1589. STD FN+4
  1590. NFA FA,R
  1591. ADK FNTL
  1592. CWD FN
  1593. ADN FSTL-FNTL
  1594. CWD FS
  1595. LDN 0 CLEAR THE FNT POINTER
  1596. STD FA
  1597. LJM SFMX
  1598.  
  1599. ATD9 LDD FS+1 CLEAR TRACK INTERLOCK ON DAYFILE
  1600. RJM CTI
  1601. RJM DRF RETURN FNT ENTRY
  1602. ERROR /ERR/DFB EC=1, DAYFILE BUSY
  1603.  
  1604. ATDD VFD 42/0LZZZZLBT,18/0
  1605. GDI SPACE 4,10
  1606. *** FUNCTION *GDIF* - GET DEVICE INFORMATION.
  1607. *
  1608. * COPY DEVICE INFORMATION SECTOR FOR SPECIFIED DEVICE
  1609. * INTO CENTRAL BUFFER STARTING AT *FIRST*.
  1610. *
  1611. * THE CALLING PROGRAM MUST HAVE SYSTEM ORIGIN AND
  1612. * AN *SSJ=* ENTRY POINT.
  1613.  
  1614.  
  1615. GDI BSS 0 ENTRY
  1616. LDD HN VALIDATE BUFFER POINTERS
  1617. RJM VBP
  1618. MJN GDI1 IF DATA FITS IN BUFFER AND IN FL
  1619. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  1620.  
  1621. GDI1 RJM GFE READ EST ORDINAL
  1622. ADN 7
  1623. CRD CM
  1624. LDD CM VALIDATE EQUIPMENT
  1625. RJM VEQ
  1626. RJM RDI READ DEVICE INFORMATION SECTOR
  1627. ENDMS
  1628. LDD CN+3 WRITE SECTOR TO CENTRAL BUFFER
  1629. SHN 6
  1630. ADD RA
  1631. SHN 6
  1632. ADD CN+4
  1633. CWM BFMS+2,HN
  1634. LDN 0 UPDATE BUFFER POINTERS
  1635. STD CN
  1636. STD CN+1
  1637. STD CN+2
  1638. RJM GFE SET (OUT) = (FIRST)
  1639. ADN 3
  1640. CWD CN
  1641. LDD T1 SET (IN) = (FIRST) + (WORDS TRANSFERRED)
  1642. RAD CN+4
  1643. SHN -14
  1644. RAD CN+3
  1645. RJM GFE
  1646. ADN 2
  1647. CWD CN
  1648. LDN 22 LAST STATUS = EOR
  1649. STD LS
  1650. LJM SFMX EXIT
  1651. SDF SPACE 4,10
  1652. *** FUNCTION *SDFF* - SET DEVICE INFORMATION.
  1653. *
  1654. * SET FIELDS IN DEVICE INFORMATION SECTOR OF
  1655. * SPECIFIED DEVICE. WORD AT *WI* IS UPDATED WITH DATA
  1656. * FOUND IN CENTRAL BUFFER AT *FIRST*.
  1657. *
  1658. * THE CALLING PROGRAM MUST HAVE SYSTEM ORIGIN
  1659. * PRIVILEGES AND AN *SSJ=* ENTRY POINT.
  1660.  
  1661.  
  1662. SDF BSS 0 ENTRY
  1663. RJM GFE READ *FIRST*
  1664. ADN 1
  1665. CRD CN
  1666. ADN 7-1 READ (FET+7)
  1667. CRD CM
  1668. LDD CN+3
  1669. LPN 37
  1670. STD CN+3
  1671. SHN 14
  1672. LMD CN+4
  1673. SHN -6
  1674. SBD FL
  1675. MJN SDF1 IF DATA WITHIN FL
  1676. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  1677.  
  1678. SDF1 LDD CM+4 SAVE WORD INDEX
  1679. LPN 77
  1680. STM SDFA
  1681. SBN MNIT
  1682. PJN SDF2 IF NOT RESERVED WORD
  1683. ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
  1684.  
  1685. SDF2 LDD CM VALIDATE EQUIPMENT
  1686. RJM VEQ
  1687. LDN 0 FORCE LABEL TRACK INTERLOCK
  1688. STM RDIA
  1689. RJM RDI READ DEVICE INFORMATION SECTOR
  1690. LDC * CALCULATE ADDRESS OF WORD IN BUFFER
  1691. SDFA EQU *-1 (INDEX OF WORD TO UPDATE)
  1692. SHN 2
  1693. ADM SDFA
  1694. ADC BFMS+2
  1695. STM SDFB
  1696. LDD CN+3
  1697. SHN 6
  1698. ADD RA
  1699. SHN 6
  1700. ADD CN+4
  1701. CRM *,ON UPDATE WORD
  1702. SDFB EQU *-1 (ADDRESS OF WORD WITHIN BUFFER)
  1703. LDN PDTL UPDATE SECTOR MODIFICATION DATE
  1704. CRM BFMS+2+SMIT*5,ON
  1705. LDC BFMS+WLSF REWRITE SECTOR
  1706. RJM WMS
  1707. ENDMS
  1708. RJM RTI RELEASE LABEL TRACK INTERLOCK
  1709. LJM SFMX EXIT
  1710. RSD SPACE 4,10
  1711. TITLE SUBROUTINES.
  1712. CBL SPACE 4,10
  1713. ** CBL - CHECK DAYFILE BUFFER LENGTH.
  1714. *
  1715. * ENTRY (TY) = DAYFILE TYPE.
  1716. *
  1717. * EXIT (A) = BUFFER LENGTH.
  1718. * TO *ABT* IF ZERO LENGTH DAYFILE BUFFER.
  1719. *
  1720. * USES FA, CM - CM+4.
  1721. *
  1722. * CALLS SDA.
  1723.  
  1724.  
  1725. CBL SUBR ENTRY/EXIT
  1726. RJM SDA SET DAYFILE ADDRESS
  1727. SBN 1 READ BUFFER LENGTH (OUT POINTER) WORD
  1728. CRD CM
  1729. LDD CM+2
  1730. NJN CBLX IF NOT ZERO LENGTH BUFFER
  1731. STD FA CLEAR FST ADDRESS
  1732. ABORT /MESS/ERFE * SFM FILE EMPTY.*
  1733. CDF SPACE 4,10
  1734. ** CDF - COPY DAYFILE.
  1735. *
  1736. * ENTRY (CN+3 - CN+4) = IN POINTER.
  1737. *
  1738. * EXIT (CN+3 - CN+4) ADVANCED.
  1739. *
  1740. * USES T1 - T3, CM - CM+7.
  1741. *
  1742. * CALLS SBA, SDA.
  1743.  
  1744.  
  1745. CDF SUBR ENTRY/EXIT
  1746. RJM SDA SET DAYFILE FET ADDRESS
  1747. SBN 1
  1748. CRD CM+3
  1749. SBN 1
  1750. CRD CM
  1751. LDD HN SET BLOCK SIZE FOR READ
  1752. STD T3
  1753. CDF1 LDD CM+4 IN - OUT
  1754. SBD CM+7
  1755. ZJN CDFX IF BUFFER EMPTY
  1756. PJN CDF2 IF IN .GT. OUT
  1757. ADD CM+5 ADD BUFFER LENGTH
  1758. CDF2 SBD T3
  1759. PJN CDF3 IF FULL BLOCK IN BUFFER
  1760. ADD HN ADJUST BLOCK SIZE
  1761. STD T3
  1762. CDF3 LDD T3 SET WORD COUNT FOR READ
  1763. STD T2
  1764. ADD CM+7 ADD OUT - BUFFER LENGTH
  1765. SBD CM+5
  1766. MJN CDF4 IF NO WRAP AROUND
  1767. ZJN CDF4 IF NO WRAP AROUND
  1768. STD T1 WORD COUNT FOR FIRST READ
  1769. LDD CM+5 WORD COUNT FROM OUT TO END OF BUFFER
  1770. SBD CM+7
  1771. STD T2
  1772. SHN 2
  1773. ADD T2
  1774. ADC BFMS BUFFER ADDRESS FOR FIRST READ
  1775. STM CDFA
  1776. RJM SBA READ WRAP AROUND
  1777. CRM *,T1
  1778. CDFA EQU *-1
  1779. CDF4 RJM SBA READ DAYFILE BLOCK
  1780. ADD CM+7
  1781. CRM BFMS,T2
  1782. LDD CN+3 STORE DATA READ
  1783. SHN 6
  1784. ADD RA
  1785. SHN 6
  1786. ADD CN+4
  1787. CWM BFMS,T3
  1788. LDD T3 ADVANCE IN POINTER
  1789. RAD CN+4
  1790. SHN -14
  1791. RAD CN+3
  1792. LDD T3 ADVANCE DAYFILE OUT POINTER
  1793. RAD CM+7
  1794. SBD CM+5
  1795. MJN CDF5 IF NO WRAP AROUND
  1796. STD CM+7
  1797. CDF5 LJM CDF1 LOOP FOR NEXT BLOCK
  1798. CIB SPACE 4,15
  1799. ** CIB - CLEAR FST INTERLOCK BIT.
  1800. * THE TRACK INTERLOCK BIT IN THE FST FOR THE OLD
  1801. * DAYFILE IS CLEARED.
  1802. *
  1803. * ENTRY (IR+3 - IR+4) = FET ADDRESS.
  1804. *
  1805. * EXIT FST ENTRY REWRITTEN.
  1806. *
  1807. * USES FA, CM - CM+4, FN - FN+4.
  1808. *
  1809. * CALLS GFE, SAF.
  1810. *
  1811. * MACROS NFA.
  1812.  
  1813.  
  1814. CIB SUBR ENTRY/EXIT
  1815. RJM GFE GET FET ADDRESS
  1816. CRD FN READ FILE NAME
  1817. RJM SAF SEARCH FOR ASSIGNED FILE
  1818. ZJN CIBX IF FILE NOT FOUND
  1819. NFA FA,R
  1820. ADN FSTL
  1821. CRD CM READ FST ENTRY
  1822. LDD CM+4 CLEAR INTERLOCK BIT
  1823. LPC 6777
  1824. STD CM+4
  1825. NFA FA,R
  1826. ADN FSTL
  1827. CWD CM REWRITE FST ENTRY
  1828. LDN 0 CLEAR FNT ORDINAL
  1829. STD FA
  1830. UJN CIBX RETURN
  1831. SBA SPACE 4,10
  1832. ** SBA - SET BUFFER ADDRESS.
  1833. *
  1834. * ENTRY (TY) = DAYFILE TYPE.
  1835. * (CM - CM+1) = DAYFILE BUFFER ADDRESS.
  1836. *
  1837. * EXIT (A) = DAYFILE BUFFER ADDRESS.
  1838. *
  1839. * MACROS NFA.
  1840.  
  1841.  
  1842. SBA1 NFA DAYN SET JOB DAYFILE BUFFER ADDRESS
  1843.  
  1844. SBA SUBR ENTRY/EXIT
  1845. LDD TY
  1846. ZJN SBA1 IF JOB DAYFILE
  1847. LDD CM SET SYSTEM DAYFILE BUFFER ADDRESS
  1848. SHN 14
  1849. ADD CM+1
  1850. UJN SBAX RETURN
  1851. RDI SPACE 4,20
  1852. ** RDI - READ DEVICE INFORMATION SECTOR.
  1853. *
  1854. * ENTRY (T5) = EQUIPMENT.
  1855. * (RDIA) = *PSN* IF LABEL TRACK IS TO BE INTERLOCKED.
  1856. *
  1857. * EXIT (T6) = LABEL TRACK.
  1858. * (T7) = *DILT* SECTOR.
  1859. * (BFMS) = DEVICE INFORMATION SECTOR.
  1860. *
  1861. * ERROR TO *DPP* IF ERROR FLAG SET.
  1862. *
  1863. * CALLS LLT, RMS, WTI.
  1864. *
  1865. * MACROS SETMS.
  1866.  
  1867.  
  1868. RDI SUBR ENTRY/EXIT
  1869. RJM LLT LOCATE LABEL TRACK
  1870. RDIA UJN RDI2 BYPASS LABEL TRACK INTERLOCK
  1871. * PSN (*SETDI* FUNCTION)
  1872. RJM WTI SET LABEL TRACK INTERLOCK
  1873. NJP DPP IF ERROR FLAG SET
  1874. LDD T6
  1875. STM RTIA
  1876. RDI2 LDN DILT SET SECTOR
  1877. STD T7
  1878. SETMS IO,RW
  1879. LDC BFMS READ SECTOR
  1880. RJM RMS
  1881. UJP RDIX RETURN
  1882. VBP SPACE 4,15
  1883. ** VBP - VALIDATE BUFFER POINTERS.
  1884. *
  1885. * ENTRY (A) = BUFFER LENGTH REQUIRED.
  1886. *
  1887. * EXIT (A) .LT. 0 IF VALID POINTERS.
  1888. * (CN+3 - CN+4) = (FIRST).
  1889. *
  1890. * USES T0, T1, CN - CN+4, T2 - T2+4.
  1891. *
  1892. * CALLS GFE.
  1893.  
  1894.  
  1895. VBP SUBR ENTRY/EXIT
  1896. STD T1
  1897. RJM GFE READ *FIRST*
  1898. ADN 1
  1899. CRD CN
  1900. ADN 3 READ *LIMIT*
  1901. CRD T2
  1902. LDD T2+3
  1903. LPN 37
  1904. STD T2+3
  1905. SHN 14
  1906. LMD T2+4
  1907. SBN 1
  1908. SHN -6
  1909. SBD FL
  1910. PJN VBPX IF LIMIT .GT. FL
  1911. LDD CN+3
  1912. LPN 37
  1913. STD CN+3
  1914. SHN 14
  1915. LMD CN+4
  1916. ADD T1 FIRST+BUFL
  1917. STD T2
  1918. SHN -14
  1919. SBD T2+3
  1920. NJN VBPX IF (FIRST+BUFL) .NE. LIMIT
  1921. LDD T2
  1922. SBD T2+4
  1923. UJN VBPX RETURN
  1924. VEQ SPACE 4,10
  1925. ** VEQ - VALIDATE EQUIPMENT.
  1926. *
  1927. * ENTRY (A) = EST ORDINAL.
  1928. *
  1929. * EXIT (CM - CM+4) = EST ENTRY.
  1930. * TO *ABT* IF INCORRECT EQUIPMENT.
  1931. *
  1932. * USES T5, CM - CM+4.
  1933. *
  1934. * MACROS ABORT, SFA.
  1935.  
  1936.  
  1937. VEQ SUBR ENTRY/EXIT
  1938. STD T5
  1939. ZJN VEQ1 IF NOT LEGAL EST ORDINAL
  1940. SFA EST READ EST ENTRY
  1941. ADK EQDE
  1942. CRD CM
  1943. LDD CM
  1944. SHN 21-13
  1945. MJN VEQX IF MASS STORAGE EQUIPMENT
  1946. VEQ1 ABORT /MESS/EREQ * SFM INCORRECT EQUIPMENT.*
  1947. SPACE 4
  1948. SPACE 4
  1949. OVL0 EQU BFMS-ZDFL
  1950. ERRNG OVL0-*-5 OVERFLOW INTO ZERO LEVEL OVERLAY AREA
  1951. ERRNG EPFW-OVL0-ZBFL CHECK LENGTH OF *0BF*
  1952. ERRNG EPFW-OVL0-ZTDL CHECK LENGTH OF *0TD*
  1953. PRS TITLE PRESET.
  1954. ** PRS - PRESET PROGRAM.
  1955. *
  1956. * EXIT (LS) = LAST FET STATUS.
  1957. * (FA) = 0.
  1958. * (FI) = 0.
  1959. * (MI) = 1.
  1960. * (TE) = NUMBER OF ENTRIES IN FNT.
  1961. * (FN - FN+4) = FIRST WORD OF FET.
  1962.  
  1963.  
  1964. PRS SUBR ENTRY/EXIT
  1965. LDN 0 CLEAR FST ADDRESS
  1966. STD T1
  1967. STD FA
  1968. STD FI
  1969. LDN 1 PRESET MACHINE INDEX
  1970. STD MI
  1971. RJM CRS CHECK RECALL STATUS
  1972. ZJN PRS1 IF RECALL NOT SET
  1973.  
  1974. * CHECK FUNCTION CODE.
  1975.  
  1976. LDD IR+2 CHECK FUNCTION CODE
  1977. SHN 1
  1978. ADD IR+2
  1979. STD T7
  1980. SBK MXFN*3
  1981. MJN PRS2 IF LEGAL CODE
  1982. PRS1 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
  1983.  
  1984. * CHECK FET ADDRESS.
  1985.  
  1986. PRS2 LDD IR+3 CHECK FET ADDRESS
  1987. LPN 77
  1988. STD IR+3
  1989. SHN 14
  1990. MJN PRS2.1 IF OUT OF RANGE
  1991. LMD IR+4
  1992. ADN 1
  1993. SHN -6
  1994. SBD FL
  1995. MJN PRS2.2 IF NOT OUT OF RANGE
  1996. PRS2.1 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  1997.  
  1998. * CHECK FET LENGTH.
  1999.  
  2000. PRS2.2 LDM TFCN+2,T7
  2001. LPN 77
  2002. STM FETL SAVE REQUIRED FET LENGTH
  2003. ZJN PRS2.3 IF NO FET REQUIRED
  2004. RJM GFE GET FET ADDRESS
  2005. ADN 1
  2006. CRD CM
  2007. LDD CM+3 SET FET LENGTH
  2008. SHN -6
  2009. ADN 5
  2010. STD T1
  2011. LDM FETL CHECK FET LENGTH
  2012. SBD T1
  2013. PJN PRS2.1 IF FET NOT LONG ENOUGH
  2014. PRS2.3 LDD IR+3
  2015. SHN 14
  2016. LMD IR+4
  2017. ADD T1
  2018. SHN -6
  2019. SBD FL
  2020. PJN PRS2.1 IF OUT OF RANGE
  2021.  
  2022. * CHECK FOR PRIVILEGED ANALYST ACCESS.
  2023.  
  2024. LDM TFCN+2,T7
  2025. SHN 21-7
  2026. PJN PRS3 IF NOT CHECKING FOR PRIVILEGED ANALYST
  2027. RJM VPA VALIDATE PRIVILEGED ANALYST
  2028. ZJN PRS3.1 IF PRIVILEGED ANALYST ACCESS ALLOWED
  2029.  
  2030. * CHECK FOR EITHER SYSTEM ORIGIN PRIVILEGES OR *SSJ=*.
  2031.  
  2032. PRS3 LDM TFCN+2,T7
  2033. SHN 21-10
  2034. PJN PRS4 IF NOT CHECKING FOR *SYOT* OR *SSJ=*
  2035. RJM CUA CHECK USER ACCESS
  2036. ZJN PRS3.1 IF CALLER HAS SYSTEM ORIGIN PRIVILEGES
  2037. LDD CP CHECK FOR *SSJ=*
  2038. ADK SEPW
  2039. CRD CM
  2040. LDD CM
  2041. SHN 21-2
  2042. PJN PRS5 IF CALLER IS NOT *SSJ=*
  2043. PRS3.1 LJM PRS7 PROCESS FUNCTION
  2044.  
  2045. * CHECK FOR SYSTEM ORIGIN PRIVILEGES.
  2046.  
  2047. PRS4 LDM TFCN+2,T7 CHECK USER ACCESS REQUIRMENTS
  2048. SHN 21-12
  2049. PJN PRS6 IF NO REQUIREMENTS
  2050. RJM CUA CHECK USER ACCESS
  2051. ZJN PRS6 IF CALLER HAS SYSTEM ORIGIN PRIVILEGES
  2052. LDD CM CHECK MAINTENANCE ACCESS
  2053. NJN PRS5 IF NOT MAINTENANCE ACCESS
  2054. LDM TFCN+2,T7
  2055. SHN 21-11
  2056. MJN PRS6 IF MAINTENANCE ACCESS ALLOWED
  2057. PRS5 LJM PRS1 * SFM INCORRECT REQUEST.*
  2058.  
  2059. * CHECK FOR *SSJ=*.
  2060.  
  2061. PRS6 LDM TFCN+2,T7
  2062. SHN 21-13
  2063. PJN PRS7 IF NOT CHECKING FOR *SSJ=*
  2064. LDD CP READ SPECIAL ENTRY POINTS
  2065. ADC SEPW
  2066. CRD CM
  2067. LDD CM
  2068. SHN 21-2
  2069. PJN PRS5 IF *SSJ=* NOT PRESENT
  2070.  
  2071. * PROCESS FUNCTION.
  2072.  
  2073. PRS7 LDM TFCN,T7 SET OVERLAY NAME
  2074. STM SFMA
  2075. LDM TFCN+1,T7 SET PROCESSOR ADDRESS
  2076. STM SFMB
  2077. RJM GFE GET FET ADDRESS
  2078. CRD FN
  2079. LDD FN+4 SAVE LAST FET STATUS
  2080. LPC 1776
  2081. STD LS
  2082. LDN DFPP READ DAYFILE POINTER WORD
  2083. CRD CM
  2084. LDD CM SET FWA-1 OF DAYFILE POINTERS
  2085. SHN 14
  2086. LMD CM+1
  2087. SBN 1
  2088. STM SDAA+1
  2089. SHN -14
  2090. RAM SDAA
  2091. LDN FNTP SET FNT POINTER
  2092. CRD CM
  2093. LDD CM+2 SET NUMBER OF ENTRIES
  2094. STD TE
  2095. RJM IFP INITIALIZE TABLE ACCESS ROUTINES
  2096. LJM PRSX RETURN
  2097.  
  2098.  
  2099. IFP HERE DUMP *IFP* REMOTE CODE
  2100. SPACE 4,10
  2101. ** COMMON DECKS.
  2102.  
  2103.  
  2104. *CALL COMPCRS
  2105. SSJ$ EQU 1 SET SSJ CHECKING FOR *COMPCUA*
  2106. *CALL COMPCUA
  2107. *CALL COMPVPA
  2108. TFCN SPACE 4,20
  2109. ** TFCN - TABLE OF FUNCTION CODE PROCESSORS.
  2110. *
  2111. *T, 12/O,12/N,1/S,1/P,1/M,1/E,1/A,1/0,6/L
  2112. *
  2113. * N FUNCTION PROCESSOR ADDRESS.
  2114. * O OVERLAY NAME.
  2115. * S *SSJ=* ENTRY POINT REQUIRED.
  2116. * P SYSTEM ORIGIN PRIVILEGES REQUIRED.
  2117. * M MAINTENANCE ACCESS ALLOWED.
  2118. * E EITHER *SSJ=* OR SYSTEM ORIGIN PRIVILEGES REQUIRED.
  2119. * A ALLOW ACCESS IF CALLER HAS PRIVILEGED ANALYST
  2120. * VALIDATION AND IF *PRIVILEGED ANALYST MODE* ENABLED.
  2121. * L REQUIRED FET LENGTH - 1.
  2122.  
  2123.  
  2124. TFCN FCN
  2125. FCN TAFF,TAD,6,P,SSJ TERMINATE ACTIVE DAYFILE
  2126. FCN AMDF,ADF,5,P,,,,A ACCESS MASTER DAYFILE
  2127. FCN AAFF,AAC,5,P,,,,A ACCESS ACCOUNT DAYFILE
  2128. FCN AELF,AER,5,P,,M,,A ACCESS ERROR LOG
  2129. FCN AMLF,AMF,5,P,,M ACCESS MAINTENANCE LOG
  2130. FCN AUDF,AUD,5 ACCESS USER DAYFILE
  2131. FCN RDTF,RDT,4,P RETURN DEVICE TYPE
  2132. FCN PADF,PDF,6,P,SSJ PROTECT ACTIVE DAYFILE
  2133. FCN CDBF,CDB,6,P,SSJ CLEAR DAYFILE BYTE
  2134. FCN EFAF,EGF,5,P,SSJ ENTER LOCAL FAST ATTACH FILE
  2135. FCN DFAF,DFA,5,P,SSJ DELETE FAST ATTACH FILE
  2136. FCN ECFF,ECF,5,P,SSJ ENTER *CPD* SAMPLE FILE
  2137. FCN ATDF,ATD,6,,SSJ ATTACH INACTIVE DAYFILE
  2138. FCN EGFF,EGF,5,P,SSJ ENTER GLOBAL FAST ATTACH FILE
  2139. FCN ELFF,ELF,5,P,SSJ ENTER LINK FAST ATTACH FILE
  2140. FCN GDIF,GDI,6,P,SSJ GET DEVICE INFORMATION
  2141. FCN SDFF,SDF,6,P,SSJ SET DEVICE INFORMATION
  2142. FCN RSDF,RSD,0,,,,E RETURN SYSTEM DATA
  2143. FCN CSTF,CST,0,P CLEAR SUBSYSTEM ACCESS FLAG
  2144. FCN SSTF,CST,0,P SET SUBSYSTEM ACCESS FLAG
  2145. FCN SCDF,SCD,4,P SET *CPD* DROP FLAG
  2146. FCN CFFF,CFA,5,P,SSJ COUNT FAST ATTACH FILES
  2147. FCN MDFF,DMM,4,P DUMP MACHINE MEMORY
  2148. FCN GLAF,GLA,0 GET LID ATTRIBUTES
  2149. FCN GLTF,GLT,4,,,,E GET LID TABLE
  2150. FCN GLPF,GLP,0,,,,E GET PID ATTRIBUTES
  2151. FCN GSSF,GSS,0 GET ORIGIN TYPE ACCESS LEVELS
  2152. FCN GEAF,GEA,0 GET EQUIPMENT ACCESS LEVEL LIMITS
  2153. FCN GSMF,GSM,0 GET SYSTEM SECURITY MODE
  2154. FCN SPTF,SPT,0,,,,E SET PID ATTRIBUTES
  2155. FCN ILTF,INT,0,,,,E INITIALIZE LDT
  2156. FCN GLCF,GLC,0,,,,E GET LID CONFIGURATION
  2157. FCN SUSF,SSS,0,P SET SUBSYSTEM STATUS
  2158. FCN GTSF,GTS,0 GET *TMS* STATUS
  2159. FCN TPDF,TPD,0,,SSJ TRANSFER RESOURCE PREVIEW DATA
  2160. FCN MXFN
  2161. SPACE 4,10
  2162. OVERFLOW
  2163. OVERLAY (ERROR PROCESSOR.)
  2164. ABP SPACE 4,15
  2165. ** ABP - ABORT JOB.
  2166. *
  2167. * ENTRY (DA) = MESSAGE ADDRESS.
  2168. * (FS - FS+4) = FST ENTRY.
  2169. * (FA) = FST ADDRESS.
  2170. * (FA) = 0, IF NO FILE.
  2171. *
  2172. * USES CM+1, FS+4.
  2173. *
  2174. * CALLS CFB, DFM.
  2175. *
  2176. * MACROS MONITOR.
  2177.  
  2178.  
  2179. ABP ENTRY ENTRY
  2180. LDD DA ISSUE MESSAGE TO DAYFILE
  2181. ZJN ABP2 IF NO DAYFILE MESSAGE
  2182. ABP0 RJM DFM
  2183. RJM CFB CLEAR FILE BUSY
  2184. ABP1 MONITOR ABTM ABORT PROGRAM
  2185. LJM PPR EXIT TO PP RESIDENT
  2186.  
  2187. ABP2 LDC /MESS/ERIE * SFM INTERNAL ERROR.*
  2188. UJN ABP0 ISSUE MESSAGE
  2189.  
  2190.  
  2191. * DAYFILE ERROR MESSAGES.
  2192.  
  2193.  
  2194. QUAL MESS
  2195. ERAB DATA C* SFM ABORTED.*
  2196. ERAE DATA C* SFM ARGUMENT ERROR.*
  2197. ERAF DATA C* SFM FAMILY STILL ACTIVE.*
  2198. ERDA DATA C* SFM DIRECT ACCESS FILE ERROR.*
  2199. ERDC DATA C* SFM INCORRECT DAYFILE CODE.*
  2200. ERDF DATA C* SFM DUPLICATE FILE FOUND.*
  2201. EREQ DATA C* SFM INCORRECT EQUIPMENT.*
  2202. ERFA DATA C* SFM LINK FAST ATTACH FILE NOT FOUND.*
  2203. ERFE DATA C* SFM FILE EMPTY.*
  2204. ERFF DATA C* SFM FILE NOT FOUND.*
  2205. ERFN DATA C* SFM FILE NAME ERROR.*
  2206. ERFT DATA C* SFM INCORRECT FILE TYPE.*
  2207. ERFU DATA C* SFM FNT FULL.*
  2208. ERIO DATA C* SFM I/O SEQUENCE ERROR.*
  2209. ERIR DATA C* SFM INCORRECT REQUEST.*
  2210. ERLE DATA C* SFM UNRECOVERABLE LINK DEVICE ERROR.*
  2211. ERMS DATA C* SFM FILE NOT ON MASS STORAGE.*
  2212. ERNH DATA C* SFM GLOBAL FAST ATTACH LIMIT.*
  2213. ERSE DATA C* SFM SYSTEM SECTOR ERROR.*
  2214. ERTE DATA C* SFM TRACK INTERLOCK ERROR.*
  2215. ERUD DATA C* SFM UNABLE TO INTERLOCK DEVICE.*
  2216. ERWC DATA C* SFM BML MESSAGE LENGTH ERROR.*
  2217. ERIE DATA C* SFM INTERNAL ERROR.*
  2218. QUAL *
  2219. ERP SPACE 4,10
  2220. ** ERP - COMMON ERROR EXIT FROM SFM.
  2221. *
  2222. * ENTRY (DA) = ERROR CODE.
  2223. *
  2224. * USES DA, LS, CM - CM+4.
  2225. *
  2226. * CALLS GFE.
  2227.  
  2228.  
  2229. ERP ENTRY ENTRY
  2230. LDM FETL CHECK FET LENGTH
  2231. ZJN ERP0 IF ONE-WORD FET
  2232. RJM GFE GET FET ADDRESS
  2233. ADN 1
  2234. CRD CM
  2235. LDD CM+1 CHECK IF EP BIT SET
  2236. SHN 21-10
  2237. PJN ERP1 IF EP BIT NOT SET
  2238. ERP0 LDD DA SET ERROR CODE IN FET+0
  2239. SHN 12
  2240. RAD LS
  2241. SHN -14
  2242. STM SFMC
  2243. LJM SFMX RETURN TO USER
  2244.  
  2245. ERP1 LDD DA CHECK ERROR TYPE
  2246. LMN /ERR/DFB
  2247. NJN ERP2 IF NOT DAYFILE BUSY ERROR
  2248. LDN TIRR REASON CODE = TRACK INTERLOCK
  2249. LJM ERS ENTER PP RECALL STACK
  2250.  
  2251. ERP2 LDM TEMT,DA SET ERROR MESSAGE ADDRESS
  2252. STD DA
  2253. LJM ABP ABORT JOB
  2254. SPACE 4,10
  2255. ** DEFINED ERROR CODES.
  2256. *
  2257. * EC DESCRIPTION
  2258. * 1 DAYFILE BUSY.
  2259. * 2 MASS STORAGE NOT AVAILABLE.
  2260. * 3 FILE NOT FOUND.
  2261. * 4 UNCORRECTABLE RMS ERROR.
  2262. * 5 *CPD* NOT ACTIVE
  2263. * 6 RETURN INFORMATION TOO LONG FOR BUFFER.
  2264. * 7 LID UNKNOWN OR NOT LEGAL.
  2265. * 10 INCORRECT LID ATTRIBUTES.
  2266. * 11 CURRENT ATTRIBUTES NOT IN LID TABLE.
  2267. * 12 LID TABLE OVERFLOW.
  2268. * 13 TOO MANY HOST LIDS.
  2269. * 14 INCORRECT SUBFUNCTION CODE.
  2270. * 15 INCORRECT NETWORK STATUS PARAMETER.
  2271. * 16 CHECK PARAMETER BLOCK ENTRIES FOR ERROR.
  2272.  
  2273.  
  2274. TEMT INDEX
  2275. INDEX /ERR/DFB,ERPA
  2276. INDEX /ERR/TKL,ERPB
  2277. INDEX /ERR/FNF,ERPC
  2278. INDEX /ERR/RMS,ERPD
  2279. INDEX /ERR/CNF,ERPE
  2280. INDEX /ERR/LTL,ERPF
  2281. INDEX /ERR/LNL,NMSG
  2282. INDEX /ERR/ILA,NMSG
  2283. INDEX /ERR/LOA,NMSG
  2284. INDEX /ERR/LTO,NMSG
  2285. INDEX /ERR/TMH,NMSG
  2286. INDEX /ERR/IFC,NMSG
  2287. INDEX /ERR/IST,NMSG
  2288. INDEX /ERR/CPB,NMSG
  2289. INDEX /ERR/MXSE
  2290.  
  2291.  
  2292. ERPA DATA C* SFM - DAYFILE BUSY.*
  2293. ERPB DATA C* SFM - TRACK LIMIT.*
  2294. ERPC DATA C* SFM - FILE NOT FOUND.*
  2295. ERPD DATA C* SFM - UNCORRECTABLE RMS ERROR.*
  2296. ERPE DATA C+ *CPD* NOT ACTIVE.+
  2297. ERPF DATA C* SFM - LID TABLE TOO LONG FOR BUFFER.*
  2298.  
  2299. NMSG EQU 0 (NO DAYFILE MESSAGE ISSUED)
  2300. SPACE 4,10
  2301. OVERFLOW OVLA
  2302. OVERLAY (FAST ATTACH PROCESSORS.)
  2303. SPACE 4
  2304. EFA TITLE FUNCTION PROCESSORS
  2305. CFA SPACE 4,10
  2306. *** FUNCTION *CFFF* - COUNT FAST ATTACH FILES.
  2307. *
  2308. * *CFA* COUNTS FAST ATTACH FILES FOR THE FAMILY OF THE CALLING
  2309. * PROGRAM AND COMPARES IT TO THE DAF COUNT OF THE SAME FAMILY.
  2310. * *CFA* MUST BE CALLED BY A SPECIAL SYSTEM JOB.
  2311. *
  2312. * ENTRY (IR+3 - IR+4) = FET FWA.
  2313. *
  2314. * EXIT (FET+5) = 36/ 0, 24/ C
  2315. *
  2316. * MACROS SFA.
  2317.  
  2318.  
  2319. CFA ENTRY ENTRY
  2320. LDD CP GET FAMILY NAME
  2321. ADN PFCW
  2322. CRD CM
  2323. SFA EST,CM+3
  2324. ADK EQDE
  2325. CRD CM
  2326. LDD CM+4
  2327. SHN 3
  2328. ADN PFGL
  2329. CRD CM
  2330.  
  2331. * COUNT FAST ATTACH FILES ON SPECIFIED FAMILY.
  2332.  
  2333. LDN 0 INITIALIZE FAFT COUNT
  2334. STD T1
  2335. STD QA
  2336. CFA1 AOD QA ADVANCE FNT ORDINAL
  2337. LMD TE
  2338. ZJN CFA3 IF END OF FNT
  2339. SFA FNT,QA READ FNT ENTRY
  2340. CRD CN
  2341. ADN FSTG READ FST INFORMATION
  2342. CRD T3
  2343. LDD CN+4 CHECK FILE TYPE
  2344. SHN -6
  2345. LMN FAFT
  2346. NJN CFA1 IF NOT FAFT
  2347. LDD T3
  2348. STD T2 SAVE EST ORDINAL
  2349. SFA EST
  2350. ADK EQDE
  2351. CRD T3 EST WORD
  2352. LDD T3+4 READ FAMILY NAME
  2353. SHN 3
  2354. ADN PFGL
  2355. CRD T3
  2356. RJM CFM COMPARE FAMILY NAMES
  2357. NJN CFA1 IF NOT SAME FAMILY
  2358. AOD T1 INCREMENT FAFT COUNT
  2359. UJN CFA1 LOOP
  2360.  
  2361. * GET DIRECT ACCESS FILE (DAF) COUNT FOR SPECIFIED FAMILY.
  2362.  
  2363. CFA3 LDN ESTP GET EST POINTER
  2364. CRD FN
  2365. LDD FN+3 SAVE LAST MASS STORAGE ORDINAL + 1
  2366. STD FN+1
  2367. LDN 0 INITIALIZE DAF COUNT
  2368. STD FN+3
  2369. STD FN+4
  2370. LDN NOPE-1 INITIALIZE EST ORDINAL FOR SEARCH
  2371. STD FN
  2372. CFA4 AOD FN GET NEXT EST ENTRY
  2373. LMD FN+1
  2374. ZJN CFA5 IF END OF MASS STORAGE EQUIPMENTS
  2375. SFA EST,FN READ EST ENTRY
  2376. ADK EQDE
  2377. CRD CN
  2378. LDD CN
  2379. SHN 21-13
  2380. PJN CFA4 IF NOT MS EQUIPMENT
  2381. LDD CN+4 GET FAMILY NAME
  2382. SHN 3
  2383. ADN PFGL
  2384. CRD T3
  2385. RJM CFM COMPARE FAMILY NAMES
  2386. NJN CFA4 IF NOT SAME FAMILY
  2387. LDD CN+4 GET DAF COUNT
  2388. SHN 3
  2389. ADN STLL
  2390. CRD CN
  2391. LDD CN+3 INCREMENT DAF COUNT
  2392. RAD FN+4
  2393. SHN -14
  2394. RAD FN+3
  2395. UJN CFA4 SEARCH FOR ANOTHER FAMILY DEVICE
  2396.  
  2397. * STORE RESULT.
  2398.  
  2399. CFA5 LDN ZERL
  2400. CRD CM
  2401. LDD FN+3
  2402. SHN 14
  2403. ADD FN+4
  2404. SBD T1 (DAF COUNT) - (FAFT COUNT)
  2405. STD CM+4
  2406. SHN -14
  2407. STD CM+3
  2408. RJM GFE WRITE FET+5
  2409. ADN 5
  2410. CWD CM
  2411. LJM SFMX EXIT
  2412. ECF SPACE 4,10
  2413. *** FUNCTION *ECFF* - ENTER *CPD* SAMPLE FILE.
  2414. *
  2415. * SPECIFIED FILE MUST BE A DIRECT ACCESS FILE.
  2416. * NO ACTION TAKEN IF SPECIFIED FILE ALREADY ENTERED.
  2417.  
  2418.  
  2419. ECF ENTRY ENTRY
  2420. LCN FAFT-PMFT ENABLE SEARCH FOR *PMFT* FILE
  2421. RAM FATC
  2422. RJM VLF VERIFY LOCAL FILE
  2423. NJN ECF1 IF FILE UNDEFINED IN SYSTEM FNT
  2424. LJM SFMX RETURN
  2425.  
  2426. ECF1 RJM IFA INITIALIZE SYSTEM FNT ENTRY
  2427. LDD QA
  2428. STM ECFA+2 SET FNT ORDINAL FOR *CPD* CALL
  2429. NFA FA,R
  2430. ADN FSTL RESTORE FST INFORMATION
  2431. CRD FS
  2432. LDD IR+3 SET FET ADDRESS
  2433. STM ECFA+3
  2434. LDD IR+4
  2435. STM ECFA+4
  2436. RJM GFE READ LIMIT WORD
  2437. ADN 4
  2438. CRD CN
  2439. LDD FA SET LOCAL FNT OFFSET
  2440. STD CN
  2441. RJM GFE UPDATE FET
  2442. ADN 4
  2443. CWD CN
  2444. LDC ECFA ENABLE *CPD* CALL
  2445. STM SFMF
  2446. LJM SFMX RETURN
  2447.  
  2448.  
  2449. ECFA VFD 18/3RCPD,6/40,12/0,24/0
  2450. EFA SPACE 4,10
  2451. *** FUNCTION *EFAF* - ENTER LOCAL FAST ATTACH FILE.
  2452. *
  2453. * SPECIFIED FILE MUST BE A DIRECT ACCESS FILE.
  2454. * NO ACTION TAKEN IF SPECIFIED FILE ALREADY ENTERED.
  2455. EGF SPACE 4
  2456. *** FUNCTION *EGFF* - ENTER GLOBAL FAST ATTACH FILE.
  2457. *
  2458. * THE SPECIFIED FILE IS ENTERED INTO THE GLOBAL FAST
  2459. * ATTACH STATUS IF IT RESIDES ON A SHARED DEVICE. IF THE
  2460. * FILE IS NOT ON A SHARED DEVICE, THE FUNCTION IS EXACTLY
  2461. * THE SAME AS FUNCTION *EFAF*, ENTER LOCAL FAST ATTACH.
  2462. *
  2463. * THE SPECIFIED FILE MUST BE A DIRECT ACCESS FILE.
  2464.  
  2465.  
  2466. EGF ENTRY ENTRY
  2467. RJM VLF VERIFY LOCAL FILE
  2468. NJN EGF1 IF FAST ATTACH FILE NOT FOUND
  2469. LJM SFMX EXIT
  2470.  
  2471. EGF1 LDD ES CHECK FILE ON SHARED DEVICE
  2472. SHN 21-11
  2473. PJN EGF2 IF NOT SHARED DEVICE
  2474. LDD IR+2
  2475. LMN EFAF
  2476. NJN EGF3 IF NOT LOCAL FAST ATTACH
  2477. RJM SMI GET MACHINE INDEX
  2478. STD MI
  2479. EGF2 UJN EGF6 UPDATE SYSTEM SECTOR
  2480.  
  2481. EGF3 SOM EGFA
  2482. RJM SMP SET MMF PARAMETERS
  2483. LDD ES
  2484. SHN 21-4
  2485. MJN EGF6 IF INDEPENDENT SHARED DEVICE
  2486. LDN DATI SET *DATI* INTERLOCK
  2487. RJM SFR
  2488. RJM SFT SEARCH *FAT* TABLE
  2489. NJN EGF4 IF ENTRY FOUND
  2490. RJM EFI ENTER *FAT* TABLE ENTRY
  2491. ZJN EGF5 IF HOLE USED FOR ENTRY
  2492. RJM IFC INCREMENT FAST ATTACH COUNT
  2493. UJN EGF5
  2494.  
  2495. EGF4 RJM UFI UPDATE *FAT* ENTRY
  2496. EGF5 LDN DATI CLEAR *DATI* INTERLOCK
  2497. RJM CFI
  2498. EGF6 LDD MI SET SYSTEM SECTOR ADDRESS OF WRITE FLAG
  2499. STD BA
  2500. SHN 2
  2501. ADC UCSS
  2502. RAD BA
  2503. RJM IFA INITIALIZE FAST ATTACH FILE
  2504. LDN 1 READ SYSTEM SECTOR
  2505. RJM RFS
  2506. NJN EGF8 IF SYSTEM SECTOR ERROR
  2507. LDD ES
  2508. LPN 20
  2509. ZJN EGF7 IF NOT INDEPENDENT SHARED DEVICE
  2510. LDN 4 SET MACHINE ACTIVE FLAG
  2511. EGF7 ADN 1 SET LOCAL WRITE FLAG
  2512. * ADN 0 (CLEAR LOCAL WRITE FLAG - GLOBAL FILE)
  2513. EGFA EQU *-1
  2514. STI BA
  2515. LDC 4000 SET FAST ATTACH INDICATOR
  2516. LMD FI
  2517. STM FISS
  2518. LDM CASS CLEAR CURRENT ACCESS MODE
  2519. SCN 37
  2520. STM CASS
  2521. LDD QA SET FNT ORDINAL
  2522. STM FASS
  2523. LDD MA COPY FILE NAME TO SYSTEM SECTOR
  2524. CWD FN
  2525. CRM FNSS,ON
  2526. RJM WFS REWRITE SYSTEM SECTOR
  2527. EGF8 LDD FI SET *FAT* INDEX IN FNT ENTRY
  2528. RAD FN+3
  2529. SFA FNT,QA STORE FNT ENTRY
  2530. CWD FN
  2531. ADN FSTG
  2532. CWD FS
  2533. LJM SFMX RETURN
  2534. ELF SPACE 4
  2535. *** FUNCTION *ELFF* - ENTER LINK FAST ATTACH FILE.
  2536. *
  2537. * A SEARCH IS MADE OF THE ECS/FAT TABLE IN ORDER TO DETERMINE
  2538. * IF A FILE WITH THE SPECIFIED NAME HAS ALREADY BEEN ENTERED
  2539. * INTO GLOBAL FAST ATTACH STATUS. THE EST ORDINAL AND
  2540. * FIRST TRACK RETURNED FROM *PFM* IN *TERW* ARE USED TO
  2541. * UNIQUELY IDENTIFY THE FILE.
  2542.  
  2543.  
  2544. ELF ENTRY ENTRY
  2545. LDD CP SET EQUIPMENT AND FIRST TRACK
  2546. ADN TERW
  2547. CRD CM
  2548. LDD CM+4 SET TRACK
  2549. STD FS+1
  2550. LDD CM+3 SET EQUIPMENT
  2551. LPC 777
  2552. STD FS
  2553. STD T5
  2554. SFA EST SET EQUIPMENT EST
  2555. ADK EQDE
  2556. CRD ES
  2557. LDD ES CHECK FILE ON SHARED DEVICE
  2558. SHN 21-11
  2559. PJN ELF1 IF FILE NOT ON SHARED DEVICE
  2560. RJM SMP SET MMF PARAMETERS
  2561. LDD ES
  2562. SHN 21-4
  2563. MJN ELF4 IF INDEPENDENT SHARED DEVICE
  2564. LDN DATI SET *DATI* INTERLOCK
  2565. RJM SFR
  2566. RJM SFT SEARCH *FAT* TABLE
  2567. NJN ELF2 IF FILE FOUND
  2568. ELF1 ABORT /MESS/ERFA * SFM LINK FAST ATTACH FILE NOT FOUND.*
  2569.  
  2570. ELF2 LDD MI CHECK MACHINE ALREADY ENTERED
  2571. SHN 2 OFFSET = (MI+1)*5+(BA)
  2572. ADD MI
  2573. ADN 5
  2574. ADD BA
  2575. STD T1
  2576. LDI T1
  2577. ZJN ELF5 IF MACHINE NOT ENTERED YET
  2578. LDN DATI CLEAR *DATI* INTERLOCK
  2579. RJM CFI
  2580. ELF3 LJM SFMX RETURN
  2581.  
  2582. ELF4 LDD ES+4 READ FAMILY NAME
  2583. SHN 3
  2584. ADN PFGL
  2585. CRD CN
  2586. LDD MA MOVE FILE NAME
  2587. CWD FN
  2588. CRD CM
  2589. RJM FAT SEARCH FOR FAST ATTACH FILE
  2590. NJN ELF6 IF FILE NOT FOUND
  2591. UJN ELF3 RETURN
  2592.  
  2593. ELF5 RJM UFI UPDATE *FAT* TABLE
  2594. LDN DATI CLEAR *DATI* INTERLOCK
  2595. RJM CFI
  2596. ELF6 RJM IFA INITIALIZE FAST ATTACH FILE
  2597. LDD ES
  2598. LPN 20
  2599. ZJN ELF7 IF NOT INDEPENDENT SHARED DEVICE
  2600. RJM RFS READ SYSTEM SECTOR
  2601. NJN ELF3 IF SYSTEM SECTOR ERROR
  2602. LDD MI
  2603. SHN 2
  2604. ADD MI
  2605. ADC UCSS
  2606. STD T1
  2607. LDN 4 SET MACHINE ACTIVE FLAG
  2608. RAI T1
  2609. RJM WFS REWRITE SYSTEM SECTOR
  2610. ELF7 LDD FI SET *FAT* INDEX IN FNT ENTRY
  2611. RAD FN+3
  2612. SFA FNT,QA STORE FNT ENTRY
  2613. CWD FN
  2614. ADN FSTG
  2615. CWD FS
  2616. LDD FS SET EST ORDINAL
  2617. STD CM+1
  2618. LDN IUCS INCREMENT USER COUNT
  2619. STD CM+3
  2620. MONITOR SMDM
  2621. LJM SFMX
  2622. DFA SPACE 4
  2623. *** FUNCTION *DFAF* - DELETE FAST ATTACH FILE.
  2624. *
  2625. * SPECIFIED FILE MUST BE ASSIGNED TO CONTROL POINT.
  2626.  
  2627.  
  2628. DFA ENTRY ENTRY
  2629. RJM VLF VERIFY LOCAL FILE
  2630. ZJN DFA1 IF FAST ATTACH FILE FOUND
  2631. LJM SFMX
  2632.  
  2633. DFA1 LDC DFAB-4 PRESET TABLE ADDRESS
  2634. STD CM
  2635. DFA1.1 LDN 4 INCREMENT ADDRESS FOR NEXT ENTRY
  2636. RAD CM
  2637. LDM 0,CM
  2638. ZJN DFA1.2 IF END OF TABLE
  2639. LMD FN
  2640. NJN DFA1.1 IF NO FILE NAME MATCH
  2641. LDM 1,CM
  2642. LMD FN+1
  2643. NJN DFA1.1 IF NO FILE NAME MATCH
  2644. LDM 2,CM
  2645. LMD FN+2
  2646. NJN DFA1.1 IF NO FILE NAME MATCH
  2647. LDM 3,CM
  2648. LMD FN+3
  2649. SCN 77
  2650. ZJN DFA2 IF IGNORE FAMILY ACTIVITY COUNT
  2651. DFA1.2 LDD CP CHECK FAMILY ACTIVITY COUNT
  2652. ADN PFCW
  2653. CRD CM
  2654. SFA EST,CM+3
  2655. ADK EQDE
  2656. CRD CM
  2657. LDD CM+4
  2658. SHN 3
  2659. ADN DULL
  2660. CRD CM
  2661. LDD CM+4
  2662. LPC 3777
  2663. SBN 1
  2664. ZJN DFA2 IF NO FAMILY ACTIVITY
  2665. ABORT /MESS/ERAF * SFM FAMILY STILL ACTIVE.*
  2666.  
  2667. DFA2 LDD FS+4 CLEAR FAST ATTACH INDICATOR
  2668. LPC 5777
  2669. STD FS+4
  2670. LDC SYFT*100 SET FILE TYPE
  2671. STD FN+4
  2672. LDN ZERL
  2673. CRD CN
  2674. LDD T1 SET FNT ORDINAL
  2675. STD QA
  2676. SFA FNT READ FNT ENTRY
  2677. CRD CM
  2678. CWD FN
  2679. ADN FSTG
  2680. CWD CN
  2681. LDD CM+3 CHECK GLOBAL FAST ATTACH
  2682. LPN 77
  2683. ZJN DFA3 IF NOT GLOBAL FAST ATTACH
  2684. RJM SMP
  2685. LDD ES
  2686. SHN 21-4
  2687. PJN DFA7 IF NOT INDEPENDENT SHARED DEVICE
  2688.  
  2689. * CLEAR FST ADDRESS FROM SYSTEM SECTOR.
  2690.  
  2691. DFA3 LDD FS RESTORE EQUIPMENT
  2692. STD T5
  2693. LDD FS+1 RESTORE FIRST TRACK
  2694. STD T6
  2695. LDN 0 READ SYSTEM SECTOR
  2696. RJM RFS
  2697. NJN DFA6 IF SYSTEM SECTOR ERROR
  2698. LDD ES
  2699. LPN 20
  2700. ZJN DFA4 IF NOT SHARED DEVICE
  2701. RJM SMI GET MACHINE INDEX
  2702. STD MI
  2703. RJM CAC
  2704. ZJN DFA4 IF LAST MACHINE RELEASING FILE
  2705. LDN 0 CLEAR ACCESS MODE
  2706. STM CASS
  2707. STI T2 CLEAR LOCAL WRITE FLAG
  2708. UJN DFA5 REWRITE SYSTEM SECTOR
  2709.  
  2710. DFA4 STM FISS
  2711. DFA5 RJM WFS REWRITE SYSTEM SECTOR
  2712. DFA6 LJM DFA11 DECREMENT USER COUNT
  2713.  
  2714. * PROCESS MMF FAST ATTACH FILE.
  2715.  
  2716. DFA7 LDN DATI SET *DATI* INTERLOCK
  2717. RJM SFR
  2718. RJM SFT SEARCH *FAT* TABLE
  2719. NJN DFA8 IF FILE FOUND
  2720. ABORT /MESS/ERFF * SFM FILE NOT FOUND.*
  2721.  
  2722. DFA8 LDD MI SET LOCAL WORD OFFSET
  2723. SHN 2
  2724. ADD MI
  2725. ADN 5
  2726. ADD BA
  2727. STM DFAA
  2728. LDN ZERL DELETE LOCAL ENTRY
  2729. CRM *,ON
  2730. DFAA EQU *-1
  2731. LDN MXMF PRESET SEARCH LOOP
  2732. STD T0
  2733. DFA8.1 SOD T0 CHECK FOR OTHER MACHINES
  2734. MJN DFA9 IF NO OTHER MACHINES ACTIVE
  2735. SHN 2
  2736. ADD T0
  2737. ADD BA
  2738. STD T1
  2739. LDM 2*5,T1
  2740. NJN DFA10 IF NOT LAST MACHINE OUT
  2741. UJN DFA8.1 CHECK NEXT MACHINE SLOT
  2742.  
  2743. * PROCESS LAST ENTRY REMOVED.
  2744.  
  2745. DFA9 LDN ZERL SET TO DELETE ENTRY
  2746. CRD CM
  2747. LDN 0 CLEAR WORD ZERO OF *FAT* ENTRY
  2748. RJM WFW
  2749. LDN DATI CLEAR *DATI* INTERLOCK
  2750. RJM CFI
  2751. LJM DFA3 UPDATE SYSTEM SECTOR AND FST
  2752.  
  2753. DFA10 LDC LDNI CLEAR LOCAL ENTRY
  2754. STM UFIA
  2755. RJM UFI UPDATE *FAT* ENTRY
  2756. LDN DATI CLEAR *DATI* INTERLOCK
  2757. RJM CFI
  2758. RJM CFE CLEAR LOCAL FNT ENTRY
  2759. LDD FS DECREMENT COUNT FOR FAST ATTACH
  2760. STD CM+1
  2761. LDN DUCS
  2762. STD CM+3
  2763. MONITOR SMDM
  2764. DFA11 LDD FS DECREMENT COUNT FOR LOCAL FILE
  2765. STD CM+1 SET EQUIPMENT
  2766. LDN DUCS
  2767. STD CM+3
  2768. MONITOR SMDM
  2769. LJM SFMX
  2770.  
  2771.  
  2772. * TABLE OF SYSTEM FILES FOR FAMILY ACTIVITY OVERRIDE.
  2773.  
  2774. DFAB BSS 0
  2775. DATA 7L"TMFC" TMS DATABASE
  2776. CON 0 END OF TABLE
  2777. GTS SPACE 4,10
  2778. *** FUNCTION *GTSF* - GET TMS STATUS.
  2779. *
  2780. * ENTRY (IR+3 - IR+4) = PARAMETER WORD ADDRESS.
  2781. *
  2782. * EXIT (ADDRESS) = BIT 59 SET IF TMS IS ENABLED.
  2783. * BIT 58 SET IF TFM BINARIES ON SYSTEM.
  2784. * BIT 57 SET IF TMS ACTIVE ON FAMILY.
  2785. * BIT 1 SET IF DEFAULT *TO=E*.
  2786. * BIT 0 SET IF DEFAULT *TO=F*.
  2787.  
  2788.  
  2789. GTS ENTRY ENTRY
  2790. LDD CP GET FAMILY EST ORDINAL
  2791. ADN PFCW
  2792. CRD CM
  2793. SFA EST,CM+3 GET EST ENTRY
  2794. CRD CM
  2795. LDD CM+4 GET FAMILY NAME FROM MST
  2796. SHN 3
  2797. ADN PFGL
  2798. CRD CN
  2799. LDD MA GET TAPE CATALOG NAME
  2800. CWM GTSC,ON
  2801. LDD MA
  2802. CRD CM
  2803. RJM FAT FIND FAST ATTACH FILE
  2804. STD CM
  2805. LDN ZERL PRESET PARAMETER WORD
  2806. CRD CN
  2807. LDD CM SET FILE STATUS
  2808. LMN 1
  2809. SHN 11-0
  2810. STD CN
  2811. EXECUTE TFM,=
  2812. LDC 100+1RT SET NAME OF TMS PP PROGRAM *TFM*
  2813. STD CM+2
  2814. LDC 2RFM
  2815. STD CM+3
  2816. MONITOR SPLM SEARCH PERIPHERAL LIBRARY
  2817. LDD CM+4 CHECK IF TMS BINARIES IN SYSTEM
  2818. ADD CM+3
  2819. ZJN GTS1 IF NO BINARIES
  2820. LDC 2000 FLAG BINARIES IN SYSTEM
  2821. RAD CN
  2822. GTS1 LDN SSTL GET TMS ENABLED/DISABLED STATUS
  2823. CRD CM
  2824. LDD CM+2
  2825. LPN 1
  2826. LMN 1
  2827. SHN 13-0
  2828. RAD CN
  2829. NFA TMSN GET TMS CONTROL WORD
  2830. CRD CM
  2831. LDD CM+4 PRESET USER DEFAULTS
  2832. SHN 1-12
  2833. STD CN+4
  2834. SHN 21-13-1+12
  2835. MJN GTS3 IF DEFAULTS SET BY USER
  2836. LDD CP FETCH EJT ORDINAL
  2837. ADK TFSW
  2838. CRD CM
  2839. SFA EJT,CM CALCULATE EJT ENTRY ABSOLUTE ADDRESS
  2840. ADK SCLE GET JOB ORIGIN TYPE
  2841. CRD CM
  2842. LDD CM
  2843. LPN 17
  2844. NJN GTS2 IF NOT SYSTEM ORIGIN
  2845. AOM GTSA CHANGE SHIFT COUNTS
  2846. AOM GTSB
  2847. GTS2 LDK TFML GET TMS SYSTEM STATUS WORD
  2848. CRD CM
  2849. LDD CM+4 SET *TO=F* OR *TO=T*
  2850. GTSA SHN 0-12
  2851. * SHN 0-11 SYSTEM ORIGIN
  2852. LPN 1
  2853. STD CN+4
  2854. LDD CM+4 SET *TO=E* OR *TO=C*
  2855. GTSB SHN 1-10
  2856. * SHN 1-7 SYSTEM ORIGIN
  2857. LPN 2
  2858. RAD CN+4
  2859. GTS3 LDD CN+4 SET DEFAULT TAPE OPTIONS
  2860. LMN 3
  2861. LPN 3
  2862. STD CN+4
  2863. LDN 0
  2864. STD T1
  2865. RJM GFE WRITE REPLY WORD
  2866. CWD CN RETURN TMS STATUS
  2867. LJM DPP DROP PP
  2868.  
  2869. GTSC DATA 7L"TMFC" TAPE CATALOG FILE NAME
  2870. SCD SPACE 4,10
  2871. *** FUNCTION *SCDF* - SET *CPD* DROP FLAG.
  2872. *
  2873. * THIS FUNCTION WILL SET THE *CPD* DROP FLAG IN CMR. AS A
  2874. * RESULT, THE COPY OF *CPD* THAT IS RUNNING WILL TERMINATE.
  2875. * IT WILL ALSO ASSIGN THE ACTIVE *SAMPLE* FILE (IF ONE EXISTS)
  2876. * TO THE CALLING JOB AS A LOCAL FILE.
  2877.  
  2878.  
  2879. SCD ENTRY ENTRY
  2880.  
  2881. * CHECK IF *CPD* IS ACTIVE.
  2882.  
  2883. LDN PPCP SET PP COMMUNICATION AREA ADDRESSES
  2884. CRD CM
  2885. LDD CM+4
  2886. STD DA
  2887. LDN PPUL
  2888. CRD CM
  2889. LDD CM+2
  2890. SHN 3
  2891. ADD DA
  2892. STD T2
  2893. SCD1 LDD DA CHECK PP PROGRAM NAME
  2894. CRD CM
  2895. LDD CM+1
  2896. SCN 77
  2897. SHN 6
  2898. LMD CM
  2899. LMC 3RDCP
  2900. ZJN SCD2 IF *CPD* FOUND
  2901. LDN 10
  2902. RAD DA
  2903. LMD T2
  2904. NJN SCD1 IF MORE PP-S TO CHECK
  2905. STD DA
  2906. LJM SCD4 PROCESS SAMPLE FILE
  2907.  
  2908. SCD2 LDN 1 SET *CPD* DROP FLAG
  2909. STD CM+1
  2910. STD CM+2
  2911. LDD MA
  2912. CWM SCDA,ON
  2913. MONITOR UADM
  2914. SCD3 DELAY WAIT AWHILE
  2915. PAUSE
  2916. LDD CM+1
  2917. NJP SFMX IF ERROR FLAG SET
  2918. LDD DA
  2919. CRD CM
  2920. LDD CM+1 CHECK PP ASSIGNED
  2921. SCN 77
  2922. SHN 6
  2923. LMD CM
  2924. LMC 3RDCP
  2925. ZJN SCD3 IF *CPD* STILL ACTIVE
  2926.  
  2927. * PROCESS SAMPLE FILE.
  2928.  
  2929. SCD4 LDN 0 INITIALIZE SEARCH INDEX
  2930. STD QA
  2931. SCD5 AOD QA ADVANCE ORDINAL
  2932. LMD TE
  2933. NJN SCD6 IF NOT END OF FNT
  2934. ERROR /ERR/FNF EC = 3, * SFM FILE NOT FOUND.*
  2935.  
  2936. SCD6 SFA FNT,QA READ FNT ENTRY
  2937. CRD FN
  2938. LDD FN+4
  2939. LMC PMFT*100
  2940. NJN SCD5 IF INCORRECT TYPE
  2941.  
  2942. * CREATE LOCAL FILE.
  2943.  
  2944. RJM EFN ENTER FILE NAME
  2945. LDN ZERL
  2946. CRD CN
  2947. LDD MA
  2948. CWD FN
  2949. CRD CM
  2950. LDD CM+3 CLEAR MODE FLAGS
  2951. SCN 77
  2952. STD CM+3
  2953. LDC SYFT*100 SET FILE TYPE
  2954. STD CM+4
  2955. SFA FNT,QA
  2956. CRD FN
  2957. CWD CM RESTORE SYSTEM FNT SLOT
  2958. ADN FSTG
  2959. CRD FS
  2960. CWD CN
  2961. NFA FA,R STORE FILE TYPE IN LOCAL FNT
  2962. CWD FN
  2963. SOD FS+4 SET FILE BUSY
  2964. LDD DA
  2965. NJP SFMX IF *CPD* FOUND
  2966. ERROR /ERR/CNF EC=5, * CPD NOT ACTIVE.*
  2967.  
  2968.  
  2969. SCDA CON LIOS INCREMENT LOW CORE FIELD BY ONE
  2970. CON INWL WORD ADDRES
  2971. CON 2*100+1 BIT ADDRESS/FIELD WIDTH
  2972. CON 0
  2973. CON 0
  2974. CAC SPACE 4,10
  2975. ** CAC - CHECK ACTIVITY COUNTS.
  2976. *
  2977. * ENTRY (BFMS) = SYSTEM SECTOR.
  2978. * (MI) = MACHINE INDEX.
  2979. *
  2980. * EXIT (A) = 0 IF LAST MACHINE TO DELETE FILE.
  2981. * (T2) = *UCSS* OFFSET FOR THIS MACHINE.
  2982. *
  2983. * USES CM, T2.
  2984.  
  2985.  
  2986. CAC SUBR ENTRY/EXIT
  2987. LDD MI
  2988. SHN 2
  2989. ADD MI
  2990. ADC UCSS
  2991. STD T2
  2992. LDI T2 CLEAR MACHINE ACTIVE FLAG
  2993. SCN 4
  2994. STI T2
  2995. LDN 0
  2996. STD CM
  2997. CAC1 LDM UCSS+5,CM CHECK FOR OTHER MACHINES ACTIVE
  2998. LPN 4
  2999. NJN CACX IF MACHINE ACTIVE
  3000. LDN 5
  3001. RAD CM ADVANCE TO NEXT MACHINE
  3002. ADC -MISD*5
  3003. NJN CAC1 IF NOT ALL MACHINES CHECKED
  3004. LDM CASS SET CURRENT ACCESS TO WRITE
  3005. SCN 20
  3006. LMN 20
  3007. STM CASS
  3008. LDN 0
  3009. UJN CACX RETURN
  3010. TITLE SUBROUTINES.
  3011. CFE SPACE 4,10
  3012. ** CFE - CLEAR LOCAL FNT ENTRY.
  3013. *
  3014. * ENTRY (FA) = INDEX OF FNT ENTRY.
  3015. *
  3016. * EXIT (A) = (FA) = 0.
  3017. *
  3018. * USES CM - CM+4.
  3019. *
  3020. * MACROS MONITOR.
  3021.  
  3022.  
  3023. CFE SUBR ENTRY/EXIT
  3024. LDN ZERL
  3025. CRD CM
  3026. LDD FA
  3027. ZJN CFEX IF NO LOCAL FILE
  3028. STD CM+4
  3029. LDN DLFS DELETE LOCAL FNT ENTRY
  3030. STD CM+1
  3031. MONITOR PLFM
  3032. * LDN 0 CLEAR FNT INDEX
  3033. STD FA
  3034. UJN CFEX RETURN
  3035. CFI SPACE 4,10
  3036. ** CFI - CLEAR FLAG REGISTER INTERLOCK.
  3037. *
  3038. * ENTRY (A) = INTERLOCK TO CLEAR. (*DATI* OR *FATI*)
  3039. *
  3040. * EXIT (A) = (ABTB).
  3041. * INTERLOCK CLEARED.
  3042. *
  3043. * USES CM - CM+4.
  3044.  
  3045.  
  3046. CFI SUBR ENTRY/EXIT
  3047. SHN 6
  3048. STD CM+1
  3049. LDN CFRS CLEAR FLAG REGISTER BITS
  3050. SHN 11
  3051. STD CM+3
  3052. MONITOR ECSM
  3053. SOM ABTB CLEAR INTERLOCK HELD
  3054. UJN CFIX RETURN
  3055. CFM SPACE 4,10
  3056. ** CFM - COMPARE FAMILY NAMES.
  3057. *
  3058. * ENTRY (T3 - T7) = FAMILY NAME A.
  3059. * (CM - CM+4) = FAMILY NAME B.
  3060. *
  3061. * EXIT (A) = 0, IF SAME FAMILY NAME.
  3062.  
  3063.  
  3064. CFM SUBR ENTRY/EXIT
  3065. LDD CM
  3066. LMD T3
  3067. NJN CFMX IF NOT SAME FAMILY
  3068. LDD CM+1
  3069. LMD T3+1
  3070. NJN CFMX IF NOT SAME FAMILY
  3071. LDD CM+2
  3072. LMD T3+2
  3073. NJN CFMX IF NOT SAME FAMILY
  3074. LDD CM+3
  3075. LMD T3+3
  3076. SHN -6
  3077. UJN CFMX RETURN
  3078. ECS SPACE 4
  3079. ** EXTENDED MEMORY - READ/WRITE EXTENDED MEMORY.
  3080. *
  3081. * ENTRY (A) = NUMBER OF WORDS*100.
  3082. * (CM+3 - CM+4) SET UP FOR *ECSM*.
  3083. *
  3084. * EXIT TO *ABT* IF UNRECOVERED ERROR.
  3085. *
  3086. * USES CM - CM+4.
  3087. * MESSAGE BUFFER IS USED FOR CM BUFFER.
  3088.  
  3089.  
  3090. ECS SUBR ENTRY/EXIT
  3091. STD CM+1 SET WORDS TO READ/WRITE
  3092. LDD MA SET BUFFER ADDRESS
  3093. STD CM+2
  3094. MONITOR ECSM READ/WRITE EXTENDED MEMORY
  3095. LDD CM+1
  3096. ZJN ECSX IF NO ERROR
  3097. ABORT /MESS/ERLE * SFM UNRECOVERED LINK DEVICE ERROR.*
  3098. EFI SPACE 4,20
  3099. ** EFI - ENTER *FAT* ITEM.
  3100. *
  3101. * ENTRY (FN - FN+3) = FAST ATTACH FILE NAME.
  3102. * (FS - FS+4) = FILE FST ENTRY.
  3103. * (ES - ES+4) = FILE EST ENTRY.
  3104. * (FC) = *FAT* TABLE COUNT.
  3105. * (FI) = *FAT* TABLE INDEX OF HOLE
  3106. * (ID) = MACHINE ID
  3107. * (MI) = MACHINE INDEX
  3108. *
  3109. * EXIT (A) .EQ. 0 IF HOLD USED FOR ENTRY.
  3110. * (A) .NE. 0 IF NEW ENTRY CREATED AT END OF TABLE.
  3111. * TO *ABT* IF *FAT* SPACE NOT AVAILABLE.
  3112. *
  3113. * USES CM - CM+4, T1, T6, T7.
  3114. * MESSAGE BUFFER USED FOR CM/ECS BUFFER.
  3115. *
  3116. * CALLS CEA, ECS.
  3117.  
  3118.  
  3119. EFI SUBR ENTRY/EXIT
  3120. LDD FI
  3121. NJN EFI1 IF HOLE AVAILABLE
  3122. AOM EFIA SET NEW ENTRY CREATED
  3123. LDN 20 SET AVAILABLE ENTRY COUNT
  3124. EFIB SHN 0
  3125. SBK FAST
  3126. SHN 6-FATS
  3127. STD T1
  3128. LDD FC
  3129. STD FI
  3130. SBD T1
  3131. MJN EFI1 IF SPACE AVAILABLE
  3132. ABORT /MESS/ERNH * SFM GLOBAL FAST ATTACH LIMIT.*
  3133.  
  3134. * SET *FAT* WORDS IN EXTENDED MEMORY.
  3135.  
  3136. EFI1 LDN ZERL SET FIRST TRACK AND USER COUNTS
  3137. CRD CM
  3138. LDD FS+1
  3139. STD CM+1
  3140. LDN 0 SET WORD TO WRITE
  3141. STD T3
  3142. EFI2 AOD T3 WRITE WORDS 1 THROUGH 1+MXMF
  3143. RJM WFW
  3144. LDN ZERL SET LOCAL AREAS
  3145. CRD CM
  3146. LDD T3
  3147. SBN 1+MXMF
  3148. MJN EFI2 IF NOT END OF LOCAL WORDS TO WRITE
  3149. LDD ID SET MACHINE ID IN ENTRY BEING CREATED
  3150. STD CM
  3151. LDD MI
  3152. ADN 1
  3153. RJM WFW WRITE *FAT* WORD
  3154. LDD ES+4 SET FAMILY AND DEVICE NUMBER
  3155. SHN 3
  3156. ADN PFGL
  3157. CRD CM
  3158. LDN 0
  3159. STD CM+4
  3160. LDN 2+MXMF
  3161. RJM WFW WRITE *FAT* WORD
  3162.  
  3163. * WRITE WORD 0 OF *FAT* ENTRY TO LINK DEVICE.
  3164.  
  3165. LDD MA SET FILE NAME
  3166. CWD FN
  3167. CRD CM
  3168. LDN 0
  3169. RJM WFW WRITE FILE NAME
  3170. EFIA LDN 0 SET RETURN STATUS
  3171. * LDN 1 SET IF NEW ENTRY CREATED
  3172. LJM EFIX RETURN
  3173. IFA SPACE 4,15
  3174. ** IFA - INITIALIZE FAST ATTACH FILE.
  3175. *
  3176. * ENTRY (FN - FN+4) = FILE NAME.
  3177. * (FS - FS+4) = FST INFORMATION.
  3178. *
  3179. * EXIT (QA) = ORDINAL OF GLOBAL FNT ENTRY.
  3180. * (T5) = EST ORDINAL.
  3181. * (T6) = FIRST TRACK OF FAST ATTACH FILE.
  3182. * (TY) = 0 IF FILE NAME FOUND IN FNT.
  3183. *
  3184. * ERROR TO *ABT* IF FILE INTERLOCK NOT AVAILABLE.
  3185. *
  3186. * USES CM - CM+7.
  3187. *
  3188. * CALLS CTE, SSF.
  3189. *
  3190. * MACROS ABORT, MONITOR, SFA.
  3191.  
  3192.  
  3193. IFA SUBR ENTRY/EXIT
  3194. LDD FN+3
  3195. SCN 77 CLEAR MODE FIELD
  3196. STD FN+3
  3197. RJM SSF SEARCH FOR *SYFT* TYPE FILE
  3198. ZJN IFA1 IF FILE NOT FOUND
  3199. SFA FNT
  3200. STD CM+4 SET ADDRESS OF FNT ENTRY
  3201. SHN -14
  3202. STD CM+3
  3203. LDN 0 INTERLOCK FNT ENTRY
  3204. STD CM+1
  3205. MONITOR UTEM
  3206. LDD CM+1
  3207. ZJN IFA2 IF FILE INTERLOCKED
  3208. LDN 0
  3209. STD FA
  3210. ABORT /MESS/ERIO * SFM I/O SEQUENCE ERROR.*
  3211.  
  3212. IFA1 LDC SYFT*100+1 SET INTERLOCK IN REQUEST
  3213. STD FN+4
  3214. LDD MA MOVE FILE NAME
  3215. CWD FN
  3216. CRD CM+3
  3217. LDN PFNT CREATE FNT ENTRY
  3218. RJM CTE
  3219. ZJN IFA3 IF FNT FULL
  3220. LDD CM+1 SET FNT ORDINAL
  3221. STD QA
  3222. IFA2 STD TY SET FNT CREATION STATUS
  3223. LDC FAFT*100 SET FILE TYPE
  3224. STD FN+4
  3225. LDD FS SET EQUIPMENT
  3226. STD T5
  3227. LDD FS+1 SET FIRST TRACK
  3228. STD T6
  3229. LDN 0 CLEAR USER COUNTS
  3230. STD FS+2
  3231. STD FS+3
  3232. STD FS+4
  3233. LJM IFAX RETURN
  3234.  
  3235. IFA3 STD FA CLEAR LOCAL FNT OFFSET
  3236. ABORT /MESS/ERFU * SFM FNT FULL.*
  3237. IFC SPACE 4
  3238. ** IFC - INCREMENT FAST ATTACH COUNT.
  3239. *
  3240. * EXIT FAST ATTACH COUNT UPDATED IN MMF ENVIRONMENT TABLE.
  3241. *
  3242. * USES CM - CM+4.
  3243. *
  3244. * CALLS CEA, ECS, RET.
  3245.  
  3246.  
  3247. IFC SUBR ENTRY/EXIT
  3248. RJM RET READ *FAET* WORD
  3249. LDD MA WRITE WORD BACK TO LINK DEVICE
  3250. CWD CM
  3251. RJM CEA CONVERT EXTENDED MEMORY ADDRESS
  3252. LDN FAET
  3253. RAD CM+4
  3254. SHN -14
  3255. ADC WECS*1000 SET TO WRITE EXTENDED MEMORY
  3256. RAD CM+3
  3257. LDN 1-1 SET TO WRITE 1 WORD
  3258. RJM ECS
  3259. UJN IFCX RETURN
  3260. RET SPACE 4
  3261. ** RET - READ ENVIRONMENT TABLE.
  3262. *
  3263. * ENTRY (RETA) = LINK DEVICE LABEL TRACK.
  3264. *
  3265. * EXIT (FC) = *FAT* TABLE COUNT.
  3266. * (CM - CM+4) = *FAET* WORD FROM ENVIRONMENT
  3267. * TABLE WITH COUNT INCREMENTED BY 1.
  3268. * (T6) = LINK DEVICE LABEL TRACK.
  3269. * (T7) = ENVIRONMENT TABLE SECTOR.
  3270. *
  3271. * USES CM - CM+4.
  3272. *
  3273. * CALLS CEA, ECS.
  3274.  
  3275.  
  3276. RET SUBR ENTRY/EXIT
  3277. LDC 0 SET LABEL TRACK
  3278. RETA EQU *-1
  3279. STD T6
  3280. LDN ETLT SET ENVIRONMENT TABLE SECTOR
  3281. STD T7
  3282. RJM CEA CONVERT EXTENDED MEMORY ADDRESS
  3283. LDN FAET READ *FAT* COUNT
  3284. RAD CM+4
  3285. SHN -14
  3286. ADC RECS*1000 SET TO READ EXTENDED MEMORY
  3287. RAD CM+3
  3288. LDN 1-1 SET TO READ 1 WORD
  3289. RJM ECS READ EXTENDED MEMORY
  3290. LDD MA READ ENTRY
  3291. CRD CM
  3292. AOD CM+4 INCREMENT COUNT
  3293. STD FC
  3294. UJN RETX RETURN
  3295. RFS SPACE 4,15
  3296. ** RFS - READ FILE SYSTEM SECTOR.
  3297. *
  3298. * ENTRY (A) = 0 IF LOCAL FNT ENTRY NOT TO BE CLEARED.
  3299. * (QA) = FNT ORDINAL.
  3300. * (T5) = EST ORDINAL.
  3301. * (T6) = FIRST TRACK.
  3302. * (TY) = FNT CREATION STATUS.
  3303. *
  3304. * EXIT (A) = 0 IF SYSTEM SECTOR READ WITHOUT ERROR.
  3305. *
  3306. * USES T3, CM - CM+4.
  3307. *
  3308. * CALLS CFE, RSS, RTI, WTI.
  3309. *
  3310. * MACROS ABORT, ENDMS, MONITOR, SETMS, SFA.
  3311.  
  3312.  
  3313. RFS3 LDD T6 SET TRACK INTERLOCKED STATUS
  3314. STM RTIA
  3315. LDD T3
  3316. ZJN RFS4 IF LOCAL FNT ENTRY NOT TO BE CLEARED
  3317. RJM CFE CLEAR LOCAL FNT ENTRY
  3318. * LDN 0 READ SYSTEM SECTOR
  3319. RFS4 RJM RSS
  3320. ZJN RFSX IF NO ERRORS
  3321. ENDMS
  3322. RJM RTI RELEASE TRACK INTERLOCK
  3323. AOM SFMD
  3324.  
  3325. RFS SUBR ENTRY/EXIT
  3326. STD T3
  3327. SETMS IO,(DE,RW)
  3328. RJM WTI SET TRACK INTERLOCK
  3329. ZJN RFS3 IF INTERLOCK SET
  3330. LDD TY
  3331. ZJN RFS2 IF FNT ENTRY NOT CREATED
  3332. LDD QA
  3333. STD CM+1
  3334. LDN PFNT RELEASE FNT ENTRY
  3335. STD CM+2
  3336. MONITOR MTRM
  3337. RFS1 ABORT /MESS/ERDA * SFM DIRECT ACCESS FILE ERROR.*
  3338.  
  3339. RFS2 LDC SYFT*100 RESET FILE TYPE
  3340. STD FN+4
  3341. SFA FNT,QA RESTORE FNT ENTRY
  3342. CWD FN
  3343. UJN RFS1 ABORT
  3344. SFR SPACE 4,10
  3345. ** SFR - SET FLAG REGISTER INTERLOCK.
  3346. *
  3347. * ENTRY (A) = INTERLOCK TO OBTAIN, (*DATI* OR *FATI*).
  3348. *
  3349. * EXIT (A) = (ABTB).
  3350. *
  3351. * ERROR TO *ABT* IF ERROR FLAG SET.
  3352. *
  3353. * USES CM - CM+4.
  3354. *
  3355. * MACROS MONITOR, PAUSE.
  3356.  
  3357.  
  3358. SFR2 STD CM CLEAR WAITING MESSAGE
  3359. LDD CP
  3360. ADN MS2W
  3361. CWD CM
  3362. AOM ABTB SET INTERLOCK OBTAINED
  3363.  
  3364. SFR SUBR ENTRY/EXIT
  3365. SHN 6
  3366. STM SFRA SAVE SUBFUNCTION
  3367. SFR1 LDN SFRS SET FLAG REGISTER BITS
  3368. SHN 11
  3369. STD CM+3
  3370. LDC * REQUEST FLAG REGISTER INTERLOCK
  3371. SFRA EQU *-1
  3372. STD CM+1
  3373. MONITOR ECSM
  3374. LDD CM+1 CHECK INTERLOCK STATUS
  3375. ZJN SFR2 IF INTERLOCK ACHIEVED
  3376. LDD CP SET WAITING MESSAGE
  3377. ADN MS2W
  3378. CWM SFRB,TR
  3379. PAUSE
  3380. LDD CM+1 CHECK ERROR FLAG
  3381. ZJN SFR1 IF NOT ERROR FLAG SET
  3382. ABORT /MESS/ERAB * SFM ABORTED.*
  3383.  
  3384. SFRB DATA C*$WAITING - RECOVERY INTERLOCK.*
  3385. SFS SPACE 4
  3386. ** SFS - SEARCH *FAT* SECTOR.
  3387. *
  3388. * ENTRY (FN - FN+3) = FAST ATTACH FILE NAME.
  3389. * (FS - FS+4) = FILE FST ENTRY.
  3390. * (ES - ES+4) = FILE EST ENTRY.
  3391. * (FI) = CURRENT *FAT* INDEX.
  3392. * (BFMS - BFMS+502) = *FAT* SECTOR.
  3393. * (FC) = *FAT* TABLE COUNT.
  3394. *
  3395. * EXIT (A) .EQ. 0 IF MATCHING ENTRY FOUND.
  3396. * (A) .LT. 0 IF END OF TABLE.
  3397. * (BA) = BASE ADDRESS OF MATCHED ENTRY.
  3398. * (FI) = BASE ADDRESS OF LAST HOLE ENCOUNTERED.
  3399. * (HI) = *FAT* INDEX OF LAST HOLE.
  3400. *
  3401. * USES CM - CM+4.
  3402.  
  3403.  
  3404. SFS6 LDN 2 SET NO MATCH STATUS
  3405. SFS7 SBN 1
  3406.  
  3407. SFS SUBR ENTRY/EXIT
  3408. LDC BFMS+2 SET BASE ADDRESS
  3409. STD BA
  3410. UJN SFS2
  3411.  
  3412. SFS0 LDD FI SET HOLE INFORMATION
  3413. STD HI
  3414. LDD BA
  3415. STM SFTA
  3416. SFS1 LDK FATL*5 INCREMENT BASE ADDRESS
  3417. RAD BA
  3418. LMC BFMS+2+100*5 CHECK FOR END OF SECTOR
  3419. ZJN SFS6 IF END OF SECTOR
  3420. SFS2 AOD FI INCREMENT TABLE INDEX
  3421. LPN 77
  3422. LMD FC CHECK FOR END OF TABLE
  3423. ZJN SFS7 IF END OF TABLE
  3424. LDI BA COMPARE FILE NAME
  3425. ZJN SFS0 IF HOLE
  3426. LMD FN
  3427. NJN SFS1 IF NOT A MATCH
  3428. LDM 1,BA
  3429. LMD FN+1
  3430. NJN SFS1 IF NOT A MATCH
  3431. LDM 2,BA
  3432. LMD FN+2
  3433. NJN SFS1 IF NOT A MATCH
  3434. LDM 3,BA
  3435. LMD FN+3
  3436. SCN 77
  3437. NJN SFS1 IF NOT A MATCH
  3438.  
  3439. LDM 1*5+1,BA CHECK FIRST TRACK
  3440. LMD FS+1
  3441. NJN SFS1 IF NOT MATCHING FIRST TRACK
  3442.  
  3443. LDD ES+4
  3444. SHN 3
  3445. ADN PFGL
  3446. CRD CM
  3447. LDM MXMF*5+2*5+0,BA
  3448. LMD CM
  3449. NJN SFS3 IF NOT MATCHING FAMILY
  3450. LDM MXMF*5+2*5+1,BA
  3451. LMD CM+1
  3452. NJN SFS3 IF NOT MATCHING FAMILY
  3453. LDM MXMF*5+2*5+2,BA
  3454. LMD CM+2
  3455. NJN SFS3 IF NOT MATCHING FAMILY
  3456. LDM MXMF*5+2*5+3,BA
  3457. LMD CM+3
  3458. ZJN SFS4 IF MATCHING DEVICE NUMBER
  3459. SFS3 LJM SFS1
  3460.  
  3461. SFS4 LJM SFSX MATCHING ENTRY FOUND
  3462. SFT SPACE 4,20
  3463. ** SFT - SEARCH *FAT* TABLE.
  3464. *
  3465. * ENTRY (DA - DA+1) = LINK DEVICE PARAMETERS.
  3466. *
  3467. * EXIT (A) .EQ. 0, IF ENTRY NOT FOUND.
  3468. * (FI) = *FAT* INDEX OF FILE/HOLE.
  3469. * (BA) = BASE ADDRESS OF FILE/HOLE.
  3470. * (FC) = *FAT* COUNT.
  3471. *
  3472. * USES T4 - T7.
  3473. *
  3474. * CALLS RDS, RET, SFS.
  3475. *
  3476. * MACROS ENDMS, SETMS.
  3477.  
  3478.  
  3479. SFT SUBR ENTRY/EXIT
  3480. LDD DA SET LINK DEVICE PARAMETERS
  3481. STD T5
  3482. SETMS IO
  3483. RJM RET READ ENVIRONMENT TABLE
  3484. LDD DA+1
  3485. STD T6
  3486. LDN FAST SET STARTING *FAT* SECTOR
  3487. STD T7
  3488. LCN 0 INITIALIZE *FAT* INDICIES
  3489. STD FI
  3490. ADN 1
  3491. STD HI
  3492. SFT1 LDC BFMS SET BUFFER ADDRESS
  3493. RJM RDS READ *FAT* SECTOR
  3494. MJN SFT4 IF READ ERROR
  3495. RJM SFS SEARCH *FAT* SECTOR
  3496. ZJN SFT3 IF FILE FOUND
  3497. MJN SFT2 IF END OF TABLE FOUND
  3498. AOD T7 INCREMENT TO NEXT SECTOR
  3499. LMN 20 CHECK FOR END-OF-TABLE
  3500. NJN SFT1 IF NOT END-OF-TABLE
  3501.  
  3502. SFT2 SOM SFTB SET FILE NOT FOUND
  3503. LDD HI SET HOLE ADDRESS
  3504. STD FI
  3505. LDC 0 BASE ADDRESS OF FILE/HOLE
  3506. SFTA EQU *-1
  3507. STD BA
  3508. SFT3 ENDMS
  3509. SFTB LDN 1 SET RETURN STATUS
  3510. * LDN 0 SET IF FILE NOT FOUND
  3511. LJM SFTX RETURN
  3512.  
  3513. SFT4 ABORT /MESS/ERLE * SFM UNRECOVERED LINK DEVICE ERROR.*
  3514. SMP SPACE 4
  3515. ** SMP - SET MULTI-MAINFRAME PARAMETERS.
  3516. *
  3517. * ENTRY (ES - ES+4) = FILE EQUIPMENT EST ENTRY.
  3518. * (T5) = EST ORDINAL.
  3519. *
  3520. * EXIT (DA) = EST ORDINAL OF LINK DEVICE.
  3521. * (DA+1) = *FAT* TRACK.
  3522. * (MI) = MACHINE INDEX.
  3523. * (FI) = MACHINE INDEX.
  3524. * (ID) = MACHINE ID.
  3525. * (RETA) = LINK DEVICE LABEL TRACK.
  3526. *
  3527. * USES CM - CM+4.
  3528. *
  3529. * CALLS SMI.
  3530. *
  3531. * MACROS SFA.
  3532.  
  3533.  
  3534. SMP SUBR ENTRY/EXIT
  3535. RJM SMI GET MACHINE INDEX FOR DEVICE
  3536. STD MI
  3537. STD FI
  3538. LDC MMFL SET *MMFL* PARAMETERS
  3539. CRD CM
  3540. LDD CM SET MACHINE ID
  3541. STD ID
  3542. LDD ES
  3543. SHN 21-4
  3544. MJN SMPX IF INDEPENDENT SHARED DEVICE
  3545. LDD CM+1 SET LINK EQUIPMENT
  3546. LPC 777
  3547. STD DA
  3548. SFA EST SET *FAT* TRACK
  3549. ADK EQDE
  3550. CRD CM
  3551. ADK EQAE-EQDE
  3552. CRD CN
  3553. LDD CN+2 SET LINK DEVICE SHIFT COUNT
  3554. SHN -6
  3555. LPN 3
  3556. RAM EFIB
  3557. LDD CM+4
  3558. SHN 3
  3559. ADN ALGL
  3560. CRD CM
  3561. LDD CM+4
  3562. STD DA+1
  3563. LDD CM+1 SET LABEL TRACK
  3564. STM RETA
  3565. UJP SMPX RETURN
  3566. SSF SPACE 4
  3567. ** SSF - SEARCH FOR *SYFT* FILE.
  3568. *
  3569. * ENTRY (FN - FN+4) = FILE NAME.
  3570. *
  3571. * EXIT (A) = (QA) = FNT ORDINAL IF FILE FOUND.
  3572. * = 0 IF FILE NOT FOUND
  3573. *
  3574. * USES CN - CN+4.
  3575. *
  3576. * MACROS SFA.
  3577.  
  3578.  
  3579. SSF2 STD QA SET FILE NOT FOUND
  3580.  
  3581. SSF SUBR ENTRY/EXIT
  3582. LDN 0
  3583. STD QA
  3584. SSF1 AOD QA ADVANCE FNT ORDINAL
  3585. LMD TE
  3586. ZJN SSF2 IF END OF FNT
  3587. SFA FNT,QA READ FNT ENTRY
  3588. CRD CN
  3589. LDD CN+4 CHECK FILE TYPE
  3590. SHN -6
  3591. LMN SYFT
  3592. NJN SSF1 IF NOT *SYFT* FILE
  3593. LDD CN COMPARE FILE NAME
  3594. ZJN SSF1 IF EMPTY ENTRY
  3595. LMD FN
  3596. NJN SSF1 IF NOT MATCHING NAME
  3597. LDD CN+1
  3598. LMD FN+1
  3599. NJN SSF1 IF NOT MATCHING NAME
  3600. LDD CN+2
  3601. LMD FN+2
  3602. NJN SSF1 IF NOT MATCHING NAME
  3603. LDD CN+3
  3604. LMD FN+3
  3605. SCN 77
  3606. NJN SSF1 IF NOT MATCHING NAME
  3607. LDD QA
  3608. UJN SSFX EXIT
  3609. UFI SPACE 4
  3610. ** UFI - UPDATE *FAT* ITEM.
  3611. *
  3612. * ENTRY (ID) = MACHINE ID.
  3613. * (MI) = MACHINE INDEX.
  3614. * (FI) = INDEX OF ENTRY.
  3615. *
  3616. * EXIT *FAT* ITEM UPDATED AND WRITTEN BACK TO LINK DEVICE.
  3617. *
  3618. * USES CM - CM+4, T6, T7.
  3619. *
  3620. * CALLS CEA, CFI, ECS, SFR.
  3621.  
  3622.  
  3623. UFI SUBR ENTRY/EXIT
  3624. LDN FATI SET *FATI* INTERLOCK
  3625. RJM SFR
  3626. LDN ZERL SET ENTRY TO WRITE
  3627. CRD CM
  3628. UFIA LDD ID SET MACHINE ID
  3629. * LDN 0 IF CLEAR ENTRY
  3630. STD CM
  3631. LDD MI
  3632. ADN 1
  3633. RJM WFW WRITE LOCAL MACHINE WORD
  3634. LDM UFIA
  3635. LMC LDNI+0
  3636. NJN UFI1 IF NOT CLEARING ENTRY
  3637. LDN ZERL CLEAR ATTACH MODES IN GLOBAL ENTRY
  3638. CRD CM
  3639. LDD FS+1 PRESERVE FIRST TRACK
  3640. STD CM+1
  3641. LDN 1
  3642. RJM WFW WRITE *FAT* WORD
  3643. UFI1 LDN FATI CLEAR *FATI* INTERLOCK
  3644. RJM CFI
  3645. LJM UFIX RETURN
  3646. VLF SPACE 4,15
  3647. ** VLF - VERIFY LOCAL FILE.
  3648. *
  3649. * EXIT (A) = 0, IF FAST ATTACH ENTRY FOUND.
  3650. * (T1) = FNT INDEX FOR FAST ATTACH FILE.
  3651. * (T5) = EQUIPMENT.
  3652. * (FN - FN+4) = FNT ENTRY.
  3653. *
  3654. * ERROR TO *ABT* IF LOCAL FILE NOT FOUND.
  3655. * TO *ABT* IF LOCAL FILE NOT TYPE *PMFT*.
  3656. *
  3657. * USES CM - CM+4, CN - CN+4.
  3658. *
  3659. * CALLS CFS, FAT, SAF.
  3660. *
  3661. * MACROS NFA.
  3662.  
  3663.  
  3664. VLF SUBR ENTRY/EXIT
  3665. RJM SAF SEARCH FOR ASSIGNED FILE
  3666. ZJN VLF1 IF FILE NOT FOUND
  3667. RJM CFS CHECK FILE STATUS
  3668. NFA FA,R READ FNT ENTRY
  3669. CRD FN
  3670. LDD CM+4 CHECK FILE TYPE
  3671. SHN -6
  3672. LMN PMFT
  3673. ZJN VLF2 IF DIRECT ACCESS FILE
  3674. LDN /MESS/ERFT-/MESS/ERFF * SFM INCORRECT FILE TYPE.*
  3675. VLF1 ADC /MESS/ERFF * SFM FILE NOT FOUND.*
  3676. LJM ABT PROCESS ERROR
  3677.  
  3678. * SEARCH FOR EXISTING FAST ATTACH FILE.
  3679.  
  3680. VLF2 LDD ES+4 GET DEVICE NAME FROM MST
  3681. SHN 3
  3682. ADN PFGL
  3683. CRD CN
  3684. RJM FAT SEARCH FOR FAST ATTACH FILE
  3685. STD T0 SAVE RESPONSE
  3686. LDD FS RESTORE EQUIPMENT
  3687. STD T5
  3688. LDD T0 (A) = RESPONSE FROM *COMPFAT*.
  3689. UJN VLFX RETURN
  3690. WFS SPACE 4,15
  3691. ** WFS - WRITE FILE SYSTEM SECTOR.
  3692. *
  3693. * ENTRY (T5) = EST ORDINAL.
  3694. * (T6) = FIRST TRACK.
  3695. * TRACK INTERLOCK SET.
  3696. *
  3697. * EXIT TRACK INTERLOCK CLEARED.
  3698. *
  3699. * CALLS RTI, WSS.
  3700. *
  3701. * MACROS ENDMS.
  3702.  
  3703.  
  3704. WFS SUBR ENTRY/EXIT
  3705. RJM WSS WRITE SYSTEM SECTOR
  3706. ENDMS
  3707. RJM RTI RELEASE TRACK INTERLOCK
  3708. UJN WFSX RETURN
  3709. WFW SPACE 4,10
  3710. ** WFW - WRITE *FAT* WORD.
  3711. *
  3712. * ENTRY (A) = OFFSET IN *FAT* OF WORD TO WRITE.
  3713. * (FI) = *FAT* INDEX OF ENTRY.
  3714. * (CM - CM+4) = WORD TO WRITE.
  3715. *
  3716. * USES T1, T6, T7, CM - CM+4.
  3717. *
  3718. * CALLS CEA, ECS.
  3719.  
  3720.  
  3721. WFW SUBR ENTRY/EXIT
  3722. STM WFWA SAVE OFFSET OF WORD TO WRITE
  3723. LDD MA STORE WORD TO WRITE
  3724. CWD CM
  3725. LDD DA+1 SET *FAT* TRACK
  3726. STD T6
  3727. LDN FAST SET FIRST *FAT* SECTOR
  3728. STD T7
  3729. RJM CEA CONVERT EXTENDED MEMORY ADDRESS
  3730. LDD FI
  3731. SHN FATS
  3732. ADC * ADD OFFSET OF WORD TO WRITE
  3733. WFWA EQU *-1
  3734. RAD CM+4
  3735. SHN -14
  3736. ADC WECS*1000 SET TO WRITE EXTENDED MEMORY
  3737. RAD CM+3
  3738. LDK 1*100-100 SET TO WRITE 1 WORD
  3739. RJM ECS WRITE EXTENDED MEMORY
  3740. UJN WFWX RETURN
  3741. SPACE 4,10
  3742. ** COMMON DECKS.
  3743.  
  3744.  
  3745. *CALL COMPCEA
  3746. *CALL COMPCTE
  3747. *CALL COMPFAT
  3748. *CALL COMPSMI
  3749. SPACE 4
  3750. ERRNG BFMS-* CODE OVERLAPS SECTOR BUFFER
  3751. OVERFLOW OVLA,EPFW
  3752. OVERLAY (RETURN SYSTEM DATA PROCESSORS.)
  3753. SPACE 4,10
  3754. *CALL COMSEVT
  3755. *CALL COMSMTR
  3756. *CALL COMSPDT
  3757. *CALL COMSMLS
  3758. SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS
  3759. *CALL COMSSSD
  3760. SPACE 4,10
  3761. ** ASSEMBLY CONSTANTS.
  3762.  
  3763.  
  3764. TJCBL EQU JCBE*MXJC-JCBE LENGTH OF *JCB* TABLE
  3765. TITLE SECURITY FUNCTIONS.
  3766. GEAF SPACE 4,10
  3767. *** FUNCTION *GEAF* - GET EQUIPMENT ACCESS LEVEL LIMITS.
  3768. *
  3769. * ENTRY.
  3770. *
  3771. *T,ADDR 48/ ,12/ EO
  3772. *
  3773. * EO EST ORDINAL.
  3774. *
  3775. * EXIT.
  3776. *
  3777. *T,ADDR 36/ ,12/ ALL ,12/ EO
  3778. *
  3779. * ALL ACCESS LEVEL LIMITS.
  3780. * EO EST ORDINAL.
  3781.  
  3782.  
  3783. GEA3 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
  3784.  
  3785. GEA4 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  3786.  
  3787.  
  3788. GEA ENTRY ENTRY
  3789. RJM CSS
  3790. MJN GEA3 IF NO SUBSYSTEM OR SSJ= ENTRY POINT
  3791. RJM GFE GET REPLY WORD
  3792. CRD CN
  3793. LDN ESTP CHECK IF ORDINAL WITHIN EST
  3794. CRD CM
  3795. LDD CN+4
  3796. SBD CM+2
  3797. PJN GEA4 IF NOT WITHIN EST
  3798. SFA EST,CN+4 READ EST ENTRY
  3799. ADK EQDE
  3800. CRD CM
  3801. ADK EQAE-EQDE READ ACCESS LEVELS
  3802. CRD T1
  3803. LDD CM
  3804. SHN 21-13
  3805. PJN GEA1 IF NOT MASS STORAGE
  3806. LDD CM+4
  3807. SHN 3
  3808. ADK PFGL
  3809. CRD CM
  3810. LDD CM+4
  3811. SHN -6
  3812. UJN GEA2 SET ACCESS LEVEL
  3813.  
  3814. GEA1 LDD T1+3 SET ACCESS LEVEL IN REPLY WORD
  3815. LPN 77
  3816. GEA2 STD CN+3
  3817. RJM GFE WRITE REPLY WORD
  3818. CWD CN
  3819. LJM DPP DROP PP
  3820. GSMF SPACE 4,15
  3821. *** FUNCTION *GSMF* - GET SYSTEM SECURITY MODE.
  3822. *
  3823. * RETURNS A NONZERO VALUE IF THE SYSTEM IS RUNNING IN
  3824. * A SECURED MODE.
  3825. *
  3826. * EXIT.
  3827. *
  3828. *T ADDR 48/0, 12/ SM
  3829. *
  3830. * SM = 0 IF SYSTEM IN UNSECURED MODE.
  3831. * SM = 1 IF SYSTEM IN SECURED MODE.
  3832.  
  3833.  
  3834. GSM ENTRY ENTRY
  3835. LDN SSML GET SYSTEM SECURITY MODE
  3836. CRD CM
  3837. LDN ZERL
  3838. CRD CN
  3839. LDD CM
  3840. LPN 7
  3841. ZJN GSM1 IF SYSTEM UNSECURED
  3842. AOD CN+4
  3843. GSM1 RJM GFE WRITE REPLY WORD
  3844. CWD CN
  3845. LJM DPP DROP PP
  3846. GSSF SPACE 4,15
  3847. *** FUNCTION *GSSF* - GET ORIGIN TYPE ACCESS LEVELS.
  3848. *
  3849. * RETURNS SECURITY MODE, OUTPUT QUEUE SPECIAL HANDLING
  3850. * LEVEL, AND ORIGIN TYPE SECURITY ACCESS LIMITS.
  3851. *
  3852. * EXIT.
  3853. *
  3854. *T,ADDR 3/ ,3/ OQSH ,3/ ,3/ SM ,12/ SY ,12/ BC ,12/ RB ,12/ IA
  3855. *
  3856. * OQSH = OUTPUT QUEUE SPECIAL HANDLING LEVEL.
  3857. * SM = SECURITY MODE.
  3858. * SY = 3/ , 3/SYOT LOWER LIMIT, 3/ , 3/SYOT UPPER LIMIT.
  3859. * BC = 3/ , 3/BCOT LOWER LIMIT, 3/ , 3/BCOT UPPER LIMIT.
  3860. * RB = 3/ , 3/RBOT LOWER LIMIT, 3/ , 3/RBOT UPPER LIMIT.
  3861. * IA = 3/ , 3/IAOT LOWER LIMIT, 3/ , 3/IAOT UPPER LIMIT.
  3862.  
  3863.  
  3864. GSS ENTRY ENTRY
  3865. RJM CSS
  3866. MJN GSS2 IF NO SUBSYSTEM OR SSJ= ENTRY POINT
  3867. LDN SSML GET SECURITY MODE AND OQSH
  3868. CRD CN
  3869. LDN IAOT PRESET LOOP CONTROL
  3870. STD T1
  3871. GSS1 LDN 0 GET NEXT SERVICE CONTROL WORD
  3872. SFA JCB
  3873. ADD T1
  3874. CRD CM
  3875. LDD CM+1 SET ACCESS LIMITS IN REPLY WORD
  3876. LPN 7
  3877. STD CM+2
  3878. LDD CM+1
  3879. LPN 70
  3880. SHN 3
  3881. ADD CM+2
  3882. STM CN+1,T1
  3883. SOD T1
  3884. PJN GSS1 IF MORE LIMITS TO OBTAIN
  3885. RJM GFE RETURN REPLY WORD
  3886. CWD CN
  3887. LJM DPP DROP PP
  3888.  
  3889. GSS2 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
  3890. CSS SPACE 4,10
  3891. ** CSS - CHECK FOR SSJ= ENTRY POINT OR SUBSYSTEM ID.
  3892. *
  3893. * EXIT (A) .GE. 0 IF EITHER FOUND.
  3894. *
  3895. * USES CM - CM+4, CN - CN+4.
  3896.  
  3897.  
  3898. CSS SUBR ENTRY/EXIT
  3899. LDD CP CHECK FOR SSJ= ENTRY POINT
  3900. ADK JCIW
  3901. CRD CM
  3902. ADK SEPW-JCIW
  3903. CRD CN
  3904. LDD CN
  3905. LPN 4
  3906. NJN CSSX IF SSJ= ENTRY POINT FOUND
  3907. LDD CM+2 CHECK FOR SUBSYSTEM ID
  3908. ADC -LSSI
  3909. UJN CSSX RETURN
  3910. TITLE MAIN ROUTINE.
  3911. RSD SPACE 4,10
  3912. *** FUNCTION *RSDF* - RETURN SYSTEM DATA.
  3913.  
  3914.  
  3915.  
  3916. RSD ENTRY ENTRY
  3917. RSD0 LDD IR+3 CHECK CONTROL WORD ADDRESS
  3918. SHN 14
  3919. ADD IR+4
  3920. SHN -6
  3921. SBD FL
  3922. PJN RSD2 IF NEXT CONTROL WORD NOT IN BOUNDS
  3923. RJM GFE READ CONTROL WORD
  3924. CRD ES
  3925. LDD ES CHECK SUBFUNCTION
  3926. NJN RSD1 IF NOT END OF REQUESTS
  3927. LJM DPP DROP PPU
  3928.  
  3929. RSD1 SBN MXSF
  3930. MJN RSD3 IF VALID SUBFUNCTION
  3931. RSD2 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
  3932.  
  3933. RSD3 LDD ES+3 CHECK RETURN ADDRESS
  3934. LPN 77
  3935. STD ES+3
  3936. SHN 14
  3937. LMD ES+4
  3938. MJN RSD4 IF INCORRECT ADDRESS
  3939. ADD ES+2
  3940. SHN -6
  3941. SBD FL
  3942. MJN RSD5 IF WITHIN FL
  3943. RSD4 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  3944.  
  3945. RSD5 LDM TRSD,ES SET PROCESSING ADDRESS
  3946. STM RSDA
  3947. RJM *
  3948. RSDA EQU *-1
  3949.  
  3950. * EXIT TO SUBFUNCTION PROCESSORS WITH -
  3951. * (ES - ES+4) = CONTROL WORD.
  3952. *
  3953. * RETURN FROM SUBFUNCTION PROCESSORS WITH -
  3954. * (ES - ES+4) = CONTROL WORD.
  3955. * (FC) = WORD COUNT.
  3956.  
  3957. RSD6 LDC 4000 SET DATA NOT AVAILABLE
  3958. RAD ES
  3959. LDN 0 RETURN ZERO WORDS RETURNED
  3960. STD FC
  3961. RSD7 LDD FC SET NUMBER OF WORDS RETURNED
  3962. STD ES+2
  3963. RJM GFE RETURN CONTROL WORD
  3964. CWD ES
  3965. AOD IR+4 INCREMENT ADDRESS TO NEXT CONTROL WORD
  3966. SHN -14
  3967. RAD IR+3
  3968. LJM RSD0 PROCESS NEXT CONTROL WORD
  3969. TRSD SPACE 4,10
  3970. * TRSD - TABLE OF SUBFUNCTION PROCESSORS.
  3971.  
  3972.  
  3973. TRSD INDEX
  3974. INDEX RDDF,RDD
  3975. INDEX SDIF,SDI
  3976. INDEX PDAF,PDA
  3977. INDEX PDLF,PDL
  3978. INDEX RFDF,RFD
  3979. INDEX RSSF,RSS
  3980. INDEX RSCF,RSC
  3981. INDEX RCIF,RCI
  3982. INDEX IOSF,IOS
  3983. INDEX MXSF
  3984. TITLE SUBFUNCTION PROCESSORS.
  3985. IOS SPACE 4,20
  3986. ** IOS - RETURN BUFFER I/O STATISTICS.
  3987. *
  3988. *T,FA 12/*IOSF*, 12/ , 12/ WC, 6/ , 18/ ADDR
  3989. *
  3990. * WC LENGTH OF BUFFER TO RECEIVE DATA
  3991. * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
  3992. *
  3993. * ADDR FWA OF CM BUFFER
  3994. *
  3995. *T,ADDR 12/ DT, 18/ ESTO, 30/
  3996. *T 30/ RCNT0, 30/ WCNT0
  3997. *T, 30/ RCNT1, 30/ WCNT1
  3998. *T, 30/ RCNT2, 30/ WCNT2
  3999. *T, 30/ RCNT3, 30/ WCNT3
  4000. *T, 30/ RCNT4, 30/ WCNT4
  4001. *T, 30/ RCNT5, 30/ WCNT5
  4002. *T, 30/ RCNT6, 30/ WCNT6
  4003. *T, 30/ RCNT7, 30/ WCNT7
  4004. *
  4005. * DT = DEVICE TYPE
  4006. * ESTO = EST ORDINAL IN DISPLAY CODE
  4007. *
  4008. *
  4009. * -----------------------------------------------------------
  4010. * I FIELD I LENGTH OF READ TRANSFER IN- I
  4011. * I I *CBT*S SECTORS I
  4012. * -----------------------------------------------------------
  4013. * I I I I
  4014. * I RCNT0 I 1 I 1 - 40B I
  4015. * I RCNT1 I 2 - 3 I 41B - 140B I
  4016. * I RCNT2 I 4 - 7 I 141B - 340B I
  4017. * I RCNT3 I 10B - 17B I 341B - 740B I
  4018. * I RCNT4 I 20B - 37B I 741B - 1740B I
  4019. * I RCNT5 I 40B - 77B I 1741B - 3740B I
  4020. * I RCNT6 I 100B - 177B I 3741B - 7740B I
  4021. * I RCNT7 I MORE THAN 177B I MORE THAN 7740B I
  4022. * I I I I
  4023. * -----------------------------------------------------------
  4024. *
  4025. *
  4026. * -----------------------------------------------------------
  4027. * I FIELD I LENGTH OF WRITE TRANSFER IN- I
  4028. * I I *CBT*S SECTORS I
  4029. * -----------------------------------------------------------
  4030. * I I I I
  4031. * I WCNT0 I 1 I 1 - 40B I
  4032. * I WCNT1 I 2 - 3 I 41B - 140B I
  4033. * I WCNT2 I 4 - 7 I 141B - 340B I
  4034. * I WCNT3 I 10B - 17B I 341B - 740B I
  4035. * I WCNT4 I 20B - 37B I 741B - 1740B I
  4036. * I WCNT5 I 40B - 77B I 1741B - 3740B I
  4037. * I WCNT6 I 100B - 177B I 3741B - 7740B I
  4038. * I WCNT7 I MORE THAN 177B I MORE THAN 7740B I
  4039. * I I I I
  4040. * -----------------------------------------------------------
  4041.  
  4042.  
  4043. IOS SUBR ENTRY/EXIT
  4044. RJM LPT LOCK *PROBE* TABLE
  4045. ZJN IOS2 IF *PROBE* TABLE LOCKED
  4046. IOS1 LJM RSD6 IF DATA NOT AVAILABLE
  4047.  
  4048. IOS2 STD FC INITIALIZE WORD COUNT
  4049. LDN 1 INITIALIZE PUT/IOST INDEX
  4050. STD T3
  4051. LDK BIOL READ BUFFER TABLE POINTER
  4052. CRD CM
  4053. LDD CM+1 READ *PUT* TABLE POINTER
  4054. SHN 14
  4055. ADD CM+2
  4056. NJN IOS2.1 IF BUFFERED I/O TABLES PRESENT
  4057. LDC 4000 CLEAR PROBE INTERLOCK
  4058. STD FN
  4059. LDC PRBP
  4060. CWD FN
  4061. UJN IOS1 RETURN WITH NO DATA
  4062.  
  4063. IOS2.1 ADK PUTP
  4064. CRD FS
  4065. ADK IOSP-PUTP READ FWA OF I/O STATISTICS TABLE
  4066. CRD FN
  4067. LDD FS+3 CLEAR FLAGS
  4068. LPN 77
  4069. STD FS+3
  4070. LDD FN+1 SET LENGTH OF *IOST* ENTRY
  4071. SHN -6
  4072. STD T2
  4073. ADN 1 SET LENGTH OF *PROBE* ENTRY
  4074. STD T1
  4075. IOS3 LDD T3 READ EST ORDINAL FROM PUT
  4076. SHN PUTLS
  4077. ADK UNCT
  4078. ADD FS+4
  4079. SHN 6
  4080. ADD FS+3
  4081. SHN 14
  4082. CRD CM
  4083. LDD CM+1 CONVERT EST ORDINAL TO DISPLAY CODE
  4084. LPC 707
  4085. ADC 2R00
  4086. SHN 6
  4087. STM IOSA+2
  4088. SHN -6
  4089. SCN 77
  4090. STM IOSA+1
  4091. LDD CM+1
  4092. SHN -3
  4093. LPN 7
  4094. ADN 1R0
  4095. RAM IOSA+1
  4096. SFA EST,CM+1 READ DEVICE EST
  4097. CRD CM
  4098. LDD CM+3 SET DEVICE TYPE
  4099. STM IOSA
  4100. LDD T3 READ I/O STATISTICS TABLE
  4101. SHN PUTLS
  4102. ADD FN+4
  4103. SHN 6
  4104. ADD FN+3
  4105. SHN 14
  4106. CRM IOSB,T2
  4107. LDD ES+2 CHECK IF ROOM IN BUFFER
  4108. SBD FC
  4109. SBD T1
  4110. PJN IOS4 IF ROOM FOR DATA
  4111. LDC PRBP CLEAR PROBE INTERLOCK
  4112. CRD FN
  4113. LDC 4000
  4114. STD FN
  4115. LDC PRBP
  4116. CWD FN
  4117. ABORT /MESS/ERAE *SFM ARGUMENT ERROR.*
  4118.  
  4119. IOS4 LDD ES+3 RETURN DATA TO CALLER
  4120. SHN 6
  4121. ADD RA
  4122. SHN 6
  4123. ADD ES+4
  4124. ADD FC
  4125. CWM IOSA,T1
  4126. LDD T1 UPDATE WORD COUNT
  4127. RAD FC
  4128. AOD T3 INCREMENT INDEX
  4129. LDD FS
  4130. SBD T3
  4131. MJN IOS5 IF NO MORE *PUT*S
  4132. LJM IOS3 PROCESS NEXT *PUT*
  4133.  
  4134. IOS5 LDC PRBP CLEAR PROBE INTERLOCK
  4135. CRD FN
  4136. LDC 4000
  4137. STD FN
  4138. LDC PRBP
  4139. CWD FN
  4140. LJM RSD7 RETURN
  4141. RDD SPACE 4,10
  4142. ** RDD - RETURN DAYFILE DATA FROM SECTOR OF LOCAL AREAS.
  4143. *
  4144. *T,FA 12/*RDDF* ,12/ EQ ,12/ WC ,6/ ,18/ADDR
  4145. *
  4146. * EQ EST ORDINAL TO CHECK FOR DAYFILES
  4147. * WC LENGTH OF CM BUFFER TO RECEIVE DATA
  4148. * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
  4149. * ADDR FWA OF CM BUFFER
  4150. *
  4151. *
  4152. *T,ADDR 12/ SDF ,12/ ADF ,12/ELD ,12/ BML ,12/
  4153. *
  4154. * SDF FIRST TRACK OF SYSTEM DAYFILE
  4155. * ADF FIRST TRACK OF ACCOUNT DAYFILE
  4156. * ELD FIRST TRACK OF ERRLOG
  4157. * BML FIRST TRACK OF BINARY MAINTENCE LOG
  4158. *
  4159. * IF A DAYFILE DOES NOT EXIST ON A DEVICE, THE FIRST TRACK
  4160. * WILL BE SET TO ZERO.
  4161.  
  4162.  
  4163. RDD SUBR ENTRY
  4164. LDN ESTP GET EST POINTERS
  4165. CRD CN
  4166. LDD ES+1 SET EQUIPMENT
  4167. STD T5
  4168. SBD CN+2
  4169. PJN RDD1 IF EQUIPMENT OUT OF EST
  4170. SFA EST,T5 READ EST ENTRY
  4171. ADK EQDE
  4172. CRD CM
  4173. LDD CM CHECK EQUIPMENT TYPE
  4174. SHN 21-13
  4175. MJN RDD2 IF MASS STORAGE
  4176. RDD1 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  4177.  
  4178. RDD2 LDN ZERL
  4179. CRD CN
  4180. RJM RLA READ SECTOR OF LOCAL AREAS (SLA)
  4181. MJN RDD3 IF READ ERROR
  4182. ZJN RDD3 IF NO SLA ENTRY FOR THIS MACHINE
  4183. STM RDDA
  4184. RDD3 LDD ES+3 STORE DAYFILE DATA
  4185. SHN 6
  4186. ADD RA
  4187. SHN 6
  4188. ADD ES+4
  4189. CWM CN,ON
  4190. RDDA EQU *-1
  4191. LDN 1
  4192. STD FC
  4193. LJM RSD7 RETURN
  4194. SDIF SPACE 4,20
  4195. *** SDI - RETURN AND/OR CLEAR STATISTICAL DATA AREA.
  4196. *
  4197. * THE STATISTICAL DATA AREA IS RETURNED TO THE
  4198. * SPECIFIED BUFFER.
  4199. *
  4200. *T,FA 12/ *SDIF* ,12/ FLAGS ,12/ WC ,6/ ,18/ ADDR
  4201. *
  4202. * FLAGS 1, RETURN DATA TO CM BUFFER
  4203. * 2, CLEAR STATISTICAL DATA AREA IN CMR
  4204. * 3, RETURN DATA TO CM BUFFER AND THEN CLEAR
  4205. * THE STATISTICAL DATA AREA IN CMR
  4206. * WC LENGTH OF CM BUFFER
  4207. * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
  4208. * ADDR FWA OF CM BUFFER
  4209.  
  4210.  
  4211. SDI SUBR ENTRY
  4212. LDN 0 PRESET NUMBER OF WORDS TO WRITE
  4213. STD FC
  4214. LDD ES+1
  4215. SHN 21-0
  4216. PJN SDI2 IF DATA NOT TO BE RETURNED
  4217. LDN SDAL SET NUMBER OF WORDS TO RETURN
  4218. STD FC
  4219. LDD ES+2 CHECK BUFFER SIZE
  4220. SBD FC
  4221. PJN SDI1 IF BUFFER LARGE ENOUGH
  4222. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  4223.  
  4224. SDI1 LDC SDAP READ STATISTICAL AREA POINTER
  4225. CRD CM
  4226. LDD CM
  4227. STM SDIA+3
  4228. SHN 14
  4229. ADD CM+1
  4230. STM SDIA+4
  4231. CRM BFMS,FC
  4232. LDD ES+3 WRITE STATISTICAL DATA TO BUFFER
  4233. SHN 6
  4234. ADD RA
  4235. SHN 6
  4236. ADD ES+4
  4237. CWM BFMS,FC
  4238. SDI2 LDD ES+1
  4239. SHN 21-1
  4240. PJN SDI3 IF STATISTICAL DATA AREA NOT TO BE CLEARED
  4241. LDN ZERL CLEAR STATISTICAL DATA AREA
  4242. CRD CM
  4243. LDD MA
  4244. CWM SDIA,ON
  4245. CWD CM
  4246. MONITOR CSTM
  4247. SDI3 LJM RSD7 RETURN
  4248.  
  4249.  
  4250. SDIA VFD 36/SDAL,24/0
  4251. PDLF SPACE 4,10
  4252. *** PDLF - RETURN *PROBE* DATA TABLE LENGTH.
  4253. *
  4254. * THE MINIMUM BUFFER SIZE REQUIRED FOR THE *PROBE* DATA TABLES
  4255. * IS RETURNED TO THE CALLER.
  4256. *
  4257. *T,FA 12/ *PDLF* ,12/ ,12/ WC ,6/ 18/ ADDR
  4258. *
  4259. * WC LENGTH OF CM BUFFER
  4260. * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
  4261. * ADDR FWA OF CM BUFFER
  4262. *
  4263. *
  4264. *T,ADDR 60/ REQUIRED BUFFER SIZE FOR *PROBE* DATA
  4265.  
  4266.  
  4267. PDL SUBR ENTRY
  4268. LDN 1 SET WORD COUNT
  4269. STD FC
  4270. LDD ES+2 CHECK BUFFER SIZE
  4271. SBD FC
  4272. PJN PDL1 IF BUFFER LARGE ENOUGH
  4273. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  4274.  
  4275. PDL1 RJM LPT LOCK *PROBE* TABLE
  4276. ZJN PDL2 IF *PROBE* TABLE LOCKED
  4277. LJM RSD6 RETURN DATA NOT AVAILABLE STATUS
  4278.  
  4279. PDL2 LDN ZERL
  4280. CRD CM
  4281. RJM DPT DETERMINE *PROBE* TABLE LENGTH
  4282. STD CM+4
  4283. SHN -14
  4284. STD CM+3
  4285. LDD ES+3 RETURN TABLE LENGTH TO CM BUFFER
  4286. SHN 6
  4287. ADD RA
  4288. SHN 6
  4289. ADD ES+4
  4290. CWD CM
  4291. LDC PRBP UNLOCK *PROBE* TABLE
  4292. CWD FN
  4293. LJM RSD7 RETURN
  4294. PDAF SPACE 4,20
  4295. ** PDAF - RETURN/CLEAR *PROBE* DATA TABLES.
  4296. *
  4297. *T,FA 12/ *PDAF* ,12/ FLAGS ,12/ WC ,6/ ,18/ ADDR
  4298. *
  4299. * FLAGS 1, RETURN DATA TO CM BUFFER
  4300. * 2, CLEAR *PROBE* DATA AREA IN CMR
  4301. * 3, RETURN DATA TO CM BUFFER AND THEN CLEAR
  4302. * THE *PROBE* DATA AREA IN CMR
  4303. * WC LENGTH OF CM BUFFER
  4304. * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
  4305. * ADDR FWA OF CM BUFFER
  4306.  
  4307.  
  4308. PDA SUBR ENTRY
  4309. LDN 0
  4310. STD FC
  4311. RJM LPT LOCK *PROBE* TABLE
  4312. ZJN PDA2 IF *PROBE* TABLE LOCKED
  4313. LJM RSD6 RETURN DATA NOT AVAILABLE STATUS
  4314.  
  4315. PDA1 LJM PDA6 CLEAR *PROBE* DATA TABLES
  4316.  
  4317. PDA2 LDD ES+1
  4318. SHN 21-0
  4319. PJN PDA1 IF *PROBE* DATA NOT TO BE RETURNED
  4320. RJM DPT DETERMINE *PROBE* TABLE LENGTH
  4321. STD FC SET WORD COUNT
  4322. SBD ES+2
  4323. ZJN PDA3 IF BUFFER LARGE ENOUGH
  4324. MJN PDA3 IF BUFFER LARGE ENOUGH
  4325. LDC PRBP UNLOCK *PROBE* TABLE
  4326. CWD FN
  4327. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  4328.  
  4329. PDA3 LDC TPRDL
  4330. STD T1
  4331. LDN 0 INITIALIZE TABLE INDEX
  4332. STD T2
  4333. LDK PDTL READ PACKED DATE AND TIME
  4334. CRD CN
  4335. UJN PDA5 WRITE PACKED DATE AND TIME TO BUFFER
  4336.  
  4337. PDA4 LDD FN+3 READ NEXT WORD TO TRANSFER
  4338. SHN 14
  4339. LMD FN+4
  4340. ADD T2
  4341. CRD CN
  4342. AOD T2 INCREMENT TABLE INDEX
  4343. PDA5 LDD ES+3 WRITE WORD TO BUFFER
  4344. SHN 6
  4345. ADD RA
  4346. SHN 6
  4347. ADD ES+4
  4348. ADD T2
  4349. CWD CN
  4350. SOD T1
  4351. PJN PDA4 IF DATA LEFT TO TRANSFER
  4352. RJM RPC RETURN *PLD* COUNTS
  4353. PDA6 LDD ES+1
  4354. SHN 21-1
  4355. PJN PDA7 IF TABLE NOT TO BE CLEARED
  4356. LDC PRBP READ *PROBE* TABLE POINTER
  4357. CRD CM
  4358. LDD CM+1 CLEAR FUNCTION CODE
  4359. LPN 77
  4360. STD CM+1
  4361. MONITOR CSTM
  4362. LDK PDTL READ PACKED DATE AND TIME
  4363. CRD CN
  4364. LDD FN+3
  4365. SHN 14
  4366. LMD FN+4
  4367. CWD CN
  4368. RJM CBS CLEAR BUFFERED I/O STATISTICS
  4369. PDA7 LDC PRBP UNLOCK *PROBE* TABLE
  4370. CWD FN
  4371. LJM RSD7 RETURN
  4372. CBS SPACE 4,10
  4373. ** CBS - CLEAR BUFFERED I/O STATISTICS.
  4374. *
  4375. * USES T1, CM - CM+4, CN - CN+4, FS - FS+4.
  4376.  
  4377.  
  4378. CBS SUBR
  4379. LDK BIOL FETCH BUFFERED I/O CONTROL TABLE ADDRESS
  4380. CRD FS
  4381. LDD FS+1
  4382. SHN 14
  4383. LMD FS+2
  4384. ZJN CBSX IF NO BUFFERED I/O DEVICES DEFINED
  4385. CRD CN READ POINTER WORD
  4386. ERRNZ IBSP *IBSP* MUST BE ZERO
  4387.  
  4388. * BUILD A BLOCK OF ZEROES FOR CLEARING MEMORY.
  4389.  
  4390. LDN 10*5
  4391. STD T1
  4392. CBS1 LDN 0
  4393. STM BFMS,T1
  4394. SOD T1
  4395. PJN CBS1 IF MORE TO CLEAR
  4396.  
  4397. * CLEAR STATISTICS WORDS.
  4398.  
  4399. LDN IBSL SET LENGTH OF STATISTICS AREA
  4400. STD T1
  4401. LDD CN+3
  4402. SHN 14
  4403. LMD CN+4
  4404. CWM BFMS,T1 CLEAR STATISTICS BLOCK
  4405.  
  4406. * CLEAR CHANNEL TABLE REQUEST COUNTERS.
  4407.  
  4408. LDN 0 PRESET FOR *UTEM* FUNCTION
  4409. STD CM+2
  4410. LDD FS+1 READ CHANNEL TABLE POINTER WORD
  4411. SHN 14
  4412. LMD FS+2
  4413. ADN CCTP
  4414. CRD CN
  4415. SOD CN
  4416. CBS2 SHN CCTLS
  4417. ADN CCNT
  4418. ADD CN+4
  4419. SHN 6
  4420. ADD CN+3
  4421. SHN 14
  4422. STD CM+4 SET ADDRESS FOR *UTEM*
  4423. SHN -14
  4424. STD CM+3
  4425. LDN 1
  4426. STD CM+1 NUMBER OF UPDATES TO PROCESS
  4427. LDD MA
  4428. CWM CBSA,ON WRITE *UTEM* PARAMETERS
  4429. MONITOR UTEM CLEAR REQUEST COUNTER
  4430. SOD CN
  4431. PJN CBS2 IF MORE CHANNEL TABLES TO PROCESS
  4432.  
  4433. * CLEAR *PUT* STATISTICS AREAS.
  4434.  
  4435. LDN INST-RDST+1
  4436. STD T1 SET LENGTH OF STATISTICS AREA
  4437. LDD FS+1
  4438. SHN 14
  4439. LMD FS+2
  4440. ADN PUTP
  4441. CRD CN READ *PUT* POINTER
  4442. LDD CN+3 CLEAR FLAGS
  4443. LPN 77
  4444. STD CN+3
  4445. LDD CN
  4446. CBS3 SHN PUTLS
  4447. ADN RDST
  4448. ADD CN+4
  4449. SHN 6
  4450. ADD CN+3
  4451. SHN 14
  4452. CWM BFMS,T1 CLEAR STATISTICS AREA
  4453. SOD CN
  4454. PJN CBS3 IF MORE *PUT*S TO CLEAR
  4455. LJM CBSX RETURN
  4456.  
  4457. CBSA VFD 6/0,6/36D,6/0,42/0 *UTEM* PARAMETERS
  4458. RFDF SPACE 4,20
  4459. ** RFDF - RETURN FAMILY ORDINAL TABLE FROM LOW CORE.
  4460. *
  4461. *T,FA 12/*RFDF* ,12/LENGTH ,12/ WC ,6/ ,18/ADDR
  4462. *
  4463. * WC LENGTH OF CM BUFFER
  4464. * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN. THIS WILL
  4465. * BE THE NUMBER OF FOT ORDINALS CURRENTLY RESERVED.)
  4466. * LENGTH ZERO ON CALL. *SFM* WILL RETURN THE MAXIMUM NUMBER
  4467. * OF FOT ORDINALS THAT MAY USED.
  4468. * ADDR FWA OF CM BUFFER
  4469. *
  4470. *
  4471. *T,ADDR 42/*FAMILY NAME*,18/ FOT ORDINAL
  4472. *
  4473. * ONE CM WORD WILL BE RETURNED FOR EACH ORDINAL THAT IS
  4474. * CURRENTLY RESERVED.
  4475.  
  4476.  
  4477. RFD SUBR ENTRY
  4478. LDC FOTP GET FOT POINTER
  4479. CRD CM
  4480. LDD CM+2 CALCULATE FOT ORDINALS IN USE
  4481. SBN 1
  4482. SBD CM+3
  4483. STD FC NUMBER OF WORDS TO BE RETURNED
  4484. LDD ES+2 CHECK CM BUFFER LENGTH
  4485. SBD FC
  4486. PJN RFD1 IF CM BUFFER LARGE ENOUGH
  4487. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  4488.  
  4489. RFD1 LDD CM TRANSFER FOT TO PP BUFFER
  4490. SHN 14
  4491. ADD CM+1
  4492. ADN 1 BEGIN WITH SECOND WORD
  4493. CRM BFMS,FC
  4494. LDC BFMS SET FWA OF BUFFER
  4495. STD T1
  4496. LDN 1 INITIALIZE ORDINAL
  4497. STD T2
  4498. RFD2 LDM 3,T1 SET FOT ORDINAL
  4499. SCN 77
  4500. STM 3,T1
  4501. LDD T2
  4502. STM 4,T1
  4503. LDN 5 ADVANCE POINTER
  4504. RAD T1
  4505. AOD T2 ADVANCE ORDINAL
  4506. SBD FC
  4507. SBN 1
  4508. MJN RFD2 IF NOT END OF TABLE
  4509. LDD ES+3 RETURN FOT TO CM BUFFER
  4510. SHN 6
  4511. ADD RA
  4512. SHN 6
  4513. ADD ES+4
  4514. CWM BFMS,FC
  4515. SOD CM+2 RETURN TOTAL NUMBER OF ORDINALS POSSIBLE
  4516. STD ES+1
  4517. LJM RSD7 RETURN
  4518. RSC SPACE 4,10
  4519. ** RSCF - RETURN SERVICE CLASS CONTROL TABLE FROM LOW CORE.
  4520. *
  4521. *T,FA 12/ *RSCF* ,12/ 0 ,12/ WC ,6/ 0 ,18/ ADDR
  4522. *
  4523. * WC NUMBER OF WORDS IN CM BUFFER. MUST BE AT LEAST *SCTE*.
  4524. * *SFM* WILL RETURN THE NUMBER OF WORDS WRITTEN.
  4525. * ADDR FWA OF CM BUFFER.
  4526. *
  4527. * A COPY OF THE *SCT* IS RETURNED IN THE CM BUFFER.
  4528.  
  4529.  
  4530. RSC SUBR ENTRY
  4531. LDN SCTE SET NUMBER OF WORDS TO RETURN
  4532. STD FC
  4533. LDD ES+2
  4534. SBD FC
  4535. PJN RSC1 IF BUFFER LARGE ENOUGH
  4536. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  4537.  
  4538. RSC1 LDK JBCP GET ADDRESS OF *SCT*
  4539. CRD CM
  4540. LDD CM RETURN *SCT* TO CM BUFFER
  4541. SHN 14
  4542. ADD CM+1
  4543. CRM SBUF,FC
  4544. LDD ES+3
  4545. SHN 6
  4546. ADD RA
  4547. SHN 6
  4548. ADD ES+4
  4549. CWM SBUF,FC
  4550. LJM RSD7 RETURN
  4551. RSSF SPACE 4,25
  4552. ** RSSF - RETURN SUBSYSTEM DATA.
  4553. *
  4554. *T,FA 12/*RSSF* ,12/ ,12/ WC ,6/ ,18/ADDR
  4555. *
  4556. * WC LENGTH OF CM BUFFER
  4557. * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN)
  4558. * ADDR FWA OF THE CM BUFFER
  4559. *
  4560. *
  4561. *T,ADDR 41/ , 1/F, 6/ CP, 12/ EJTO
  4562. *
  4563. * CP CONTROL POINT NUMBER WHERE SUBSYSTEM MUST RESIDE
  4564. * WHEN IT IS ACTIVE
  4565. * F ENABLE/DISABLE FLAG
  4566. * =0, IF SUBSYSTEM ENABLED
  4567. * =1, IF SUBSYSTEM DISABLED
  4568. * EJTO EJT ORDINAL OF THE SUBSYSTEM (ZERO IF NOT ACTIVE)
  4569. *
  4570. * ONE CM WORD WILL BE RETURNED FOR EACH SUBSYSTEM THAT IS
  4571. * SUPPORTED BY THE OPERATING SYSTEM.
  4572.  
  4573.  
  4574. RSS SUBR ENTRY
  4575. LDN SBUFL/5 SAVE NUMBER OF CM WORDS TO BE RETURNED
  4576. STD FC
  4577. LDC SBUFL
  4578. STD T2
  4579. LDD ES+2 CHECK CM BUFFER
  4580. SBD FC
  4581. PJN RSS1 IF BUFFER LARGE ENOUGH
  4582. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  4583.  
  4584. RSS1 LDN 0 CLEAR PP BUFFER
  4585. STM SBUF-1,T2
  4586. SOD T2
  4587. NJN RSS1 IF NOT END OF BUFFER
  4588. * STD T2 INITIALIZE CP AND EJTO INDEX
  4589. STD T3 INITIALIZE RETURN DATA BUFFER INDEX
  4590. STD T4 INITIALIZE *TSSS* INDEX
  4591. LDC SSCP GET FWA OF THE SSCT
  4592. CRD CM
  4593. LDN SSCTL*2 LENGTH OF SSCT AND SSAT (IN CM WORDS)
  4594. STD T1
  4595. LDD CM+2 READ SSCT AND SSAT
  4596. SHN 14
  4597. ADD CM+3
  4598. CRM BFMS,T1
  4599. LDK SSSL READ STATUS WORD
  4600. CRD CM
  4601. RSS2 LDM BFMS,T2 GET CONTROL POINT NUMBER
  4602. LPN 37
  4603. STM SBUF+3,T3
  4604. LDM BFMS+SSCTL*5,T2 GET EJT ORDINAL
  4605. STM SBUF+4,T3
  4606. LDM TSSS,T4 GET *SSSL* BYTE POSITION
  4607. STD T1
  4608. LDM TSSS+1,T4 CHECK STATUS BIT
  4609. STM RSSA
  4610. LDM CM,T1
  4611. LPC **
  4612. RSSA EQU *-1 (SUBSYSTEM MASK BIT)
  4613. ZJN RSS3 IF SUBSYSTEM ENABLED
  4614. LDC 100B SET DISABLED STATUS
  4615. RAM SBUF+3,T3
  4616. RSS3 LDN 5 LENGTH OF ONE ENTRY IN PP BUFFER
  4617. RAD T3 INCREMENT RETURN BUFFER INDEX
  4618. LDN 2 INCREMENT TABLE INDEX
  4619. RAD T4
  4620. AOD T2 INCREMENT CP AND EJTO INDEX
  4621. SBN MXSI-LSSI TOTAL NUMBER OF SUPPORTED SUBSYSTEMS
  4622. ZJN RSS4 IF ALL SUBSYSTEMS PROCESSED
  4623. LJM RSS2 PROCESS NEXT ENTRY
  4624.  
  4625. RSS4 LDD ES+3 RETURN SUBSYSTEM DATA TO CM BUFFER
  4626. SHN 6
  4627. ADD RA
  4628. SHN 6
  4629. ADD ES+4
  4630. CWM SBUF,FC
  4631. LJM RSD7 RETURN
  4632.  
  4633.  
  4634. ** TSSS - TABLE OF SUBSYSTEM STATUS INFORMATION.
  4635. *
  4636. *T 12/ BYTE, 12/ MASK
  4637.  
  4638.  
  4639. TSSS INDEX
  4640. .SUB HERE
  4641. INDEX MXSI*2-LSSI*2
  4642.  
  4643.  
  4644. SBUF EQU BFMS+SSCTL*5*2 FWA RETURN DATA PP BUFFER
  4645. .NSS SET MXSI-LSSI TOTAL NUMBER OF SUBSYSTEMS POSSIBLE
  4646. SBUFL EQU .NSS*5 LENGTH OF PP BUFFER
  4647. SBUFE EQU SBUF+SBUFL END OF PP BUFFER
  4648. ERRNG 7777-SBUFE TEST FOR PP BUFFER OVERFLOW
  4649. DPT SPACE 4,10
  4650. ** DPT - DETERMINE *PROBE* TABLE LENGTH.
  4651. *
  4652. * ENTRY NONE.
  4653. *
  4654. * EXIT (A) = MINIMUM SIZE OF CM BUFFER NEEDED TO
  4655. * RECEIVE *PROBE* DATA.
  4656. *
  4657. * USES T1 - T7.
  4658. *
  4659.  
  4660.  
  4661. DPT SUBR ENTRY/EXIT
  4662. LDC PLDP FETCH PLD POINTER
  4663. CRD T1
  4664. ADN PSTP-PLDP GET PST POINTER
  4665. CRD T3
  4666. LDD T3+2 COMPUTE LENGTH OF *PLD*
  4667. SBD T1
  4668. SHN 14
  4669. ADD T3+3
  4670. SBD T1+1
  4671. ADC TPRDL
  4672. UJN DPTX RETURN
  4673. LPT SPACE 4,35
  4674. ** LPT - LOCK *PROBE* TABLES.
  4675. *
  4676. * ENTRY NONE.
  4677. *
  4678. * EXIT (A) .EQ. 0 IF *PROBE* TABLES LOCKED
  4679. * (A) .NE. 0 IF *PROBE* TABLES NOT PRESENT.
  4680. * (FN - FN+4) = *PROBE* TABLE POINTER.
  4681. *
  4682. * USES CM - CM+4, FN - FN+4.
  4683. *
  4684. * MACROS DELAY, MONITOR, PAUSE.
  4685.  
  4686.  
  4687. LPT2 LDC PRBP READ *PROBE* DATA POINTER
  4688. CRD FN
  4689. LDC 4000 CLEAR *PROBE* TABLE LOCK FLAG
  4690. RAD FN
  4691. LDN 0 SET *PROBE* TABLE INTERLOCKED
  4692.  
  4693. LPT SUBR ENTRY/EXIT
  4694. LDC SSTL READ *PROBE* STATUS
  4695. CRD CM
  4696. LDD CM+2
  4697. LPC 100
  4698. NJN LPTX IF *PROBE* NOT ENABLED
  4699. LPT1 LDD MA LOCK *PROBE* TABLE
  4700. CWM LPTA,ON
  4701. LDN 1
  4702. STD CM+1
  4703. STD CM+2
  4704. MONITOR UADM
  4705. LDD CM+1
  4706. ZJN LPT2 IF *PROBE* TABLE LOCKED
  4707. DELAY
  4708. PAUSE
  4709. LDD CM+1
  4710. ZJN LPT1 IF NO ERROR FLAG
  4711. LJM DPP DROP PPU
  4712.  
  4713.  
  4714. LPTA CON LDOS DECREMENT LOW CORE FIELD BY ONE
  4715. CON PRBP WORD ADDRESS
  4716. CON 59D*100+1 BIT ADDRESS/FIELD WIDTH
  4717. CON 0
  4718. CON 0
  4719. RPC SPACE 4,10
  4720. ** RPC - RETURN *PLD* COUNTS.
  4721. *
  4722. * ENTRY (FN - FN+4) = *PROBE* TABLE POINTERS.
  4723. *
  4724. * EXIT *PROBE*/*PLD* INFORMATION WRITTEN TO BUFFER.
  4725. *
  4726. * USES CM - CM+4, CN - CN+4, DA - DA+1, T3 - T7.
  4727. *
  4728. * CALLS DPT, SDR.
  4729. *
  4730. * DEFINE (DA - DA+1) = FWA OF *PROBE* TABLE *TSPL*.
  4731. * (T3) = LENGTH OF *TSPL*.
  4732. * (T4) = *TSPL* TABLE INDEX.
  4733. * (T5) = *PLD* INDEX.
  4734. * (T6 - T7) = FWA OF *PLD*.
  4735. *
  4736. * NOTE THIS ROUTINE COMBINES THE INFORMATION FROM THE
  4737. * *PROBE* TABLE *TSPL* WITH INFORMATION FROM THE *PLD*
  4738. * TO CREATE THE FOLLOWING ENTRY THAT IS RETURNED TO THE
  4739. * CM BUFFER.
  4740. *
  4741. *T 18/ PPU ,6/ R ,6/ ,30/ COUNT
  4742. *
  4743. * PPU NAME OF PPU PROGRAM.
  4744. * R PPU PROGRAM RESIDENCE.
  4745. * 0 = ASR RESIDENT.
  4746. * 1 = CM RESIDENT
  4747. * 2 = DISK RESIDENT
  4748. * COUNT NUMBER OF TIMES THE PPU PROGRAM WAS LOADED.
  4749.  
  4750.  
  4751. RPC SUBR ENTRY/EXIT
  4752. RJM DPT DETERMINE *PROBE* TABLE LENGTH
  4753. ADC -TPRDL
  4754. STD T3
  4755. LDC TSPL SET FWA OF *TSPL*
  4756. ADD FN+4
  4757. STD DA+1
  4758. SHN -14
  4759. ADD FN+3
  4760. STD DA
  4761. LDC PLDP FETCH PLD POINTER
  4762. CRD T6
  4763. LDN 0 INITIALIZE *PROBE* TABLE INDEX
  4764. STD T4
  4765. STD T5 INITIALIZE *PLD* INDEX
  4766. RPC1 LPN 1
  4767. NJN RPC2 IF MORE DATA TO PROCESS
  4768. LDD DA READ *PROBE* DATA
  4769. SHN 14
  4770. ADD DA+1
  4771. ADD T4
  4772. CRD CM
  4773. AOD T4 INCREMENT PROBE TABLE INDEX
  4774. RPC2 LDN 0 CHECK IF LAST *PLD* ENTRY ENCOUNTERED
  4775. * LDN 1 (LAST *PLD* ENTRY ENCOUNTERED)
  4776. RPCA EQU *-1
  4777. NJN RPCX IF END OF *PLD*
  4778. LDD T6 READ *PLD* ENTRIES
  4779. SHN 14
  4780. ADD T7
  4781. ADD T5
  4782. CRD CN
  4783.  
  4784. * THE LAST ENTRY OF THE *PLD* IS RESERVED FOR *SFP*.
  4785. * THIS *PLD* ENTRY HAS NO PP NAME. THEREFORE, *SFP*
  4786. * MUST BE SET INTO THE ENTRY BEFORE IT IS RETURNED TO
  4787. * THE CM BUFFER.
  4788.  
  4789. LDD CN CHECK FOR *SFP* *PLD* ENTRY
  4790. NJN RPC3 IF NOT *SFP* ENTRY
  4791. LDC 3RPSF SET *SFP* AS PPU NAME
  4792. STD CN
  4793. SHN -6
  4794. LMD CN+1
  4795. SCN 77
  4796. LMD CN+1
  4797. STD CN+1
  4798. AOM RPCA FLAG LAST *PLD* ENTRY ENCOUNTERED
  4799. RPC3 LDD T5
  4800. LPN 1
  4801. NJN RPC4 IF RETURNING SECOND ENTRY OF *PROBE* DATA
  4802. LDD CM+4 SET *PROBE* COUNT INTO FIRST *PLD* ENTRY
  4803. STD CN+4
  4804. LDD CM+3
  4805. STD CN+3
  4806. LDD CM+2
  4807. LPN 77
  4808. STD CN+2
  4809. UJN RPC5 SET DEVICE RESIDENCE
  4810.  
  4811. RPC4 LDD CM+2 SET *PROBE* COUNT FOR SECOND *PLD* ENTRY
  4812. SCN 77
  4813. SHN 6
  4814. LMD CM+1
  4815. SHN 6
  4816. STD CN+4
  4817. LPC 770000
  4818. LMD CM
  4819. SHN 6
  4820. STD CN+3
  4821. SHN -14
  4822. STD CN+2
  4823. RPC5 LDD CN+1 SET DEVICE RESIDENCE
  4824. RJM SDR
  4825. STD CN+1
  4826. LDD ES+3 RETURN DATA TO CM BUFFER
  4827. SHN 6
  4828. ADD RA
  4829. SHN 6
  4830. ADD ES+4
  4831. ADC TPRDL+1
  4832. ADD T5
  4833. CWD CN
  4834. AOD T5
  4835. LJM RPC1 LOOP FOR MORE DATA
  4836. SDR SPACE 4,15
  4837. ** SDR - SET DEVICE RESIDENCE.
  4838. *
  4839. * ENTRY (A) = BYTE 1 OF *PLD* ENTRY.
  4840. *
  4841. * EXIT (A) = BYTE 1 OF *PROBE/PLD* ENTRY
  4842. *
  4843. * USES T1, T2, FS - FS+4.
  4844. *
  4845. * MACROS SFA.
  4846. *
  4847. * NOTE 0 = ASR.
  4848. * 1 = CM RESIDENT.
  4849. * 2 = DISK RESIDENT.
  4850.  
  4851.  
  4852. SDR SUBR ENTRY/EXIT
  4853. STD T2
  4854. SHN 0-5 CHECK FOR CM RESIDENCE
  4855. LPN 1
  4856. STD T1
  4857. NJN SDR1 IF CM RESIDENT
  4858. LDD T2 EXTRACT EST ORDINAL
  4859. LPN 37
  4860. SFA EST READ EST ENTRY
  4861. ADK EQDE
  4862. CRD FS
  4863. LDD FS CHECK IF SYSTEM FILE PRESENT
  4864. SHN 1-12
  4865. LPN 2
  4866. STD T1
  4867. SDR1 LDD T2 SET RESIDENCE CODE
  4868. SCN 77
  4869. LMD T1
  4870. UJN SDRX RETURN
  4871. RCIF SPACE 4,15
  4872. ** RCIF - RETURN/UPDATE SYSTEM SERVICE CLASS DATA.
  4873. *
  4874. * *RCI* READS OR UPDATES THE CONTENTS OF THE *JCB* (JOB
  4875. * CONTROL AREA) TABLE IN CMR.
  4876. *
  4877. *T FA 12/ *RCIF* ,11/ ,1/ F,12/ WC,6/ ,18/ ADDR
  4878. *
  4879. * F = 0 IF DATA TO BE READ.
  4880. * = 1 IF DATA TO BE UPDATED.
  4881. * WC CM BUFFER LENGTH
  4882. * (*SFM* WILL RETURN NUMBER OF WORDS WRITTEN).
  4883. * ADDR FWA OF CM BUFFER.
  4884. *
  4885. * NOTE - FOR THE UPDATE OPTON - THE LAST TWO WORDS OF EACH
  4886. * *JCB* (WORDS *JCTT* AND *CTMT*) ARE NOT UPDATED.
  4887.  
  4888.  
  4889. RCI SUBR ENTRY/EXIT
  4890.  
  4891. * CHECK FOR SYSTEM ORIGIN AND *SSJ=* ENTRY POINT.
  4892.  
  4893. RJM CUA CHECK USER ACCESS
  4894. NJN RCI1 IF NOT SYSTEM ORIGIN
  4895. LDD CP
  4896. ADK SEPW
  4897. CRD CM
  4898. LDD CM
  4899. SHN 21-2
  4900. MJN RCI2 IF SYSTEM ORIGIN AND *SSJ=*
  4901. RCI1 ABORT /MESS/ERIR * SFM INCORRECT REQUEST.*
  4902.  
  4903. * CHECK FOR READ OR UPDATE OPTION.
  4904.  
  4905. RCI2 LDK TJCBL SET LENGTH OF *JCB* TABLE
  4906. STD FC
  4907. SBD ES+2 CHECK CM BUFFER
  4908. ZJN RCI3 IF BUFFER CORRECT SIZE
  4909. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  4910.  
  4911. RCI3 LDN 1 INITIALIZE SERVICE CLASS NUMBER
  4912. STD T1
  4913. LDN 0 INITIALIZE CM BUFFER OFFSET
  4914. STD T2
  4915. LDD ES+1 CHECK READ/WRITE FLAG
  4916. LPN 1
  4917. NJN RCI5 IF DATA TO BE WRITTEN
  4918.  
  4919. * READ *JCB* TABLE TO JOB BUFFER.
  4920.  
  4921. LDN JCBE SET WORD COUNT
  4922. STD T3
  4923. RCI4 SFA JCB,T1 GET *JCB* ADDRESS
  4924. CRM RCIB,T3 READ NEXT *JCB* ENTRY
  4925. RJM GCA GET CM BUFFER ADDRESS
  4926. ADD T2
  4927. CWM RCIB,T3 WRITE NEXT *JCB* ENTRY TO CM BUFFER
  4928. LDN JCBE ADJUST OFFSET FOR NEXT SERVICE CLASS
  4929. RAD T2
  4930. AOD T1 INCREMENT SERVICE CLASS
  4931. SBN MXJC
  4932. NJN RCI4 IF MORE *JCB* ENTRIES TO COPY
  4933. LJM RSD7 RETURN
  4934.  
  4935. * UPDATE *JCB*.
  4936.  
  4937. RCI5 LDN JCBE-2 DO NOT UPDATE LAST TWO WORDS OF EACH *JCB*
  4938. ERRNZ JCBE-JCTT-2 CODE DEPENDS ON VALUE
  4939. STD T3 SET WORD COUNT
  4940. RCI6 RJM GCA GET CM BUFFER ADDRESS FOR NEXT *JCB* ENTRY
  4941. ADD T2
  4942. CRM RCIB,T3 READ NEXT UPDATED *JCB* ENTRY
  4943. SFA JCB,T1
  4944. CWM RCIB,T3 UPDATE NEXT *JCB* ENTRY
  4945. LDN ZERL
  4946. CRD CM
  4947. LDN CCSS CONVERT CPU SCHEDULING PARAMETERS
  4948. STD CM+2
  4949. LDD T1 SET SERVICE CLASS
  4950. STD CM+4
  4951. MONITOR SCTM SET SYSTEM CONTROL PARAMETERS
  4952. LDN JCBE ADJUST OFFSET FOR NEXT SERVICE CLASS
  4953. RAD T2
  4954. AOD T1 INCREMENT SERVICE CLASS
  4955. SBN MXJC
  4956. NJN RCI6 IF MORE *JCB* ENTRIES TO UPDATE
  4957.  
  4958. * ISSUE JOB LIMIT CHANGED EVENT.
  4959.  
  4960. RCI7 LDN ZERL
  4961. CRD CM
  4962. LDN SCFE
  4963. STD CM+4
  4964. MONITOR EATM
  4965. LJM RSD7 RETURN
  4966. GCA SPACE 4,10
  4967. ** GCA - GET CM BUFFER ADDRESS.
  4968. *
  4969. * ENTRY (ES+3 - ES+4) = FWA CM BUFFER FOR JOB.
  4970. *
  4971. * EXIT (A) = FWA CM BUFFER FOR JOB.
  4972.  
  4973.  
  4974. GCA SUBR ENTRY/EXIT
  4975. LDD ES+3 GET FWA CM BUFFER
  4976. LPN 77
  4977. SHN 6
  4978. ADD RA
  4979. SHN 6
  4980. ADD ES+4
  4981. UJN GCAX RETURN
  4982.  
  4983.  
  4984. RCIB EQU * *JCB* BUFFER
  4985. RCIBL EQU JCBE*5 *JCB* BUFFER LENGTH
  4986. ERRPL RCIB+RCIBL-BFMS BUFFER OVERFLOWS *BFMS*
  4987.  
  4988. * BUFFER FOR I/O STATISTICS.
  4989.  
  4990. IOSA VFD 12/0,18/0,6/0,12/0,12/0
  4991. IOSB EQU IOSA+5
  4992. ERRPL IOSB+PUTL*5-BFMS BUFFER OVERFLOWS *BFMS*
  4993. SPACE 4,10
  4994. ** COMMON DECKS.
  4995.  
  4996.  
  4997. QUAL$ SET 0 FORCE UNQUALIFIED COMMON DECKS
  4998. *CALL COMPCUA
  4999. SPACE 4,10
  5000. OVERFLOW OVLA,EPFW
  5001. OVERLAY (MISCELLANEOUS FUNCTIONS.)
  5002. SPACE 4,10
  5003. SUB$ EQU 1 ASSEMBLE *SUBSYST* MACRO CALLS
  5004. *CALL COMSSSD
  5005. TITLE CSTF/SSTF/SUSF FUNCTION PROCESSOR.
  5006. *** FUNCTION *CSTF* - CLEAR SUBSYSTEM ACCESS FLAG.
  5007. *
  5008. * THE SUBSYSTEM ACESS FLAG (BIT 11D OF THE SUBSYSTEM-S SSCT
  5009. * ENTRY) WILL BE CLEARED.
  5010. *
  5011. * EXIT CONDITIONS.
  5012. *
  5013. *T STATUS 48/ 0,9/ 0,2/ ST,1/ C
  5014. * C COMPLETION BIT.
  5015. * ST = 0 IF SUBSYSTEM ACCESS FLAG WAS SET AT TIME OF CALL.
  5016. * ST = 1 IF SUBSYSTEM ACCESS FLAG WAS ALREADY CLEAR.
  5017. SST SPACE 4,10
  5018. *** FUNCTION *SSTF* - SET SUBSYSTEM ACCESS FLAG.
  5019. *
  5020. * THE SUBSYSTEM ACCESS FLAG (BIT 11D OF THE SUBSYSTEM-S SSCT
  5021. * ENTRY) WILL BE SET.
  5022. *
  5023. *
  5024. *T STATUS 48/ 0,9/ 0,2/ ST,1/ C
  5025. * C COMPLETION BIT.
  5026. * ST = 0 IF SUBSYSTEM ACCESS FLAG WAS CLEAR AT TIME OF CALL.
  5027. * ST = 1 IF SUBSYSTEM ACCESS FLAG WAS ALREADY SET.
  5028.  
  5029.  
  5030. CST ENTRY ENTRY
  5031. LDN ZERL CLEAR STATUS WORD
  5032. CRD CN
  5033. AOD CN+4 SET COMPLETE BIT
  5034. LDD CP GET SUBSYSTEM IDENTIFICATION NUMBER
  5035. ADN JCIW
  5036. CRD CM
  5037. LDD IR+2
  5038. SBN CSTF-CSCF
  5039. SHN 14
  5040. LMD CM+2
  5041.  
  5042. ERRNZ SSTF-CSTF-1 VALUES MUST BE CONSECUTIVE
  5043. ERRNZ SSCF-CSCF-1 VALUES MUST BE CONSECUTIVE
  5044.  
  5045. RJM AST SET/CLEAR SUBSYSTEM ACCESS FLAG
  5046. NJN CST1 IF FLAG IS ALREADY IN DESIRED STATE
  5047. LDN 2 SET REPLY CODE
  5048. RAD CN+4
  5049. CST1 LDD IR+3 RETURN STATUS TO CALLER
  5050. SHN 6
  5051. ADD RA
  5052. SHN 6
  5053. ADD IR+4
  5054. CWD CN
  5055. LJM DPP DROP PP
  5056. SUSF SPACE 4,10
  5057. *** FUNCTION *SUSF* - SET SUBSYSTEM STATUS.
  5058. *
  5059. * THE CONTROL POINT NUMBER, IF SPECIFIED, WILL BE PLACED
  5060. * INTO THE SUBSYSTEM-S SSCT ENTRY. THE *SSSL* STATUS BIT
  5061. * WILL BE SET TO THE SPECIFIED STATUS (ENABLED OR DISABLED).
  5062. *
  5063. * ENTRY
  5064. *
  5065. *T,ADDR 41/ , 1/F, 6/ CP, 12/ SSID
  5066. *
  5067. * F = 1, IF SUBSYSTEM TO BE DISABLED.
  5068. * = 0, IF SUBSYSTEM TO BE ENABLED.
  5069. * CP = CONTROL POINT NUMBER + 40B, IF SPECIFIED.
  5070. * SSID = SUBSYSTEM ID.
  5071.  
  5072.  
  5073. SSS3 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  5074.  
  5075. SSS ENTRY ENTRY
  5076. RJM GFE GET PARAMETER WORD
  5077. CRD CM
  5078. LDD CM+4 SAVE SSID
  5079. STD T6
  5080. SBK MXSI+1
  5081. PJN SSS3 IF SSID OUT OF RANGE
  5082. ADK MXSI-LSSI
  5083. MJN SSS3 IF SSID OUT OF RANGE
  5084. LDD CM+3
  5085. SHN 21-5 SAVE ENABLE/DISABLE FLAG
  5086. STD T7
  5087. PJN SSS1 IF NO CONTROL POINT SPECIFIED
  5088. SHN 6
  5089. LPN 37
  5090. STD T1 SAVE CONTROL POINT
  5091. LDN NCPL CHECK CONTROL POINT
  5092. CRD CM
  5093. LDD T1
  5094. SBD CM+1
  5095. SBN 1
  5096. PJN SSS3 IF INVALID CONTROL POINT NUMBER
  5097. LDN SECF
  5098. SHN 14
  5099. LMD T6
  5100. RJM AST UPDATE SSCT
  5101.  
  5102. * UPDATE *SSSL* STATUS BIT.
  5103.  
  5104. SSS1 LDC MXSI COMPUTE TABLE OFFSET
  5105. SBD T6
  5106. SHN 1
  5107. STD T6
  5108. LDM TSSS,T6 GET *SSSL* BYTE NUMBER
  5109. ADN CM
  5110. STD T5
  5111. LDM TSSS+1,T6 SET MASK
  5112. STD T6
  5113. LCN 0
  5114. LMD T6
  5115. STM SSSA
  5116. LDD T7
  5117. NJN SSS2 IF *DISABLE*
  5118. STD T6 CLEAR STATUS BITS
  5119. SSS2 LDK SSSL READ STATUS WORD
  5120. CRD CM
  5121. LDI T5
  5122. LPC *
  5123. SSSA EQU *-1
  5124. LMD T6
  5125. STI T5
  5126. LDK SSSL REWRITE STATUS WORD
  5127. CWD CM
  5128. LJM DPP DROP PP
  5129. TSSS SPACE 4,10
  5130. ** TSSS - TABLE OF SUBSYSTEM STATUS INFORMATION.
  5131. *
  5132. *T 12/ BYTE, 12/ MASK
  5133.  
  5134.  
  5135. TSSS INDEX
  5136. .SUB HERE
  5137. INDEX MXSI*2-LSSI*2
  5138. TITLE MDFF FUNCTION PROCESSOR.
  5139. DMM SPACE 4,15
  5140. *** FUNCTION *MDFF* - DUMP MACHINE MEMORY.
  5141. *
  5142. * ENTRY CONDITIONS.
  5143. *T FET+5 24/ ,12/ 0,24/ FWA/100
  5144. * FWA = ABSOLUTE ADDRESS OF FIRST WORD TO DUMP.
  5145. * FIRST, IN, OUT, LIMIT SET TO RECEIVE DUMP DATA.
  5146. *
  5147. * EXIT CONDITIONS.
  5148. *T FET+5 24/ MEMORY SIZE/100,12/ 0,24/ UNCHANGED
  5149. *
  5150. * MEMORY SIZE IS FROM CMR WORD *MABL*.
  5151. * MEMORY DATA FROM FWA IS WRITTEN INTO THE BUFFER
  5152. * AND *IN* IS SET CORRECTLY. MEMORY WILL BE DUMPED
  5153. * IN ANY NUMBER OF 100 WORD BLOCKS NEEDED TO FILL
  5154. * THE BUFFER TO .LT. 100 REMAINING FREE WORDS.
  5155. *
  5156. * IN A SECURED SYSTEM, ONLY CMR AND THE CALLER-S FIELD
  5157. * LENGTH WILL BE RETURNED. THE REST OF CENTRAL MEMORY
  5158. * WILL BE WRITTEN AS BINARY ZEROES.
  5159.  
  5160.  
  5161. DMM ENTRY ENTRY
  5162. LDN 2 SET VALIDATION OPTION
  5163. STD CM+1
  5164. LDD IR+4 SET FET ADDRESS
  5165. STD CM+4
  5166. LDD IR+3
  5167. STD CM+3
  5168. MONITOR VFPM VALIDATE FET PARAMETERS
  5169. LDD CM+1
  5170. ZJN DMM1 IF NO ERROR
  5171. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  5172.  
  5173. DMM1 LDK CMRL GET CMR SIZE
  5174. CRD ES
  5175. ADK SSTL-CMRL GET SECURITY UNLOCK STATUS
  5176. CRD CN
  5177. ADK SSML-SSTL GET SYSTEM SECURITY MODE
  5178. CRD CM
  5179. LDD CM
  5180. LPN 7
  5181. ZJN DMM3 IF NOT SECURED SYSTEM
  5182. LDD CN
  5183. SHN 21-11
  5184. MJN DMM3 IF SECURITY UNLOCK STATUS
  5185. AOM DMMC SET SECURED SYSTEM FLAG
  5186. LDC 500D CLEAR BUFFER
  5187. STD T2
  5188. DMM2 LDN 0
  5189. STM ZBUF-1,T2
  5190. SOD T2
  5191. NJN DMM2 IF MORE TO CLEAR
  5192. DMM3 LDK MABL READ HARDWARE OPTIONS
  5193. CRD CM
  5194. LDD CM+1
  5195. SHN 21-13
  5196. PJN DMM4 IF CM EXTENSION PRESENT
  5197. LDM DMMB SET NO CME MODE
  5198. STM DMMA
  5199. DMM4 LDN 6
  5200. STD T1
  5201. RJM GFE GET FET ADDRESS
  5202. CRM BUF,T1 READ FET
  5203. LDD CM+3 ADJUST 262K MEMORY SIZE
  5204. ADN 1
  5205. SCN 1
  5206. STM BUF+5*5+1
  5207. STD ES+1
  5208. SHN -14
  5209. ADD CM+2
  5210. STM BUF+5*5
  5211. STD ES
  5212. RJM GFE
  5213. ADN 5
  5214. CWM BUF+5*5,ON
  5215. LDM BUF+1*5+3 SET FET PARAMETERS
  5216. LPN 37
  5217. STD FT
  5218. LDM BUF+1*5+4
  5219. STD FT+1
  5220. LDM BUF+2*5+3
  5221. STD IN
  5222. LDM BUF+2*5+4
  5223. STD IN+1
  5224. LDM BUF+4*5+3
  5225. LPN 37
  5226. STD LM
  5227. LDM BUF+4*5+4
  5228. STD LM+1
  5229. RJM CIB GET BUFFER SIZE
  5230. SHN -6 MAKE MULTIPLE OF 100
  5231. NJN DMM5 IF LARGE ENOUGH
  5232. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  5233.  
  5234. DMM5 STD CN SAVE WORD COUNT/100
  5235. LDM BUF+5*5+3 GET FWA/100
  5236. STD CN+3
  5237. LDM BUF+5*5+4
  5238. STD CN+4
  5239. SBD ES+1 FWA - MACHINE SIZE
  5240. SHN -21
  5241. LMC -0
  5242. ADD CN+3
  5243. SBD ES
  5244. MJN DMM6 IF FWA .LT. MACHINE SIZE
  5245. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  5246.  
  5247. DMM6 LDN 0
  5248. * LDN 1 (SECURED SYSTEM)
  5249. DMMC EQU *-1
  5250. ZJP DMM9 IF NOT SECURED SYSTEM
  5251. LDD CN+3
  5252. NJN DMM7 IF FWA PAST CMR
  5253. LDD CN+4
  5254. SBD ES+4
  5255. MJP DMM9 IF FWA WITHIN CMR
  5256.  
  5257. * CHECK FOR REQUESTED BLOCK FWA WITHIN CALLER-S FL
  5258.  
  5259. DMM7 LDD CP CHECK FOR FWA .LT. FWA OF CALLER-S FL
  5260. ADK FLSW+1
  5261. CRD CM
  5262. LDD CN+4
  5263. SBD CM+2
  5264. SHN -21
  5265. LMC -0
  5266. ADD CN+3
  5267. SBD CM+1
  5268. MJN DMM8 IF FWA .LT. THAN FWA OF CALLER-S FL
  5269. LDD CM+3 CALCULATE LWA+1 OF CALLER-S FL
  5270. LPC 3777
  5271. ADD CM+2
  5272. ADD CM+4
  5273. STD CM+2
  5274. SHN -14
  5275. RAD CM+1
  5276. LDD CN+4 CHECK FOR FWA .GT. LWA OF CALLER-S FL
  5277. SBD CM+2
  5278. SHN -21
  5279. LMC -0
  5280. ADD CN+3
  5281. SBD CM+1
  5282. MJN DMM9 IF FWA WITHIN CALLER-S FL
  5283. DMM8 LDC ZBUF SET BUFFER ADDRESS FOR ZEROES
  5284. STM DMMD
  5285. UJN DMM12 PAUSE AND WRITE BUFFER
  5286.  
  5287. DMM9 LDC BUF SET BUFFER ADDRESS FOR CM DATA
  5288. STM DMMD
  5289. LRD CN+3 SET *R* REGISTER TO FWA
  5290. * UJN DMM10 (CME NOT PRESENT)
  5291. DMMA EQU *-1
  5292.  
  5293. LDC 400000 SET RELATIVE ADDRESS = 0
  5294. UJN DMM11 READ DATA FROM CM
  5295.  
  5296. DMM10 LDD CN+4
  5297. SHN 6
  5298. DMM11 CRM BUF,HN
  5299. DMM12 PAUSE RESET *R* REGISTER
  5300. LDD HN
  5301. STD T1
  5302. LDC BUF WRITE TO CM BUFFER
  5303. DMMD EQU *-1 (BUFFER ADDRESS)
  5304. RJM WBB
  5305. SOD CN DECREMENT BLOCK COUNT
  5306. ZJN DMM14 IF NO SPACE REMAINS
  5307. AOD CN+4 ADVANCE ABSOLUTE ADDRESS
  5308. SHN -14
  5309. RAD CN+3
  5310. SBD ES COMPARE TO LIMIT VALUE
  5311. NJN DMM13 IF NOT EQUAL
  5312. LDD CN+4
  5313. SBD ES+1
  5314. DMM13 NJP DMM6 IF NOT END OF MEMORY
  5315. DMM14 LDN ZERL RETURN IN POINTER
  5316. CRD CM
  5317. LDD IN
  5318. STD CM+3
  5319. LDD IN+1
  5320. STD CM+4
  5321. RJM GFE
  5322. ADN 2
  5323. CWD CM
  5324. SBN 2 SET COMPLETION BIT
  5325. CRD CM
  5326. LDD CM+4
  5327. SCN 1
  5328. LMN 1
  5329. STD CM+4
  5330. RJM GFE
  5331. CWD CM
  5332. LJM DPP EXIT
  5333.  
  5334. DMMB BSS 0
  5335. LOC DMMA
  5336. UJN DMM10 CME NOT PRESENT
  5337. LOC *O
  5338. TPDF SPACE 4,10
  5339. *** FUNCTION *TPDF* - TRANSFER RESOURCE PREVIEW DATA.
  5340. *
  5341. * ENTRY
  5342. *
  5343. *T,ADDR 60/ FIRST WORD OF PREVIEW DATA
  5344. *
  5345. * SSID = SUBSYSTEM ID.
  5346.  
  5347.  
  5348. TPD ENTRY ENTRY
  5349. LDK LPDS-1 SET PREVIEW DATA LENGTH
  5350. STD T1
  5351. LDD IR+3
  5352. SHN 14
  5353. ADD IR+4
  5354. ADD T1 DATA LWA + 1
  5355. SHN -6
  5356. SBD FL
  5357. MJN TPD1 IF DATA WITHIN FL
  5358. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  5359.  
  5360. TPD1 RJM GFE SET DATA ADDRESS
  5361. CRM BUF,T1 READ PREVIEW DATA
  5362. LDN ZERL
  5363. CRD CM
  5364. CRD FS
  5365. LDK LDSP
  5366. CRD CN
  5367. LDK LLDS SET PREVIEW BUFFER INTERLOCK WORD ADDRESS
  5368. RAD CN+3
  5369. STD CM+4
  5370. SHN -14
  5371. RAD CN+2
  5372. STD CM+3
  5373. MONITOR UTEM INTERLOCK PREVIEW BUFFER
  5374. LDD CM+1
  5375. NJN TPD2 IF BUFFER NOT INTERLOCKED
  5376. LCN 0 SET NON-ZERO FIELD (REQUIRED BY *UTEM*)
  5377. STD FS
  5378. LDD CN+2 SET PREVIEW DATA ADDRESS
  5379. SHN 14
  5380. ADD CN+3
  5381. ADN 1
  5382. CWM BUF,T1 UPDATE PREVIEW BUFFER
  5383. ADK -LPDS CLEAR BUFFER INTERLOCK
  5384. CWD FS
  5385. TPD2 LJM DPP EXIT
  5386. SPACE 4
  5387. * COMMON DECKS.
  5388.  
  5389.  
  5390. QUAL$ SET 1
  5391. AST$ SET 1 ASSEMBLE TABLE UPDATE CODE IN *COMPAST*
  5392. *CALL COMPAST
  5393. *CALL COMPCIB
  5394. *CALL COMPWBB
  5395.  
  5396.  
  5397. USE BUFFER
  5398. BUF EQU *
  5399. ZBUF EQU *+500D ZERO BUFFER FOR *MDFF*
  5400. ERRPL ZBUF+500D-EPFW
  5401. OVERLAY (LID MANAGEMENT PROCESSOR.)
  5402. SPACE 4
  5403. TITLE LID TABLE FUNCTION PROCESSORS.
  5404. GLAF SPACE 4,15
  5405. *** GLAF - GET LID ATTRIBUTES.
  5406. *
  5407. * *GLAF* RETURNS VARIOUS ATTRIBUTES FOR A SPECIFIED LID.
  5408. *
  5409. * ENTRY -
  5410. *T FET+0 18/LID,42/1
  5411. * LID = THREE CHARACTER ALPHANUMERIC LID.
  5412. * EXIT -
  5413. *T FET+0 18/LID,12/AT,6/ ,3/RFU,3/NW,8/RC,9/0,1/C
  5414. * AT = 1/H,1/L,1/E,1/V,1/SH,1/SL,1/B,3/RFU,2/RFI
  5415. * H = HOST.
  5416. * L = LINKED MAINFRAME.
  5417. * E = ENABLED LID.
  5418. * V = PRE-VALIDATION REQUIRED.
  5419. * SH = STORE AND FORWARD LID ON HOST.
  5420. * SL = STORE AND FORWARD LID ON LINKED MAINFRAME.
  5421. * B = LOOPBACK LID ON HOST MAINFRAME.
  5422. * RFU = RESERVED FOR FUTURE USE.
  5423. * RFI = RESERVED FOR INSTALLATION.
  5424. * NW = 1/SSF,1/RHF,1/NHP.
  5425. * SSF = SCOPE 2 STATION FACILITY.
  5426. * RHF = REMOVE HOST FACILITY.
  5427. * NHP = NETWORK HOST PRODUCTS.
  5428. * NOTE - ONLY NETWORKS WITH CURRENTLY AVAILABLE
  5429. * PATHS TO ENABLED *PID*S ARE RETURNED.
  5430. * RC = RESPONSE CODE.
  5431.  
  5432.  
  5433. GLA ENTRY
  5434. RJM GFE READ LID
  5435. CRD ES
  5436. LDD ES+1 ENSURE PROPER FORMAT ON LID
  5437. SCN 77
  5438. STD ES+1
  5439. LDN 0 CLEAR REMAINING FIELDS
  5440. STD ES+2
  5441. STD ES+3
  5442. STD ES+4
  5443. STD FN+4 CLEAR INITIAL NEXT PID INDEX
  5444. LDK LIDP FWA OF LDT
  5445. CRD T1
  5446. LDN 1 INITIALIZE INDEX INTO LDT
  5447. STD T6
  5448. LDD T1 GET LDT HEADER
  5449. SHN 14
  5450. LMD T2
  5451. CRD CM
  5452. GLA1 LDD FN+4 INCREMENT NEXT PID INDEX
  5453. RAD T6
  5454. RJM RPE READ PID ENTRY
  5455. MJN GLA2 IF ENABLED PID FOUND
  5456.  
  5457. * ALL PIDS HAVE BEEN PROCESSED. WRITE REPLY BLOCK AND RETURN.
  5458.  
  5459. RJM GFE WRITE REPLY BLOCK
  5460. CWD ES
  5461. LJM SFMX RETURN
  5462.  
  5463. GLA2 LDN 3-1 SET POINTER TO FWA-1 OF FIRST LID ENTRY
  5464. STD FI
  5465. GLA3 RJM RLE READ LID ENTRY
  5466. NJN GLA1 IF NO MATCHING LIDS FOR THIS PID
  5467. LDD CN+2
  5468. SHN 21-13
  5469. PJN GLA3.3 IF LID NOT ENABLED
  5470. LDD ES+1 SET ENABLED PID/LID FLAG
  5471. SCN 10
  5472. LMN 10
  5473. STD ES+1
  5474. GLA3.3 LDD CN+2
  5475. SHN 21-12
  5476. MJN GLA3.5 IF STORE/FORWARD
  5477. LDD FS+1
  5478. SHN 21-3
  5479. PJN GLA4 IF NO PRE-VALIDATION ON PID
  5480. UJN GLA3.7 SET PRE-VALIDATION FLAG
  5481.  
  5482. GLA3.5 SHN 21-11+12-21
  5483. PJN GLA4 IF NO PRE-VALIDATION ON LID
  5484. GLA3.7 LDD ES+1 SET PRE-VALIDATION FLAG
  5485. SCN 4
  5486. LMN 4
  5487. STD ES+1
  5488. GLA4 LDD FS+1
  5489. SHN 21-5
  5490. MJN GLA7 IF HOST
  5491. LDD CN+2
  5492. SHN 21-12
  5493. MJN GLA5 IF STORE/FORWARD
  5494. LDD ES+1 SET *L* FLAG
  5495. SCN 20
  5496. LMN 20
  5497. STD ES+1
  5498. UJN GLA10 CHECK FOR ENABLED NETWORKS
  5499.  
  5500. GLA5 LDD ES+1 SET *SL* FLAG
  5501. SCN 1
  5502. LMN 1
  5503. STD ES+1
  5504. GLA6 LJM GLA3 PROCESS NEXT LID
  5505.  
  5506. GLA7 LDD CN+2
  5507. SHN 21-12
  5508. MJN GLA8 IF STORE/FORWARD
  5509. LDD ES+1 SET *H* FLAG
  5510. SCN 40
  5511. LMN 40
  5512. UJN GLA9 UPDATE ATTRIBUTES FIELD
  5513.  
  5514. GLA8 LDD ES+1 SET *SH* FLAG
  5515. SCN 2
  5516. LMN 2
  5517. GLA9 STD ES+1
  5518. LDD CN+2
  5519. SHN 21-10
  5520. PJN GLA10 IF LOOPBACK FLAG NOT SET
  5521. LDD ES+2 SET *B* FLAG
  5522. LPC 3777
  5523. LMC 4000
  5524. STD ES+2
  5525.  
  5526. * CHECK FOR ENABLED NETWORKS.
  5527.  
  5528. GLA10 LDD CN+2 CHECK FOR STORE/FORWARD ATTRIBUTE
  5529. SHN 21-12
  5530. MJN GLA6 IF STORE/FORWARD
  5531. LDD FS+4 CHECK FOR *NAM* ENABLED
  5532. LPN 17
  5533. LMK /NTS/ISV
  5534. NJN GLA11 IF *NAM* NOT AVAILABLE
  5535. LDD ES+3 SET *NAM* ENABLED FLAG
  5536. SHN -6+22
  5537. SCN NANS
  5538. LMN NANS
  5539. SHN 6
  5540. STD ES+3
  5541. GLA11 LDD FS+4 CHECK FOR *RHF* ENABLED
  5542. SHN 0-4
  5543. LPN 17
  5544. LMK /NTS/ISV
  5545. NJN GLA12 IF *RHF* NOT AVAILABLE
  5546. LDD ES+3 SET *RHF* ENABLED FLAG
  5547. SHN -6+22
  5548. SCN RHNS
  5549. LMN RHNS
  5550. SHN 6
  5551. STD ES+3
  5552. GLA12 LDD FS+4 CHECK FOR *SSF* ENABLED
  5553. SHN 0-10
  5554. LMK /NTS/ISV
  5555. NJN GLA13 IF *SSF* NOT AVAILABLE
  5556. LDD ES+3 SET *SSF* ENABLED FLAG
  5557. SHN -6+22
  5558. SCN SSNS
  5559. LMN SSNS
  5560. SHN 6
  5561. STD ES+3
  5562. GLA13 LJM GLA3 PROCESS NEXT LID
  5563. GLCF SPACE 4,40
  5564. *** GLCF - GET LID CONFIGURATION.
  5565. *
  5566. * *GLCF* RETURNS MULTIPLE ENTRIES, WHERE EACH ENTRY CONSISTS
  5567. * OF THE LID ATTRIBUTES, THE ENABLED PID, ITS ATTRIBUTES, AND
  5568. * THE VARIOUS NETWORK STATUSES ASSOCIATED WITH THAT PID. SEE
  5569. * *PPCOM* FOR THE FORMAT OF THE LDT, THE CONTENTS OF THE
  5570. * ATTRIBUTES FIELD, AND THE CONTENTS OF THE NETWORK STATUS
  5571. * FIELD.
  5572. *
  5573. * ENTRY -
  5574. *T FET+0 12/WC,30/0,8/RC,9/0,1/1
  5575. *T 18/LID,42/
  5576. *T 60/
  5577. *T .
  5578. *T .
  5579. *T .
  5580. *T 60/
  5581. * WC = WORD COUNT (INCLUDING TWO HEADER WORDS) OF THE
  5582. * AVAILABLE REPLY BLOCK SIZE.
  5583. * RC = RESPONSE CODE.
  5584. * LID = THREE CHARACTER ALPHANUMERIC LOGICAL ID.
  5585. *
  5586. * EXIT -
  5587. *T FET+0 60/ UNCHANGED
  5588. *T 18/LID, 30/, 12/NP
  5589. *T 18/PID1, 1/S, 1/B, 6/, 10/RFI, 12/, 12/NW
  5590. *T .
  5591. *T .
  5592. *T .
  5593. *T 18/PIDN, 1/S, 1/B, 6/, 10/RFI, 12/, 12/NW
  5594. * NP = NUMBER OF ENABLED PIDS FOUND IN LDT THAT DEFINE
  5595. * THIS LID. NOTE THAT IF THIS NUMBER EXCEEDS (WC)-2,
  5596. * A *BUFFER TOO SMALL* ERROR WILL BE RETURNED TO THE
  5597. * CALLER.
  5598. * PIDI = THREE CHARACTER ALPHANUMERIC ENABLED PHYSICAL
  5599. * ID.
  5600. * S = STORE AND FORWARD FLAG.
  5601. * B = LOOPBACK FLAG.
  5602. * RFI = RESERVED FOR INSTALLATION.
  5603. * NW = NETWORK STATUSES.
  5604.  
  5605.  
  5606. GLC11 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  5607.  
  5608. GLC ENTRY
  5609. LDD IR+3 CHECK REPLY BLOCK ADDRESS
  5610. SHN 14
  5611. LMD IR+4
  5612. SHN -6
  5613. SBD FL
  5614. PJN GLC11 IF ADDRESS BEYOND FL
  5615. RJM GFE GET REPLY BLOCK WORD COUNT
  5616. CRD CM
  5617. ADN 1 GET LID TO BE MATCHED
  5618. CRD ES
  5619. LDD IR+3 CHECK LWA OF REPLY BLOCK
  5620. SHN 14
  5621. LMD IR+4
  5622. ADD CM
  5623. SHN -6
  5624. SBD FL
  5625. PJN GLC11 IF LWA OUT OF RANGE
  5626. LDD CM SAVE REPLY BLOCK WORD COUNT
  5627. SBN 2 DO NOT COUNT HEADER WORDS
  5628. STD T7
  5629. ZJN GLC1 IF NO REPLY BLOCK LENGTH SPECIFIED
  5630. PJN GLC2 IF REPLY BLOCK LENGTH SPECIFIED
  5631. GLC1 ERROR /ERR/LTL RETURN BUFFER TOO SMALL
  5632.  
  5633. GLC1.5 ERROR /ERR/LNL LID NOT LEGAL
  5634.  
  5635. GLC2 LDD ES CHECK LID
  5636. ZJN GLC1.5 IF LID IS INCORRECT
  5637. LDD ES+1 ENSURE PROPER FORMAT ON LID
  5638. SCN 77
  5639. ZJN GLC1.5 IF LID IS INCORRECT
  5640. STD ES+1
  5641. LDN 1 INITIALIZE TABLE OFFSET
  5642. STD T6
  5643. LDK LIDP GET FWA OF LDT
  5644. CRD T1
  5645. LDD T1 GET LDT HEADER
  5646. SHN 14
  5647. LMD T2
  5648. CRD CM
  5649. LDN 0 INITIALIZE NUMBER OF PIDS RETURNED
  5650. STD ES+4
  5651.  
  5652. * CHECK NEXT PID IN THE LDT.
  5653.  
  5654. GLC3 LDD CM+4
  5655. NJN GLC4 IF MORE PIDS TO CHECK
  5656. LJM GLC10 FINISH PROCESSING
  5657.  
  5658. GLC4 SOD CM+4 DECREMENT REMAINING PID COUNT
  5659. LDD T1 GET FIRST WORD OF PID ENTRY
  5660. SHN 14
  5661. LMD T2
  5662. ADD T6
  5663. CRD FS
  5664. ADN 1 SECOND WORD OF PID ENTRY
  5665. CRD FN
  5666. ADN 1 THIRD WORD OF PID ENTRY
  5667. CRD CN
  5668. LDD FS+1
  5669. SHN 21-4
  5670. MJN GLC6 IF PID ENABLED
  5671. GLC5 LDD FN+4 POINT TO NEXT PID
  5672. RAD T6
  5673. UJN GLC3 CHECK NEXT PID
  5674.  
  5675. GLC6 LDN 3-1 FWA-1 OF FIRST LID ENTRY
  5676. STD ES+2
  5677. LDD CN+4 NUMBER OF LID SLOTS
  5678. STD T3
  5679.  
  5680. * CHECK NEXT LID IN THE LDT.
  5681.  
  5682. GLC7 AOD ES+2 POINT TO NEXT LID ENTRY
  5683. SOD T3 DECREMENT LID COUNT
  5684. MJN GLC5 IF NO MORE LIDS FOR THIS PID
  5685. LDD T1 READ TABLE ENTRY
  5686. SHN 14
  5687. LMD T2
  5688. ADD T6
  5689. ADD ES+2
  5690. CRD CN
  5691.  
  5692. * COMPARE LID TO LID ENTRY IN THE LDT.
  5693.  
  5694. LDD ES
  5695. LMD CN
  5696. NJN GLC7 IF LIDS DO NOT MATCH
  5697. LDD ES+1
  5698. LMD CN+1
  5699. NJN GLC7 IF LIDS DO NOT MATCH
  5700. LDD CN+2
  5701. SHN 21-13
  5702. PJN GLC7 IF LID NOT ENABLED
  5703.  
  5704. * RETURN LID-S ATTRIBUTES ALONG WITH PID INFORMATION.
  5705.  
  5706. SHN 5-12-21+13
  5707. LPN 50 SAVE *S* AND *B* FLAGS
  5708. STD CN+2
  5709. LPN 10
  5710. SHN 1 POSITION *B* FLAG
  5711. RAD CN+2
  5712. SCN 10 CLEAR OLD *B* FLAG
  5713. STD CN+2
  5714. LDD FS+1
  5715. SCN 77
  5716. LMD CN+2 MERGE FLAGS INTO REPLY WORD
  5717. STD FS+1
  5718. LDN 0 CLEAR REMAINING FIELDS
  5719. STD FS+2
  5720. STD FS+3
  5721. SOD T7 DECREMENT SIZE OF REPLY BLOCK
  5722. GLCA EQU *-1
  5723. * UJN GLC9 (BYPASS IF REPLY BLOCK TOO SMALL)
  5724. PJN GLC8 IF ROOM LEFT IN REPLY BLOCK
  5725. AOM GLCB INDICATE REPLY BLOCK TOO SMALL
  5726. ISTORE GLCA,(UJN GLC9) BYPASS LOGIC WHEN REPLY BLOCK FULL
  5727. UJN GLC9 INCREMENT PID COUNT
  5728.  
  5729. GLC8 RJM GFE WRITE RETURN INFORMATION
  5730. ADN 2 ALLOW FOR HEADER WORDS
  5731. ADD ES+4
  5732. CWD FS
  5733. GLC9 AOD ES+4 INCREMENT ENABLED PID COUNT
  5734. LJM GLC7 PROCESS NEXT LID
  5735.  
  5736. GLC10 LDN 0 CLEAR FIELD
  5737. STD ES+2
  5738. RJM GFE RETURN PID COUNT
  5739. ADN 1
  5740. CWD ES
  5741. LDD ES+4
  5742. ZJN GLC12 IF NO MATCHING LIDS FOUND
  5743. LDN 0
  5744. GLCB EQU *-1
  5745. * LDN 1 (REPLY BUFFER TOO SMALL)
  5746. ZJP SFMX IF ENOUGH ROOM IN REPLY BUFFER
  5747. LJM GLC1 REPLY BUFFER TOO SMALL
  5748.  
  5749. GLC12 ERROR /ERR/LNL UNKNOWN LID
  5750. GLP SPACE 4,20
  5751. *** GLPF - GET PID ATTRIBUTES.
  5752. *
  5753. * *GLPF* RETURNS THE THREE PID WORDS ASSOCIATED WITH THE SPECI-
  5754. * FIED PID TO THE REPLY BUFFER. SEE *PPCOM* FOR THE FORMAT OF
  5755. * THE THREE PID WORDS.
  5756. *
  5757. * ENTRY -
  5758. *T FET+0 18/PID,24/0,8/0,9/0,1/0
  5759. *T, 60/0
  5760. *T, 60/0
  5761. *T, 60/0
  5762. * PID = PID TO BE MATCHED.
  5763. *
  5764. * EXIT -
  5765. *T FET+0 18/PID,24/0,8/RC,9/0,1/1
  5766. *T, 60/WORD 1 OF PID ENTRY
  5767. *T, 60/WORD 2 OF PID ENTRY
  5768. *T, 60/WORD 3 OF PID ENTRY
  5769.  
  5770.  
  5771. GLP2 ABORT /MESS/ERAE * SFM - ARGUMENT ERROR.*
  5772.  
  5773. GLP ENTRY ENTRY
  5774. LDD IR+3 CHECK REPLY BLOCK ADDRESS
  5775. SHN 14
  5776. LMD IR+4
  5777. SHN -6
  5778. SBD FL
  5779. PJN GLP2 IF ADDRESS OUT OF RANGE
  5780. LDD IR+3 CHECK REPLY BLOCK LWA
  5781. SHN 14
  5782. LMD IR+4
  5783. ADN 4
  5784. SHN -6
  5785. SBD FL
  5786. PJN GLP2 IF ADDRESS OUT OF RANGE
  5787. RJM GFE GET SEARCH PID
  5788. CRD FN
  5789. LDD FN+1 ENSURE 3 CHARACTER PID
  5790. SCN 77
  5791. STD FN+1
  5792. RJM FMP FIND MATCHING PID IN LID TABLE
  5793. ZJN GLP1 IF NO MATCH FOUND
  5794. LDD T1 GET PID ENTRY
  5795. SHN 14
  5796. LMD T2
  5797. ADD T6
  5798. CRM GLPA,TR
  5799. RJM GFE WRITE PID INFORMATION
  5800. ADN 1
  5801. CWM GLPA,TR
  5802. LJM SFMX RETURN
  5803.  
  5804. GLP1 ERROR /ERR/LNL * PID/LID NOT LEGAL*
  5805.  
  5806. GLPA BSS 3*5 PID BUFFER
  5807. GLTF SPACE 4,10
  5808. *** GLTF - GET LID TABLE.
  5809. *
  5810. * *GLTF* RETURNS THE ENTIRE LID TABLE (INCLUDING THE HEADER)
  5811. * TO THE BUFFER ASSOCIATED WITH THE USER-S FET. THE FET
  5812. * POINTERS ARE UPDATED TO REFLECT THE PRESENCE OF THIS
  5813. * DATA IN THE BUFFER. SEE *PPCOM* FOR THE FORMAT OF
  5814. * THE LID TABLE. IF THE LID TABLE IS TOO LONG FOR THE BUFFER,
  5815. * ERROR CODE 6 IS RETURNED, AND FET+5, BYTE 0 CONTAINS THE
  5816. * LENGTH OF THE LID TABLE.
  5817.  
  5818.  
  5819. GLT ENTRY
  5820. LDK LIDP FWA OF LDT
  5821. CRD ES
  5822. LDD ES INITIALIZE LDT ADDRESS
  5823. RAM GLTA
  5824. LDD ES+1
  5825. STM GLTA+1
  5826. LDD ES GET LENGTH OF LDT
  5827. SHN 14
  5828. LMD ES+1
  5829. CRD ES
  5830. RJM GFE READ FET POINTERS
  5831. ADN 1
  5832. CRD CM *FIRST*
  5833. ADN 3
  5834. CRD CN *LIMIT*
  5835. LDD CM+3
  5836. LPN 77
  5837. STD CM+3
  5838. LDD CN+3
  5839. LPN 77
  5840. STD CN+3
  5841. SHN 14
  5842. LMD CN+4
  5843. SHN -6
  5844. SBD FL
  5845. PJN GLT1 IF *LIMIT* OUT OF RANGE
  5846. LDD CN+3
  5847. SBD CM+3
  5848. MJN GLT1 IF *FIRST* NOT WITHIN *LIMIT*
  5849. SHN 14
  5850. ADD CN+4
  5851. SBD CM+4
  5852. SBN 1
  5853. PJN GLT2 IF *FIRST* LESS THAN *LIMIT*
  5854. GLT1 ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  5855.  
  5856. GLT2 LDN ZERL CALCULATE NEW VALUE OF *IN*
  5857. CRD FN
  5858. LDD CM+3
  5859. SHN 14
  5860. LMD CM+4
  5861. ADD ES LENGTH OF TABLE
  5862. STD FN+4
  5863. SHN -14
  5864. STD FN+3
  5865. LDD CN+3 CHECK IF ENOUGH SPACE IN BUFFER
  5866. SBD FN+3
  5867. MJN GLT3 IF NO SPACE IN BUFFER
  5868. SHN 14
  5869. ADD CN+4
  5870. SBD FN+4
  5871. SBN 1
  5872. PJN GLT4 IF ENOUGH SPACE IN BUFFER
  5873. GLT3 RJM GFE RETURN LID TABLE LENGTH
  5874. ADN 5
  5875. CWD ES
  5876. ERROR /ERR/LTL EC=6, LID TABLE TOO LONG FOR BUFFER
  5877.  
  5878. GLT4 LDN 0 INITIALIZE TABLE OFFSET
  5879. STD T2
  5880. GLT5 LDD ES LDT LENGTH
  5881. NJN GLT6 IF LDT DEFINED
  5882. LDN 1 RETURN LDT HEADER
  5883. STD ES
  5884. GLT6 STD T1
  5885. ADC -LIDTL
  5886. MJN GLT7 IF REMAINDER OF LDT FITS IN BUFFER
  5887. ZJN GLT7 IF REMAINDER OF LDT FITS IN BUFFER
  5888. LDK LIDTL PROCESS ONE BUFFER OF DATA
  5889. STD T1
  5890. GLT7 LDC ** READ LDT INTO BUFFER
  5891. GLTA EQU *-2
  5892. CRM LIDT,T1
  5893. LDD CM+3 RETURN LDT TO USER-S FL
  5894. SHN 6
  5895. ADD RA
  5896. SHN 6
  5897. ADD CM+4
  5898. ADD T2
  5899. CWM LIDT,T1
  5900. LDD ES
  5901. SBD T1
  5902. ZJN GLT8 IF ENTIRE LDT WRITTEN TO USER-S FL
  5903. STD ES
  5904. LDD T1 UPDATE LDT ADDRESS
  5905. RAM GLTA+1
  5906. SHN -14
  5907. RAM GLTA
  5908. LDD T1 UPDATE OFFSET TO USER-S FL
  5909. RAD T2
  5910. LJM GLT5 READ/WRITE THE LDT TO USER-S FL
  5911.  
  5912. GLT8 LDK ZERL RETURN *IN* AND *OUT* TO FET
  5913. CRD CN
  5914. LDD CM+3
  5915. STD CN+3
  5916. LDD CM+4
  5917. STD CN+4
  5918. RJM GFE
  5919. ADN 2
  5920. CWD FN
  5921. ADN 1
  5922. CWD CN
  5923. LJM SFMX COMPLETE *SFM* PROCESSING
  5924. INT SPACE 4,10
  5925. *** ILTF - INITIALIZE THE LDT.
  5926. *
  5927. * *ILTF* WRITES THE ENTIRE LDT (INCLUDING THE HEADER) FROM THE
  5928. * BUFFER ASSOCIATED WITH THE USER-S FET TO THE FWA OF THE
  5929. * TABLE, FOUND IN *LIDP*. SEE *PPCOM* FOR THE FORMAT OF THE
  5930. * LDT.
  5931.  
  5932.  
  5933. INT ENTRY
  5934. RJM ILT INTERLOCK THE LDT
  5935. RJM GFE READ LENGTH OF PARAMETER BLOCK
  5936. CRD FN
  5937.  
  5938. * TEST IF PARAMETER BLOCK LENGTH IS WITHIN FL.
  5939.  
  5940. LDD IR+3
  5941. SHN 14
  5942. LMD IR+4
  5943. ADD FN
  5944. ADN 1 INCLUDE PARAMETER BLOCK HEADER
  5945. SHN -6
  5946. SBD FL
  5947. MJN INT1 IF PARAMETER BLOCK WITHIN FL
  5948. RJM CLI CLEAR THE LDT INTERLOCK
  5949. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  5950.  
  5951. INT1 LDN 1 INITIALIZE PARAMETER BLOCK OFFSET
  5952. STD T2
  5953. LDK LIDP READ FWA OF LDT
  5954. CRD FS
  5955. LDD FS FWA OF LDT
  5956. RAM INTA
  5957. LDD FS+1
  5958. STM INTA+1
  5959.  
  5960. * ENSURE THE NEW TABLE FITS WITHIN LDT-S ALLOTTED SPACE.
  5961.  
  5962. LDD FN
  5963. ZJN INT2 IF NO PARAMETER BLOCK LENGTH SPECIFIED
  5964. SBD FS+2
  5965. MJN INT3 IF TABLE FITS WITHIN ALLOTTED SPACE
  5966. ZJN INT3 IF TABLE EXCEEDS ALLOTTED SPACE
  5967. INT2 RJM CLI CLEAR THE LDT INTERLOCK
  5968. ERROR /ERR/LTL RETURN INFORMATION TOO LARGE
  5969.  
  5970. * CALCULATE NUMBER OF CM WORDS TO READ/WRITE.
  5971.  
  5972. INT3 LDD FN REMAINING NUMBER OF CM WORDS TO PROCESS
  5973. STD T1
  5974. ADC -LIDTL
  5975. MJN INT4 IF PARAMETER BLOCK FITS IN PP BUFFER
  5976. ZJN INT4 IF PARAMETER BLOCK FITS IN PP BUFFER
  5977. LDK LIDTL PROCESS ONE BUFFER OF DATA
  5978. STD T1
  5979. INT4 RJM GFE CURRENT ADDRESS OF PARAMETER BLOCK
  5980. ADD T2
  5981. CRM LIDT,T1
  5982. LDC ** WRITE BUFFER TO LDT IN CM
  5983. INTA EQU *-2
  5984. CWM LIDT,T1
  5985. LDD FN
  5986. SBD T1
  5987. ZJN INT5 IF ENTIRE PARAMETER BLOCK PROCESSED
  5988. STD FN
  5989. LDD T1 INCREMENT ADDRESS FOR NEXT BLOCK OF DATA
  5990. RAM INTA+1
  5991. SHN -14
  5992. RAM INTA
  5993. LDD T1 INCREMENT PARAMETER BLOCK OFFSET
  5994. RAD T2
  5995. UJN INT3 PROCESS REMAINING PARAMETER BLOCK
  5996.  
  5997. INT5 RJM CLI CLEAR THE LDT INTERLOCK
  5998. LJM SFMX RETURN
  5999. SPT SPACE 4,10
  6000. ** SPTF - SET PID ATTRIBUTES.
  6001. *
  6002. * *SPTF* CAN PERFORM A NUMBER OF DIFFERENT TASKS DEPENDING UPON
  6003. * THE SUBFUNCTION ISSUED WITH THIS FUNCTION. SEE *COMCCMD* FOR
  6004. * THE ENTRY AND EXIT FORMATS FOR THE VARIOUS SUBFUNCTIONS.
  6005.  
  6006.  
  6007. SPT4 RJM CLI CLEAR THE INTERLOCK
  6008. ERROR /ERR/LNL LID/PID NOT LEGAL
  6009.  
  6010. SPT ENTRY
  6011. RJM ILT INTERLOCK THE LDT
  6012. LDK LIDP GET LDT ADDRESS
  6013. CRD FS
  6014. LDD FS+2
  6015. SBN 2
  6016. MJN SPT4 IF NO LDT DEFINED
  6017. RJM GFE
  6018. CRD FN
  6019. LDD FN+1 CHECK NUMBER OF PIDS
  6020. ZJN SPT2 IF NO PIDS
  6021. LDD FN VALIDATE SUBFUNCTION
  6022. SBN MXSP
  6023. MJN SPT1 IF VALID SUBFUNCTION
  6024. RJM CLI CLEAR THE LDT INTERLOCK
  6025. ERROR /ERR/IFC INCORRECT SUBFUNCTION CODE
  6026.  
  6027. * CHECK IF PARAMETER BLOCK IS WITHIN FL.
  6028.  
  6029. SPT1 LDD IR+3
  6030. SHN 14
  6031. LMD IR+4
  6032. ADD FN+1
  6033. SHN -6
  6034. SBD FL
  6035. PJN SPT2 IF PARAMETER BLOCK BEYOND FL
  6036. LDM TSPT,FN SET PROCESSOR ADDRESS
  6037. STM SPTA
  6038. RJM * PROCESS SUBFUNCTION
  6039. SPTA EQU *-1 (PROCESSOR ADDRESS)
  6040. RJM CLI CLEAR THE LDT INTERLOCK
  6041. LDM PERA
  6042. NJN SPT3 IF ERROR DETECTED IN PARAMETER BLOCK
  6043. LJM SFMX RETURN
  6044.  
  6045. SPT2 RJM CLI CLEAR THE LDT INTERLOCK
  6046. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  6047.  
  6048. SPT3 ERROR /ERR/CPB CHECK PARAMETER BLOCK FOR ERRORS
  6049. SPACE 4,10
  6050. * TABLE OF SUBFUNCTION PROCESSOR ADDRESSES.
  6051.  
  6052. TSPT INDEX
  6053. INDEX SPAF,SPA
  6054. INDEX SNSF,SNS
  6055. INDEX SMFF,SMF
  6056. INDEX ALDF,ALD
  6057. INDEX DLDF,DLD
  6058. INDEX SLTF,ALD
  6059. INDEX MXSP
  6060. TITLE SUBROUTINES.
  6061. ALD SPACE 4,15
  6062. ** ALD - ADD LID AND/OR SET NEW LID ATTRIBUTES.
  6063. *
  6064. * ENTRY (FN) = SUBFUNCTION TO BE PROCESSED.
  6065. * (FN+1) = NUMBER OF ENTRIES TO PROCESS.
  6066. *
  6067. * EXIT ALL PARAMETER BLOCK ENTRIES PROCESSED.
  6068. *
  6069. * USES ES+2, T3, CM - CM+4, FN - FN+4.
  6070. *
  6071. * CALLS FMP, GFE, RLE.
  6072. *
  6073. * MACROS PERR.
  6074.  
  6075.  
  6076. ALD SUBR ENTRY/EXIT
  6077. LDD FN
  6078. LMK ALDF
  6079. ZJN ALD1 IF ADDING LID AND ATTRIBUTES
  6080.  
  6081. * ONLY THE LID ATTRIBUTES ARE BEING CHANGED. SOME BRANCH
  6082. * ADDRESSES AND SOME FLAGS MUST BE ALTERED TO ALLOW ONLY
  6083. * CHANGING THE ATTRIBUTES.
  6084.  
  6085. LDC ZJNI+ALD7-ALDA CHANGE BRANCH ADDRESS
  6086. STM ALDA
  6087. LDC UJNI+77-ALDB+ALD4 CHANGE BRANCH ADDRESS
  6088. STM ALDB
  6089. SOM ALDC
  6090. LDN 0 INITIALIZE PARAMETER BLOCK INDEX
  6091. ALD1 STD T3
  6092. LDD FN+1 NUMBER OF PARAMETER BLOCK ENTRIES
  6093. STD ES+2
  6094. ALD2 AOD T3 INCREMENT PARAMETER BLOCK INDEX
  6095. SBD ES+2
  6096. MJN ALD3 IF MORE ENTRIES TO PROCESS
  6097. NJN ALDX IF ALL ENTRIES PROCESSED
  6098. ALD3 RJM GFE READ PARAMETER BLOCK ENTRY
  6099. ADD T3
  6100. CRD FN
  6101. RJM FMP FIND MATCHING PID
  6102. NJN ALD6 IF MATCH
  6103. ALD4 PERR /ERR/LNL PID/LID NOT LEGAL
  6104. ALD5 UJN ALD2 PROCESS NEXT ENTRY
  6105.  
  6106. ALD6 LDD FN+1 SET UP LID TO BE MATCHED
  6107. LPN 77
  6108. SHN 14
  6109. LMD FN+2
  6110. SHN 14
  6111. STD ES
  6112. SHN -6
  6113. SCN 77
  6114. STD ES+1
  6115. LDN 3-1 INDEX - 1 TO FIRST LID
  6116. STD FI
  6117. RJM RLE READ LID ENTRY
  6118. ZJN ALD4 IF LIDS MATCH
  6119. * ZJN ALD7 IF SETTING ATTRIBUTES ONLY
  6120. ALDA EQU *-1
  6121. PJN ALD8 IF HOLE FOUND
  6122. * UJN ALD4 PID/LID NOT LEGAL (SETTING ATTRIBUTES)
  6123. ALDB EQU *-1
  6124. PERR /ERR/LTO LID TABLE OVERFLOW
  6125. UJN ALD5 PROCESS NEXT ENTRY
  6126.  
  6127. ALD7 LDD T1 SAVE LID ADDRESS
  6128. SHN 14
  6129. LMD T2
  6130. ADD T6
  6131. ADD FI
  6132. STD T5
  6133. SHN -14
  6134. STD T4
  6135. ALD8 LDD T4 GET LDT ENTRY
  6136. SHN 14
  6137. LMD T5
  6138. CRD CM
  6139.  
  6140. * SET NEW LID ATTRIBUTES.
  6141.  
  6142. LDD FN+3 CHECK ATTRIBUTES
  6143. LPC 177
  6144. ZJN ALD9 IF VALID ATTRIBUTES
  6145. PERR /ERR/ILA INCORRECT LID ATTRIBUTE
  6146. UJN ALD11 PROCESS NEXT ENTRY
  6147.  
  6148. ALD9 LDD FN+3
  6149. STD CM+2
  6150. LDN 1
  6151. * LDN 0 (SETTING NEW ATTRIBUTES ONLY)
  6152. ALDC EQU *-1
  6153. ZJN ALD10 IF SETTING NEW ATTRIBUTES ONLY
  6154. LDD ES INSERT LID
  6155. STD CM
  6156. LDD ES+1
  6157. STD CM+1
  6158. ALD10 LDD T4 REWRITE LDT ENTRY
  6159. SHN 14
  6160. LMD T5
  6161. CWD CM
  6162. PERR /ERR/CMP REQUEST COMPLETE
  6163. ALD11 LJM ALD2 PROCESS NEXT ENTRY
  6164.  
  6165. ERRNG 37+ALDA-ALD7 ERROR IF OUT OF RANGE
  6166. ERRNG 37+ALD4-ALDB ERROR IF OUT OF RANGE
  6167. CLI SPACE 4,10
  6168. ** CLI - CLEAR LID TABLE INTERLOCK.
  6169. *
  6170. * USES FS - FS+4.
  6171.  
  6172.  
  6173. CLI SUBR ENTRY/EXIT
  6174. LDK LIDP READ LDT POINTER
  6175. CRD FS
  6176. LDD FS+4 CLEAR INTERLOCK BIT
  6177. SCN 1
  6178. STD FS+4
  6179. LDC LIDP REWRITE POINTER WORD
  6180. CWD FS
  6181. UJN CLIX RETURN
  6182. DLD SPACE 4,15
  6183. ** DLD - DELETE LID.
  6184. *
  6185. * ENTRY (FN+1) = NUMBER OF ENTRIES TO PROCESS.
  6186. *
  6187. * EXIT LID DELETED FROM LDT, IF MATCH FOUND.
  6188. *
  6189. * USES T3, CN - CN+2, ES - ES+2, FN - FN+4.
  6190. *
  6191. * CALLS FMP, GFE, RLE.
  6192. *
  6193. * MACROS PERR.
  6194.  
  6195.  
  6196. DLD SUBR ENTRY/EXIT
  6197. LDN 0 INITIALIZE PARAMETER BLOCK INDEX
  6198. STD T3
  6199. LDD FN+1 NUMBER OF PARAMETER BLOCK ENTRIES
  6200. STD ES+2
  6201. DLD1 AOD T3 INCREMENT PARAMETER BLOCK INDEX
  6202. SBD ES+2
  6203. MJN DLD2 IF MORE ENTRIES TO PROCESS
  6204. NJN DLDX IF ALL ENTRIES PROCESSED
  6205. DLD2 RJM GFE READ PARAMETER BLOCK ENTRY
  6206. ADD T3
  6207. CRD FN
  6208. RJM FMP FIND MATCHING PID
  6209. NJN DLD4 IF MATCH
  6210. PERR /ERR/LNL PID/LID NOT LEGAL
  6211. DLD3 UJN DLD1 PROCESS NEXT ENTRY
  6212.  
  6213. DLD4 LDD FN+1 SET UP LID TO BE MATCHED
  6214. LPN 77
  6215. SHN 14
  6216. LMD FN+2
  6217. SHN 14
  6218. STD ES
  6219. SHN -6
  6220. SCN 77
  6221. STD ES+1
  6222. LDN 3-1 INDEX - 1 TO FIRST LID
  6223. STD FI
  6224. RJM RLE READ LID ENTRY
  6225. ZJN DLD6 IF LIDS MATCH
  6226. PERR /ERR/LNL PID/LID NOT LEGAL
  6227. DLD5 UJN DLD3 PROCESS NEXT ENTRY
  6228.  
  6229. DLD6 LDK ZERL CLEAR LID ENTRY
  6230. CRD CN
  6231. LDD T1 UPDATE LDT ENTRY
  6232. SHN 14
  6233. LMD T2
  6234. ADD T6
  6235. ADD FI
  6236. CWD CN
  6237. PERR /ERR/CMP REQUEST COMPLETE
  6238. UJN DLD3 PROCESS NEXT ENTRY
  6239. FMP SPACE 4,15
  6240. ** FMP - FIND MATCHING PID.
  6241. *
  6242. * ENTRY (FN - FN+1) = PID BEING MATCHED.
  6243. *
  6244. * EXIT (A) = 0, IF NO MATCH FOUND.
  6245. * (A) .NE. 0, IF MATCH FOUND.
  6246. * (T1 - T2) = FWA OF LDT.
  6247. * (T6) = TABLE OFFSET OF MATCHING PID, IF ONE FOUND.
  6248. *
  6249. * USES T1, T2, T6, CM - CM+4, CN - CN+4, FS - FS+4.
  6250. *
  6251. * CALLS CLI.
  6252. *
  6253. * MACROS ERROR.
  6254.  
  6255.  
  6256. FMP SUBR ENTRY/EXIT
  6257. LDK LIDP GET LDT ADDRESS
  6258. CRD CM
  6259. LDD CM+1 SAVE LDT ADDRESS
  6260. STD T2
  6261. LDD CM
  6262. STD T1
  6263. SHN 14 READ LDT HEADER
  6264. LMD T2
  6265. CRD CM
  6266. LDN 1 INITIAL LID TABLE POINTER OFFSET
  6267. STD T6
  6268. LDD CM+4
  6269. NJN FMP1 IF PIDS DEFINED IN LDT
  6270. RJM CLI CLEAR THE LDT INTERLOCK
  6271. ERROR /ERR/LNL LID/PID NOT LEGAL
  6272.  
  6273. FMP1 LDD T1 GET PID
  6274. SHN 14
  6275. LMD T2
  6276. ADD T6
  6277. CRD CM
  6278. ADN 1 GET SECOND WORD OF PID
  6279. CRD FS
  6280. ADN 1 GET THIRD WORD OF PID
  6281. CRD CN
  6282.  
  6283. * CHECK FOR MATCHING PIDS.
  6284.  
  6285. LDD CM+1
  6286. LMD FN+1
  6287. SCN 77
  6288. SHN 6
  6289. ADD CM
  6290. LMD FN
  6291. NJN FMP3 IF NO MATCH
  6292. LDN 1 INDICATE MATCH FOUND
  6293. FMP2 LJM FMPX RETURN
  6294.  
  6295. FMP3 LDD FS+4
  6296. ZJN FMP2 IF ALL PIDS SEARCHED
  6297. RAD T6 POINT TO NEXT PID
  6298. UJN FMP1 READ NEXT PID ENTRY
  6299. ILT SPACE 4,10
  6300. ** ILT - INTERLOCK LID TABLE.
  6301. *
  6302. * EXIT LID TABLE INTERLOCKED.
  6303. *
  6304. * USES CM - CM+4.
  6305. *
  6306. * MACROS ABORT, DELAY, MONITOR, PAUSE.
  6307.  
  6308.  
  6309. ILT SUBR ENTRY/EXIT
  6310. ILT1 LDN ZERL INTERLOCK LID TABLE
  6311. CRD CM
  6312. ADK LIDP-ZERL FWA OF LDT
  6313. STD CM+4
  6314. MONITOR UTEM
  6315. LDD CM+1
  6316. ZJN ILTX IF TABLE INTERLOCKED
  6317. DELAY
  6318. PAUSE
  6319. LDD CM+1
  6320. ZJN ILT1 IF NO ERROR FLAG
  6321. ABORT /MESS/ERAB *SFM ABORTED*
  6322. PER SPACE 4,10
  6323. ** PER - PROCESS PARAMETER BLOCK ENTRY ERROR.
  6324. *
  6325. * ENTRY (A) = ERROR CODE.
  6326. * (T3) = PARAMETER BLOCK ENTRY INDEX.
  6327. *
  6328. * EXIT ERROR CODE PLACED IN PARAMETER BLOCK ENTRY AND WORD
  6329. * REWRITTEN TO USER-S FL.
  6330. * (PERA) = ERROR CODE, IF ERROR DETECTED.
  6331. *
  6332. * USES FN+4.
  6333. *
  6334. * CALLS GFE.
  6335.  
  6336.  
  6337. PER SUBR ENTRY/EXIT
  6338. STD FN+4
  6339. LMK /ERR/CMP
  6340. ZJN PER1 IF NO ERROR DETECTED
  6341. STM PERA SAVE ERROR CODE
  6342. PER1 RJM GFE REWRITE PARAMETER BLOCK ENTRY
  6343. ADD T3 ADDRESS INDEX
  6344. CWD FN
  6345. UJN PERX RETURN
  6346.  
  6347. PERA CON 0 ERROR CODE
  6348. RLE SPACE 4,15
  6349. ** RLE - READ LID ENTRY.
  6350. *
  6351. * ENTRY (ES - ES+1) = LID TO BE MATCHED.
  6352. * (FI) = INDEX - 1 TO NEXT LID.
  6353. * (T1 - T2) = FWA OF LDT.
  6354. * (T6) = LDT INDEX OF FIRST WORD OF PID BEING PROCESSED.
  6355. * (CN+4) = NUMBER OF LIDS IN THIS PID.
  6356. *
  6357. * EXIT (A) = 0, IF LIDS MATCH.
  6358. * .GT. 0, IF HOLE FOUND.
  6359. * .LT. 0, IF NO HOLE/MATCHING LID FOUND.
  6360. * (T4 - T5) = LDT ADDRESS, IF HOLE FOUND.
  6361. *
  6362. * USES FI, T0, T4, T5, T6, CN - CN+4.
  6363.  
  6364.  
  6365. RLE3 LDD T4
  6366. NJN RLEX IF HOLE FOUND
  6367. LCN 1 INDICATE NO HOLE/MATCHING LID FOUND
  6368.  
  6369. RLE SUBR ENTRY/EXIT
  6370. LDD CN+4 NUMBER OF LID SLOTS
  6371. STD T0
  6372. LDN 0 INITIALIZE FIRST HOLE POINTER
  6373. STD T4
  6374. STD T5
  6375. RLE1 AOD FI SET INDEX TO NEXT LID ENTRY
  6376. SOD T0 DECREMENT LID COUNT
  6377. MJN RLE3 IF NO MORE LID SLOTS FOR THIS PID
  6378. LDD T1 READ TABLE ENTRY
  6379. SHN 14
  6380. LMD T2
  6381. ADD T6
  6382. ADD FI
  6383. CRD CN
  6384.  
  6385. * COMPARE LID TO LID ENTRY IN LDT.
  6386.  
  6387. LDD CN
  6388. ZJN RLE2 IF NO LID PRESENT
  6389. LMD ES
  6390. NJN RLE1 IF NO MATCH
  6391. LDD CN+1
  6392. LMD ES+1
  6393. SCN 77
  6394. ZJN RLEX IF MATCH
  6395. UJN RLE1 CHECK NEXT LID ENTRY
  6396.  
  6397. * PROCESS HOLE IN THE LDT.
  6398.  
  6399. RLE2 LDD T4
  6400. NJN RLE1 IF PRIOR HOLE FOUND
  6401. LDD T1 SAVE POINTERS TO FIRST HOLE
  6402. SHN 14
  6403. LMD T2
  6404. ADD T6
  6405. ADD FI
  6406. STD T5
  6407. SHN -14
  6408. STD T4
  6409. UJN RLE1 CHECK NEXT LID ENTRY
  6410. RPE SPACE 4,15
  6411. ** RPE - READ PID ENTRY.
  6412. *
  6413. * ENTRY (T1 - T2) = FWA OF LDT.
  6414. * (T6) = LDT INDEX OF PID CURRENTLY BEING PROCESSED.
  6415. * (CM+4) = REMAINING NUMBER OF PIDS TO PROCESS.
  6416. *
  6417. * EXIT (A) = 0, IF ALL PIDS HAVE BEEN PROCESSED.
  6418. * (A) .LT. 0, IF ENABLED PID FOUND.
  6419. * (FS - FS+4) = FIRST WORD OF PID ENTRY.
  6420. * (FN - FN+4) = SECOND WORD OF PID ENTRY.
  6421. * (CN - CN+4) = THIRD WORD OF PID ENTRY.
  6422. *
  6423. * USES CM+4, T6, CN - CN+4, FN - FN+4, FS - FS+4.
  6424.  
  6425.  
  6426. RPE SUBR ENTRY/EXIT
  6427. RPE1 LDD CM+4
  6428. ZJN RPEX IF ALL PIDS PROCESSED
  6429. SOD CM+4 DECREMENT REMAINING PID COUNT
  6430. LDD T1 GET FIRST WORD OF PID ENTRY
  6431. SHN 14
  6432. LMD T2
  6433. ADD T6
  6434. CRD FS
  6435. ADN 1 GET SECOND WORD OF PID ENTRY
  6436. CRD FN
  6437. ADN 1 GET THIRD WORD OF PID ENTRY
  6438. CRD CN
  6439. LDD FS+1
  6440. SHN 21-4
  6441. MJN RPEX IF PID ENABLED
  6442. LDD FN+4 POINT TO NEXT PID
  6443. RAD T6
  6444. UJN RPE1 CHECK NEXT PID
  6445. SMF SPACE 4,10
  6446. ** SMF - SET MAINFRAME DESCRIPTOR.
  6447. *
  6448. * ENTRY (FN+1) = NUMBER OF ENTRIES TO PROCESS.
  6449. *
  6450. * EXIT MAINFRAME DESCRIPTION UPDATED IN PID ENTRY IN THE LDT.
  6451. *
  6452. * USES T0, T3, FN - FN+4, FS - FS+4.
  6453. *
  6454. * CALLS FMP, GFE.
  6455. *
  6456. * MACROS PERR.
  6457.  
  6458.  
  6459. SMF SUBR ENTRY/EXIT
  6460. LDN 0 INITIALIZE PARAMETER BLOCK OFFSET
  6461. STD T3
  6462. LDD FN+1 NUMBER OF PARAMETER BLOCK ENTRIES
  6463. STD T0
  6464. SMF1 AOD T3 INCREMENT PARAMETER BLOCK OFFSET
  6465. SBD T0
  6466. MJN SMF2 IF MORE ENTRIES TO PROCESS
  6467. NJN SMFX IF ALL ENTRIES PROCESSED
  6468. SMF2 RJM GFE READ PARAMETER BLOCK ENTRY
  6469. ADD T3
  6470. CRD FN
  6471. RJM FMP FIND MATCHING PID
  6472. NJN SMF3 IF MATCH
  6473. PERR /ERR/LNL PID/LID NOT LEGAL
  6474. UJN SMF1 PROCESS NEXT ENTRY
  6475.  
  6476. * WRITE NEW MAINFRAME DESCRIPTION TO THE LDT.
  6477.  
  6478. SMF3 LDD FN+2
  6479. SCN 77
  6480. SHN 6
  6481. LMD FN+1
  6482. SHN 6
  6483. STD FS
  6484. LDD FN+2
  6485. LPN 77
  6486. SHN 14
  6487. LMD FN+3
  6488. SHN -6
  6489. STD FS+1
  6490. LDD FN+4
  6491. SCN 77
  6492. SHN 6
  6493. LMD FN+3
  6494. SHN 6
  6495. STD FS+2
  6496. LDD FS+3
  6497. LPN 77
  6498. STD FS+3
  6499. LDD FN+4
  6500. SHN 6
  6501. RAD FS+3
  6502. LDD T1 PID ADDRESS IN LDT
  6503. SHN 14
  6504. LMD T2
  6505. ADD T6
  6506. ADN 1
  6507. CWD FS
  6508. PERR /ERR/CMP REQUEST COMPLETE
  6509. LJM SMF1 PROCESS NEXT ENTRY
  6510. SNS SPACE 4,10
  6511. ** SNS - SET NETWORK STATUS.
  6512. *
  6513. * ENTRY (FN+1) = NUMBER OF ENTRIES TO PROCESS.
  6514. *
  6515. * EXIT ALL ENTRIES IN THE PARAMETER BLOCK HAVE THEIR APPRO-
  6516. * PRIATE NETWORK STATUS FIELDS UPDATED.
  6517. *
  6518. * USES T0, T3, FN - FN+4.
  6519. *
  6520. * CALLS CLI, FMP, GFE, UTE.
  6521. *
  6522. * MACROS ABORT, PERR.
  6523.  
  6524.  
  6525. SNS SUBR ENTRY/EXIT
  6526. LDD FN+1 SAVE PID COUNT
  6527. STD T0
  6528. SBN 1
  6529. NJN SNS1 IF MORE THAN ONE PID TO PROCESS
  6530. LDM SNSB ALLOW CLEARING OF ALL PIDS OPTION
  6531. STM SNSA
  6532. SNS1 LDD FN+2 CHECK FOR VALID NETWORK
  6533. STD T4 SAVE NETWORK FLAG
  6534. ZJN SNS2 IF NO NETWORKS SPECIFIED
  6535. SCN SSNS+RHNS+NANS
  6536. ZJN SNS3 IF VALID NETWORK FLAGS
  6537. SNS2 RJM CLI CLEAR THE LDT INTERLOCK
  6538. ABORT /MESS/ERAE * SFM ARGUMENT ERROR.*
  6539.  
  6540. SNS3 STD T3 INITIALIZE PARAMETER BLOCK INDEX
  6541. SNS4 AOD T3 INCREMENT PARAMETER BLOCK INDEX
  6542. SBD T0
  6543. MJN SNS5 IF MORE ENTRIES TO PROCESS
  6544. NJN SNSX IF ALL ENTRIES PROCESSED
  6545. SNS5 RJM GFE READ PID ENTRY
  6546. ADD T3 ADD INDEX
  6547. CRD FN
  6548. UJN SNS6 CHECK PID
  6549.  
  6550. SNSA EQU *-1
  6551. * LDD FN+1 (IF SETTING STATUS ON ALL PIDS PERMITTED)
  6552. SCN 77
  6553. SHN 6
  6554. LMD FN
  6555. LMC 3R***
  6556. ZJN SNS8 IF SETTING STATUS ON ALL PIDS
  6557.  
  6558. SNS6 LDD FN+4 CHECK FOR VALID STATUS
  6559. SBK /NTS/RS3
  6560. MJN SNS9 IF VALID STATUS
  6561. SBK /NTS/DAB-/NTS/RS3
  6562. ERRNZ /NTS/DAB-/NTS/RS7-1
  6563. ZJN SNS9 IF VALID STATUS
  6564. PERR /ERR/IST INCORRECT NETWORK STATUS
  6565. SNS7 UJN SNS4 PROCESS NEXT PARAMETER BLOCK ENTRY
  6566.  
  6567. SNS8 LDD FN+4
  6568. LMK /NTS/NAV
  6569. NJP SNS2 IF NOT *NETWORK NOT AVAILABLE*
  6570. RJM UTE UPDATE ALL LDT TABLE ENTRIES
  6571. LJM SNSX RETURN
  6572.  
  6573. SNS9 RJM FMP FIND MATCHING PID
  6574. ZJN SNS10 IF NO MATCH
  6575. RJM UTE UPDATE LDT TABLE ENTRY
  6576. UJN SNS7 PROCESS NEXT PARAMETER BLOCK ENTRY
  6577.  
  6578. SNS10 PERR /ERR/LNL PID/LID NOT LEGAL
  6579. UJN SNS7 PROCESS NEXT PARAMETER BLOCK ENTRY
  6580.  
  6581. SNSB LDD FN+1 (USED IF *** OPTION ALLOWED)
  6582. SPA SPACE 4,10
  6583. ** SPA - SET PID ATTRIBUTES.
  6584. *
  6585. * ENTRY (FN+1) = NUMBER OF ENTRIES TO PROCESS.
  6586. *
  6587. * EXIT ALL ENTRIES IN THE PARAMETER BLOCK HAVE THEIR APPRO-
  6588. * PRIATE PID ATTRIBUTE FIELDS UPDATED.
  6589. *
  6590. * USES T1 - T3, T6, FN - FN+4.
  6591. *
  6592. * CALLS FMP, GFE.
  6593. *
  6594. * MACROS PERR.
  6595.  
  6596.  
  6597. SPA SUBR ENTRY/EXIT
  6598. LDD FN+1 SET PID COUNT
  6599. STD T3
  6600. SPA1 RJM GFE GET PARAMETER WORD
  6601. ADD T3
  6602. CRD FN
  6603. RJM FMP FIND MATCHING PID IN LID TABLE
  6604. NJN SPA2 IF PID FOUND
  6605. PERR /ERR/LNL PID/LID NOT LEGAL
  6606. UJN SPA3 DECREMENT PID COUNT
  6607.  
  6608. SPA2 LDD T1 GET PID ENTRY
  6609. SHN 14
  6610. LMD T2
  6611. ADD T6
  6612. CRD CM
  6613. LDD CM+1 CLEAR OLD PID ATTRIBUTES
  6614. SCN 34
  6615. STD CM+1
  6616. LDD FN+4 SET PID ATTRIBUTES
  6617. SHN 4-13
  6618. LPN 34
  6619. RAD CM+1
  6620. LDD T1 REPLACE PID ENTRY
  6621. SHN 14
  6622. LMD T2
  6623. ADD T6
  6624. CWD CM
  6625. PERR /ERR/CMP REQUEST COMPLETE
  6626. SPA3 SOD T3 DECREMENT PID COUNT
  6627. NJP SPA1 IF MORE PIDS TO PROCESS
  6628. LJM SPAX RETURN
  6629. UTE SPACE 4,15
  6630. ** UTE - UPDATE LDT TABLE ENTRY.
  6631. *
  6632. * ENTRY (A) = 0, IF NETWORK STATUS OF ALL PIDS IN LDT ARE TO
  6633. * BE UPDATED.
  6634. * (A) .NE. 0, IF NETWORK STATUS OF ONLY ONE PID IS TO BE
  6635. * UPDATED.
  6636. * (T1 - T2) = ADDRESS OF LDT ENTRY TO BE UPDATED, IF
  6637. * ONLY ONE PID BEING UPDATED.
  6638. * (T4) = NETWORK FLAG.
  6639. * (FN - FN+4) = CURRENT PID ENTRY BEING PROCESSED.
  6640. * (FN+3) = 1, IF ENABLING OR DISABLING NETWORK.
  6641. * = 0, IF SETTING NEW NETWORK STATUS.
  6642. * (FN+4) = 8/0,1/E,3/ST.
  6643. *
  6644. * EXIT THE NETWORK STATUS FIELD OF THE APPROPRIATE PID(S) HAS
  6645. * S) HAS BEEN UPDATED.
  6646. *
  6647. * USES T1, T2, CN, CN+1, CM - CM+4, FS - FS+4.
  6648. *
  6649. * CALLS CLI.
  6650. *
  6651. * MACROS ABORT, PERR.
  6652.  
  6653.  
  6654. UTE SUBR ENTRY/EXIT
  6655. STD CN SAVE PID UPDATE STATUS
  6656. NJN UTE1 IF UPDATING STATUS OF ONE PID
  6657. STD T6 INITIALIZE LDT INDEX
  6658. LDK LIDP GET FWA OF LDT
  6659. CRD CM
  6660. LDD CM SET POINTER TO FIRST PID IN LDT
  6661. SHN 14
  6662. LMD CM+1
  6663. ADN 1
  6664. STD T2
  6665. SHN -14
  6666. STD T1
  6667.  
  6668. * STORE APPROPRIATE NETWORK STATUS MASK AND NEW NETWORK STATUS.
  6669.  
  6670. UTE1 LDD FN+3 SET APPROPRIATE MASK
  6671. ADC TUTE+2
  6672. STM UTEA
  6673. LDN 0 INITIALIZE ADDRESS FOR TABLE SEARCH
  6674. STD CN+1
  6675. STM UTEC CLEAR STATUS MASK
  6676. LDD FN+4 PRESET STATUS
  6677. SHN 4
  6678. RAD FN+4
  6679. SCN 17
  6680. SHN 4
  6681. RAD FN+4
  6682. UTE2 LDM TUTE,CN+1
  6683. ZJN UTE5 IF NETWORK NOT FOUND
  6684. LMD T4
  6685. SBD T4
  6686. MJN UTE3 IF MATCH ON NETWORK
  6687. LDM TUTE+1,CN+1 NETWORK CLEARING MASK
  6688. UJN UTE4 BUILD MASK
  6689.  
  6690. UTE3 LDM TUTE+2,CN+1 STATUS
  6691. * LDM TUTE+3,CN+1 (ENABLE/DISABLE NETWORK)
  6692. UTEA EQU *-1
  6693. UTE4 LMM UTEC
  6694. STM UTEC
  6695. LDN TUTEL INCREMENT NETWORK POINTER
  6696. RAD CN+1
  6697. UJN UTE2 CHECK NEXT NETWORK
  6698.  
  6699. UTE5 LCN 0 FORM NEW NETWORK STATUS
  6700. LMM UTEC
  6701. STM UTEB
  6702. LDD FN+4
  6703. LPC **
  6704. UTEB EQU *-1
  6705. STD FN+4
  6706.  
  6707. * READ LDT PID ENTRY AND UPDATE APPROPRIATE NETWORK STATUS.
  6708.  
  6709. UTE6 LDD T1 READ NETWORK STATUS
  6710. SHN 14
  6711. LMD T2
  6712. ADD T6
  6713. CRD CM
  6714. ADN 1 READ NEXT PID OFFSET
  6715. CRD FS
  6716. LDD CM+4 CLEAR CURRENT NETWORK STATUS
  6717. LPC **
  6718. UTEC EQU *-1
  6719. LMD FN+4 NEW NETWORK STATUS
  6720. STD CM+4
  6721. LDD T1 REWRITE *LDT* ENTRY
  6722. SHN 14
  6723. LMD T2
  6724. ADD T6
  6725. CWD CM
  6726. PERR /ERR/CMP REQUEST COMPLETED
  6727. LDD CN
  6728. NJN UTE7 IF UPDATING ONLY ONE PID ENTRY
  6729. LDD FS+4
  6730. ZJN UTE7 IF NO MORE PIDS IN *LDT*
  6731. RAD T6 UPDATE POINTER TO NEXT PID
  6732. UJN UTE6 PROCESS NEXT PID IN *LDT*
  6733.  
  6734. UTE7 LJM UTEX RETURN
  6735.  
  6736. TUTE BSS 0
  6737. CON NANS,17,10,7 *NAM*
  6738. TUTEL EQU *-TUTE LENGTH OF TABLE ENTRY
  6739. CON RHNS,360,200,160 *RHF*
  6740. CON SSNS,7400,4000,3400 *SSF*
  6741. CON 0 END OF TABLE
  6742. SPACE 4,10
  6743. ** LID TABLE BUFFER.
  6744.  
  6745. LIDL1 EQU 200*5 PP WORD LENGTH OF BUFFER
  6746. LIDL2 MIN 5*MXLDT,LIDL1 LDT PP BUFFER LENGTH
  6747. LIDTL EQU LIDL2/5 CM WORD LENGTH OF BUFFER
  6748. LIDT EQU BFMS-LIDL2 LDT BUFFER ADDRESS
  6749.  
  6750.  
  6751. SPACE 4,10
  6752. ERRNG LIDT-*
  6753. OVERFLOW OVLA,EPFW
  6754. OVERLAY (DAYFILE TERMINATION PROCESSOR.)
  6755. TAD SPACE 4,15
  6756. *** FUNCTION *TAFF* - TERMINATE ACTIVE DAYFILE.
  6757. *
  6758. * SSJ= REQUIRED. A NEW FILE IS CREATED WITH A DAYFILE
  6759. * FORMATTED SYSTEM SECTOR AND EOI SECTOR ON EQUIPMENT, EQ.
  6760. * THE TRACK INTERLOCK IS SET FOR THE SPECIFIED DAYFILE AND A
  6761. * TERMINATING DAYFILE MASSAGE IS ISSUED TO FLUSH THE BUFFER
  6762. * AND INTERLOCK THE DAYFILE. THE TERMINATED DAYFILE IS THEN
  6763. * ATTACHED TO THE CONTROL POINT AS A LOCKED LIBRARY FILE AND
  6764. * THE NEW DAYFILE IS STARTED BY WRITING ITS FST ENTRY INTO
  6765. * THE DAYFILE POINTER AREA AND SETTING ITS TRACK INTERLOCK
  6766. * AFTER MOVING A CREATION DATE MESSAGE INTO THE DAYFILE BUFFER.
  6767. *
  6768. * THE LABEL TRACK ON THE DAYFILE DEVICE WILL BE INTERLOCKED TO
  6769. * PREVENT PROBLEMS CAUSED BY MULTIPLE *DFTERM* RUNS. THIS
  6770. * INTERLOCK IS NORMALLY CLEARED BY A *CDBF* CALL. TO ALLOW
  6771. * FOR A POSSIBLE ABORT OF *DFTERM*, A LOCAL FILE *ZZZZLBT* OF
  6772. * FILE TYPE *LIFT* WILL BE CREATED. THIS FILE POINTS TO THE
  6773. * INTERLOCKED LABEL. *0DF* WILL CLEAR THE INTERLOCK WHEN
  6774. * THE *ZZZZLBT* FILE IS RETURNED.
  6775.  
  6776.  
  6777. TAD ENTRY ENTRY
  6778. LDD MA CREATE THE *ZZZZLBT* FILE
  6779. CWM TADI,ON
  6780. SBN 1
  6781. CRD FN
  6782. TAD0 LDN NEEQ SET THE NULL EQUIPMENT
  6783. STD FS
  6784. LDN 2 RETURN IF NFL INCREASE PENDING
  6785. STM OVL0-1
  6786. EXECUTE 0BF,OVL0
  6787. UJN TAD0.2 CHECK FOR FNT ENTRY CREATED
  6788.  
  6789. * PROCESS DUPLICATE FILE.
  6790.  
  6791. RJM SFB SET FILE BUSY
  6792. NJN TAD0.1 IF FILE BUSY REJECT
  6793. RJM DRF DROP THE FILE
  6794. UJN TAD0 RETRY THE FILE CREATION
  6795.  
  6796. TAD0.1 ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
  6797.  
  6798. TAD0.2 ZJN TAD0.3 IF FNT CREATED
  6799. LDN NFIR
  6800. LJM ERS ENTER PP RECALL STACK
  6801.  
  6802. TAD0.3 LDD FA SAVE THE FNT OFFSET
  6803. STM TADC
  6804. RJM GFE READ FILE NAME
  6805. CRD FN
  6806. RJM VFN VERIFY FILE NAME
  6807. NJN TAD1 IF FILE NAME VERIFIES
  6808. ABORT /MESS/ERFN * SFM FILE NAME ERROR.*
  6809.  
  6810. TAD1 RJM SDT SET DAYFILE TYPE
  6811. LDD CN SET EST ORDINAL FOR NEW DAYFILE
  6812. STD T5
  6813. ADD TH SET MASS STORAGE ASSIGNMENT BY *0BF*
  6814. STD FS
  6815. LDN 0 SELECT NO RETURN WITHOUT FILE CREATED
  6816. STM OVL0-1
  6817. EXECUTE 0BF,OVL0
  6818. UJN TAD4 FNT/FST CREATED
  6819.  
  6820. * PROCESS DUPLICATE FILE.
  6821.  
  6822. NFA FA,R READ FNT ENTRY
  6823. CRD FS
  6824. LDD FS+4 CHECK FILE TYPE
  6825. SHN -6
  6826. LMN LIFT
  6827. NJN TAD3 IF NOT LIBRARY FILE TYPE
  6828. TAD2 LDN 0
  6829. STD FA CLEAR FNT INDEX
  6830. ABORT /MESS/ERDF * SFM DUPLICATE FILE FOUND.*
  6831.  
  6832. TAD3 RJM SFB SET FILE BUSY
  6833. NJN TAD2 IF FILE BUSY REJECT
  6834. RJM DRF DROP FILE
  6835. LJM TAD RETRY FUNCTION
  6836.  
  6837. * BUILD DAYFILE SYSTEM SECTOR AND EOI SECTOR.
  6838.  
  6839. TAD4 LDD FA SAVE THE FNT OFFSET
  6840. STM TADT
  6841. LDC 501-DTEI-3*5
  6842. STD T1
  6843. TAD5 LDN 0 CLEAR SYSTEM SECTOR / EOI BUFFER
  6844. STM BFMS+DTEI+3*5,T1
  6845. SOD T1
  6846. PJN TAD5 IF NOT END OF BUFFER
  6847. LDD CN SET EST ORDINAL
  6848. STD T5
  6849. LDD FS+1 SET FIRST TRACK
  6850. NJN TAD6 IF TRACK ASSIGNED
  6851. RJM DRF DROP NEW DAYFILE
  6852. LDM TADC
  6853. STD FA
  6854. RJM DRF DROP *ZZZZLBT* FILE
  6855. ERROR /ERR/TKL EC=2, MASS STORAGE NOT AVAILABLE
  6856.  
  6857. TAD6 STD T6
  6858. LDM TDYN-1,TY SET DAYFILE NAME IN SYSTEM SECTOR
  6859. STM TADA
  6860. LDD MA
  6861. CWM *,ON
  6862. TADA EQU *-1
  6863. SBN 1
  6864. CRM FNSS,ON
  6865. SBN 1 SET DAYFILE NAME IN DAYFILE MESSAGE
  6866. CRM TADF+1,ON
  6867. LDD FA SAVE FNT INDEX
  6868. STM TADB
  6869. NFA FA,R SET FST INFORMATION IN SYSTEM SECTOR
  6870. ADN FSTL
  6871. CRM EQSS,ON
  6872. LDN 0 CLEAR FNT INDEX
  6873. STD FA
  6874. STM FASS
  6875. LDN PDTL SET DATE AND TIME GROUP IN EOI
  6876. CRM BFMS+DTEI,TR
  6877.  
  6878. * WRITE SYSTEM SECTOR AND EOI SECTOR OF NEW DAYFILE.
  6879.  
  6880. SETMS IO
  6881. RJM WSS WRITE SYSTEM SECTOR
  6882. RJM WEI WRITE EOI SECTOR
  6883. ENDMS
  6884.  
  6885. * SET EOI IN TRT AND BUILD FST FOR NEW DAYFILE.
  6886.  
  6887. LDD T5 SET EQUIPMENT
  6888. STD CM+1
  6889. LDD T6 SET FIRST TRACK
  6890. STD FS+2
  6891. LPC 3777
  6892. STD CM+2
  6893. LDD T7 SET SECTOR
  6894. STD FS+3
  6895. STD CM+3
  6896. MONITOR DTKM DROP TRACKS
  6897. RJM WTI SET TRACK INTERLOCK ON NEW DAYFILE
  6898. ZJN TAD7 IF TRACK INTERLOCK SET
  6899. LJM DPP DROP PPU
  6900.  
  6901. * SET TRACK INTERLOCK ON OLD DAYFILE.
  6902.  
  6903. TAD7 RJM SDA READ DAYFILE FST
  6904. CRD FN
  6905. LDD FN SET DAYFILE EST ORDINAL
  6906. STD T5
  6907. LDD FN+1 SET DAYFILE FIRST TRACK
  6908. STD T6
  6909. LDC ** SET FNT INDEX
  6910. TADB EQU *-1 (FNT INDEX)
  6911. STD FA
  6912. RJM STI SET TRACK INTERLOCK
  6913. ZJN TAD9 IF TRACK INTERLOCK SET
  6914. TAD8 LDC ** DROP NEW DAYFILE
  6915. TADT EQU *-1
  6916. STD FA
  6917. RJM DRF
  6918. LDM TADC DROP *ZZZZLBT* FILE
  6919. STD FA
  6920. RJM DRF DROP FILE
  6921. ERROR /ERR/DFB EC=1, DAYFILE BUSY
  6922.  
  6923. * INTERLOCK THE LABEL TRACK TO PREVENT *1CK* FROM UPDATING
  6924. * THE LOCAL AREA SECTOR UNTIL *DFTERM* ISSUES THE *CDBF*
  6925. * FUNCTION. THIS INTERLOCK IS NECESSARY ONLY WHEN ANOTHER
  6926. * *DFTERM* IS EXECUTING AND IS TERMINATING ANOTHER DAYFILE
  6927. * ON THE SAME DEVICE.
  6928.  
  6929. TAD9 RJM LLT LOCATE LABEL TRACK
  6930. STD T2
  6931. RJM WTI SET LABEL TRACK INTERLOCK
  6932. ZJN TAD10 IF LABEL TRACK INTERLOCK SET
  6933. LDD FN CLEAR TRACK INTERLOCK ON OLD FILE
  6934. STD T5
  6935. LDD FN+1
  6936. RJM CTI CLEAR TRACK INTERLOCK
  6937. UJN TAD8 DROP NEW FILE
  6938.  
  6939. TAD10 LDC ** COMPLETE THE *ZZZZLBT* FILE
  6940. TADC EQU *-1
  6941. STD T1
  6942. NFA T1,R
  6943. ADK FNTL
  6944. CRD CM
  6945. ADN FSTL-FNTL
  6946. CRD CN
  6947. LDD T5 SET THE EST ORDINAL
  6948. STD CN
  6949. LDD T2 SET THE LABEL TRACK
  6950. STD CN+1
  6951. STD CN+2
  6952. LDC 1005 SET THE TRACK INTERLOCK FLAG
  6953. STD CN+4
  6954. LDC LIFT*100 SET LIBRARY FILE TYPE
  6955. STD CM+4
  6956. NFA T1,R
  6957. ADK FNTL
  6958. CWD CM
  6959. ADN FSTL-FNTL
  6960. CWD CN
  6961.  
  6962. * BUILD FNT FOR OLD DAYFILE.
  6963.  
  6964. NFA FA,R READ FNT
  6965. CRD CN
  6966. LDC LIFT*100+SSST SET LIBRARY FILE TYPE
  6967. STD CN+4
  6968. LDD CN+3 SET WRITE LOCKOUT
  6969. SCN 77
  6970. LMN 1
  6971. STD CN+3
  6972.  
  6973. * SET TIME IN CREATION MESSAGES FOR NEW DAYFILE.
  6974.  
  6975. LDN TIML SET TIME
  6976. CRM TADD,ON
  6977.  
  6978. * TERMINATE OLD DAYFILE.
  6979.  
  6980. LDC 2RTE RESET MESSAGE
  6981. STM TADF+5
  6982. LDD TY
  6983. LMN ERLF
  6984. NJN TAD11 IF NOT ERRLOG TERMINATION
  6985. LDC 2R
  6986. UJN TAD12 SET BLANKS
  6987.  
  6988. TAD11 LDM TADF+4
  6989. SCN 77
  6990. LMN 1R
  6991. TAD12 STM TADF+4
  6992. LDC TADF
  6993. RJM DFM ISSUE MESSAGE TO SYSTEM DAYFILE
  6994. LDM TDMO-1,TY SET PROCESSOR ADDRESS
  6995. STD T1
  6996. LJM 0,T1 SET PROCESSOR ADDRESS
  6997.  
  6998. TAD13 LDC JNMN+TADE TERMINATE SYSTEM DAYFILE
  6999. UJN TAD15 ISSUE MESSAGE
  7000.  
  7001. TAD14 LDC EJNN+TADE TERMINATE ERRLOG DAYFILE
  7002. TAD15 RJM FDB FLUSH DAYFILE BUFFER
  7003. LDN 2 SET *CREATION DATE* IN MESSAGE
  7004. STD T1
  7005. LDD MA
  7006. CWM TADH,T1
  7007. SBD T1
  7008. CRM TADF+5,T1
  7009. LDN DTEL SET DATE
  7010. CRM TADG,ON
  7011. LDN 6
  7012. UJN TAD17 WRITE CREATION MESSAGE TO BUFFER
  7013.  
  7014. TAD16 LDN TADML SET MESSAGE LENGTH
  7015. STD CM+1
  7016. LDC BMLN+TADM TERMINATE MAINTENANCE LOG
  7017. RJM FDB
  7018. LDC DS0101 SET MAINTENANCE LOG CREATION SYMPTOM
  7019. STM TADM+1
  7020. LDN 2
  7021. STD T1
  7022. LDD MA MOVE MESSAGE
  7023. CWM TADM,T1
  7024. SBN 2
  7025. CRM TADF,T1
  7026. LDN PDTL SET DATE AND TIME IN MESSAGE
  7027. CRM TADD,ON
  7028. LDN 4 SET MESSAGE LENGTH
  7029. STM TADD
  7030. TAD17 UJN TAD19 WRITE CREATION MESSAGE TO BUFFER
  7031.  
  7032. TAD18 LDN DTEL TERMINATE ACCOUNT DAYFILE
  7033. CRM TADL,ON
  7034. LDN 2 MOVE ACCOUNT MESSAGE
  7035. STD T1
  7036. LDD MA
  7037. CWM TADK,T1
  7038. LDD MA
  7039. CRM TADF,T1
  7040. LDC AJNN+TADE
  7041. RJM FDB FLUSH DAYFILE BUFFER
  7042. LCN 1RE-1RB SET *ABSY* IN MESSAGE
  7043. RAM TADF
  7044. LDN 4
  7045. TAD19 STD T1 SAVE WORD COUNT
  7046. LDC 2R
  7047. STD CM
  7048. LDD MA SET JOB NAME IN CREATION MESSAGES
  7049. CWM TADE,ON
  7050. SBN 1
  7051. CRD CM+1
  7052. CWD CM
  7053. CRM TADE,ON
  7054.  
  7055. * SET NEW DAYFILE FST AND WRITE MESSAGE TO BUFFER.
  7056.  
  7057. RJM SDA SET DAYFILE FST ADDRESS
  7058. SBN 1 READ DAYFILE OUT POINTER
  7059. CRD CM
  7060. SBN 1 READ IN POINTER
  7061. CRD ES
  7062. LDD TY SET BUFFER INDEX
  7063. SHN 6
  7064. LMN 3 CLEAR BUFFER INTERLOCK
  7065. STD FS+4
  7066. LDN 0 SET OUT = FIRST
  7067. STD CM+4
  7068. LDD T1 SET IN
  7069. STD ES+4
  7070. LDD ES+2 CLEAR THE THRESHOLD INCREMENT
  7071. SCN 7
  7072. STD ES+2
  7073. LDD ES WRITE CREATION MESSAGE TO BUFFER
  7074. SHN 14
  7075. ADD ES+1
  7076. CWM TADD,T1
  7077. LDM TDMP-1,TY SET PROCESSOR ADDRESS
  7078. STD T4
  7079. LJM 0,T4 PROCESS APPROPRIATE DAYFILE
  7080.  
  7081. TAD20 LDN 7 SET BML MESSAGE LENGTH
  7082. STD T3
  7083. STM TADD
  7084. LDN ZERL CLEAR BML MESSAGE AREA
  7085. CRM TADF,ON
  7086. LDC DM0400 SET SYSTEM CREATION INFORMATION ID
  7087. STM TADF
  7088. LDC SS0100 SET SYSTEM TITLE SYMPTOM
  7089. STM TADF+1
  7090. LDC TADF+5 SET INFORMATION READ ADDRESS
  7091. UJN TAD22 SAVE MESSAGE ADDRESS
  7092.  
  7093. TAD21 LCN 1RY-1RT CHANGE ACCOUNT MESSAGE TO *ABST*
  7094. RAM TADF+1
  7095. LDN ZERL TERMINATE LINE
  7096. CRM TADF+4*5,ON
  7097. LDC TADF+3 SET INFORMATION READ ADDRESS
  7098. TAD22 STM TADQ
  7099. STM TADR
  7100. TAD23 LDN 4 READ SYSTEM TITLE
  7101. STD T4
  7102. LDN SYTL
  7103. CRM TADF,T4
  7104. TADQ EQU *-1
  7105. RJM CML DETERMINE MESSAGE LENGTH
  7106. RJM BWA DETERMINE BUFFER ADDRESS
  7107. CWM TADD,T3 WRITE MESSAGE TO BUFFER
  7108. LDD TY
  7109. LMN BMLF
  7110. NJN TAD24 IF NOT BML
  7111. LDN 5 SET BML MESSAGE LENGTH
  7112. STD T3
  7113. STM TADD
  7114. LDC SS0101 SET SYSTEM VERSION SYMPTOM
  7115. STM TADF+1
  7116. UJN TAD25 PROCESS SYSTEM VERSION
  7117.  
  7118. TAD24 LMN BMLF&ACCF
  7119. NJN TAD25 IF NOT ACCOUNT FILE
  7120. LDN 1RV-1RT CHANGE ACCOUNT MESSAGE TO *ABSV*
  7121. RAM TADF+1
  7122. LDN ZERL TERMINATE LINE
  7123. CRM TADF+2*5,ON
  7124. TAD25 LDN 2 READ SYSTEM VERSION
  7125. STD T4
  7126. LDN SVNL
  7127. CRM TADF,T4
  7128. TADR EQU *-1
  7129. RJM CML DETERMINE MESSAGE LENGTH
  7130. RJM BWA DETERMINE BUFFER WORD ADDRESS
  7131. CWM TADD,T3 WRITE MESSAGE TO BUFFER
  7132. RJM SDA SET DAYFILE POINTER ADDRESS
  7133. SBN 2
  7134. CWD ES
  7135. ADN 1
  7136. CWD CM
  7137. ADN 1 STORE BUFFER STATUS
  7138. CWD FS
  7139.  
  7140. * WRITE FNT/FST ATTACHING OLD DAYFILE TO CONTROL POINT.
  7141.  
  7142. LDC 1005 SET TRACK INTERLOCK AND NOT BUSY
  7143. STD FN+4
  7144. NFA FA,R STORE FNT ENTRY
  7145. CWD CN
  7146. ADN FSTL
  7147. CWD FN
  7148. LDD TY
  7149. LMN ERLF
  7150. ZJN TAD26 IF ERRLOG
  7151. LMN ERLF&BMLF
  7152. NJN TAD27 IF NOT BML
  7153. AOM TADS
  7154.  
  7155. TAD26 LDN ESTP GET NUMBER OF MASS STORAGE DEVICES+1
  7156. CRD CM
  7157. LDD CM+3
  7158. STD LO
  7159. LDC OVL0 SET MASS STORAGE LOAD ADDRESS
  7160. STD LA
  7161. TADS LDN 1 ISSUE MESSAGE TO ERRLOG
  7162. * LDN 2 ISSUE MESSAGE TO BML
  7163. RJM IME PROCESS MASS STORAGE
  7164. TAD27 LDN 0 CLEAR FNT INDEX
  7165. STD FA
  7166. LJM SFMX RETURN
  7167.  
  7168.  
  7169. * DAYFILE MESSAGES.
  7170.  
  7171.  
  7172. TADD DATA H* HH.MM.SS.*
  7173. TADE VFD 24/4L"SJSN",24/4HS. ,12/SYSC
  7174. TADF DATA C* XXXXXXX TERMINATED.*
  7175. TADG DATA C* YY/MM/DD. *
  7176. TADH DATA H* CREATION DATE *
  7177. TADK DATA H*AESY, *
  7178. TADL DATA C* YY/MM/DD. *
  7179. TADI VFD 42/0LZZZZLBT,18/0
  7180.  
  7181. TADM CON DM0406,DS0103 MAINTENANCE LOG MESSAGE
  7182. BSSZ TADM+2*5-*
  7183. TADML EQU *-TADM LENGTH OF MAINTENANCE LOG MESSAGE
  7184. TDMO SPACE 4,10
  7185. ** TDMO - TABLE OF DAYFILE MESSAGE OPTIONS.
  7186. *
  7187. * THIS TABLE IS USED TO ISSUE THE TERMINATING
  7188. * DAYFILE MESSAGE TO THE CORRECT DAYFILE.
  7189.  
  7190.  
  7191. TDMO BSS 0
  7192. LOC SDAY
  7193. CON TAD13 SYSTEM DAYFILE
  7194. CON TAD18 ACCOUNT DAYFILE
  7195. CON TAD14 ERRLOG DAYFILE
  7196. CON TAD16 MAINTENANCE LOG
  7197. LOC *O
  7198. TDMP SPACE 4,10
  7199. ** TDMP - TABLE OF DAYFILE MESSAGE PROCESSOR OPTIONS.
  7200. *
  7201. * THIS TABLE IS USED TO ISSUE THE SYSTEM TITLE
  7202. * AND VERSION TO THE CORRECT DAYFILE.
  7203.  
  7204.  
  7205. TDMP BSS 0
  7206. LOC SDAY
  7207. CON TAD23 SYSTEM DAYFILE
  7208. CON TAD21 ACCOUNT DAYFILE
  7209. CON TAD23 ERRLOG DAYFILE
  7210. CON TAD20 MAINTENANCE DAYFILE
  7211. LOC *O
  7212. BWA SPACE 4,10
  7213. ** BWA - GET BUFFER WORD ADDRESS.
  7214. *
  7215. * ENTRY (ES - ES+4) = FWA OF DAYFILE BUFFER POINTER.
  7216. * (T3) = LENGTH OF MESSAGE.
  7217. *
  7218. * EXIT (A) = ADDRESS OF FREE BUFFER WORD.
  7219. * (ES+4) = WORD COUNT UPDATED.
  7220. *
  7221. * USES ES+4.
  7222.  
  7223.  
  7224. BWA SUBR ENTRY/EXIT
  7225. LDD T3 LENGTH OF MESSAGE
  7226. RAD ES+4 UPDATE WORD COUNT
  7227. LDD ES
  7228. SHN 14
  7229. ADD ES+1
  7230. ADD ES+4 ADD TO IN POINTER
  7231. SBD T3
  7232. UJN BWAX RETURN
  7233. CML SPACE 4,10
  7234. ** CML - CHECK MESSAGE LENGTH.
  7235. *
  7236. * ENTRY (TY) = TYPE OF DAYFILE.
  7237. *
  7238. * EXIT (T3) = MESSAGE LENGTH IF NOT BML.
  7239. *
  7240. * USES T3, T4.
  7241.  
  7242.  
  7243. CML SUBR ENTRY/EXIT
  7244. LDD TY CHECK DAYFILE TYPE
  7245. LMN BMLF
  7246. ZJN CMLX IF BML
  7247. LDC TADF+4 FIRST WORD TO CHECK FOR END
  7248. STD T4
  7249. LDN 3 PRESET MESSAGE LENGTH
  7250. STD T3
  7251. CML1 LDI T4
  7252. ZJN CMLX IF END OF MESSAGE
  7253. AOD T3 INCREMENT MESSAGE LENGTH
  7254. LDN 5 INCREMENT END OF MESSAGE ADDRESS
  7255. RAD T4
  7256. UJN CML1 CHECK NEXT CM WORD
  7257. SPACE 4,10
  7258. * COMMON DECKS.
  7259.  
  7260.  
  7261. LIST X
  7262. *CALL COMPPDI
  7263. LIST *
  7264. SPACE 4,10
  7265. ERRNG OVL0-* OVERFLOW INTO OVERLAY LOAD AREA
  7266. SPACE 4,10
  7267. OVERFLOW OVLA,EPFW
  7268. TTL SFM - SYSTEM FILE MANAGER.
  7269. SPACE 4
  7270. END