User Tools

Site Tools


cdc:nos2.source:opl871:dayfile

DAYFILE

Table Of Contents

  • [00018] DAYFILE - DUMP DAYFILES.
  • [00020] DUMP DAYFILES.
  • [00369] MACRO DEFINITIONS.
  • [00371] INPUTC - READ CODED MESSAGE FROM CONTROL WORD BLOCKS.
  • [00394] INPUTW - READ BINARY MESSAGE FROM CONTROL WORD BLOCKS.
  • [00427] SYMBOL DEFINITIONS.
  • [00472] FETS AND GLOBAL STORAGE.
  • [00560] ENTRIES.
  • [00563] AFD - DUMP ACCOUNT DAYFILE.
  • [00581] DUMP USER DAYFILE.
  • [00599] DFD - DUMP SYSTEM DAYFILE.
  • [00616] ELD - DUMP ERROR LOG.
  • [00632] GETLOG - DUMP ERROR LOG AND BML FOR *HPA*.
  • [00700] MAINLOG - DUMP BINARY MAINTENANCE LOG.
  • [00719] TRM - COMMON TERMINATION ROUTINE.
  • [00743] DAF - PROCESS DAYFILE DUMP.
  • [00821] SUBROUTINES.
  • [00823] ERR - PROCESS ERROR.
  • [00867] GEM - GENERATE ERROR MESSAGE.
  • [00991] ICP - INITIALIZE CM BUFFER PROCESSING.
  • [01046] OPN - OPEN RESPECTIVE DAYFILE.
  • [01206] RDC - READ CODED LINE.
  • [01341] RDW - READ DATA.
  • [01509] RIF - READ INPUT FILE FOR NEXT MESSAGE.
  • [01537] SRM - SEARCH FOR MESSAGE.
  • [01587] TSF - TERMINATE SEARCH FILE.
  • [01631] UOP - UPDATE OUT POINTER.
  • [01657] WBF - WRITE BINARY FILE.
  • [01697] WCF - WRITE CODED FILE.
  • [01781] WOF - WRITE MESSAGE TO OUTPUT FILE.
  • [01844] WUP - WRAP UP PROCESSING.
  • [01894] SPECIAL ENTRIES AND BUFFERS.
  • [01934] PRS - PRESET.
  • [02228] TGTL - *GETLOG* PARAMETERS.
  • [02240] TMLG - *MAINLOG* PARAMETERS.
  • [02254] TCOD - CODED PARAMETERS.
  • [02272] TPAS - TABLE OF PAGE SIZE PARAMETERS.
  • [02299] CDP - CONVERT DISPLAY TIME TO PACKED TIME.
  • [02345] CRN - CHECK RESERVED NAME.
  • [02374] FNB - FIND NON-BLANK CHARACTER.
  • [02400] IPP - INITIALIZE PAGE PARAMETERS.
  • [02445] PDR - PROCESS DEFERRED ROUTE OF FILE.
  • [02507] SDO - SET DUMP OPTIONS.
  • [02629] SSM - SET SEARCH MASK.
  • [02683] WEF - WRITE EST TO FILE.
  • [02740] PRESET COMMON DECKS.

Source Code

DAYFILE.txt
  1. IDENT DAYFILE,FETS
  2. ABS
  3. SST
  4. SYSCOM B1
  5. ENTRY AFD
  6. ENTRY DAYFILE
  7. ENTRY DFD
  8. ENTRY ELD
  9. ENTRY GETLOG
  10. ENTRY MAINLOG
  11. ENTRY ARG=
  12. ENTRY RFL=
  13. ENTRY SSJ=
  14. ENTRY UTL=
  15.  
  16. *COMMENT DAYFILE - DUMP DAYFILES.
  17. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  18. TITLE DAYFILE - DUMP DAYFILES.
  19. SPACE 4
  20. *** DAYFILE - DUMP DAYFILES.
  21. * J. C. BOHNHOFF. 75/02/15.
  22. * S. L. KSANDER. 75/08/16.
  23. * P. L. VERELL. 79/11/07.
  24. SPACE 4
  25. *** *DAYFILE* ACCESSES THE INDICATED DAYFILE AND COPIES
  26. * IT TO THE REQUESTED FILE. CERTAIN PORTIONS OF DAYFILES MAY
  27. * BE SELECTIVELY COPIED.
  28. SPACE 4
  29. *** THE COMMAND -
  30. *
  31. * AFD(OPT) DUMP ACCOUNT DAYFILE. **
  32. * DAYFILE(OPT) DUMP USER JOB DAYFILE.
  33. * DFD(OPT) DUMP SYSTEM DAYFILE. **
  34. * ELD(OPT) DUMP ERROR LOG DAYFILE. **
  35. * GETLOG(OPT) DUMP ERROR LOG AND BML FOR *HPA*. **
  36. * MAINLOG(OPT) DUMP MAINTENANCE LOG. **
  37. *
  38. * ** THESE CALLS ARE ALLOWED ONLY IF -
  39. * CALLER HAS SYSTEM ORIGIN, OR CALLER HAS SYSTEM
  40. * ORIGIN PRIVILEGES AND SYSTEM IS IN DEBUG MODE.
  41. *
  42. * WHERE OPT = OPTIONS. ANY OF THE FOLLOWING -
  43. *
  44. * L FILE TO WHICH DAYFILE IS DUMPED. FOR
  45. * *GETLOG*, THIS IS THE *ERRLOG* FILE. THE
  46. * DEFAULT IS *ERR* FOR *GETLOG* AND IS
  47. * *OUTPUT* FOR ALL OTHER ENTRY POINTS. IF
  48. * EQUATED THEN THE FILE NAME MAY BE ANY
  49. * VALID FILE NAME. IF, BY ONE OF THE ABOVE
  50. * MEANS, THE FILE NAME IS SET TO *OUTPUT*,
  51. * PAGINATION OCCURS. THE TITLE LINE OF
  52. * EACH PAGE CONTAINS THE TIME AND DATE OF
  53. * THE DUMP, THE TIME FIELD OF THE FIRST
  54. * DAYFILE ENTRY ON THE PAGE, AND THE PAGE
  55. * NUMBER. IF EITHER OR BOTH OF THE PD OR
  56. * PL ARGUMENTS ARE SPECIFIED, PAGINATION
  57. * ALWAY OCCURS, REGARDLESS OF THE OUTPUT
  58. * FILE NAME. PAGES ARE NEVER GIVEN IF THE
  59. * OUTPUT FILE IS ASSIGNED TO AN INTERACTIVE
  60. * TERMINAL.
  61. *
  62. * FR SELECT PARTIAL DUMP FROM SPECIFIED LINE.
  63. * IF FR IS EQUATED TO A LITERAL VALUE, THE
  64. * DUMP WILL BEGIN AT THE LINE CONTAINING
  65. * THE LAST OCCURRENCE OF THE LITERAL.
  66. * DAYFILE LINES ARE EXAMINED BY COMPARING
  67. * THE FIRST CHARACTERS OF THE FIELD
  68. * SPECIFIED BY OP WITH THE LITERAL. THE
  69. * LITERAL MAY BE UP TO 30 CHARACTERS. THE
  70. * LITERAL IS DELIMITED BY DOLLAR SIGNS. A
  71. * LITERAL DOLLAR SIGN IS REPRESENTED BY TWO
  72. * CONSECUTIVE DOLLAR SIGNS. FR NEED NOT BE
  73. * A LITERAL IF THE STRING BEING SEARCHED
  74. * FOR IS ALSO A LEGITIMATE FILE NAME.
  75. *
  76. * OP SELECT DAYFILE FIELD FOR SEARCH.
  77. * THE DEFAULT IS *OP = I* FOR TERMINAL
  78. * OUTPUT FILES, *OP = F* FOR OTHER FILES.
  79. * IF *FR* IS SPECIFIED, THE DEFAULT IS
  80. * *OP = M*.
  81. * OP MAY BE EQUATED TO ANY OF THE FOLLOWING
  82. * SINGLE CHARACTERS -
  83. * T FOR TIME FIELD
  84. * J FOR JOB NAME FIELD
  85. * (INCORRECT FOR USER DAYFILE)
  86. * M FOR MESSAGE FIELD
  87. * (INCORRECT FOR MAINTENANCE
  88. * LOG)
  89. * I FROM LAST DUMP
  90. * P FROM LAST DUMP BY THIS JOB
  91. * (INCORRECT FOR USER DAYFILE)
  92. * F FULL DUMP
  93. * OP SELECTS ONLY THE STARTING POSITION OF
  94. * THE SEARCH IN EACH LINE. THEREFORE, THE
  95. * FIELD TO BE SEARCHED FOR MAY CROSS T,J,M
  96. * BOUNDARIES. FOR EXAMPLE -
  97. * DAYFILE(FR=$ 11.03.21.COMPASS$,OP=T)
  98. * IS PROPER.
  99. *
  100. * PD SELECT PRINT DENSITY. IF PD IS ABSENT,
  101. * SET PRINT DENSITY TO A VALUE DETERMINED
  102. * BY THE JOB DEFAULT PRINT DENSITY (PD).
  103. * PD MAY BE EQUATED TO 3, 4, 6 OR 8. VALUES
  104. * OF 4 AND 8 ARE NOT INTENDED FOR USE WITH
  105. * DEVICES NOT SUPPORTING 8 LPI. THIS
  106. * PARAMETER HAS NO MEANING, AND IS NOT
  107. * CHECKED, IF THE OUTPUT IS TO A TIME-
  108. * SHARING TERMINAL. THIS OPTION IS NOT
  109. * VALID FOR *GETLOG* OR *MAINLOG* CALLS.
  110. *
  111. * PL SELECT PAGE SIZE. IF PL IS ABSENT, SIZE
  112. * IS DETERMINED FROM THE JOB DEFAULT PAGE
  113. * SIZE (PS) AS FOLLOWS -
  114. * PD PL (IN LINES)
  115. * -- --
  116. * 3 PS/2
  117. * 4 PS/2
  118. * 6 PS
  119. * 8 PS
  120. * IF PL IS EQUATED TO A NUMERIC VALUE, THE
  121. * PAGE SIZE IS SET ACCORDINGLY. IF THE
  122. * VALUE IS ZERO, THE PAGE SIZE IS SELECTED
  123. * ACCORDING TO THE ABOVE TABLE. PL
  124. * SPECIFIES THE NUMBER OF DAYFILE LINES TO
  125. * BE PRINTED PER PAGE, NOT NUMBER OF TOTAL
  126. * LINES. THE PAGE TITLE IS TWO LINES.
  127. * THIS PARAMETER HAS NO MEANING, AND IS
  128. * NOT CHECKED, IF THE OUTPUT IS TO A TIME-
  129. * SHARING TERMINAL. THIS OPTION IS NOT
  130. * VALID FOR *GETLOG* OR *MAINLOG* CALLS.
  131. *
  132. * I FILE FROM WHICH DAYFILE IS READ. IF
  133. * ABSENT, THE FILE IS THE RESPECTIVE
  134. * DAYFILE CURRENTLY MANAGED BY THE SYSTEM.
  135. * FOR *GETLOG*, THIS APPLIES ONLY TO THE
  136. * *BML* FILE.
  137. *
  138. * B BINARY FILE RECEIVING THE REFORMATTED
  139. * MAINTENANCE LOG. IF ABSENT, THE FILE
  140. * IS *BML*. THIS OPTION IS APPLICABLE
  141. * ONLY TO *MAINLOG* AND *GETLOG* CALLS.
  142. *
  143. * JT JOB TERMINATION OPTION.
  144. * D IF SPECIFIED, A DEFFERRED ROUTE
  145. * WILL BE PERFORMED ON THE FILE
  146. * TO WHICH THE DAYFILE IS TO BE
  147. * COPIED, AND PAGINATION WILL BE
  148. * PERFORMED.
  149. * THIS OPTION IS VALID ONLY FOR
  150. * THE *DAYFILE* COMMAND.
  151. *
  152. * E FILE TO WHICH THE EST IS WRITTEN, FOR
  153. * *GETLOG* ONLY.
  154. *
  155. *
  156. * OP=I, OP=P PROCESSING.
  157. * TO LOCATE THE LAST DUMP ENTRY, THE DAYFILE IS SEARCHED FOR
  158. * ONE OF THE NORMAL COMPLETION MESSAGES LISTED BELOW DEPENDING
  159. * UPON WHICH DAYFILE IS TO BE ACCESSED.
  160. *
  161. * INTERACTIVE TERMINATION OF *DAYFILE,FR[=XXXX].*
  162. * WHENEVER AN INTERRUPT IS RECEIVED FROM AN INTERACTIVE TERMINAL
  163. * OUTPUT IS STOPPED AND A COMPLETION MESSAGE IS ISSUED TO THE
  164. * APPROPRIATE DAYFILES. THIS ALLOWS THE USER TO SUPPRESS THE
  165. * LISTING OF A LONG DUMP WHILE RETAINING THE CAPABILITY TO DUMP
  166. * FROM THE LAST PREVIOUS DUMP (THE ONE THAT WAS INTERRUPTED).
  167. *
  168. * POSITIONAL ARGUMENT PROCESSING.
  169. * IT IS NOT NECESSARY TO SPECIFY THE ABOVE KEYWORDS (L,FR,OP,..)
  170. * ARGUMENT VALUES MAY ASSUME THEIR ASSOCIATION WITH THESE KEY-
  171. * WORDS BY THEIR POSITION ON THE COMMAND.
  172. * FOR EXAMPLE -
  173. * DAYFILE(SAM,ERROR,M)
  174. * IS EQUIVALENT TO -
  175. * DAYFILE(L=SAM,FR=ERROR,OP=M)
  176. * THE ORDER OF THE ARGUMENTS MUST BE -
  177. * 1) L VALUE
  178. * 2) FR VALUE (MAY BE A LITERAL)
  179. * 3) OP VALUE
  180. * 4) PD VALUE
  181. * 5) PL VALUE
  182. * 6) I VALUE
  183. * 7) B VALUE
  184. * 8) D OPTION
  185. * VALUES MAY BE LEFT UNSPECIFIED AS -
  186. * DAYFILE(,,,8)
  187. * ( SAME AS DAYFILE(PD=8) )
  188. * KEYWORD TYPE ARGUMENTS MAY BE INTERMIXED WITH POSITIONAL
  189. * ARGUMENTS. FOR EXAMPLE -
  190. * DAYFILE(SAM,PD=8,10)
  191. * IS EQUIVALENT TO -
  192. * DAYFILE(L=SAM,PD=8,PL=10)
  193. *
  194. * NUMERIC ARGUMENT VALUES.
  195. * NUMERIC ARGUMENTS MAY BE SPECIFIED IN EITHER OCTAL OR DECIMAL
  196. * BASE. A RADIX SYMBOL *B* OR *D* MAY IMMEDIATELY FOLLOW THE
  197. * NUMBER TO SPECIFY OCTAL OR DECIMAL BASE RESPECTIVELY. IF
  198. * THE RADIX SYMBOL IS ABSENT, DECIMAL IS ASSUMED. THE SINGLE
  199. * CHARACTER *B* OR *D* IS TAKEN TO MEAN ZERO, SO -
  200. * DFD(PL=B)
  201. * IS EQUIVALENT TO -
  202. * DFD(PL=0B) OR DFD(PL=D) OR DFD(PL=0D) OR DFD(PL=0)
  203. *
  204. * FILES *SCR* AND *SCR1* ARE USED INTERNALLY.
  205. SPACE 4
  206. *** DAYFILE MESSAGES ISSUED.
  207. *
  208. * NORMAL COMPLETION.
  209. *
  210. * *SIAD.* (ACCOUNT DAYFILE ONLY)
  211. *
  212. * * ACCOUNT DAYFILE PROCESSED.*
  213. *
  214. * * USER DAYFILE PROCESSED.*
  215. *
  216. * * SYSTEM DAYFILE PROCESSED.*
  217. *
  218. * * ERROR LOG PROCESSED.*
  219. *
  220. * * GETLOG PROCESSED.* (ALSO WRITTEN TO *ERRLOG*).
  221. *
  222. * * MAINTENANCE LOG PROCESSED.*
  223. *
  224. * * ENTRYPT - LOCAL DAYFILE PROCESSED.*
  225. * *I=LFN* PROCESSING COMPLETED NORMALLY.
  226. *
  227. * THE ABOVE MESSAGE DESCRIPTIONS ARE GIVEN WHEN
  228. * A DAYFILE DUMP HAS BEEN PERFORMED ON THE SPECIFIED
  229. * DAYFILE. IF NO ADDITIONAL DAYFILE MESSAGES WERE ISSUED,
  230. * THE DUMP WAS SUCCESSFUL.
  231. *
  232. *
  233. * IN THE FOLLOWING MESSAGE DESCRIPTIONS, THE GENERIC LABEL
  234. * *ENTRYPT* REFERS TO THE ENTRY POINT NAME (AFD, DAYFILE,
  235. * DFD, ELD, OR MAINLOG) DISPLAYED IN EACH MESSAGE.
  236. *
  237. * INFORMATIVE MESSAGES.
  238. *
  239. * * ENTRYPT - DATA LOST.*
  240. * INDICATES THAT A DAYFILE READ ERROR HAS OCCURRED.
  241. * PROCESSING CONTINUES WITH THE FIRST AVAILABLE GOOD
  242. * DAYFILE MESSAGE.
  243. *
  244. * * ENTRYPT - RECOVERY SECTOR ENCOUNTERED.*
  245. * INDICATES THAT A RECOVERY SECTOR HAS BEEN
  246. * ENCOUNTERED, DENOTING THE BOUNDARY OF A DEADSTART
  247. * RECOVERY. ANY DAYFILE MESSAGE FRAGMENT PRECEEDING
  248. * THIS BOUNDARY IS DISCARDED. PROCESSING CONTINUES
  249. * WITH THE FIRST MESSAGE AFTER THE BOUNDARY.
  250. *
  251. *
  252. * ABNORMAL COMPLETION.
  253. *
  254. * * DAYFILE - INPUT FILE CANNOT BE EXECUTE ONLY.*
  255. * THE FILE SPECIFIED AS CONTAINING THE DAYFILE TO
  256. * PROCESS IS AN EXECUTE ONLY TYPE FILE, AND CANNOT
  257. * BE READ.
  258. *
  259. * * ENTRYPT - INPUT FILE NOT FOUND.*
  260. * THE FILE SPECIFIED BY THE *I=FILENAME* PARAMETER IS NOT
  261. * A LOCAL FILE.
  262. *
  263. * * DAYFILE - JOB FIELD DISALLOWED ON USER DAYFILE.*
  264. * OP=J OR OP=P IS SPECIFIED. JOB NAMES DO NOT APPEAR
  265. * IN THE USER DAYFILE.
  266. *
  267. * * DAYFILE - INTERACTIVE INPUT FILE NOT ALLOWED.*
  268. * *I=* SPECIFIES A TERMINAL INPUT FILE, WHICH IS NOT
  269. * ALLOWED.
  270. *
  271. * * ENTRYPT - ARGUMENT ERROR.*
  272. * AN UNKNOWN KEYWORD WAS ENCOUNTERED OR COMMAND
  273. * WAS ILL-FORMATTED.
  274. *
  275. * * ENTRYPT - BUFFER TOO SMALL.*
  276. * THE AMOUNT OF *CM RESIDENT* DAYFILE RETURNED BY *SFM*
  277. * IS LARGER THAN THE ALLOWED INTERNAL BUFFER.
  278. * RECOMMEND CHANGING VALUE OF *CBUFL*, IF THIS
  279. * MESSAGE OCCURS.
  280. *
  281. * * ENTRYPT - *FR* INCORRECT FOR THIS OPTION.*
  282. * OP=I OR OP=P IS SPECIFIED. INCREMENTAL DAYFILE DUMPS
  283. * HAVE A PREDETERMINED SEARCH VALUE, THUS *FR* IS NOT
  284. * NEEDED.
  285. *
  286. * * ENTRYPT - INCORRECT PAGE SIZE FORMAT.*
  287. * THE VALUE ASSOCIATED WITH THE PL ARGUMENT IS NOT
  288. * NUMERIC.
  289. *
  290. * * ENTRYPT - INCORRECT PRINT DENSITY.*
  291. * PD IS NOT 3, 4, 6 OR 8.
  292. *
  293. * * ENTRYPT - INCORRECT PRINT DENSITY FORMAT.*
  294. * THE VALUE ASSOCIATED WITH THE PD ARGUMENT IS NOT
  295. * NUMERIC.
  296. *
  297. * * DAYFILE - INCORRECT JOB TERMINATION OPTION.*
  298. * THE VALUE OF THE *JT* OPTION SPECIFIED IS
  299. * NOT VALID.
  300. *
  301. * * ENTRYPT - RESERVED FILE NAME.*
  302. * THE FILE NAME SPECIFIED FOR THE B, I OR L PARAMETER
  303. * IS A RESERVED FILE NAME.
  304. *
  305. * * ENTRYPT - UNABLE TO ACCESS DAYFILE.*
  306. * THE SYSTEM DAYFILE THAT IS TO BE PROCESSED COULD NOT
  307. * BE ACCESSED DUE TO AN ERROR ENCOUNTERED BY *SFM*.
  308. *
  309. * * ENTRYPT - UNKNOWN *OP* FIELD.*
  310. * *OP* IS NOT EQUATED TO A VALID OPTION CHARACTER.
  311. *
  312. * * *FR* NOT FOUND.*
  313. * THE *FR* ARGUMENT WAS SELECTED, BUT THE DAYFILE SEARCH
  314. * WAS UNSATISFIED. THIS IS ONLY INFORMATIVE. THE FULL
  315. * DUMP IS GIVEN IN PLACE OF STARTING AT THE *FR*.
  316. * IF THIS CONDITION IS PRESENT, IT IS LISTED AS THE
  317. * FIRST LINE OF OUTPUT TO AN INTERACTIVE TERMINAL.
  318. *
  319. * * ENTRYPT - INTERACTIVE BINARY OUT-FILE NOT ALLOWED.*
  320. * *B=* SPECIFIES A TERMINAL FILE, WHICH IS NOT
  321. * ALLOWED.
  322. *
  323. * * MAINLOG - *FR* TIME VALUE INCORRECT.*
  324. * ERROR OCCURRED WHILE CONVERTING A DATE SUBMITTED IN
  325. * DISPLAY CODE TO A PACKED DATE IN BINARY FOR SEARCHING
  326. * ON A BINARY FILE.
  327. *
  328. * * MAINLOG - *OP* OPTION INCORRECT.*
  329. * THE OPTION SPECIFIED THOUGH VALID FOR CODED DAYFILES
  330. * IS INCORRECT FOR BINARY DAYFILES.
  331. *
  332. * * UNEXPECTED EOF/EOI ENCOUNTERED.
  333. * AN EOF OR EOI WAS ENCOUNTERED BEFORE THE PRU
  334. * COUNT HAD BEEN DEPLETED ON THE INPUT FILE.
  335. *
  336. * * MAINLOG - *BML* FORMAT INCORRECT.
  337. * AN INCORRECT RECOVERY SECTOR WORD WAS DETECTED WHILE
  338. * PROCESSING THE *BML* FILE.
  339. SPACE 4
  340. *** ERROR MESSAGES ISSUED TO OUTPUT.
  341. *
  342. * *NOTICE*** DATA READ ERROR.
  343. * INDICATES MESSAGE(S) LOST DUE TO A DAYFILE
  344. * READ ERROR.
  345. *
  346. * *NOTICE*** RECOVERY BOUNDARY.
  347. * INDICATES MESSAGE(S) LOST DUE TO CROSSING A
  348. * DEADSTART RECOVERY BOUNDARY.
  349. ESTFILE SPACE 4,10
  350. *** EST FILE FORMAT (*GETLOG* ONLY).
  351. *
  352. * THE ENTIRE EST IS WRITTEN TO THE SPECIFIED FILE, TOGETHER
  353. * WITH THE FOLLOWING HEADER INFORMATION.
  354. *
  355. *T WD00 36/,12/ ESTSIZE,12/ ENTRYSIZE
  356. *T,WD01 60/ UNUSED
  357. *T,WD02 24/,36/ PACKED DATE AND TIME
  358. *T,WD03 60/ SYSTEM TITLE LINE
  359. *T,WD04 60/
  360. *T,WD05 60/
  361. *T,WD06 60/
  362. *T,WD07 60/ SYSTEM VERSION
  363. *T,WD10 60/
  364. *T,WD11-N 60/ (EST ENTRIES)
  365. *
  366. * ESTSIZE = NUMBER OF ENTRIES (LAST ORDINAL + 1).
  367. * ENTRYSIZE = NUMBER OF CM WORDS PER EST ENTRY.
  368. MACROS SPACE 4,20
  369. TITLE MACRO DEFINITIONS.
  370. INPUTC SPACE 4,20
  371. ** INPUTC - READ CODED MESSAGE FROM CONTROL WORD BLOCKS.
  372. *
  373. * INPUTC FET,FWA,LEN
  374. *
  375. * ENTRY *FET* = FWA OF FET TO READ.
  376. * *FWA* = FWA OF WORKING STORAGE BUFFER.
  377. * *LEN* = LENGTH OF WORKING STORAGE BUFFER.
  378. *
  379. * USES X - 2.
  380. * B - 6, 7.
  381. *
  382. * CALLS RDC.
  383.  
  384.  
  385. PURGMAC INPUTC
  386. INPUTC MACRO F,S,N
  387. MACREF INPUTC
  388. R= B6,S
  389. R= B7,N
  390. R= X2,F
  391. RJ RDC
  392. INPUTC ENDM
  393. INPUTW SPACE 4,20
  394. ** INPUTW - READ BINARY MESSAGE FROM CONTROL WORD BLOCKS.
  395. *
  396. * INPUTW FET,FWA,LEN
  397. *
  398. * ENTRY *FET* = FWA OF FET TO READ.
  399. * *FWA* = FWA OF WORKING STORAGE BUFFER.
  400. * *LEN* = LENGTH OF WORKING STORAGE BUFFER.
  401. *
  402. * USES X - 2.
  403. * B - 6, 7.
  404. *
  405. * CALLS RDW.
  406.  
  407.  
  408. PURGMAC INPUTW
  409. INPUTW MACRO F,S,N
  410. MACREF INPUTW
  411. R= B6,S
  412. R= B7,N
  413. R= X2,F
  414. RJ RDW
  415. INPUTW ENDM
  416. SPACE 4,10
  417. ** COMMON DECKS.
  418.  
  419.  
  420. *CALL COMCMAC
  421. *CALL COMCCMD
  422. *CALL COMSDFS
  423. *CALL COMSMSC
  424. *CALL COMSMSC
  425. *CALL COMSSFM
  426. *CALL COMSSSJ
  427. TITLE SYMBOL DEFINITIONS.
  428. * SSJ CONTROL.
  429.  
  430. SSJ= EQU SSJP SYSTEM PRIVILEGES ONLY
  431. UTL= BSS 0 SYSTEM UTILITY SPECIAL ENTRY POINT
  432.  
  433. * SYMBOL DEFINITIONS.
  434.  
  435.  
  436. MAXZ MAX MXML,MBML,MCML FIND LARGEST MESSAGE SIZE
  437. WBUFL EQU MAXZ+5 WORKING BUFFER LENGTH
  438. CBUFL EQU MXDB+MBML+2 LENGTH OF CM HOLD AREA
  439. EBUFL EQU ESMX*ESTE+11B+1 EST BUFFER (*GETLOG* ONLY)
  440. BUFML MAX 2001B,CBUFL+1
  441. IBUFL EQU BUFML DAYFILE BUFFER LENGTH
  442. OBUFL EQU 20001B OUTPUT BUFFER LENGTH
  443. SBUFL EQU 2001B SCRATCH BUFFER LENGTH
  444. DFDF EQU 1RS DEFAULT DENSITY FORMAT CHARACTER
  445. FETL EQU 10B FET LENGTH
  446. PLEN EQU 1000 START PAGE LINE NUMBER
  447. SPACE 4,10
  448. * DAYFILE TYPE CODES.
  449.  
  450. GLTY EQU 0 *GETLOG* - ERRLOG (CODED), BML (BINARY)
  451. ACTY EQU 1 ACCOUNT (CODED FILE)
  452. UDTY EQU 2 USER DAYFILE (CODED FILE)
  453. SDTY EQU 3 SYSTEM DAYFILE (CODED FILE)
  454. ELTY EQU 4 ERROR LOG (CODED FILE)
  455. MLTY EQU 5 MAINTENANCE LOG (BINARY FILE)
  456. SPACE 4,10
  457. * NOTICE MESSAGE CODES.
  458.  
  459. REMC EQU 1 READ ERROR
  460. RSMC EQU 2 RECOVERY SECTOR
  461. SPACE 4,10
  462. * FET INDEX DEFINITIONS TO CONTROL WORD PROCESSING INFORMATION.
  463.  
  464.  
  465. WRD EQU 1 INDEX OF WORDS BEFORE CONTROL WORD
  466. ERF EQU 2 INDEX TO EOR FLAG
  467. LWP EQU 3 INDEX TO REMAINING MESSAGE
  468. SPACE 4,10
  469. * *SFM* ERROR CODES.
  470.  
  471. DFB EQU 1 DAYFILE BUSY
  472. TITLE FETS AND GLOBAL STORAGE.
  473. * FETS.
  474.  
  475.  
  476. ORG 113B
  477. FETS BSS 0
  478.  
  479. E BSS 0 EST FILE (*GETLOG* ONLY)
  480. EST FILEB EBUF,EBUFL
  481.  
  482. CON 0 WORDS LEFT IN CURRENT MESSAGE
  483. CON -1 EOR FLAG
  484. CON -1 NUMBER OF WORDS BEFORE CONTROL WORD
  485. I BSS 0 DAYFILE
  486. SCR FILEB IBUF,IBUFL,FET=FETL,EPR
  487.  
  488. O BSS 0 OUTPUT
  489. OUTPUT RFILEB OBUF,OBUFL,FET=FETL
  490.  
  491. S BSS 0 SCRATCH
  492. SCR1 FILEB SBUF,SBUFL,FET=FETL
  493.  
  494. B BSS 0 BINARY
  495. BML FILEB OBUF,OBUFL,FET=FETL
  496. SPACE 4,10
  497. * *DSP* PARAMETER BLOCK.
  498.  
  499.  
  500. PDRA VFD 60/0 FILE NAME AND STATUS
  501. VFD 12/5000B,12/0,12/2LLP,6/0,18/121B ROUTING CONTROL
  502. BSSZ 13
  503. SPACE 4,10
  504. * GLOBAL STORAGE.
  505.  
  506.  
  507. BNAM BSSZ 1 BINARY FILE NAME
  508. CMFG BSSZ 1 CM BUFFER PROCESSING FLAG
  509. DFTY BSSZ 1 DAYFILE TYPE
  510. EFFG BSSZ 1 CHECKPOINT EOR/EOF IN-PROCESS FLAG
  511. ENPT CON 0 ENTRY POINT IDENTIFIER
  512. INAM BSSZ 1 IN FILE NAME
  513. OMCA CON WBUF OUTSTANDING MESSAGE CONTINUATION ADDRESS
  514. PRUS CON 377777B NUMBER OF PRU-S TO READ
  515. WCCM CON 0 NUMBER OF WORDS IN CM BUFFER PORTION
  516. * OF DAYFILE
  517. PAGE CON 0 CURRENT PAGE NUMBER
  518. LINE CON PLEN CURRENT LINE NUMBER
  519. LISF CON 0 LIST FILE FLAG - =0 IF FILE IS TO BE
  520. * PAGINATED
  521. LISV CON 0 (LISF) IF *FR* OPTION SELECTED
  522. FROM CON 0 =0 IF FULL DUMP, ELSE PARTIAL DUMP
  523. SEMS CON 0,0,0 SEARCH MESSAGE
  524. CON 0 MESSAGE TERMINATOR
  525. SEMA CON 0,0,0 SEARCH MESSAGE MASK
  526. CON 0 MASK TERMINATOR
  527. SEJN CON 0 SEARCH JOB NAME
  528. SFOP VFD 6/1RF,54/1 SEARCH FIELD OPTION / CHANGE FLAG
  529. FRFO CON 1 =0 IF *FR* MESSAGE NOT FOUND
  530. SEWI CON 2 STARTING MESSAGE SEARCH WORD INDEX
  531. PDEN CON 1 PRINT DENSITY
  532. PLPP CON 0L0+1 LINES PER PAGE DURING PRESET, OTHERWISE -
  533. PLPO CON 0L0+1 ALTERNATE LINES PER PAGE FOR SEARCH FILE
  534. * FORMAT AS DESCRIBED FOR *TPAS*.
  535. RFMT VFD 6/DFDF,6/1R ,48/0 RESET FORMAT LINE
  536. IOUT CON 1 =0 IF TERMINAL OUTPUT
  537. INTR CON 0 NONZERO IF TERMINAL INTERRUPT
  538. JTOP CON 0 JOB TERMINATION OPTION
  539. SPACE 4,10
  540. * PAGE TITLE LINE.
  541.  
  542. HDR2 BSS 0
  543. JSNP BSS 1 JSN FOR END OF JOB HEADER
  544. TITL DATA -0 TITLE AND VERSION FOR END OF JOB HEADER
  545. DENF VFD 6/DFDF,54/0 DENSITY FORMAT CONTROL
  546. DENC CON 1 PRINT DENSITY CONTROL WORD
  547. HEDR BSS 0
  548. MODE DATA 10H1 FULL
  549. TYPE DATA 10HDAYFILE.
  550. DATE DATA 0 DATE
  551. DAT2 BSS 0 DATE FOR END OF JOB HEADER
  552. TIME DATA 0 TIME
  553. TIM2 BSS 0 TIME FOR END OF JOB HEADER
  554. INDX DATA 10H* * TIME OF FIRST ENTRY ON PAGE
  555. PGNO DATA 0 PAGE NUMBER
  556. DATA 0
  557. DATA 2L
  558. HEDRL EQU *-HEDR LENGTH OF TITLE LINE
  559. HDR2L EQU *-HDR2 LENGTH OF END OF JOB HEADER
  560. TITLE ENTRIES.
  561. ** ENTRY PROCESSORS.
  562. AFD SPACE 4,10
  563. ** AFD - DUMP ACCOUNT DAYFILE.
  564.  
  565.  
  566. AFD BSS 0 ENTRY
  567. SX6 ACTY SET DAYFILE TYPE = ACCOUNT
  568. SA6 DFTY
  569. SA6 ENPT SET ENTRY POINT = *AFD*
  570. SX4 AFDA SET SEARCH STRING FOR PARTIAL DUMP
  571. RJ PRS PRESET PROGRAM
  572. SA1 =10H ACCOUNT. SET TITLE
  573. SX4 =C*SIAD. * SET TERMINATION MESSAGE
  574. RJ DAF PROCESS DUMP
  575. SX2 AFDB ISSUE TERMINATION MESSAGE
  576. EQ TRM EXIT
  577.  
  578. AFDA DATA C*SIAD.* ACCOUNT FILE MESSAGE
  579. AFDB DATA C* ACCOUNT DAYFILE PROCESSED.*
  580. DAYFILE SPACE 4,10
  581. ** DAYFILE - DUMP USER DAYFILE.
  582.  
  583.  
  584. DAYFILE BSS 0 ENTRY
  585. SX6 UDTY SET DAYFILE TYPE = USER DAYFILE
  586. SA6 DFTY
  587. SA6 ENPT SET ENTRY POINT = *DAYFILE*
  588. SX7 1 SET SEARCH INDEX
  589. SA7 SEWI
  590. SX4 DAYA SET SEARCH STRING FOR PARTIAL DUMP
  591. RJ PRS PRESET PROGRAM
  592. SA1 =10H DAYFILE. SET TITLE
  593. RJ DAF PROCESS DUMP
  594. SX2 DAYA ISSUE TERMINATION MESSAGE
  595. EQ TRM EXIT
  596.  
  597. DAYA DATA C* USER DAYFILE PROCESSED.*
  598. DFD SPACE 4,10
  599. ** DFD - DUMP SYSTEM DAYFILE.
  600.  
  601.  
  602. DFD BSS 0 ENTRY
  603. SX6 SDTY SET DAYFILE TYPE = SYSTEM DAYFILE
  604. SA6 DFTY
  605. SA6 ENPT SET ENTRY POINT = *DFD*
  606. SX4 DFDA SET SEARCH STRING FOR PARTIAL DUMP
  607. RJ PRS PRESET PROGRAM
  608. SA1 =10H DAYFILE. SET TITLE
  609. RJ DAF PROCESS DUMP
  610. SX2 DFDA ISSUE TERMINATION MESSAGE
  611. SB7 3 SET LOCAL DAYFILE ONLY OPTION
  612. EQ TRM1 EXIT
  613.  
  614. DFDA DATA C* SYSTEM DAYFILE PROCESSED.*
  615. ELD SPACE 4,10
  616. ** ELD - DUMP ERROR LOG.
  617.  
  618.  
  619. ELD BSS 0 ENTRY
  620. SX6 ELTY SET DAYFILE TYPE = ERRLOG
  621. SA6 DFTY
  622. SA6 ENPT SET ENTRY POINT = *ELD*
  623. SX4 ELDA SET SEARCH STRING FOR PARTIAL DUMP
  624. RJ PRS PRESET PROGRAM
  625. SA1 =10H ERRLOG. SET TITLE
  626. RJ DAF PROCESS DUMP
  627. SX2 ELDA ISSUE TERMINATION MESSAGE
  628. EQ TRM EXIT
  629.  
  630. ELDA DATA C* ERROR LOG PROCESSED.*
  631. GETLOG SPACE 4,10
  632. ** GETLOG - DUMP ERROR LOG AND BML FOR *HPA*.
  633.  
  634.  
  635. GETLOG BSS 0 ENTRY
  636. SA1 GTLC CHANGE *L* DEFAULT TO *ERR*
  637. BX6 X1
  638. SA6 O
  639. SX6 GLTY SET ENTRY POINT = *GETLOG*
  640. SA6 ENPT
  641.  
  642. * PROCESS MAINTENANCE LOG.
  643.  
  644. SX6 MLTY SET DAYFILE TYPE = BML
  645. SA6 DFTY
  646. SX4 GTLA SET SEARCH STRING FOR PARTIAL DUMP
  647. RJ PRS PRESET PROGRAM
  648. SA1 =10H GETLOG. SET TITLE
  649. RJ DAF PROCESS DUMP
  650.  
  651. * RESET PARAMETERS.
  652.  
  653. MX7 0 CLEAR LOCAL FILE FLAG
  654. SA7 INAM
  655. SA7 CMFG CLEAR *CM BUFFER* FLAG
  656. SA1 GTLD RESTORE *SCR* FILENAME
  657. BX6 X1
  658. SX7 IBUF RESTORE FIRST/IN/OUT/LIMIT
  659. MX0 42
  660. SA6 I
  661. SA1 A6+B1
  662. MX6 59 INITIALIZE CONTROL WORDS
  663. BX1 X0*X1
  664. BX7 X1+X7
  665. SA7 A6+B1
  666. ERRNZ WRD-1 CANNOT USE *B1*
  667. ERRNZ ERF-WRD-1 CANNOT USE *B1*
  668. SA6 A6-B1
  669. SX7 X7
  670. SA7 A7+B1
  671. SA6 A6-B1
  672. SX6 X7+IBUFL
  673. SA7 A7+B1
  674. SA6 A7+B1
  675.  
  676. * PROCESS ERROR LOG.
  677.  
  678. SX6 ELTY SET DAYFILE TYPE = ERRLOG
  679. SA6 DFTY
  680. MOVE 3,GTLB,IBUF SET SEARCH STRING FOR PARTIAL DUMP
  681. MOVE 3,GTLB,SEMS
  682. MX6 48 SET SEARCH MASK
  683. BX7 X4-X4
  684. SA6 SEMA+1
  685. AX6 12
  686. SA7 A6+B1
  687. SA6 A6-B1
  688. SA1 =10H GETLOG. SET TITLE
  689. RJ DAF PROCESS DUMP
  690. SX2 GTLB ISSUE TERMINATION MESSAGE
  691. EQ TRM EXIT
  692.  
  693. GTLA VFD 12/2,48/0 BML MESSAGE FOR *GETLOG* EXECUTION
  694. VFD 12/DM0406,12/DS0113,36/0
  695. VFD 60/0
  696. GTLB DATA C* GETLOG PROCESSED.*
  697. GTLC VFD 42/0LERR,18/3 *L* DEFAULT FILENAME
  698. GTLD VFD 42/0LSCR,18/3 *I* FILENAME AFTER *BML* DUMPED
  699. MAINLOG SPACE 4,10
  700. ** MAINLOG - DUMP BINARY MAINTENANCE LOG.
  701.  
  702.  
  703. MAINLOG BSS 0 ENTRY
  704. SX6 MLTY SET DAYFILE TYPE = MAINLOG
  705. SA6 DFTY
  706. SA6 ENPT SET ENTRY POINT = *MAINLOG*
  707. SX4 MLDA SET SEARCH STRING FOR PARTIAL DUMP
  708. RJ PRS PRESET PROGRAM
  709. SA1 =10H MAINLOG. SET TITLE
  710. RJ DAF PROCESS DUMP
  711. SX2 MLDB ISSUE TERMINATION MESSAGE
  712. EQ TRM EXIT
  713.  
  714. MLDA VFD 12/2,48/0
  715. VFD 12/DM0406,12/DS0102,36/0
  716. VFD 60/0
  717. MLDB DATA C* MAINTENANCE LOG PROCESSED.*
  718. TRM SPACE 4,10
  719. ** TRM - COMMON TERMINATION ROUTINE.
  720. *
  721. * ENTRY (X2) = ADDRESS OF TERMINATION MESSAGE.
  722. * (B7) = DAYFILE OPTION, IF ENTERED AT *TRM1*.
  723. *
  724. * MACROS MESSAGE.
  725.  
  726.  
  727. TRM SB7 0 ISSUE MESSAGE TO USER/SYSTEM DAYFILES
  728.  
  729. * ENTER WITH (B7) = DAYFILE OPTION.
  730.  
  731. TRM1 SA1 INAM CHECK DAYFILE TYPE
  732. ZR X1,TRM2 IF ACTIVE DAYFILE PROCESSED
  733. SA1 ENPT
  734. SA1 NTAB+X1-GLTY SET ENTRY POINT IN MESSAGE
  735. BX6 X1
  736. SA6 TRMA
  737. SX2 A6
  738. TRM2 MESSAGE X2,B7 ISSUE TERMINATION MESSAGE
  739. ENDRUN
  740.  
  741. TRMA DATA C* ENTRYPT - LOCAL DAYFILE PROCESSED.*
  742. DAF TITLE MAIN PROGRAM.
  743. ** DAF - PROCESS DAYFILE DUMP.
  744. *
  745. * MAIN LOOP.
  746. *
  747. * ENTRY (DFTY) = DAYFILE DUMP TYPE.
  748. * (X1) = DAYFILE NAME.
  749. *
  750. * EXIT DAYFILE DUMPED.
  751. *
  752. * USES X - 1, 2, 6.
  753. * A - 1, 6.
  754. *
  755. * CALLS OPN, RIF, TSF, WOF, WUP.
  756. *
  757. * MACROS MESSAGE, RECALL, ROUTE, WRITER.
  758.  
  759.  
  760. DAF SUBR ENTRY/EXIT
  761. BX6 X1 STORE DAYFILE NAME
  762. SA6 TYPE
  763.  
  764. * PROCESS DAYFILE.
  765.  
  766. RJ OPN OPEN DAYFILE
  767. SA1 TYPE SET DAYFILE TYPE IN MESSAGE
  768. BX6 X1
  769. SA6 DAFA+1
  770. MESSAGE DAFA,2 * COPYING - DAYFILE.*
  771. DAF1 RJ RIF READ IN-FILE
  772. NG X1,DAF2 IF EOF/EOI
  773. RJ WOF WRITE OUT-FILE
  774. SA1 INTR
  775. NZ X1,DAF5 IF TERMINAL INTERRUPT
  776. EQ DAF1 PROCESS NEXT RECORD
  777.  
  778. * CHECK SEARCH FILE.
  779.  
  780. DAF2 SA1 FROM
  781. ZR X1,DAF3 IF FULL DUMP
  782. RJ TSF TERMINATE SEARCH FILE
  783. SA1 DFTY
  784. SX1 X1-MLTY
  785. ZR X1,DAF3 IF PROCESSING BINARY FILE
  786.  
  787. * MARK END OF TERMINAL OUTPUT.
  788.  
  789. SA1 LISF
  790. NZ X1,DAF3 IF NOT PAGINATED OUTPUT
  791. SA1 RFMT RESET PRINT FORMAT
  792. BX6 X1
  793. SA6 WBUF
  794. SA6 LISF SET *NO FORMAT*
  795. BX6 X6-X6 SET FULL DUMP
  796. SB7 B1 INDICATE MESSAGE PRESENT
  797. SA6 FROM
  798. RJ WOF WRITE OUT-FILE
  799.  
  800. * WRAP UP TERMINATION.
  801.  
  802. DAF3 RJ WUP WRAP UP PROCESSING
  803. MESSAGE (=C* *),2
  804. SX2 O FLUSH OUT-FILE
  805. SA1 DFTY
  806. SX1 X1-MLTY
  807. NZ X1,DAF4 IF NOT PROCESSING BINARY FILE
  808. SX2 B
  809. DAF4 WRITER X2
  810. SA1 JTOP CHECK IF JOB TERMINATION ENTERED
  811. ZR X1,DAFX IF NOT ENTERED
  812. RECALL X2
  813. ROUTE PDRA,R ISSUE *DSP* REQUEST
  814. EQ DAFX RETURN
  815.  
  816. DAF5 RJ WUP WRAP UP PROCESSING
  817. EQ DAFX RETURN
  818.  
  819.  
  820. DAFA DATA C* COPYING - DAYFILE. *
  821. TITLE SUBROUTINES.
  822. ERR SPACE 4,10
  823. ** ERR - PROCESS ERROR.
  824. *
  825. * ENTRY (A0) = ADDRESS OF ERROR MESSAGE.
  826. *
  827. * EXIT ABORTS.
  828. * (ENPT) = ENTRY POINT NAME.
  829. * B = BINARY OUT-FILE FET.
  830. * O = CODED OUT-FILE FET.
  831. *
  832. * USES X - 0, 1, 2, 6.
  833. * A - 1, 2, 6.
  834. *
  835. * MACROS ABORT, MESSAGE, RECALL, ROUTE, WRITER.
  836.  
  837.  
  838. ERR SA1 ENPT SET ENTRY POINT NAME
  839. SA2 NTAB+X1-GLTY
  840. BX6 X2
  841. SA6 ERRA
  842. MX0 -12 GET MESSAGE TEXT
  843. SA1 A0
  844. ERR1 BX6 X1
  845. SA6 A6+B1
  846. BX2 -X0*X1
  847. SA1 A1+B1
  848. NZ X2,ERR1 IF MORE
  849. SX2 O FLUSH OUT-FILE
  850. SA1 DFTY
  851. SX1 X1-MLTY
  852. NZ X1,ERR2 IF NOT PROCESSING BINARY FILE
  853. SX2 B
  854. ERR2 WRITER X2
  855. MESSAGE ERRA,,R ISSUE ERROR MESSAGE
  856. MESSAGE (=C* *),2
  857. SA1 JTOP
  858. ZR X1,ERR3 IF NOT JOB TERMINATION
  859. SA1 PDRA
  860. ZR X1,ERR3 IF NO FILE NAME IN *DSP* PARAMETER BLOCK
  861. RECALL X2
  862. ROUTE PDRA,R ISSUE *DSP* CALL
  863. ERR3 ABORT
  864.  
  865. ERRA BSSZ 10B MESSAGE BUILD AREA
  866. GEM SPACE 4,20
  867. ** GEM - GENERATE ERROR MESSAGE.
  868. *
  869. * ENTRY (B2) = ERROR MESSAGE CODE.
  870. * (DFTY) = DAYFILE TYPE.
  871. * (ENPT) = ENTRY POINT IDENTIFIER.
  872. *
  873. * EXIT ERROR MESSAGES ISSUED TO OUTPUT FILE AND DAYFILE.
  874. *
  875. * USES X - 1, 2, 5, 6, 7.
  876. * A - 1, 2, 5, 6, 7.
  877. * B - 2, 3, 7.
  878. *
  879. * CALLS WOF.
  880. *
  881. * MACROS MESSAGE.
  882. *
  883. * NOTE PRESERVES (X2)
  884.  
  885.  
  886. GEM SUBR ENTRY/EXIT
  887. BX7 X2 SAVE FET ADDRESS
  888. SX6 B2 SAVE MESSAGE CODE
  889. SA6 GEMA
  890. SA7 GEMB
  891.  
  892. * GENERATE OUT-FILE ERROR MESSAGE.
  893.  
  894. GEM1 SA2 DFTY SET ERROR MESSAGE PARAMETERS
  895. SA1 ETAB+X2-GLTY
  896. SA2 X1+B2
  897. SB2 B0 TRANSFER MESSAGE TO WORKING BUFFER
  898. SB3 X2 START ADDRESS
  899. AX2 18
  900. SB7 X2 LENGTH OF MESSAGE
  901. GEM2 SA5 B3+B2
  902. BX6 X5
  903. SA6 WBUF+B2
  904. SB2 B2+B1
  905. LT B2,B7,GEM2 IF NOT END OF MESSAGE
  906. RJ WOF WRITE MESSAGE TO OUTPUT FILE
  907.  
  908. * ISSUE DAYFILE VERSION OF ERROR MESSAGE.
  909.  
  910. SA1 GEMA GET MESSAGE CODE
  911. SB2 X1+
  912. SA1 ENPT SET ENTRY POINT NAME
  913. SA1 NTAB+X1
  914. BX6 X1
  915. SA2 DTAB+B2 GET MESSAGE TEXT
  916. SA6 X2 INSERT ENTRY POINT NAME INTO TEXT
  917. MESSAGE X2
  918. SA2 GEMB REPLACE FET ADDRESS
  919. EQ GEMX RETURN
  920.  
  921.  
  922. GEMA BSSZ 1 MESSAGE CODE HOLD
  923. GEMB BSSZ 1 FET ADDRESS
  924.  
  925. NTAB BSS 0 ENTRY POINT NAME TABLE
  926. LOC GLTY
  927. GLTY DATA 10H GETLOG -
  928. ACTY DATA 10H AFD -
  929. UDTY DATA 10H DAYFILE -
  930. SDTY DATA 10H DFD -
  931. ELTY DATA 10H ELD -
  932. MLTY DATA 10H MAINLOG -
  933. LOC *O
  934. SPACE 4,10
  935. ** NOTE:
  936. * THE MESSAGES REFERENCED BY THE FOLLOWING TABLES ARE
  937. * ORDERED ONE-FOR-ONE AND MUST BE MAINTAINED THAT WAY.
  938. *
  939. * *DTAB* - LIST OF THE DAYFILE VERSIONS OF THE MESSAGES.
  940. * *CFTB* - LIST OF THE CODED OUT-FILE VERSIONS OF THE
  941. * MESSAGES.
  942. * *BFTB* - LIST OF THE BINARY OUT-FILE VERSIONS OF THE
  943. * MESSAGES.
  944.  
  945. DTAB BSS 1 DAYFILE MESSAGE TEXT ADDRESS TABLE
  946. CON DFRE
  947. CON DFSE
  948.  
  949. * TEXT TABLE FOR DAYFILE VERSION OF NOTICE MESSAGES.
  950.  
  951. DFRE DATA 40C XXXXXXX - DATA LOST.
  952. DFSE DATA 40C XXXXXXX - RECOVERY SECTOR ENCOUNTERED.
  953.  
  954. ETAB BSS 1 DAYFILE TYPE TO MESSAGE SET - MAP TABLE
  955. CON CFTB ACCOUNT
  956. CON CFTB USER DAYFILE
  957. CON CFTB SYSTEM DAYFILE
  958. CON CFTB ERROR LOG
  959. CON BFTB MAINTENANCE LOG
  960.  
  961. CFTB BSS 1 CODED FILE MESSAGE ADDRESS TABLE
  962. VFD 12/2000B+CREI,12/0,18/CREL,18/CFRE
  963.  
  964. * TEXT TABLE FOR CODED FILE NOTICE MESSAGES.
  965.  
  966. CFRE DATA 30H NOTICE*** DATA READ ERROR -
  967. CREI EQU *-CFRE
  968. CREL EQU *-CFRE
  969.  
  970. BFTB BSS 1 BINARY FILE MESSAGE ADDRESS TABLE.
  971. VFD 12/2000B+BREI,12/0,18/BREL,18/BFRE
  972. VFD 12/2000B+BRSI,12/0,18/BRSL,18/BFRS
  973.  
  974. * TEXT TABLE FOR BINARY FILE NOTICE MESSAGES.
  975.  
  976. BFRE VFD 12/BREL,48/0
  977. VFD 12/2H ,24/0,24/4HS.
  978. VFD 12/DM0406,12/DS0105,36/0
  979. BREI EQU *-BFRE
  980. VFD 60/0
  981. BREL EQU *-BFRE
  982.  
  983. BFRS VFD 12/BRSL,48/0
  984. VFD 12/2H ,24/0,24/4HS.
  985. VFD 12/DM0406,12/DS0107,36/0
  986. BRSI EQU *-BFRS
  987. VFD 60/0
  988. BRSL EQU *-BFRS
  989.  
  990. ICP SPACE 4,20
  991. ** ICP - INITIALIZE CM BUFFER PROCESSING.
  992. *
  993. * ENTRY (CMFG) = 0, IF *ICP* NOT PREVIOUSLY CALLED.
  994. * (CMFG) = 1, IF *ICP* PREVIOUSLY CALLED.
  995. * (INAM) .NE. 0, IF READ ALTERNATE INPUT FILE.
  996. * (WCCM) = NUMBER OF WORDS IN *CBUF*.
  997. * (X2) = FET ADDRESS.
  998. *
  999. * EXIT FET POINTERS POINTING TO *CBUF* DATA.
  1000. * (X1) .LT. 0 IF NO DATA IN *CBUF*.
  1001. * (X2) = FET ADDRESS.
  1002. *
  1003. * USES X - 0, 1, 3, 4, 5, 6, 7.
  1004. * A - 1, 3, 5, 6, 7.
  1005.  
  1006.  
  1007. ICP2 SX1 -2 SET EOI STATUS
  1008.  
  1009. ICP SUBR ENTRY/EXIT
  1010. SA1 CMFG
  1011. NZ X1,ICP2 IF NOT FIRST CALL TO *ICP*
  1012. SX6 B1
  1013. SA6 A1
  1014. SA3 INAM
  1015. NZ X3,ICP2 IF READING ALTERNATE INPUT FILE
  1016. RECALL X2
  1017. SA5 DFTY CHECK MESSAGE TYPE
  1018. MX0 42
  1019. SX5 X5-MLTY
  1020. SA3 X2+B1 SET FIRST
  1021. SA1 WCCM
  1022. SX6 CBUF
  1023. NZ X5,ICP1 IF NOT PROCESSING BML
  1024. SX6 BCWD START OF BUFFER FOR BML
  1025. SX1 X1+B1 CONTROL WORD
  1026. ICP1 BX3 X0*X3
  1027. BX7 X6+X3
  1028. SA7 A3
  1029. BX3 X1 CONVERT TO PP WORDS
  1030. IX7 X6+X1 SET IN
  1031. SX3 X3-1 REMOVE CONTROL WORD
  1032. SA7 A7+B1
  1033. BX4 X3
  1034. LX3 2
  1035. SA6 A7+B1 SET OUT
  1036. SX7 CBUF+CBUFL SET LIMIT
  1037. SA7 A6+B1
  1038. BX7 X1 SET NUMBER OF WORDS BEFORE CONTROL WORD
  1039. SA7 X2-WRD
  1040. SX6 B1 SET EOR FLAG
  1041. IX7 X4+X3
  1042. SA6 X2-ERF
  1043. SA7 BCWD SET FOR BML
  1044. EQ ICPX RETURN
  1045. OPN SPACE 4,20
  1046. ** OPN - OPEN RESPECTIVE DAYFILE.
  1047. *
  1048. * ENTRY (BNAM) = 0, IF BINARY OUT-FILE NAME DEFAULTED.
  1049. * .NE. 0, IF NAME SPECIFIED.
  1050. * (DFTY) = DAYFILE TYPE.
  1051. *
  1052. * EXIT RESPECTIVE DAYFILE ACCESSED.
  1053. * BINARY FILE OPENED, IF MAINTENANCE LOG ACCESSED.
  1054. * (BFCW) = BINARY FILE CONTROL WORD.
  1055. * (WCDF) = DISK FILE WORD COUNT.
  1056. * (WCCM) = CM BUFFER WORD COUNT.
  1057. * EXITS TO SUBROUTINE *ERR*, IF ERROR DETECTED.
  1058. *
  1059. * USES X - 0, 1, 2, 5, 6, 7.
  1060. * A - 0, 1, 2, 6, 7.
  1061. * B - 4.
  1062. *
  1063. * CALLS STF.
  1064. *
  1065. * MACROS DAYFILE, GETJN, MESSAGE, PDATE, READCW, READW
  1066. * RECALL.
  1067.  
  1068.  
  1069. OPN SUBR ENTRY/EXIT
  1070. SA1 INAM
  1071. ZR X1,OPN2 IF IN-FILE DEFAULTED
  1072.  
  1073. * CHECK INPUT FILE FILE NAME.
  1074.  
  1075. MX0 42
  1076. SA2 OPNB SET FILE NAME IN *FILINFO* BLOCK
  1077. BX5 X0*X1
  1078. BX2 -X0*X2
  1079. BX6 X5+X2
  1080. SA6 A2+
  1081. SA0 =C* INPUT FILE NOT FOUND.*
  1082. FILINFO OPNB GET INFORMATION ON INPUT FILE
  1083. SA2 OPNB+1
  1084. MX1 -6
  1085. ZR X2,ERR IF FILE NOT FOUND
  1086. AX2 6
  1087. SA0 =C* INPUT FILE CANNOT BE EXECUTE ONLY.*
  1088. BX2 -X1*X2
  1089. ZR X2,ERR IF INPUT FILE IS EXECUTE ONLY
  1090.  
  1091. * SET SPECIFIED IN-FILE FILE NAME.
  1092.  
  1093. SA2 I
  1094. BX2 -X0*X2
  1095. BX6 X5+X2
  1096. SA6 A2+
  1097. SX2 I
  1098. RJ STF SET TERMINAL FILE
  1099. SA0 =C* INTERACTIVE INPUT FILE NOT ALLOWED.*
  1100. ZR X6,ERR IF TERMINAL FILE
  1101. EQ OPN11 INITIATE READ
  1102.  
  1103. * ACCESS RESPECTIVE DAYFILE.
  1104.  
  1105. OPN2 SA1 DFTY
  1106. SB4 X1-ACTY
  1107. NZ B4,OPN3 IF NOT ACCOUNT
  1108. DAYFILE I,ACCOUNT
  1109. EQ OPN7 CHECK CM BUFFER
  1110.  
  1111. OPN3 SB4 X1-UDTY
  1112. NZ B4,OPN4 IF NOT USER DAYFILE
  1113. DAYFILE I,USER
  1114. EQ OPN7 CHECK CM BUFFER
  1115.  
  1116. OPN4 SB4 X1-SDTY
  1117. NZ B4,OPN5 IF NOT SYSTEM DAYFILE
  1118. DAYFILE I,DAYFILE
  1119. EQ OPN7 CHECK CM BUFFER
  1120.  
  1121. OPN5 SB4 X1-ELTY
  1122. NZ B4,OPN6 IF NOT ERROR LOG
  1123. DAYFILE I,ERRLOG
  1124. EQ OPN7 CHECK CM BUFFER
  1125.  
  1126. OPN6 DAYFILE I,MAINLOG
  1127. OPN7 SA1 X2 CHECK ERROR STATUS
  1128. MX0 -4
  1129. LX1 -10
  1130. BX2 -X0*X1
  1131. ZR X2,OPN8 IF DAYFILE ATTACHED
  1132. SX2 X2-DFB
  1133. SA0 =C* UNABLE TO ACCESS DAYFILE.*
  1134. NZ X2,ERR IF NOT *DAYFILE BUSY* ERROR
  1135. RECALL
  1136. MESSAGE OPNA,2 *WAITING FOR DAYFILE.*
  1137. EQ OPN2 LOOP FOR RETRY
  1138.  
  1139. OPN8 SA1 I+2 DETERMINE AMOUNT OF DATA IN CM BUFFER
  1140. SA2 A1+B1
  1141. IX6 X1-X2
  1142. SA6 WCCM
  1143. SA2 I+6 DETERMINE AMOUNT IN DISK FILE
  1144. BX7 X2
  1145. SA7 PRUS
  1146. SX1 X6-CBUFL-1
  1147. ZR X6,OPN10 IF CM BUFFER EMPTY
  1148. NG X1,OPN9 IF CM BUFFER WILL FIT IN HOLD AREA
  1149. SA0 =C* BUFFER TOO SMALL.*
  1150. EQ ERR PROCESS ERROR
  1151.  
  1152. OPN9 SX5 X6+ SAVE CM BUFFER LENGTH
  1153. READW I,CBUF,X5 SAVE CM BUFFER IMAGE
  1154. OPN10 SA1 PRUS
  1155. ZR X1,OPN12 IF DISK FILE EMPTY
  1156. OPN11 READCW I INITIATE DISK FILE READ
  1157. OPN12 SA1 DFTY
  1158. SX1 X1-MLTY
  1159. NZ X1,OPNX IF NOT MAINTENANCE LOG
  1160.  
  1161. * OBTAIN THE CURRENT PACKED DATE/TIME AND THIS JOB-S JSN, AND
  1162. * MERGE THESE FIELDS INTO THE BML ERROR MESSAGES, SHOULD AN
  1163. * ERROR BE DETECTED.
  1164.  
  1165. PDATE OPNC GET PACKED DATE/TIME
  1166. GETJN OPND GET JSN
  1167. SA1 OPNC MERGE PACKED DATE/TIME INTO MESSAGES
  1168. SA2 BFRE
  1169. BX6 X1+X2
  1170. SA6 A2
  1171. SA6 BFRS
  1172. ERRNZ BREL-BRSL ERROR IF MESSAGE LENGTHS DIFFER
  1173. SA1 A1+B1 JSN
  1174. ERRNZ OPND-OPNC-1 ERROR IF FIELDS NOT ADJACENT
  1175. MX0 24
  1176. SA2 BFRE+1
  1177. BX1 X0*X1
  1178. LX1 -12 POSITION JSN
  1179. BX6 X2+X1 MERGE JSN INTO MESSAGE
  1180. SA6 A2
  1181. SA6 BFRS+1
  1182.  
  1183. * INITIATE BINARY FILE WRITE.
  1184.  
  1185. SA1 BNAM
  1186. ZR X1,OPN13 IF FILE NAME DEFAULTED
  1187. SA2 B
  1188. MX0 42 SET FILE NAME
  1189. BX1 X0*X1
  1190. BX2 -X0*X2
  1191. BX6 X1+X2
  1192. SA6 A2+
  1193. OPN13 SX2 B
  1194. RJ STF SET TERMINAL FILE
  1195. SA0 =C* INTERACTIVE BINARY OUT-FILE NOT ALLOWED.*
  1196. ZR X6,ERR IF TERMINAL FILE
  1197. EQ OPNX RETURN
  1198.  
  1199.  
  1200. OPNA DATA C* WAITING FOR DAYFILE.*
  1201. OPNB VFD 42/0,6/5,11/0,1/1 BUFFER FOR *FILINFO* CALL
  1202. BSS 4
  1203. OPNC VFD 60/0 PACKED DATE/TIME
  1204. OPND VFD 60/0 JSN
  1205. RDC SPACE 4,20
  1206. ** RDC - READ CODED LINE.
  1207. *
  1208. * PROCESSES CALLS TO READ CODED LINE (*RDC=*).
  1209. * DEBLOCKS DATA IF CONTROL WORD READS.
  1210. *
  1211. * ENTRY (X2) = FET ADDRESS.
  1212. * (B6) = FWA OF WORKING STORAGE BUFFER.
  1213. * (B7) = WORKING STORAGE BUFFER LENGTH.
  1214. * (INAM) = .NE. 0, IF READING ALTERNATE INPUT FILE.
  1215. * (PRUS) = NUMBER OF SECTORS REMAINING TO BE READ.
  1216. *
  1217. * EXIT (X1) = STATUS RETURNED FROM RDC=.
  1218. * (X2-LWP) = LWA+1 OF DATA TRANSFERRED.
  1219. * (B6) = LWA+1 OF DATA TRANSFERRED.
  1220. *
  1221. * USES X - 1, 3, 4, 6, 7.
  1222. * A - 0, 1, 3, 6, 7.
  1223. * B - 2, 5, 6, 7.
  1224. *
  1225. * CALLS GEM, ICP, RDC=, RDW=, UOP.
  1226.  
  1227.  
  1228. RDC9 SA3 RDCE CHECK READ ERROR STATUS
  1229. NG X3,RDC7 IF READ ERROR ENCOUNTERED
  1230.  
  1231. RDC SUBR ENTRY/EXIT
  1232. SX6 B6 SAVE FWA OF WORKING STORAGE BUFFER
  1233. SX7 B7 SAVE LENGTH OF WORKING STORAGE BUFFER
  1234. SA6 RDCC
  1235. SA7 RDCD
  1236. SA6 RDCB
  1237. RDC1 SA1 X2-WRD GET NUMBER OF WORDS BEFORE CONTROL WORD
  1238. SB5 X1
  1239. SX7 B7 SAVE LENGTH OF WORKING STORAGE BUFFER
  1240. SA7 RDCA
  1241. SA7 RDCE SET NO READ ERROR ENCOUNTERED
  1242. NG X1,RDC4 IF FIRST READ
  1243. GE B5,B7,RDC2 IF ENOUGH DATA TO FILL BUFFER
  1244. SB7 B5 SET WORDS TO READ
  1245. ZR B5,RDC3 IF NO DATA
  1246. RDC2 RJ RDC= READ CODED LINE
  1247. SA3 RDCB DETERMINE NUMBER OF WORDS TRANSFERRED
  1248. SX6 B6
  1249. SA6 A3 UPDATE FWA OF WORKING BUFFER
  1250. IX6 X6-X3
  1251. SA3 RDCA UNUSED WORDS IN WORKING STORAGE BUFFER
  1252. IX7 X3-X6
  1253. SA7 A3
  1254. SA3 X2-WRD UPDATE WORDS LEFT IN PRU (NOT TRANSFERRED)
  1255. IX6 X3-X6
  1256. SA6 A3
  1257. SA3 B6-B1 GET LAST WORD TRANSFERRED
  1258. BX6 X4
  1259. SA6 A3
  1260. BX6 X3-X4
  1261. ZR X6,RDC9 IF COMPLETE MESSAGE
  1262. ZR X7,RDC9 IF WORKING STORAGE BUFFER FULL
  1263.  
  1264. * PROCESS *CIO* TRAILING CONTROL WORD.
  1265.  
  1266. RDC3 SB7 B1 READ TRAILING CONTROL WORD
  1267. RJ RDW=
  1268. SB6 B6-B1 BACK UP LWA TO ALLOW FOR CONTROL WORD
  1269. SA3 X2-ERF CHECK EOR FLAG
  1270. PL X3,RDC4 IF NOT EOR BLOCK
  1271. MX6 1 SET NEW READ FLAG
  1272. SA6 X2-ERF
  1273. SA6 X2-WRD
  1274. NG X1,RDC9 IF EOF/EOI ENCOUNTERED
  1275. SX1 B6 SET EOR EXIT CONDITION
  1276. EQ RDC9 RETURN
  1277.  
  1278. * CHECK SECTOR COUNT TO DETERMINE IF DATA SHOULD BE READ
  1279. * FROM THE DISK FILE OR FROM *CBUF*.
  1280.  
  1281. RDC4 SA1 PRUS CHECK PRU COUNT
  1282. SX6 B1
  1283. IX6 X1-X6
  1284. NZ X1,RDC5 IF MORE PRU-S TO READ FROM DISK
  1285. RJ ICP INITIALIZE CM BUFFER PROCESSING
  1286. NG X1,RDCX IF EOF/EOI ENCOUNTERED
  1287. EQ RDC1 LOOP
  1288.  
  1289. RDC5 SA6 A1 UPDATE SECTOR COUNT
  1290.  
  1291. * PROCESS *CIO* HEADER CONTROL WORD.
  1292.  
  1293. SB7 B1 READ CONTROL WORD
  1294. RJ RDW=
  1295. PL X1,RDC6 IF NOT EOF/EOI
  1296. SA3 INAM
  1297. NZ X3,RDCX IF EOF/EOI ON ALTERNATE INPUT FILE
  1298. SA0 =C* UNEXPECTED EOF/EOI ENCOUNTERED.*
  1299. EQ ERR PREMATURE EOF/EOI
  1300.  
  1301. RDC6 SB6 B6-B1 BACK UP WORKING BUFFER
  1302. SA1 B6 SET BLOCK SIZE FROM CONTROL WORD
  1303. SX7 5
  1304. BX3 X1
  1305. SX4 X1+4 ROUND UP
  1306. AX1 36
  1307. SX6 X1
  1308. IX7 X4/X7 SET NUMBER OF WORDS BEFORE CONTROL WORD
  1309. IX6 X7-X6 SET EOR FLAG
  1310. SA7 X2-WRD
  1311. SA6 X2-ERF
  1312. PL X3,RDC8 IF NO ERRORS
  1313.  
  1314. * THE READ ERROR PROCESS IGNORES ALL MESSAGES WHICH MAY
  1315. * CONSIST OF ANY BAD SECTOR DATA.
  1316.  
  1317. SX7 X7+B1
  1318. RJ UOP UPDATE OUT POINTER
  1319. MX6 1 SET NEW READ FLAGS
  1320. SA6 X2-ERF
  1321. SA6 A6+B1
  1322. SA6 RDCE FLAG READ ERROR
  1323. SB2 REMC *DATA LOST.*
  1324. RJ GEM GENERATE ERROR MESSAGE
  1325. RDC7 SA1 RDCC RESET FWA OF WORKING STORAGE BUFFER
  1326. SA3 RDCD SET LENGTH OF REQUESTED TRANSFER
  1327. SB6 X1
  1328. BX6 X3
  1329. SA6 RDCA
  1330. RDC8 SA1 RDCA RESET WORDS NEEDED
  1331. SB7 X1
  1332. EQ RDC1 LOOP
  1333.  
  1334.  
  1335. RDCA CON 0 NUMBER OF WORDS LEFT TO TRANSFER
  1336. RDCB CON 0 UPDATE WORKING STORAGE BUFFER
  1337. RDCC CON 0 FWA OF WORKING STORAGE BUFFER
  1338. RDCD CON 0 LENGTH OF REQUESTED TRANSFER
  1339. RDCE CON 0 READ ERROR ENCOUNTERED
  1340. RDW SPACE 4,20
  1341. ** RDW - READ DATA.
  1342. *
  1343. * PROCESSES CALLS THAT ARE FOR READ WORDS (*RDW=*).
  1344. * DEBLOCKS DATA THAT ARE IN CONTROL WORD READS.
  1345. *
  1346. * ENTRY (X2) = FET ADDRESS.
  1347. * (B6) = FWA OF WORKING STORAGE BUFFER.
  1348. * (B7) = WORKING STORAGE BUFFER LENGTH.
  1349. * (INAM) = .NE. 0, IF READING ALTERNATE INPUT FILE.
  1350. * (PRUS) = NUMBER OF SECTORS REMAINING TO BE READ.
  1351. *
  1352. * EXIT (X1) = STATUS RETURNED FROM RDW=.
  1353. * (X2-LWP) = LWA+1 OF DATA TRANSFERRED.
  1354. * (B6) = LWA+1 OF DATA TRANSFERRED.
  1355. *
  1356. * USES X - 0, 1, 3, 4, 5, 6, 7.
  1357. * A - 0, 1, 3, 4, 5, 6, 7.
  1358. * B - 2, 6, 7.
  1359. *
  1360. * CALLS GEM, ICP, RDW=, UOP.
  1361.  
  1362.  
  1363. RDW10 SA6 A1 UPDATE WORDS LEFT IN PRU
  1364. RJ RDW= READ WORDS
  1365.  
  1366. RDW SUBR ENTRY/EXIT
  1367. SX6 B6 SAVE FWA OF WORKING STORAGE BUFFER
  1368. SX7 B7 SAVE LENGTH OF WORKING STORAGE BUFFER
  1369. SA6 RDWB
  1370. SA7 RDWC
  1371. RDW1 SA1 X2-WRD GET NUMBER OF WORDS BEFORE CONTROL WORD
  1372. ZR X1,RDW3 IF LAST WORD OF BLOCK
  1373. PL X1,RDW2 IF NOT FIRST READ
  1374. SX7 B7 SET WORDS LEFT IN WORKING STORAGE BUFFER
  1375. SA7 RDWA
  1376. EQ RDW4 CHECK DISK COUNT
  1377.  
  1378. * DETERMINE SIZE OF NEXT BML MESSAGE.
  1379.  
  1380. RDW2 SB7 B1 SET WORDS TO READ
  1381. RJ RDW= READ WORDS
  1382. SA3 B6-B1 LWA (BML MESSAGE HEADER WORD)
  1383. MX0 12 GET MESSAGE LENGTH
  1384. BX6 X0*X3
  1385. LX6 11-59
  1386. SB7 X6-1
  1387. SA6 RDWD SAVE FOR ERROR RECOVERY
  1388. BX4 X6
  1389. SA1 X2-WRD
  1390. IX6 X1-X6
  1391. PL X6,RDW10 IF ENOUGH WORDS LEFT IN BLOCK
  1392. IX6 X4-X1 SET WORDS LEFT TO TRANSFER
  1393. BX7 X7-X7 CLEAR WORDS LEFT IN PRU
  1394. SA6 X2-LWP
  1395. SA7 A1
  1396. SX1 X1-1 REMOVE FIRST WORD READ
  1397.  
  1398. * READ FIRST PART OF MESSAGE IN CURRENT BLOCK AND
  1399. * PROCESS *CIO* TRAILING CONTROL WORD.
  1400.  
  1401. RDW3 SB7 X1+B1
  1402. RJ RDW= READ WORDS
  1403. SB6 B6-1 BACK UP OVER LAST CONTROL WORD
  1404.  
  1405. * CHECK SECTOR COUNT TO DETERMINE IF DATA SHOULD BE READ
  1406. * FROM THE DISK FILE OR FROM *CBUF*.
  1407.  
  1408. RDW4 SA1 PRUS
  1409. SX6 B1
  1410. IX6 X1-X6
  1411. NZ X1,RDW5 IF MORE PRUS TO READ
  1412. RJ ICP INITIALIZE CM BUFFER PROCESSING
  1413. NG X1,RDWX IF EOF/EOI ENCOUNTERED - NO DATA LEFT
  1414. RDW5 SB7 2 READ CONTROL WORDS
  1415. SA6 A1+
  1416. RJ RDW=
  1417. PL X1,RDW6 IF NOT EOF/EOI
  1418. SA3 INAM
  1419. NZ X3,RDWX IF EOF/EOI ON ALTERNATE INPUT FILE
  1420. SA0 =C* UNEXPECTED EOF/EOI ENCOUNTERED.*
  1421. EQ ERR PREMATURE EOF/EOI
  1422.  
  1423. RDW6 SB6 B6-2 BACK UP WORKING BUFFER
  1424. SA1 B6 SET BLOCK SIZE FROM *CIO* CONTROL WORD
  1425. BX3 X1
  1426. SX7 5
  1427. SX4 X1+4 ROUND UP
  1428. AX1 36
  1429. SX6 X1
  1430. IX7 X4/X7 SET NUMBER OF WORDS BEFORE CONTROL WORD
  1431. IX6 X7-X6 SET EOR FLAG
  1432. SX7 X7-1 CONTROL WORDS
  1433. SA4 A1+B1
  1434. SA7 X2-WRD SAVE PRU CONTROL WORD
  1435. SA5 X2-LWP
  1436. SA6 X2-ERF
  1437. BX6 X6-X6 CLEAR WORDS LEFT FROM PREVIOUS PRU
  1438. BX7 X4
  1439. SA6 A5
  1440. NG X3,RDW9 IF READ ERRORS
  1441. SA7 RDWF
  1442. NG X7,RDW7 IF RECOVERY SECTOR
  1443. SA1 EFFG
  1444. NZ X1,RDW8 IF RECOVERING AN ERROR ON PREVIOUS PRU
  1445. SA1 RDWA
  1446. SB7 X1
  1447. ZR X5,RDW1 IF NO WORDS TO DEBLOCK FROM LAST PRU
  1448. SA1 X2-WRD WORDS IN BLOCK
  1449. IX6 X1-X5
  1450. SB7 X5 RESET WORDS NEEDED
  1451. EQ RDW10 COMPLETE MESSAGE
  1452.  
  1453. * PROCESS READ ERRORS BY IGNORING THE BEGINNING OF AN
  1454. * INCOMPLETE MESSAGE, THE SECTOR WITH THE READ
  1455. * ERROR AND THE END OF A MESSAGE WHICH STARTS IN THE
  1456. * BAD SECTOR.
  1457.  
  1458. * PROCESS A RECOVERY SECTOR.
  1459.  
  1460. RDW7 SA1 RDWE
  1461. SB2 RSMC *RECOVERY SECTOR.*
  1462. BX7 X7-X7
  1463. SA7 A1
  1464. NZ X1,RDW8 IF BEGINNING SECTOR
  1465. RJ GEM GENERATE ERROR MESSAGE
  1466. RDW8 SA1 RDWF RESET POINTERS TO FIRST MESSAGE
  1467. BX7 X7-X7 CLEAR READ ERROR FLAG
  1468. MX0 12
  1469. BX3 X0*X1 CHECK RECOVERY WORD FORMAT
  1470. LX3 12
  1471. SA0 =C$ MAINLOG - *BML* FORMAT INCORRECT.$
  1472. SX3 X3-4000B
  1473. NZ X3,ERR IF FORMAT INCORRECT
  1474. SA7 EFFG
  1475. LX0 12 DECREMENT WORD COUNT
  1476. SA5 X2-WRD
  1477. BX3 X0*X1
  1478. SX7 X3-1
  1479. IX6 X5-X7
  1480. SA6 A5
  1481. RJ UOP
  1482. SA1 RDWB RESET START CONDITIONS
  1483. SA5 RDWC
  1484. SB6 X1
  1485. SB7 X5
  1486. EQ RDW1 START NEW MESSAGE
  1487.  
  1488. * PROCESS READ ERROR.
  1489.  
  1490. RDW9 SX7 B1 SET READ ERROR FLAG
  1491. SA3 RDWC RESET WORKING BUFFER
  1492. SA7 EFFG
  1493. SB7 X3
  1494. SA1 X2-WRD
  1495. SX7 X1+B1
  1496. RJ UOP UPDATE OUT POINTER
  1497. SB2 REMC *DATA LOST.*
  1498. RJ GEM GENERATE ERROR MESSAGE
  1499. EQ RDW4 RETRY
  1500.  
  1501.  
  1502. RDWA CON 0 NUMBER OF WORDS LEFT TO TRANSFER
  1503. RDWB CON 0 FWA OF WORKING STORAGE BUFFER
  1504. RDWC CON 0 LENGTH OF WORKING STORAGE BUFFER
  1505. RDWD CON 0 MESSAGE WORD LENGTH
  1506. RDWE CON 1 SKIP FIRST RECOVERY SECTOR
  1507. RDWF CON 0 PRU LINKAGE WORD
  1508. RIF SPACE 4,15
  1509. ** RIF - READ INPUT FILE FOR NEXT MESSAGE.
  1510. *
  1511. * ENTRY (DFTY) = DAYFILE TYPE.
  1512. *
  1513. * EXIT (X1) = 0, IF MESSAGE READ.
  1514. * (X1) .LT. 0, IF EOF/EOI ENCOUNTERED.
  1515. * (B6) = FWA OF MESSAGE READ.
  1516. * (B7) = LENGTH OF MESSAGE READ.
  1517. *
  1518. * USES X - 2.
  1519. * A - 2.
  1520. * B - 6, 7.
  1521. *
  1522. * MACROS INPUTC, INPUTW.
  1523.  
  1524.  
  1525. RIF SUBR ENTRY/EXIT
  1526. SA2 DFTY CHECK MESSAGE TYPE
  1527. SX2 X2-MLTY
  1528. ZR X2,RIF1 IF PROCESSING BML
  1529. INPUTC I,WBUF,WBUFL READ ONE CODED MESSAGE
  1530. EQ RIF2 SET EXIT CONDITIONS
  1531.  
  1532. RIF1 INPUTW I,WBUF,WBUFL READ ONE BML MESSAGE
  1533. RIF2 SB7 B6-WBUF SET MESSAGE LENGTH
  1534. SB6 WBUF SET FWA OF MESSAGE
  1535. EQ RIFX EXIT
  1536. SRM SPACE 4,20
  1537. ** SRM - SEARCH FOR MESSAGE.
  1538. * THREE WORDS ARE EXAMINED.
  1539. *
  1540. * ENTRY CURRENT MESSAGE IN WORKING BUFFER.
  1541. * (WBUF) = FWA OF CURRENT MESSAGE.
  1542. * (SEMS - SEMS+2) = CRITERION MESSAGE.
  1543. * (SEMA - SEMA+2) = CRITERION MESSAGE MASK.
  1544. * (SEWI) = STARTING MESSAGE SEARCH WORD INDEX.
  1545. * I = IN FET.
  1546. *
  1547. * EXIT (X4) = 0, IF MESSAGE FOUND.
  1548. * .NE. 0, IF NOT FOUND.
  1549. *
  1550. * USES X - 1, 2, 3, 4, 6.
  1551. * A - 1, 2, 3.
  1552.  
  1553.  
  1554. SRM SUBR ENTRY/EXIT
  1555. SA1 SEWI READ STARTING SEARCH INDEX
  1556. SA1 X1+WBUF COMPARE LINE
  1557. SA2 SEMS
  1558. SA3 SEMA
  1559. BX1 X1-X2
  1560. BX4 X3*X1
  1561. SA1 A1+B1
  1562. SA2 A2+B1
  1563. NZ X4,SRMX IF NO COMPARE
  1564. ZR X2,SRM1 IF END OF MESSAGE
  1565. SA3 A3+B1
  1566. BX1 X1-X2
  1567. BX4 X3*X1
  1568. SA1 A1+B1
  1569. NZ X4,SRMX IF NO COMPARE
  1570. SA2 A2+B1
  1571. SA3 A3+B1
  1572. ZR X2,SRM1 IF END OF MESSAGE
  1573. BX1 X1-X2
  1574. BX4 X3*X1
  1575. NZ X4,SRMX IF NO COMPARE
  1576. SRM1 SA1 SEJN CHECK JOB NAME
  1577. ZR X1,SRMX IF NO JOB NAME SET
  1578. SA2 WBUF+1 CHECK JOBNAME FIELD OF DAYFILE
  1579. MX6 24
  1580. LX6 48
  1581. BX3 X1-X2
  1582. BX4 X6*X3
  1583. ZR X4,SRMX IF NAMES MATCH
  1584. SX4 B1 INDICATE MESSAGE NOT FOUND
  1585. EQ SRMX RETURN
  1586. TSF SPACE 4,15
  1587. ** TSF - TERMINATE SEARCH FILE.
  1588. *
  1589. * SET PROPER PAGINATION FLAG, ISSUE MESSAGE IF *FROM NOT
  1590. * FOUND*, DUMP TO OUTPUT FILE FROM *SCR1*.
  1591. *
  1592. * USES X - 1, 2, 5.
  1593. * A - 1.
  1594. * B - 7.
  1595. *
  1596. * MACROS READEI, READW, REWIND, WRITEC, WRITER, WRITEW.
  1597.  
  1598.  
  1599. TSF SUBR ENTRY/EXIT
  1600. WRITER S INITIATE SEARCH FILE READ PROCESSING
  1601. REWIND X2
  1602. TSF1 SA1 DFTY
  1603. SX5 B
  1604. SX1 X1-MLTY
  1605. ZR X1,TSF2 IF BINARY FILE
  1606. SX5 O
  1607. SA1 JTOP
  1608. NZ X1,TSF2 IF JOB TERMINATION SPECIFIED
  1609. SA1 SFOP DETERMINE IF OP=I SPECIFIED
  1610. SA2 =1LI
  1611. BX2 X1-X2
  1612. ZR X2,TSF2 IF OP=I SPECIFIED
  1613. SA1 FRFO
  1614. NZ X1,TSF2 IF *FR* FOUND
  1615. SA1 IOUT
  1616. NZ X1,TSFX IF NOT TERMINAL OUTPUT
  1617. WRITEC X5,(=C/ *FR* NOT FOUND./)
  1618. TSF2 READEI S
  1619.  
  1620. TSF2.1 SA1 INTR
  1621. NZ X1,DAF5 IF TERMINAL INTERRUPT
  1622. READW S,WBUF,WBUFL
  1623. NG X1,TSF3 IF EOF
  1624. WRITEW X5,WBUF,WBUFL
  1625. EQ TSF2.1 CONTINUE READING
  1626.  
  1627. TSF3 SB7 B6-WBUF
  1628. WRITEW X5,WBUF,B7
  1629. EQ TSFX RETURN
  1630. UOP SPACE 4,20
  1631. ** UOP - UPDATE OUT POINTER.
  1632. *
  1633. * ENTRY (X7) = NUMBER OF WORDS TO UPDATE OUT POINTER BY.
  1634. * (X2) = FET ADDRESS.
  1635. *
  1636. * EXIT OUT POINTER IN FET UPDATED.
  1637. *
  1638. * USES X - 0, 1, 3, 6.
  1639. * A - 1, 3, 6.
  1640.  
  1641.  
  1642. UOP SUBR ENTRY/EXIT
  1643. MX0 18
  1644. SA1 X2+3 READ OUT POINTER
  1645. LX0 18
  1646. SA3 A1+B1 READ LIMIT
  1647. IX6 X1+X7
  1648. BX3 X0*X3
  1649. IX1 X6-X3
  1650. NG X1,UOP1 IF NO WRAP AROUND
  1651. SA3 X2+B1 READ FIRST
  1652. BX3 X0*X3
  1653. IX6 X3+X1
  1654. UOP1 SA6 A1
  1655. EQ UOPX RETURN
  1656. WBF SPACE 4,15
  1657. ** WBF - WRITE BINARY FILE.
  1658. *
  1659. * ENTRY (X0) = NUMBER OF WORDS IN BINARY MESSAGE.
  1660. * (X5) = FET ADDRESS.
  1661. *
  1662. * EXIT BINARY MESSAGE WRITTEN TO INDICATED FILE.
  1663. * CYBER RECORD MANAGER *W-WORD* PREFIXED TO MESSAGE,
  1664. * IF NOT WRITTEN TO SEARCH FILE.
  1665. *
  1666. * USES X - 1, 2, 3, 6.
  1667. * A - 1, 6.
  1668. *
  1669. * MACROS WRITEW.
  1670.  
  1671.  
  1672. WBF SUBR ENTRY/EXIT
  1673.  
  1674. * BUILD *W-WORD*.
  1675.  
  1676. SA1 WCWD SET BACKWARD LINK = OLD FORWARD LINK + 1
  1677. SX2 X1+B1
  1678. LX2 41-17
  1679. SA1 WBUF SET FORWARD LINK = LENGTH FROM HEADER WORD
  1680. MX3 12
  1681. BX6 X3*X1
  1682. LX6 11-59
  1683. BX6 X2+X6
  1684. CX1 X6 SET PARITY BIT
  1685. MX3 1
  1686. LX1 59-0
  1687. BX1 X3*X1
  1688. BX1 X3-X1
  1689. BX6 X1+X6
  1690. SA6 WCWD INCLUDE NEW *W-WORD* IN RECORD WRITTEN
  1691.  
  1692. * WRITE BINARY MESSAGE.
  1693.  
  1694. WRITEW X5,WBUF-1,B7+1
  1695. EQ WBFX RETURN
  1696. WCF SPACE 4,15
  1697. ** WCF - WRITE CODED FILE.
  1698. *
  1699. * ENTRY (X5) = FET ADDRESS.
  1700. *
  1701. * EXIT CODED LINE WRITTEN TO INDICATED FILE.
  1702. * PAGINATION SUPPLIED IF NEEDED.
  1703. *
  1704. * USES X - 0, 1, 2, 3, 6, 7.
  1705. * A - 1, 2, 3, 6, 7.
  1706. *
  1707. * CALLS CDD, SFN.
  1708. *
  1709. * MACROS WRITEC, WRITEW.
  1710.  
  1711.  
  1712. WCF SUBR ENTRY/EXIT
  1713.  
  1714. * PROCESS DOUBLE SPACE CONTROL.
  1715.  
  1716. SA1 JTOP
  1717. NZ X1,WCF2 IF JOB TERMINATION SPECIFIED
  1718. SA1 LISF
  1719. NZ X1,WCF2 IF OUTPUT NOT PAGINATED
  1720. SA1 SFOP CHECK FOR *OP=I*
  1721. SA2 =1LI
  1722. BX2 X1-X2
  1723. ZR X2,WCF0 IF *OP=I*
  1724. SA1 FRFO
  1725. ZR X1,WCFX IF *FR* NOT FOUND
  1726. WCF0 SA1 PLPP
  1727. PL X1,WCF1 IF SPACE CONTROL NOT REQUIRED
  1728. SA2 WBUF INSERT DOUBLE SPACE
  1729. SA3 WCFA
  1730. MX0 6
  1731. BX6 -X0*X2
  1732. BX6 X6+X3
  1733. SA6 A2
  1734.  
  1735. * PROCESS PAGE EJECT.
  1736.  
  1737. WCF1 SA2 LINE ADVANCE LINE NUMBER
  1738. SX3 X1 LINE LIMIT
  1739. SX6 X2+B1
  1740. IX7 X3-X6
  1741. SA6 A2
  1742. PL X7,WCF2 IF NOT END OF PAGE
  1743. SX6 3 RESET LINE NUMBER
  1744. SA1 PAGE ADVANCE PAGE NUMBER
  1745. SA6 A2
  1746. SX6 X1+B1
  1747. SX1 X1+B1
  1748. SA6 PAGE
  1749. RJ CDD CONVERT PAGE NUMBER
  1750. SA2 WCFB
  1751. SA1 WBUF SET PAGE INDEX
  1752. MX0 2*6
  1753. BX6 X2-X6
  1754. SA2 INDX
  1755. LX0 6
  1756. SA6 PGNO
  1757. BX7 -X0*X1
  1758. BX2 X0*X2
  1759. BX1 X7+X2
  1760. RJ SFN
  1761. SA6 INDX
  1762. SA3 DENC
  1763. BX6 X6-X6
  1764. SA1 PLPP
  1765. LX1 59-35 SET DENSITY CONTROL
  1766. SA6 A3 DISABLE USE OF PRINT DENSITY
  1767. MX0 2*6
  1768. BX7 X0*X1
  1769. SA7 DENF
  1770. WRITEW X5,DENF,X3 CONDITIONALLY WRITE PRINT DENSITY
  1771. WRITEW X5,HEDR,HEDRL WRITE TITLE
  1772.  
  1773. * LIST DAYFILE LINE.
  1774.  
  1775. WCF2 WRITEC X5,WBUF WRITE CODED LINE
  1776. EQ WCFX RETURN
  1777.  
  1778. WCFA CON 1L0
  1779. WCFB CON 6L PAGE &6L
  1780. WOF SPACE 4,30
  1781. ** WOF - WRITE MESSAGE TO OUTPUT FILE.
  1782. *
  1783. * ENTRY (B6) = FWA OF MESSAGE.
  1784. * (B7) = LENGTH OF MESSAGE.
  1785. * (DFTY) = DAYFILE TYPE.
  1786. * (FROM) .EQ. 0 IF FULL DUMP BEING PROCESSED.
  1787. * (FROM) .NE. 0 IF PARTIAL DUMP. (SEARCH MESSAGE FOR
  1788. * MESSAGE STRING.)
  1789. *
  1790. * EXIT MESSAGE WRITTEN TO OUTPUT FILE.
  1791. * (FRFO) = 1, IF MESSAGE SEARCH STRING FOUND IN CURRENT
  1792. * MESSAGE. OTHERWISE, (FRFO) IS UNCHANGED
  1793. * FROM ENTRY.
  1794. *
  1795. * USES X - 1, 4, 5, 6, 7.
  1796. * A - 1, 4, 6, 7.
  1797. *
  1798. * CALLS SRM, WBF, WCF.
  1799. *
  1800. * MACROS REWIND.
  1801.  
  1802.  
  1803. WOF SUBR ENTRY/EXIT
  1804. SA1 INTR
  1805. NZ X1,DAF5 IF TERMINAL INTERRUPT
  1806. ZR B7,WOFX IF NO MESSAGE
  1807. SA1 DFTY
  1808. SX1 X1-MLTY
  1809. SX5 O SET FET = CODED OUT-FILE
  1810. NZ X1,WOF1 IF NOT BINARY FILE
  1811. SX5 B SET FET = BINARY OUT-FILE
  1812. WOF1 SA1 FROM
  1813. ZR X1,WOF3 IF SEARCH NOT NEEDED
  1814. RJ SRM SEARCH FOR MESSAGE
  1815. SX5 S SET FET = SEARCH FILE
  1816. NZ X4,WOF3 IF SEARCH FILE NOT FOUND
  1817. SA1 CMFG
  1818. SA4 I-WRD
  1819. ZR X1,WOF2 IF NOT PROCESSING CM BUFFER
  1820. ZR X4,WOF3 IF NO MORE DATA IN BUFFER
  1821. WOF2 REWIND X5,R
  1822. SA1 LISV RESTORE LIST FLAG
  1823. SX6 B1 SET *FOUND*
  1824. BX7 X1
  1825. SA6 DENC
  1826. SA6 FRFO
  1827. SA1 WCWC BML LINK RECOVERY
  1828. SA7 LISF
  1829. SX6 PLEN RESET LINE COUNT
  1830. BX7 X7-X7 RESET PAGE COUNT
  1831. SA6 LINE
  1832. SA7 PAGE
  1833. BX6 X1
  1834. SA6 WCWD
  1835. WOF3 SA1 DFTY
  1836. SX1 X1-MLTY
  1837. NZ X1,WOF4 IF NOT BINARY FILE
  1838. RJ WBF WRITE BINARY FILE
  1839. EQ WOFX RETURN
  1840.  
  1841. WOF4 RJ WCF WRITE CODED FILE
  1842. EQ WOFX RETURN
  1843. WUP SPACE 4,20
  1844. ** WUP - WRAP UP PROCESSING.
  1845. *
  1846. * ENTRY (INAM) = 0, IF PROCESSING ACTIVE DAYFILE.
  1847. * .NE. 0, IF PROCESSING LOCAL FILE.
  1848. * (FRFO) = 0, IF *FR* MESSAGE NOT FOUND.
  1849. * .NE. 0, IF FOUND.
  1850. * (INAM) = 0, IF PROCESSING ACTIVE DAYFILE.
  1851. * .NE. 0, IF PROCESSING LOCAL COPY OF DAYFILE.
  1852. *
  1853. * EXIT FILES RETURNED.
  1854. * *NOT FOUND* MESSAGE ISSUED IF NECESSARY.
  1855. *
  1856. * USES X - 1, 2, 5, 6.
  1857. * A - 1, 2, 5, 6.
  1858. * B - 7.
  1859. *
  1860. * MACROS RETURN.
  1861.  
  1862.  
  1863. WUP SUBR ENTRY/EXIT
  1864. SA1 FRFO
  1865. NZ X1,WUP1 IF STRING FOUND
  1866. SA1 SFOP SUPPRESS *NOT FOUND* MESSAGE IF OP=I SET
  1867. LX1 5-59
  1868. SX1 X1-1RI
  1869. ZR X1,WUP1 IF OP=I SET
  1870. MESSAGE (=C/ *FR* NOT FOUND./)
  1871. WUP1 RETURN S
  1872. SA1 INAM
  1873. NZ X1,WUPX IF I=LFN SPECIFIED
  1874. RETURN I
  1875. EQ WUPX RETURN
  1876. SPACE 4,10
  1877. ** COMMON DECKS.
  1878.  
  1879.  
  1880. *CALL COMCCDD
  1881. *CALL COMCCIO
  1882. *CALL COMCLFM
  1883. *CALL COMCMVE
  1884. *CALL COMCRDC
  1885. *CALL COMCRDO
  1886. *CALL COMCRDW
  1887. *CALL COMCSFM
  1888. *CALL COMCSFN
  1889. *CALL COMCSTF
  1890. *CALL COMCSYS
  1891. *CALL COMCWTC
  1892. *CALL COMCWTO
  1893. *CALL COMCWTW
  1894. TITLE SPECIAL ENTRIES AND BUFFERS.
  1895. * SPECIAL ENTRY POINTS.
  1896.  
  1897.  
  1898. ARG= BSS 0 DISABLE ARGUMENT CRACKING
  1899.  
  1900. * BUFFERS.
  1901.  
  1902. USE BUFFERS
  1903. SEG
  1904. SPACE 4,15
  1905. ** *W* CONTROL WORD.
  1906. *
  1907. *T W-WORD 1/P,1/F,1/D,13/,2/C,18/ B-LINK,6/,18/ F-LINK
  1908. *
  1909. * P = PARITY BIT (MAINTAINS ODD PARITY OF WORD).
  1910. * F = RECORD FLAG (0 = NORMAL RECORD).
  1911. * D = DELETE BIT (0 = ACTIVE RECORD).
  1912. * C = CONTINUATION FLAGS (0 = COMPLETE RECORD).
  1913. * B-LINK = BACKWARD LINK (WORD COUNT OF PREVIOUS RECORD + 1).
  1914. * F-LINK = FORWARD LINK (WORD COUNT NOT INCLUDING *W* WORD).
  1915.  
  1916. WCWC VFD 1/0,1/0,1/0,13/0,2/0,18/0,6/0,18/-1 RECOVERY
  1917. WCWD VFD 1/0,1/0,1/0,13/0,2/0,18/0,6/0,18/-1
  1918.  
  1919. WBUF EQU WCWD+1 WORKING BUFFER (MUST FOLLOW W-WORD)
  1920. SBUF EQU WBUF+WBUFL SCRATCH BUFFER
  1921. RBUF EQU SBUF+SBUFL REMAINDER CONCATINATION BUFFER
  1922. BCWD EQU RBUF+WBUFL CIO CONTROL WORD FOR BML PRU-S
  1923. CBUF EQU BCWD+1 BUFFER FOR CM PORTION OF DAYFILE
  1924. IBUF EQU CBUF+CBUFL IN BUFFER
  1925. OBUF EQU IBUF+IBUFL OUTPUT BUFFER
  1926. EBUF EQU OBUF EST BUFFER - USED IN PRESET ONLY
  1927.  
  1928.  
  1929. .RFL MAX OBUF+OBUFL,EBUF+EBUFL
  1930. RFL= EQU .RFL REQUIRED FIELD LENGTH
  1931. SPACE 4,10
  1932. ERRNG JTFL*100B-RFL= IF OVERFLOW MAXIMUM JOB TERMINATION FL
  1933. PRS TITLE PRESET.
  1934. ** PRS - PRESET.
  1935. * 1. SET TERMINATION MESSAGE, PAGE TITLE.
  1936. * 2. VALIDATE ACCESS TO DAYFILE.
  1937. * 3. PROCESS THE COMMAND ARGUMENTS.
  1938. * 4. DISABLE TERMINAL CONTROL IF NEEDED.
  1939. * 5. SET PAGE TITLE INFORMATION IF NEEDED.
  1940. *
  1941. * ENTRY (X4) = ADDRESS OF SEARCH STRING FOR PARTIAL DUMP.
  1942. * (DFTY) = DAYFILE TYPE.
  1943. * (ENPT) = ENTRY POINT NAME.
  1944. *
  1945. * EXIT TO *ERR* IF ARGUMENT OR FORMAT ERROR.
  1946. *
  1947. * USES X - ALL.
  1948. * A - 0, 1, 2, 3, 5, 6, 7.
  1949. * B - 1, 2, 3, 4, 6, 7.
  1950. *
  1951. * CALLS ARM, CPA, CRN, DXB, FNB, IPP, OPN, PDR, SDO,
  1952. * SSM, STF, USB.
  1953. *
  1954. * MACROS CLOCK, DATE, DISTC, EVICT, GETJN, MOVE, SYSTEM,
  1955. * WRITEW.
  1956.  
  1957.  
  1958. PRS SUBR ENTRY/EXIT
  1959. SB1 1 SET CONSTANT
  1960. MOVE 3,X4,IBUF
  1961.  
  1962. * GET PAGE PARAMETERS.
  1963.  
  1964. RJ IPP
  1965.  
  1966. * PROCESS ARGUMENTS.
  1967.  
  1968. PRS1 SB2 CCDR UNPACK COMMAND
  1969. RJ USB
  1970. SA1 A6+ ASSURE TERMINATION
  1971. SX6 1R.
  1972. SA3 B6 CHECK COMMAND LABEL PRESENT
  1973. SA6 X1+B1
  1974. SA0 =C* ARGUMENT ERROR.*
  1975. SA2 PRSB SET SEPARATOR MASK
  1976. SB2 60 SET MAXIMUM NON-DELIMITER DISPLAY CODE
  1977. SB7 ERR SET EXIT FOR TERMINATOR CHARACTER
  1978. RJ FNB FIND NON-BLANK CHARACTER
  1979. SX4 X1-1R0
  1980. MI X4,PRS3 IF NON-NUMERIC CHARACTER
  1981. SX4 X1-1R9-1
  1982. PL X4,PRS3 IF NON-NUMERIC CHARACTER
  1983.  
  1984. * SKIP *KCL* TAG.
  1985.  
  1986. PRS2 RJ FNB FIND NON-BLANK CHARACTER
  1987. SB4 B5-B2
  1988. LX4 X2,B5
  1989. PL B4,PRS3 IF SEPARATOR CHARACTER
  1990. PL X4,PRS2 IF NOT SEPARATOR CHARACTER
  1991.  
  1992. * SKIP POSSIBLE INITIAL SPECIAL CHARACTER OR DELIMITER.
  1993.  
  1994. PRS3 RJ FNB FIND NON-BLANK CHARACTER
  1995.  
  1996. * SKIP PROGRAM NAME.
  1997.  
  1998. SB7 PRS8 SET EXIT FOR TERMINATOR CHARACTER
  1999. PRS4 RJ FNB FIND NON-BLANK CHARACTER
  2000. SB4 B5-B2
  2001. LX4 X2,B5
  2002. PL B4,PRS5 IF SEPARATOR CHARACTER
  2003. PL X4,PRS4 IF NOT SEPARATOR CHARACTER
  2004.  
  2005. * PROCESS ARGUMENTS.
  2006.  
  2007. PRS5 SA1 ENPT SET ARGUMENT TABLE ADDRESS AND LENGTH
  2008. SA1 PRSD+X1-GLTY
  2009. UX1,B2 X1 UNPACK ARGUMENT TABLE VALUES
  2010. SB3 X1
  2011. SB4 PRSA CONVERT POSITIONAL ARGUMENTS
  2012. RJ CPA
  2013. SA0 =C* ARGUMENT ERROR.*
  2014. NG B5,ERR IF ERROR
  2015. PL X1,PRS8 IF NO ARGUMENTS PROCESSED
  2016. SX6 B5 SET LWA OF ARGUMENTS
  2017. SB6 PRSA SET FWA OF ARGUMENTS
  2018. SA6 USBC
  2019. RJ ARM PROCESS ARGUMENTS
  2020. NZ X1,ERR IF ERROR
  2021. MX0 42 CHECK FOR RESERVED FILE
  2022. SA0 =C* RESERVED FILE NAME.*
  2023. SA3 O
  2024. BX4 X3*X0
  2025. RJ CRN
  2026. ZR X7,ERR IF RESERVED FILE NAME
  2027.  
  2028. * SET DEFAULT *OP*.
  2029.  
  2030. PRS8 SA1 JTOP
  2031. NZ X1,PRS9 IF JOB TERMINATION OPTION SPECIFIED
  2032. SX2 O CHECK FOR TERMINAL OUTPUT FILE
  2033. RJ STF
  2034. SA6 IOUT SAVE OUTPUT FILE TYPE
  2035. SX7 B1
  2036. NZ X6,PRS9 IF NOT TERMINAL OUTPUT FILE
  2037. SA7 LISF SET NON-PAGINATED OUTPUT FLAG
  2038. SA7 PLPP SET PAGE SIZE
  2039. SA1 SEMS
  2040. NZ X1,PRS9 IF *FR* OPTION SPECIFIED
  2041. SA1 SFOP
  2042. LX1 59-0
  2043. PL X1,PRS9 IF *OP* OPTION SPECIFIED
  2044. SX6 1RI SET *OP=I* AS DEFAULT
  2045. LX6 -6
  2046. SA6 A1
  2047.  
  2048. * PROCESS SEARCH OPTION.
  2049.  
  2050. PRS9 RJ SDO SET DUMP OPTIONS
  2051. ZR X5,PRS12 IF NOT PARTIAL DUMP
  2052. SX6 B1 SET PARTIAL DUMP
  2053. AX5 1 CHECK FOR INCREMENTAL DUMP
  2054. SA6 FROM
  2055. NZ X5,PRS11 IF NOT INCREMENTAL DUMP
  2056. SA1 DFTY
  2057. SX1 X1-MLTY
  2058. ZR X1,PRS10 IF PROCESSING MAINTENANCE LOG
  2059. MOVE 3,IBUF,SEMS SET SEARCH MESSAGE
  2060. EQ PRS11 SET SEARCH MASK
  2061.  
  2062. PRS10 SA1 IBUF+1 SET MAINTENANCE LOG SEARCH MESSAGE
  2063. BX6 X1
  2064. SA6 SEMS
  2065. PRS11 RJ SSM SET SEARCH MASK
  2066. SA1 SFOP DETERMINE IF OP=J SPECIFIED
  2067. SA2 =1LJ
  2068. BX2 X1-X2
  2069. NZ X2,PRS12 IF NOT SPECIFIED
  2070. SA1 SEMA ADJUST MASK
  2071. LX1 48
  2072. BX6 X1
  2073. SA6 A1
  2074. SA1 SEMS ADJUST SEARCH STRING
  2075. LX1 48
  2076. RJ SFN
  2077. SA6 A1
  2078.  
  2079. * DISABLE TERMINAL CONTROL.
  2080.  
  2081. PRS12 SA5 JOPR CHECK JOB ORIGIN
  2082. MX0 -12
  2083. LX5 -24
  2084. BX5 -X0*X5
  2085. SB7 X5-IAOT
  2086. NZ B7,PRS13 IF NOT TERMINAL ORIGIN
  2087. DISTC ON,INTR
  2088. PRS13 SA1 IOUT
  2089. ZR X1,PRS17 IF INTERACTIVE TERMINAL OUTPUT
  2090.  
  2091. * PROCESS PAGINATION ARGUMENTS.
  2092.  
  2093. SA5 PDEN CONVERT PRINT DENSITY
  2094. SB7 B1 ASSUME DECIMAL BASE
  2095. SX6 X5 SAVE *ARGUMENT GIVEN* FLAG
  2096. BX5 X5-X6
  2097. SB6 X6
  2098. RJ DXB
  2099. SA0 =C* INCORRECT PRINT DENSITY FORMAT.*
  2100. NZ X4,ERR IF FORMAT ERROR
  2101. SA0 =C* INCORRECT PRINT DENSITY.*
  2102. SB2 X6-3
  2103. SB3 X6-4
  2104. ZR B2,PRS14 IF 3 LPI
  2105. SB2 X6-6
  2106. ZR B3,PRS14 IF 4 LPI
  2107. SB3 X6-8
  2108. ZR B2,PRS14 IF 6 LPI
  2109. NZ B3,ERR IF NOT 8 LPI
  2110. PRS14 SA5 PLPP CONVERT PAGE SIZE
  2111. SA6 PDEN STORE PRINT DENSITY
  2112. SX7 X5+ UPDATE *ARGUMENT GIVEN* FLAG
  2113. BX5 X5-X7
  2114. SB6 B6+X7
  2115. RJ DXB
  2116. SA1 PDEN FIND SPACING CHARACTERISTICS
  2117. SA0 =C* INCORRECT PAGE SIZE FORMAT.*
  2118. SA2 TPAS-1+X1
  2119. NZ X4,ERR IF FORMAT ERROR
  2120. BX7 X2
  2121. ZR X6,PRS15 IF PAGE SIZE NOT SPECIFIED
  2122. MX1 -17
  2123. BX6 -X1*X6 REPLACE PAGE SIZE
  2124. BX7 X1*X7
  2125. PL X7,PRS14.1 IF NOT DOUBLE SPACE
  2126. AX6 1 DIVIDE PAGE SIZE BY 2 FOR DOUBLE SPACE
  2127. PRS14.1 BX7 X6+X7
  2128. PRS15 SA7 PLPP SET PAGE SIZE
  2129. SB6 B6-2 CHECK *PD* OR *PL* SPECIFIED
  2130. ZR B6,PRS16 IF NEITHER *PD* NOR *PL* SPECIFIED
  2131. SX6 0 SET PAGINATION
  2132. SA6 LISF
  2133. EQ PRS17 SET UP TITLE INFORMATION
  2134.  
  2135. PRS16 SA1 O CHECK IF OUTPUT
  2136. SA2 =0LOUTPUT
  2137. MX0 42
  2138. BX6 X1-X2
  2139. BX7 X0*X6
  2140. SA7 LISF SET LIST FLAG
  2141.  
  2142. * SET PAGE TITLE INFORMATION.
  2143.  
  2144. PRS17 SA1 FROM SET DUMP MODE
  2145. ZR X1,PRS18 IF FULL DUMP
  2146. SA1 =10H1 PARTIAL
  2147. SA2 LISF SAVE LIST FLAG
  2148. BX6 X1
  2149. BX7 X2
  2150. SA6 MODE
  2151. SA7 LISV
  2152. BX7 X7-X7 SET *NOT FOUND*
  2153. SA7 FRFO
  2154. PRS18 DATE DATE SET DATE
  2155. CLOCK TIME SET TIME
  2156. EVICT S EVICT SCRATCH FILES
  2157. SA1 INAM
  2158. NZ X1,PRS19 IF I=LFN SPECIFIED
  2159. EVICT I,R
  2160.  
  2161. * PROCESS JOB TERMINATION OPTION.
  2162.  
  2163. PRS19 SA1 JTOP CHECK JOB TERMINATION FLAG
  2164. ZR X1,PRS21 IF NOT ENTERED
  2165. FILINFO PRSE CHECK FILE TYPE OF *OUTPUT*
  2166. SA1 PRSE+1
  2167. MX0 -6
  2168. BX1 -X0*X1
  2169. ZR X1,PRS19.3 IF LOCAL FILE TYPE
  2170. SX2 X1-2
  2171. ZR X2,PRS19.3 IF QUEUED FILE TYPE
  2172. SX2 X1-6
  2173. ZR X2,PRS19.3 IF PRIMARY FILE TYPE
  2174. RETURN O,R RETURN *OUTPUT*
  2175. PRS19.3 GETJN JSNP SET JSN IN END OF JOB HEADER
  2176. SX2 O
  2177. RJ STF CHECK RESIDENCY OF OUTPUT FILE
  2178. NZ X6,PRS19.5 IF NOT TERMINAL FILE
  2179. RETURN X2,R
  2180. SETFET X2,(DTY==2ROT)
  2181. REQUEST X2,U,N MAKE SURE OUTPUT GOES TO DISK
  2182.  
  2183. PRS19.5 SYSTEM RSB,R,PRSC SET TITLE AND VERSION IN END OF JOB HEADER
  2184. SA1 JSNP
  2185. SA2 =2L1
  2186. LX1 60D-12D
  2187. RJ SFN
  2188. BX6 X6+X2
  2189. SA6 JSNP
  2190. DATE DAT2 PUT DATE IN END OF JOB HEADER
  2191. CLOCK TIM2 SET END OF JOB TIME
  2192. SX0 TITL SPACE FILL TITLE AND VERSION DATA
  2193. SX5 6
  2194. PRS20 SA1 X0 READ NEXT WORD OF TITLE
  2195. RJ SFN SPACE FILL WORD
  2196. SX0 X0+B1
  2197. SA6 A1
  2198. SX5 X5-1
  2199. NZ X5,PRS20 IF NOT ALL WORDS SPACE FILLED YET
  2200. WRITEW O,HDR2,HDR2L WRITE END OF JOB HEADER
  2201. SA1 JTOP RESTORE *JT* OPTION TO REGISTER
  2202. RJ PDR PROCESS DEFERRED ROUTE
  2203.  
  2204. * WRITE *EST* FILE, IF *GETLOG* RUN.
  2205.  
  2206. PRS21 SA1 ENPT CHECK ENTRY POINT
  2207. SX1 X1-GLTY
  2208. NZ X1,PRS22 IF NOT *GETLOG*
  2209. RJ WEF WRITE EST TO FILE
  2210. PRS22 EQ PRSX RETURN
  2211.  
  2212. PRSA BSS 200
  2213.  
  2214. PRSB CON 40000000000033127777B SEPARATOR CHARACTER MASK
  2215. PRSC VFD 12/0,12/6,18/SYTL,18/TITL PARAMETERS FOR RSB CALL
  2216. PRSD BSS 0 ARGUMENT TABLE PARAMETERS
  2217. LOC GLTY
  2218. GLTY VFD 12/2000B+TGTLL,48/TGTL *GETLOG*
  2219. ACTY VFD 12/2000B+TCODL,48/TCOD *AFD*
  2220. UDTY VFD 12/2000B+TCODL,48/TCOD *DAYFILE*
  2221. SDTY VFD 12/2000B+TCODL,48/TCOD *DFD*
  2222. ELTY VFD 12/2000B+TCODL,48/TCOD *ELD*
  2223. MLTY VFD 12/2000B+TMLGL,48/TMLG *MAINLOG*
  2224. LOC *O
  2225. PRSE VFD 42/6LOUTPUT,6/5,11/0,1/1
  2226. BSS 4
  2227. TGTL SPACE 4,10
  2228. ** TGTL - *GETLOG* PARAMETERS.
  2229.  
  2230.  
  2231. TGTL BSS 0
  2232. L ARG ST,O,0,0 *ERRLOG* FILENAME
  2233. OP ARG 0,SFOP,0,1 OPTIONS
  2234. I ARG ST,INAM,0,0 *BML* INPUT FILENAME
  2235. B ARG ST,BNAM,0,0 *BML* FILENAME
  2236. E ARG ST,E,0,0 *EST* FILENAME
  2237. ARG TERMINATOR
  2238. TGTLL EQU *-TGTL-1 LENGTH OF ARGUMENT TABLE
  2239. TMLG SPACE 4,10
  2240. ** TMLG - *MAINLOG* PARAMETERS.
  2241.  
  2242.  
  2243. TMLG BSS 0
  2244. VFD 6/1R ,54/ NO ARGUMENT - PLACE HOLDER
  2245. FR ARG 0,SEMS,400B,3 *FROM* OPTION
  2246. OP ARG 0,SFOP,0,1 OPTIONS
  2247. VFD 6/1R ,54/0 NO ARGUMENT - PLACE HOLDER
  2248. VFD 6/1R ,54/0 NO ARGUMENT - PLACE HOLDER
  2249. I ARG ST,INAM,0,0 *BML* INPUT FILENAME
  2250. B ARG ST,BNAM,0,0 *BML* FILENAME
  2251. ARG TERMINATOR
  2252. TMLGL EQU *-TMLG-1 LENGTH OF ARGUMENT TABLE
  2253. TCOM SPACE 4,10
  2254. ** TCOD - CODED PARAMETERS.
  2255. *
  2256. * THIS TABLE IS USED BY THE CODED DAYFILE PROCESSORS.
  2257.  
  2258.  
  2259. TCOD BSS 0
  2260. L ARG ST,O,0,0 OUTPUT FILENAME
  2261. FR ARG 0,SEMS,400B,3 *FROM* OPTION
  2262. OP ARG 0,SFOP,0,1 OPTIONS
  2263. PD ARG 0,PDEN,0,1 PRINT DENSITY
  2264. PL ARG 0,PLPP,400B,1 PAGE LENGTH
  2265. I ARG ST,INAM,0,0 INPUT FILENAME
  2266. JT ARG JTOP,JTOP,0,0 JOB TERMINATION OPTION
  2267. ARG TERMINATOR
  2268. TCODL EQU *-TCOD-1 LENGTH OF ARGUMENT TABLE
  2269.  
  2270. ST CON 3 DEFAULT FET STATUS
  2271. TPAS SPACE 4,10
  2272. ** TPAS - TABLE OF PAGE SIZE PARAMETERS.
  2273. * INDEXED BY PRINT DENSITY VALUE.
  2274. * ONE WORD ENTRY IN FORM -
  2275. *
  2276. *T 1/A,23/ ,18/ FMT,18/ DIV INITIAL FORM
  2277. *
  2278. *T 1/A,23/ ,18/ FMT,18/ PAGE FINAL FORM
  2279. *
  2280. * WHERE A = 1 IF DOUBLE SPACING IS NEEDED.
  2281. * FMT = PRINT DENSITY FORMAT CONTROL CHARACTER.
  2282. * PAGE = NUMBER OF LINES PER PAGE FOR THIS DENSITY.
  2283. * DIV = DIVISOR FOR JOB DEFAULT PAGE SIZE.
  2284.  
  2285.  
  2286. TPAS BSS 0
  2287. LOC 1
  2288. CON 0
  2289. CON 0
  2290. VFD 1/1,23/0,18/2LS ,18/2
  2291. VFD 1/1,23/0,18/2LT ,18/2
  2292. CON 0
  2293. VFD 1/0,23/0,18/2LS ,18/1
  2294. CON 0
  2295. VFD 1/0,23/0,18/2LT ,18/1
  2296. LOC *O
  2297. CON -0 END OF LIST
  2298. CDP SPACE 4,15
  2299. ** CDP - CONVERT DISPLAY TIME TO PACKED TIME.
  2300. *
  2301. * ENTRY (SEMS) = DISPLAY TIME (10H HH.MM.SS.).
  2302. *
  2303. * EXIT (SEMS) = PACKED TIME (VFD 42/0,18/HHMMSS).
  2304. * TO *ERR* IF CONVERSION ERROR.
  2305. *
  2306. * USES X - 1, 2, 3, 5, 6.
  2307. * A - 0, 1, 2, 3, 6.
  2308. * B - 4, 6, 7.
  2309. *
  2310. * CALLS DXB.
  2311.  
  2312.  
  2313. CDP SUBR ENTRY/EXIT
  2314. SB6 3 INITIALIZE TABLE INDEX
  2315. SB7 1 SET DECIMAL CONVERSION FLAG
  2316. CDP1 SB6 B6-1 EXTRACT 2 DISPLAY DIGITS
  2317. SA1 SEMS
  2318. SA2 CDPA+B6
  2319. SA3 CDPB+B6
  2320. BX5 X2*X1
  2321. SB4 X3+
  2322. LX5 B4,X5
  2323. RJ DXB CONVERT DISPLAY CODE TO BINARY
  2324. SA0 =C/ *FR* TIME VALUE INCORRECT./
  2325. NZ X4,ERR IF CONVERSION ERROR
  2326. SA1 CDPC MERGE CONVERTED DIGITS
  2327. LX1 6
  2328. BX6 X1+X6
  2329. SA6 A1+
  2330. NZ B6,CDP1 IF MORE
  2331. SA6 SEMS SET PACKED TIME
  2332. EQ CDPX RETURN
  2333.  
  2334.  
  2335. CDPA VFD 42/0,12/7777B,6/0 MASK TABLE
  2336. VFD 24/0,12/7777B,24/0
  2337. VFD 6/0,12/7777B,42/0
  2338.  
  2339. CDPB CON 42D SHIFT TABLE
  2340. CON 24D
  2341. CON 6D
  2342.  
  2343. CDPC BSSZ 1 CONVERSION AREA
  2344. CRN SPACE 4,15
  2345. ** CRN - CHECK RESERVED NAME.
  2346. *
  2347. * ENTRY (X4) = LEFT JUSTIFIED FILE NAME.
  2348. * (A3) = FET ADDRESS OF FILE BEING CHECKED.
  2349. *
  2350. * EXIT (X7) = 0, IF RESERVED NAME.
  2351. *
  2352. * USES X - 1, 2, 3, 7.
  2353. * A - 1.
  2354. * B - 2, 3, 5.
  2355.  
  2356.  
  2357. CRN SUBR
  2358. SB2 I-FETL
  2359. SB5 A3
  2360. SB3 S
  2361. MX3 42
  2362. SX7 B1 INDICATE NOT RESERVED
  2363. BX4 X3*X4
  2364. ZR X4,CRNX IF ZERO FILE NAME SPECIFIED
  2365. CRN1 SB2 B2+FETL INCREMENT FET ADDRESS
  2366. EQ B2,B5,CRN1 IF FET BEING CHECKED
  2367. GT B2,B3,CRNX IF SEARCH COMPLETE
  2368. SA1 B2 SET FET FILENAME
  2369. BX2 X3*X1
  2370. BX7 X2-X4
  2371. NZ X7,CRN1 IF NOT A MATCH
  2372. EQ CRNX RETURN
  2373. FNB SPACE 4,20
  2374. ** FNB - FIND NON-BLANK CHARACTER.
  2375. *
  2376. * ENTRY (B6) = NEXT CHARACTER ADDRESS.
  2377. * (B7) = EXIT ADDRESS, IF TERMINATOR ENCOUNTERED.
  2378. *
  2379. * EXIT (X1) = (B5) = NEXT NON-BLANK CHARACTER.
  2380. * (B6) = NEXT CHARACTER ADDRESS (UPDATED).
  2381. * EXIT IS MADE TO (B7), IF TERMINATOR ENCOUNTERED.
  2382. *
  2383. * USES X - 1, 4.
  2384. * A - 1.
  2385. * B - 5, 6.
  2386.  
  2387.  
  2388. FNB SUBR ENTRY/EXIT
  2389. FNB1 SA1 B6 GET NEXT CHARACTER
  2390. SB6 B6+B1
  2391. SX4 X1-1R
  2392. ZR X4,FNB1 IF BLANK CHARACTER
  2393. SB5 X1+
  2394. SX4 X1-1R.
  2395. ZR X4,FNB2 IF TERMINATOR CHARACTER
  2396. SX4 X1-1R)
  2397. NZ X4,FNBX IF NOT TERMINATOR CHARACTER, RETURN
  2398. FNB2 JP B7 TERMINATOR CHARACTER
  2399. IPP SPACE 4,20
  2400. ** IPP - INITIALIZE PAGE PARAMETERS.
  2401. *
  2402. * ENTRY NONE.
  2403. *
  2404. * EXIT TABLE *TPAS* SET UP WITH JOB PAGE SIZE.
  2405. * (PDEN) = JOB DEFAULT PRINT DENSITY.
  2406. * (RFMT) = JOB DEFAULT PRINT DENSITY.
  2407. *
  2408. * USES A - 1, 2, 6, 7.
  2409. * B - 6.
  2410. * X - 0, 1, 2, 6, 7.
  2411. *
  2412. * MACROS GETPP.
  2413.  
  2414.  
  2415. IPP SUBR ENTRY/EXIT
  2416. GETPP IPPA,IPPB,PDEN GET PAGE PARAMETERS
  2417. SA1 PDEN PRINT DENSITY SYMBOL
  2418. SX6 1R
  2419. LX6 54-6
  2420. BX6 X1+X6
  2421. SA6 RFMT SET RESTORE DENSITY
  2422. LX1 6
  2423. SX1 X1-1RS+6/2 NUMERIC PRINT DENSITY
  2424. LX1 1
  2425. SX7 X1+1BS6+1R6-6 FORM DISPLAY CODE EQUIVALENT
  2426. LX7 59-5
  2427. SA7 A1
  2428. SA2 IPPB GET JOB PAGE SIZE
  2429. SA1 TPAS SET UP PAGE SIZE TABLE
  2430. MX0 42
  2431. IPP1 SB6 X1-1 DIVISOR - 1 = SHIFT COUNT
  2432. NG B6,IPP2 IF UNUSED WORD
  2433. BX1 X0*X1
  2434. AX6 B6,X2
  2435. BX6 X1+X6
  2436. SA6 A1 STORE ACTUAL LINE COUNT
  2437. IPP2 SA1 A1+B1 GET NEXT WORD IN TABLE
  2438. NZ X1,IPP1 IF WORD IN USE
  2439. PL X1,IPP2 IF UNUSED WORD
  2440. EQ IPPX RETURN
  2441.  
  2442. IPPA BSSZ 2 GETPAGE RESPONSE BLOCK
  2443. IPPB CON 0 TEMPORARY STORAGE FOR PAGE SIZE
  2444. PDR SPACE 4,20
  2445. ** PDR - PROCESS DEFERRED ROUTE OF FILE.
  2446. *
  2447. * POSITIONS FILE TO *EOI* IF JOB TERMINATION IN
  2448. * PROGRESS. SETS RANDOM ADDRESS IN *DSP* PARAMETER
  2449. * BLOCK.
  2450. *
  2451. * ENTRY (X1) = *JT* PARAMETER OPTION.
  2452. *
  2453. * EXIT TO ERR IF PARAMETER ERROR.
  2454. *
  2455. * USES X - 1, 2, 6.
  2456. * A - 0, 1, 2, 6.
  2457. *
  2458. * MACROS GETEOJS, SKIPEI.
  2459.  
  2460.  
  2461. PDR SUBR ENTRY/EXIT
  2462. SA2 DFTY GET DAYFILE PROGRAM CALL CODE
  2463. SA0 =C* ARGUMENT ERROR.* PRESET ERROR MESSAGE
  2464. SX2 X2-UDTY
  2465. NZ X2,ERR IF NOT USER DAYFILE CALL
  2466. LX1 6
  2467. SX2 1RD CHECK OPTION DEFINED
  2468. BX2 X2-X1
  2469. SA0 =C* INCORRECT JOB TERMINATION OPTION.*
  2470. NZ X2,ERR IF NOT *D* OPTION
  2471.  
  2472. * CHECK IF END OF JOB PROCESSING.
  2473.  
  2474. GETEOJS PDRB GET END OF JOB STATUS
  2475. SA1 PDRB READ REPLY WORD
  2476. SA2 PDRA+1
  2477. SX6 X1-100B CHECK FOR TERMINATION IN PROGRESS
  2478. NG X6,PDR1 IF TERMINATION NOT IN PROGRESS
  2479. MX6 -12 CLEAR DISPOSITION CODE AND ASSOCIATED BIT
  2480. SX1 21B
  2481. LX6 24
  2482. BX6 X6*X2
  2483. BX6 X6-X1
  2484. SA6 A2 RESET ROUTING INFORMATION
  2485.  
  2486. * SET UP *DSP* BLOCK FOR *ROUTE* REQUEST.
  2487.  
  2488. PDR1 SA1 O GET FILE NAME
  2489. MX6 -18 SET NAME IN PARAMETER BLOCK
  2490. BX6 X6*X1
  2491. SA6 PDRA
  2492. SKIPEI O,R SKIP TO END OF INFORMATION
  2493. SA1 O+6 SET CURRENT RANDOM INDEX IN *DSP* BLOCK
  2494. MX0 30
  2495. BX6 X0*X1
  2496. LX6 -6
  2497. SA6 PDRA+7
  2498.  
  2499. * CLEAR PAGINATION AS DEFAULT.
  2500.  
  2501. SX6 -1 CLEAR PAGINATION
  2502. SA6 LISF
  2503. EQ PDRX RETURN
  2504.  
  2505. PDRB CON 0 *GETEOJS* REPLY WORD
  2506. SDO SPACE 4,25
  2507. ** SDO - SET DUMP OPTIONS.
  2508. *
  2509. * ENTRY (SFOP) = OPTION.
  2510. * (DFTY) = DAYFILE TYPE.
  2511. * (EMSG) = SET WITH DAYFILE CODE.
  2512. * (SEWI) = WORD INDEX OF MESSAGE FIELD FOR THIS DAYFILE.
  2513. * (SEMS) = SEARCH MESSAGE OPTION.
  2514. *
  2515. * EXIT (SEWI) = SEARCH WORD INDEX.
  2516. * (SFOP) = DUMP OPTION.
  2517. * (X5) .EQ. 0, IF FULL DUMP.
  2518. * .EQ. 1, IF INCREMENTAL DUMP.
  2519. * .GT. 1, IF PARTIAL DUMP.
  2520. * TO ERR IF DUMP OPTION ERRORS.
  2521. *
  2522. * USES X - 0, 1, 2, 5, 6.
  2523. * A - 0, 1, 2, 5, 6.
  2524. * B - 7.
  2525. *
  2526. * MACROS GETJN.
  2527.  
  2528.  
  2529. SDO SUBR ENTRY/EXIT
  2530. SA1 SFOP CHECK ENTRERED OPTION
  2531. SA0 =C/ UNKNOWN *OP* FIELD./
  2532. MX0 42
  2533. SA2 ENPT
  2534. SX6 X2-GLTY
  2535. ZR X6,SDO0.1 IF *GETLOG*
  2536. SX2 X2-MLTY
  2537. NZ X2,SDO0 IF PROCESSING CODED FILE
  2538. SA5 SDOB-1 SET INDEX FOR BINARY FILE OPTION TABLE
  2539. EQ SDO1 SEARCH TABLE
  2540.  
  2541. SDO0 SA5 SDOA-1 SET INDEX FOR CODED FILE OPTION TABLE
  2542. EQ SDO1 CONTINUE
  2543.  
  2544. SDO0.1 SA5 SDOC-1 SET INDEX FOR *GETLOG* OPTION TABLE
  2545. SDO1 SA5 A5+B1 SEARCH TABLE
  2546. BX6 X5-X1
  2547. ZR X5,ERR IF INCORRECT OPTION
  2548. BX6 X0*X6
  2549. NZ X6,SDO1 IF NO COMPARE
  2550. BX6 -X0*X5 SET PROCESSOR ADDRESS
  2551. SB7 X6+
  2552. SA5 SEMS SET *FR* OPTION
  2553. JP B7 JUMP TO PROCESSOR
  2554.  
  2555. SDO2 SX6 B0+ PROCESS T OPTION
  2556. SA6 SEWI SET SEARCH WORD INDEX
  2557. EQ SDO4
  2558.  
  2559. SDO3 SA1 SEWI PROCESS J OPTION
  2560. SA0 =C* JOB FIELD DISALLOWED ON USER DAYFILE.*
  2561. SX6 X1-1
  2562. ZR X6,ERR IF USER DAYFILE
  2563. SA6 A1+
  2564.  
  2565. SDO4 SX5 B1+B1 SET PARTIAL DUMP
  2566. EQ SDOX PROCESS M OPTION
  2567.  
  2568. SDO5 SA0 =C/ *FR* INCORRECT FOR THIS OPTION./ PROCESS I OPTION
  2569. NZ X5,ERR IF *FR* SPECIFIED
  2570. SX5 B1 SET INCREMENTAL DUMP
  2571. EQ SDOX
  2572.  
  2573. SDO6 SA1 SEWI PROCESS P OPTION
  2574. SA0 =C* JOB FIELD DISALLOWED ON USER DAYFILE.*
  2575. SX1 X1-1
  2576. ZR X1,ERR IF USER DAYFILE
  2577. GETJN SEJN SET JOBNAME
  2578. SA1 SEJN SET JOBNAME TO CORRECT FORMAT
  2579. LX1 48
  2580. BX6 X1
  2581. SA6 SEJN
  2582. SDO6.1 SX6 1RI SET INCREMENTAL DUMP
  2583. LX6 -6
  2584. SA6 SFOP
  2585. EQ SDO5 PROCESS AS INCREMENTAL DUMP
  2586.  
  2587. SDO7 ZR X5,SDOX IF *FR* NOT SELECTED
  2588. SX6 1RM SET DEFAULT *OP* OPTION
  2589. LX6 -6
  2590. SA6 SFOP
  2591. EQ SDO4 SET PARTIAL DUMP OPTION
  2592.  
  2593. SDO8 SA0 =C/ *OP* OPTION INCORRECT./
  2594. EQ ERR PROCESS ERROR
  2595.  
  2596. SDO9 ZR X5,SDOX IF *FR* NOT SELECTED
  2597. SA0 =C/ *FR* INCORRECT FOR THIS OPTION./
  2598. EQ ERR PROCESS ERROR
  2599.  
  2600.  
  2601.  
  2602. * TABLE OF CODED FILE OPTION PROCESSORS.
  2603.  
  2604.  
  2605. SDOA VFD 42/0LT,18/SDO2 T OPTION
  2606. VFD 42/0LJ,18/SDO3 J OPTION
  2607. VFD 42/0LM,18/SDO4 M OPTION
  2608. VFD 42/0LI,18/SDO5 I OPTION
  2609. VFD 42/0LP,18/SDO6 P OPTION
  2610. VFD 42/0LF,18/SDO7 F OPTION
  2611. CON 0
  2612.  
  2613. * TABLE OF BINARY FILE OPTION PROCESSORS.
  2614.  
  2615. SDOB VFD 42/0LT,18/SDO2 T OPTION
  2616. VFD 42/0LJ,18/SDO3 J OPTION
  2617. VFD 42/0LM,18/SDO8 M OPTION
  2618. VFD 42/0LI,18/SDO5 I OPTION
  2619. VFD 42/0LP,18/SDO6 P OPTION
  2620. VFD 42/0LF,18/SDO9 F OPTION
  2621. CON 0
  2622.  
  2623. * TABLE OF *GETLOG* FILE OPTION PROCESSORS.
  2624.  
  2625. SDOC VFD 42/0LF,18/SDO9 F OPTION
  2626. VFD 42/0LP,18/SDO6.1 P OPTION
  2627. CON 0
  2628. SSM SPACE 4,20
  2629. ** SSM - SET SEARCH MASK.
  2630. *
  2631. * ENTRY (SEMS - SEMS+2) = SEARCH CHARACTERS.
  2632. * (DFTY) = DAYFILE TYPE.
  2633. * (SFOP) = DUMP OPTION (*OP=*).
  2634. *
  2635. * EXIT (SEMA - SEMA+2) = SEARCH MASK.
  2636. *
  2637. * USES X - 1, 2, 3, 6, 7.
  2638. * A - 1, 2, 3, 6, 7.
  2639. * B - 2.
  2640. *
  2641. * CALLS CDP, SFN.
  2642.  
  2643.  
  2644. SSM SUBR ENTRY/EXIT
  2645. SA1 SEMS
  2646. SA2 SFOP
  2647. SA3 SSMA
  2648. BX2 X2-X3
  2649. ZR X2,SSM3 IF OP=T OPTION
  2650. SSM1 RJ SFN FIND MASK
  2651. SA7 A1+SEMA-SEMS STORE MASK WORD
  2652. SA1 A1+1 READ NEXT MESSAGE WORD
  2653. NZ X7,SSM2 IF END OF MESSAGE
  2654. NG X7,SSM1 IF NOT ZERO WORD
  2655. EQ SSMX RETURN
  2656.  
  2657. SSM2 BX6 X6-X6 TERMINATE MESSAGE
  2658. SA6 A1
  2659. EQ SSMX RETURN
  2660.  
  2661. SSM3 SA2 DFTY
  2662. SX2 X2-MLTY
  2663. NZ X2,SSM1 IF NOT DUMPING MAINTENANCE LOG
  2664. RJ CDP CONVERT SEARCH DISPLAY TIME TO PACKED TIME
  2665. SA1 SEMS BUILD MASK FOR PACKED TIME
  2666. SB2 6
  2667. MX7 3
  2668. SSM4 LX7 3
  2669. BX2 X7*X1
  2670. SB2 B2-1
  2671. ZR B2,SSMX IF PACKED TIME FIELD EXHAUSTED
  2672. ZR X2,SSM4 IF RIGHTMOST DIGIT NOT FOUND
  2673. BX6 X6-X6
  2674. SSM5 BX6 X7+X6
  2675. LX7 3
  2676. SB2 B2-1
  2677. NZ B2,SSM5 IF PACKED TIME FIELD NOT EXHAUSTED
  2678. SA6 SEMA
  2679. EQ SSMX RETURN
  2680.  
  2681. SSMA DATA 1LT OP=T TEST CHARACTER
  2682. WEF SPACE 4,10
  2683. ** WEF - WRITE EST TO FILE.
  2684. *
  2685. * ENTRY FILENAME INSERTED IN FET.
  2686. *
  2687. * EXIT EST WRITTEN TO FILE.
  2688. *
  2689. * CALLS RSB=.
  2690. *
  2691. * MACROS PDATE, SYSTEM, WRITER.
  2692.  
  2693.  
  2694. WEF SUBR
  2695. SA1 E
  2696. ZR X1,WEFX IF *E=0* SPECIFIED
  2697.  
  2698. * READ EST INTO *EBUF*.
  2699.  
  2700. SYSTEM RSB,R,WEFA READ *ESTP*
  2701. SA2 WEFA+1 SET *COMCRSB* ENTRY CONDITIONS
  2702. MX3 -12
  2703. SX1 EBUF+11B (X1) = ADDRESS TO TRANSFER TO
  2704. AX2 24
  2705. BX3 -X3*X2
  2706. SX7 X3
  2707. AX2 12 (X2) = ADDRESS TO TRANSFER FROM
  2708. SA7 WEFB SAVE LAST EST ORDINAL + 1
  2709. R= X6,ESTE
  2710. IX3 X3*X6 (X3) = WORD COUNT
  2711. SX4 B0 (X4) = SUBSYSTEM (= *CMR*)
  2712. MX6 1
  2713. SA6 X1
  2714. RJ RSB= READ EST
  2715.  
  2716. * SET HEADER INFORMATION.
  2717.  
  2718. SA1 WEFB WORD 0 - EST LENGTH, ENTRY SIZE
  2719. R= X6,ESTE
  2720. IX5 X1*X6 SAVE EST LENGTH (WORDS)
  2721. MX7 1
  2722. LX1 12
  2723. BX6 X6+X1
  2724. SA6 EBUF
  2725. PDATE EBUF+2 WORD 2 - PACKED DATE/TIME
  2726. SA7 EBUF+3
  2727. SYSTEM RSB,R,WEFC READ SYSTEM TITLE/VERSION INTO WORDS 3-10
  2728.  
  2729. * WRITE COMPLETED BUFFER TO *EST* FILE.
  2730.  
  2731. SX6 X5+11B+EBUF SET EFFECTIVE *IN* VALUE IN FET
  2732. SA6 E+2
  2733. WRITER E,R WRITE *EST* FILE
  2734. EQ WEFX RETURN
  2735.  
  2736. WEFA VFD 12/0,12/1,18/ESTP,18/*+1 *RSB* FOR *ESTP*
  2737. VFD 1/1,59/ ESTP
  2738. WEFB BSS 1 NUMBER OF EST ENTRIES
  2739. WEFC VFD 12/0,12/6,18/SYTL,18/EBUF+3 *RSB* FOR TITLE/VERSION
  2740. TITLE PRESET COMMON DECKS.
  2741. ** COMMON DECKS.
  2742.  
  2743.  
  2744. LIT CON 1 ALLOW LITERALS ON COMMAND
  2745. QUAL$ EQU 1 DO NOT QUAL COMMON DECKS
  2746. *CALL COMCARM
  2747. *CALL COMCCPA
  2748. *CALL COMCCPM
  2749. *CALL COMCDXB
  2750. *CALL COMCPOP
  2751. *CALL COMCRSB
  2752. *CALL COMCUSB
  2753.  
  2754.  
  2755. ERRNG CBUF-*-1 IF *PRESET* OVERLAYS *CM BUFFER*
  2756. END DAYFILE
cdc/nos2.source/opl871/dayfile.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator