Table of Contents

VEJ

Table Of Contents

  • [00008] VEJ - VERIFY JOB FILE INFORMATION.
  • [00010] VERIFY JOB FILE.
  • [00125] MACRO DEFINITIONS.
  • [00126] ERROR - ERROR PROCESSING.
  • [00140] ABORT - ABORT CONTROL POINT.
  • [00155] MAIN PROGRAM.
  • [00249] OAST - ORIGIN TYPE AND SERVICE CLASS TABLE.
  • [00261] ERROR PROCESSING ROUTINES.
  • [00263] ABT - ABORT CONTROL POINT.
  • [00285] TERL - TABLE OF ERROR CODES.
  • [00301] TDFM - TABLE OF DAYFILE MESSAGE ADDRESSES.
  • [00324] AIF - ASSIGN INPUT FILE.
  • [00514] CUT - CONVERT USER NAME TO TID.
  • [00612] DRF - DROP FILE AND QFT ENTRY.
  • [00639] GFA - GET FET ADDRESS.
  • [00655] WIF - WRITE INPUT FILE.
  • [00718] VCA - VALIDATE CENTRAL ADDRESS.
  • [00763] PRS - PRESET ROUTINE.
  • [00880] DOT - DETERMINE ORIGIN TYPE OF CONTROL POINT.

Source Code

VEJ.txt
  1. IDENT VEJ,VEJ
  2. PERIPH
  3. BASE MIXED
  4. SST
  5. IOQ$ EQU 1 DEFINE TABLE FOR *SFA* MACRO
  6. *COMMENT VEJ - VERIFY JOB FILE INFORMATION.
  7. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  8. TITLE VEJ - VERIFY JOB FILE INFORMATION.
  9. SPACE 4
  10. *** VEJ - VERIFY JOB FILE.
  11. * R. A. JAPS. 76/01/13.
  12. * M. J. CARIDDI. 81/07/17.
  13. SPACE 4
  14. *** *VEJ* IS CALLED TO VERIFY BASIC JOB COMMAND AND OTHER
  15. * REQUIRED ACCOUNTING TYPE COMMANDS (CURRENTLY, ONLY THE
  16. * USER COMMAND) FOR A NEW JOB (INPUT) FILE. *VEJ* WILL
  17. * VERIFY THE INFORMATION, CREATE A SYSTEM NAME FOR THE
  18. * NEW JOB AND ASSIGN THE FILE TO THE APPROPRIATE DEVICE.
  19. *
  20. * *VEJ* MUST BE CALLED BY A SUBSYSTEM.
  21. SPACE 4
  22. *** CALL.
  23. *
  24. *T 18/ *VEJ*, 2/1, 22/ 0, 18/ FET ADDRESS
  25. *
  26. * FORMAT OF FET.
  27. *
  28. *T,FET 42/ , 6/ , 11/ , 1/0
  29. *T,FET+1 20/ , 1/ SP, 15/ , 24/ TID
  30. *T,FET+2 42/ , 18/ LWA (IN)
  31. *T,FET+3 42/ , 18/ FWA (OUT)
  32. *T,FET+4 21/ , 3/ AL, 36/
  33. *
  34. * SP = SECURITY PROCESSING BIT.
  35. * INDICATES THAT *AL* FIELD HAS BEEN SPECIFIED.
  36. * TID = TERMINAL ID.
  37. * IF THE UPPER SIX BITS ARE EQUAL TO 77B, THE
  38. * LOWER EIGHTEEN BITS CONTAIN THE COMPLEMENT
  39. * OF A CM ADDRESS OF A TWO WORD FAMILY NAME - USER
  40. * NUMBER AREA.
  41. * TAG+0 42/ FAMILY NAME , 18/ 0
  42. * TAG+1 42/ USER NAME , 18/ 0
  43. * IF THE UPPER SIX BITS ARE NOT EQUAL TO 77B, THE
  44. * LOWER TWENTYONE BITS CONTAIN THE TID.
  45. * LWA = LAST WORD ADDRESS OF BUFFER CONTAINING JOB/USER
  46. * COMMANDS.
  47. * FWA = FIRST WORD ADDRESS OF BUFFER.
  48. * AL = ACCESS LEVEL LIMIT FOR COMMUNICATIONS LINE.
  49. * ON A SECURED SYSTEM, THE UPPER ACCESS LEVEL LIMIT
  50. * FOR THE JOB MUST BE .LE. THIS VALUE (IF SPECIFIED).
  51. SPACE 4
  52. *** RETURN.
  53. *
  54. *T,FET 42/ JOBNAME , 6/ EC, 11/ , 1/1
  55. *T,FET+1 36/ , 24/ TID
  56. *T,FET+2 42/ , 18/ LWA
  57. *T,FET+3 42/ , 18/ FWA
  58. *T,FET+4 12/ FNT OFF , 48/
  59. *
  60. * EC = ERROR CODES.
  61. * 0 = NO ERROR ENCOUNTERED.
  62. * 1 = JOB COMMAND ERROR.
  63. * 2 = BUFFER ARGUMENT ERROR. (FATAL)
  64. * 3 = ACCOUNT COMMAND ERROR.
  65. * 4 = FNT/DEVICE FULL.
  66. * 5 = INCORRECT TID.
  67. * 6 = INCORRECT REQUEST. (FATAL)
  68. * 7 = DEVICE UNAVAILABLE.
  69. *
  70. * FNT OFF = OFFSET OF FNT ENTRY IN NFL.
  71. SPACE 4
  72. ** DAYFILE MESSAGES.
  73. *
  74. *
  75. * * VEJ - BUFFER ARGUMENT ERROR.*
  76. * FET BUFFER POINTERS ARE INCORRECT.
  77. * (FWA .LT. LWA .LE. FL)
  78. *
  79. * * VEJ - INCORRECT REQUEST.*
  80. * CAN INDICATE ONE OF THE FOLLOWING CONDITIONS -
  81. * 1. *VEJ* NOT CALLED BY A SUBSYSTEM.
  82. * 2. FET ADDRESS OUT OF RANGE.
  83. * 3. A JOB WITHOUT SSJ= PRIVILEGES ATTEMPTED TO SPECIFY
  84. * A SYSTEM SECTOR ADDRESS IN THE SYSTEM REQUEST.
  85. * 4. SYSTEM SECTOR BUFFER NOT WITHIN FL.
  86. * 5. CALLER WAS NOT SYSTEM ORIGIN OR DID NOT HAVE
  87. * SYSTEM ORIGIN PRIVILEGES.
  88. SPACE 4
  89. ** ROUTINES CALLED.
  90. *
  91. * 0AV - ACCOUNT VALIDATION.
  92. * 0BF - BEGIN FILE.
  93. * 0DF - DROP FILE.
  94. * 0DQ - DROP QFT ENTRY.
  95. * 0VJ - VERIFY JOB AND USER COMMAND.
  96. SPACE 4
  97. * COMMON DECKS.
  98.  
  99. *CALL COMPMAC
  100. *CALL COMSCPS
  101. *CALL COMSDSP
  102. *CALL COMSEVT
  103. *CALL COMSMSP
  104. *CALL COMSSCD
  105. *CALL COMSSSD
  106. *CALL COMSSSE
  107. *CALL COMSSSJ
  108. *CALL COMSWEI
  109. *CALL COMSZOL
  110. SPACE 4
  111. **** DIRECT LOCATION ASSIGNMENTS.
  112.  
  113.  
  114. FS EQU 20 - 24 FST (5 LOCATIONS)
  115. QA EQU 26 ORDINAL OF QFT ENTRY
  116. FT EQU 27 TABLE FWA
  117. CN EQU 30 - 34 CM BUFFER (5 LOCATIONS)
  118. SC EQU 35 SCRATCH
  119. FN EQU 40 - 44 FILE NAME (5 LOCATIONS)
  120. OT EQU 46 ORIGIN TYPE
  121. ER EQU 47 ERROR STATUS
  122. FA EQU 57 NFL FNT ENTRY OFFSET
  123.  
  124. ****
  125. TITLE MACRO DEFINITIONS.
  126. ** ERROR - ERROR PROCESSING.
  127. *
  128. * ERROR ER
  129.  
  130.  
  131. PURGMAC ERROR
  132.  
  133. ERROR MACRO E
  134. MACREF ERROR
  135. LDN E
  136. STD ER
  137. LJM VEJ5 SET ERROR CODE
  138. ENDM
  139. SPACE 4
  140. ** ABORT - ABORT CONTROL POINT.
  141. *
  142. * ABORT ER
  143. *
  144. * ER = ERROR CODE.
  145.  
  146.  
  147. PURGMAC ABORT
  148.  
  149. ABORT MACRO E
  150. MACREF ABORT
  151. LDN E
  152. RJM ABT
  153. ENDM
  154. EJECT
  155. TITLE MAIN PROGRAM.
  156. ORG PPFW
  157. SPACE 4
  158. ** MAIN PROGRAM.
  159.  
  160.  
  161. VEJ BSS 0 ENTRY
  162. RJM PRS PRESET
  163. LDN ZERL CLEAR DLID / SET LOWER ACCESS LEVEL LIMIT
  164. CRD CN
  165. LDC STMT SET FIRST WORD OF PP BUFFER
  166. STD CN
  167. LDC 400 SET *DO NOT DELETE PASSWORD* FLAG
  168. RAD CN+2
  169. LDN 0
  170. STM IOSS+INSQ*5+1 CLEAR DLID IN QFT / SYSTEM SECTOR
  171. LDM IOSS+INSQ*5+2
  172. LPN 77
  173. STM IOSS+INSQ*5+2
  174. LDM OAST,OT SET ORIGIN AND SERVICE CLASS
  175. STM IOSS+SCLQ*5+0
  176. EXECUTE 0VJ,OVL0 VERIFY JOB AND USER COMMAND
  177. PJN VEJ1 IF VERIFICATION COMPLETE
  178. ERROR ERUA * DEVICE UNAVAILABLE.*
  179.  
  180. VEJ1 LDM SLSS CLEAR SLID IN SYSTEM SECTOR
  181. SCN 77
  182. STM SLSS
  183. LDN 0
  184. STM SLSS+1
  185. LDD ER
  186. LMN ERAC
  187. ZJN VEJ2 IF *USER COMMAND ERROR*
  188. VEJA LDN 0
  189. * LDN 1 (*SP* BIT SPECIFIED)
  190. ZJN VEJ4 IF *SP* NOT SPECIFIED OR UNSECURED SYSTEM
  191. LDM IOSS+5*INSQ+3 CHECK UPPER ACCESS LEVEL LIMIT
  192. LPN 7
  193. VEJB SBN 1
  194. * SBN AL+1 (SPECIFIED ACCESS LEVEL + 1)
  195. MJN VEJ4 IF JOB MAY BE CREATED
  196. LDN ERJC SET *JOB COMMAND ERROR* STATUS
  197. STD ER
  198. LDN JCIE
  199. STM VEJC
  200. UJN VEJ3 DO NOT CREATE JOB
  201.  
  202. * CHECK IF JOB SHOULD BE CREATED DESPITE USER COMMAND ERROR.
  203.  
  204. VEJ2 LDD CN CHECK DESTINATION LID ATTRIBUTES
  205. ZJN VEJ3 IF NO DESTINATION LID
  206. SHN 21-13
  207. MJN VEJ3 IF DESTINED FOR LOCAL HOST LID
  208. SHN 21-11-21+13
  209. MJN VEJ3 IF VALIDATION REQUIRED FOR THIS LID
  210. LDN 0 CLEAR ERROR CODE
  211. STD ER
  212. STM JASS CLEAR JOB ABORT CODE
  213. UJN VEJ4 CREATE JOB
  214.  
  215. VEJ3 LDC UNIE SET *USER NAME / PASSWORD NOT VALID*
  216. * LDC JCIE (*JOB COMMAND ERROR*)
  217. VEJC EQU *-1
  218. STM JASS SET JOB ABORT CODE IN SYSTEM SECTOR
  219.  
  220. * RETURN HERE FROM *WIF* IF MASS STORAGE ERROR.
  221.  
  222. VEJ4 LDN ZERL CLEAR ENCRYPTED PASSWORD
  223. CRM EPSS,ON
  224. RJM AIF ASSIGN INPUT FILE
  225. RJM WIF WRITE INPUT FILE
  226.  
  227. * ENTER HERE FROM *ERROR* MACRO CALLS.
  228.  
  229. VEJ5 LDD FN+3 SET ERROR CODE
  230. SCN 77
  231. LMD ER
  232. STD FN+3
  233. LDN 1 SET FET COMPLETE
  234. STD FN+4
  235. RJM GFA SET FNT OFFSET
  236. ADN 4
  237. CRD CM
  238. LDD FA
  239. STD CM
  240. RJM GFA WRITE FET INFORMATION
  241. ADN 4
  242. CWD CM
  243. SBN 4
  244. CWD FN
  245.  
  246. DPP MONITOR DPPM DROP PPU
  247. LJM PPR
  248. OAST SPACE 4,10
  249. ** OAST - ORIGIN TYPE AND SERVICE CLASS TABLE.
  250. *
  251. *T 6/ SC, 6/ OT
  252. * SC = SERVICE CLASS.
  253. * OT = ORIGIN TYPE.
  254.  
  255.  
  256. OAST BSS 0
  257. VFD 6/SYSC,6/SYOT
  258. VFD 6/BCSC,6/BCOT
  259. VFD 6/RBSC,6/RBOT
  260. VFD 6/TSSC,6/IAOT
  261. TITLE ERROR PROCESSING ROUTINES.
  262. ABT SPACE 4,10
  263. ** ABT - ABORT CONTROL POINT.
  264. *
  265. * ENTRY (A) = ERROR CODE.
  266. *
  267. * EXIT TO *PPR*.
  268. *
  269. * USES T1.
  270. *
  271. * CALLS DFM.
  272. *
  273. * MACROS MONITOR.
  274.  
  275.  
  276. ABT SUBR ENTRY
  277. STD T1
  278. LDM TDFM,T1 GET FWA OF DAYFILE MESSAGE
  279. ZJN ABT1 IF NO ADDRESS
  280. ADC CPON
  281. RJM DFM
  282. ABT1 MONITOR ABTM ABORT CONTROL POINT
  283. LJM PPR
  284. TERC SPACE 4,5
  285. ** TERL - TABLE OF ERROR CODES.
  286. * THE ORDER OF *TERC* IS DEPENDENT ON *TDFM*.
  287.  
  288.  
  289. TERC BSS 0
  290. LOC 1
  291. ERJC BSS 1 JOB COMMAND ERROR
  292. ERBA BSS 1 BUFFER ARGUMENT ERROR
  293. ERAC BSS 1 USER COMMAND ERROR
  294. ERFD BSS 1 FNT/DEVICE FULL
  295. ERTD BSS 1 INCORRECT TID
  296. ERIR BSS 1 INCORRECT REQUEST
  297. ERUA BSS 1 DEVICE UNAVAILABLE
  298. LOC *O
  299. ORG TERC
  300. TDFM SPACE 4
  301. ** TDFM - TABLE OF DAYFILE MESSAGE ADDRESSES.
  302. * THE ORDER OF *TDFM* IS DEPENDENT ON *TERC*.
  303.  
  304.  
  305. TDFM BSS 0
  306. LOC 0
  307. CON 0
  308. CON 0 JOB COMMAND ERROR
  309. CON DMBA BUFFER ARGUMENT ERROR
  310. CON 0 ACCOUNT COMMAND ERROR (PROCESSED BY *0VJ*)
  311. CON 0 FNT/DEVICE FULL
  312. CON 0 INCORRECT TID
  313. CON DMIR INCORRECT REQUEST
  314. CON 0 DEVICE UNAVAILABLE
  315. LOC *O
  316.  
  317.  
  318. * DAYFILE MESSAGES.
  319.  
  320.  
  321. DMBA DATA C* VEJ - BUFFER ARGUMENT ERROR.*
  322. DMIR DATA C* VEJ - INCORRECT REQUEST.*
  323. AIF TITLE SUBROUTINES.
  324. ** AIF - ASSIGN INPUT FILE.
  325. *
  326. * EXIT (FA) = RELATIVE FNT ADDRESS IN NFL.
  327. * (QA) = QFT ORDINAL.
  328. * (T5) = EQUIPMENT.
  329. * (T6) = FIRST TRACK.
  330. * (FN - FN+4) = FNT ENTRY.
  331. * (FS - FS+4) = FST INFORMATION.
  332. *
  333. * ERROR TO ERROR PROCESSOR IF DEVICE FULL OR ERROR FROM *0DF*.
  334. *
  335. * USES T5, T6, CM - CM+7, FN - FN+4, FS - FS+2,
  336. * FS+4, QA.
  337. *
  338. * CALLS CTE, DRF, GFO, *0BF*, *0DF*.
  339. *
  340. * MACROS ERROR, EXECUTE, MONITOR, SFA.
  341.  
  342.  
  343. AIF SUBR ENTRY/EXIT
  344.  
  345. * ASSIGN QFT ENTRY.
  346.  
  347. LDN ZERL
  348. CRD CM+3
  349. LDN 7 SET CREATION, EJT AND INTERLOCK BITS
  350. STD CM+7
  351. LDN PQFT
  352. RJM CTE CREATE TABLE ENTRY
  353. ZJP AIF6 IF QFT ENTRY NOT ASSIGNED
  354. CRD FN
  355. CRM IOSS,ON
  356. SBN 1
  357. CRM OJSS,ON
  358. LDD CM+1 PRESERVE QFT ORDINAL
  359. STD QA
  360. LDN 0 ZERO FILE FILE NAME
  361. STD FN+2
  362. STD FN+3
  363. STD FN+4
  364.  
  365. * ASSIGN FNT/FST AND MASS STORAGE TO FILE.
  366.  
  367. AIF1 LDN NEEQ SELECT NO MASS STORAGE ASSIGNMENT
  368. STD FS
  369. LDM IOSS+5*INSQ+3 GET LOWER ACCESS LEVEL LIMIT OF JOB
  370. LPN 70
  371. SHN 3
  372. LMD TH SET ACCESS LEVEL ON *0BF* CALL
  373. ADN 5 RETURN ON NFL INCREASE, LOCAL FILE LIMIT
  374. STM OVL0-1
  375. EXECUTE 0BF,OVL0 BEGIN FILE
  376. UJN AIF2 CHECK RETURN STATUS
  377.  
  378. * PROCESS ADVANCE EXIT FROM *0BF* IF FILE ALREADY EXISTS.
  379.  
  380. NFA FA,R READ FNT ENTRY
  381. CRD FS
  382. RJM SFB SET FILE BUSY
  383. NJN AIF3 IF FILE BUSY REJECT
  384. LDN 1 DROP DUPLICATE FILE
  385. STM OVL0-1
  386. EXECUTE 0DF,OVL0
  387. PJN AIF4 IF FILE UNLOADED
  388. AOD FS+4
  389. NFA FA,R CLEAR FILE BUSY
  390. CWD FS
  391. ERROR ERUA * DEVICE UNAVAILABLE.*
  392.  
  393. * PROCESS LOCAL FILE LIMIT OR WAIT FOR NFL INCREASE.
  394.  
  395. AIF2 ZJN AIF5 IF FNT ENTRY CREATED
  396. LMN 4
  397. ZJP AIF6 IF LOCAL FILE LIMIT
  398. AIF3 PAUSE NE
  399. DELAY
  400. AIF4 LJM AIF1 RETRY FILE CREATION
  401.  
  402. * ASSIGN MASS STORAGE.
  403.  
  404. AIF5 LDN ZERL REQUEST MASS STORAGE SPACE
  405. CRD CM
  406. LDN 2
  407. STD CM+4
  408. LDN INPS
  409. STD CM+2
  410. LDM IOSS+5*INSQ+3 GET LOWER ACCESS LEVEL LIMIT OF JOB
  411. LPN 70
  412. SHN 3
  413. LMC 4000 SET ACCESS LEVEL SELECTION ON *RTCM*
  414. STD CM+3
  415. MONITOR RTCM REQUEST TRACK CHAIN
  416. LDD CM+4
  417. NJN AIF7 IF DISK SPACE ASSIGNED
  418.  
  419. * PROCESS DEVICE FULL.
  420.  
  421. LDD CP CONSOLE MESSAGE = *TRACK LIMIT.*
  422. ADN MS2W
  423. CWM AIFE,TR
  424. LDN ZERL CLEAR PARAMETERS
  425. CRD CM
  426. LDN TKLE SET TRACK LIMIT EVENT
  427. STD CM+4
  428. * LDN 0 SET SYSTEM EVENT
  429. * STD CM+3
  430. MONITOR EATM
  431. AIF6 RJM DRF DROP FILE
  432. ERROR ERFD *FNT/DEVICE FULL.*
  433.  
  434. * SET INFORMATION IN FNT/FST AND SYSTEM SECTOR.
  435.  
  436. AIF7 STD T6 SET FIRST TRACK
  437. STD FS+1
  438. STM IOSS+ENTQ*5+1
  439. STD FS+2 SET CURRENT TRACK
  440. LDD CM+1 SET EQUIPMENT
  441. STD FS
  442. STM IOSS+ENTQ*5+0
  443. STD T5
  444. LDC QFFT*100
  445. STD FN+4
  446. LDD MA SET FNT IN SYSTEM SECTOR
  447. CWD FN
  448. CRM FNSS,ON
  449. LDN 15 SET FILE NOT BUSY
  450. STD FS+4
  451. LDN 2 SET INITIAL FILE LENGTH
  452. STM FLSS+1
  453. LDC FLSS GET ADDRESS OF SYSTEM SECTOR FILE LENGTH
  454. RJM RFI SET FILE SIZE INDEX IN QFT ENTRY
  455. LDC 2RIN SET DISPOSITION CODE FIELD
  456. STM DCSS
  457. LDN 1 SET FILE PLACED IN QUEUE FLAG
  458. STM FGSS
  459. LDD CP ASSIGN QFT TO EJT
  460. ADN TFSW
  461. CRD CM
  462. LDD CM
  463. STM IOSS+ENTQ*5+4
  464. SFA EJT SET CREATION JSN
  465. ADK JSNE
  466. CRD CM
  467. LDD CM
  468. STM CJSS
  469. LDD CM+1
  470. STM CJSS+1
  471. LDC MMFL SET RESIDENT MACHINE ID
  472. CRD CM
  473. LDD CM
  474. STM RMSS
  475. STM CMSS
  476. LDN PDTL SET QUEUED DATE/TIME
  477. CRD CM
  478. LDD CM+2
  479. STM CDSS+2
  480. LDD CM+3
  481. STM CDSS+3
  482. LDD CM+4
  483. STM CDSS+4
  484. LDM ACSS+3 GET CREATION USER INDEX
  485. LPN 77
  486. STM IOSS+JSNQ*5+2
  487. LDM ACSS+4
  488. STM IOSS+JSNQ*5+3
  489.  
  490. * GET CREATION FAMILY ORDINAL.
  491.  
  492. LDD MA
  493. CWM FMSS,ON
  494. SBN 1
  495. CRD FN READ FAMILY NAME
  496. LDN 1
  497. RJM GFO
  498. LDD FN+4
  499. NJN AIF8 IF ORDINAL FOUND
  500. STM IOSS+JSNQ*5+2 SET NO CREATION USER
  501. STM IOSS+JSNQ*5+3
  502. UJN AIF9 MOVE FILE NAME TO FNT WORD
  503.  
  504. AIF8 SHN 6
  505. RAM IOSS+5*JSNQ+2
  506. AIF9 LDD MA MOVE FILE NAME TO FNT WORD
  507. CWM FNSS,ON
  508. SBN 1
  509. CRD FN
  510. LJM AIFX RETURN
  511.  
  512. AIFE DATA C* TRACK LIMIT.*
  513. CUT SPACE 4,10
  514. ** CUT - CONVERT USER NAME TO TID.
  515. *
  516. * ENTRY (T1+3 - T1+4) = TID FROM FET.
  517. * (OT) = ORIGIN TYPE.
  518. *
  519. * EXIT ROUTING INFORMATION SET IN SYSTEM SECTOR.
  520. *
  521. * USES T1, T2, CN - CN+4, FN - FN+4.
  522. *
  523. * CALLS GFO, VCA, *0AV*.
  524. *
  525. * MACROS ABORT, ERROR, EXECUTE.
  526.  
  527.  
  528. CUT4.1 LDD T1 CHECK USER INDEX
  529. SHN 14
  530. ADD T2
  531. ZJN CUT4.4 IF NO USER INDEX PRESENT
  532. STM DASS+4 SET DESTINATION TID (USER INDEX)
  533. STM IOSS+SCLQ*5+2
  534. SHN -14
  535. STM IOSS+SCLQ*5+1
  536. LDM DASS+3 COMBINE UI WITH 7TH CHARACTER OF UN
  537. SCN 77
  538. LMD T1
  539. STM DASS+3
  540. LDD MA GET FAMILY ORDINAL
  541. CWM FDSS,ON
  542. SBN 1
  543. CRD FN
  544. * LDN (NONZERO) DO NOT ADD FAMILY
  545. RJM GFO GET FAMILY ORDINAL
  546. LDD FN+4
  547. ZJN CUT4.4 IF FAMILY NOT FOUND
  548. SHN 6
  549. RAM IOSS+SCLQ*5+1
  550. UJN CUTX RETURN
  551.  
  552. CUT4.4 ERROR ERTD *INCORRECT TID*
  553.  
  554. CUT5 LDN 0 SET BATCH ID
  555. STM IOSS+SCLQ*5+1
  556. LDD T5
  557. STM IOSS+SCLQ*5+2
  558. SBN IDLM CHECK FOR INCORRECT ID
  559. PJN CUT4.4 IF INCORRECT TID
  560.  
  561. CUT SUBR ENTRY/EXIT
  562. LDD OT
  563. LMN EIOT
  564. NJN CUT5 IF NOT REMOTE BATCH
  565. LDD T1+3
  566. SHN -6
  567. LMN 77
  568. NJN CUT4.4 IF NOT COMPLEMENT OF ADDRESS
  569. LDD T1+3
  570. SHN 14
  571. LMN 77
  572. LMD T1+4
  573. LMC 777777
  574. RJM VCA VALIDATE CENTRAL ADDRESS
  575. ZJN CUT1 IF INCORRECT ADDRESS
  576. ADN 1
  577. RJM VCA VALIDATE CENTRAL ADDRESS
  578. NJN CUT2 IF VALID ADDRESS
  579. CUT1 ABORT ERBA * BUFFER ARGUMENT ERROR.*
  580.  
  581. CUT2 SHN 14 READ USER NAME
  582. ADD RA
  583. SHN 6
  584. CRD FN
  585. CRM DASS,ON
  586. SBN 2
  587. CRD CN
  588. CRM FDSS,ON
  589. LDD CN
  590. NJN CUT3 IF FAMILY NAME PRESENT
  591. LDC FOTP SET DEFAULT FAMILY NAME
  592. CRD CN
  593. LDD CN
  594. SHN 14
  595. LMD CN+1
  596. ADN 1
  597. CRD CN
  598. CRM FDSS,ON
  599. CUT3 LDD FN+3
  600. LPN 37
  601. STD T1
  602. SHN 14
  603. LMD FN+4
  604. STD T2
  605. NJN CUT4 IF USER INDEX PRESENT
  606. EXECUTE 0AV,OVL0 VALIDATE USER NAME
  607. PJN CUT4 IF NO ERROR
  608. ERROR ERUA * DEVICE UNAVAILABLE.*
  609.  
  610. CUT4 LJM CUT4.1 CHECK USER INDEX
  611. DRF SPACE 4,10
  612. ** DRF - DROP FILE AND QFT ENTRY.
  613. *
  614. * ENTRY (FA) = FNT ADDRESS.
  615. * (QA) = ORDINAL OF QFT ENTRY.
  616. *
  617. * EXIT (A) = (QA) = 0.
  618. *
  619. * CALLS *0DF*, *0DQ*.
  620. *
  621. * MACROS EXECUTE.
  622.  
  623.  
  624. DRF SUBR ENTRY/EXIT
  625. LDN 1
  626. STM OVL0-1 SELECT UNLOAD OPTION FOR *0DF*
  627. LDD FA
  628. ZJN DRF1 IF NO FILE
  629. EXECUTE 0DF,OVL0 DROP LOCAL FILE
  630. DRF1 LDD QA
  631. ZJN DRFX IF NO QFT ENTRY
  632. * LDN 1
  633. * STM OVL0-1 SELECT NO DROP OF DISK SPACE
  634. EXECUTE 0DQ,OVL0
  635. LDN 0 CLEAR QFT ORDINAL
  636. STD QA
  637. UJN DRFX RETURN
  638. GFA SPACE 4,5
  639. ** GFA - GET FET ADDRESS.
  640. *
  641. * ENTRY (IR+3 - IR+4) = FET ADDRESS.
  642. *
  643. * EXIT (A) = FET ADDRESS.
  644.  
  645.  
  646. GFA SUBR ENTRY/EXIT
  647. LDD IR+3
  648. LPN 37
  649. SHN 6
  650. ADD RA
  651. SHN 6
  652. ADD IR+4
  653. UJN GFAX RETURN
  654. WIF SPACE 4,25
  655. ** WIF - WRITE INPUT FILE.
  656. *
  657. * ENTRY (T5) = EQUIPMENT.
  658. * (T6) = FIRST TRACK.
  659. * (FA) = NFL FNT ENTRY OFFSET.
  660. * (FN - FN+4) = FNT ENTRY.
  661. * (FS - FS+4) = FST ENTRY.
  662. * (QA) = ORDINAL OF QFT ENTRY.
  663. * *BFMS* CONTAINS SYSTEM SECTOR BUFFER.
  664. *
  665. * EXIT (FA) = RELATIVE FNT ADDRESS IN NFL.
  666. *
  667. * ERROR TO *VEJ4*.
  668. *
  669. * USES FA, SC, T5, CM - CM+4, FN - FN+4, FS - FS+4.
  670. *
  671. * CALLS DRF, WEI, WSS.
  672. *
  673. * MACROS ENDMS, NFA, SETMS, SFA.
  674.  
  675.  
  676. WIF SUBR ENTRY/EXIT
  677.  
  678. * WRITE SYSTEM SECTOR AND EOI.
  679.  
  680. LDD FA
  681. ZJN WIFX IF NO FILE
  682. STM FASS SET FST ADDRESS IN SYSTEM SECTOR
  683. STD SC SAVE FNT OFFSET
  684. LDN FSMS
  685. STD FS+3
  686. NFA FA,R UPDATE FNT / FST IN NFL
  687. CWD FN
  688. ADN FSTL
  689. CWD FS
  690. LDD QA
  691. STM GQSS
  692. LDN 0 CLEAR FST ADDRESS
  693. STD FA
  694. SETMS IO,,WDSB
  695. RJM WSS WRITE SYSTEM SECTOR
  696. MJN WIF1 IF ERROR
  697. RJM WEI WRITE EOI SECTOR
  698. PJN WIF2 IF NO ERROR
  699. WIF1 LDD SC
  700. STD FA
  701. RJM DRF DROP FILE
  702. LJM VEJ4 RETRY ASSIGNING INPUT FILE
  703.  
  704. WIF2 ENDMS
  705. LDD SC UPDATE FNT/FST IN NFL
  706. STD FA
  707. LDN 2 UPDATE QFT ENTRY
  708. STM IOSS+JSNQ*5+4
  709. LDN QFTE-1
  710. STD T5
  711. SFA QFT,QA SET QFT ADDRESS
  712. ADN 1 WRITE QFT DATA
  713. CWM IOSS+5,T5
  714. SBN QFTE-JSNQ WRITE INTERLOCK WORD
  715. CWM IOSS,ON
  716. LJM WIFX RETURN
  717. VCA SPACE 4,10
  718. ** VCA - VALIDATE CENTRAL ADDRESS.
  719. *
  720. * ENTRY (A) = CENTRAL ADDRESS TO VALIDATE.
  721. *
  722. * EXIT (A) = 0, IF ADDR .LE. 1, OR .GE. FL.
  723. * (A) = CENTRAL ADDRESS IF VALID.
  724. * (T1 - T2) = CENTRAL ADDRESS.
  725.  
  726.  
  727. VCA1 STD T1 CLEAR UPPER PART OF ADDRESS
  728. VCA2 LDN 0 SET BAD ADDRESS
  729.  
  730. VCA SUBR ENTRY/EXIT
  731. STD T2
  732. SCN 1
  733. ZJN VCA1 IF ADDRESS .LE. 1
  734. SCN 77
  735. SHN 6
  736. STD T1
  737. SHN 6
  738. SBD FL
  739. PJN VCA2 IF ADDRESS .GE. FL
  740. LDD T1
  741. SHN 14
  742. LMD T2
  743. UJN VCAX RETURN
  744. SPACE 4
  745. * COMMON DECKS.
  746.  
  747.  
  748. SSJ$ EQU 1 ALLOW NON-SYSTEM ORIGIN SSJ= JOBS
  749. *CALL COMPCUA
  750. *CALL COMPCTE
  751. IFP$ SET 1 SELECT *COMPGFP* REMOTE INITIALIZATION
  752. QFT$ SET 1 SELECT *COMPGFP* QFT ADDRESSING
  753. EJT$ SET 1 SELECT *COMPGFP* EJT ADDRESSING
  754. *CALL COMPGFP
  755. *CALL COMPRFI
  756. *CALL COMPSFB
  757. GFO$ SET 1 SELECT *COMPUFT* GET FAMILY ORDINAL
  758. *CALL COMPUFT
  759. *CALL COMPWEI
  760. WCS$ EQU 1 CONSECUTIVE SECTOR AFTER SYSTEM SECTOR
  761. *CALL COMPWSS
  762. PRS TITLE PRESET.
  763. ** PRS - PRESET ROUTINE.
  764. *
  765. * EXIT (OT) = JOB ORIGIN TYPE.
  766. *
  767. * USES FA, QA, CM - CM+4, T1 - T5.
  768. *
  769. * CALLS CUT, DOT, GFA, IFP, VCA.
  770. *
  771. * MACROS ABORT.
  772.  
  773.  
  774. PRS SUBR ENTRY/EXIT
  775. LDN 0
  776. STD FA CLEAR FST ADDRESS
  777. STD QA CLEAR QFT ORDINAL
  778. RJM IFP INITIALIZE *COMPGFP* ROUTINES
  779. RJM DOT DETERMINE ORIGIN TYPE
  780. MJN PRS1 IF NOT SUBSYSTEM
  781. LDD IR+3 CHECK FET ADDRESS
  782. LPN 37
  783. SHN 14
  784. LMD IR+4
  785. RJM VCA VALIDATE CENTRAL ADDRESS
  786. ZJN PRS1 IF INCORRECT ADDRESS
  787. ADN 4
  788. RJM VCA VALIDATE CENTRAL ADDRESS
  789. NJN PRS2 IF VALID ADDRESS
  790. PRS1 ABORT ERIR * VEJ - INCORRECT REQUEST.*
  791.  
  792. * SET FET PARAMETERS.
  793.  
  794. PRS2 RJM GFA GET FET ADDRESS
  795. ADN 2
  796. CRD T1 READ LWA
  797. ADN 1
  798. CRD CM READ FWA
  799. LDD T1+3
  800. LPN 37
  801. STD T1+3
  802. SHN 14
  803. LMD T1+4
  804. SBN 1
  805. SHN -6
  806. SBD FL
  807. PJN PRS3 IF LWA .GE. FL
  808. LDD CM+3
  809. LPN 37
  810. STD CM+3
  811. LDD T1+3
  812. SBD CM+3
  813. SHN 14
  814. ADD T1+4
  815. SBD CM+4
  816. ZJN PRS3 IF ZERO WORD COUNT
  817. PJN PRS4 IF FWA .LE. LWA
  818. PRS3 ABORT ERBA * VEJ - BUFFER ARGUMENT ERROR.*
  819.  
  820. PRS4 STD T1
  821. SBN BUFL
  822. MJN PRS5 IF BUFFER LENGTH .LT. 18 CM WORDS
  823. LDN BUFL SET MAXIMUM BUFFER SIZE
  824. STD T1
  825. PRS5 LDD CM+3 READ JOB/USER COMMANDS FROM CM BUFFER
  826. SHN 6
  827. ADD RA
  828. SHN 6
  829. ADD CM+4
  830. CRM STMT,T1
  831.  
  832. * PROCESS TID.
  833.  
  834. RJM GFA READ TID
  835. ADN 1
  836. CRD T1
  837. LDC 501 CLEAR SYSTEM SECTOR
  838. STD T3
  839. PRS6 LDN 0
  840. STM BFMS,T3
  841. SOD T3
  842. PJN PRS6 IF NOT END OF BUFFER
  843. RJM CUT CONVERT USER NAME TO TID
  844.  
  845. * PROCESS ACCESS LEVEL.
  846.  
  847. LDK SSML CHECK OPERATING SYSTEM SECURITY MODE
  848. CRD CM
  849. LDD CM
  850. LPN 7
  851. ZJN PRS7 IF SYSTEM IN UNSECURED MODE
  852. RJM GFA READ *SP* BIT AND ACCESS LEVEL
  853. ADN 1
  854. CRD T1
  855. ADN 4-1
  856. CRD CM
  857. LDD T1+1
  858. LPN 10
  859. ZJN PRS7 IF *SP* BIT NOT SET
  860. AOM VEJA SET *ACCESS LEVEL SPECIFIED* FLAG
  861. LDD CM+1
  862. LPN 7
  863. RAM VEJB SET ACCESS LEVEL
  864. PRS7 LJM PRSX RETURN
  865. SPACE 4
  866. * BUFFERS AND OVERLAY ADDRESSES.
  867.  
  868.  
  869. STMT EQU * JOB AND USER COMMAND BUFFER
  870.  
  871. BUFL EQU 9D*2 COMMAND BUFFER LENGTH
  872. OVL0 EQU STMT+BUFL*5+10 OVERLAY LOAD ADDRESS
  873. WDSB EQU OVL0 WRITE ERROR PROCESSING BUFFER
  874. ERRNG BFMS-OVL0-ZAVL
  875. ERRNG EPFW-OVL0-ZBFL
  876. ERRNG BFMS-OVL0-ZDFL
  877. ERRNG BFMS-OVL0-ZDQL
  878. ERRNG BFMS-OVL0-ZVJL
  879. DOT SPACE 4,10
  880. ** DOT - DETERMINE ORIGIN TYPE OF CONTROL POINT.
  881. *
  882. * ENTRY NONE.
  883. *
  884. * EXIT (OT) = ORIGIN TYPE.
  885. * (A) .GE. 0, IF JOB IS VALID CALLER.
  886. *
  887. * USES T1, CM - CM+4, CN - CN+4.
  888. *
  889. * MACROS SFA.
  890.  
  891.  
  892. DOT3 LDD CP READ EJT ORDINAL FROM CP AREA
  893. ADN TFSW
  894. CRD CN
  895. SFA EJT,CN GET EJT ADDRESS
  896. ADN SCLE
  897. CRD CN
  898. LDD CN SET ORIGIN TYPE
  899. LPN 17
  900. STD OT
  901. LDD CM+2
  902. NJN DOTX IF VALID CALL
  903. LCN 0 FLAG INCORRECT CALL
  904.  
  905. DOT SUBR ENTRY/EXIT
  906. LDD CP READ SUBSYSTEM ID
  907. ADN JCIW
  908. CRD CM
  909. LDN 0
  910. STD T1
  911. DOT1 LDM TQPR,T1
  912. ZJN DOT3 IF END OF TABLE
  913. LMD CM+2
  914. ZJN DOT2 IF MATCH
  915. LDN TQPRE ADVANCE INDEX
  916. RAD T1
  917. UJN DOT1
  918.  
  919. DOT2 LDM TQPR+1,T1 SET ORIGIN TYPE
  920. STD OT
  921. UJN DOTX RETURN
  922.  
  923.  
  924. * TQPR - TABLE OF SUBSYSTEM ID-S.
  925. *
  926. *T 12/ SI, 12/ OT
  927. * SI = SUBSYSTEM ID.
  928. * OT = ORIGIN TYPE.
  929.  
  930.  
  931. TQPR BSS 0
  932. CON RBSI,EIOT RBF
  933. TQPRE EQU *-TQPR LENGTH OF AN ENTRY
  934. CON BISI,BCOT BATCHIO
  935. CON 0,0 END OF TABLE
  936. SPACE 4
  937. * COMMON DECKS.
  938.  
  939.  
  940. *CALL COMPCRS
  941. SPACE 4,10
  942. IFP HERE
  943. SPACE 4,10
  944. END