User Tools

Site Tools


cdc:nos2.source:opl871:enquire

ENQUIRE

Table Of Contents

  • [00011] ENQUIRE - ENQUIRE PROCESSOR.
  • [00124] MACRO DEFINITION.
  • [00126] INDEX - INDEX TABLE ENTRY GENERATION.
  • [00154] LDEF - LINE DEFINITION ENTRY GENERATION.
  • [00170] TABLE - GENERATE TABLE ENTRY.
  • [00185] PROGRAM CONSTANTS.
  • [00556] MAIN LOOP.
  • [01567] JSN= OPTION.
  • [01569] PEJ - PROCESS EQUIVALENCED JSN PARAMETER.
  • [01848] JSN OPTION.
  • [01850] PJS - PROCESS JSN PARAMETER.
  • [01960] UJN OPTION.
  • [01962] PUJ - PROCESS UJN PARAMETER.
  • [02107] SUBROUTINES.
  • [02109] BFB - BLANK FILL STRING BUFFER.
  • [02128] CFP - CHECK FOR END OF PAGE.
  • [02172] CIH - COMPUTE USER INDEX HASH.
  • [02211] CLM - CHECK AND CONVERT LIMIT.
  • [02241] CSD - CONVERT TO SIGNED DISPLAY CODE.
  • [02275] CSR - CONVERT SRU-S.
  • [02302] DTT - DETERMINE TIME UNTIL TIMEOUT.
  • [02342] ESB - ENTER DATA INTO STRING BUFFER.
  • [02376] GCS - GET CONNECTION STATUS.
  • [02408] GDR - GET DESTINATION ROUTING.
  • [02433] GJS - GET JOB STATUS.
  • [02481] GSC - GET SERVICE CLASS.
  • [02514] IPR - ISSUE PEEK REQUEST.
  • [02560] ISM - ISSUE MESSAGE.
  • [02598] LST - PROCESS FILE LENGTH, STATUS AND TYPE.
  • [02724] PSE - PROCESS SYSTEM ERROR.
  • [02738] RRB - RESET *QAC* REQUEST BUFFER.
  • [02787] WCL - WRITE DISPLAY CODED LINES.
  • [02860] WML - WRITE MESSAGE LINE.
  • [02922] BUFFER.
  • [02937] PRESET.
  • [02970] PRS - PRESET SUBROUTINE.
  • [03172] SAL - SET ALL OPTIONS.

Source Code

ENQUIRE.txt
  1. IDENT ENQUIRE,STR,ENQUIRE
  2. ABS
  3. SST
  4. SYSCOM B1
  5. ENTRY ENQUIRE
  6. ENTRY LENGTH
  7. ENTRY STATUS
  8. ENTRY RFL=
  9. ENTRY SSJ=
  10. ENTRY SSM=
  11. TITLE ENQUIRE - ENQUIRE PROCESSOR.
  12. SPACE 4,10
  13. *COMMENT ENQUIRE - ENQUIRE ABOUT JOB STATUS.
  14. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  15. SPACE 4,10
  16. **** ENQUIRE - PROVIDE JOB STATUS.
  17. * L. CLINTON 74/01/23.
  18. * D. D. SADLER 75/02/18.
  19. SPACE 4,10
  20. *** COMMAND FORMATS.
  21. *
  22. * ENQUIRE(O=LFN1,FN=LFN2,OP=X)
  23. * ENQUIRE(JSN=AAAA,O=LFN1)
  24. * ENQUIRE(JSN,O=LFN1)
  25. * ENQUIRE(UJN=BBBBBBB,O=LFN1)
  26. * ENQUIRE(UJN,O=LFN1)
  27. * ENQUIRE. - SAME AS ENQUIRE(OP=A).
  28. *
  29. * LENGTH(LFN2) - SAME AS ENQUIRE(FN=LFN2).
  30. *
  31. * STATUS(...) - SAME AS ENQUIRE(...).
  32. * STATUS. - SAME AS ENQUIRE.
  33. *
  34. * PARAMETERS ARE ORDER-INDEPENDENT, AND ABSENCE OF
  35. * A KEYWORD IMPLIES *OP*.
  36. *
  37. * LFN1 = OUTPUT FILE NAME. DEFAULT IS *OUTPUT*.
  38. *
  39. * LFN2 = USER-S FILE NAME TO SEARCH FOR.
  40. *
  41. * AAAA = JOB SEQUENCE NUMBER (JSN) TO SEARCH FOR.
  42. *
  43. * BBBBBBB = USER JOB NAME (UJN) TO SEARCH FOR.
  44. *
  45. * FOR THE *FN*, *JSN*, AND *UJN* PARAMETERS, WHEN THE
  46. * SPECIFIED FILE OR JOB IS NOT FOUND, AN INFORMATIVE
  47. * MESSAGE IS WRITTEN TO THE OUTPUT FILE IF IT IS
  48. * ASSIGNED TO A TERMINAL. OTHERWISE THE MESSAGE IS
  49. * WRITTEN TO THE USER-S DAYFILE.
  50. *
  51. * X = STRING OF CONCATENATED OPTION LETTERS SPECIFYING OPTIONS
  52. * TO BE EXECUTED. THE MAXIMUM NUMBER OF LETTERS IN THE
  53. * STRING IS 7. ENQUIRY INFORMATION IS RETURNED TO THE
  54. * OUTPUT FILE.
  55. *
  56. * THE POSSIBLE OPTION LETTERS ARE-
  57. * A = SELECTION OF ALL OPTIONS.
  58. * B = ENQUIRY INFORMATION GIVES USER IDENTIFICATION
  59. * AND HIS PRIORITIES.
  60. * D = ENQUIRY INFORMATION GIVES RESOURCE DEMAND AND
  61. * ASSIGNED COUNTS.
  62. * F = ENQUIRY INFORMATION IS IN SAME FORMAT AS THAT GIVEN
  63. * BY *FN* PARAMETER, BUT FOR ALL USER-S WORKING FILES.
  64. * NOTE - LENGTH VALUE DISPLAYED FOR EACH FILE
  65. * IS RELEVANT ONLY FOR MASS STORAGE FILES.
  66. * J = ENQUIRY INFORMATION GIVES CONTENTS OF USER-S
  67. * CONTROL REGISTERS AND ERROR FLAG REGISTER.
  68. * L = ENQUIRY INFORMATION GIVES LOADER INFORMATION,
  69. * AND CONSISTS OF USER-S MAP OPTIONS AND GLOBAL
  70. * LIBRARY SET.
  71. * R = ENQUIRY INFORMATION GIVES AMOUNT OF RESOURCES
  72. * USER HAS USED.
  73. * S = ENQUIRY INFORMATION GIVES USER-S CURRENT SRU VALUE.
  74. * T = ENQUIRY INFORMATION GIVES USER-S CURRENT CP TIME VALUE.
  75. * U = ENQUIRY INFORMATION GIVES RESOURCE USAGE ALLOWED
  76. * USER, AND CONSISTS OF NUMBER OF DAYFILE MESSAGES,
  77. * JOB STEP TIME AND SRU LIMITS, ACCOUNT BLOCK SRU LIMIT,
  78. * COMMANDS, DISPOSED FILES, AND MASS STORAGE
  79. * SPACE ALLOWED.
  80. SPACE 4,10
  81. *** DAYFILE MESSAGES.
  82. *
  83. * * ARGUMENT ERRORS.* = *ENQUIRE* CALL WAS NOT VALID.
  84. *
  85. * * ENQUIRE ABORTED.* = *ENQUIRE* HAS BEEN ABORTED AS A RESULT
  86. * OF A SYSTEM ERROR.
  87. *
  88. * * ENQUIRY COMPLETE.* = INFORMATIVE MESSAGE INDICATING THAT
  89. * THE ENQUIRY HAS COMPLETED.
  90. *
  91. * * FILE NOT FOUND.* = REQUESTED FILE COULD NOT BE FOUND.
  92. *
  93. * * INCORRECT OPTION X.* = OPTION *X* IS NOT DEFINED IN
  94. * *ENQUIRE*.
  95. *
  96. * * INCORRECT QUEUE TYPE.* = *ENQUIRE* WAS ABORTED DUE TO AN
  97. * INCORRECT QUEUE TYPE ERROR CODE RETURNED BY *QAC* ON A
  98. * PEEK REQUEST.
  99. *
  100. * * NO JOBS FOUND.* = NO JOBS WERE FOUND FOR THE USER.
  101. *
  102. * * NNNNNNN NOT FOUND.* = THE SPECIFIED JSN (JSN=NNNN)
  103. * OR UJN (UJN=NNNNNNN) WAS NOT FOUND.
  104. *
  105. * * QAC ERROR ENCOUNTERED.* = *ENQUIRE* WAS ABORTED DUE TO AN
  106. * UNEXPECTED ERROR CODE RETURNED BY *QAC*.
  107. SPACE 4,10
  108. ** COMMON DECKS.
  109.  
  110.  
  111. *CALL COMCCMD
  112. *CALL COMCMAC
  113. *CALL COMSEJT
  114. *CALL COMSJIO
  115. *CALL COMSLFD
  116. *CALL COMSMLS
  117. *CALL COMSPFM
  118. *CALL COMSQAC
  119. *CALL COMSREM
  120. *CALL COMSRSX
  121. *CALL COMSSCD
  122. *CALL COMSSFM
  123. *CALL COMSSSJ
  124. TITLE MACRO DEFINITION.
  125. SPACE 4,15
  126. ** INDEX - INDEX TABLE ENTRY GENERATION.
  127. *
  128. * INDEX GENERATES TABLES WHICH ARE TO BE INDEXED BY VALUES
  129. * WHICH MAY CHANGE DUE TO ASSEMBLY MODES OR OPTIONS.
  130. *
  131. * INDEX NAME,IND,ADD
  132. *
  133. * ENTRY *NAME* = NAME OF TABLE ENTRY.
  134. * *IND* = INDEX AT WHICH ENTRY IS TO BE PLACED.
  135. * *ADD* = ADDRESS FIELD OF ENTRY GENERATION INSTRUCTION.
  136.  
  137.  
  138. PURGMAC INDEX
  139.  
  140. MACRO INDEX,NAME,IND,ADD
  141. IFC NE,*NAME**
  142. NAME CON 0
  143. .1 SET NAME
  144. BSSZ IND-1
  145. ELSE
  146. ORG .1+IND
  147. IFC NE,*ADD**,2
  148. LOC IND
  149. CON ADD
  150. BSS 0
  151. ENDIF
  152. INDEX ENDM
  153. SPACE 4,10
  154. ** LDEF - LINE DEFINITION ENTRY GENERATION.
  155. *
  156. * LDEF WO,CL
  157. *
  158. * ENTRY WO = WORD OFFSET INTO STRING BUFFER.
  159. * CL = NUMBER OF CHARACTERS TO ENTER INTO STRING BUFFER.
  160. *
  161. *T 24/0, 18/WO, 18/CL
  162.  
  163.  
  164. PURGMAC LDEF
  165.  
  166. LDEF MACRO WO,CL
  167. VFD 24/0,18/WO,18/CL
  168. LDEF ENDM
  169. SPACE 4,10
  170. ** TABLE - GENERATE TABLE ENTRY.
  171. *
  172. * TABLE A,B
  173. *
  174. * ENTRY A = NUMERIC VALUE.
  175. * B = NUMERIC VALUE.
  176. *
  177. *T 18/A, 24/0, 18/B
  178.  
  179.  
  180. PURGMAC TABLE
  181.  
  182. TABLE MACRO A,B
  183. VFD 18/A,24/0,18/B
  184. TABLE ENDM
  185. TITLE PROGRAM CONSTANTS.
  186. SPACE 4,10
  187. ** PROGRAM CONSTANTS.
  188.  
  189.  
  190. ORG 110B
  191. STR BSS 0
  192.  
  193. * SSJ CONTROL.
  194.  
  195. SSJ= EQU SSJD SSJ= PRIVILEGES ONLY AND DROP FILES
  196.  
  197. * BUFFER PARAMETERS.
  198.  
  199. FBUFL EQU 1+2*MXLF+1 *GETFNT*/COMMAND BUFFER LENGTH
  200. OBUFL EQU 201B OUTPUT BUFFER LENGTH
  201. LBUFL EQU 25 LIBRARY BUFFER LENGTH
  202. RBUFL EQU 300B REPLY BUFFER LENGTH
  203. USBBL EQU 92 UNPACK STRING BUFFER LENGTH
  204. USBL$ EQU 1 VARIABLE LENGTH OPTION FOR UNPACK BUFFER
  205. WBUFL EQU 10B WORKING BUFFER LENGTH
  206. NCST EQU 10B COMMAND COUNT
  207. NUMQ EQU 6 NUMBER OF QUEUE TYPES
  208.  
  209. TBUFL MAX LBUFL,RBUFL,WBUFL SCRATCH BUFFER LENGTH
  210.  
  211. * PRINTER CONTROL CHARACTERS.
  212.  
  213. PAGE DATA 1L1 PAGE EJECT
  214. TRPL DATA 1L- TRIPLE SPACE
  215. SPACE 4,10
  216. * STATUS MESSAGES.
  217.  
  218. INQM DATA L*INPUT QUEUE *
  219. PRQM DATA L*PRINT QUEUE *
  220. PHQM DATA L*PUNCH QUEUE *
  221. PLQM DATA L*PLOT QUEUE *
  222. WTQM DATA L*WAIT QUEUE *
  223. PRSM DATA L*ROLLED *
  224. EXSM DATA L*EXECUTING *
  225. ROSM DATA L*ROLLED *
  226. SISM DATA L*SCP ROLLIN *
  227. SOSM DATA L*SCP ROLLOUT *
  228. TOSM DATA L*T/E ROLLOUT *
  229. IOSM DATA L*ROLLED *
  230. DOSM DATA L*IDLE *
  231. SUSM DATA L*SUSP XXX MIN*
  232. PCSM DATA L*PCP ROLLOUT *
  233. ERSM DATA L*ROLLOUT ERROR*
  234. SWSM DATA L*SERVICE WAIT *
  235. SPACE 4,10
  236. * ERROR MESSAGES.
  237.  
  238. EMSA DATA L* ENQUIRE ABORTED.*
  239. EMSB DATA L* INCORRECT QUEUE TYPE. *
  240. EMSC DATA L* NO JOBS FOUND.*
  241. EMSD DATA L* NOT FOUND. *
  242. EMSE DATA L* QAC ERROR ENCOUNTERED.*
  243. EMSF DATA L* ENQUIRY COMPLETE.*
  244. FETS SPACE 4,10
  245. * FETS.
  246.  
  247. O BSS 0
  248. OUTPUT FILEB OBUF,OBUFL,FET=9 OUTPUT
  249.  
  250. F BSS 0
  251. FILEFET RFILEB FBUF,FBUFL,FET=9 *GETFNT*/COMMAND FILE
  252. SPACE 4,10
  253. ** *QAC* PARAMETER BLOCK.
  254.  
  255. BQAC VFD 50/0,9/PKFC,1/0 REQUEST PREFIX PORTION
  256. VFD 36/0,6/11,18/RBUF
  257. VFD 42/0,18/RBUF
  258. VFD 42/0,18/RBUF
  259. VFD 42/0,18/RBUF+RBUFL
  260. BQSC VFD 60/0 SELECTION CRITERIA PORTION
  261. VFD 60/0
  262. VFD 24/0,24/DLSF,12/ZPSF
  263. VFD 12/77B,48/0
  264. VFD 18/0,18/3R***,24/0
  265. VFD 60/0
  266. VFD 60/0
  267. BQPF VFD 60/-0 PEEK FUNCTION PORTION
  268. VFD 12/-0,48/0
  269. VFD 60/0
  270. VFD 60/0
  271.  
  272. * PEEK INFORMATION BITS.
  273.  
  274. PIUJ BSS 0 UJN PARAMETERS
  275. VFD 36/0
  276. VFD 12/LDPB+M2PB+M1PB+ESPB
  277. VFD 12/UJPB+FUPB+OTPB+JSPB
  278. PIJS BSS 0 JSN PARAMETERS
  279. VFD 36/0
  280. VFD 12/LDPB+ESPB
  281. VFD 12/FUPB+OTPB+JSPB
  282. PIEJ BSS 0 EQUIVALENCED JSN PARAMETERS
  283. VFD 24/0
  284. VFD 12/ALPB
  285. VFD 12/LDPB+CSPB+DYPB+ASPB+SLPB+M2PB+M1PB+ESPB+FLPB
  286. VFD 12/UJPB+FUPB+UNPB+PRPB+OTPB+JSPB
  287. SPACE 4,10
  288. ** RSB CONTROL WORDS.
  289.  
  290.  
  291. * CALL BLOCK TO READ CONTROL POINT AREA.
  292.  
  293. STAT1 VFD 12/0,12/100B,18/0,18/BUFF
  294. VFD 24/0,18/1,18/0
  295.  
  296. STAT2 VFD 12/0,12/100B,18/0,18/BUFF+100B
  297. VFD 24/0,18/1,18/100B
  298. SPACE 4,10
  299. ** MISCELLANEOUS CONTROL WORDS.
  300.  
  301.  
  302. * GETFNT CONTROL WORD.
  303.  
  304. GFNT VFD 12/MXLF,6/0,18/0,2/0,1/1,1/1,1/1,1/0,18/FBUF
  305.  
  306. * GETGLS CONTROL WORD.
  307.  
  308. GGLS VFD 6/0,18/LBUF+3,36/0
  309.  
  310. * GET PRIMARY FILE CONTROL.
  311.  
  312. PRIM DECMIC PTFT
  313. GPRM VFD 12/1,24/1S"PRIM",2/0,1/1,3/5,18/FBUF
  314. SPACE 4,10
  315. ** CONSTANTS.
  316.  
  317.  
  318. ACAT CON 0 ACCESS CATEGORIES
  319. ALVL CON 0 ACCESS LEVEL
  320. FT CON 1 FILE TYPE (PRESET AS NON-TERMINAL TYPE)
  321. FCT CON 0 FILE COUNT
  322. JSNM CON 0 JOB SEQUENCE NUMBER
  323. LCT CON 0 LINE COUNT
  324. LLM CON 0 LINE LIMIT
  325. JPPW BSS 2 JOB PAGE PARAMETER WORD
  326. MXLC EQU 10 MAXIMUM LINE COUNT
  327. MXLL EQU 92 MAXIMUM LINE LENGTH (CHARACTERS)
  328. OPAL CON 0 EXECUTION FLAG WORD
  329. MLPY CON 0.0001P48+1 SRU CONSTANT (=.0001)
  330. NASV VFD 6/77B,54/0 NEGATIVE (INCORRECT) ASSUMED VALUE
  331. SSFL CON 0 SECURE SYSTEM FLAG
  332. CSFP BSSZ 1 COMMAND FILE POSITION
  333. UESC VFD 1/1,59/0 USER EM SHIFT COUNT
  334.  
  335. * MULTIPLIER TO CONVERT QUARTER-NANOSECONDS TO MILLISECONDS.
  336.  
  337. OPA DATA 0.25E-6
  338.  
  339. * PARAMETER ENTRY TABLE.
  340.  
  341. TAGS CON 0 OPTION
  342. CON 0 OUTPUT FILE NAME
  343. CON 0 FILE NAME TO SEARCH FOR
  344. CON 0 JSN PARAMETER VALUE
  345. CON 0 UJN PARAMETER VALUE
  346.  
  347. * OPTION TABLE.
  348.  
  349. OPNS VFD 6/0LA,36/0,18/0
  350. VFD 6/0LB,36/0,18/OPB
  351. VFD 6/0LD,36/0,18/OPD
  352. VFD 6/0LR,36/0,18/OPR
  353. VFD 6/0LU,36/0,18/OPU
  354. VFD 6/0LJ,36/0,18/OPJ
  355. VFD 6/0LL,36/0,18/OPL
  356. VFD 6/0LF,36/0,18/OPF
  357. VFD 6/0LT,36/0,18/OPT
  358. VFD 6/0LS,36/0,18/OPS
  359. VFD 60/0
  360.  
  361. * EXECUTION BIT MASK FOR OPTION TABLE.
  362.  
  363. EBIT DATA 00000000000077000000B
  364. SPACE 4,10
  365. ** SUB-SYSTEM TABLE.
  366.  
  367.  
  368. SSTB INDEX MSYS
  369. INDEX NULS,(0L"NULS".)
  370. INDEX BASS,(0L"BASS".)
  371. INDEX FORS,(0L"FORS".)
  372. INDEX FTNS,(0L"FTNS".)
  373. INDEX EXES,(0L"EXES".)
  374. INDEX BATS,(0L"BATS".)
  375. INDEX ACCS,(0L"ACCS".)
  376. INDEX MSYS
  377. SPACE 4,10
  378. ** EXTERNAL CHARACTERISTICS TABLES.
  379.  
  380.  
  381. * EXTERNAL CHARACTERISTICS QUEUE TYPE TABLE.
  382.  
  383. QTEC BSS 0
  384. TABLE PRQQ,PREC
  385. TABLE PHQQ,PHEC
  386. TABLE PLQQ,PLEC
  387. CON 0
  388.  
  389. * PRINT QUEUE EXTERNAL CHARACTERISTICS EQUIVALENCES TABLE.
  390.  
  391. PREC INDEX 7
  392. INDEX DFEX,(5L )
  393. INDEX A4EX,(5LA4 )
  394. INDEX B4EX,(5LB4 )
  395. INDEX B6EX,(5LB6 )
  396. INDEX A6EX,(5LA6 )
  397. INDEX A9EX,(5LA9 )
  398. INDEX 7
  399.  
  400. * PUNCH QUEUE EXTERNAL CHARACTERISTICS EQUIVALENCES TABLE.
  401.  
  402. PHEC INDEX 7
  403. INDEX DFFR,(5L )
  404. INDEX PBFR,(5LSB )
  405. INDEX P8FR,(5L80COL)
  406. INDEX PHFR,(5LO26 )
  407. INDEX P9FR,(5LO29 )
  408. INDEX ASFR,(5LASCII)
  409. INDEX 7
  410.  
  411. * PLOT QUEUE EXTERNAL CHARACTERISTICS EQUIVALENCES TABLE.
  412.  
  413. PLEC INDEX 3
  414. INDEX T6EX,(5LT6 )
  415. INDEX T8EX,(5LT8 )
  416. INDEX 3
  417. FLST SPACE 4,10
  418. ** STATUS TABLE (LAST OPERATION IS PRESET AS *READ*).
  419.  
  420.  
  421. FLST BSS 0
  422. DATA H* I/C *
  423. DATA H* EOR *
  424. DATA H* EOF *
  425. DATA H* EOI *
  426. DATA H* BOI *
  427. FLTY SPACE 4,10
  428. ** FILE TYPE TABLE.
  429. *
  430. *T,FLTY VFD 12/DCFT,42/ADDR
  431. * DCFT = DISPLAY CODED FILE TYPE.
  432. * ADDR = MESSAGE ADDRESS.
  433.  
  434.  
  435. FLTY INDEX MXFT
  436. INDEX INFT,(3LIN.) INPUT
  437. INDEX ROFT,(3LRO.) ROLLOUT
  438. INDEX QFFT,(3LQF.) QUEUED
  439. INDEX SYFT,(3LSY.) SYSTEM
  440. INDEX LOFT,(3LLO.) LOCAL
  441. INDEX LIFT,(3LLI.) LIBRARY
  442. INDEX PTFT,(3LPT.) PRIMARY TERMINAL
  443. INDEX PMFT,(3LPM.) DIRECT ACCES PERMANENT
  444. INDEX FAFT,(3LFA.) FAST ATTACH
  445. INDEX MXFT
  446. FSTT SPACE 4,10
  447. ** FILE STATUS TABLE.
  448. *
  449. *T,FSTT 24/DCFS,36/0
  450. * DCFS = DISPLAY CODED FILE STATUS.
  451.  
  452.  
  453. FSTT INDEX MXST
  454. INDEX 0,(4L )
  455. INDEX UPST,(4L UP )
  456. INDEX SSST,(4L SS )
  457. INDEX CBST,(4L CB )
  458. INDEX CKST,(4L CK )
  459. INDEX SOST,(4L SO )
  460. INDEX AAST,(4L AA )
  461. INDEX NDST,(4L NAD)
  462. INDEX MXST
  463. QTST SPACE 4,10
  464. ** QUEUE TYPE STATUS TABLE.
  465.  
  466. QTST BSS 0
  467. TABLE INQQ,INQM
  468. TABLE EXQQ,0
  469. TABLE PRQQ,PRQM
  470. TABLE PHQQ,PHQM
  471. TABLE PLQQ,PLQM
  472. TABLE WTQQ,WTQM
  473. CON 0
  474. CNST SPACE 4,10
  475. ** EXECUTING JOB CONNECTION STATUS.
  476.  
  477. CNST INDEX MXCS
  478. INDEX NICS,(2LNI) NOT INTERACTIVE
  479. INDEX DTCS,(2LDT) DETACHED
  480. INDEX OLCS,(2LON) ON-LINE
  481. INDEX MXCS
  482. EJST SPACE 4,10
  483. ** EJT STATUS TABLE.
  484.  
  485. EJST INDEX MXJS
  486. INDEX PRJS,PRSM
  487. INDEX EXJS,EXSM
  488. INDEX ROJS,ROSM
  489. INDEX SIJS,SISM
  490. INDEX SOJS,SOSM
  491. INDEX TOJS,TOSM
  492. INDEX IOJS,IOSM
  493. INDEX DOJS,DOSM
  494. INDEX SUJS,SUSM
  495. INDEX PCJS,PCSM
  496. INDEX ERJS,ERSM
  497. INDEX SWJS,SWSM
  498. INDEX MXJS
  499. SPACE 4,10
  500. ** LINE DEFINITION TABLES.
  501. *
  502. * THE LINE DEFINITION TABLES DEFINE THE WORD OFFSET INTO
  503. * A STRING BUFFER AND THE NUMBER OF CHARACTERS TO ENTER
  504. * INTO THE BUFFER FOR DATA TO BE WRITTEN TO THE OUTPUT
  505. * FILE. THIS DEFINES THE FORMAT OF THE OUTPUT LINES.
  506.  
  507.  
  508. * UJN OUTPUT LINE.
  509.  
  510. L1UL LDEF 00,70 LINE 1 SKELETON
  511. JSUL LDEF 01,04 JSN
  512. SCUL LDEF 06,01 SERVICE CLASS
  513. CNUL LDEF 08,02 CONNECTION STATUS
  514. DSUL LDEF 11,02 DESTINATION ROUTING
  515. LIUL LDEF 14,03 LID
  516. UJUL LDEF 18,07 UJN
  517. STUL LDEF 27,13 STATUS
  518. EMUL LDEF 42,30 EXECUTING MESSAGE
  519.  
  520. * JSN OUTPUT LINES.
  521. *
  522. * *JSJL*, *SCJL* AND *STJL* ARE USED TO DEFINE THE FORMAT
  523. * OF OUTPUT LINES WHEN INFORMATION ABOUT A SPECIFIC JOB
  524. * IS REQUESTED (JSN PARAMETER EQUIVALENCED), AND ALSO WHEN
  525. * INFORMATION ABOUT ALL JOBS OWNED BY A USER IS REQUESTED
  526. * (JSN PARAMETER UNEQUIVALENCED).
  527.  
  528. L1JL LDEF 00,69 LINE 1 SKELETON
  529. JSJL LDEF 01,04 JSN, COLUMN 1
  530. LDEF 40,04 JSN, COLUMN 2
  531. SCJL LDEF 06,01 SERVICE CLASS, COLUMN 1
  532. LDEF 45,01 SERVICE CLASS, COLUMN 2
  533. CNJL LDEF 08,02 CONNECTION STATUS, COLUMN 1
  534. LDEF 47,02 CONNECTION STATUS, COLUMN 2
  535. DSJL LDEF 11,02 DESTINATION ROUTING, COLUMN 1
  536. LDEF 50,02 DESTINATION ROUTING, COLUMN 2
  537. LIJL LDEF 14,03 LID, COLUMN 1
  538. LDEF 53,03 LID, COLUMN 2
  539. STJL LDEF 18,13 STATUS, COLUMN 1
  540. LDEF 57,13 STATUS, COLUMN 2
  541. UJJL LDEF 46,07 UJN
  542. ALJL LDEF 62,07 ACCESS LEVEL
  543.  
  544. L2JL LDEF 00,70 LINE 2 SKELETON
  545. SUJL LDEF 06,10 SRU ACCUMULATOR
  546. SLJL LDEF 29,08 SRU LIMIT
  547. CFJL LDEF 46,06 CM FL
  548. EFJL LDEF 62,07 EXTENDED MEMORY FL
  549.  
  550. L3JL LDEF 00,56 LINE 3 SKELETON
  551. PLJL LDEF 12,08 PRU LENGTH
  552. DCJL LDEF 26,02 DISPOSITION CODE
  553. FCJL LDEF 34,02 FORMS CODE
  554. IDJL LDEF 42,02 DESTINATION BATCH DEVICE ID
  555. ECJL LDEF 50,05 EXTERNAL CHARACTERISTICS
  556. TITLE MAIN LOOP.
  557. ** MAIN PROGRAM.
  558.  
  559.  
  560. MAIN BSS 0
  561. SYSTEM RSB,R,STAT1 READ FIRST 100B WORDS OF CPA
  562. SYSTEM RSB,R,STAT2 READ SECOND 100B WORDS OF CPA
  563.  
  564. MAIN1 SA5 OPNS+1 OPTION TABLE
  565. SA4 EBIT EXECUTION BIT MASK
  566. MAIN2 ZR X5,MAIN5 IF END OF OPTION TABLE
  567. BX6 X4*X5 CHECK FOR EXECUTION BIT
  568. NZ X6,MAIN3 IF OPTION TO BE EXECUTED
  569. SA5 A5+1 CHECK NEXT OPTION
  570. EQ MAIN2
  571.  
  572. MAIN3 SA2 FT FILE TYPE
  573. ZR X2,MAIN4 IF TERMINAL FILE
  574. SB3 X5
  575. SA1 OPF
  576. SB2 A1
  577. SB3 B3-B2
  578. ZR B3,MAIN4 IF OP=F OPTION TO BE EXECUTED
  579. WRITEW OUTPUT,PAGE,B1 PAGE EJECT
  580. SA2 TRPL TRIPLE SPACE
  581. BX6 X2
  582. SA6 PAGE SET TRIPLE SPACE
  583. SA4 EBIT RESET MASK FOR NEXT OPTION
  584. MAIN4 SB2 X5 PICK UP PROCESSOR ADDRESS
  585. BX6 -X4*X5 CLEAR EXECUTION BIT
  586. SA6 A5
  587. JP B2
  588.  
  589. * PROCESS JSN.
  590.  
  591. MAIN5 SA5 TAGS+3
  592. ZR X5,MAIN5.2 IF JSN NOT SPECIFIED
  593. MX0 24
  594. BX5 X0*X5
  595. ZR X5,MAIN5.1 IF UNEQUIVALENCED JSN PARAMETER SPECIFIED
  596. MX0 -42
  597. BX1 -X0*X5
  598. NZ X1,MAIN5.0 IF FOUR-CHARACTER JSN
  599. SX0 1R APPEND SPACE
  600. LX0 36-0
  601. BX5 X5+X0
  602. MAIN5.0 RJ PEJ LIST STATUS OF SPECIFIED JSN
  603. EQ MAIN7 COMPLETE ENQUIRY
  604.  
  605. MAIN5.1 RJ PJS LIST STATUS OF ALL JSN-S
  606. EQ MAIN7 COMPLETE ENQUIRY
  607.  
  608. * PROCESS UJN.
  609.  
  610. MAIN5.2 SA5 TAGS+4
  611. ZR X5,MAIN6 IF UJN NOT SPECIFIED
  612. RJ PUJ LIST STATUS OF JOBS BY UJN
  613. EQ MAIN7 COMPLETE ENQUIRY
  614.  
  615. * PROCESS FILENAME.
  616.  
  617. MAIN6 SA1 TAGS+2 CHECK FILENAME
  618. ZR X1,MAIN7 IF NO FILENAME
  619. JP FNA
  620.  
  621. MAIN7 SA1 O+2 CHECK FOR NO OUTPUT
  622. SA2 A1+B1
  623. BX6 X1-X2
  624. ZR X6,MAIN8 IF NO OUTPUT
  625. WRITER OUTPUT
  626. MAIN8 SA1 FT
  627. ZR X1,MAIN9 IF TERMINAL FILE
  628. MESSAGE EMSF,3 * ENQUIRY COMPLETE.*
  629. MAIN9 ENDRUN
  630. FNA TITLE FN OPTION.
  631. ** THE *FN=FILENAME* FUNCTION RETURNS THE STATUS OF THE
  632. * FILE SPECIFIED BY THE USER. THE *FN=FILENAME* FUNCTION IS
  633. * EXECUTED ONLY IF THE *OP=F* OPTION IS NOT SPECIFIED.
  634. * THE FOLLOWING INFORMATION IS GIVEN FOR THE SPECIFIED FILE
  635. * *FILENAME* *LENGTH/PRUS* *TYPE* *STATUS* *FS* *LEVEL*.
  636.  
  637.  
  638. FNA MX0 42
  639. MX7 0 CLEAR FIRST WORD OF BUFFER
  640. SA7 FBUF
  641. FNA0 SA2 GFNT STATUS WORD TO RETURN FILES
  642. BX6 X2
  643. SA6 FILEFET+8
  644. GETFNT FILEFET
  645. SA5 FBUF-1 INITIALIZE FILE NAME SEARCH
  646. SA1 TAGS+2 FILE NAME
  647. FNA1 SA5 A5+2
  648. ZR X5,FNA3 IF END OF FNTS
  649. BX3 X0*X5
  650. BX3 X3-X1
  651. NZ X3,FNA1 IF NO MATCH
  652. SA1 FT TERMINAL FILE CONSTANT
  653. ZR X1,FNA2 IF TERMINAL FILE
  654. WRITEW OUTPUT,PAGE,B1 CARRIAGE CONTROL
  655. FNA2 WRITEW OUTPUT,FOP,FOPA
  656. RJ LST LIST FILE
  657. EQ MAIN7 RETURN
  658.  
  659. FNA3 SA4 FBUF BUFFER CONTROL WORD
  660. NZ X4,FNA0 IF MORE FILES TO GET
  661. SA2 =L* FILE NOT FOUND.*
  662. SX1 B0+
  663. RJ ISM ISSUE MESSAGE
  664. EQ MAIN7 RETURN
  665. OPB TITLE B OPTION.
  666. ** THE *OP=B* OPTION RETURNS TO THE USER INFORMATION THAT IS
  667. * READ FROM HIS CONTROL POINT AREA. INFORMATION SUCH AS
  668. * USER NAME, USER INDEX, USER PRIORITIES IS RETURNED TO
  669. * THE CALLER. THE USER PRIMARY FILENAME IS RETURNED IF
  670. * HE HAS ONE AND THE SUBSYSTEM HE IS USING.INFORMATION
  671. * ABOUT THE USER FIELD LENGTH, FAMILY AND PACK NAME IS
  672. * GIVEN. IF SECURE SYSTEM, INFORMATION ABOUT SECURITY
  673. * ACCESS LEVELS AND ACCESS CATEGORIES IS ALSO GIVEN.
  674.  
  675.  
  676.  
  677. * PROCESS PRIORITIES.
  678.  
  679. OPB BSS 0 ENTRY
  680. SA5 BUFF+CWQW GET CPU PRIORITY
  681. AX5 51
  682. MX3 -7
  683. BX1 -X3*X5 CPU PRIORITY
  684. RJ COD CONVERT TO OCTAL DISPLAY CODE
  685. MX0 12
  686. BX6 X0*X4
  687. SA6 BOCP+2
  688.  
  689. * PROCESS FAMILY NAME AND PACK NAME, IF ANY.
  690.  
  691. GETPFP WBUF GET PERMANENT FILE INFORMATION
  692. SA1 WBUF
  693. MX0 42
  694. BX6 X0*X1
  695. ZR X6,OPB1 IF NO FAMILY NAME
  696. SA6 BOFM+2
  697. OPB1 SA1 A1+B1
  698. BX6 X0*X1
  699. ZR X6,OPB1.1 IF NO PACK NAME IN CPA
  700. SA6 BOPN+2 SET PACK NAME
  701. BX6 -X0*X1
  702. LX6 42
  703. SA6 BOPN+5 SET PACK TYPE
  704. NZ X6,OPB2 IF PACK TYPE SPECIFIED IN CPA
  705. OPB1.1 SYSTEM RSB,R,OPBC READ PFNL WORD
  706. SA1 OPBD GET SYSTEM DEFAULT PACK TYPE
  707. MX6 18
  708. BX6 X6*X1
  709. SA6 BOPN+5 SET PACK TYPE
  710.  
  711. * PROCESS USER NAME AND USER INDEX.
  712.  
  713. OPB2 SA5 BUFF+UIDW USER NAME
  714. MX4 -18
  715. BX6 X4*X5
  716. SA6 BOUN+2
  717.  
  718. * PROCESS HASH CODE AND JOB SEQUENCE NAME.
  719.  
  720. MX4 -17
  721. BX7 -X4*X5
  722. RJ CIH COMPUTE USER INDEX HASH
  723. SA7 BOUH+2
  724. GETJN BOJS+2 GET JSN
  725.  
  726. * PROCESS CHARGE AND PROJECT NUMBER.
  727.  
  728. GETCN WBUF GET CHARGE NUMBER INFORMATION
  729. SA1 WBUF SET CHARGE NUMBER
  730. ZR X1,OPB2.1 IF NO CHARGE NUMBER
  731. RJ SFN SPACE FILL NAME
  732. SA6 BOCN+2
  733. SA1 WBUF+1 SET PROJECT NUMBER
  734. ZR X1,OPB2.1 IF NO PROJECT NUMBER
  735. RJ SFN SPACE FILL NAME
  736. SA6 BOPJ+2
  737. SA1 WBUF+2
  738. RJ SFN SPACE FILL NAME
  739. SA6 BOPJ+3
  740.  
  741. * PROCESS PRIMARY FILE.
  742.  
  743. OPB2.1 SA1 GPRM SET OPTIONS FOR GETFNT
  744. BX6 X1
  745. MX7 0 CLEAR BUFFER CONTROL WORD
  746. SA7 FBUF
  747. SA6 FILEFET+8 GETFNT STATUS WORD
  748. GETFNT FILEFET GET PRIMARY FILE NAME
  749. MX6 0 CLEAR STATUS WORD
  750. SA6 FILEFET+8
  751. SA2 FBUF+1
  752. MX0 42
  753. BX1 X0*X2
  754. ZR X1,OPB3 IF NO PRIMARY FILE
  755. RJ SFN SPACE FILL NAME
  756. SA6 BOPF+2
  757. SA2 A2+1
  758. LX2 59-8
  759. PL X2,OPB3 IF FILE ACCESSIBLE
  760. SA2 OPBB
  761. BX6 X2
  762. SA6 BOPF+3
  763.  
  764. * PROCESS SUBSYSTEM.
  765.  
  766. OPB3 SA2 BUFF+TXSW TELEX SUBSYSTEM WORD
  767. MX0 -6
  768. LX2 6
  769. BX1 -X0*X2 SUB-SYSTEM TABLE INDEX
  770. SB3 X1-MSYS
  771. PL B3,OPB4 IF INCORRECT SUB-SYSTEM
  772. SA1 SSTB+X1 SUB-SYSTEM TABLE
  773. BX6 X1
  774. SA6 BOSU+2
  775.  
  776. * PROCESS FIELD LENGTH.
  777.  
  778. OPB4 SA3 UESC GET USER EM SHIFT COUNT
  779. SA5 BUFF+ELCW EXTENDED MEMORY STATUS WORD
  780. MX0 -12
  781. SB5 X3+9
  782. LX5 12 CONVERT EXTENDED MEMORY MFL
  783. BX1 -X0*X5
  784. LX1 B5
  785. RJ COD CONVERT TO OCTAL DISPLAY CODE
  786. BX6 X0*X4
  787. SA6 BOME+2
  788. LX5 12 CONVERT LAST EXTENDED MEMORY FIELD LENGTH
  789. BX1 -X0*X5
  790. LX1 B5
  791. RJ COD
  792. BX6 X0*X4
  793. SA6 BOLE+2
  794. SA5 BUFF+FLCW CM MEMORY CONTROL WORD
  795. LX5 12 CONVERT CM MFL
  796. BX1 -X0*X5
  797. LX1 6 BLOCKS * 100
  798. RJ COD
  799. BX6 X0*X4
  800. SA6 BOMF+2
  801. LX5 12 CONVERT CM LAST FIELD LENGTH
  802. BX1 -X0*X5
  803. LX1 6 BLOCKS * 100
  804. RJ COD
  805. BX6 X0*X4
  806. SA6 BOLF+2
  807.  
  808. * PROCESS JOB ACCESS LEVELS IF SECURE SYSTEM.
  809.  
  810. SA1 SSFL
  811. ZR X1,OPB8 IF NON-SECURE SYSTEM
  812. GETJAL ALVL GET JOB ACCESS LEVELS
  813. SA1 ALVL GET CURRENT JOB ACCESS LEVEL
  814. MX0 -3
  815. BX2 -X0*X1
  816. SA2 TALV+X2
  817. MX3 42
  818. BX6 X2*X3
  819. SA6 BOAL+2
  820. AX1 6 GET JOB ACCESS LEVEL UPPER LIMIT
  821. BX2 -X0*X1
  822. SA2 TALV+X2
  823. BX6 X2*X3
  824. SA6 BOUL+2
  825. AX1 6 GET JOB ACCESS LEVEL LOWER LIMIT
  826. BX2 -X0*X1
  827. SA2 TALV+X2
  828. BX6 X2*X3
  829. SA6 BOLL+2
  830.  
  831. * PROCESS JOB ACCESS CATEGORIES IF SECURE SYSTEM.
  832.  
  833. GETUSV ACAT GET JOB ACCESS CATEGORIES
  834. SA4 ACAT
  835. SB3 32 NUMBER OF CATEGORIES TO CHECK
  836. SB4 B0 INDEX INTO TABLE OF CATEGORY NAMES
  837. SB5 B1 POINTER FOR STORING CATEGORY NAME
  838. SB6 6 COUNT OF WORDS TO BE SPACE FILLED
  839. OPB5 LX4 -1
  840. PL X4,OPB7 IF CATEGORY NOT SET
  841. SA2 TACT+B4 GET CATEGORY NAME
  842. MX0 42
  843. BX1 X0*X2
  844. RJ SFN SPACE FILL NAME
  845. LX6 -18
  846. SA6 BOAC+B5 SAVE CATEGORY NAME
  847. SB6 B6-B1
  848. SA1 OPBA INCREMENT PRINTED LINE COUNT
  849. SX6 X1+B1
  850. SA6 A1
  851. PL B6,OPB6 IF COUNT NOT TO BE RESET
  852. SB6 6
  853. SB5 B5+B1 WRITE END-OF-LINE
  854. BX6 X6-X6
  855. SA6 BOAC+B5
  856. SA1 OPBA INCREMENT PRINTED LINE COUNT
  857. SX6 X1+B1
  858. SA6 A1
  859. OPB6 SB5 B5+B1
  860. OPB7 SB4 B4+B1
  861. SB3 B3-B1
  862. NZ B3,OPB5 IF MORE CATEGORIES TO CHECK
  863. SA1 OPBA GET LINE COUNT
  864. WRITEW OUTPUT,BOP,X1
  865. EQ MAIN1 RETURN
  866.  
  867. OPB8 WRITEW OUTPUT,BOP,BOPL
  868. EQ MAIN1 RETURN
  869.  
  870. OPBA CON BLLL PRINTED LINE COUNT
  871. OPBB DATA 10L*INACCESS* FILE NOT ACCESSIBLE STATUS
  872. OPBC VFD 12/0,12/1,18/PFNL,18/OPBD PFNL READ CONTROL
  873. OPBD VFD 1/1,59/0 PFNL CODE
  874.  
  875.  
  876.  
  877. * *OUTPUT FORMAT FOR B-OPTION*
  878.  
  879. BOP DATA 0
  880. DATA L* SYSTEM ACTIVITY.*
  881. DATA 0
  882. BOUN DATA 20H USER NAME
  883. DATA 0
  884. BOUH DATA 20H USER INDEX HASH
  885. DATA 0
  886. BOJS DATA 20H JOB SEQ. NAME
  887. DATA 0
  888. BOFM DATA 20H FAMILY
  889. DATA 8L*NONE*.
  890. BOCN DATA 20H CHARGE NUMBER
  891. DATA 10H*NONE*.
  892. DATA 0
  893. BOPJ DATA 20H PROJECT NUMBER
  894. DATA 20H*NONE*.
  895. DATA 0
  896. BOPN DATA 20H PACK NAME
  897. DATA 8L*NONE*.
  898. DATA 20H PACK TYPE
  899. VFD 18/DFPT,42/0
  900. BOPF DATA 20H PRIMARY FILE
  901. DATA 10L*NONE*.
  902. DATA 10L
  903. DATA 0
  904. BOSU DATA 20H SUBSYSTEM
  905. DATA 0
  906. BOCP DATA 20H CPU PRIORITY
  907. DATA 0
  908. BOMF DATA 20H MAX FL (CM)
  909. DATA 0
  910. BOME DATA 20H MAX FL (EM)
  911. DATA 0
  912. BOLF DATA 20H LAST FL (CM)
  913. DATA 0
  914. BOLE DATA 20H LAST FL (EM)
  915. DATA 0
  916. BOPL EQU *-BOP
  917. DATA 0
  918. DATA C* JOB SECURITY ACCESS LEVELS*
  919. DATA 0
  920. BOAL DATA 20H CURRENT
  921. DATA 0
  922. BOLL DATA 20H LOWER LIMIT
  923. DATA 0
  924. BOUL DATA 20H UPPER LIMIT
  925. DATA 0
  926. DATA 0
  927. DATA C* JOB SECURITY ACCESS CATEGORIES*
  928. BOAC DATA 0
  929. DATA 10H *NONE*.
  930. DATA 0
  931. BLLL EQU *-BOP INITIAL OUTPUT LENGTH
  932. DUP 39,1
  933. DATA 0
  934. OPD TITLE D OPTION.
  935. ** THE OP = D OPTION RETURNS TO THE USER THE RESOURCE
  936. * DEMAND AND ASSIGNED COUNTS FROM THE USER DEMAND FILE
  937. * ENTRY.
  938.  
  939.  
  940. OPD WRITEW OUTPUT,FOD,FODA HEADER
  941.  
  942. * SET CORRECT DEMAND FILE NAME.
  943.  
  944. SA1 BUFF+RFCW
  945. MX0 -18
  946. BX6 -X0*X1
  947. ZR X6,OPD7 IF NO DEMAND FILE ENTRY
  948. SYSTEM RSB,R,OPDA READ MMFL WORD
  949. SA1 OPDC SET CORRECT DEMAND FILE NAME
  950. MX0 12
  951. BX3 X0*X1
  952. SA2 OPDB
  953. LX0 -24
  954. BX2 -X0*X2
  955. LX3 -24
  956. BX6 X3+X2
  957. SA6 A2+
  958. ATTACH FILEFET,OPDB,,,RM,,,DF,FA
  959. SA1 BUFF+RFCW CHECK DEMAND FILE INDEX
  960. MX0 -18
  961. BX6 -X0*X1
  962. SA6 FILEFET+6
  963. READ X2,R READ DEMAND FILE ENTRY
  964. SA5 FBUF+RVAL CHECK FOR TOTAL DEMAND = TOTAL ASSIGN = 0
  965. MX2 -24
  966. BX2 -X2*X5
  967. ZR X2,OPD7 IF NO ASSIGNS/DEMANDS
  968. SA5 FBUF+RMTP GET FIRST MAGNETIC TAPE ENTRY WORD
  969.  
  970. * FORMAT LINE.
  971.  
  972. OPD1 MX2 12 GET RESOURCE IDENTIFIER
  973. BX1 X2*X5
  974. SX3 A5-FBUF-RRPP
  975. NG X3,OPD2 IF MAGNETIC TAPE ENTRY
  976. SX2 1R1 ENTER REMOVABLE PACK UNIT COUNT
  977. LX2 -18
  978. BX1 X1+X2
  979. OPD2 RJ SFN BLANK FILL RESOURCE IDENTIFIER
  980. LX6 -24
  981. SA6 FODB
  982. LX5 12
  983. SX3 A5-FBUF-RRPP
  984. PL X3,OPD3 IF REMOVABLE PACK ENTRY
  985.  
  986. * ADD THE ASSIGNED AND DEMAND COUNTS FOR ALL ACCESS LEVELS
  987. * OF MAGNETIC TAPE RESOURCE ENTRY. PRINT NON-ZERO COUNTS.
  988.  
  989. BX1 X1-X1 INITIALIZE TOTAL ASSIGNED COUNT
  990. BX3 X3-X3 INITIALIZE TOTAL DEMAND COUNT
  991. SB2 B1+ INITIALIZE ENTRY WORD COUNT
  992. OPD2.1 SB3 3 INITIALIZE BYTE COUNT
  993. OPD2.2 MX2 -6 GET ASSIGNED COUNT
  994. LX5 6
  995. BX0 -X2*X5
  996. IX1 X0+X1 ADD COUNT TO TOTAL COUNT
  997. LX5 6 GET DEMAND COUNT
  998. BX2 -X2*X5
  999. IX3 X2+X3 ADD COUNT TO TOTAL COUNT
  1000. SB3 B3-B1
  1001. PL B3,OPD2.2 IF NOT END OF ENTRY WORD
  1002. SB2 B2-B1
  1003. NG B2,OPD2.3 IF END OF SECOND ENTRY WORD
  1004. SA5 A5+B1 READ SECOND ENTRY WORD
  1005. LX5 12
  1006. EQ OPD2.1 RESET BYTE COUNT
  1007.  
  1008. OPD2.3 BX0 X1+X3
  1009. BX5 X3
  1010. ZR X0,OPD6 IF NO ASSIGNED/DEMAND COUNTS
  1011. EQ OPD3.1 CONVERT ASSIGNED COUNT
  1012.  
  1013. * GET ASSIGNED/DEMAND COUNTS FOR REMOVABLE PACK ENTRIES.
  1014.  
  1015. OPD3 MX2 -6 GET ASSIGNED COUNT
  1016. LX5 6
  1017. BX1 -X2*X5
  1018. MX3 -12 CHECK FOR ZERO ASSIGNED AND DEMAND COUNTS
  1019. LX5 6
  1020. BX3 -X3*X5
  1021. ZR X3,OPD4 IF NO ASSIGNED/DEMAND COUNTS
  1022. OPD3.1 RJ CDD CONVERT ASSIGNED COUNT
  1023. LX6 18
  1024. MX2 -6
  1025. SA6 FODB+2
  1026. BX1 -X2*X5 GET DEMAND COUNT
  1027. RJ CDD CONVERT DEMAND COUNT
  1028. LX6 18
  1029. SA6 A6-B1
  1030. WRITEW OUTPUT,FODB,FODL
  1031. OPD4 SX3 A5-FBUF-RRPP
  1032. NG X3,OPD6 IF MAGNETIC TAPE ENTRY
  1033. SX2 B1 INCREMENT REMOVABLE PACK UNIT COUNT
  1034. SA1 FODB
  1035. LX2 18
  1036. SB2 X0+B1
  1037. IX6 X1+X2
  1038. SB3 X0-RPEW
  1039. SB2 A0-B2
  1040. SA6 A1
  1041. NZ B3,OPD5 IF NOT END OF FIRST ENTRY WORD
  1042. SA5 A5+B1
  1043. LX5 12
  1044. OPD5 SX0 X0+1
  1045. PL B2,OPD3 IF MORE COUNTS TO PROCESS IN ENTRY
  1046. PL B3,OPD6 IF SECOND ENTRY WORD PROCESSED
  1047. SA5 A5+1
  1048. OPD6 SA5 A5+1
  1049. SX2 A5-FBUF-RREQ
  1050. SX3 A5-FBUF-RRPP
  1051. ZR X2,OPD8 IF END OF RESOURCE ENTRIES
  1052. NG X3,OPD1 IF MAGNETIC TAPE ENTRY
  1053. ZR X5,OPD8 IF END OF RESOURCE ENTRIES
  1054. SA1 A5+B1 GET MAXIMUM UNIT COUNT
  1055. UX1 X1,B2
  1056. SA0 B2
  1057. SX0 B1 RESET UNIT COUNT
  1058. EQ OPD1 CONTINUE PROCESSING ENTRIES
  1059.  
  1060. OPD7 WRITEW OUTPUT,FODC,FODD
  1061.  
  1062. OPD8 RETURN FILEFET,R
  1063. EQ MAIN1 RETURN
  1064.  
  1065. OPDA VFD 12/0,12/1,18/MMFL,18/OPDC MMFL READ CONTROL
  1066. OPDB VFD 60/0LRSXD DEMAND FILE NAME
  1067. OPDC VFD 1/1,59/0 MMFL CODE
  1068.  
  1069.  
  1070. * OUTPUT FORMAT FOR OP = D.
  1071.  
  1072.  
  1073. FOD DATA 0
  1074. DATA L* RESOURCE DEMAND INFORMATION. *
  1075. DATA 0
  1076. DATA L* RESOURCE DEMAND ASSIGNED *
  1077. DATA 0
  1078. FODA EQU *-FOD
  1079. FODB DATA C* *
  1080. FODL EQU *-FODB
  1081. FODC DATA C* NONE.*
  1082. FODD EQU *-FODC
  1083. OPF TITLE F OPTION.
  1084. ** THE *OP=F* OPTION RETURNS TO THE USER THE FOLLOWING
  1085. * INFORMATION ABOUT EACH OF HIS FILES- *FILENAME*
  1086. * *LENGTH/PRUS* *TYPE* *STATUS* *FS* *LEVEL*.
  1087.  
  1088.  
  1089. OPF BSS 0 ENTRY
  1090. BX6 X6-X6 PRECLUDE FN PARAMETER PROCESSING
  1091. SA6 TAGS+2
  1092. MX7 0 CLEAR BUFFER CONTROL WORD
  1093. SA7 FBUF
  1094. SA1 GFNT SET GETFNT CONTROL WORD IN FET+8
  1095. BX6 X1
  1096. SA6 FILEFET+8
  1097. GETFNT FILEFET GET FILES
  1098. BX6 X6-X6 CLEAR STATUS WORD
  1099. SA6 FILEFET+8
  1100.  
  1101. * SORT FNT ENTRIES INTO ASCENDING ORDER.
  1102.  
  1103. SX7 B0 COUNT NUMBER OF ENTRIES TO SORT
  1104. SA1 FBUF+1
  1105. OPF1 SX7 X7+B1
  1106. SA1 A1+2
  1107. NZ X1,OPF1 IF MORE ENTRIES TO COUNT
  1108. SA7 FCT SAVE FILE COUNT
  1109. SB2 B0 SORT FNT ENTRIES
  1110. SB3 B0
  1111. SB4 B1
  1112. SB5 B1+B1
  1113. SB6 X7
  1114. SB7 FBUF+1
  1115. MX0 42
  1116. RJ GMS
  1117. SA5 FBUF+1 SET ADDRESS OF FIRST ENTRY TO LIST
  1118.  
  1119. * OUTPUT PAGE EJECT AND/OR PAGE HEADER.
  1120.  
  1121. OPF2 SA1 FT
  1122. ZR X1,OPF3 IF OUTPUT ASSIGNED TO TERMINAL
  1123. WRITEW OUTPUT,PAGE,B1 PAGE EJECT
  1124. OPF3 WRITEW OUTPUT,FOP,FOPA PAGE HEADER
  1125.  
  1126. * LIST FNT ENTRY.
  1127.  
  1128. OPF4 ZR X5,OPF5 IF END OF BUFFER
  1129. RJ LST LIST FILE
  1130.  
  1131. * CHECK FOR FULL PAGE.
  1132.  
  1133. SA5 A5+1 NEXT FILE IN BUFFER
  1134. SA1 LCT LINE COUNT
  1135. SX6 X1+B1
  1136. SA6 A1
  1137. SA2 LLM GET LINE LIMIT
  1138. IX1 X1-X2
  1139. SX7 X1+6
  1140. NZ X7,OPF4 IF NOT END OF PAGE
  1141. SA7 A1 CLEAR LINE COUNT
  1142. EQ OPF2 OUTPUT PAGE EJECT AND/OR PAGE HEADER
  1143.  
  1144. * WRITE FILE COUNT MESSAGE AND EXIT.
  1145.  
  1146. OPF5 SA1 FCT FILE COUNT
  1147. RJ CDD CONVERT TO DISPLAY
  1148. MX0 24
  1149. BX6 X0*X4
  1150. SA6 FOPD+1 TOTAL FILE COUNT
  1151. WRITEW OUTPUT,FOPC,FOLL
  1152. EQ MAIN1 RETURN
  1153.  
  1154.  
  1155. * OUTPUT FORMAT FOR OP = F.
  1156.  
  1157.  
  1158. FOP DATA 0
  1159. DATA L* LOCAL FILE INFORMATION.*
  1160. DATA 0
  1161. DATA L* FILENAME LENGTH/PRUS TYPE STATUS FS LEVEL*
  1162. DATA 0
  1163. FOPA EQU *-FOP
  1164. FOPB DATA L* *
  1165. FOPL EQU *-FOPB
  1166. FOPC DATA 0
  1167. FOPD DATA 10H TOTAL =
  1168. DATA 0
  1169. FOLL EQU *-FOPC
  1170. OPJ TITLE J OPTION.
  1171. ** OP=*J* RETURNS TO THE USER THE CONTENTS OF HIS CONTROL
  1172. * REGISTERS AND THE CONTENTS OF ERROR FLAG FIELD.
  1173. * THE NEXT COMMAND FROM THE BUFFER IS GIVEN ALSO.
  1174.  
  1175.  
  1176. * PROCESS PSEUDO REGISTERS.
  1177.  
  1178. OPJ SA5 BUFF+JCRW JOB CONTROL WORD
  1179. LX5 6
  1180. MX0 -6 ERROR FLAG
  1181. BX1 -X0*X5
  1182. RJ COD CONVERT TO DISPLAY CODE
  1183. MX0 42
  1184. BX6 X0*X4
  1185. SA6 JOPE+1
  1186. LX5 18 R3
  1187. BX1 -X0*X5
  1188. RJ CSD CONVERT TO SIGNED DISPLAY CODE
  1189. SA6 JOPD+1
  1190. LX5 18 R2
  1191. BX1 -X0*X5
  1192. RJ CSD CONVERT TO SIGNED DISPLAY CODE
  1193. SA6 JOPC+1
  1194. LX5 18 R1
  1195. BX1 -X0*X5
  1196. RJ CSD CONVERT TO SIGNED DISPLAY CODE
  1197. SA6 JOPB+1
  1198. SA5 BUFF+JCDW *CCL* JOB CONTROL WORD
  1199. LX5 6 GLOBAL ERROR FLAG
  1200. MX0 -6
  1201. BX1 -X0*X5
  1202. RJ COD CONVERT TO DISPLAY CODE
  1203. MX0 42
  1204. BX6 X0*X4
  1205. SA6 JOPF+1
  1206. LX5 18 R1G
  1207. BX1 -X0*X5
  1208. RJ CSD CONVERT TO SIGNED DISPLAY CODE
  1209. SA6 JOPG+1
  1210. SA5 JPPW GET JOB PAGE PARAMETERS
  1211. MX0 -8
  1212. AX5 12 POSITION FOR *PW*
  1213. BX1 -X0*X5
  1214. RJ CSD CONVERT TO DISPLAY
  1215. SA6 JOPH+1 PAGE WIDTH
  1216. AX5 8 POSITION FOR *PS*
  1217. BX1 -X0*X5
  1218. RJ CSD CONVERT TO DISPLAY
  1219. SA6 JOPI+1 PAGE SIZE
  1220. MX0 -4
  1221. AX5 8 POSITION FOR *PD*
  1222. BX1 -X0*X5
  1223. RJ CSD CONVERT TO DISPLAY CODE
  1224. SA6 JOPJ+1 PAGE DENSITY
  1225. WRITEW O,JOP,JOPL
  1226.  
  1227. * PROCESSING NEXT COMMAND.
  1228.  
  1229. SA3 F+1 SET FET EMPTY
  1230. MX0 -30
  1231. SX6 X3
  1232. SA6 A3+B1
  1233. SX5 NCST NUMBER OF COMMANDS
  1234. SA6 A6+B1
  1235. ACCSF F,CSFP,L ATTACH COMMAND FILE
  1236. SA4 CSFP
  1237. BX7 -X0*X4
  1238. AX7 6
  1239. SA7 F+6 RANDOM ADDRESS
  1240. READ F,R
  1241. MX0 -6
  1242. BX6 -X0*X4
  1243. SA3 F+3 UPDATE *OUT* POINTER
  1244. IX6 X3+X6
  1245. SA6 A3
  1246. OPJ1 READC F,WBUF,WBUFL
  1247. NZ X1,OPJ2 IF *EOR*
  1248. SB2 WBUF
  1249. SB6 USBBL
  1250. RJ USB UNSTRING COMMAND
  1251. SB7 B7-WBUF2+1
  1252. WRITES O,WBUF2,B7
  1253. SX5 X5-1 DECREMENT COUNTER
  1254. NZ X5,OPJ1 IF NOT END OF COMMANDS
  1255. EQ OPJ3 RETURN FILE AND EXIT
  1256.  
  1257. OPJ2 WRITEC O,OPJB WRITE *EOR* LINE
  1258. OPJ3 RETURN F
  1259. EQ MAIN1 RETURN
  1260.  
  1261.  
  1262. OPJA CON 0 COMMAND COUNT
  1263.  
  1264. OPJB DATA C/ *EOR*/
  1265.  
  1266.  
  1267. * OUTPUT FORMAT FOR OP = J.
  1268.  
  1269. JOP DATA 0
  1270. JOPA DATA L* JOB CONTROL REGISTERS.*
  1271. DATA 0
  1272. JOPB DATA C* R1 = *
  1273. JOPC DATA C* R2 = *
  1274. JOPD DATA C* R3 = *
  1275. JOPE DATA C* EF = *
  1276. JOPF DATA C* EFG = *
  1277. JOPG DATA C* R1G = *
  1278. DATA 0
  1279. DATA C* JOB PAGE PARAMETERS.*
  1280. DATA 0
  1281. JOPH DATA C* PW = *
  1282. JOPI DATA C* PS = *
  1283. JOPJ DATA C* PD = *
  1284. DATA 0
  1285. JOPK DATA L* PENDING COMMANDS.*
  1286. DATA 0
  1287. JOPL EQU *-JOP
  1288. OPL TITLE L OPTION.
  1289. ** *OP=L* GIVES THE USER LOADER INFORMATION THAT CONSISTS OF
  1290. * MAP OPTIONS, DEBUG MODE AND GLOBAL LIBRARY SET
  1291. * CURRENTLY IN EFFECT.
  1292.  
  1293.  
  1294. OPL SA1 BUFF+LB1W MAP OPTIONS IN EFFECT
  1295. PL X1,OPL2.1 IF SYSTEM DEFAULT
  1296. LX1 59-57 POSITION MAP OPTION FIELD TO LEFT
  1297. MX0 4 MAP OPTION FIELD WIDTH
  1298. BX1 X0*X1
  1299. ZR X1,OPL8 IF MAP *OFF*
  1300. BX2 -X0+X1
  1301. ZR X2,OPL3 IF *FULL* MAP
  1302. SA2 OPLA
  1303. BX2 X1-X2
  1304. ZR X2,OPL4 IF MAP *ON*
  1305. SA2 OPLB
  1306. BX2 X1-X2
  1307. ZR X2,OPL5 IF *PARTIAL* MAP
  1308.  
  1309. SA2 =L*XEBS* FETCH POSSIBLE MAP OPTIONS
  1310. SB2 4 INITIALIZE MAP OPTIONS COUNTER
  1311. BX6 X6-X6 PRESET RESULT REGISTER
  1312. MX0 6
  1313. OPL1 PL X1,OPL2 IF OPTION NOT SET
  1314. BX3 X0*X2 ADD CHARACTER TO RESULT REGISTER
  1315. LX6 -6
  1316. BX6 X3+X6
  1317. OPL2 SB2 B2-B1 DECREMENT MAP OPTIONS COUNTER
  1318. ZR B2,OPL7 IF NO MORE MAP OPTIONS TO CONSIDER
  1319. LX1 1
  1320. LX2 6
  1321. EQ OPL1 LOOP
  1322.  
  1323. OPL2.1 SA1 =L*DEFAULT*
  1324. EQ OPL6 SET DEFAULT MAP OPTION
  1325.  
  1326. OPL3 SA1 =L*FULL*
  1327. EQ OPL6
  1328.  
  1329. OPL4 SA1 =L*ON*
  1330. EQ OPL6
  1331.  
  1332. OPL5 SA1 =L*PARTIAL*
  1333.  
  1334. OPL6 BX6 X1
  1335. OPL7 SA6 OPLD UPDATE MAP OPTIONS ASSEMBLY AREA
  1336. OPL8 WRITEW OUTPUT,OPLC,OPLE
  1337.  
  1338. * PROCESS INTERACTIVE DEBUG.
  1339.  
  1340. SA1 BUFF+LB1W CHECK DEBUG STATUS
  1341. SB6 OPLH *DEBUG = OFF*
  1342. LX1 59-35
  1343. PL X1,OPL8.1 IF DEBUG = OFF
  1344. SB6 OPLI *DEBUG = ON*
  1345. OPL8.1 WRITEC O,B6 WRITE DEBUG STATUS
  1346.  
  1347. * PROCESS GLOBAL LIBRARY SET.
  1348.  
  1349. MOVE 4,OPLG,LBUF HEADER (PRESET EMPTY)
  1350. GETGLS GGLS GET GLOBAL LIBRARY SET
  1351. SB3 4 PRESET NUMBER OF WORDS TO WRITE
  1352. SA1 GGLS LWA OF LIST + 1
  1353. AX1 36
  1354. SB2 X1-LBUF-3
  1355. ZR B2,OPL11 IF EMPTY LIST
  1356. SB3 B3-B1
  1357. SB4 X1
  1358. SB5 B3 INITIALIZE NAMES PER LINE COUNTER
  1359. MX0 48
  1360. MX5 42
  1361. SA1 LBUF+3
  1362. OPL9 BX1 X1*X5
  1363. RJ SFN SPACE FILL NAME
  1364. LX6 -6
  1365. SB5 B5-B1 DECREMENT NAMES PER LINE COUNTER
  1366. NZ B5,OPL10 IF NOT THIRD NAME ON LINE
  1367. SB5 3 RE-INITIALIZE NAMES PER LINE COUNTER
  1368. BX6 X0*X6 SET END-OF-LINE
  1369. OPL10 SA6 A1
  1370. SA1 A1+B1
  1371. SB3 B3+B1 INCREMENT NUMBER OF WORD TO WRITE
  1372. SB2 A1-B4
  1373. NZ B2,OPL9 IF NOT END OF LIST
  1374. BX6 X0*X6 SET END-OF-LINE
  1375. SA6 A6
  1376. OPL11 WRITEW OUTPUT,LBUF,B3
  1377. JP MAIN1 RETURN
  1378.  
  1379. OPLA VFD 4/7,56/0 MAP *ON* MASK
  1380. OPLB VFD 4/3,56/0 *PARTIAL* MAP MASK
  1381.  
  1382. * MAP OPTIONS ASSEMBLY AREA.
  1383.  
  1384. OPLC DATA 0 BLANK LINE
  1385. DATA L* LOADER INFORMATION. *
  1386. DATA H* MAP OPTIONS = *
  1387. OPLD DATA L*OFF* PRESET AS *OFF*
  1388. OPLE EQU *-OPLC LENGTH OF MAP OPTIONS ASSEMBLY AREA
  1389.  
  1390. OPLG DATA L* GLOBAL LIBRARY SET IS - *
  1391. DATA L* EMPTY.*
  1392.  
  1393. OPLH DATA L* DEBUG = OFF*
  1394. OPLI DATA L* DEBUG = ON*
  1395. OPR TITLE R OPTION.
  1396. ** THE *OP=R* OPTION RETURNS TO THE USER HIS ACCUMULATED
  1397. * RESOURCES. THESE INCLUDE SRU UNITS, CP, IO AND
  1398. * ADDER ACCUMULATORS.
  1399.  
  1400.  
  1401. OPR SA1 BUFF+CPTW CPU TIME
  1402. PX1 X1 CONVERT TO MILLISECONDS
  1403. SA2 OPA
  1404. NX1 X1
  1405. RX2 X2*X1
  1406. UX1,B4 X2
  1407. LX1 B4
  1408. RJ CFD CONVERT TO F10.3 FORMAT
  1409. SA6 ROPB+2
  1410. SA5 BUFF+IOAW IO ACCUMULATORS
  1411. MX0 -20
  1412. LX5 20 MS ACCUMULATOR
  1413. BX1 -X0*X5
  1414. RJ CFD
  1415. SA6 ROPC+2
  1416. LX5 20 MT ACCUMULATOR
  1417. BX1 -X0*X5
  1418. RJ CFD
  1419. SA6 ROPD+2
  1420. LX5 20 PF ACCUMULATOR
  1421. BX1 -X0*X5
  1422. RJ CFD
  1423. SA6 ROPE+2
  1424. SA2 BUFF+ADAW ADDER ACCUMULATOR
  1425. BX1 -X0*X2 ADDER ACCUMULATOR
  1426. RJ CFD
  1427. SA6 ROPF+2
  1428. SA2 BUFF+AUCW AUC ACCUMULATOR
  1429. MX0 -29
  1430. BX1 -X0*X2
  1431. RJ CFD
  1432. SA6 ROPG+2
  1433. SA2 BUFF+SRUW SRU ACCUMULATOR
  1434. RJ CSR CONVERT SRU ACCUMULATOR
  1435. SA6 ROPH+2
  1436. WRITEW OUTPUT,ROP,ROPL
  1437. EQ MAIN1 RETURN
  1438.  
  1439.  
  1440. * OUTPUT FORMAT FOR OP = R.
  1441.  
  1442. ROP DATA 0
  1443. ROPA DATA L* RESOURCES USED.*
  1444. DATA 0
  1445. ROPB DATA 30H CPU TIME
  1446. DATA 6L SECS.
  1447. ROPC DATA 30H MS ACTIVITY
  1448. DATA 6L KUNS.
  1449. ROPD DATA 30H MT ACTIVITY
  1450. DATA 6L KUNS.
  1451. ROPE DATA 30H PF ACTIVITY
  1452. DATA 6L KUNS.
  1453. ROPF DATA 30H ADDER
  1454. DATA 6L KUNS.
  1455. ROPG DATA 30H AUC ACTIVITY
  1456. DATA 6L UNTS.
  1457. ROPH DATA 30H SRU
  1458. DATA 6L UNTS.
  1459. ROPL EQU *-ROP
  1460. OPS TITLE S OPTION.
  1461. ** THE *OP=S* OPTION RETURNS TO THE USER HIS SRU UNIT.
  1462. * THIS UNIT REPRESENTS THE TOTAL USAGE OF THE SYSTEM
  1463. * BY THE USER.
  1464.  
  1465.  
  1466. OPS BSS 0 ENTRY
  1467. SA2 BUFF+SRUW SRU ACCUMULATOR
  1468. RJ CSR CONVERT SRU ACCUMULATOR
  1469. SA6 SOPB+1
  1470. WRITEW OUTPUT,SOP,SOPL
  1471. EQ MAIN1 RETURN
  1472.  
  1473.  
  1474. * OUTPUT FORMAT FOR OP = S.
  1475.  
  1476. SOP DATA 0
  1477. SOPA DATA L* SRU ACCUMULATOR.*
  1478. DATA 0
  1479. SOPB DATA 20H SRU
  1480. DATA 6L UNTS.
  1481. SOPL EQU *-SOP
  1482. OPT TITLE T OPTION.
  1483. ** OP=*T* RETURNS TO THE USER HIS CP TIME.
  1484. *
  1485.  
  1486.  
  1487.  
  1488. OPT SA1 BUFF+CPTW CP TIME
  1489. PX1 X1 CONVERT TO MILLISECONDS
  1490. SA2 OPA
  1491. NX1 X1
  1492. RX2 X2*X1
  1493. UX1,B4 X2
  1494. LX1 B4
  1495. RJ CFD CONVERT TO F10.3 FORMAT
  1496. SA6 TOPA+1 STORE CP TIME
  1497. WRITEW OUTPUT,TOP,TOPL
  1498. EQ MAIN1 RETURN
  1499.  
  1500.  
  1501. * OUTPUT FORMAT FOR OP = T.
  1502.  
  1503. TOP DATA 0
  1504. DATA L* CPU ACCUMULATOR.*
  1505. DATA 0
  1506. TOPA DATA 20H CPU TIME
  1507. DATA 6L SECS.
  1508. TOPL EQU *-TOP
  1509. OPU TITLE U OPTION.
  1510. ** OP = *U* GIVES THE USER THE AMOUNT OF RESOURCE USAGE
  1511. * ALLOWED TO HIS JOB. THESE RESOURCES INCLUDE SYSTEM
  1512. * RESOURCE UNITS ALLOWED FOR EACH JOB STEP AND ACCOUNT
  1513. * BLOCK, JOB STEP TIME LIMIT, AND MAXIMUM NUMBER OF DISPOSE
  1514. * FILES, MASS STORAGE PRUS, DAYFILE MESSAGES AND CONTROL
  1515. * COMMANDS.
  1516.  
  1517.  
  1518. OPU SA5 BUFF+CPJW JOB STEP TIME LIMIT
  1519. MX0 -15
  1520. LX0 17-14
  1521. LX5 30
  1522. RJ CLM CONVERT
  1523. SA7 UOPF+2
  1524. SA5 BUFF+SRJW JOB STEP SRU LIMIT
  1525. LX5 30
  1526. RJ CLM CONVERT
  1527. SA7 UOPG+2
  1528. SA5 BUFF+STLW ACCOUNT BLOCK SRU LIMIT
  1529. LX5 18
  1530. RJ CLM CONVERT
  1531. SA7 UOPH+2
  1532. SA5 BUFF+ACLW PICK UP ACCOUNTING LIMITS WORD
  1533. MX0 -12
  1534. LX5 24 DAYFILE MESSAGES COUNT
  1535. RJ CLM CONVERT
  1536. SA7 UOPB+2
  1537. LX5 12 COMMAND COUNT
  1538. RJ CLM CONVERT
  1539. SA7 UOPC+2
  1540. MX0 -15
  1541. LX0 17-14
  1542. LX5 24 MASS STORAGE PRUS
  1543. RJ CLM
  1544. SA7 UOPE+2
  1545. WRITEW OUTPUT,UOP,UOPL
  1546. EQ MAIN1
  1547.  
  1548.  
  1549. * OUTPUT FORMAT FOR OP = U.
  1550.  
  1551. UOP DATA 0
  1552. UOPA DATA L* RESOURCE USAGE ALLOWED.*
  1553. DATA 0
  1554. UOPF DATA 20H SECONDS
  1555. DATA 0
  1556. UOPG DATA 20H JOB STEP SRU
  1557. DATA 0
  1558. UOPH DATA 20H ACCOUNT BLK SRU
  1559. DATA 0
  1560. UOPB DATA 20H DAYFILE MESSAGES
  1561. DATA 0
  1562. UOPC DATA 20H COMMANDS
  1563. DATA 0
  1564. UOPE DATA 20H MASS STORAGE
  1565. DATA 0
  1566. UOPL EQU *-UOP
  1567. TITLE JSN= OPTION.
  1568. PEJ SPACE 4,10
  1569. ** PEJ - PROCESS EQUIVALENCED JSN PARAMETER.
  1570. *
  1571. * ENTRY (X5) = JSN PARAMETER VALUE.
  1572. *
  1573. * USES X - 0, 1, 2, 3, 5, 6, 7.
  1574. * A - 1, 2, 3, 5, 6, 7.
  1575. * B - 2, 4, 6, 7.
  1576. *
  1577. * CALLS CDD, COD, CSR, ESB, GCS, GDR, GJS, GSC, IPR, SFN,
  1578. * WCL, WML.
  1579. *
  1580. * MACROS WRITES, WRITEW.
  1581. *
  1582. * EXAMPLE OF EXECUTING JOB -
  1583. *
  1584. * 1 2 3 4 5 6 7
  1585. * 234567890123456789012345678901234567890123456789012345678901234567890
  1586. *
  1587. * ABFB.T.ON.BC.M90.T/E ROLLOUT UJN=MYJOBAA LEVEL=LVL0
  1588. * SRUS= 22.057. SRU LIMIT=NO LIMIT. CM FL= 47500. ECS FL= 1000.
  1589. * LABEL,TAPE,VSN=TEROLL,D=PE. (MS1W MESSAGE)
  1590. * WAITING FOR TAPE/PACK MOUNT. (MS2W MESSAGE)
  1591. *
  1592. * DAYFILE=
  1593. * (MAXIMUM OF 10 LINES OF DAYFILE)
  1594. *
  1595. * NEXT COMMANDS=
  1596. * (MAXIMUM OF 10 LINES OF COMMANDS)
  1597. *
  1598. * EXAMPLE OF JOBS IN THE INPUT, PRINT, PLOT, PUNCH
  1599. * OR WAIT QUEUE -
  1600. *
  1601. * 1 2 3 4 5 6 7
  1602. * 234567890123456789012345678901234567890123456789012345678901234567890
  1603. *
  1604. * ADAE.B. .BC.M90.PRINT QUEUE UJN=MYJOBAA LEVEL=LVL0
  1605. * PRU LENGTH= 47. DC=LT. FC= . ID=05. EC=A9 .
  1606.  
  1607.  
  1608. PEJ SUBR ENTRY/EXIT
  1609. SA3 PIEJ SET PEEK INFORMATION BITS
  1610. BX7 X3
  1611. BX6 X5 SAVE JSN
  1612. SA6 JSNM
  1613. SA7 BQPF+2
  1614. SA1 BQSC+2 SET JSN SELECTION CRITERIA
  1615. SX2 JSSF SET JSN SELECTION BIT
  1616. BX1 X1+X5 SET JSN
  1617. BX6 X1+X2
  1618. SA6 A1+
  1619. RJ IPR ISSUE *QAC* PEEK REQUEST
  1620. NZ X1,PEJX IF JOB NOT FOUND
  1621.  
  1622. * FORMAT LINE 1.
  1623.  
  1624. SA1 PEJF WRITE SKELETON LINE
  1625. SB7 L1JL
  1626. BX6 X1
  1627. RJ ESB
  1628. SA1 RBUF GET REPLY ENTRY FWA
  1629. MX0 24 SET JSN
  1630. BX1 X0*X1
  1631. RJ SFN
  1632. SB6 A1+
  1633. SB7 JSJL
  1634. RJ ESB
  1635. RJ GSC SET SERVICE CLASS
  1636. SB7 SCJL
  1637. RJ ESB
  1638. SA1 B6+7
  1639. RJ GCS GET CONNECTION STATUS
  1640. SB7 CNJL
  1641. RJ ESB
  1642. SA1 B6+4 GET DESTINATION ROUTING
  1643. RJ GDR
  1644. SB7 DSJL
  1645. RJ ESB
  1646. SA1 BQPF+1 GET LID
  1647. MX0 -12
  1648. BX1 -X0*X1
  1649. SB3 X1-2
  1650. SA1 B6+B3 SET LID
  1651. MX0 18
  1652. LX1 6
  1653. BX1 X0*X1
  1654. RJ SFN
  1655. SB7 LIJL
  1656. RJ ESB
  1657. SB4 7 SET JOB STATUS
  1658. RJ GJS
  1659. SB7 STJL
  1660. RJ ESB
  1661. SA1 B6+5 SET UJN
  1662. MX0 42
  1663. BX1 X0*X1
  1664. RJ SFN
  1665. SB7 UJJL
  1666. RJ ESB
  1667. SA1 SSFL
  1668. NZ X1,PEJ0.1 IF SECURE SYSTEM
  1669. SA1 L1JL DO NOT DISPLAY ACCESS LEVEL
  1670. SX6 X1-16
  1671. SA6 A1
  1672. EQ PEJ0.2 OUTPUT DATA
  1673.  
  1674. PEJ0.1 SA1 BQPF+1 GET ACCESS LEVEL
  1675. MX0 -12
  1676. BX1 -X0*X1
  1677. SB3 X1-1
  1678. SA1 B6+B3
  1679. AX1 12
  1680. MX0 -3
  1681. BX1 -X0*X1
  1682. SA1 TALV+X1 SET ACCESS LEVEL
  1683. MX0 42
  1684. BX1 X0*X1
  1685. RJ SFN SPACE FILL NAME
  1686. SB7 ALJL
  1687. RJ ESB
  1688. PEJ0.2 WRITEW OUTPUT,PAGE,B1
  1689. SA1 L1JL GET CHARACTER COUNT
  1690. SB7 X1+
  1691. WRITES OUTPUT,USBB,B7
  1692. SA1 RBUF CHECK QUEUE TYPE
  1693. MX0 -12
  1694. LX1 -12
  1695. BX6 -X0*X1
  1696. SX2 X6-EXQQ
  1697. SA6 PEJA SAVE QUEUE TYPE
  1698. NZ X2,PEJ1 IF NOT EXECUTING QUEUE
  1699.  
  1700. * FORMAT OUTPUT LINES FOR EXECUTING JOB.
  1701.  
  1702. SB6 RBUF RESET REPLY ENTRY FWA
  1703. SA1 PEJB WRITE SKELETON LINE
  1704. BX6 X1
  1705. SB7 L2JL
  1706. RJ ESB
  1707. SA2 B6+19
  1708. LX2 -18
  1709. RJ CSR CONVERT SRU ACCUMULATOR
  1710. SB7 SUJL
  1711. RJ ESB
  1712. SA2 B6+18 SET SRU LIMIT
  1713. LX2 -18
  1714. RJ CSR CONVERT SRU LIMIT
  1715. SB7 SLJL
  1716. RJ ESB
  1717. SA5 B6+2 GET CM FL/100B
  1718. LX5 0-24
  1719. MX0 -12
  1720. BX1 -X0*X5
  1721. LX1 6 MULTIPLY BY 100B
  1722. RJ COD
  1723. SB7 CFJL SET CM FL
  1724. LX6 24 USE LOWER 6 CHARACTERS
  1725. RJ ESB
  1726. LX5 0-36-0+24 GET EXTENDED MEMORY FL/1000B
  1727. MX0 -12
  1728. BX1 -X0*X5
  1729. LX1 9 MULTIPLY BY 1000B
  1730. RJ COD
  1731. LX6 18 USE LOWER 7 CHARACTERS
  1732. SB7 EFJL SET EXTENDED MEMORY FL
  1733. RJ ESB
  1734. SA1 L2JL GET CHARACTER COUNT
  1735. SB7 X1+
  1736. WRITES OUTPUT,USBB,B7
  1737. SA2 RBUF+8 WRITE *MS1W*
  1738. RJ WML
  1739. SA2 RBUF+14 WRITE *MS2W*
  1740. RJ WML
  1741. SA1 RBUF+20 WRITE DAYFILE BUFFER
  1742. MX7 -12
  1743. LX1 -12
  1744. SX0 A1+1 FWA OF DATA
  1745. BX2 -X7*X1 REPLY UNIT WORD COUNT - 1
  1746. LX1 -12
  1747. BX5 -X7*X1 DATA WORD COUNT
  1748. IX6 X0+X2 SAVE LWA+1 OF REPLY UNIT
  1749. SA6 PEJG
  1750. ZR X5,PEJ0 IF NO DATA
  1751. WRITEW OUTPUT,PEJC,PEJCL WRITE DAYFILE TITLE LINE
  1752. SB6 X0
  1753. SB7 B0 WRITE LAST 10 DAYFILE MESSAGES
  1754. RJ WCL
  1755. PEJ0 SA2 PEJG WRITE COMMAND BUFFER
  1756. SA1 X2
  1757. MX7 -12
  1758. SX0 A1+1 FWA OF DATA
  1759. LX1 -24
  1760. BX5 -X7*X1 DATA WORD COUNT
  1761. ZR X5,PEJX IF NO DATA
  1762. WRITEW OUTPUT,PEJD,PEJDL WRITE COMMAND TITLE LINE
  1763. SB6 X0
  1764. SB7 B1 WRITE FIRST 10 COMMANDS
  1765. RJ WCL
  1766. EQ PEJX RETURN
  1767.  
  1768. * FORMAT OUTPUT LINE FOR JOB IN THE INPUT, PRINT, PLOT,
  1769. * PUNCH OR WAIT QUEUE.
  1770.  
  1771. PEJ1 SA1 PEJE WRITE SKELETON LINE
  1772. SB7 L3JL
  1773. BX6 X1
  1774. RJ ESB
  1775. SB6 RBUF
  1776. SA1 B6+6 SET FILE LENGTH
  1777. MX0 -24
  1778. LX1 24
  1779. SB7 PLJL
  1780. BX1 -X0*X1
  1781. RJ CDD
  1782. LX6 12 USE LOWER 8 CHARACTERS
  1783. RJ ESB
  1784. SA5 B6+B1 SET FORMS CODE
  1785. MX0 12
  1786. LX5 59-47
  1787. BX6 X0*X5
  1788. ZR X6,PEJ2 IF FORMS CODE NOT SPECIFIED
  1789. SB7 FCJL
  1790. RJ ESB
  1791. PEJ2 LX5 59-35-59+47 SET DISPOSITION CODE
  1792. MX0 12
  1793. BX6 X0*X5
  1794. ZR X6,PEJ3 IF DISPOSITION CODE NOT SPECIFIED
  1795. SB7 DCJL
  1796. RJ ESB
  1797. PEJ3 SA1 PEJA GET QUEUE TYPE
  1798. MX0 18
  1799. SA2 QTEC SEARCH FOR MATCHING QUEUE TYPE
  1800. PEJ4 ZR X2,PEJ5 IF END OF TABLE
  1801. BX3 X0*X2
  1802. LX3 18
  1803. IX3 X1-X3
  1804. SB2 X2 ADDRESS OF EXTERNAL CHARACTERISTICS TABLE
  1805. SA2 A2+B1
  1806. NZ X3,PEJ4 IF NOT MATCH
  1807. LX5 0-21-59+35 GET EXTERNAL CHARACTERISTICS
  1808. MX0 -3
  1809. BX1 -X0*X5
  1810. SB7 ECJL SET EXTERNAL CHARACTERISTICS
  1811. SA2 X1+B2 INDEX INTO TABLE
  1812. BX6 X2
  1813. RJ ESB
  1814. PEJ5 SA1 B6+3 SET DESTINATION BATCH DEVICE ID
  1815. MX0 -6
  1816. LX1 -12
  1817. BX1 -X0*X1
  1818. RJ COD
  1819. LX6 -12 USE LOWER 2 CHARACTERS
  1820. SB7 IDJL
  1821. RJ ESB
  1822. SA1 L3JL GET CHARACTER COUNT
  1823. SB7 X1+
  1824. WRITES OUTPUT,USBB,B7
  1825. EQ PEJX RETURN
  1826.  
  1827.  
  1828. PEJA CON 0 QUEUE TYPE
  1829.  
  1830. PEJB DATA L* SRUS= . SRU LIMIT= . CM FL= .
  1831. , EM FL= .*
  1832.  
  1833. PEJC DATA 0
  1834. DATA L* DAYFILE= *
  1835. PEJCL EQU *-PEJC LENGTH OF DAYFILE HEADER LINE
  1836.  
  1837. PEJD DATA 0
  1838. DATA C* PENDING COMMANDS =*
  1839. PEJDL EQU *-PEJD LENGTH OF COMMAND HEADER LINE
  1840.  
  1841. PEJE DATA L* PRU LENGTH= . DC= . FC= . ID= . EC=
  1842. , .*
  1843.  
  1844. PEJF DATA L* . . . . . UJN=
  1845. , LEVEL= *
  1846.  
  1847. PEJG CON 0 LWA+1 OF REPLY UNIT
  1848. TITLE JSN OPTION.
  1849. PJS SPACE 4,10
  1850. ** PJS - PROCESS JSN PARAMETER.
  1851. *
  1852. * USES X - 0, 1, 2, 3, 5, 6, 7.
  1853. * A - 1, 2, 3, 6, 7.
  1854. * B - 4, 6, 7.
  1855. *
  1856. * CALLS BFB, CFP, ESB, GCS, GDR, GJS, GSC, IPR, RRB, SFN.
  1857. *
  1858. * MACROS WRITES.
  1859. *
  1860. * DEFINE (X5) = INCOMPLETE LINE FLAG.
  1861. * .EQ. 1, PARTIAL LINE WRITTEN.
  1862. * .NE. 1, COMPLETE LINE WRITTEN.
  1863. *
  1864. * EXAMPLE -
  1865. *
  1866. * 1 2 3 4 5 6 7
  1867. * 234567890123456789012345678901234567890123456789012345678901234567890
  1868. *
  1869. * JSN SC CS DS LID STATUS JSN SC CS DS LID STATUS
  1870. *
  1871. * ABFB.D. .RB.M90.PRINT QUEUE ABAB.T.ON.BC.M90.EXECUTING
  1872.  
  1873.  
  1874. PJS SUBR ENTRY/EXIT
  1875. SA1 PIJS SET PEEK INFORMATION BITS
  1876. SX6 99999 FORCE EJECT
  1877. BX5 X5-X5 SET LINE COMPLETE
  1878. SA6 LCT
  1879. BX7 X1
  1880. SA7 BQPF+2
  1881. PJS1 RJ IPR ISSUE PEEK REQUEST
  1882. NZ X1,PJS5 IF NO JOBS FOUND
  1883. NZ X5,PJS3 IF INCOMPLETE LINE
  1884. PJS2 SB6 PJSA CHECK FOR PAGE LIMIT
  1885. RJ BFB INITIALIZE BUFFER
  1886. SB7 PJSAL
  1887. RJ CFP
  1888. PJS3 SA1 BQAC+3 GET NEXT ENTRY
  1889. SB6 X1 GET *OUT* POINTER
  1890. MX0 24
  1891. SA1 B6 GET JSN
  1892. BX1 X0*X1
  1893. RJ SFN
  1894. SB7 JSJL+X5 SET JSN IN BUFFER
  1895. RJ ESB
  1896. SX6 1R.
  1897. SA6 B7+
  1898. RJ GSC GET SERVICE CLASS
  1899. SB7 SCJL+X5 SET SERVICE CLASS IN BUFFER
  1900. RJ ESB
  1901. SX6 1R.
  1902. SA6 B7
  1903. SA1 B6+3
  1904. RJ GCS GET CONNECTION STATUS
  1905. SB7 CNJL+X5
  1906. RJ ESB
  1907. SX6 1R.
  1908. SA6 B7
  1909. SA1 B6+2
  1910. RJ GDR GET DESTINATION ROUTING
  1911. SB7 DSJL+X5
  1912. RJ ESB
  1913. SX6 1R.
  1914. SA6 B7+
  1915. SA1 B6+4 GET LID
  1916. MX0 18
  1917. LX1 6
  1918. BX1 X0*X1
  1919. RJ SFN
  1920. SB7 LIJL+X5 SET LID IN BUFFER
  1921. RJ ESB
  1922. SX6 1R.
  1923. SB4 3
  1924. SA6 B7
  1925. RJ GJS GET JOB STATUS
  1926. SB7 STJL+X5 SET JOB STATUS IN BUFFER
  1927. RJ ESB
  1928. MX0 -12
  1929. SA1 BQPF+1 ADVANCE *OUT* POINTER
  1930. BX1 -X0*X1 PEEK REPLY ENTRY LENGTH
  1931. SA2 BQAC+3
  1932. SA3 A2-B1 GET *IN* POINTER
  1933. IX6 X1+X2
  1934. IX3 X6-X3 CALCULATE *OUT* - *IN*
  1935. SX5 X5+B1
  1936. ZR X3,PJS4 IF REPLY BUFFER EMPTY
  1937. SA6 A2
  1938. SB7 X5
  1939. EQ B7,B1,PJS3 IF INCOMPLETE LINE
  1940. WRITES OUTPUT,USBB,MXLL
  1941. BX5 X5-X5
  1942. EQ PJS2 PROCESS NEXT ENTRY
  1943.  
  1944. PJS4 RJ RRB RESET *QAC* REQUEST BUFFER
  1945. NZ X1,PJS6 IF MORE QUEUES TO SCAN
  1946. PJS5 ZR X5,PJSX IF LINE ALREADY WRITTEN
  1947. WRITES OUTPUT,USBB,MXLL
  1948. EQ PJSX RETURN
  1949.  
  1950. PJS6 ZR X5,PJS1 IF LINE ALREADY WRITTEN
  1951. WRITES OUTPUT,USBB,MXLL
  1952. SX5 B0+
  1953. EQ PJS1 PROCESS NEXT BUFFER
  1954.  
  1955.  
  1956. PJSA DATA L* JSN SC CS DS LID STATUS JSN SC CS *
  1957. DATA L*DS LID STATUS*
  1958. DATA 0
  1959. PJSAL EQU *-PJSA LENGTH OF PAGE HEADER
  1960. TITLE UJN OPTION.
  1961. PUJ SPACE 4,10
  1962. ** PUJ - PROCESS UJN PARAMETER.
  1963. *
  1964. * ENTRY (X5) = UJN PARAMETER WORD.
  1965. *
  1966. * USES X - 0, 1, 2, 3, 6, 7.
  1967. * A - 1, 2, 3, 6, 7.
  1968. * B - 4, 6, 7.
  1969. *
  1970. * CALLS BFB, CFP, ESB, GCS, GDR, GJS, GSC, IPR, ISM, RRB,
  1971. * SFN.
  1972. *
  1973. * MACROS WRITES.
  1974. *
  1975. * EXAMPLE -
  1976. *
  1977. * 1 2 3 4 5 6 7
  1978. * 234567890123456789012345678901234567890123456789012345678901234567890
  1979. *
  1980. * JSN SC CS DS LID UJN STATUS EXECUTING MESSAGE
  1981. *
  1982. * ABFB.D.DT.BC.M90.MYJOBAA EXECUTING ASSEMBLING LFM
  1983.  
  1984.  
  1985. PUJ SUBR ENTRY/EXIT
  1986. MX0 42 SAVE UJN
  1987. BX6 X0*X5
  1988. SA6 PUJB
  1989. SA6 PUJC
  1990. SA1 PIUJ SET PEEK INFORMATION BITS
  1991. SX6 99999 FORCE EJECT
  1992. SA6 LCT
  1993. BX7 X1
  1994. SA7 BQPF+2
  1995. PUJ1 RJ IPR ISSUE PEEK REQUEST
  1996. NZ X1,PUJX IF NO JOBS FOUND
  1997. PUJ2 SB6 PUJA CHECK FOR PAGE LIMIT
  1998. SB7 PUJAL
  1999. RJ CFP
  2000. RJ BFB BLANK FILL STRING BUFFER
  2001. SA1 BQAC+3 GET NEXT ENTRY
  2002. SB6 X1+ GET *OUT* POINTER
  2003. MX0 42 GET UJN
  2004. SA1 B6+3
  2005. BX1 X0*X1
  2006. SA2 PUJB
  2007. ZR X2,PUJ3 IF NOT SEARCHING FOR SPECIFIC UJN
  2008. BX2 X1-X2
  2009. NZ X2,PUJ7 IF NOT MATCH
  2010. BX6 X6-X6 SPECIFIC UJN FOUND
  2011. SA6 PUJC
  2012. PUJ3 RJ SFN SPACE FILL UJN
  2013. SB7 UJUL
  2014. RJ ESB
  2015. MX0 24
  2016. SA1 B6+ GET JSN
  2017. BX1 X0*X1
  2018. RJ SFN
  2019. SB7 JSUL SET JSN
  2020. RJ ESB
  2021. SX6 1R.
  2022. SA6 B7+
  2023. RJ GSC GET SERVICE CLASS
  2024. SB7 SCUL SET SERVICE CLASS
  2025. RJ ESB
  2026. SX6 1R.
  2027. SA6 B7+
  2028. SA1 B6+4
  2029. RJ GCS GET CONNECTION STATUS
  2030. SB7 CNUL SET CONNECTION STATUS
  2031. RJ ESB
  2032. SX6 1R.
  2033. SA6 B7+
  2034. SA1 B6+2
  2035. RJ GDR GET DESTINATION ROUTING
  2036. SB7 DSUL
  2037. RJ ESB
  2038. SX6 1R.
  2039. SA6 B7
  2040. SA1 B6+15 GET LID
  2041. MX0 18
  2042. LX1 6
  2043. BX1 X0*X1
  2044. RJ SFN
  2045. SB7 LIUL SET LID IN BUFFER
  2046. RJ ESB
  2047. SX6 1R.
  2048. SA6 B7
  2049. SB4 4 GET JOB STATUS
  2050. RJ GJS
  2051. SB7 STUL SET JOB STATUS
  2052. RJ ESB
  2053. SB7 EMUL
  2054. SA1 B6+12 CHECK *MS2W*
  2055. NZ X1,PUJ4 IF MESSAGE PRESENT
  2056. SA1 B6+6 USE MESSAGE IN *MS1W*
  2057. PUJ4 BX6 X1
  2058. RJ ESB
  2059. SA1 L1UL
  2060. SB7 X1+
  2061. SA2 USBB+B7 CHANGE TRAILING ZEROES TO BLANKS
  2062. SX6 1R
  2063. PUJ5 SA2 A2-B1
  2064. NZ X2,PUJ6 IF NONZERO CHARACTER
  2065. SA6 A2
  2066. EQ PUJ5 CHECK NEXT CHARACTER
  2067.  
  2068. PUJ6 WRITES OUTPUT,USBB,B7
  2069. PUJ7 SA2 BQPF+1 GET PEEK REPLY ENTRY LENGTH
  2070. MX0 -12
  2071. BX2 -X0*X2
  2072. SA1 BQAC+3 ADVANCE *OUT* POINTER
  2073. SA3 A1-B1
  2074. IX6 X2+X1
  2075. IX3 X6-X3 CALCULATE *OUT* - *IN*
  2076. SA6 A1
  2077. NZ X3,PUJ2 IF MORE ENTRIES IN REPLY BUFFER
  2078. RJ RRB RESET REQUEST BUFFER
  2079. NZ X1,PUJ1 IF MORE QUEUES TO SCAN
  2080. SA1 PUJC
  2081. ZR X1,PUJX IF NOT SEARCHING FOR UJN
  2082. SA1 PUJB GET UJN
  2083. RJ SFN
  2084. SB7 UJUL SET UJN
  2085. RJ ESB
  2086. SA1 PUJD
  2087. BX6 X1
  2088. SB7 STUL SET JOB STATUS
  2089. RJ ESB
  2090. SA1 L1UL
  2091. SB7 X1
  2092. WRITES OUTPUT,USBB,B7
  2093. SA1 PUJB
  2094. SA2 EMSD * UJN NOT FOUND.*
  2095. RJ ISM ISSUE ERROR MESSAGE
  2096. EQ PUJX RETURN
  2097.  
  2098.  
  2099. PUJA DATA L* JSN SC CS DS LID UJN STATUS EXECUT*
  2100. DATA L*ING MESSAGE*
  2101. DATA 0
  2102. PUJAL EQU *-PUJA LENGTH OF PAGE HEADER
  2103.  
  2104. PUJB CON 0 UJN TO SEARCH FOR
  2105. PUJC CON 0 SEARCHING FOR UJN FLAG
  2106. PUJD DATA L*NOT FOUND *
  2107. TITLE SUBROUTINES.
  2108. BFB SPACE 4,10
  2109. ** BFB - BLANK FILL STRING BUFFER.
  2110. *
  2111. * EXIT (USBB) = STRING BUFFER BLANK FILLED.
  2112. *
  2113. * USES X - 1, 6.
  2114. * A - 1, 6.
  2115. * B - 2.
  2116.  
  2117.  
  2118. BFB SUBR ENTRY/EXIT
  2119. SA1 USBB
  2120. SB2 USBBL
  2121. SX6 1R
  2122. BFB1 SA6 A1
  2123. SB2 B2-B1
  2124. SA1 A1+1
  2125. NZ B2,BFB1 IF NOT END OF BUFFER
  2126. EQ BFBX RETURN
  2127. CFP SPACE 4,15
  2128. ** CFP - CHECK FOR END OF PAGE.
  2129. *
  2130. * ENTRY (B6) = FWA OF PAGE HEADER.
  2131. * (B7) = LENGTH OF PAGE HEADER (WORDS).
  2132. * (LCT) = CURRENT LINE COUNT.
  2133. * (LLM) = CURRENT PAGE SIZE.
  2134. *
  2135. * EXIT LINE COUNT UPDATED.
  2136. * NEW PAGE HEADER WRITTEN IF END OF PAGE.
  2137. *
  2138. * USES X - 1, 2, 6, 7.
  2139. * A - 1, 2, 6, 7.
  2140. *
  2141. * MACROS WRITEW.
  2142.  
  2143.  
  2144. CFP SUBR ENTRY/EXIT
  2145. SA1 LCT INCREMENT LINE COUNT
  2146. SX6 X1+B1
  2147. SA6 A1
  2148. SA2 LLM GET LINE LIMIT
  2149. IX1 X1-X2
  2150. SX7 X1+4
  2151. NG X7,CFPX IF NOT END OF PAGE
  2152. MX7 0
  2153. SA7 A1 RESET LINE COUNT
  2154. SA1 PUJB
  2155. ZR X1,CFP1 IF NOT SEARCHING FOR SPECIFIC UJN
  2156. SA1 CFPA
  2157. NZ X1,CFPX IF FWA OF PAGE HEADER ALREADY SET
  2158. CFP1 SX6 B6 SAVE FWA OF PAGE HEADER
  2159. SA6 CFPA
  2160. SX7 B7+ SAVE LENGTH OF PAGE HEADER
  2161. SA7 CFPC
  2162. WRITEW OUTPUT,PAGE,B1 WRITE NEW PAGE HEADER
  2163. SA1 CFPA
  2164. SA2 CFPC
  2165. WRITEW OUTPUT,X1,X2
  2166. EQ CFPX RETURN
  2167.  
  2168.  
  2169. CFPA CON 0 FWA OF PAGE HEADER
  2170. CFPC CON 0 LENGTH OF PAGE HEADER
  2171. CIH SPACE 4,10
  2172. ** CIH - COMPUTE USER INDEX HASH.
  2173. *
  2174. * ENTRY (X7) = 18 BIT USER INDEX (RIGHT JUSTIFIED).
  2175. *
  2176. * EXIT (X7) = 4 CHARACTER USER INDEX HASH (LEFT JUSTIFIED
  2177. * WITH ZERO FILL).
  2178. *
  2179. * USES X - 0, 1, 2, 3, 7.
  2180. * B - 2, 3.
  2181.  
  2182.  
  2183. CIH SUBR ENTRY/EXIT
  2184. SB2 59-11 INITIAL SHIFT COUNT
  2185. SB3 5
  2186. MX0 -5
  2187. LX3 B2,X7 BITS 12-16 OF USER INDEX
  2188. BX2 -X0*X3 FIRST CHARACTER OF HASH
  2189. SX2 X2+B1
  2190. LX2 6
  2191. SB2 B2+B3 SHIFT COUNT FOR SECOND CHARACTER
  2192. LX3 B2,X7 BITS 7-11 OF USER INDEX
  2193. BX1 -X0*X3 SECOND CHARACTER OF HASH
  2194. SX1 X1+B1
  2195. BX2 X2+X1
  2196. LX2 6
  2197. SB2 B2+B3 SHIFT COUNT FOR THIRD CHARACTER
  2198. LX3 B2,X7 BITS 2-6 OF USER INDEX
  2199. BX1 -X0*X3 THIRD CHARACTER OF HASH
  2200. SX1 X1+B1
  2201. BX2 X2+X1
  2202. LX2 6
  2203. MX0 -2 FOURTH CHARACTER OF HASH
  2204. BX1 -X0*X7 BITS 1-0 OF USER INDEX
  2205. LX1 3
  2206. SX1 X1+B1
  2207. BX7 X2+X1
  2208. LX7 59-23 LEFT JUSTIFY USER INDEX HASH
  2209. EQ CIHX EXIT
  2210. CLM SPACE 4,15
  2211. ** CLM - CHECK AND CONVERT LIMIT.
  2212. *
  2213. * ENTRY (X5) = VALUE TO CONVERT.
  2214. * (X0) = MASK.
  2215. *
  2216. * EXIT (X6) = CONVERTED VALUE, RIGHT JUSTIFIED.
  2217. * (X7) = CONVERTED VALUE, LEFT JUSTIFIED.
  2218. *
  2219. * USES A - 2.
  2220. * X - 1, 2, 3, 6, 7.
  2221. *
  2222. * CALLS CDD.
  2223.  
  2224.  
  2225. CLM SUBR ENTRY/EXIT
  2226. SA2 =L*NO LIMIT*
  2227. BX1 -X0*X5
  2228. BX3 X0+X1
  2229. BX7 X2
  2230. LX2 -12
  2231. BX6 X2
  2232. ZR X3,CLMX IF NO LIMIT
  2233. MX3 57 COMPLETE MASK (ADD BITS 2-0)
  2234. BX3 X3*X0
  2235. BX1 -X3*X5
  2236. RJ CDD CONVERT TO DECIMAL DISPLAY
  2237. MX3 42 INSURE END OF LINE
  2238. BX7 X3*X4
  2239. EQ CLMX RETURN
  2240. CSD SPACE 4,15
  2241. ** CSD - CONVERT TO SIGNED DISPLAY CODE.
  2242. *
  2243. * ENTRY (X1) = 18-BIT VALUE TO BE CONVERTED, RIGHT JUSTIFIED.
  2244. *
  2245. * EXIT (X6) = SIGNED VALUE, MAXIMUM OF 6 CHARACTERS
  2246. * PLUS SIGN CHARACTER.
  2247. *
  2248. * USES B - 5.
  2249. * X - 1, 2, 3, 4, 6.
  2250. *
  2251. * CALLS CDD.
  2252.  
  2253.  
  2254. CSD SUBR ENTRY/EXIT
  2255. SB5 B0
  2256. BX2 X1
  2257. LX2 59-17
  2258. BX3 -X2 GET COMPLEMENT
  2259. PL X2,CSD1 IF NOT NEGATIVE VALUE
  2260. AX3 59-17 FIND POSITIVE VALUE
  2261. BX1 X3
  2262. SB5 1R- SET NEGATIVE SIGN
  2263. CSD1 RJ CDD CONVERT TO DISPLAY CODE
  2264. ZR B5,CSD2 IF NOT A NEGATIVE VALUE
  2265. SX3 B5 ADD SIGN TO VALUE
  2266. AX4 6
  2267. MX2 6 CLEAR UPPER 6 BITS
  2268. BX4 -X2*X4
  2269. LX3 54
  2270. BX4 X4+X3
  2271. CSD2 MX1 48
  2272. BX6 X1*X4
  2273. EQ CSDX RETURN
  2274. CSR SPACE 4,10
  2275. ** CSR - CONVERT SRU-S.
  2276. *
  2277. * ENTRY (X2) = SRU VALUE (MICRO-UNITS*10).
  2278. *
  2279. * EXIT (X6) = F10.3 FORMAT VALUE.
  2280. * = *NO LIMIT*, IF SRU VALUE .EQ. -0.
  2281. *
  2282. * USES X - 0, 1, 3, 6.
  2283. * A - 3.
  2284. *
  2285. * CALLS CFD.
  2286.  
  2287.  
  2288. CSR1 SA3 =L*NO LIMIT*
  2289. BX6 X3
  2290.  
  2291. CSR SUBR ENTRY/EXIT
  2292. MX0 -42
  2293. BX1 -X0*X2
  2294. BX3 X0+X1
  2295. ZR X3,CSR1 IF NO LIMIT
  2296. SA3 MLPY SRU CONSTANT (=.0001)
  2297. PX1 X1
  2298. FX1 X3*X1 SRU/10000
  2299. RJ CFD CONVERT TO F10.3 FORMAT
  2300. EQ CSRX RETURN
  2301. DTT SPACE 4,10
  2302. ** DTT - DETERMINE TIME UNTIL TIMEOUT.
  2303. *
  2304. * ENTRY (X1) = SCHEDULING FIELD FROM *QAC* BLOCK,
  2305. * RIGHT-JUSTIFIED.
  2306. *
  2307. * EXIT (SUSM) = UPDATED WITH NEW TIME.
  2308. *
  2309. * USES X - 1, 2, 4, 6.
  2310. * A - 1, 6.
  2311. *
  2312. * CALLS CDD.
  2313. *
  2314. * MACROS RTIME.
  2315.  
  2316.  
  2317. DTT SUBR ENTRY/EXIT
  2318. MX2 -24
  2319. BX4 -X2*X1
  2320. RTIME DTTA
  2321. SA1 DTTA GET SECONDS
  2322. LX1 24
  2323. BX1 -X2*X1
  2324. IX4 X4-X1 SECONDS REMAINING UNTIL TIMEOUT
  2325. SX1 X4+30
  2326. SX4 60
  2327. IX1 X1/X4 CONVERT SECONDS TO MINUTES
  2328. RJ CDD CONVERT TO DECIMAL DISPLAY CODE
  2329. SA1 SUSM
  2330. MX2 -18
  2331. BX6 -X2*X6
  2332. LX2 23-17
  2333. BX1 X2*X1 REMOVE TIME
  2334. LX6 23-17
  2335. BX6 X1+X6
  2336. SA6 A1 REPLACE MINUTES REMAINING
  2337. EQ DTTX RETURN
  2338.  
  2339.  
  2340. DTTA DATA 0 REAL TIME
  2341. ESB SPACE 4,15
  2342. ** ESB - ENTER DATA INTO STRING BUFFER.
  2343. *
  2344. * ENTRY (B7) = ADDRESS OF LINE DESCRIPTOR ENTRY.
  2345. * (X6) = FIRST WORD OF DATA TO TRANSFER.
  2346. * (A1) = ADDRESS OF DATA TO TRANSFER, IF MORE THAN
  2347. * ONE WORD.
  2348. *
  2349. * EXIT (B7) = CURRENT STRING BUFFER ADDRESS.
  2350. *
  2351. * USES X - 0, 1, 2, 3, 6, 7.
  2352. * A - 1, 2, 7.
  2353. * B - 2, 3, 7.
  2354.  
  2355.  
  2356. ESB SUBR ENTRY/EXIT
  2357. SA2 B7+ GET NUMBER OF CHARACTERS TO TRANSFER
  2358. SB2 X2
  2359. LX2 -18
  2360. SX3 X2 GET CHARACTER INDEX
  2361. SB7 USBB+X3 SET STARTING ADDRESS IN STRING BUFFER
  2362. MX0 -6
  2363. ESB1 SB3 10 SET CHARACTERS PER WORD
  2364. ESB2 LX6 6
  2365. SB2 B2-B1
  2366. BX7 -X0*X6
  2367. SB3 B3-B1
  2368. SA7 B7
  2369. SB7 B7+B1
  2370. ZR B2,ESBX IF ALL CHARACTERS TRANSFERRED
  2371. NZ B3,ESB2 IF NOT END OF WORD
  2372. SA1 A1+B1
  2373. BX6 X1
  2374. EQ ESB1 TRANSFER NEXT CHARACTER
  2375. GCS SPACE 4,10
  2376. ** GCS - GET CONNECTION STATUS.
  2377. *
  2378. * ENTRY (B6) = PEEK REPLY ENTRY ADDRESS.
  2379. * (X1) = PEEK REPLY ENTRY WORD CONTAINING CONNECTION
  2380. * STATUS.
  2381. *
  2382. * EXIT (X6) = CONNECTION STATUS, LEFT JUSTIFIED.
  2383. *
  2384. * USES X - 0, 1, 2, 6.
  2385. * A - 1, 2.
  2386.  
  2387.  
  2388. GCS SUBR ENTRY/EXIT
  2389. SA2 B6 GET QUEUE TYPE
  2390. MX0 -12
  2391. LX2 11-23
  2392. BX2 -X0*X2
  2393. SX2 X2-EXQQ
  2394. ZR X2,GCS1 IF EXECUTING JOB
  2395. SA1 GCSA CLEAR CONNECTION STATUS
  2396. BX6 X1
  2397. EQ GCSX RETURN
  2398.  
  2399. GCS1 MX0 -4 GET CONNECTION STATUS FROM REPLY ENTRY
  2400. LX1 0-55
  2401. BX1 -X0*X1
  2402. SA1 CNST+X1 GET CONNECTION STATUS TO DISPLAY
  2403. BX6 X1
  2404. EQ GCSX RETURN
  2405.  
  2406. GCSA DATA 2C CONNECTION STATUS FOR QUEUED FILES
  2407. GDR SPACE 4,10
  2408. ** GDR - GET DESTINATION ROUTING.
  2409. *
  2410. * ENTRY (X1) = PEEK REPLY ENTRY WORD CONTAINING THE
  2411. * DESTINATION *FO-UI*.
  2412. *
  2413. * EXIT (X6) = DESTINATION ROUTING, LEFT JUSTIFIED.
  2414. *
  2415. * USES X - 0, 1, 2, 6.
  2416. * A - 1.
  2417.  
  2418.  
  2419. GDR SUBR ENTRY/EXIT
  2420. MX0 6
  2421. BX2 X0*X1
  2422. NZ X2,GDR1 IF ROUTED TO REMOTE BATCH
  2423. SA1 GDRA
  2424. EQ GDR2 DISPLAY ROUTED TO LOCAL BATCH
  2425.  
  2426. GDR1 SA1 GDRB DISPLAY ROUTED TO REMOTE BATCH
  2427. GDR2 BX6 X1
  2428. EQ GDRX RETURN
  2429.  
  2430. GDRA DATA 2CBC ROUTED TO LOCAL BATCH
  2431. GDRB DATA 2CRB ROUTED TO REMOTE BATCH
  2432. GJS SPACE 4,15
  2433. ** GJS - GET JOB STATUS.
  2434. *
  2435. * ENTRY (B4) = EJT STATUS WORD OFFSET.
  2436. * (B6) = PEEK REPLY ENTRY ADDRESS.
  2437. *
  2438. * EXIT (A1) = ADDRESS OF STATUS DESCRIPTOR.
  2439. * (X6) = FIRST WORD OF STATUS DESCRIPTOR.
  2440. *
  2441. * ERROR TO *PSE*, IF INCORRECT QUEUE TYPE.
  2442. *
  2443. * USES X - 0, 1, 2, 3, 4, 6.
  2444. * A - 1, 2, 3.
  2445. *
  2446. * CALLS DTT.
  2447.  
  2448.  
  2449. GJS SUBR ENTRY/EXIT
  2450. SA1 B6+ GET QUEUE TYPE
  2451. MX0 -12
  2452. LX1 -12
  2453. BX1 -X0*X1
  2454. SA2 QTST SEARCH FOR MATCHING QUEUE TYPE
  2455. MX0 18
  2456. GJS1 ZR X2,GJS3 IF END OF TABLE
  2457. BX3 X0*X2
  2458. LX3 18
  2459. IX4 X1-X3
  2460. SX3 X2 ADDRESS OF STATUS DESCRIPTOR
  2461. SA2 A2+1
  2462. NZ X4,GJS1 IF NO MATCH
  2463. NZ X3,GJS2 IF NOT EXECUTING JOB
  2464. SA1 B6+B4 GET EJT STATUS
  2465. MX0 -5
  2466. LX1 11
  2467. BX6 -X0*X1
  2468. SA3 X6+EJST
  2469. SX6 X6-SUJS
  2470. NZ X6,GJS2 IF NOT SUSPENDED JOB
  2471. LX1 -11-12
  2472. RJ DTT DETERMINE MINUTES UNTIL TIMEOUT
  2473. SA3 EJST+SUJS RESET MESSAGE
  2474. GJS2 SA1 X3
  2475. BX6 X1
  2476. EQ GJSX RETURN
  2477.  
  2478. GJS3 SX1 EMSB * INCORRECT QUEUE TYPE.*
  2479. EQ PSE ISSUE ERROR MESSAGE AND ABORT
  2480. GSC SPACE 4,10
  2481. ** GSC - GET SERVICE CLASS.
  2482. *
  2483. * ENTRY (B6) = PEEK REPLY ENTRY ADDRESS.
  2484. *
  2485. * EXIT (X6) = SERVICE CLASS CHARACTER, LEFT JUSTIFIED.
  2486. *
  2487. * USES X - 0, 1, 2, 3, 4, 6.
  2488. * A - 1, 2.
  2489. * B - 2.
  2490.  
  2491.  
  2492. GSC SUBR ENTRY/EXIT
  2493. MX0 6 GET SERVICE CLASS
  2494. SA1 B6+B1
  2495. SX3 10 CALCULATE WORD ORDINAL
  2496. BX1 X0*X1
  2497. LX1 6
  2498. BX4 X1
  2499. SX6 X3
  2500. IX3 X1/X3
  2501. SA2 GSCA+X3
  2502. IX3 X3*X6
  2503. IX4 X4-X3
  2504. SX3 6 CALCULATE SHIFT COUNT
  2505. IX4 X3*X4
  2506. SB2 X4
  2507. LX2 X2,B2
  2508. BX6 X0*X2 SERVICE CLASS CHARACTER
  2509. EQ GSCX RETURN
  2510.  
  2511.  
  2512. GSCA DATA L+"NMDS"+ SERVICE CLASS CHARACTER STRING
  2513. IPR SPACE 4,15
  2514. ** IPR - ISSUE PEEK REQUEST.
  2515. *
  2516. * ENTRY (BQAC) = *QAC* PEEK REQUEST.
  2517. *
  2518. * EXIT (X1) = 0, IF REQUEST SUCCESSFUL.
  2519. * = 1, IF NO JOBS FOUND.
  2520. *
  2521. * ERROR TO *PSE*, IF *QAC* ERROR ENCOUNTERED.
  2522. *
  2523. * USES X - 0, 1, 2, 6.
  2524. * A - 1, 2, 6.
  2525. *
  2526. * CALLS ISM.
  2527. *
  2528. * MACROS SYSTEM.
  2529.  
  2530.  
  2531. IPR SUBR ENTRY/EXIT
  2532. SYSTEM QAC,R,BQAC ISSUE PEEK REQUEST
  2533. SA1 BQAC CHECK ERROR STATUS
  2534. MX0 -8
  2535. LX1 -10
  2536. BX1 -X0*X1
  2537. ZR X1,IPR3 IF NO ERRORS
  2538. SX2 X1-ER07
  2539. ZR X2,IPR1 IF NO JOBS FOUND
  2540. SX1 EMSE * QAC ERROR ENCOUNTERED.*
  2541. EQ PSE ISSUE ERROR MESSAGE AND ABORT
  2542.  
  2543. * PROCESS NO JOBS FOUND.
  2544.  
  2545. IPR1 SA1 JSNM GET JSN
  2546. SA2 EMSD
  2547. NZ X1,IPR2 IF JSN SPECIFIED
  2548. SA1 IPRA
  2549. NZ X1,IPRX IF NOT FIRST REQUEST
  2550. SA2 EMSC
  2551. IPR2 RJ ISM
  2552. SX1 B1+ SET NO JOBS FOUND FLAG
  2553. IPR3 SX6 B1+ FIRST REQUEST ISSUED
  2554. SA6 IPRA
  2555. EQ IPRX RETURN
  2556.  
  2557.  
  2558. IPRA CON 0 FIRST REQUEST FLAG
  2559. ISM SPACE 4,20
  2560. ** ISM - ISSUE MESSAGE.
  2561. *
  2562. * ENTRY (X1) = JSN OR UJN.
  2563. * = 0, IF JSN OR UJN NOT TO BE ADDED TO MESSAGE.
  2564. * (X2) = FIRST WORD OF MESSAGE.
  2565. * (A2) = BEGINNING ADDRESS OF MESSAGE.
  2566. *
  2567. * USES X - 1, 2, 3, 6.
  2568. * A - 3, 6.
  2569. *
  2570. * CALLS SFN.
  2571. *
  2572. * MACROS MESSAGE, WRITEC.
  2573. *
  2574. * NOTES *ISM* ISSUES A SPECIFIED MESSAGE TO THE
  2575. * OUTPUT FILE IF IT IS A TERMINAL FILE, OR TO
  2576. * THE USER-S DAYFILE IF IT IS NOT. IF A JSN OR
  2577. * UJN IS SPECIFIED, IT IS ADDED TO THE MESSAGE.
  2578.  
  2579.  
  2580. ISM SUBR ENTRY/EXIT
  2581. ZR X1,ISM1 IF NO JSN/UJN
  2582. RJ SFN SPACE FILL JSN/UJN
  2583. MX3 42 ADD JSN/UJN TO MESSAGE
  2584. LX3 -6 PUT JSN/UJN IN CHARACTER POSITIONS 2-8
  2585. BX2 -X3*X2
  2586. LX6 -6
  2587. BX1 X3*X6
  2588. BX6 X2+X1
  2589. SA6 A2+
  2590. ISM1 SA3 FT
  2591. ZR X3,ISM2 IF TERMINAL FILE
  2592. MESSAGE A2,3
  2593. EQ ISMX EXIT
  2594.  
  2595. ISM2 WRITEC O,A2
  2596. EQ ISMX EXIT
  2597. LST SPACE 4,20
  2598. ** LST - PROCESS FILE LENGTH, STATUS AND TYPE.
  2599. *
  2600. * ENTRY (A5)= FNT ENTRY ADDRESS.
  2601. * (X5)= FNT ENTRY.
  2602. *
  2603. * EXIT (A5) = FST WORD ADDRESS.
  2604. * FILE LENGTH IN FOPB+1.
  2605. * FILE TYPE IN FOPB+2.
  2606. * FILE STATUS IN FOPB+3.
  2607. * FILE ACCESS LEVEL IN FOPB+4, FOPB+5.
  2608. *
  2609. * USES X - 0, 1, 2, 3, 4, 5, 6, 7.
  2610. * A - 1, 2, 5, 6, 7.
  2611. * B - 2, 5.
  2612. *
  2613. * CALLS CDD, SFN.
  2614. *
  2615. * MACROS WRITEW.
  2616. *
  2617.  
  2618.  
  2619. LST SUBR
  2620. MX0 42 PROCESS NAME
  2621. BX1 X0*X5
  2622. RJ SFN SPACE FILL NAME
  2623. LX6 42 RIGHT JUSTIFY NAME
  2624. SA6 FOPB
  2625. MX0 -6 SET FILE STATUS
  2626. BX1 -X0*X5
  2627. SA1 FSTT+X1 FILE STATUS
  2628. RJ SFN SPACE FILL NAME
  2629. SB2 15 SET FILE ACCESS LEVEL
  2630. AX3 X5,B2
  2631. MX0 -3
  2632. BX3 -X0*X3
  2633. NZ X3,LST1 IF NOT LEVEL 0
  2634. SA2 SSFL
  2635. NZ X2,LST1 IF SECURE SYSTEM
  2636. SA6 FOPB+4 STORE FILE STATUS
  2637. SX6 B0+
  2638. SA6 FOPB+5
  2639. EQ LST2 GET FILE TYPE
  2640.  
  2641. LST1 MX0 30
  2642. BX4 X0*X6 SAVE FILE STATUS
  2643. SA1 TALV+X3 FILE ACCESS LEVEL
  2644. RJ SFN SPACE FILL ACCESS LEVEL
  2645. LX6 -30
  2646. BX7 -X0*X6
  2647. BX7 X4+X7
  2648. SA7 FOPB+4 SET FILE STATUS AND ACCESS LEVEL
  2649. MX0 12
  2650. BX6 X0*X6 SET LAST TWO CHARACTERS OF ACCESS LEVEL
  2651. SA6 FOPB+5
  2652. LST2 MX0 -6
  2653. AX5 6 FILE TYPE
  2654. BX2 -X0*X5
  2655. SA1 FLTY+X2 FILE TYPE
  2656. MX0 18
  2657. BX1 X0*X1
  2658. RJ SFN SPACE FILL NAME
  2659. LX6 24
  2660. LX5 6+59-12 CHECK WRITE LOCKOUT BIT
  2661. PL X5,LST3 IF NOT WRITE LOCKOUT
  2662. SA1 =1R* DISPLAY * AFTER FILE TYPE
  2663. MX0 -6
  2664. BX6 X0*X6
  2665. BX6 X1+X6
  2666. LST3 LX6 6
  2667. SA6 FOPB+2
  2668. MX0 -2 GET FILE TYPE
  2669. BX5 -X0*X5
  2670. SB5 X5
  2671. SX2 X2-LOFT
  2672. NZ X2,LST3.2 IF NOT LOCAL FILE
  2673. SA2 LSTA SET *TP*
  2674. EQ B5,B1,LST3.1 IF TAPE FILE
  2675. SA2 A2+B1 SET *TT*
  2676. SB2 B5-B1
  2677. NE B2,B1,LST3.2 IF NOT TERMINAL FILE
  2678. LST3.1 MX0 48 REPLACE *LO* IN FILE TYPE FIELD
  2679. LX0 18
  2680. LX2 30
  2681. BX6 X0*X6
  2682. BX6 X2+X6 INSERT NEW FILE TYPE
  2683. SA6 A6+
  2684.  
  2685. * PROCESSING FST ENTRY.
  2686.  
  2687. LST3.2 SA5 A5+1 FST ENTRY
  2688. SA2 =10H
  2689. NE B5,B1,LST3.3 IF NOT TAPE FILE
  2690. LX5 24
  2691. LST3.3 MX0 24
  2692. BX1 X0*X5 FILE LENGTH
  2693. LX1 24
  2694. BX6 X2
  2695. ZR X1,LST4 IF ZERO LENGTH
  2696. RJ CDD CONVERT TO DECIMAL
  2697. LST4 SA6 FOPB+1
  2698. LE B5,B1,LST5 IF MS OR TAPE FILE
  2699. SA1 =10H SET BLANKS FOR STATUS
  2700. EQ LST6 STORE STATUS
  2701.  
  2702. LST5 MX0 -3 SET STATUS FIELD
  2703. SA5 A5 FST ENTRY
  2704. SA1 OPBB
  2705. LX5 59-8
  2706. NG X5,LST6 IF FILE ON INACCESSIBLE DEVICE
  2707. LX5 59-0-59+8
  2708. BX2 -X0*X5
  2709. SA1 FLST+X2
  2710. PL X5,LST6 IF LAST OPERATION READ
  2711. MX0 30 UPDATE LAST OPERATION WITH *WRITE*
  2712. BX1 X0*X1
  2713. SA2 =R*WRITE*
  2714. BX1 X1+X2
  2715. LST6 BX6 X1
  2716. SA6 FOPB+3
  2717. WRITEW OUTPUT,FOPB,FOPL
  2718. EQ LSTX EXIT
  2719.  
  2720.  
  2721. LSTA DATA 2LTP
  2722. DATA 2LTT
  2723. PSE SPACE 4,10
  2724. ** PSE - PROCESS SYSTEM ERROR.
  2725. *
  2726. * ENTRY (X1) = FWA OF ERROR MESSAGE.
  2727. *
  2728. * EXIT JOB ABORTED.
  2729. *
  2730. * MACROS ABORT, MESSAGE.
  2731.  
  2732.  
  2733. PSE BSS 0 ENTRY
  2734. MESSAGE X1 ISSUE DESCRIPTIVE MESSAGE
  2735. MESSAGE EMSA * ENQUIRE ABORTED.*
  2736. ABORT
  2737. RRB SPACE 4,10
  2738. ** RRB - RESET *QAC* REQUEST BUFFER.
  2739. *
  2740. * EXIT (X1) .EQ. 0, IF QUEUE SCAN IS COMPLETE.
  2741. * .NE. 0, IF REQUEST IS TO BE REISSUED.
  2742. *
  2743. * USES X - 0, 1, 2, 3, 6.
  2744. * A - 1, 2, 3, 6.
  2745. * B - 2, 3.
  2746.  
  2747.  
  2748. RRB SUBR ENTRY/EXIT
  2749. SA1 BQAC+4 CHECK QUEUE SELECTION BITS
  2750. MX0 -12
  2751. LX1 -24
  2752. BX1 -X0*X1
  2753. ZR X1,RRBX IF QUEUE SEARCH COMPLETE
  2754. MX0 -1 CLEAR COMPLETION BIT
  2755. SA3 BQAC
  2756. BX6 X0*X3
  2757. SA6 A3
  2758. SA2 A3+B1 RESET BUFFER POINTERS
  2759. SX6 X2
  2760. SA6 A2+1 SET *IN* = *FIRST*
  2761. SB3 NUMQ
  2762. SA2 RRBA
  2763. SA6 A6+B1 SET *OUT* = *FIRST*
  2764. SB2 5 NUMBER OF QUEUE COUNTS PER WORD
  2765. BX6 X6-X6
  2766. SA3 BQPF
  2767. RRB1 ZR B3,RRB3 IF END OF QUEUES
  2768. NZ B2,RRB2 IF NOT END OF WORD
  2769. SA6 A3
  2770. SB2 4 ADVANCE TO NEXT WORD
  2771. SA3 A3+B1
  2772. SX6 B0+
  2773. RRB2 LX1 -1
  2774. SB2 B2-B1
  2775. LX2 -12
  2776. SB3 B3-B1
  2777. PL X1,RRB1 IF QUEUE SCANNED
  2778. BX6 X2+X6
  2779. EQ RRB1 CHECK NEXT QUEUE
  2780.  
  2781. RRB3 SA6 A3+
  2782. EQ RRBX RETURN
  2783.  
  2784.  
  2785. RRBA CON 7777B MAXIMUM QUEUE COUNT
  2786. WCL SPACE 4,15
  2787. ** WCL - WRITE DISPLAY CODED LINES.
  2788. *
  2789. * ENTRY (B6) = FWA OF DATA IN *QAC* REPLY UNIT BUFFER.
  2790. * (B7) = SEARCH FLAG.
  2791. * .EQ. 0, SEARCH FROM LWA TO FWA.
  2792. * .NE. 0, SEARCH FROM FWA TO LWA.
  2793. * (X5) = DATA WORD COUNT.
  2794. *
  2795. * USES X - 1, 5, 6, 7.
  2796. * A - 1, 6.
  2797. * B - 2, 3, 4, 5, 6, 7.
  2798. *
  2799. * CALLS USB.
  2800. *
  2801. * MACROS WRITES.
  2802. *
  2803. * NOTES *WCL* SEARCHES A *QAC* REPLY UNIT BUFFER
  2804. * CHECKING FOR THE FWA OF DATA TO WRITE.
  2805. * IF LESS THAN *MXLC* LINES ARE IN THE REPLY UNIT
  2806. * BUFFER, ALL DATA WILL BE WRITTEN. OTHERWISE
  2807. * THE FIRST ((B7) .NE. 0) OR LAST ((B7) .EQ. 0) *MXLC*
  2808. * LINES WILL BE WRITTEN. LINES ARE TRUNCATED TO *MXLL*
  2809. * CHARACTERS.
  2810.  
  2811.  
  2812. WCL SUBR ENTRY/EXIT
  2813. ZR X5,WCLX IF NO DATA
  2814. SB5 MXLC SET MAXIMUM NUMBER OF LINES TO WRITE
  2815. MX7 -12
  2816. SB2 B6+X5 (B2) = LWA+1 OF DATA
  2817. NZ B7,WCL5 IF SEARCH FROM FWA TO LWA
  2818. SB4 B0 INITIALIZE LINE COUNT
  2819. WCL1 EQ B2,B6,WCL2 IF BEGINNING OF BUFFER
  2820. SB2 B2-B1 GET PREVIOUS WORD
  2821. SA1 B2
  2822. BX1 -X7*X1
  2823. NZ X1,WCL1 IF NO ZERO BYTE TERMINATOR
  2824. SB4 B4+B1 INCREMENT LINE COUNT
  2825. LE B4,B5,WCL1 IF LINE LIMIT NOT REACHED
  2826. SB2 B2+B1 SET FWA OF PREVIOUS LINE
  2827. SB4 B4-B1
  2828. WCL2 SX6 B4+ SAVE LINE COUNT
  2829. SA6 WCLA
  2830. WCL3 SB6 USBBL
  2831. RJ USB
  2832. SB7 B7-WBUF2+1
  2833. SB6 MXLL
  2834. SX5 A1+B1 SAVE POSITION IN PACKED BUFFER
  2835. LE B7,B6,WCL4 IF LINE NOT TOO LONG
  2836. SB7 B6
  2837. WCL4 WRITES OUTPUT,WBUF2,B7
  2838. SA1 WCLA DECREMENT LINE COUNT
  2839. SX6 X1-1
  2840. SA6 A1
  2841. SB2 X5 ADDRESS OF NEXT LINE
  2842. NZ X6,WCL3 IF MAXIMUM LINES NOT WRITTEN
  2843. EQ WCLX RETURN
  2844.  
  2845. WCL5 SB3 B6+
  2846. SB4 1 INITIALIZE LINE COUNT
  2847. WCL6 SA1 B3
  2848. SB3 B3+1
  2849. BX1 -X7*X1
  2850. EQ B2,B3,WCL7 IF END OF BUFFER
  2851. NZ X1,WCL6 IF NO ZERO BYTE TERMINATOR
  2852. SB4 B4+1
  2853. LT B4,B5,WCL6 IF LINE LIMIT NOT REACHED
  2854. WCL7 SB2 B6 SET FWA OF FIRST LINE
  2855. EQ WCL2 WRITE LINES TO OUTPUT
  2856.  
  2857.  
  2858. WCLA CON 0 LINE COUNT
  2859. WML SPACE 4,10
  2860. ** WML - WRITE MESSAGE LINE.
  2861. *
  2862. * ENTRY (A2) = FWA OF *QAC* REPLY UNIT CONTAINING MESSAGE.
  2863. * (X2) = FIRST WORD OF *QAC* REPLY UNIT.
  2864. *
  2865. * USES X - 0, 1, 2, 3.
  2866. * A - 3.
  2867. * B - 2, 6, 7.
  2868. *
  2869. * CALLS USB.
  2870. *
  2871. * MACROS WRITES.
  2872.  
  2873.  
  2874. WML SUBR ENTRY/EXIT
  2875. SA3 A2+1
  2876. ZR X3,WMLX IF NO MESSAGE PRESENT
  2877. LX2 -12 GET MESSAGE LENGTH
  2878. MX0 -12
  2879. BX2 -X0*X2
  2880. SB2 A3
  2881. SX1 10
  2882. IX2 X1*X2 MESSAGE LENGTH (CHARACTERS)
  2883. SB6 X2
  2884. RJ USB
  2885. SB7 B7-WBUF2
  2886. WRITES OUTPUT,WBUF2+1,B7
  2887. EQ WMLX RETURN
  2888. SPACE 4,10
  2889. ** COMMON DECK CONTROL.
  2890.  
  2891.  
  2892. * CONTROL FOR COMCUSB.
  2893.  
  2894. WBUF2 DATA 1R
  2895. DATA 1R
  2896. USBB BSS USBBL STRING BUFFER
  2897.  
  2898. SPACE 4,10
  2899. ** COMMON DECKS.
  2900.  
  2901.  
  2902. *CALL COMCCDD
  2903. *CALL COMCCFD
  2904. *CALL COMCCIO
  2905. *CALL COMCCOD
  2906. *CALL COMCCPM
  2907. GMS$ EQU 1 FORCE USE OF MASK DURING SORT
  2908. *CALL COMCGMS
  2909. *CALL COMCLFM
  2910. *CALL COMCMVE
  2911. *CALL COMCPFM
  2912. *CALL COMCRDC
  2913. *CALL COMCRDW
  2914. *CALL COMCSFN
  2915. *CALL COMCSYS
  2916. *CALL COMCUSB
  2917. *CALL COMCVLC
  2918. *CALL COMCWTC
  2919. *CALL COMCWTH
  2920. *CALL COMCWTS
  2921. *CALL COMCWTW
  2922. TITLE BUFFER.
  2923. * BUFFERS.
  2924. *
  2925. * NOTE *LBUF*, *RBUF*, AND *WBUF* ARE OVERLAPPING BUFFERS.
  2926.  
  2927. USE BUFFERS
  2928.  
  2929. FBUF BSS 0 GETFNT BUFFER
  2930. OBUF EQU FBUF+FBUFL OUTPUT BUFFER
  2931. BUFF EQU OBUF+OBUFL CONTROL POINT AREA / FNT BUFFER
  2932. LBUF EQU BUFF+200B LIBRARY LIST BUFFER
  2933. RBUF EQU LBUF REPLY BUFFER
  2934. WBUF EQU LBUF WORKING BUFFER
  2935. RFL= EQU LBUF+TBUFL+5 FIELD LENGTH REQUIRED
  2936. SSM= EQU 0 DECLARE *SSM=* ENTRY POINT
  2937. TITLE PRESET.
  2938. PRS SPACE 4,10
  2939. ** ENTRY POINTS.
  2940. ENQUIRE SPACE 4,10
  2941. ** ENQUIRE.
  2942.  
  2943.  
  2944. ENQUIRE BSS 0 ENTRY
  2945. EQ STATUS
  2946. LENGTH SPACE 4,10
  2947. ** LENGTH.
  2948.  
  2949.  
  2950. LENGTH BSS 0 ENTRY
  2951. SA1 ACTR ARGUMENT COUNT
  2952. SX1 X1-1
  2953. NZ X1,PRS2 IF NOT 1 ARGUMENT
  2954. SA1 ARGR CONSTRUCT *FN* KEYWORD FOR ARGUMENT
  2955. SA2 DOFN
  2956. BX6 X1
  2957. SA6 A1+1
  2958. BX7 X2
  2959. SA7 A1
  2960. SB4 2 SET ARGUMENT COUNT
  2961. EQ PRS1
  2962. STATUS SPACE 4,10
  2963. ** STATUS.
  2964.  
  2965.  
  2966. STATUS BSS 0 ENTRY
  2967. SA2 =0LA DEFAULT OPTION
  2968. * EQ PRS
  2969. PRS SPACE 4,25
  2970. ** PRS - PRESET SUBROUTINE.
  2971. *
  2972. * EXIT (OPAL) = .LT. 0, IF ALL OPTIONS TO BE EXECUTED.
  2973. * (BUFF) = CONTROL POINT ADDRESS TO BE READ
  2974. * FOR FIRST *RSB* READ (FIRST 100B OF CPA).
  2975. * (BUFF+100B) = CONTROL POINT ADDRESS TO BE READ
  2976. * FOR SECOND *RSB* READ (SECOND 100B OF CPA).
  2977. * (FT) = FILE TYPE.
  2978. * = 0, IF TERMINAL FILE.
  2979. * (SSFL) .NE. 0, IF SECURE SYSTEM.
  2980. * =0, IF NON-SECURE SYSTEM.
  2981. * (ACAT) = JOB ACCESS CATEGORIES IF SECURE SYSTEM.
  2982. * (ALVL) = JOB ACCESS LEVELS IF SECURE SYSTEM.
  2983. * (UESC) = USER EM SHIFT COUNT FROM CMR.
  2984. *
  2985. * USES X - 0, 1, 2, 3, 4, 5, 6.
  2986. * A - 1, 2, 3, 4, 6.
  2987. * B - 1, 4, 5.
  2988. *
  2989. * CALLS ARG, SAL, STF.
  2990. *
  2991. * MACROS ABORT, MESSAGE, SYSTEM.
  2992.  
  2993.  
  2994. PRS SA1 ACTR ARGUMENT COUNT
  2995. BX6 X2
  2996. SB4 X1
  2997. SA6 DFOP
  2998.  
  2999. * PROCESS ARGUMENTS.
  3000.  
  3001. PRS1 SB1 1
  3002. ZR B4,PRS3 IF NO ARGUMENTS
  3003. SB5 ARGT PROCESS ARGUMENTS
  3004. SA4 ARGR
  3005. RJ ARG
  3006. SA2 TAGS CHECK FOR ARGUMENTS NOT EQUIVALENCED
  3007. LX2 6
  3008. SB4 X2-1R9
  3009. GT B4,PRS2 IF *OP* USED BUT NOT EQUIVALENCED
  3010. SA2 A2+B1
  3011. LX2 6
  3012. SB4 X2-1R9
  3013. GT B4,PRS2 IF *O* USED BUT NOT EQUIVALENCED
  3014. SA2 A2+B1
  3015. LX2 6
  3016. SB4 X2-1R9
  3017. GT B4,PRS2 IF *FN* USED BUT NOT EQUIVALENCED
  3018. ZR X1,PRS3 IF NO ARGUMENT ERRORS
  3019. SA1 ACTR
  3020. SB4 X1-1
  3021. NZ B4,PRS2 IF MORE THAN ONE ARGUMENT
  3022. SA4 ARGR
  3023. MX0 -6
  3024. BX6 -X0*X4
  3025. SX6 X6-1R=
  3026. ZR X6,PRS2 IF SEPARATOR IS *=*
  3027. BX6 X0*X4
  3028. SA6 TAGS
  3029. EQ PRS3 NO ARGUMENT ERRORS
  3030.  
  3031. PRS2 MESSAGE MSGB * ARGUMENT ERRORS.*
  3032. ABORT
  3033.  
  3034. PRS3 SA2 TAGS+3
  3035. ZR X2,PRS3.0 IF NO JSN
  3036. SA1 ACTR
  3037. MX0 54 ELIMINATE OPTION SELECTION CHARACTER
  3038. BX2 X0*X2
  3039. ZR X2,PRS3.1 IF JSN SPECIFIED BUT NOT EQUIVALENCED
  3040. SX1 X1-1
  3041. LX2 -18
  3042. MX0 -18
  3043. BX6 -X0*X2
  3044. NZ X6,PRS2 IF JSN .GT. 4 CHARACTERS LONG
  3045. EQ PRS3.1 CHECK ARGUMENT COUNT
  3046.  
  3047. PRS3.0 SA2 A2+1
  3048. ZR X2,PRS3.2 IF NO UJN
  3049. SA1 ACTR
  3050. MX0 54 ELIMINATE OPTION SELECTION CHARACTER
  3051. BX2 X0*X2
  3052. ZR X2,PRS3.1 IF UJN SPECIFIED BUT NOT EQUIVALENCED
  3053. SX1 X1-1
  3054. PRS3.1 SB4 X1-1
  3055.  
  3056. * CHECK FOR *O* SPECIFIED WITH UJN OR JSN. ANY OTHER PARAMETER
  3057. * IS INCORRECT.
  3058.  
  3059. ZR B4,PRS3.3 IF NO MORE PARAMETERS
  3060. SB4 B4-2
  3061. NZ B4,PRS2 IF TOO MANY PARAMETERS
  3062. SA1 TAGS+B1
  3063. ZR X1,PRS2 IF *O* NOT SPECIFIED
  3064. EQ PRS3.3 CLEAR DEFAULT OPTION
  3065.  
  3066. PRS3.2 SA1 TAGS+2
  3067. ZR X1,PRS3.4 IF FILENAME NOT SPECIFIED
  3068. PRS3.3 BX6 X6-X6 CLEAR DEFAULT OPTION
  3069. SA6 DFOP
  3070. PRS3.4 SA1 TAGS+B1 CHANGE OUTPUT FILE NAME
  3071. ZR X1,PRS3.5 IF *O* NOT SPECIFIED
  3072. SA2 OUTPUT
  3073. MX0 -18
  3074. BX6 -X0*X2
  3075. BX6 X6+X1
  3076. SA6 A2
  3077. PRS3.5 GETPP JPPW,LLM,PRSA
  3078. SX2 OUTPUT
  3079. RJ STF
  3080. SA6 FT
  3081. NZ X6,PRS3.6 IF NOT TERMINAL
  3082. SA2 =1L CLEAR PAGE EJECT
  3083. BX6 X2
  3084. SA6 PAGE
  3085. MESSAGE ZERO,1 CLEAR LINE 1 OF CPA
  3086. PRS3.6 SA1 FT
  3087. WRITEW O,PRSA,X1 CONDITIONALLY WRITE FORMAT EFFECTOR
  3088.  
  3089. * PRESET OPTIONS TO BE EXECUTED.
  3090.  
  3091. PRS4 SA1 TAGS CHECK OPTIONS
  3092. NZ X1,PRS5 IF NOT DEFAULT OPTION
  3093. SA2 DFOP
  3094. BX6 X2
  3095. SA6 A1
  3096. BX1 X2
  3097. PRS5 MX0 6
  3098. BX2 X0*X1
  3099. ZR X2,PRS10 IF THRU ALL SPECIFIED OPTIONS
  3100. LX1 6 SHIFT OPTION TO BOTTON OF WORD
  3101. BX6 X1 RESET OPTION WORD
  3102. SA6 A1+
  3103.  
  3104. * CHECK FOR LEGAL OPTION.
  3105.  
  3106. SA4 OPNS
  3107. PRS6 BX3 X0*X4 CHECK OPTION
  3108. IX3 X3-X2
  3109. ZR X3,PRS8 IF LEGAL OPTION
  3110. SA4 A4+B1
  3111. NZ X4,PRS6 IF MORE OPTIONS TO CHECK
  3112.  
  3113. * SEND ERROR MESSAGE AND ABORT JOB.
  3114.  
  3115. SA1 MSGA+1 PLACE OPTION IN MESSAGE
  3116. LX0 12
  3117. LX2 12
  3118. BX1 -X0*X1
  3119. BX6 X1+X2
  3120. SA6 A1
  3121. MESSAGE MSGA * INCORRECT OPTION X.*
  3122. ABORT
  3123.  
  3124. * SET EXECUTION BITS IN OPTION TABLE.
  3125.  
  3126. PRS8 SX6 B1
  3127. LX6 18
  3128. BX6 X6+X4
  3129. SA6 A4
  3130. LX2 6 RIGHT JUSTIFY OPTION
  3131. SX6 X2-1RA
  3132. NZ X6,PRS4 IF NOT *A* OPTION
  3133. SX6 B1+ SET EXECUTION FLAG WORD FOR ALL OPTIONS
  3134. SA6 OPAL
  3135. EQ PRS4 CHECK REMAINING OPTIONS
  3136.  
  3137. * SET RSB BUFFER WORDS TO READ CONTROL POINT AREA.
  3138.  
  3139. PRS10 SA2 STAT1+1
  3140. BX6 X2
  3141. SA6 BUFF
  3142. SA2 STAT2+1
  3143. BX6 X2
  3144. SA6 BUFF+100B
  3145. SA1 OPAL
  3146. ZR X1,PRS11 IF NOT ALL OPTIONS TO BE EXECUTED
  3147. RJ SAL ASSURE ALL OPTIONS ARE SET
  3148.  
  3149. * CHECK IF SECURE SYSTEM.
  3150.  
  3151. PRS11 GETSSL SSFL GET SYSTEM SECURITY MODE
  3152. SA1 SSFL
  3153. LX1 12
  3154. MX0 -3
  3155. BX6 -X0*X1
  3156. SA6 SSFL SET SECURE SYSTEM FLAG
  3157.  
  3158. * GET USER EXTENDED MEMORY SHIFT COUNT FROM CMR.
  3159.  
  3160. SYSTEM RSB,R,PRSB
  3161. SA1 UESC
  3162. LX1 0-33
  3163. MX0 -3
  3164. BX6 -X0*X1
  3165. SA6 A1
  3166. EQ MAIN
  3167.  
  3168.  
  3169. PRSA BSS 1 PRINT DENSITY
  3170. PRSB VFD 24/1,18/MEFL,18/UESC
  3171. SAL SPACE 4,10
  3172. ** SAL - SET ALL OPTIONS.
  3173. *
  3174. * EXIT ALL OPTION BITS SET FOR EXECUTION.
  3175. *
  3176. * USES X - 3, 4, 5, 6.
  3177. * A - 4, 5, 6.
  3178.  
  3179.  
  3180. SAL SUBR ENTRY/EXIT
  3181. SA4 OPNS+1 OPTION TABLE - SKIP *A* OPTION
  3182. SA5 EBIT EXECUTION BIT MASK
  3183. SAL1 ZR X4,SAL3 IF END OF OPTION TABLE
  3184. BX3 X5*X4 CLEAR OPTION FROM OPTION TABLE
  3185. NZ X3,SAL2 IF EXECUTION BIT SET
  3186. SX6 1 SET EXECUTION BIT
  3187. LX6 18
  3188. BX6 X6+X4
  3189. SA6 A4+
  3190. SAL2 SA4 A4+1 CHECK NEXT OPTION
  3191. EQ SAL1
  3192.  
  3193. SAL3 BX6 X6-X6 RESET END OF OPTION TABLE - SINCE *S*
  3194. SA6 A4-2 AND *T* OPTIONS ARE REDUNDANT
  3195. EQ SALX
  3196. SPACE 4,10
  3197. ** PRESET COMMON DECKS.
  3198.  
  3199.  
  3200. *CALL COMCARG
  3201. *CALL COMCSTF
  3202. SPACE 4,10
  3203. ** PRESET CONSTANTS.
  3204.  
  3205.  
  3206. * ARGUMENT TABLE.
  3207.  
  3208. ARGT BSS 0
  3209. OP ARG NASV,TAGS+0 OPTIONS
  3210. O ARG NASV,TAGS+1 OUTPUT FILE
  3211. FN ARG NASV,TAGS+2 FILE NAME
  3212. JSN ARG =1,TAGS+3 JSN
  3213. UJN ARG =1,TAGS+4 UJN
  3214. ARG
  3215.  
  3216. ZERO CON 0
  3217.  
  3218. * MESSAGES.
  3219.  
  3220. MSGA DATA C* INCORRECT OPTION X.*
  3221. MSGB DATA L* ARGUMENT ERRORS.*
  3222.  
  3223. * DEFAULT OPTIONS.
  3224.  
  3225. DOFN VFD 42/0LFN,18/1R=
  3226. DFOP CON 0
  3227. SPACE 4,10
  3228. END
cdc/nos2.source/opl871/enquire.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator