Table of Contents

TAFREC

Table Of Contents

  • [00007] TAFREC - *TAF* INITIALIZATION AND RECOVERY.
  • [00113] CONSTANTS, FETS, BUFFERS AND MISCELLANEOUS.
  • [00430] MISCELLANEOUS SUBROUTINES.
  • [00432] ITR - INITIALIZE COMMUNICATIONS RECOVERY FILE.
  • [00541] PTR - PERFORM *CRF* RECOVERY.
  • [00802] RRU - REFORMAT RECOVERY UNIT.
  • [00887] PRU - PREALLOCATE RECOVERY UNIT.
  • [00945] RFH - READ FILE HEADER.
  • [01048] BDR - BUILD DIRECTORY OF RECOVERY UNITS.
  • [01342] RMR - READ MESSAGE RECORDS.
  • [01390] FRL - FORMAT REPORT LINE.
  • [01477] STN - SEARCH TERMINAL NAME.
  • [01524] SDR - SORT DIRECTORY OF RECOVERY UNITS.
  • [01600] GHL - GET HIGHEST/LOWEST TST ENTRY ADDRESSES.
  • [01638] ZFB - ZERO FILL BUFFER.
  • [01657] ALC - ADVANCE LINE COUNT.
  • [01697] ERR - ERROR PROCESSOR.
  • [01738] *TAFREC* PRESET ROUTINES.
  • [01740] PRS - PRESET *TAFREC*.
  • [02005] IIM - ISSUE INITIALIZATION MESSAGE.
  • [02037] PTF - PROCESS *TAF* CONFIGURATION FILE.
  • [02365] DSP - PROCESS *DISPLAY* DIRECTIVE.
  • [02392] NET - PROCESS *NETWORK* DIRECTIVE.
  • [02451] RCV - PROCESS *RECOVER* DIRECTIVE.
  • [02517] DMS - PROCESS *DMS* DIRECTIVE.
  • [02570] USR - PROCESS *USER* COMMAND.
  • [02635] PNF - PROCESS NETWORK FILE.
  • [02776] ANF - ATTACH NETWORK DESCRIPTOR FILE.
  • [02838] RKD - RESTART *K-DISPLAY*.
  • [02943] SRS - SET RECOVERY STATUS.
  • [03027] SKD - SET *K-DISPLAY*.
  • [03720] DISPLAY FORMATS.
  • [04011] FETS AND COMMON DECKS.

Source Code

TAFREC.txt
  1. IDENT TAFREC,111B,TAFREC
  2. ABS
  3. SST CMBL
  4. ENTRY TAFREC
  5. ENTRY RFL=
  6. SYSCOM B1
  7. TITLE TAFREC - *TAF* INITIALIZATION AND RECOVERY.
  8. *COMMENT TAFREC - *TAF* INITIALIZATION AND RECOVERY.
  9. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  10. TAFREC SPACE 4,10
  11. LIST X
  12. *CALL COMKTAF
  13. LIST -X
  14. SPACE 4,10
  15. ***** TAFREC - *TAF* INITIALIZATION AND RECOVERY PROGRAM.
  16. *
  17. * R. G. PARKHOUSE 80/05/15.
  18. SPACE 4,10
  19. *** *TAFREC* PERFORMS INITIALIZATION AND RECOVERY PROCESSING FOR
  20. * THE TRANSACTION FACILITY *TAF*.
  21. *
  22. * *TAFREC* READS THE *TAF* CONFIGURATION FILE VERIFYING THE
  23. * SYNTAX OF ALL DIRECTIVES. THE DIRECTIVES ACTUALLY PROCESSED
  24. * ARE *DISPLAY*, *NETWORK* AND *RECOVER*. IF THE *DISPLAY*
  25. * DIRECTIVE HAS STATUS EQUAL *ON*, THE INITIAL *K-DISPLAY* IS
  26. * SET UP TO RECEIVE OPERATOR ENTERED VALUES. FOR EACH ID
  27. * SPECIFIED ON THE *NETWORK* DIRECTIVE THE CORRESPONDING
  28. * NETWORK FILE IS ATTACHED AND THE TERMINAL STATUS TABLE
  29. * BUILT. FOR EACH ID SPECIFIED ON THE *RECOVER* DIRECTIVES,
  30. * THE CORRESPONDING COMMUNICATIONS RECOVERY FILE IS ATTACHED,
  31. * OR DEFINED IF NOT FOUND AND THE INITIALIZE FUNCTION WAS
  32. * REQUESTED FROM THE *K-DISPLAY*.
  33. *
  34. * *TAFREC* CREATES THE COMMUNICATIONS RECOVERY FILE, *CRF*, IF
  35. * IT DID NOT EXIST, USING PARAMETERS FROM THE *RECOVER*
  36. * DIRECTIVE. FOR EACH TERMINAL ON THE CORRESPONDING NETWORK
  37. * FILE, A RECOVERY UNIT IS INITIALIZED ON THE *CRF*.
  38. *
  39. * IF THE COMMUNICATIONS RECOVERY FILE EXISTED, *TAFREC*
  40. * DETERMINES TERMINALS ACTIVE AT FAILURE AND SETS RECOVERY
  41. * STATUS FOR THOSE TERMINALS.
  42. *
  43. * *TAFREC* REFORMATS THE COMMUNICATIONS RECOVERY FILE IF
  44. * PARAMETERS IN THE *TAF* CONFIGURATION FILE CHANGE. CHANGES
  45. * TO THE FOLLOWING MAY CAUSE A REFORMAT,
  46. * SIZE OF USER RECOVERY MESSAGES.
  47. * NUMBER OF RECOVERY MESSAGES.
  48. * TERMINALS ALLOWED TO USE TAF.
  49. *
  50. * *TAFREC* PREPARES A RECOVERY REPORT WHICH THE USER MAY PRINT
  51. * IF DESIRED. THIS REPORT CONSISTS OF,
  52. * CONTENTS OF *TAF* CONFIGURATION FILE.
  53. * INITIAL *K-DISPLAY*.
  54. * INFORMATION ABOUT TERMINALS AFFECTED BY RECOVERY.
  55. * ERRORS PREVENTING A CORRECT RECOVERY.
  56. *
  57. * *TAFREC* PREPARES THE TAF INITIALIZATION FILE WHICH CONTAINS
  58. * THE INFORMATION FOR *TAF* TO COMPLETE INITIALIZATION.
  59. *
  60. SPACE 4,10
  61. *** DAYFILE MESSAGES.
  62. *
  63. * IN THE FOLLOWING MESSAGES, *CRFNAME* IMPLIES THE APPROPRIATE
  64. * CRF FILE NAME, AND *NETNAME* IMPLIES THE APPROPRIATE NETWORK
  65. * FILE NAME.
  66. *
  67. *
  68. * ACTIVE RECOVERY UNITS(S) DELETED - CRFNAME.
  69. * CANNOT DEFINE REFORMATTED FILE - CRFNAME.
  70. * DB-NAME MUST NOT START WITH THE LETTER Z.
  71. * FILE TCF NOT FOUND.
  72. * FORMAT ERROR IN NETWORK FILE - NETNAME.
  73. * INCORRECT TCF ENTRIES.
  74. * K.COMMAND NOT VALID.
  75. * MAXIMUM TERMINALS EXCEEDED.
  76. * MS REDUCTION INCORRECT - CRFNAME.
  77. * NETWORK FILE NOT FOUND - NETNAME.
  78. * NM REDUCTION INCORRECT - CRFNAME.
  79. * NO TERMINALS IN NETWORK FILE - NETNAME.
  80. * NULL DESCRIPTION FILE.
  81. * NO DATA BASE NAME TERMINAL - TERMINAL.
  82. * COMMUNICATIONS RECOVERY FILE NOT FOUND - CRFNAME.
  83. * TCF FILE EMPTY.
  84. * CRF HEADER ERROR - CRFNAME.
  85. * CRF RUN UNIT ERROR - CRFNAME.
  86. * CRF RECOVERY/INITIALIZATION ABORTED.
  87. * CRF RECOVERY/INITIALIZATION COMPLETE.
  88. SPACE 4,10
  89. *** DEFINITION OF TERMS.
  90. *
  91. * TCF *TAF* CONFIGURATION FILE.
  92. * CRF COMMUNICATIONS RECOVERY FILE.
  93. * TIF *TAF* INITIALIZATION FILE.
  94. * TST TERMINAL STATUS TABLE.
  95. * RESTART RESTART AFTER *EXIT* AND *TAFXX2* PROCESSING.
  96. SPACE 4,10
  97. * COMMON DECKS.
  98.  
  99. *CALL COMSPFM
  100. *CALL COMSTRX
  101. *CALL COMCCMD
  102. *CALL COMCDCM
  103. *CALL COMCDCP
  104. *CALL COMCMAC
  105. *CALL COMKFLD
  106. LIST X
  107. *CALL COMKIPR
  108. *CALL COMKCBD
  109. *CALL COMKTIF
  110. *CALL COMKTRF
  111. *CALL COMKTST
  112. LIST -X
  113. TITLE CONSTANTS, FETS, BUFFERS AND MISCELLANEOUS.
  114. SPACE 4,10
  115. **** ASSEMBLY CONSTANTS.
  116.  
  117. RUDL EQU 4 RECOVERY UNIT DIRECTORY ENTRY LENGTH
  118. CST EQU 7 COMPLETE STATUS
  119. IST EQU 1 INITIALIZE STATUS
  120. RST EQU 0 RECOVER STATUS
  121. ****
  122. SPACE 4,10
  123. ORG VLOCL2
  124. SPACE 4,10
  125. * FETS.
  126.  
  127. CRF BSS 0 COMMUNICATIONS RECOVERY FILE
  128. ZZCRF RFILEB TRBUF,TRBUFL,EPR,FET=14
  129.  
  130. CRFA BSS 0 REFORMATTED COMMUNICATIONS RECOVERY FILE
  131. ZZCRFA RFILEB TABUF,TABUFL,EPR,FET=14
  132.  
  133. TIF BSS 0 *TAF* INITIALIZATION FILE
  134. "TIF" FILEB TBUF,TBUFL
  135.  
  136. R BSS 0 INITIALIZATION RECOVERY REPORT FILE
  137. ZZIRRF FILEB RBUF,RBUFL
  138. SPACE 4,10
  139. * GLOBAL VARIABLES AND TABLES.
  140.  
  141. ID CON 0 ID OF NETWORK FILE AND *CRF*
  142. NM CON 0 NUMBER OF USER MESSAGES
  143. MS CON 0 SIZE OF USER MESSAGES
  144.  
  145. * 3 WORD BUFFER FOR *SETPFP*.
  146. * 42/ FAMILY NAME, 14/ 0, 4/ FG.
  147. * 42/ PACK NAME, 18/ PACK TYPE
  148. * 42/ USER NAME, 18/ USER INDEX
  149. * FG - FLAG BITS DENOTING WHICH FIELDS TO SET
  150. * BIT 3 - FAMILY NAME
  151. * 2 - PACK NAME
  152. * 1 - USER NAME
  153. * 0 - USER INDEX
  154.  
  155. PFPA VFD 42/0,14/0,4/0
  156. VFD 42/0,18/0
  157. VFD 42/0,18/0
  158.  
  159. * *CPM* VALIDATION PARAMETER BLOCK.
  160.  
  161. FM CON 0 42/FAMILY NAME,18/0
  162. PW CON 1 DO NOT VALIDATE PASSWORD
  163. UN CON 0 42/USER NAME,18/USER INDEX
  164. BSSZ 6 REST OF PARAMETERS
  165.  
  166. KCOF CON 0 *K.COMMAND* ORIGIN FLAG
  167. KCNV DATA C* K.COMMAND NOT VALID.*
  168. MZDB DATA C* DB-NAME MUST NOT START WITH THE LETTER Z.*
  169.  
  170. DFFM BSS 1 DEFAULT FAMILY
  171. DFNM VFD 60/0L"TRDND" DEFAULT NUMBER USER MESSAGES
  172. DFMS VFD 60/0L"TRDMD" DEFAULT MESSAGE SIZE
  173. DATE BSS 1
  174. TIME BSS 1
  175. RFN VFD 60/0LZZCRF CRF FILE NAME
  176. RFNA VFD 60/0LZZCRFA REFORMATED CRF FILE NAME
  177.  
  178. ** TABLE OF FAMILY NAMES AND USER INDICES.
  179. *
  180. * THIS TABLE HAS TWO WORD ENTRIES IN THE FOLLOWING FORMAT.
  181. *
  182. *T W1 42/ FAMILY,18/
  183. *T, W2 42/ USER NAME, 18/ USER INDEX
  184.  
  185. TFAM BSSZ 2*MAXNF TABLE OF FAMILY NAMES AND USER INDICES
  186.  
  187. ** TABLE OF VALUES FROM *RECOVER* DIRECTIVE PLUS ADDITIONAL
  188. * VALUES AND STATUS. THE TABLE IS INDEXED BY *RECOVER* ID.
  189. *
  190. *T W1 12/ ,12/ PPM,12/ NM,12/ MS,9/ ,3/ ST
  191. *
  192. * WHERE
  193. * PPM = PRU-S PER USER MESSAGE. (NOT ON DIRECTIVE)
  194. * NM = NUMBER OF USER MESSAGES ON *CRF*.
  195. * MS = USER MESSAGE SIZE IN WORDS.
  196. * ST = STATUS. 0=RECOVER
  197. * 1=INITIALIZE
  198. * 7=COMPLETE
  199.  
  200. TREC BSSZ MAXRC TABLE OF *RECOVER* DIRECTIVE VALUES
  201.  
  202. * TABLE OF TRANSACTION TYPES.
  203.  
  204. TTYP BSS 0
  205. ORG TTYP+TYIT
  206. DATA 10H TERMINAL
  207. ORG TTYP+TYBT
  208. DATA 10H BTRAN
  209. ORG TTYP+TYRM
  210. DATA 10HBATCH/CRM
  211. TTYPL EQU *-TTYP
  212. ORG TTYP+TTYPL
  213.  
  214. * TABLE OF TRANSACTION STEPS.
  215.  
  216. TSTP BSS 0
  217. ORG TSTP+CSNR
  218. DATA 10HNON-RECOV
  219. ORG TSTP+CSCD
  220. DATA 10HCDCS DOWN
  221. ORG TSTP+CSCE
  222. DATA 10HCEASE/END
  223. ORG TSTP+CSTA
  224. DATA 10H ABORT
  225. ORG TSTP+CSTN
  226. DATA 10HRU ERROR
  227. ORG TSTP+CSTI
  228. DATA 10HRECOV INP
  229. ORG TSTP+CSBC
  230. DATA 10HID LOGGED
  231. ORG TSTP+CSND
  232. DATA 10HNAM DOWN
  233. ORG TSTP+CSST
  234. DATA 10HSTART JOB
  235. ORG TSTP+CSTT
  236. DATA 10H END TAF
  237. TSTPL EQU *-TSTP
  238. ORG TSTP+TSTPL
  239.  
  240. OVRD CON 0 ERROR OVERRIDE FLAG
  241. CUID CON -1 CURRENT ID BEING PROCESSED
  242. SDST CON 0 SHUTDOWN STATUS. -VE = ABNORMAL.
  243. CUFN CON 0 CURRENT *CRF* FILE NAME
  244. WPMO CON 0 WORDS PER USER MESSAGE ON OLD *CRF* (N*64)
  245. PPMO CON 0 PRU-S PER USER MESSAGE ON OLD *CRF*
  246. WPMN CON 0 WORDS PER USER MESSAGE ON NEW *CRF* (N*64)
  247. NUMO CON 0 NUMBER MESSAGES/RECOVERY UNIT ON OLD *CRF*
  248. ADMN CON 0 ADDITIONAL MESSAGES ON NEW *CRF*
  249. NMRU CON 0 NUMBER OF RECOVERY UNITS ON OLD *CRF*
  250. HTST CON 0 HIGHEST TST ADDRESS FOR CURRENT *CRF*
  251. LTST CON 0 LOWEST TST ADDRESS FOR *CRF*
  252.  
  253. * TABLE OF RECOVERED TRANSACTION TYPES.
  254.  
  255. TNRC BSS 0
  256. LOC 0
  257. CON 0 DUMMY ENTRY FOR UNUSED RECOVERY UNITS
  258. CON 0 NUMBER TERMINALS RECOVERED
  259. CON 0 NUMBER OF *BTRAN-S* RECOVERED
  260. CON 0 NUMBER CONCURRENT BATCH/*CRM* RECOVERED
  261. LOC *O
  262.  
  263. TINT CON 0 NUMBER NEW TERMINALS INTRODUCED
  264. TDEL CON 0 NUMBER EXISTING TERMINALS DELETED
  265. TERR CON 0 NUMBER OF RECOVERY UNIT ERRORS
  266. BLNK DATA 20H
  267. PMSG BSS 3 SCRATCH AREA FOR *PFM* ERROR MESSAGES
  268. DAYB BSSZ 5 BUFFER FOR DAYFILE MESSAGES
  269.  
  270. * HEADING FOR REPORT FILE.
  271.  
  272. HEAD DATA 1L1
  273. DATA 60H TAF INITIALIZATION AND RECOVERY REPORT
  274. , PAGE -
  275. HEAD1 BSS 1 PAGE NUMBER
  276. CON 0 END OF LINE
  277. DATA 1L BLANK LINE
  278. DATA 10H
  279. DATA 20HMODE = "PROD"
  280. .A IFEQ IPTAR,1
  281. DATA 20HRECOVERY ENABLED
  282. .A ELSE
  283. DATA 20HRECOVERY DISABLED
  284. .A ENDIF
  285. HEAD2 DATA 10H RESTART INDICATOR
  286. CON 0 END OF LINE
  287. DATA 1L TWO BLANK LINES
  288. DATA 1L
  289. HEADL EQU *-HEAD
  290.  
  291. * SUBHEADING FOR CRF REPORT.
  292.  
  293. RFSH DATA 10H
  294. DATA 20H INITIALIZING - ZZCR
  295. DATA 10HFI
  296. DATA 10HSHUTDOWN -
  297. DATA 10H NORMAL
  298. CON 0 END OF LINE
  299. DATA 1L BLANK LINE
  300. DATA C* TERMINAL TSEQ TYPE STEP DATE
  301. ,TIME COMMENT*
  302. DATA 1L
  303. RFSHL EQU *-RFSH
  304.  
  305. * SUBHEADING FOR SUMMARY.
  306.  
  307. SMSH DATA 30H
  308. DATA C*SUMMARY*
  309. DATA 1L BLANK LINE
  310. SMSHL EQU *-SMSH
  311.  
  312. * SUMMARY BUFFER.
  313.  
  314. SMBF DATA 10H
  315. SMB1 CON 0 NUMBER OF TERMINALS RECOVERED
  316. DATA C* TERMINALS RECOVERED.*
  317. DATA 10H
  318. SMB2 CON 0 NUMBER OF *BTRAN-S* RECOVERED
  319. DATA C* BATCH TRANSACTIONS RECOVERED.*
  320. DATA 10H
  321. SMB3 CON 0 NUMBER CONCURRENT BATCH *CRM* REQUESTS
  322. DATA C* CONCURRENT BATCH/CRM REQUESTS RECOVERED.*
  323. DATA 10H
  324. SMB4 CON 0 NUMBER OF RECOVERY UNITS INTRODUCED
  325. DATA C* USER NAMES ADDED.*
  326. DATA 10H
  327. SMB5 CON 0 NUMBER OF RECOVERY UNITS DELETED
  328. DATA C* RECOVERABLE RUN UNITS DELETED.*
  329. SMBFL EQU *-SMBF
  330.  
  331. SBHD BSS 3 SUBHEADING ADDRESS,WORD COUNT,LINE COUNT
  332. LCNT CON 60 REPORT FILE LINE COUNT
  333. PCNT CON 0 REPORT FILE PAGE COUNT
  334.  
  335. TAFREC EJECT
  336. * TAFREC MAINLINE.
  337.  
  338.  
  339. TAFREC RJ PRS PRESET TAFREC
  340. SX1 IPTAR
  341. ZR X1,TAF5 IF *TAF* AUTOMATIC RECOVERY ENABLED
  342. SX7 -1
  343. SA7 CUID INITIALIZE ID
  344. SX6 RFSH SET SUBHEADING ADDRESS AND LENGTH
  345. SX7 RFSHL
  346. SA6 SBHD
  347. SA7 A6+1
  348. SX6 4 LINE COUNT OF NEXT SUBHEADING
  349. SA6 SBHD+2
  350.  
  351. * INITIALIZE OR RECOVER ALL COMMUNICATIONS RECOVERY FILES.
  352.  
  353. TAF1 SX6 LINP FORCE NEW PAGE
  354. SA6 LCNT
  355. SA1 CUID
  356. SX6 X1+B1
  357. SX7 X6-MAXRC
  358. ZR X7,TAF4 IF ALL RECOVERY FILES PROCESSED
  359. SA6 A1
  360. SA1 TREC+X6
  361. ZR X1,TAF1 IF NO RECOVERY FILE WITH THIS ORDINAL
  362. MX0 -3
  363. BX2 -X0*X1 GET STATUS OF RECOVERY FILE
  364. SX3 X2-IST
  365. NZ X3,TAF2 IF NOT INITIALIZE
  366. RJ ITR INITIALIZE COMMUNICATIONS RECOVERY FILE
  367. EQ TAF3 INITIALIZE NETWORK FILE IDENTIFIER
  368.  
  369. * RECOVER COMMUNICATIONS RECOVERY FILE.
  370.  
  371. TAF2 RJ PTR PERFORM *CRF* RECOVERY
  372. TAF3 SA1 CUID
  373. BX6 X1
  374. LX6 TFIDS-TFIDN+1 INITIALIZE NETWORK FILE IDENTIFIER
  375. SX2 TTFTE
  376. IX2 X2*X1
  377. SA1 TSTHD+X2+TFTSW
  378. BX6 X6+X1
  379. SA6 A1
  380. EQ TAF1 PROCESS NEXT COMMUNICATIONS RECOVERY FILE
  381.  
  382. * WRITE RECOVERY REPORT SUMMARY.
  383.  
  384. TAF4 SX6 SMSH SUBHEADING ADDRESS
  385. SX7 SMSHL LENGTH
  386. SA6 SBHD
  387. SA7 A6+B1
  388. SX6 B1+B1 LINE COUNT
  389. SA6 A7+B1
  390. SX6 LINP FORCE NEW PAGE
  391. SA6 LCNT
  392. SA1 TNRC+B1 TERMINALS RECOVERED
  393. RJ CDD CONVERT TO DISPLAY
  394. SA6 SMB1
  395. SA1 A1+1 *BTRAN* JOBS RECOVERED
  396. RJ CDD
  397. SA6 SMB2
  398. SA1 A1+1 BATCH/*CRM* REQUESTS RECOVERED
  399. RJ CDD
  400. SA6 SMB3
  401. SA1 TINT RECOVERY UNITS INTRODUCED
  402. RJ CDD
  403. SA6 SMB4
  404. SA1 TDEL RECOVERY UNITS DELETED
  405. RJ CDD
  406. SA6 SMB5
  407. SB2 5
  408. RJ ALC ADVANCE LINE COUNT
  409. WRITEW R,SMBF,SMBFL WRITE SUMMARY
  410.  
  411. * FLUSH BUFFERS AND TERMINATE *TAFREC*.
  412.  
  413. TAF5 SA1 TSTLW
  414. WRITEW TIF,TSTLW,X1+1 WRITE TST TO TIF
  415. WRITER TIF,R FLUSH BUFFER
  416. REWIND TIF,R
  417. WRITER R,R FLUSH REPORT FILE BUFFER
  418. SA1 DFFM DEFAULT FAMILY
  419. SX0 13B *SETPFP* FLAGS
  420. SA2 USRC USER NAME / USER INDEX
  421. BX6 X0+X1
  422. BX7 X2
  423. SA6 PFPA SET UP *SETPFP* CALL BLOCK
  424. SA7 A6+2
  425. SETPFP PFPA SET PERMANENT FILE PARAMETERS
  426. MESSAGE TAFA,0,R COMPLETE MESSAGE
  427. ENDRUN END
  428.  
  429. TAFA DATA C* CRF RECOVERY/INITIALIZATION COMPLETE.*
  430. TITLE MISCELLANEOUS SUBROUTINES.
  431. ITR SPACE 4,20
  432. ** ITR - INITIALIZE COMMUNICATIONS RECOVERY FILE.
  433. *
  434. * PREALLOCATE AND INITIALIZE THE *CRF*. THE FILE IS WRITTEN
  435. * SEQUENTIALLY, THE *CRF* HEADER FIRST, FOLLOWED BY A RECOVERY
  436. * UNIT FOR EACH TERMINAL IN THE CORRESPONDING NETWORK FILE.
  437. *
  438. * ENTRY (CUID) = *CRF* ID.
  439. * (RFN) = RECOVERY FILE NAME.
  440. *
  441. * EXIT CRF INITIALIZED.
  442. *
  443. * USES X - 0, 1, 2, 3, 5, 6, 7.
  444. * A - 1, 2, 3, 6, 7.
  445. * B - 4, 5, 6.
  446. *
  447. * CALLS GHL, PRU, ZFB.
  448. *
  449. * MACROS REWIND, WRITER, WRITEW.
  450.  
  451.  
  452. ITR SUBR ENTRY/EXIT
  453. SA1 CUID GET ID
  454. SX2 1R0
  455. IX2 X1+X2 BINARY TO DISPLAY
  456. LX2 29-5
  457. SA3 RFN
  458. BX6 X3+X2 FORM FILE NAME - CRFI
  459. SA6 PBUF+TRFIW STORE FILE NAME IN HEADER
  460. SA1 ITRA SET UP SUBHEADING FOR REPORT
  461. BX7 X1
  462. SA7 RFSH+1
  463. SA1 A1+B1
  464. LX6 24
  465. MX0 -24
  466. BX2 -X0*X6
  467. BX7 X1+X2
  468. SA7 A7+B1
  469. BX7 X0*X6
  470. SA7 A7+B1
  471. LX6 36
  472. SA1 BLNK
  473. BX7 X1
  474. SA7 A7+2
  475. SA7 A7+B1
  476. SX2 B1
  477. BX6 X6+X2 COMPLETE BIT
  478. SA6 CRF STORE IN FET
  479. RJ GHL GET HIGHEST/LOWEST TST ENTRY ADDRESSES
  480. SA6 HTST SAVE HIGHEST ADDRESS
  481. SA7 A6+B1 SAVE LOWEST ADDRESS
  482. IX1 X6-X7
  483. SX1 X1+TSTLLE
  484. SX2 TSTLLE
  485. IX6 X1/X2 NUMBER TERMINALS
  486. SA1 CUID
  487.  
  488. * INITIALIZE *CRF* HEADER.
  489.  
  490. SA1 TREC+X1 FILE INFORMATION
  491. MX0 24
  492. LX0 36
  493. BX7 X0*X1 *NM* AND *MS*
  494. IX7 X7+X6 ADD NUMBER OF RECOVERY UNITS
  495. MX6 1
  496. BX7 X7+X6 ABNORMAL SHUTDOWN
  497. SA7 PBUF+TRNRW STORE FILE PARAMETERS
  498. SA1 DATE
  499. SA2 TIME
  500. BX6 X1
  501. BX7 X2
  502. SA6 A7+B1 STARTUP DATE
  503. SA7 A6+B1 STARTUP TIME
  504. SB5 A7+B1 FWA TO ZERO
  505. SB6 TRHWL-TRTDW NUMBER OF WORDS
  506. RJ ZFB ZERO FILL BUFFER
  507. SX7 TRBUF
  508. SA7 CRF+2 RESET BUFFER POINTERS
  509. SA7 A7+B1
  510. WRITEW CRF,PBUF,TRHWL WRITE HEADER
  511. ITR1 SA2 HTST HIGHEST TST ADDRESS
  512. SA1 A2+B1 NEXT TST ADDRESS
  513. IX2 X2-X1
  514. NG X2,ITR2 IF ALL DONE
  515. SX6 X1+TSTLLE
  516. SA6 A1
  517. SA1 X1+B1 TERMINAL NAME
  518. SX5 CRF FET ADDRESS
  519. SB4 CSNR STEP = NON RECOVERABLE TRANSACTION
  520. RJ PRU PREALLOCATE RECOVERY UNIT
  521. SA1 TINT
  522. SX6 X1+B1 INCREMENT INTRODUCED RECOVERY UNITS
  523. SA6 A1
  524. EQ ITR1 NEXT TERMINAL
  525.  
  526. ITR2 WRITER CRF,R FLUSH BUFFER
  527. WRITER CRF,R WRITE END OF RECORD MARK
  528. REWIND CRF,R
  529. SA1 CUID
  530. SA2 TREC+X1
  531. MX0 -3
  532. BX6 X0*X2
  533. SX0 CST
  534. BX6 X6+X0
  535. SA6 A2 SET FILE = COMPLETE
  536. EQ ITRX RETURN
  537.  
  538. ITRA DATA C* INITIALIZING - *
  539. CON 0
  540. PTR SPACE 4,25
  541. ** PTR - PERFORM *CRF* RECOVERY.
  542. *
  543. * RECOVER A *CRF* AND DETERMINE THE TERMINALS TO BE RECOVERED.
  544. * THE *CRF* MAY BE REFORMATTED BECAUSE OF -
  545. * AN INCREASE IN THE SIZE OF MESSAGE RECORDS.
  546. * AN INCREASE IN THE NUMBER OF MESSAGE RECORDS.
  547. * CHANGES IN TERMINALS ON NETWORK FILE.
  548. * RECOVERY UNIT ERROR AND ERROR OVERRIDE SET.
  549. * TERMINALS ACTIVE AT *TAF* SHUTDOWN WILL HAVE THE RECOVERY
  550. * FLAG SET IN THE TST.
  551. * INFORMATION ON RECOVERED TERMINALS WILL BE WRITTEN TO THE
  552. * REPORT FILE.
  553. *
  554. * ENTRY (CUID) = CURRENT ID.
  555. *
  556. * EXIT *CRF* RECOVERED/REFORMATTED.
  557. * RECOVERY FLAG SET IN THE TST FOR ACTIVE TERMINALS.
  558. * TO *ERR* IF REFORMATTED FILE CANNOT BE DEFINED.
  559. *
  560. * USES X - ALL.
  561. * A - ALL.
  562. * B - 2, 3, 4, 5, 6.
  563. *
  564. * CALLS ALC, BDR, CDD, FIO, FRL, GHL, PRU, RFH, RRU, SNM, STN,
  565. * ZFB.
  566. *
  567. * MACROS CHANGE, DEFINE, PURGE, RECALL, RENAME, REWIND, SETPFP,
  568. * WRITER, WRITEW.
  569.  
  570.  
  571. PTR SUBR ENTRY/EXIT
  572. SX6 B0+
  573. SA6 TERR CLEAR ERROR COUNT
  574. SA1 CUID
  575. SX2 1R0
  576. IX2 X2+X1 BINARY TO DISPLAY
  577. LX2 23-5
  578. SA3 RFNA *CRFA*
  579. BX6 X3+X2
  580. SA6 CRFA+CFPN PERMANENT FILE NAME
  581. SX4 3
  582. BX6 X6+X4 ADD BINARY/COMPLETE BITS
  583. SA6 CRFA
  584. LX2 6
  585. SA3 RFN *CRF*
  586. BX6 X3+X2 FORM FILE NAME - *CRFI*
  587. SA6 CUFN SAVE CURRENT *CRF* FILE NAME
  588. SA6 CRF+CFPN PERMANENT FILE NAME
  589. SA6 CRFA+CFNF
  590. BX6 X6+X4 ADD COMPLETE/BINARY BITS
  591. SA6 CRF
  592. RJ GHL GET HIGHEST/LOWEST TST ADDRESSES
  593. SA6 HTST SAVE HIGHEST
  594. SA7 LTST SAVE LOWEST
  595. RJ RFH READ *CRF* HEADER
  596. SA1 SDST SET UP SUBHEADING FOR REPORT
  597. LX1 0-TRRSS
  598. MX0 -TRRSN
  599. BX1 -X0*X1
  600. SA1 PTRG+X1 SHUTDOWN STATUS
  601. SA2 PTRH
  602. BX6 X1
  603. BX7 X2
  604. SA7 RFSH+4
  605. SA6 A7+B1
  606. RJ BDR BUILD DIRECTORY OF RECOVERY UNITS
  607. SA6 PTRB SAVE REFORMAT FLAG
  608. SA3 HTST
  609. SA4 LTST
  610. IX1 X3-X4
  611. SX2 TSTLLE
  612. IX1 X1+X2
  613. IX2 X1/X2 NUMBER OF RECOVERY UNITS
  614. SB5 PBUF
  615. SB6 TRHWL
  616. RJ ZFB ZERO FILL BUFFER
  617.  
  618. * UPDATE *CRF* HEADER. SET ABNORMAL SHUTDOWN, DATE, TIME.
  619. * NUMBER OF USER MESSAGES AND SIZE OF USER MESSAGES.
  620.  
  621. SA1 CUID
  622. SA1 TREC+X1 FILE INFORMATION
  623. MX0 24
  624. LX0 36
  625. BX7 X0*X1 *NM* AND *MS*
  626. BX7 X7+X2 ADD NUMBER OF RECOVERY UNITS
  627. MX6 1
  628. BX7 X7+X6 ABNORMAL SHUTDOWN
  629. SA7 PBUF+TRNRW
  630. SA1 DATE
  631. SA2 TIME
  632. BX6 X1
  633. BX7 X2
  634. SA6 PBUF+TRSDW STARTUP DATE
  635. SA7 PBUF+TRSTW STARTUP TIME
  636. SA1 CUFN
  637. BX6 X1
  638. SA6 PBUF+TRFIW TRF FILE NAME
  639. SA1 PTRB
  640. ZR X1,PTR6 IF REFORMAT NOT NECESSARY
  641.  
  642. * REFORMAT *CRF* ONTO ALTERNATE FILE.
  643.  
  644. SA5 CUID ID
  645. LX5 1 OFFSET INTO *TFAM*
  646. SA1 TFAM+X5 GET FAMILY
  647. SX0 13B *SETPFP* FLAGS
  648. BX7 X0+X1
  649. SA7 PFPA SET UP *SETPFP* CALL BLOCK
  650. SA5 TFAM+X5+1
  651. BX7 X5
  652. SA7 PFPA+2
  653. SETPFP PFPA SET PERMANENT FILE PARAMETERS
  654. DEFINE CRFA DEFINE REFORMATTED *CRF*
  655. SA1 CRFA CHECK FOR ERRORS
  656. MX2 8
  657. LX1 59-17
  658. BX2 X2*X1
  659. ZR X2,PTR1 IF NO ERROR
  660. MX2 42
  661. LX1 17-59
  662. BX1 X2*X1
  663. SB2 1RX
  664. SB5 PTRC * CANNOT DEFINE REFORMATTED FILE.*
  665. RJ SNM SET NAME IN MESSAGE
  666. SX1 PTRC
  667. EQ ERR PROCESS ERROR
  668.  
  669. * REFORMAT RECOVERY FILE HEADER ONTO *CRFAI*.
  670.  
  671. PTR1 WRITEW CRFA,PBUF,TRHWL WRITE HEADER
  672. SA1 CUFN COMPLETE SUBHEADING FOR REPORT
  673. SA2 PTRF
  674. SA3 A2+B1
  675. BX6 X2
  676. SA6 RFSH+1
  677. LX1 24
  678. MX0 -24
  679. BX6 -X0*X1
  680. BX6 X6+X3
  681. SA6 A6+B1
  682. SA2 PTRJ
  683. BX7 X0*X1
  684. BX7 X2+X7
  685. SA7 A6+1
  686.  
  687. * REFORMAT RECOVERY UNITS.
  688.  
  689. PTR2 SA2 HTST HIGHEST TST ADDRESS
  690. SA1 LTST NEXT TST ADDRESS
  691. IX2 X2-X1
  692. NG X2,PTR5 IF ALL DONE
  693. SX6 X1+TSTLLE
  694. SA6 A1
  695. MX0 TSTNN
  696. SA1 X1+TSTNW TERMINAL NAME
  697. SB3 DIR FWA OF TABLE
  698. BX1 X0*X1 EXTRACT TERMINAL NAME
  699. SB4 RUDL LENGTH OF ENTRY
  700. SX2 B4
  701. SA3 NMRU
  702. IX3 X3*X2
  703. SB5 X3+B3 LWA+1 OF DIRECTORY
  704. RJ STN SEARCH DIRECTORY OF RECOVERY UNITS
  705. ZR X5,PTR3 IF NEW TERMINAL
  706. SA2 X5+B1
  707. LX2 59-58
  708. SB4 CSTN STEP = I/O ERROR ON RECOVERY UNIT
  709. NG X2,PTR4 IF RECOVERY UNIT ERROR
  710. RJ RRU REFORMAT RECOVERY UNIT
  711. EQ PTR2 NEXT TST ENTRY
  712.  
  713. * INITIALIZE NEW RECOVERY UNITS ADDED TO NETWORK FILE.
  714.  
  715. PTR3 SB4 CSNR STEP = NON RECOVERABLE TRANSACTION
  716. SA2 TINT
  717. SX6 X2+B1 INCREMENT INTRODUCED RECOVERY UNITS
  718. SA6 A2
  719.  
  720. * INITIALIZE RECOVERY UNITS WHICH HAD I/O ERRORS.
  721.  
  722. PTR4 SX5 CRFA FET ADDRESS
  723. RJ PRU INITIALIZE RECOVERY UNIT
  724. EQ PTR2 NEXT TST ENTRY
  725.  
  726. * THE RECOVERY FILE *CRFI* HAS BEEN REFORMATTED ONTO FILE
  727. * *CRFAI*. CHANGE BOTH PERMANENT AND LOCAL FILE NAMES
  728. * FROM *CRFAI* TO *CRFI*.
  729.  
  730.  
  731. PTR5 WRITER CRFA,R FLUSH BUFFER
  732. WRITER CRFA,R WRITE END OF RECORD MARK
  733. REWIND CRFA,R
  734. PURGE CRF PURGE OLD *CRF*
  735. CHANGE CRFA CHANGE NAME FROM *CRFAI* TO *CRFI*
  736. RENAME CRFA,CUFN CHANGE LOCAL FILE NAME ALSO
  737.  
  738. * REPORT RECOVERY UNIT ERRORS.
  739.  
  740. SA1 TERR
  741. ZR X1,PTRX IF NO RECOVERY UNIT ERRORS
  742. RJ CDD CONVERT TO DISPLAY
  743. SA6 PTRI+1
  744. SB2 B1+B1
  745. RJ ALC ADVANCE LINE COUNT
  746. WRITEW R,PTRI,PTRIL REPORT NUMBER OF RECOVERY UNIT ERRORS
  747. REWIND CRFA,R
  748. EQ PTRX RETURN
  749.  
  750. * REWRITE THE *CRF* HEADER.
  751.  
  752. PTR6 SX7 TRBUF RESET BUFFER POINTERS
  753. SA7 CRF+2
  754. SA7 A7+B1
  755. WRITEW CRF,PBUF,TRHWL WRITE *CRF* HEADER
  756. SX1 CIORW
  757. SX2 B1 ONE PRU TO WRITE
  758. SX5 CRF
  759. SX6 1 PRU ADDRESS
  760. RJ FIO REWRITE HEADER
  761. SA1 CUFN COMPLETE SUBHEADING FOR REPORT
  762. SA2 PTRE
  763. SA3 A2+B1
  764. BX6 X2
  765. SA6 RFSH+1
  766. LX1 24
  767. MX0 -24
  768. BX6 -X0*X1
  769. BX6 X6+X3
  770. SA6 A6+B1
  771. SA2 PTRJ
  772. BX7 X0*X1
  773. BX7 X2+X7
  774. SA7 A6+B1
  775. SX5 DIR-RUDL
  776. SA0 B0 COMMENT=RECOVERED
  777.  
  778. * REPORT RECOVERY UNITS RECOVERED.
  779.  
  780. PTR7 SX5 X5+RUDL NEXT DIRECTORY ADDRESS
  781. RJ FRL FORMAT REPORT LINE
  782. SA1 NMRU
  783. SX6 X1-1 DECREMENT NUMBER OF RECOVERY UNITS
  784. SA6 A1
  785. NZ X6,PTR7 IF MORE RECOVERY UNITS TO REPORT
  786. RECALL CRF WAIT *CRF* I/O TO COMPLETE
  787. REWIND CRF,R
  788. EQ PTRX RETURN
  789.  
  790. PTRB CON 0 REFORMAT FLAG
  791. PTRC DATA C* CANNOT DEFINE REFORMATTED FILE - XXXXXXX.*
  792. PTRE DATA C* RECOVERING - *
  793. PTRF DATA C* REFORMATTING - *
  794. PTRG DATA 10H NORMAL
  795. DATA 10H ABNORMAL
  796. PTRH DATA 10HSHUTDOWN -
  797. PTRI DATA 1L BLANK LINE
  798. DATA C* 0 RECOVERY UNIT ERRORS ENCOUNTERED.*
  799. PTRIL EQU *-PTRI
  800. PTRJ VFD 12/0,48/8H
  801. RRU SPACE 4,25
  802. ** RRU - REFORMAT RECOVERY UNIT.
  803. *
  804. * COPY A RECOVERY UNIT FROM *CRFI* TO *CRFAI*. IN THE
  805. * PROCESS IT MAY INCREASE THE SIZE OF THE MESSAGE RECORDS OR
  806. * THE NUMBER OF MESSAGES. INFORMATION ON THE RECOVERY UNIT IS
  807. * WRITTEN TO THE REPORT FILE.
  808. *
  809. * ENTRY (X1) = TERMINAL NAME.
  810. * (X5) = DIRECTORY ENTRY ADDRESS.
  811. * (NUMO) = NUMBER OF MESSAGES ON OLD *CRF*.
  812. * (ADMN) = ADDITIONAL MESSAGES ON NEW *CRF*.
  813. *
  814. * EXIT RECOVERY UNIT COPIED/REFORMATTED.
  815. *
  816. * USES X - 0, 1, 2, 3, 5, 6, 7.
  817. * A - 0, 1, 2, 3, 5, 6, 7.
  818. * B - 5, 6
  819. *
  820. * CALLS FIO, FRL, ZFB.
  821. *
  822. * MACROS MESSAGE, RECALL, READW, WRITEW.
  823.  
  824.  
  825. RRU SUBR ENTRY/EXIT
  826. SA2 NUMO NUMBER MESSAGES ON OLD *CRF*.
  827. SA3 ADMN ADDITIONAL MESSAGES ON NEW *CRF*.
  828. SX6 X2+B1 INCLUDE *SECURE* MESSAGE
  829. BX7 X3
  830. SA6 RRUA
  831. SA7 A6+B1
  832. BX6 X1
  833. SA6 RRUC+2
  834. MESSAGE RRUC,B1 *B-DISPLAY* MESSAGE
  835. SA0 B0 COMMENT=RECOVERED
  836. RJ FRL FORMAT REPORT LINE
  837.  
  838. * COPY RECOVERY UNIT HEADER AND TRANSACTION INPUT.
  839.  
  840. MX0 -30
  841. SA1 X5+1
  842. BX6 -X0*X1 PRU ADDRESS OF RECOVERY UNIT
  843. SX5 CRF FET ADDRESS
  844. SX1 CIORD READ
  845. SX2 TRUPL+MRIPL PRU-S TO READ
  846. RJ FIO READ RECOVERY UNIT HEADER
  847. RECALL X5 WAIT I/O
  848. SX7 TRBUF
  849. SA7 X5+3 SET OUT=FIRST
  850. READW CRF,PBUF,TRUWL+MRIWL
  851. WRITEW CRFA,PBUF,TRUWL+MRIWL
  852. SA5 WPMO MESSGAE SIZE ON OLD *CRF*
  853.  
  854. * COPY *SECURE* AND *RPUT* MESSAGES.
  855.  
  856. RRU1 RECALL CRF
  857. READW CRF,PBUF,X5 COPY MESSAGE RECORD
  858. WRITEW CRFA,PBUF,X5
  859. SA1 WPMN MESSAGE SIZE ON NEW *CRF*
  860. IX1 X1-X5
  861. ZR X1,RRU2 IF MESSAGE RECORD SIZE NOT INCREASED
  862. SB5 PBUF
  863. SB6 X1
  864. RJ ZFB ZERO FILL BUFFER
  865. WRITEW CRFA,PBUF,X1 INCREASE MESSAGE SIZE
  866. RRU2 SA1 RRUA
  867. SX6 X1-1
  868. SA6 A1
  869. NZ X6,RRU1 IF MORE MESSAGES TO GO
  870. SA1 RRUB
  871. ZR X1,RRUX IF NO ADDITIONAL MESSAGE RECORDS
  872. SA5 WPMN SIZE OF MESSAGE ON NEW *CRF*
  873. SB5 PBUF
  874. SB6 X5
  875. RJ ZFB ZERO FILL BUFFER
  876. RRU3 WRITEW CRFA,PBUF,X5 WRITE ADDITIONAL MESSAGE RECORDS
  877. SA1 RRUB
  878. SX6 X1-1
  879. SA6 A1
  880. NZ X6,RRU3 IF MORE MESSAGES TO ADD
  881. EQ RRUX RETURN
  882.  
  883. RRUA CON 0 NUMBER MESSAGES ON OLD *CRF*
  884. RRUB CON 0 ADDITIONAL MESSAGES ON NEW *CRF*
  885. RRUC DATA 30H REFORMATTING - XXXXXXX.
  886. PRU SPACE 4,20
  887. ** PRU - PREALLOCATE RECOVERY UNIT.
  888. *
  889. * INITIALIZE A RECOVERY UNIT ON THE *CRF*. THE RECOVERY
  890. * UNIT NUMBER IS WRITTEN, FOLLOWED BY ZERO-FILLED, MESSAGE
  891. * RECORDS.
  892. *
  893. * ENTRY (X1) = TERMINAL NAME.
  894. * (X5) = FET ADDRESS.
  895. * (B4) = TRANSACTION STEP.
  896. * (CUID) = CURRENT ID.
  897. *
  898. * EXIT RECOVERY UNIT WRITTEN.
  899. *
  900. * USES X - 0, 1, 2, 3, 5, 6, 7.
  901. * A - 0, 1, 6, 7.
  902. * B - 5, 6.
  903. *
  904. * CALLS FRL, ZFB.
  905. *
  906. * MACROS MESSAGE, WRITEW.
  907.  
  908.  
  909. PRU SUBR ENTRY/EXIT
  910. SB5 PBUF
  911. SB6 PBUFL
  912. RJ ZFB ZERO FILL BUFFER
  913. BX6 X1
  914. SA6 PBUF+TRUNW STORE TERMINAL NAME
  915. SX7 B4
  916. SA7 PBUF+TRCSW STORE STEP
  917. SA6 PRUA+2
  918. SA6 PRUB STORE IN DUMMY DIRECTORY ENTRY
  919. MESSAGE PRUA,B1 *B-DISPLAY* MESSAGE
  920. WRITEW X5,PBUF,TRUWL WRITE RECOVERY UNIT HEADER
  921. BX6 X6-X6
  922. SA6 PBUF
  923. SA6 A6+B1
  924. SA1 CUID
  925. SA1 TREC+X1
  926. MX0 -12
  927. LX1 24
  928. BX2 -X0*X1 PRU-S IN USER MESSAGE RECORD
  929. LX1 12
  930. BX3 -X0*X1 NUMBER OF USER MESSAGE RECORDS
  931. SX3 X3+B1 INCLUDE SECURE MESSAGE
  932. IX0 X3*X2 PRU-S OF MESSAGE RECORDS
  933. SX0 X0+MRIPL INCLUDE INITIAL INPUT MESSAGE
  934. PRU1 WRITEW X5,PBUF,64
  935. SX0 X0-1
  936. NZ X0,PRU1 IF MORE TO WRITE
  937. SA0 2 COMMENT=INITIALIZED
  938. SX5 PRUB DIRECTORY ENTRY ADDRESS
  939. RJ FRL FORMAT REPORT LINE
  940. EQ PRUX RETURN
  941.  
  942. PRUA DATA 30H INITIALIZING - XXXXXXX.
  943. PRUB BSSZ RUDL DUMMY DIRECTORY ENTRY
  944. RFH SPACE 4,20
  945. ** RFH - READ FILE HEADER.
  946. *
  947. * READ THE *CRF* HEADER RECORD AND CHECK FOR ANY ERRORS
  948. * WHICH WOULD PREVENT CORRECT AND CONSISTENT RECOVERY.
  949. *
  950. * ENTRY *CRF* FET SET UP.
  951. *
  952. * EXIT HEADER VALIDATED. TAF CHARACTERISTICS STORED.
  953. *
  954. * ERROR TO *ERR* IF I/O OR LOGICAL ERROR IN HEADER OR IF
  955. * NUMBER OF MESSAGES OR MESSAGE SIZE DECREASED.
  956. * (B5) = FWA OF ERROR MESSAGE.
  957. *
  958. * USES X - ALL.
  959. * A - 1, 2, 3, 4, 6, 7.
  960. * B - 2, 5.
  961. *
  962. * CALLS CES, FIO, SNM.
  963. *
  964. * MACROS RECALL.
  965.  
  966.  
  967. RFH SUBR ENTRY/EXIT
  968.  
  969. * READ *CRF* HEADER.
  970.  
  971. SX5 CRF FET ADDRESS
  972. SX1 CIORD READ
  973. SX2 B1 ONE PRU TO READ
  974. SX6 B1 PRU ADDRESS
  975. RJ FIO INITIATE READ
  976. RECALL X5 WAIT *CRF* I/O TO COMPLETE
  977. RJ CES CHECK ERROR STATUS
  978. SB5 RFHC
  979. NZ X1,RFH1 IF I/O ERROR
  980.  
  981. * IF INCORRECT *CRF* HEADER, PRINT ERROR MESSAGE ON
  982. * RECOVERY REPORT AND ABORT *TAFREC*.
  983.  
  984. SA2 TRBUF+TRFIW FILE NAME FOR HEADER
  985. SA1 CUFN FILE NAME FROM RECOVER DIRECTIVE
  986. BX3 X2-X1
  987. NZ X3,RFH1 IF NOT SAME
  988. SA2 TRBUF+TRRSW SAVE SHUTDOWN STATUS
  989. BX6 X2
  990. SA6 SDST
  991. SA3 CUID
  992.  
  993. * IF *RECOVER* DIRECTIVE HAS REDUCED NUMBER OF MESSAGES
  994. * OR MESSAGE SIZE, PRINT ERROR ON RECOVERY REPORT AND
  995. * ABORT *TAFREC*.
  996.  
  997. SA4 TREC+X3
  998. MX0 TRNWN
  999. LX0 TRNWS-59
  1000. BX5 X0*X2 *MS* FROM *CRF*
  1001. BX1 X0*X4 *MS* FROM RECOVER DIRECTIVE
  1002. IX7 X1-X5
  1003. SB5 RFHA
  1004. NG X7,RFH1 IF *MS* HAS BEEN DECREASED
  1005. LX5 TRNWN-TRNWS-1
  1006. LX1 TRNWN-TRNWS-1
  1007. SX7 X5-MAXMS-1
  1008. SB5 RFHC
  1009. PL X7,RFH1 IF LOGICAL ERROR
  1010. SX6 X5+TRMWL+77B
  1011. AX6 6 MESSAGE LENGTH IN PRU-S
  1012. SA6 PPMO
  1013. LX6 6 MESSAGE LENGTH IN WORDS ROUNDED TO N*64
  1014. SA6 WPMO
  1015. SX6 X1+TRMWL+77B
  1016. AX6 6
  1017. LX6 6 SAME FOR NEW *CRF*
  1018. SA6 WPMN
  1019. LX0 TRNMS-59+59-TRNWS
  1020. BX5 X0*X2 *NM* FROM *CRF*
  1021. BX6 X0*X4 *NM* FROM *RECOVER* DIRECTIVE
  1022. LX5 TRNMN-TRNMS-1
  1023. LX6 TRNMN-TRNMS-1
  1024. SX7 X5-TRMM-1
  1025. PL X7,RFH1 IF LOGICAL ERROR
  1026. IX7 X6-X5
  1027. SA7 ADMN ADDITIONAL MESSAGES ON NEW *CRF*
  1028. BX6 X5
  1029. SA6 NUMO NUMBER OF MESSAGES ON OLD *CRF*
  1030. SB5 RFHB
  1031. NG X7,RFH1 IF *NM* REDUCED
  1032. LX0 -24
  1033. BX6 X0*X2 NUMBER OF RECOVERY UNITS
  1034. SA6 NMRU
  1035. EQ RFHX RETURN
  1036.  
  1037. * *CRF* HEADER ERROR OR *RECOVER* DIRECTIVE INCORRECT.
  1038.  
  1039. RFH1 SB2 1RX
  1040. SA1 CUFN
  1041. RJ SNM SET NAME IN MESSAGE
  1042. EQ ERR ERROR
  1043.  
  1044. RFHA DATA C* MS REDUCTION INCORRECT - XXXXXXX.*
  1045. RFHB DATA C* NM REDUCTION INCORRECT - XXXXXXX.*
  1046. RFHC DATA C* CRF HEADER ERROR - XXXXXXX.*
  1047. BDR SPACE 4,50
  1048. ** BDR - BUILD DIRECTORY OF RECOVERY UNITS.
  1049. *
  1050. * READ THE *CRF* AND CREATE A SORTED DIRECTORY OF
  1051. * RECOVERY UNITS. THE AUTOMATIC RECOVERY BIT IS SET IN THE
  1052. * TST FOR EACH ACTIVE RECOVERY UNIT, IF TAF WAS
  1053. * SHUT DOWN ABNORMALLY.
  1054. *
  1055. * DIRECTORY ENTRY FORMAT.
  1056. *
  1057. *T W1 42/TERMINAL,6/ TY,12/ STEP
  1058. *T, W2 1/ I,1/ E,1/ D,1/ C,2/ ,24/ TSEQ,30/ DA
  1059. *T, W3 60/ DATE
  1060. *T, W4 60/ TIME
  1061. *
  1062. * WORD 1.
  1063. * TERMINAL = TERMINAL NAME.
  1064. * TY = TRANSACTION TYPE.
  1065. * STEP = TRANSACTION STEP.
  1066. *
  1067. * WORD 2.
  1068. * I = TERMINAL INACTIVE FLAG.
  1069. * E = ERROR IN RECOVERY UNIT.
  1070. * D = *CDCS* MAY BE USED BY THE TRANSACTION.
  1071. * C = *CRM* MAY BE USED BY THE TRANSACTION.
  1072. * TSEQ = TRANSACTION SEQUENCE NUMBER.
  1073. * DA = RANDOM PRU ADDRESS OF RECOVERY UNIT.
  1074. *
  1075. * WORD 3.
  1076. * DATE = DATE OF LAST RECORDED TRANSACTION.
  1077. *
  1078. * WORD 4.
  1079. * TIME = TIME OF LAST RECORDED TRANSACTION.
  1080. *
  1081. *
  1082. * ENTRY (NMRU) = NUMBER OF RECOVERY UNITS ON OLD *CRF*.
  1083. * (NUMO) = NUMBER OF USER MESSAGES ON OLD *CRF*.
  1084. * (WPMO) = WORDS PER USER MESSAGE ON OLD *CRF*.
  1085. *
  1086. * EXIT (X6) = 0 IF REFORMAT NOT NECESSARY.
  1087. * (B5) = FWA OF ERROR MESSAGE IF ERROR.
  1088. * DIRECTORY BUILT.
  1089. * TO *ERR* IF I/O OR LOGICAL ERROR OR
  1090. * IF ACTIVE RECOVERY UNIT DELETED FROM NETWORK FILE.
  1091. *
  1092. * USES X - ALL.
  1093. * A - ALL.
  1094. * B - 2, 3, 4, 5.
  1095. *
  1096. * CALLS CES, FIO, RMR, SDR, SNM.
  1097. *
  1098. * MACROS MESSAGE, RECALL.
  1099.  
  1100.  
  1101. BDR SUBR ENTRY/EXIT
  1102. SA1 NMRU
  1103. SA0 X1 NUMBER OF RECOVERY UNITS
  1104. BX6 X6-X6 CLEAR ERROR FLAG
  1105. SA6 BDRE
  1106.  
  1107. * COMPUTE PRU-S IN RECOVERY UNIT TO READ.
  1108.  
  1109. SA3 NUMO NUMBER MESSAGES ON OLD *CRF*
  1110. SA5 WPMO WORDS PER MESSAGE ON OLD *CRF*
  1111. BX6 X5
  1112. AX6 6 PRU-S PER MESSAGE
  1113. SX3 X3+B1 INCLUDE *SECURE* MESSAGE
  1114. IX6 X6*X3
  1115. SX6 X6+B1 INCLUDE RECOVERY UNIT HEADER
  1116. SX6 X6+MRIPL INCLUDE INITIAL INPUT
  1117. SA6 BDRA PRU-S PER RECOVERY UNIT
  1118. IX7 X3*X5 WORDS IN ALL MESSAGES
  1119. SX7 X7+MRIWL INCLUDE INITIAL INPUT
  1120. SA7 A6+B1
  1121. SX7 DIR START OF DIRECTORY
  1122. SA7 BDRD
  1123. SX5 CRF
  1124. SX6 2
  1125. SA6 BDRC INITIALIZE DISK ADDRESS
  1126.  
  1127. * READ RECOVERY UNITS. RECOVERY UNITS BEGIN AT PRU 2.
  1128.  
  1129. BDR1 SX2 B1+ ONE PRU TO READ
  1130. SX1 CIORD
  1131. RJ FIO READ RECOVERY UNIT HEADER
  1132. RECALL X5 WAIT I/O
  1133. RJ CES
  1134. ZR X1,BDR4 IF NO I/O ERROR
  1135.  
  1136. * AN I/O ERROR OR BAD DATA HAS BEEN DETECTED ON THE *CRF*.
  1137. * IF ERROR OVERRIDE HAS NOT BEEN SET, REPORT ERROR AND
  1138. * ABORT *TAFREC*.
  1139.  
  1140. BDR2 SA1 OVRD
  1141. SA2 TERR
  1142. SX6 X2+B1 INCREMENT ERROR COUNT
  1143. SA6 A2
  1144. SA6 BDRE INDICATE REFORMAT NECESSARY
  1145. NZ X1,BDR11 IF ERROR OVERIDE SET
  1146. BDR3 SB2 1RX *CRF* RECOVERY UNIT ERROR
  1147. SB5 BDRG
  1148. SA1 CUFN CURRENT FILE NAME
  1149. RJ SNM
  1150. EQ ERR PROCESS ERROR
  1151.  
  1152. BDR4 SA2 TRBUF+TRUNW RECOVERY UNIT NAME
  1153. BX6 X2
  1154. SA6 BDRH+2
  1155. SA1 HTST HIGHEST TST ORDINAL
  1156. SA3 LTST LOWEST TST ORDINAL
  1157. SB2 X1
  1158. SB3 X3
  1159. MX0 TSTNN
  1160. BDR5 SA3 B3+B1 SEARCH TST FOR TERMINAL NAME
  1161. BX6 X0*X3
  1162. BX6 X6-X2
  1163. ZR X6,BDR6 IF FOUND
  1164. SB3 B3+TSTLLE
  1165. SB4 B2-B3
  1166. GE B4,BDR5 IF NOT END OF TST
  1167.  
  1168. * A TERMINAL HAS BEEN DELETED FROM THE NETWORK FILE.
  1169. * IF TERMINAL LAST RAN A NON RECOVERABLE TRANSACTION, DELETE
  1170. * RECOVERY UNIT. OTHERWISE REPORT ERROR.
  1171.  
  1172. SA2 TRBUF+TRCSW STEP WORD
  1173. MX0 -TRCSN
  1174. BX4 -X0*X2
  1175. SX6 B1 SET REFORMAT FLAG
  1176. SA6 BDRE
  1177. SA1 NMRU
  1178. SX6 X1-1 DECREMENT NUMBER OF RECOVERY UNITS
  1179. SA6 A1
  1180. SA1 TDEL
  1181. SX6 X1+B1 INCREMENT COUNT OF DELETED RECOVERY UNITS
  1182. SA6 A1+
  1183. ZR X4,BDR11 IF NON RECOVERABLE TRANSACTION
  1184. SB2 1RX ERROR - ACTIVE RECOVERY UNIT(S) DELETED.
  1185. SB5 -BDRF
  1186. SB3 BDRI
  1187. SA1 BDRH+2 RECOVERY UNIT NAME
  1188. RJ SNM SET NAME IN MESSAGE
  1189. MESSAGE BDRI,0,R
  1190. WRITEW R,BDRI,5 * ACTIVE RECOVERY UNIT(S) DELETED.*
  1191. EQ BDR11 CONTINUE PROCESSING NEXT UNIT
  1192.  
  1193. * RECOVER TERMINAL. INDICATE RECOVERY PROCESSING NEEDED
  1194. * FOR TERMINAL IN TST.
  1195.  
  1196. BDR6 MESSAGE BDRH,B1 *B-DISPLAY* MESSAGE
  1197. SA2 TRBUF+TRCSW STEP WORD
  1198. MX0 -TRCSN
  1199. BX2 -X0*X2
  1200. SB5 X2-CSCD
  1201. ZR B5,BDR7 IF *CDCS* DOWN
  1202. SB5 X2-CSTI
  1203. ZR B5,BDR7 IF RECOVERABLE TRANSACTION/JOB INPUT
  1204. SB5 X2-CSBC
  1205. ZR B5,BDR7 IF BEGIN/COMMIT ID-S LOGGED
  1206. SB5 X2-CSND
  1207. ZR B5,BDR7 IF NAM DOWN
  1208. EQ BDR8 RECOVERY BIT NOT SET
  1209.  
  1210. * SET AUTOMATIC RECOVERY BIT.
  1211.  
  1212. BDR7 SA3 A3-TSTNW+TSARW
  1213. MX6 TSARN
  1214. LX6 TSARS-59
  1215. BX6 X3+X6 SET AUTO RECOVERY BIT
  1216. SA6 A3
  1217.  
  1218. * BUILD DIRECTORY ENTRY.
  1219.  
  1220. BDR8 SA1 BDRD
  1221. SA2 BDRH+2 TERMINAL NAME
  1222. BX6 X2
  1223. SA2 TRBUF+TRCNW
  1224. MX0 -TRCNN
  1225. BX7 -X0*X2 TRANSACTION SEQUENCE NUMBER
  1226. LX7 30
  1227. SA2 BDRC DISK ADDRESS
  1228. BX7 X7+X2
  1229. SA3 TRBUF+TRCSW
  1230. MX0 -TRCSN
  1231. BX4 -X0*X3 CURRENT TRANSACTION STEP
  1232. SX0 X4-TSTPL
  1233. PL X0,BDR2 IF TRANSACTION STEP NOT IN TABLE
  1234. NZ X4,BDR9 IF NOT NONRECOVERABLE TRANSACTION
  1235. MX2 1
  1236. BX7 X7+X2 ADD INACTIVE FLAG
  1237. BDR9 BX6 X6+X4 ADD STEP TO DIRECTORY
  1238. LX3 TRTYN-TRTYS-1
  1239. MX0 -TRTYN
  1240. BX4 -X0*X3
  1241. SA3 TNRC+X4
  1242. SX0 X4-TTYPL-1
  1243. PL X0,BDR2 IF TRANSACTION TYPE NOT IN TABLE
  1244. LX4 17-5
  1245. BX6 X6+X4 ADD TYPE TO DIRECTORY
  1246. SA6 X1
  1247. SA7 A6+B1
  1248. SX6 X3+B1 INCREMENT COUNT OF RECOVERED TYPES
  1249. SA6 A3
  1250. SA3 TRBUF+TRCDW DATE
  1251. SA4 TRBUF+TRCTW TIME
  1252. BX6 X3
  1253. BX7 X4
  1254. SA6 A7+B1
  1255. SA7 A6+B1
  1256.  
  1257. * READ ALL MESSAGES FOR RECOVERY UNIT TO HELP AVOID I/O
  1258. * ERRORS DURING TRANSACTION PROCESSING.
  1259.  
  1260. SA2 BDRB WORDS IN ALL MESSAGES
  1261. RJ RMR READ MESSAGE RECORDS
  1262. SA2 BDRD
  1263. ZR X1,BDR10 IF NO ERROR
  1264.  
  1265. * AN I/O ERROR OCCURRED ON A MESSAGE RECORD IN THE
  1266. * RECOVERY UNIT. IF NO ERROR OVERRIDE, REPORT ERROR ON
  1267. * RECOVERY REPORT AND ABORT *TAFREC*. OTHERWISE, REFORMAT
  1268. * THE *CRF* AND INDICATE THAT RECOVERY IS NO LONGER AVAILABLE
  1269. * FOR RECOVERY UNIT.
  1270.  
  1271. SA1 OVRD
  1272. ZR X1,BDR3 IF ERROR OVERRIDE NOT SET
  1273. SA1 X2+B1
  1274. MX3 1
  1275. LX3 -1
  1276. BX6 X1+X3 SET ERROR BIT
  1277. SA6 A1
  1278. SA1 TERR
  1279. SX6 X1+B1 INCREMENT ERROR COUNT
  1280. SA6 A1+
  1281. SA6 BDRE INDICATE REFORMAT NECESSARY
  1282. BDR10 SX6 X2+RUDL UPDATE DIRECTORY ADDRESS
  1283. SA6 BDRD
  1284. BDR11 SA0 A0-B1 NUMBER OF RECOVERY UNITS LEFT
  1285. SA2 BDRC UPDATE PRU ADDRESS OF NEXT RECOVERY UNIT
  1286. SX7 A0
  1287. SA3 BDRA INCREMENT
  1288. IX6 X2+X3
  1289. SA6 A2
  1290. NZ X7,BDR1 IF MORE RECOVERY UNITS
  1291.  
  1292. * SORT DIRECTORY OF RECOVERY UNITS BY TERMINAL NAME.
  1293.  
  1294. SA1 BDRD
  1295. SX1 X1-DIR DIRECTORY LENGTH
  1296. SB3 DIR FWA OF DIRECTORY
  1297. SB4 RUDL DIRECTORY ENTRY LENGTH
  1298. RJ SDR SORT DIRECTORY
  1299.  
  1300. * REFORMAT *CRF* IF NUMBER OF TERMINALS CHANGED, OR IF
  1301. * NUMBER OF USER MESSAGES OR MESSAGE SIZE INCREASED, OR
  1302. * IF I/O OR DATA ERROR OCCURRED.
  1303.  
  1304. SA1 BDRE ERROR INDICATOR
  1305. BX6 X1
  1306. NZ X6,BDRX IF REFORMAT NECESSARY
  1307. SA2 NMRU NUMBER OF RECOVERY UNITS
  1308. SA3 HTST
  1309. SA4 LTST
  1310. IX3 X3-X4
  1311. SX4 TSTLLE
  1312. IX3 X3/X4
  1313. SX3 X3+B1 NUMBER OF TST ENTRIES
  1314. IX6 X3-X2
  1315. NZ X6,BDRX IF REFORMAT NECESSARY
  1316. SA1 CUID CURRENT ID
  1317. SA1 TREC+X1
  1318. MX0 12
  1319. LX0 36
  1320. BX6 X0*X1 NUMBER MESSAGES ON *RECOVER* DIRECTIVE
  1321. LX6 -24
  1322. SA2 NUMO NUMBER USER MESSAGES ON OLD *CRF*
  1323. IX6 X6-X2
  1324. NZ X6,BDRX IF REFORMAT NECESSARY
  1325. LX0 12
  1326. BX6 X0*X1
  1327. LX6 -36 PRU-S PER USER MESSAGE FROM *RECOVER*
  1328. SA2 PPMO PRU-S PER USER MESSAGE ON OLD *CRF*
  1329. IX6 X6-X2
  1330. EQ BDRX RETURN
  1331.  
  1332. BDRA CON 0 PRU-S PER RECOVERY UNIT
  1333. BDRB CON 0 WORDS IN ALL MESSAGE RECORDS
  1334. BDRC CON 0 CURRENT DISK ADDRESS
  1335. BDRD CON 0 CURRENT DIRECTORY ADDRESS
  1336. BDRE CON 0 *CRF* REFORMAT FLAG
  1337. BDRF DATA C* RECOVERABLE RUN UNIT DELETED - XXXXXXX.*
  1338. BDRG DATA C* CRF RUN UNIT ERROR - XXXXXXX.*
  1339. BDRH DATA 30H RECOVERING - XXXXXXX.
  1340. BDRI BSSZ 5
  1341. RMR SPACE 4,20
  1342. ** RMR - READ MESSAGE RECORDS.
  1343. *
  1344. * READ MESSAGE RECORDS IN A RECOVERY UNIT TO CHECK FOR
  1345. * I/O ERRORS.
  1346. *
  1347. * ENTRY (X2) = NUMBER OF WORDS IN ALL MESSAGE RECORDS.
  1348. * (X5) = FET ADDRESS.
  1349. *
  1350. * EXIT (X1) = 0 IF NO ERRORS ENCOUNTERED.
  1351. *
  1352. * USES X - 1, 2, 6, 7.
  1353. * A - 2, 7.
  1354. *
  1355. * CALLS CES, FIO.
  1356. *
  1357. * MACROS RECALL.
  1358.  
  1359.  
  1360. RMR SUBR ENTRY/EXIT
  1361. SX7 X2-TRBUFL/100B*100B
  1362. SA7 RMRA
  1363. AX2 6 CONVERT TO PRU-S
  1364. NG X7,RMR1 IF LESS THAN A BUFFER SIZE
  1365. NZ X7,RMR2 IF NOT SAME AS BUFFER SIZE
  1366. RMR1 SX6 B0
  1367. SX1 CIORD
  1368. RJ FIO READ MESSAGE RECORDS
  1369. RECALL X5 WAIT I/O
  1370. RJ CES CHECK ERROR STATUS
  1371. EQ RMRX RETURN
  1372.  
  1373. RMR2 SX6 B0+
  1374. SX1 CIORD
  1375. SX2 TRBUFL/100B
  1376. RJ FIO
  1377. RECALL X5 WAIT I/O
  1378. RJ CES CHECK ERROR STATUS
  1379. NZ X1,RMRX IF ERROR
  1380. SA2 RMRA
  1381. SX7 X2-TRBUFL/100B*100B
  1382. AX2 6 PRU-S
  1383. NG X7,RMR1 IF LESS THAN A BUFFER FULL
  1384. ZR X7,RMR1 IF EXACTLY A BUFFER FULL
  1385. SA7 A2
  1386. EQ RMR2 READ MORE MESSAGE RECORDS
  1387.  
  1388. RMRA CON 0 WORDS IN ALL MESSAGE RECORDS
  1389. FRL SPACE 4,20
  1390. ** FRL - FORMAT REPORT LINE.
  1391. *
  1392. * EXTRACT INFORMATION FROM THE DIRECTORY ENTRY AND FORMAT
  1393. * A PRINT LINE FOR THE REPORT FILE.
  1394. *
  1395. * ENTRY (X5) = ADDRESS OF THE DIRECTORY ENTRY.
  1396. * (A0) = COMMENT INDEX.
  1397. *
  1398. * EXIT LINE WRITTEN TO REPORT FILE.
  1399. *
  1400. * USES X - 0, 1, 2, 6, 7.
  1401. * A - 1, 2, 6, 7.
  1402. * B - 2.
  1403. *
  1404. * CALLS ALC, CDD, SFN.
  1405. *
  1406. * MACROS WRITEW.
  1407.  
  1408.  
  1409. FRL SUBR ENTRY/EXIT
  1410. MX0 42
  1411. SA1 X5
  1412. BX1 X0*X1 TERMINAL NAME
  1413. RJ SFN SPACE FILL NAME
  1414. LX6 53-59 USE BLANK FOR PRINTER CONTROL
  1415. SA6 RWSA
  1416. MX0 24
  1417. LX0 53-59
  1418. SA1 X5+B1
  1419. BX1 X0*X1
  1420. LX1 23-53
  1421. NZ X1,FRL1 IF TRANSACTION SEQUENCE NUMBER PRESENT
  1422. SA1 BLNK
  1423. BX6 X1
  1424. SA6 RWSA+1
  1425. SA6 A6+B1
  1426. SA6 A6+B1
  1427. SA6 A6+B1
  1428. SA6 A6+B1
  1429. EQ FRL2 PRINT COMMENT
  1430.  
  1431. FRL1 RJ COD CONVERT TO DISPLAY
  1432. LX6 12
  1433. MX0 48
  1434. SX2 2RB
  1435. BX6 X0*X6
  1436. BX6 X6+X2
  1437. SA6 RWSA+1
  1438. MX0 6
  1439. LX0 18
  1440. SA1 X5
  1441. BX2 X0*X1
  1442. LX2 -12 TRANSACTION TYPE
  1443. SA2 TTYP+X2
  1444. BX6 X2
  1445. SA6 A6+B1
  1446. MX0 12
  1447. LX0 12
  1448. BX2 X0*X1 TRANSACTION STEP
  1449. SA2 TSTP+X2
  1450. BX6 X2
  1451. SA6 A6+B1
  1452. SA1 X5+2 DATE
  1453. SA2 A1+B1 TIME
  1454. BX7 X1
  1455. BX6 X2
  1456. SA7 A6+B1
  1457. SA6 A7+B1
  1458. FRL2 SA1 FRLA+A0 GET COMMENT
  1459. SA2 A1+B1
  1460. BX6 X1
  1461. BX7 X2
  1462. SA6 A6+B1
  1463. SA7 A6+B1
  1464. SB2 B1
  1465. RJ ALC ADVANCE LINE COUNT
  1466. WRITEW R,RWSA,RWSAL
  1467. EQ FRLX RETURN
  1468.  
  1469. * TABLE OF COMMENTS FOR REPORT FILE (12 CHARACTERS MAXIMUM).
  1470.  
  1471. FRLA BSS 0
  1472. LOC 0
  1473. DATA C*RECOVERED*
  1474. DATA C*INITIALIZED*
  1475. LOC *O
  1476. STN SPACE 4,20
  1477. ** STN - SEARCH TERMINAL NAME.
  1478. *
  1479. * SEARCH A TABLE FOR THE REQUIRED TERMINAL NAME.
  1480. *
  1481. * ENTRY (X1) = TERMINAL NAME.
  1482. * (B3) = FWA OF TABLE.
  1483. * (B4) = LENGTH OF ENTRY.
  1484. * (B5) = LWA OF TABLE + 1.
  1485. *
  1486. * EXIT (X5) = ADDRESS OF ENTRY.
  1487. * = 0 IF TERMINAL NOT FOUND.
  1488. * (X1) = TERMINAL NAME.
  1489. *
  1490. * USES X - 0, 1, 2, 4, 5, 6, 7.
  1491. * A - 2.
  1492. * B - 3, 5.
  1493.  
  1494.  
  1495. STN SUBR ENTRY/EXIT
  1496. LX1 59-17
  1497. MX0 42 MASK FOR TERMINAL NAME
  1498. BX5 X5-X5
  1499. EQ STN2 ENTER LOOP
  1500.  
  1501. * USE BINARY SEARCH TO FIND TERMINAL.
  1502.  
  1503. STN1 SB3 A2+B4 SET NEW LOW LIMIT
  1504. STN2 SX7 B5-B3 FIND MIDDLE
  1505. SX4 B4
  1506. IX7 X7/X4
  1507. AX7 1
  1508. SX4 B4
  1509. IX7 X4*X7
  1510. SA2 B3+X7 READ AN ENTRY
  1511. BX4 X0*X2
  1512. LX4 42
  1513. IX6 X4-X1
  1514. ZR X6,STN3 IF ENTRY FOUND
  1515. ZR X7,STN4 IF END OF SEARCH
  1516. NG X6,STN1 IF TOO LOW IN TABLE
  1517. SB5 A2 SET NEW UPPER LIMIT
  1518. EQ STN2 NEXT ENTRY
  1519.  
  1520. STN3 SX5 A2 ADDRESS OF ENTRY
  1521. STN4 LX1 17-59 REPOSITION TERMINAL NAME
  1522. EQ STNX RETURN
  1523. SDR SPACE 4,15
  1524. ** SDR - SORT DIRECTORY OF RECOVERY UNITS.
  1525. *
  1526. * ENTRY (B3) = FWA OF TABLE.
  1527. * (B4) = LENGTH OF ENTRY.
  1528. * (X1) = LENGTH OF TABLE.
  1529. *
  1530. * EXIT DIRECTORY SORTED BY TERMINAL NAME.
  1531. *
  1532. * USES X - ALL.
  1533. * A - 3, 6.
  1534. * B - 2, 4, 6, 7.
  1535.  
  1536.  
  1537. SDR SUBR ENTRY/EXIT
  1538. MX0 42
  1539. SX2 B4
  1540. MX4 12
  1541. BX3 X1
  1542. IX3 X3/X2 NUMBER OF ENTRIES
  1543. SX2 B4
  1544. NX6,B2 X3
  1545. AX4 X4,B2
  1546. SX1 B3+X1
  1547. BX5 X5-X5
  1548. EQ SDR7 ENTER SORT LOOP
  1549.  
  1550. SDR1 PL X5,SDR3 IF NO SWAP
  1551. SB7 X2 NUMBER OF WORDS TO MOVE
  1552. SB6 B6+B2
  1553. SDR2 SB7 B7-B1 DECREMENT INDEX
  1554. SA3 SDRA+B7
  1555. BX6 X3
  1556. SA6 B6+B7
  1557. NZ B7,SDR2 IF NOT END OF ENTRY
  1558. SDR3 SB4 B4+X2
  1559. SX3 B4+
  1560. IX3 X3-X1
  1561. BX5 X5-X5
  1562. ZR X3,SDR7 IF END OF TABLE
  1563. SB7 X2 NUMBER OF WORDS TO SAVE
  1564. SDR4 SB7 B7-B1
  1565. SA3 B4+B7
  1566. BX6 X3
  1567. SA6 SDRA+B7
  1568. NZ B7,SDR4 IF NOT END OF ENTRY
  1569. SB6 B4-B2
  1570. BX7 X0*X3
  1571. LX7 42 SHIFT SO NO SIGN BIT
  1572. SDR5 SA3 B6+
  1573. BX6 X0*X3
  1574. LX6 42 SHIFT SO NO SIGN BIT
  1575. IX6 X7-X6
  1576. PL X6,SDR1 IF IN ORDER
  1577. SB7 X2
  1578. SX5 B6+B2
  1579. SDR6 SB7 B7-B1
  1580. SA3 B6+B7
  1581. BX6 X3
  1582. SA6 X5+B7
  1583. NZ B7,SDR6 IF NOT END OF ENTRY
  1584. MX5 1 INDICATE ENTRY REPLACED
  1585. SB6 B6-B2
  1586. GE B6,B3,SDR5 IF IN BOUNDS
  1587. EQ SDR1 SELECT NEXT ENTRY
  1588.  
  1589. SDR7 AX4 1
  1590. BX3 -X4
  1591. IX7 X2*X3
  1592. SB2 X7
  1593. SB7 X2
  1594. SB4 B3+X7
  1595. NZ X4,SDR4 IF MORE TO SORT
  1596. EQ SDRX RETURN
  1597.  
  1598. SDRA BSSZ RUDL TEMPORARY STORAGE
  1599. GHL SPACE 4,15
  1600. ** GHL - GET HIGHEST/LOWEST TST ENTRY ADDRESSES.
  1601. *
  1602. * CALCULATE THE HIGHEST AND LOWEST TST ADDRESSES FOR
  1603. * THE REQUIRED NETWORK FILE.
  1604. *
  1605. * ENTRY (CUID) = CURRENT ID.
  1606. *
  1607. * EXIT (X6) = HIGHEST ADDRESS.
  1608. * (X7) = LOWEST ADDRESS.
  1609. *
  1610. * USES X - 0, 1, 2, 3, 4, 6, 7.
  1611. * A - 1, 3.
  1612.  
  1613.  
  1614. GHL SUBR ENTRY/EXIT
  1615. SA1 CUID
  1616. SX3 TTFTE LENGTH OF TST HEADING ENTRY
  1617. IX3 X3*X1
  1618. SA3 TSTHD+X3 GET HIGHEST TST ORDINAL FOR ID
  1619. MX0 -TFHON
  1620. LX3 TFHON-1-TFHOS RIGHT JUSTIFY HIGHEST ORDINAL
  1621. BX2 -X0*X3 HIGHEST ORDINAL
  1622. SX4 B1+
  1623. GHL1 SX1 X1-1
  1624. NG X1,GHL2 IF START OF TST HEADER REACHED
  1625. SA3 A3-TTFTE
  1626. ZR X3,GHL1 IF NO NETWORK FILE FOR THIS ID
  1627. LX3 TFHON-1-TFHOS RIGHT JUSTIFY HIGHEST ORDINAL
  1628. BX4 -X0*X3 HIGHEST ORDINAL OF PREVIOUS NETWORK FILE
  1629. SX4 X4+1 LOWEST ORDINAL FOR THIS NETWORK FILE
  1630. GHL2 SX0 TSTLLE
  1631. IX2 X0*X2 CONVERT TO OFFSET
  1632. IX4 X0*X4
  1633. SX0 TST
  1634. IX6 X0+X2 CONVERT TO ABSOLUTE ADDRESS
  1635. IX7 X0+X4
  1636. EQ GHLX RETURN
  1637. ZFB SPACE 4,10
  1638. ** ZFB - ZERO FILL BUFFER.
  1639. *
  1640. * ENTRY (B5) = FWA OF BUFFER.
  1641. * (B6) = NUMBER OF WORDS.
  1642. *
  1643. * USES X - 6.
  1644. * A - 6.
  1645. * B - 5, 6.
  1646.  
  1647.  
  1648. ZFB SUBR ENTRY/EXIT
  1649. EQ B6,ZFBX IF NONE
  1650. SX6 B0+
  1651. ZFB1 SA6 B5
  1652. SB5 B5+B1
  1653. SB6 B6-B1
  1654. NE B6,ZFB1 IF MORE TO DO
  1655. EQ ZFBX RETURN
  1656. ALC SPACE 4,15
  1657. ** ALC - ADVANCE LINE COUNT.
  1658. *
  1659. * ADVANCE THE LINE COUNT OF THE REPORT FILE AND IF
  1660. * NECESSARY, PRINT THE HEADING AND SUBHEADING ON A NEW PAGE.
  1661. *
  1662. * ENTRY (B2) = NUMBER OF LINES TO ADVANCE.
  1663. *
  1664. * USES X - 1, 2, 6, 7.
  1665. * A - 1, 2, 6.
  1666. *
  1667. * CALLS CDD.
  1668. *
  1669. * MACROS WRITEW.
  1670.  
  1671.  
  1672. ALC SUBR ENTRY/EXIT
  1673. SA1 LCNT CURRENT LINE COUNT
  1674. SX6 X1+B2
  1675. SX7 X6-LINP
  1676. PL X7,ALC1 IF PAGE FULL
  1677. SA6 A1
  1678. EQ ALCX RETURN
  1679.  
  1680. ALC1 SX6 B2+5 LINE COUNT PLUS HEADING
  1681. SA2 SBHD+2
  1682. IX6 X6+X2 INCLUDE SUBHEADING LINE COUNT
  1683. SA6 A1
  1684. SA1 PCNT
  1685. SX1 X1+B1 INCREMENT PAGE COUNT
  1686. BX6 X1
  1687. SA6 A1+
  1688. RJ CDD CONVERT TO DISPLAY CODE
  1689. BX6 X4
  1690. SA6 HEAD1
  1691. WRITEW R,HEAD,HEADL WRITE NEW HEADING
  1692. SA1 SBHD SUBHEADING ADDRESS
  1693. SA2 A1+B1 LENGTH
  1694. WRITEW R,X1,X2
  1695. EQ ALCX RETURN
  1696. ERR SPACE 4,10
  1697. ** ERR - ERROR PROCESSOR.
  1698. *
  1699. * ISSUE A DAYFILE ERROR MESSAGE AND ABORT *TAFREC*.
  1700. *
  1701. * ENTRY (B5) = FWA OF ERROR MESSAGE.
  1702. *
  1703. * MACROS ABORT, MESSAGE, SETPFP, WRITER.
  1704.  
  1705.  
  1706. ERR MESSAGE B5,0,R ISSUE SPECIFIC ERROR MESSAGE
  1707. MESSAGE ERRA,0,R
  1708. SA1 DFFM DEFAULT FAMILY
  1709. SX0 10B *SETPFP* FLAGS
  1710. BX6 X0+X1
  1711. SA6 PFPA *SETPFP* CALL BLOCK
  1712. SETPFP PFPA RESET TO DEFAULT FAMILY
  1713. WRITER R,R FLUSH REPORT FILE BUFFER
  1714. ABORT
  1715.  
  1716. ERRA DATA C* CRF RECOVERY/INITIALIZATION ABORTED.*
  1717. SPACE 4,10
  1718. * COMMON DECKS.
  1719.  
  1720. LIST X
  1721. *CALL COMKFIO
  1722. LIST -X
  1723. SPACE 4,10
  1724. *CALL COMCCDD
  1725. *CALL COMCCIO
  1726. *CALL COMCCOD
  1727. *CALL COMCCPM
  1728. *CALL COMCDXB
  1729. *CALL COMCLFM
  1730. *CALL COMCPFM
  1731. *CALL COMCRDW
  1732. *CALL COMCSFN
  1733. *CALL COMCSNM
  1734. *CALL COMCSYS
  1735. *CALL COMCWTC
  1736. *CALL COMCWTW
  1737. *CALL COMCZTB
  1738. TITLE *TAFREC* PRESET ROUTINES.
  1739. PRS SPACE 4,10
  1740. ** PRS - PRESET *TAFREC*.
  1741. *
  1742. * PERFORM PRESET PROCESSING FOR *TAFREC*.
  1743. * PRESET CONSISTS OF -
  1744. *
  1745. * PROCESSING THE TCF.
  1746. * SETTING THE *K-DISPLAY*.
  1747. * PROCESSING THE NETWORK FILE(S).
  1748. * ATTACHING OR DEFINING THE CRF(S).
  1749. *
  1750. * CALLS CDD, COD, IIM, PNF, PRK, PTF, RKD, SKD,
  1751. * SRS, ZFB.
  1752. *
  1753. * MACROS CLOCK, DATE, GETPFP, READ, READW, REWIND,
  1754. * STATUS, WRITEW.
  1755.  
  1756.  
  1757. PRS SUBR
  1758. SB1 1
  1759. SX7 B0+
  1760. SA7 VECSC CLEAR CURRENT ECS ADDRESS
  1761. SA7 VTST SET *O-DISPLAY* INACTIVE
  1762. DATE DATE
  1763. CLOCK TIME
  1764. GETPFP PFPA GET PERMANENT FILE PARAMETERS
  1765. SA1 PFPA
  1766. BX6 X1
  1767. SA6 DFFM
  1768. SX7 TTFTL
  1769. SA7 TSTLW PRESET TST LENGTH
  1770. SA1 DATE
  1771. SA2 TIME
  1772. BX6 X1
  1773. BX7 X2
  1774. SA6 PRSC
  1775. SA7 A6+B1
  1776. WRITEW R,PRSB,PRSBL WRITE REPORT FILE BANNER
  1777. SX7 PMSG ADDRESS OF *PFM* ERROR MESSAGES
  1778. SA7 CRF+CFPW
  1779. SA7 CRFA+CFPW
  1780. SA7 TCF+CFPW
  1781. SA7 N+CFPW
  1782. SB5 TSTHD FWA OF TST HEADER
  1783. SB6 TTFTL+TSTLLE HEADER LENGTH + FIRST TST ENTRY
  1784. RJ ZFB ZERO FILL BUFFER
  1785.  
  1786. * DETERMINE IF RESTART.
  1787.  
  1788. SA1 B0 POSITION TO SENSE SWITCH 3
  1789. LX1 59-8
  1790. PL X1,PRS1 IF RECOVERY MODE NOT SELECTED
  1791. REWIND TIF,R
  1792. READ TIF
  1793. READW TIF,PRSA,1 READ WORD ONE INTO TEMPORARY LOCATION
  1794. SX6 B1 SET RESTART FLAG
  1795. LX6 TIRFS-0
  1796. SA6 PRSA
  1797. READW TIF,VLOCS,VLOCL RESTORE POINTERS
  1798. SX7 B0+
  1799. SA7 VTST SET *O-DISPLAY* INACTIVE
  1800. SA7 VTOT CLEAR *TOTAL* LOAD FLAG
  1801. SA7 VECSC CLEAR CURRENT EXTENDED MEMORY ADDRESS
  1802. REWIND TIF
  1803. SA7 VINT CLEAR *TAFXXX1* COMPLETE FLAG
  1804. SA1 PRSE INDICATE RESTART
  1805. BX6 X1
  1806. SA6 HEAD2
  1807. RJ RKD SET UP RESTART *K-DISPLAY*
  1808. EQ PRS2 PROCESS TCF
  1809.  
  1810. * SET UP INITIAL *TAFREC* VALUES.
  1811.  
  1812. PRS1 BX7 X7-X7 CLEAR *TAFXXX1* COMPLETE FLAG
  1813. SA7 VINT
  1814. SX6 NSCP
  1815. SX7 NCMB
  1816. LX6 41-17
  1817. LX7 41-17
  1818. SA6 VNSCP NUMBER OF SUBCONTROL POINTS
  1819. SA7 VNCMB NUMBER OF COMMUNICATION BLOCKS
  1820. SX7 SCMFL
  1821. SA7 VMFL MAXIMUM FL FOR SUBCONTROL POINTS
  1822. SX7 ECSFL MAXIMUM EXTENDED MEMORY FOR *TAF*
  1823. SX6 RECDF
  1824. SA6 VREC USER RECOVERY FLAG DEFAULT VALUE
  1825. SA1 PRSD
  1826. BX6 X1
  1827. LX7 9 CORRECTLY POSITION *ECSFL*
  1828. SA7 VECS
  1829. SA6 VTFL SYSTEM TASK LIBRARY FILE NAME
  1830. SX1 CMMBFL BASE FL FOR CMM
  1831. SX6 CMMEFL EXPANDABLE FL FOR CMM
  1832. LX6 18
  1833. BX7 X1+X6
  1834. SX1 CMMTFL TARGET FL FOR CMM
  1835. LX1 36
  1836. BX7 X1+X7
  1837. SA7 VCMM SAVE CMM FL
  1838.  
  1839. * SAVE INITIAL *TIF* VALUES IN CASE OF ABORT.
  1840.  
  1841. REWIND TIF,R
  1842. WRITEW TIF,PRSA,1 STATUS WORD
  1843. WRITEW TIF,VLOCS,VLOCL LOW CORE SYMBOLS
  1844. WRITER TIF,R FLUSH BUFFER
  1845.  
  1846. * PROCESS *TAF* CONFIGURATION PARAMETERS.
  1847.  
  1848. PRS2 RJ PTF PROCESS TAF CONFIGURATION FILE
  1849. ZR X2,PRS3 IF *K-DISPLAY* NOT REQUESTED
  1850. SX3 KPRS
  1851. RJ PRK PRESET K-DISPLAY BUFFER
  1852. RJ SKD SET *K-DISPLAY*
  1853.  
  1854. * COMPUTE NUMBER OF C.B.-S RESERVED FOR SMALL INPUT.
  1855.  
  1856. PRS3 SB5 -NLIN*NCBC NUMBER OF C.B. FOR LARGE INPUT
  1857. SA2 VNCMB NUMBER OF C.B.-S
  1858. LX2 17-41
  1859. SX6 X2+B5 COMPUTE *VNSIN*
  1860. SX6 X6-RSCMB
  1861. LX6 41-17
  1862. SB5 PRSG
  1863. NG X6,ERR IF NOT ENOUGH C.B.-S
  1864. SA6 VNSIN
  1865.  
  1866. * PROCESS NETWORK FILES.
  1867.  
  1868. SA1 CUID
  1869. SX2 MAXNF
  1870. SX1 X1+B1 NEXT ID
  1871. IX2 X2-X1
  1872. ZR X2,PRS4 IF ALL ID-S PROCESSED
  1873. SX2 2
  1874. IX5 X2*X1
  1875. BX6 X1
  1876. SA6 A1
  1877. SA1 TFAM+X5+1
  1878. ZR X1,PRS3 IF NO NETWORK FILE
  1879. RJ PNF PROCESS NETWORK FILE
  1880. SX1 IPTAR
  1881. ZR X1,PRS3 IF AUTO RECOVERY DISABLED
  1882. RJ SRS SET RECOVERY STATUS
  1883. EQ PRS3 NEXT ID
  1884.  
  1885. * WRITE LOW CORE POINTERS.
  1886.  
  1887. PRS4 REWIND TIF,R
  1888. WRITEW TIF,PRSA,1 FALGS FOR *TAF1*
  1889. WRITEW TIF,VLOCS,VLOCL WRITE LOW CM POINTERS
  1890.  
  1891. * ISSUE DAYFILE MESSAGES.
  1892.  
  1893. PRS6 MESSAGE IIMA * INITIALIZATION OPTIONS.*
  1894. SA1 VNCMB NUMBER OF COMMUNICATION BLOCKS
  1895. LX1 -24
  1896. RJ CDD CONSTANT TO DECIMAL DISPLAY
  1897. SB5 IIMB * K.CMB=XX.*
  1898. BX1 X6
  1899. LX1 48
  1900. RJ IIM ISSUE INITIALIZATION MESSAGE
  1901. SA1 VECS EXTENDED MEMORY FL
  1902. LX1 -9
  1903. RJ COD CONSTANT TO OCTAL DISPLAY
  1904. BX1 X6
  1905. LX1 42
  1906. SB5 IIMC * K.ECS=XXXK.*
  1907. RJ IIM ISSUE INITIALIZATION MESSAGE
  1908. SA1 VMFL TAF MAXIMUM FL
  1909. RJ COD CONSTANT TO OCTAL DISPLAY
  1910. BX1 X6
  1911. LX1 24
  1912. SB5 IIME * K.MFL=XXXXXXB.*
  1913. RJ IIM ISSUE INITIALIZATION MESSAGE
  1914. SA2 VREC GET RECOVERY FLAG
  1915. SX1 3L NO
  1916. LX1 42
  1917. ZR X2,PRS7 IF USER RECOVERY NOT SET
  1918. SX1 3LYES
  1919. LX1 42
  1920. SX2 X2
  1921. NZ X2,PRS7 IF USER RECOVERY SET
  1922. SX1 3LCRM
  1923. LX1 42
  1924. PRS7 SB5 IIMF * K.REC=XXX.*
  1925. RJ IIM ISSUE INITIALIZATION MESSAGE
  1926. SA1 VNSCP NUMBER OF SUBCONTROL POINTS
  1927. LX1 -24
  1928. RJ CDD CONSTANT TO DECIMAL DISPLAY
  1929. BX1 X6
  1930. LX1 48
  1931. SB5 IIMG * K.SCP=XX.*
  1932. RJ IIM ISSUE INITIALIZATION MESSAGE
  1933. SA1 VTFL NAME OF SYSTEM TASK LIBRARY
  1934. AX1 18
  1935. LX1 18
  1936. SB5 IIMH * K.TLF=XXXXXXX.*
  1937. RJ IIM ISSUE INITIALIZATION MESSAGE
  1938. SA1 INTG *CRF* INTIALIZATION OPTION
  1939. SB5 IIMI * K.INT=CRF,XXXXXXX.*
  1940. RJ IIM ISSUE INITIALIZATION MESSAGE
  1941. SA2 PRSA
  1942. LX2 59-TICRS *CRM* INITIALIZATION OPTION
  1943. SA1 PRSF
  1944. PL X2,PRS8 IF NOT *ALL*
  1945. SX1 3LALL
  1946. LX1 42
  1947. PRS8 SB5 IIMJ * K.INT=CRM,XXXX.*
  1948. RJ IIM ISSUE INITIALIZATION MESSAGE
  1949. SA2 OVRD *CRF* ERROR OVERRIDE OPTION
  1950. SX1 3L NO
  1951. LX1 42
  1952. ZR X2,PRS9 IF NOT ERROR OVERRIDE
  1953. SX1 3LYES
  1954. LX1 42
  1955. PRS9 SB5 IIMK * K.ERO=CRF,XXX.*
  1956. RJ IIM ISSUE INITIALIZATION MESSAGE
  1957. SA2 VCMM CMM FL
  1958. SX1 X2 CMM BASE FL
  1959. RJ COD CONVERT OCTAL TO DISPLAY
  1960. BX1 X4
  1961. SB5 IIML * K.BFL=XXXXXXB.*
  1962. RJ IIM ISSUE INITIALIZATION MESSAGE
  1963. SA1 VCMM
  1964. AX1 18 CMM EXPANDABLE FL
  1965. SX1 X1
  1966. RJ COD CONVERT OCTAL TO DISPLAY
  1967. BX1 X4
  1968. SB5 IIMM * K.EFL=XXXXXXB.*
  1969. RJ IIM ISSUE INITIALIZATION MESSAGE
  1970. SA1 VCMM
  1971. AX1 36
  1972. RJ COD CONVERT OCTAL TO DISPLAY
  1973. BX1 X4
  1974. SB5 IIMN * K.TFL=XXXXXXB.*
  1975. RJ IIM ISSUE INITIALIZATION MESSAGE
  1976. EQ PRSX RETURN
  1977.  
  1978. PRSA CON 0 FLAG WORD
  1979.  
  1980. * REPORT FILE BANNER
  1981.  
  1982. PRSB DATA C/1****************************************************
  1983. ,*****************/
  1984. DATA 1L
  1985. DATA 1L
  1986. DATA 10H
  1987. DATA C* TAF INITIALIZATION AND RECOVERY REPORT*
  1988. DATA 1L
  1989. DATA 20H
  1990. DATA C*GIVE TO TAF ADMINISTRATOR*
  1991. DATA 1L
  1992. DATA 20H
  1993. PRSC BSS 2 DATE/TIME
  1994. DATA 1L
  1995. DATA 1L
  1996. DATA C/ ****************************************************
  1997. ,*****************/
  1998. PRSBL EQU *-PRSB
  1999.  
  2000. PRSD VFD 42/0L"TLFM",18/1
  2001. PRSE DATA 10H RESTART
  2002. PRSF DATA 4LNONE
  2003. PRSG DATA C* NOT ENOUGH COMMUNICATION BLOCKS DEFINED.*
  2004. IIM SPACE 4,10
  2005. ** IIM - ISSUE INITIALIZATION MESSAGE.
  2006. *
  2007. * ENTRY (B5) = FWA OF MESSAGE.
  2008. * (X1) = VALUE TO BE PUT IN MESSAGE.
  2009. *
  2010. * USES B - 2, 3, 5.
  2011. *
  2012. * CALLS SNM.
  2013.  
  2014.  
  2015. IIM SUBR ENTRY/EXIT
  2016. SB2 1RX SET REPLACEMENT CHARACTER
  2017. SB3 DAYB ALTERNATE ASSEMBLY AREA
  2018. SB5 -B5
  2019. RJ SNM SET NAME IN MESSAGE
  2020. MESSAGE DAYB ISSUE MESSAGE TO DAYFILE
  2021. EQ IIMX RETURN
  2022.  
  2023. IIMA DATA C* INITIALIZATION OPTIONS.*
  2024. IIMB DATA C* K.CMB=XX.*
  2025. IIMC DATA C* K.ECS=XXXK.*
  2026. IIME DATA C* K.MFL=XXXXXXB.*
  2027. IIMF DATA C* K.REC=XXX.*
  2028. IIMG DATA C* K.SCP=XX.*
  2029. IIMH DATA C* K.TLF=XXXXXXX.*
  2030. IIMI DATA C* K.INT=CRF,XXXXXXX.*
  2031. IIMJ DATA C* K.INT=CRM,XXXX.*
  2032. IIMK DATA C* K.ERO=CRF,XXX.*
  2033. IIML DATA C* K.BFL=XXXXXXB.*
  2034. IIMM DATA C* K.EFL=XXXXXXB.*
  2035. IIMN DATA C* K.TFL=XXXXXXB.*
  2036. PTF SPACE 4,40
  2037. ** PTF - PROCESS *TAF* CONFIGURATION FILE.
  2038. *
  2039. * READ DIRECTIVES FROM THE TCF AND VALIDATE THE
  2040. * PARAMETERS. ALL DIRECTIVES ARE VALIDATED BUT ONLY A SUBSET
  2041. * OF THEM ARE FULLY PROCESSED WITHIN *TAFREC*. THE OTHERS
  2042. * RECEIVE FINAL PROCESSING IN *TAFNAM1*.
  2043. *
  2044. * VALID DIRECTIVES ARE -
  2045. *
  2046. * * DISPLAY(DSTAT)
  2047. * * K.COMMAND.
  2048. * * NETWORK(ID=I,FM=FAMILY,UN=USERNAM)
  2049. * * RECOVER(ID=I,NM=NMSG,MS=MSIZE)
  2050. * DMS(DM,SW,DB1,DB2,...,DBN)
  2051. *
  2052. * WHERE DSTAT = *ON* OR *OFF* DEFINES IF K-DISPLAY IS USED.
  2053. * COMMAND = INITIALIZATION OPTIONS, STOP, END OR GO.
  2054. * I = NETWORK FILE AND *CRF* ID (0-7).
  2055. * FAMILY = FAMILY WHERE NETWORK FILE AND *CRF* RESIDE.
  2056. * USERNAM = USER NAME OF NETWORK FILE AND *CRF*.
  2057. * NMSG = NUMBER OF USER MESSAGES/TERMINAL ON *CRF*.
  2058. * MSIZE = MAXIMUM USER MESSAGE SIZE.
  2059. * DM = DATA MANAGER (*TAF*,*CRM*,*TOTAL*,*OTHER*).
  2060. * SW = *ON* OR *OFF*.
  2061. * DBI = DATA BASE NAMES.
  2062. *
  2063. * DIRECTIVES FLAGGED BY * ARE FULLY PROCESSED IN *TAFREC*.
  2064. *
  2065. * EXIT (X2) .NE. 0 IF K-DISPLAY TO BE SET.
  2066. * *TCF* PROCESSED.
  2067. * (B5) = FWA OF ERROR MESSAGE IF ERROR.
  2068. * TO *SKD* IF ERRORS IN *TCF*.
  2069. * TO *ERR* IF *TCF* NOT FOUND, OTHER THAN
  2070. * *K.COMMAND* ERRORS OR OPERATOR TERMINATION.
  2071. *
  2072. * USES X - ALL.
  2073. * A - ALL.
  2074. * B - 2, 3, 4, 5, 7.
  2075. *
  2076. * CALLS ALC, DMS, DSP, DXB, NET, PKC, RCV, SKD, UPC.
  2077. *
  2078. * MACROS GET, MESSAGE, READ, READC, REWIND, STATUS, WRITEC,
  2079. * WRITEW.
  2080. *
  2081. * NOTES *K-DISPLAY* WILL BE SET IN CASE OF INCORRECT
  2082. * DIRECTIVES.
  2083.  
  2084.  
  2085. PTF SUBR ENTRY/EXIT
  2086. SX6 PTFQ
  2087. SX7 PTFQL
  2088. SA6 SBHD SET SUB HEADING ADDRESS
  2089. SA7 A6+B1 LENGTH
  2090. SX6 B1+B1 SUBHEADING LINE COUNT
  2091. SA6 A7+B1
  2092.  
  2093. * IF TCF IS LOCAL, USE IT, OTHERWISE GET TCF
  2094. * FROM *TAF-S* USER INDEX.
  2095.  
  2096. STATUS TCF SEE IF TCF IS LOCAL
  2097. SA1 X2
  2098. MX0 11
  2099. LX1 59-11
  2100. BX1 X0*X1
  2101. NZ X1,PTF1 IF TCF LOCAL
  2102. GET TCF
  2103. MX0 8
  2104. SA1 TCF
  2105. LX1 59-17
  2106. BX1 X0*X1
  2107. ZR X1,PTF1 IF TCF FOUND
  2108. SB5 PTFD
  2109. EQ ERR ERROR - FILE TCF NOT FOUND
  2110.  
  2111. PTF1 REWIND TCF,R LOCAL TCF MUST BE REWOUND IF RESTART
  2112. READ TCF,R
  2113. SA1 TCF+2 IN
  2114. SA2 A1+B1 OUT
  2115. IX3 X1-X2 IN-OUT
  2116. NZ X3,PTF2 IF TCF FILE NOT EMPTY
  2117. SB5 PTFE
  2118. EQ ERR ERROR - TCF FILE EMPTY
  2119.  
  2120. * SET DEFAULT *TAF* CONFIGURATION VALUES.
  2121.  
  2122. PTF2 SX6 B0+
  2123. SA1 DFNM DEFAULT *NM*
  2124. SA2 DFMS DEFAULT *MS*
  2125. SA6 ID CLEAR *ID*
  2126. BX6 X1
  2127. BX7 X2
  2128. SA6 A6+B1
  2129. SA7 A6+B1
  2130. READC TCF,PTFB,16 READ DIRECTIVE IMAGE
  2131. NZ X1,PTF6 IF NO MORE ENTRIES
  2132. SB2 B1
  2133. RJ ALC ADVANCE LINE COUNT
  2134. WRITEW R,BLNK,2
  2135. WRITEC R,PTFB WRITE DIRECTIVE TO REPORT FILE
  2136. SB7 PTFC FWA TO UNPACK INTO
  2137. SA5 PTFB FIRST WORD TO UNPACK
  2138. RJ UPC UNPACK DIRECTIVE IMAGE
  2139. ZR X6,PTF3 IF NO UNPACK ERRORS
  2140. SA0 PTFF * INCORRECT TCF ENTRIES*
  2141. EQ PTF5 REPORT ERROR
  2142.  
  2143. PTF3 MX0 42
  2144. SA1 PTFC
  2145. SA4 PTFA FWA OF KEYWORD TABLE
  2146. SA0 PTFH
  2147. PTF4 ZR X4,PTF5 IF INCORRECT KEYWORD
  2148. BX5 X1-X4
  2149. BX2 X0*X5
  2150. SB3 X4
  2151. SA4 A4+B1
  2152. NZ X2,PTF4 IF NO MATCH
  2153. JP B3 PROCESS KEYWORD
  2154.  
  2155. * ENTRY FROM *SKD*.
  2156. * WRITE ERROR MESSAGE TO RECOVERY REPORT.
  2157.  
  2158. PTF5 WRITEW R,PTFG,PTFGL WRITE GENERAL ERROR MESSAGE
  2159. WRITEC R,A0 WRITE DETAILED ERROR MESSAGE
  2160. MESSAGE PTFB,3 WRITE STATEMENT IN ERROR
  2161. MESSAGE A0,3 WRITE ERROR MESSAGE
  2162. SA1 PTFN
  2163. SX6 X1+B1 INCREMENT NUMBER OF ERRORS
  2164. SA6 A1
  2165. EQ PTF2 PROCESS NEXT DIRECTIVE
  2166.  
  2167. PTF6 SX6 B0 CLEAR TCF ORIGIN
  2168. SA6 KCOF
  2169. SA1 PTFZ *K.* ERROR COUNT
  2170. SA3 PTFN TOTAL ERROR COUNT
  2171. IX6 X3-X1 GET FATAL ERROR COUNT
  2172. SA6 PTFN
  2173. NZ X6,PTF7 IF FATAL ERRORS
  2174. ZR X1,PTF7 IF NO *K.* ERRORS
  2175. SA6 PTFU CLEAR *K-DISPLAY* STATUS FLAG
  2176. RJ SKD DISPLAY
  2177. PTF7 WRITEW R,PTFY,B1 BLANK LINE
  2178. SA3 PTFN ERROR COUNT
  2179. SA2 PTFAA MUST HAVE A *USER* COMMAND
  2180. SA4 PTFO CHECK MATCH OF *NETWORK* AND *RECOVER*
  2181. IX6 X4+X3
  2182. IX6 X6+X2
  2183. SA2 PTFU
  2184. SA1 PTFR *TAFNAM* MUST HAVE A *NETWORK* DIRECTIVE
  2185. IX6 X6+X1
  2186. SA5 PTFS RECOVERY MUST HAVE A *RECOVER* DIRECTIVE
  2187. IX6 X6+X5
  2188. ZR X6,PTFX IF NO ERRORS
  2189. ZR X1,PTF8 IF *NETWORK* DIRECTIVE PRESENT
  2190. SA0 X4 SAVE X4
  2191. SB2 B1+B1
  2192. RJ ALC ADVANCE LINE COUNT
  2193. WRITEC R,PTFV *NETWORK* DIRECTIVE(S) REQUIRED
  2194. SX4 A0 RESTORE X4
  2195. PTF8 ZR X5,PTF8.1 IF *RECOVER* DIRECTIVE PRESENT
  2196. BX5 X4 SAVE X4
  2197. SB2 B1+B1
  2198. RJ ALC ADVANCE LINE COUNT
  2199. WRITEC R,PTFW *RECOVER* DIRECTIVE(S) REQUIRED
  2200. BX4 X5 RESTORE X4
  2201. PTF8.1 SA2 PTFAA
  2202. ZR X2,PTF9 IF *USER* COMMAND PRESENT
  2203. BX5 X4 SAVE *PTFO* FLAGS FOR *NETWORK/RECOVER*
  2204. SB2 B1+B1
  2205. RJ ALC ADVANCE LINE COUNT
  2206. WRITEC R,PTFAC * USER COMMAND REQUIRED.*
  2207. BX4 X5 RESTORE *PTFO* FLAGS FOR *NETWORK/RECOVER*
  2208. PTF9 ZR X4,PTF10 IF *RECOVER* AND *NETWORK* ID-S MATCH
  2209. SB2 B1+B1
  2210. RJ ALC ADVANCE LINE COUNT
  2211. WRITEC R,PTFP *RECOVER* AND *NETWORK* ID-S DO NOT MATCH
  2212.  
  2213.  
  2214. PTF10 SB5 PTFF
  2215. EQ ERR ERROR - INCORRECT TCF ENTRIES
  2216.  
  2217. * PROCESS *DISPLAY*.
  2218.  
  2219. PTF11 SA1 PTFC+1 GET PARAMETER
  2220. RJ DSP PROCESS *DISPLAY* DIRECTIVE
  2221. SA0 PTFI
  2222. NZ X3,PTF5 IF ERROR IN DIRECTIVE
  2223. SA6 PTFU INDICATE *K-DISPLAY* STATUS
  2224. MX6 12
  2225. SA6 PTFA INHIBIT MORE *DISPLAY* DIRECTIVES
  2226. EQ PTF2 PROCESS NEXT DIRECTIVE
  2227.  
  2228. * PROCESS *NETWORK*.
  2229.  
  2230. PTF12 SB4 B6-1 ARGUMENT COUNT
  2231. SA4 PTFC+1 FIRST ARGUMENT
  2232. RJ NET PROCESS *NETWORK* DIRECTIVE
  2233. SB4 A0
  2234. NE B4,PTF5 IF DIRECTIVE ERROR
  2235. BX6 X6-X6
  2236. SA6 PTFR INDICATE *NETWORK* DIRECTIVE PRESENT
  2237. SX1 IPTAR
  2238. ZR X1,PTF2 IF AUTO RECOVERY NOT ENABLED
  2239. SA1 PTFO
  2240. SX2 B1
  2241. LX2 X2,B5
  2242. BX6 X1-X2 SET/CLEAR BIT FOR THIS *ID*
  2243. SA6 A1
  2244. EQ PTF2 PROCESS NEXT DIRECTIVE
  2245.  
  2246. * PROCESS *RECOVER*.
  2247.  
  2248. PTF13 SX1 IPTAR-1
  2249. SA0 PTFK * RECOVERY DISABLED.*
  2250. NZ X1,PTF5 IF *RECOVER* INCORRECT
  2251. SA4 PTFC+1 FIRST ARGUMENT
  2252. SB4 B6-1 ARGUMENT COUNT
  2253. RJ RCV PROCESS *RECOVER* DIRECTIVE
  2254. SB4 A0+
  2255. NE B4,PTF5 IF DIRECTIVE ERROR
  2256. SA1 PTFO
  2257. SX2 B1
  2258. LX2 X2,B6
  2259. BX6 X1-X2 SET/CLEAR BIT FOR THIS ID
  2260. SA6 A1
  2261. SX6 B0+
  2262. SA6 PTFS INDICATE *RECOVER* DIRECTIVE PRESENT
  2263. EQ PTF2 PROCESS NEXT DIRECTIVE
  2264.  
  2265. * PROCESS *DMS*.
  2266.  
  2267. PTF14 SA1 PTFC FWA OF UNPACKED DIRECTIVE BUFFER
  2268. RJ DMS PROCESS *DMS*
  2269. SA0 PTFI * PARAMETER ERROR.*
  2270. NZ X5,PTF5 IF ERROR
  2271. EQ PTF2 PROCESS NEXT DIRECTIVE
  2272.  
  2273. * PROCESS BATCH CONCURRENCY COMMAND *TBCON,N.*
  2274.  
  2275. PTF15 SA5 PTFC+B1 NUMBER OF BATCH CONCURRENCY JOBS
  2276. SA0 PTFI *PARAMETER ERROR*
  2277. RJ DXB CONVERT NUMBER
  2278. NZ X4,PTF5 IF CONVERSION ERROR
  2279. EQ PTF2 PROCESS NEXT DIRECTIVE
  2280.  
  2281. * PROCESS *K.COMMAND*
  2282.  
  2283. PTF16 SA1 B0
  2284. LX1 59-8 POSITION TO SENSE SWITCH 3
  2285. NG X1,PTF2 IF RECOVERY MODE SELECTED
  2286. SA1 PTFB FIRST PARAMETER
  2287. SX6 B1 SET *K.COMMAND* MODE
  2288. SA6 KCOF
  2289. RJ SKD PROCESS *K.COMMAND*
  2290.  
  2291. * ENTRY POINT FROM *SKD*.
  2292.  
  2293. PTF17 ZR X2,PTF2 IF NO ERROR
  2294. SA1 PTFZ *K.* ERROR COUNT
  2295. SX6 X1+B1 INCREMENT ERROR COUNT
  2296. SA6 A1
  2297. EQ PTF5 RECORD COUNT ERROR IN REPORT
  2298.  
  2299. * PROCESS *USER* COMMAND.
  2300.  
  2301. PTF18 SA5 PTFAA MUST HAVE ONLY ONE *USER* COMMAND
  2302. SA0 PTFAD
  2303. SB2 X5
  2304. NE B1,B2,PTF5 IF NOT FIRST *USER* COMMAND
  2305. SX6 B0 INDICATE AT LEAST ONE *USER* COMMAND
  2306. SA6 A5
  2307. RJ USR PROCESS *USER* COMMAND
  2308. SX6 A0
  2309. NZ X6,PTF5 IF ERROR OCCURRED
  2310. EQ PTF2 PROCESS NEXT COMMAND
  2311.  
  2312. * TABLE OF VALID DIRECTIVE KEYWORDS.
  2313.  
  2314. PTFA VFD 42/0LDISPLAY,18/PTF11
  2315. VFD 42/0LNETWORK,18/PTF12
  2316. VFD 42/0LRECOVER,18/PTF13
  2317. VFD 42/0LDMS,18/PTF14
  2318. VFD 42/0LK,18/PTF16
  2319. VFD 42/0LTBCON,18/PTF15
  2320. VFD 42/0LACCOUNT,18/PTF18 *ACCOUNT* COMMAND
  2321. VFD 42/0LUSER,18/PTF18 *USER* COMMAND
  2322. CON 0 TABLE TERMINATOR
  2323.  
  2324. PTFB BSSZ 16 BUFFER FOR DIRECTIVE IMAGE
  2325. PTFC BSSZ 80 BUFFER FOR UNPACKED DIRECTIVE
  2326.  
  2327. PTFD DATA C* FILE TCF NOT FOUND.*
  2328. PTFE DATA C* TCF FILE EMPTY.*
  2329. PTFF DATA C* INCORRECT TCF ENTRY.*
  2330.  
  2331. PTFG DATA 40H *** ERROR IN ABOVE DIRECTIVE ***
  2332. PTFGL EQU *-PTFG
  2333. PTFH DATA C* UNKNOWN DIRECTIVE.*
  2334. PTFI DATA C* PARAMETER ERROR.*
  2335. PTFK DATA C* RECOVERY DISABLED.*
  2336. PTFL DATA C* DUPLICATE RECOVER ID.*
  2337. PTFM DATA C* DUPLICATE NETWORK ID.*
  2338.  
  2339. PTFN CON 0 NUMBER OF DIRECTIVE ERRORS
  2340. PTFO CON 0 FLAGS FOR *NETWORK*/*RECOVER* DIRECTIVES
  2341. PTFP DATA 10H
  2342. DATA C* NONMATCHING NETWORK AND RECOVER ID-S*
  2343. PTFQ DATA 20H
  2344. DATA C*TAF CONFIGURATION FILE*
  2345. DATA 1L
  2346. PTFQL EQU *-PTFQ
  2347. PTFR CON 1 MUST BE AT LEAST ONE *NETWORK* DIRECTIVE
  2348. .A IFEQ IPTAR,1
  2349. PTFS CON 1 MUST BE AT LEAST ONE *RECOVER* DIRECTIVE
  2350. .A ELSE
  2351. PTFS CON 0 NO *RECOVER* DIRECTIVES
  2352. .A ENDIF
  2353. PTFU CON 0 SET *K-DISPLAY* IF NONZERO
  2354. PTFV DATA 10H
  2355. DATA C* NETWORK DIRECTIVE(S) REQUIRED.*
  2356. PTFW DATA 10H
  2357. DATA C* RECOVER DIRECTIVE(S) REQUIRED.*
  2358. PTFY DATA 1L
  2359. PTFZ CON 0 *K-COMMAND* ERROR COUNT
  2360. PTFAA CON 1 MUST BE ONLY ONE *USER* COMMAND
  2361. PTFAB DATA C* USER COMMAND NOT VALID ON FAMILY.*
  2362. PTFAC DATA C* USER COMMAND DOES NOT APPEAR IN TCF.*
  2363. PTFAD DATA C* MORE THAN ONE USER COMMAND IN TCF.*
  2364. DSP SPACE 4,10
  2365. ** DSP - PROCESS *DISPLAY* DIRECTIVE.
  2366. *
  2367. * ENTRY (X1) = DISPLAY STATUS.
  2368. *
  2369. * EXIT (X6) = NONZERO IF *K-DISPLAY* TO BE SET.
  2370. * (X3) = 0 IF NO ERROR IN DIRECTIVE.
  2371. *
  2372. * USES X - 2, 3, 6.
  2373. * A - 2.
  2374.  
  2375.  
  2376. DSP SUBR ENTRY/EXIT
  2377. BX6 X6-X6 PRESET DISPLAY OFF
  2378. SA2 DSPA
  2379. BX3 X2-X1
  2380. ZR X3,DSPX IF *OFF*
  2381. SA2 A2+B1
  2382. BX3 X2-X1
  2383. NZ X3,DSPX IF NOT *ON*
  2384. SX6 DSP
  2385. EQ DSPX RETURN
  2386.  
  2387. * TABLE OF VALID DISPLAY STATUSES.
  2388.  
  2389. DSPA VFD 42/0LOFF,18/0
  2390. VFD 42/0LON,18/0
  2391. DSP SPACE 4,20
  2392. ** NET - PROCESS *NETWORK* DIRECTIVE.
  2393. *
  2394. * ENTRY (A4) = ADDRESS OF FIRST ARGUMENT.
  2395. * (B4) = ARGUMENT COUNT.
  2396. *
  2397. * EXIT (A0) = FWA OF ERROR MESSAGE IF ERROR.
  2398. * = 0 IF NO ERROR.
  2399. * (B5) = NETWORK ID.
  2400. *
  2401. * USES X - 1, 2, 5, 6, 7.
  2402. * A - 0, 1, 2, 5, 7.
  2403. * B - 5, 6, 7.
  2404. *
  2405. * CALLS ARG, DXB.
  2406. *
  2407. * MACROS SYSTEM.
  2408.  
  2409.  
  2410. NET SUBR ENTRY/EXIT
  2411. SA0 PTFI * PARAMETER ERROR.*
  2412. SB5 NETA ARGUMENT TABLE
  2413. RJ ARG PROCESS ARGUMENTS
  2414. NZ X1,NETX IF ERRORS
  2415. SA5 ID
  2416. SB7 B1+
  2417. RJ DXB DISPLAY TO BINARY
  2418. NZ X4,NETX IF INCORRECT ID
  2419. SX7 X6-MAXNF
  2420. PL X7,NETX IF INCORRECT ID
  2421. SB5 X6
  2422. SX7 B1+B1
  2423. IX6 X7*X6
  2424. SA1 TFAM+X6+1
  2425. SA0 PTFM * DUPLICATE NETWORK ID.*
  2426. NZ X1,NETX IF ID ALREADY USED
  2427. SB6 X6+
  2428. SYSTEM CPM,R,FM,56B*100B VALIDATE FAMILY/USER NAME
  2429. SA1 UN
  2430. SA0 PTFAB * USER NOT VALID ON FAMILY.*
  2431. SX6 X1+
  2432. ZR X6,NETX IF INCORRECT FAMILY/ USER NAME
  2433. SA2 FM SAVE FAMILY NAME
  2434. BX7 X2
  2435. SA0 B0 INDICATE NO ERROR
  2436. SA7 TFAM+B6
  2437. BX7 X1
  2438. SA7 A7+1 SAVE USER INDEX
  2439. EQ NETX RETURN
  2440.  
  2441. * ARGUMENT TABLE FOR *NETWORK* DIRECTIVE.
  2442.  
  2443. NETA BSS 0
  2444. ID ARG NETB,ID,400B
  2445. FM ARG NETB,FM
  2446. UN ARG NETB,UN
  2447. CON 0 TABLE TERMINATOR
  2448.  
  2449. NETB CON 0 FLAG NONEQUIVALENCED PARAMETERS
  2450. RCV SPACE 4,15
  2451. ** RCV - PROCESS *RECOVER* DIRECTIVE.
  2452. *
  2453. * ENTRY (A4) = ADDRESS OF FIRST ARGUMENT.
  2454. * (B4) = ARGUMENT COUNT.
  2455. *
  2456. * EXIT (A0) = FWA OF ERROR MESSAGE IF ERROR.
  2457. * = 0 IF NO ERROR.
  2458. * (B6) = RECOVER ID.
  2459. *
  2460. * USES X - 1, 4, 5, 6, 7.
  2461. * A - 0, 1, 5, 6.
  2462. * B - 5, 6, 7.
  2463. *
  2464. * CALLS ARG, DXB.
  2465.  
  2466.  
  2467. RCV SUBR ENTRY/EXIT
  2468. SA0 PTFI * PARAMETER ERROR.*
  2469. SB5 RCVA ARGUMENT TABLE
  2470. RJ ARG PROCESS ARGUMENTS
  2471. NZ X1,RCVX IF ERRORS
  2472. SA5 ID
  2473. SB7 B1
  2474. RJ DXB DISPLAY TO BINARY
  2475. SB6 X6
  2476. NZ X4,RCVX IF INCORRECT ID
  2477. SX7 X6-MAXRC
  2478. PL X7,RCVX IF INCORRECT ID
  2479. SA5 NM
  2480. RJ DXB DISPLAY TO BINARY
  2481. NZ X4,RCVX IF INCORRECT *NM*
  2482. SX7 X6-TRMM-1
  2483. PL X7,RCVX IF INCORRECT *NM*
  2484. SA1 TREC+B6
  2485. SA0 PTFL * DUPLICATE RECOVER ID.*
  2486. NZ X1,RCVX IF ID ALREADY USED
  2487. LX6 24
  2488. BX6 X6+X1
  2489. SA6 A1+ SAVE NUMBER OF USER MESSAGES
  2490. SA5 MS
  2491. RJ DXB DISPLAY TO BINARY
  2492. SA0 PTFI * PARAMETER ERROR.*
  2493. NZ X4,RCVX IF INCORRECT *MS*
  2494. SX7 X6-MAXMS
  2495. PL X7,RCVX IF INCORRECT *MS*
  2496. SA1 TREC+B6
  2497. SX4 X6+TRMWL+77B
  2498. AX4 6 PRU-S PER MESSAGE RECORD
  2499. LX4 36
  2500. LX6 12
  2501. BX6 X6+X1
  2502. BX6 X6+X4
  2503. SA6 A1 SAVE MAXIMUM MESSAGE SIZE
  2504. SA0 B0+ SET NO ERROR
  2505. EQ RCVX RETURN
  2506.  
  2507. * ARGUMENT TABLE FOR *RECOVER* DIRECTIVE.
  2508.  
  2509. RCVA BSS 0
  2510. ID ARG RCVB,ID,400B
  2511. NM ARG RCVB,NM
  2512. MS ARG RCVB,MS
  2513. CON 0 TABLE TERMINATOR
  2514.  
  2515. RCVB CON 0 FLAG NON EQUIVALENCED PARAMETERS
  2516. DMS SPACE 4,10
  2517. ** DMS - PROCESS *DMS* DIRECTIVE.
  2518. *
  2519. * ENTRY (A1) = FWA OF UNPACKED DIRECTIVE BUFFER.
  2520. *
  2521. * EXIT (X5) = 0 IF NO ERROR.
  2522. * TO *ERR* IF DB-NAME ERROR.
  2523. *
  2524. * USES X - 0, 1, 2, 4, 5.
  2525. * A - 1, 2.
  2526. * B - 5.
  2527.  
  2528.  
  2529. DMS SUBR ENTRY/EXIT
  2530. MX0 42 MASK FOR PARAMETERS
  2531. SA1 A1+B1
  2532. SA2 DMSA
  2533. DMS1 ZR X2,DMSX IF INCORRECT DATA MANAGER
  2534. BX4 X1-X2
  2535. SA2 A2+B1
  2536. BX5 X0*X4
  2537. NZ X5,DMS1 IF NO MATCH
  2538. SA1 A1+B1 SECOND ARGUMENT (DATA MANAGER STATUS)
  2539. SA2 DMSB
  2540. DMS2 ZR X2,DMSX IF INCORRECT STATUS
  2541. BX4 X1-X2
  2542. SA2 A2+B1
  2543. BX5 X0*X4
  2544. NZ X5,DMS2 IF NO MATCH
  2545. MX0 6
  2546. SX2 1RZ
  2547. LX2 -6
  2548. DMS3 SA1 A1+B1
  2549. SX5 B0
  2550. ZR X1,DMSX IF END OF STATEMENT
  2551. BX4 X0*X1
  2552. BX5 X4-X2
  2553. NZ X5,DMS3 IF *DB-NAME* DOES NOT START WITH *Z*
  2554. SB5 MZDB ISSUE ERROR MESSAGE
  2555. EQ ERR PROCESS ERROR
  2556.  
  2557. * TABLE OF VALID DATA MANAGERS.
  2558.  
  2559. DMSA VFD 42/0LCRM,18/0
  2560. VFD 42/0LTOTAL,18/0
  2561. VFD 42/0LOTHER,18/0
  2562. CON 0 TABLE TERMINATOR
  2563.  
  2564. * TABLE OF VALID STATUS SWITCHES.
  2565.  
  2566. DMSB VFD 42/0LOFF,18/0
  2567. VFD 42/0LON,18/0
  2568. CON 0 TABLE TERMINATOR
  2569. USR SPACE 4,25
  2570. ** USR - PROCESS *USER* COMMAND.
  2571. *
  2572. * THE *USER* COMMAND IS USED TO INDICATE WHICH USER NAME
  2573. * TAF IS TO RUN UNDER. THIS USER NAME MUST BE ASSIGNED THE
  2574. * USER INDEX SPECIFIED BY *TRUI*.
  2575. *
  2576. * USER(UN,PW,FM)
  2577. * ACCOUNT(UN,PW,FM)
  2578. *
  2579. * WHERE UN = USER NAME.
  2580. * PW = PASSWORD.
  2581. * FM = FAMILY.
  2582. *
  2583. * ENTRY (A1) = FWA OF PARAMETER TO CHECK.
  2584. *
  2585. * EXIT (A0) = 0, IF NO ERROR.
  2586. * = FWA OF ERROR MESSAGE, IF ERROR.
  2587. *
  2588. * USES X - 1, 3, 7.
  2589. * A - 0, 1, 7.
  2590. * B - 3, 4.
  2591. *
  2592. * MACROS SETPFP, SYSTEM.
  2593.  
  2594.  
  2595. USR SUBR ENTRY/EXIT
  2596. MX3 42 MASK FOR PARAMETER
  2597. SA1 A1+1 USER NAME
  2598. BX7 X3*X1
  2599. SA7 VUSN
  2600. SA7 USRC
  2601. SA7 UN
  2602. SA1 A1+B1 PASSWORD
  2603. BX7 X3*X1
  2604. SA7 USRB
  2605. SA1 A1+B1 FAMILY NAME
  2606. BX7 X3*X1
  2607. SA7 VFMN
  2608. SA7 USRA
  2609. SA7 FM
  2610.  
  2611. * VALIDATE USER.
  2612.  
  2613. SYSTEM CPM,R,USRA,56B*100B VALIDATE USER NAME
  2614. SA1 USRC GET USER INDEX
  2615. SB3 X1+
  2616. SB4 TRUI USER INDEX TAF MUST RUN UNDER
  2617. SA0 PTFAB *USER* NOT VALID ON FAMILY
  2618. ZR B3,USRX IF INCORRECT USER
  2619. SA1 VFMN RESET FAMILY NAME
  2620. BX7 X1
  2621. SA7 USRA
  2622. SX0 10B *SETPFP* FLAGS
  2623. BX7 X0+X7
  2624. SA7 PFPA *SETPFP* CALL BLOCK
  2625. SETPFP PFPA SET FAMILY
  2626. SA0 B0 NO ERRORS
  2627. EQ USRX EXIT
  2628.  
  2629.  
  2630. USRA VFD 42/0,18/0 FAMILY NAME
  2631. USRB VFD 42/0,18/0 PASSWORD
  2632. USRC VFD 42/0,18/0 USER NAME
  2633. BSSZ 10 PARAMETERS
  2634. PNF SPACE 4,25
  2635. ** PNF - PROCESS NETWORK FILE.
  2636. *
  2637. * READ THE NETWORK DESCRIPTION FILE AND BUILD THE TST.
  2638. * TERMINALS ENTRIES REMAIN IN THE ORDER THEY APPEAR IN THE
  2639. * NETWORK FILE. FOR MULTIPLE NETWORK FILES, THE TERMINALS
  2640. * WILL BE GROUPED BY NETWORK FILE.
  2641. *
  2642. * REFERENCE TO RECOVERY IN THIS ROUTINE DOES NOT RELATE
  2643. * TO AUTOMATIC RECOVERY, BUT RATHER TO THE *K.REC* COMMAND.
  2644. *
  2645. * ENTRY (CUID) = CURRENT ID.
  2646. *
  2647. * EXIT (B5) = FWA OF ERROR MESSAGE.
  2648. * TST BUILT FOR THE NETWORK FILE.
  2649. * TO *ERR* IF ERRORS IN TERMINAL DESCRIPTIONS.
  2650. *
  2651. * USES X - ALL.
  2652. * A - 0, 1, 2, 3, 4, 6, 7.
  2653. * B - 2, 3, 4, 5, 7.
  2654. *
  2655. * CALLS ANF, ATD, SNM, STB.
  2656. *
  2657. * MACROS MESSAGE, READ, RETURN.
  2658.  
  2659.  
  2660. PNF SUBR ENTRY/EXIT
  2661. RJ ANF ATTACH NETWORK FILE
  2662. BX6 X1
  2663. SA6 PNFG SAVE NETWORK FILE NAME
  2664. READ N INITIATE READ
  2665. PNF1 SX5 N FET ADDRESS
  2666. SA0 PNFA SCRATCH TABLE POINTER
  2667. RJ ATD ASSEMBLE TERMINAL DESCRIPTION
  2668. SA3 PNFF ADDRESS OF NEXT ENTRY
  2669. SA0 X3+
  2670. ZR X1,PNF3 IF NO ERROR
  2671. NG X4,PNF6 IF EOR/EOF ENCOUNTERED
  2672. SX5 X2+
  2673. NZ X4,PNF2 IF NOT NULL FILE
  2674. SX5 PNFC * NULL DESCRIPTION FILE.*
  2675. PNF2 SB2 1RX
  2676. SB5 PNFB * FORMAT ERROR IN NETWORK FILE.*
  2677. SA1 PNFG
  2678. RJ SNM SET NAME IN MESSAGE
  2679. MESSAGE PNFB FORMAT ERROR IN TERMINAL DESCRIPTION FILE
  2680. SB5 X5
  2681. EQ ERR PROCESS ERROR
  2682.  
  2683. * BUILD TERMINAL STATUS TABLE FROM NETWORK FILE.
  2684.  
  2685. PNF3 SA1 /COMCRTN/TT. TERMINAL TYPE
  2686. SA3 /COMCRTN/DB. DATA BASE NAME
  2687. SX2 1RZ
  2688. MX0 6
  2689. LX2 -6
  2690. BX4 X0*X3
  2691. BX6 X4-X2
  2692. NZ X6,PNF5 IF VALID *DB-NAME*
  2693. SB5 MZDB ISSUE ERROR MESSAGE
  2694. EQ ERR PROCESS ERROR
  2695.  
  2696. PNF5 LX1 59-11
  2697. PL X1,PNF1 IF NOT A TRANSACTION TERMINAL
  2698. LX3 TSDBS-59
  2699. SA1 /COMCRTN/RS. DATA BASE READ SECURITY LEVEL
  2700. SA2 /COMCRTN/US. DATA BASE UPDATE SECURITY LEVEL
  2701. LX1 TSRSS-TSRSN+1
  2702. SA4 /COMCRTN/TN. TERMINAL NAME
  2703. BX1 X1+X3
  2704. BX6 X4
  2705. SA3 /COMCRTN/UA. USER ARGUMENTS
  2706. LX2 TSUSS-TSUSN+1
  2707. BX7 X1+X2
  2708. SA6 A0+1 SECOND WORD OF TST ENTRY
  2709. BX7 X7+X3
  2710. SA1 /COMCRTN/IS. ON/OFF
  2711. LX1 TSTOS-TSTON+1
  2712. BX7 X7+X1
  2713. SX6 A0+TSTLLE ADVANCE TST POINTER
  2714. SA6 PNFF
  2715. SA1 PRSA
  2716. SA2 VREC *K-DISPLAY* RECOVERY
  2717. MX6 -1
  2718. BX6 -X6*X2
  2719. LX6 TSRBS-0 SET USER RECOVERY BIT IN TST
  2720. BX7 X7+X6
  2721. SA7 A0+
  2722. LX1 59-0
  2723. LX2 59-0
  2724. NG X1,PNF1 IF SENSE SWITCH 3 IS SET
  2725. NG X2,PNF1 IF RECOVERY MODE SELECTED
  2726. SA1 PNFI
  2727. SX6 X1+B1 INCREMENT NUMBER OF ENTRIES
  2728. SA6 A1
  2729. SX6 X6-IPTST-1
  2730. NG X6,PNF1 IF MAXIMUM NOT EXCEEDED
  2731. SB5 PNFJ * MAXIMUM TERMINALS EXCEEDED.*
  2732. EQ ERR PROCESS ERROR
  2733.  
  2734. * SORT TST ON MUX CHANNEL/EQUIPMENT/PORT KEY FOR *TAFTS*.
  2735.  
  2736. PNF6 RETURN N RETURN NETWORK FILE
  2737. SA1 PNFE
  2738. SX6 A0
  2739. SA6 A1 SET FWA OF TST FOR NEXT NETWORK FILE
  2740. IX7 X6-X1 LENGTH OF TST
  2741. SA1 TSTLW
  2742. IX6 X7+X1
  2743. SA6 A1 ADJUST CUMULATIVE LENGTH
  2744. SX2 TSTLLE
  2745. IX7 X7/X2 NUMBER OF TST ENTRIES
  2746. SA3 PNFH
  2747. IX7 X3+X7 UPDATE HIGHEST ORDINAL
  2748. SA7 A3
  2749. LX7 48
  2750. SA1 CUID ID
  2751. SX2 TTFTE
  2752. IX1 X2*X1
  2753. SA7 TSTHD+X1
  2754. SX6 B0+
  2755. SA6 /COMCRTN/ST CLEAR COMCRTN FLAGS FOR NEXT NETWORK FILE
  2756. SA6 /COMCRTN/ATDA
  2757. NZ X7,PNFX IF TRANSACTION TERMINALS DEFINED
  2758. SB2 1RX
  2759. SB5 PNFD * NO TERMINALS IN NETWORK FILE.*
  2760. SA1 PNFG
  2761. RJ SNM SET NAME IN MESSAGE
  2762. EQ ERR PROCESS ERROR
  2763.  
  2764. PNFA VFD 12/0,18/BRTNL,30/BRTN SCRATCH TABLE POINTER
  2765. PNFB DATA C* FORMAT ERROR IN NETWORK FILE - XXXXXXX.*
  2766. PNFC DATA C* NULL DESCRIPTION FILE.*
  2767. PNFD DATA C* NO TERMINALS IN NETWORK FILE - XXXXXXX.*
  2768. PNFE CON TST INITIAL TST ENTRY
  2769. PNFF CON TST+TSTLLE CURRENT TST ENTRY
  2770. PNFG CON 0 NETWORK FILE NAME
  2771. PNFH CON -1 CURRENT HIGHEST TST ORDINAL
  2772. PNFI CON 0 NUMBER OF TERMINAL ENTRIES
  2773. PNFJ DATA C* MAXIMUM TERMINALS EXCEEDED.*
  2774. PNFK DATA C* NO DATA BASE NAME TERMINAL - XXXXXXX.*
  2775. ANF SPACE 4,30
  2776. ** ANF - ATTACH NETWORK DESCRIPTOR FILE.
  2777. *
  2778. * THIS ROUTINE ATTACHES THE NETWORK DESCRIPTION FILE *NCTFI*
  2779. * WHERE THE *I* WAS SPECIFIED BY THE *ID* PARAMETER ON THE
  2780. * *NETWORK* STATEMENT. THE FILE RESIDES UNDER THE FAMILY AND
  2781. * USER NAME SPECIFIED ON THIS *NETWORK* STATEMENT.
  2782. *
  2783. * ENTRY (CUID) = CURRENT ID.
  2784. *
  2785. * EXIT (X1) = NETWORK FILE NAME.
  2786. * (B5) = FWA OF ERROR MESSAGE.
  2787. * TO *ERR* IF NETWORK FILE NOT FOUND.
  2788. *
  2789. * USES X - 1, 2, 3, 5, 6.
  2790. * A - 1, 2, 3, 6.
  2791. * B - 2, 5.
  2792. *
  2793. * CALLS SNM.
  2794. *
  2795. * MACROS ATTACH, SETPFP.
  2796.  
  2797.  
  2798. ANF SUBR ENTRY/EXIT
  2799. SX2 1R0
  2800. SA1 CUID ID
  2801. IX2 X1+X2 BINARY TO DISPLAY
  2802. LX1 1 OFFSET INTO *TFAM*
  2803. SA1 TFAM+X1 FAMILY NAME
  2804. SA3 A1+B1 USER INDEX
  2805. BX6 X1
  2806. SA6 ANFG SAVE FAMILY NAME
  2807. SX5 13B *SETPFP* FLAGS
  2808. BX6 X5+X6
  2809. SA6 PFPA *SETPFP* CALL BLOCK
  2810. BX6 X3
  2811. SA6 PFPA+2
  2812. SA1 ANFA
  2813. LX2 35-5
  2814. BX6 X1+X2 NETWORK FILE NAME
  2815. SA6 ANFF
  2816. SX2 PTRD
  2817. BX6 X6+X2
  2818. SA6 N+CFPN SET NAME IN FET
  2819. SETPFP PFPA SET PERMANENT FILE PARAMETERS
  2820. ATTACH N ATTACH NETWORK FILE
  2821. SA1 N
  2822. MX2 8
  2823. LX1 59-17
  2824. BX2 X2*X1
  2825. SA1 ANFF GET NETWORK FILE NAME
  2826. ZR X2,ANFX IF FILE AVAILABLE
  2827. SB2 1RX
  2828. SB5 ANFE * NETWORK FILE NOT FOUND.*
  2829. RJ SNM SET NAME IN MESSAGE
  2830. EQ ERR PROCESS ERROR
  2831.  
  2832. ANFA VFD 42/0LNCTF,18/0
  2833. ANFD CON 0 MACHINE ID
  2834. ANFE DATA C* NETWORK FILE NOT FOUND - XXXXXXX.*
  2835. ANFF BSS 1 NETWORK FILE BEING PROCESSED
  2836. ANFG BSS 1 FAMILY NAME OF CURRENT NETWORK FILE
  2837. RKD SPACE 4,15
  2838. ** RKD - RESTART *K-DISPLAY*.
  2839. *
  2840. * RECOVER PARAMETERS ENTERED FROM THE *K-DISPLAY* AT
  2841. * *TAF* INITIALIZATION AND STORE THEM IN THE *K-DISPLAY*
  2842. * BUFFER AND REPORT FILE BUFFER.
  2843. *
  2844. * ENTRY LOW CM POINTERS AVAILABLE.
  2845. *
  2846. * USES X - ALL.
  2847. * A - 1, 6, 7.
  2848. * B - 2.
  2849. *
  2850. * CALLS CDD, COD, SFN.
  2851.  
  2852.  
  2853. RKD SUBR ENTRY/EXIT
  2854. SA1 VNSCP SUB CONTROL POINTS
  2855. LX1 -24
  2856. RJ CDD CONVERT TO DISPLAY
  2857. MX0 18
  2858. LX4 -18
  2859. SA1 RKDA
  2860. BX6 -X0*X4
  2861. BX6 X1+X6
  2862. SA6 KSCP+B1
  2863. SA6 DIS1+B1
  2864. SA1 VNCMB COMMUNICATION BLOCKS
  2865. LX1 -24
  2866. RJ CDD
  2867. LX4 -18
  2868. BX6 -X0*X4
  2869. SA1 RKDA
  2870. BX6 X1+X6
  2871. SA6 KCMB+B1
  2872. SA6 DIS2+B1
  2873. SA1 VREC USER RECOVERY
  2874. LX1 -24
  2875. SA1 RKDB+X1
  2876. BX6 X1
  2877. SA6 KREC+B1
  2878. SA6 DIS4+B1
  2879. SA1 VMFL MAXIMUM FL
  2880. RJ COD CONVERT TO OCTAL DISPLAY
  2881. MX3 -6
  2882. SB2 60
  2883. SX2 1R
  2884. SX1 1RB ADD -B- TO NUMBER
  2885. RKD1 LX4 6
  2886. SB2 B2-6
  2887. BX5 -X3*X4
  2888. IX5 X5-X2
  2889. NZ X5,RKD1 IF NOT BLANK
  2890. BX4 X3*X4
  2891. BX4 X4+X1 MERGE IN -B-
  2892. LX4 B2 REPOSITION
  2893. LX4 -18
  2894. BX6 -X0*X4
  2895. SA1 RKDA
  2896. BX6 X1+X6
  2897. SA6 KMFL+B1
  2898. SA6 DIS5+B1
  2899. SA1 VECS MAXIMUM EXTENDED MEMORY
  2900. LX1 -9
  2901. RJ COD CONVERT TO OCTAL DISPLAY
  2902. MX3 -6
  2903. SB2 60
  2904. SX2 1R
  2905. SX1 1RK ADD -K- TO NUMBER
  2906. RKD2 LX4 6
  2907. SB2 B2-6
  2908. BX5 -X3*X4
  2909. IX5 X5-X2
  2910. NZ X5,RKD2 IF NOT BLANK
  2911. BX4 X3*X4
  2912. BX4 X4+X1 MERGE IN -K-
  2913. LX4 B2 REPOSITION
  2914. LX4 -18
  2915. SA1 RKDA
  2916. BX6 -X0*X4
  2917. BX6 X1+X6
  2918. SA6 KECS+B1
  2919. SA6 DIS6+B1
  2920. SA1 VTFL TASK LIBRARY FILE
  2921. MX2 -1
  2922. BX1 X2*X1
  2923. RJ SFN SPACE FILL NAME
  2924. LX6 -18
  2925. BX6 -X0*X6
  2926. SA1 RKDA
  2927. BX6 X1+X6
  2928. SA6 KTLF+B1
  2929. SA6 DIS7+B1
  2930. SA1 BLNK UPDATE REPORT FILE HEADER
  2931. SA2 RKDC
  2932. BX6 X1
  2933. BX7 X2
  2934. SA6 SKDE+1
  2935. SA7 A6+1
  2936. EQ RKDX RETURN
  2937.  
  2938. RKDA VFD 60/3L =
  2939. RKDB DATA 10H = NO
  2940. DATA 10H = YES
  2941. RKDC DATA 10H RESTART
  2942. SRS SPACE 4,25
  2943. ** SRS - SET RECOVERY STATUS.
  2944. *
  2945. * ATTEMPT TO ATTACH THE *CRF* FROM THE FAMILY/USERNAME
  2946. * SPECIFIED ON THE NETWORK DIRECTIVE. IF NOT FOUND, ATTEMPT
  2947. * TO ATTACH THE ALTERNATE *CRF* (CRFAI). IF *CRFAI* FOUND,
  2948. * CHANGE ITS NAME TO *CRFI*. IF NEITHER *CRFI* OR *CRFAI* ARE
  2949. * FOUND BUT INITIALIZE STATUS WAS SET VIA THE *K.INT* COMMAND,
  2950. * THEN DEFINE *CRFI*.
  2951. *
  2952. * ENTRY (CUID) = CURRENT ID.
  2953. *
  2954. * EXIT *CRF* LOCAL.
  2955. * (B5) = FWA OF ERROR MESSAGE.
  2956. * TO *ERR* IF CRF NOT FOUND AND INITIALIZE FLAG NOT SET.
  2957. *
  2958. * USES X - 1, 2, 5, 6.
  2959. * A - 1, 6.
  2960. * B - 2, 5.
  2961. *
  2962. * CALLS SNM.
  2963. *
  2964. * MACROS ATTACH, CHANGE, DEFINE.
  2965.  
  2966.  
  2967. SRS SUBR ENTRY/EXIT
  2968. SA1 CUID CURRENT ID
  2969. SX2 1R0
  2970. IX5 X2+X1 BINARY TO DISPLAY
  2971. LX5 29-5
  2972. SA1 RFN
  2973. SX2 B1
  2974. BX6 X1+X5 *CRFI*
  2975. SA6 CRF+CFPN
  2976. SA6 CRF+CFNF
  2977. BX6 X6+X2 COMPLETE BIT
  2978. SA6 CRF STORE IN FET
  2979. ATTACH CRF ATTACH *CRF*
  2980. SA1 CRF
  2981. MX2 8
  2982. LX1 59-17
  2983. BX2 X2*X1
  2984. ZR X2,SRSX IF FILE FOUND
  2985. SA1 RFNA
  2986. LX5 35-41
  2987. BX6 X1+X5 *CRFAI*
  2988. SA6 CRF+CFPN
  2989. ATTACH CRF ATTACH ALTERNATE *CRF*
  2990. MX2 8
  2991. SA1 CRF
  2992. LX1 59-17
  2993. BX2 X2*X1
  2994. NZ X2,SRS1 IF FILE NOT FOUND
  2995. CHANGE CRF CHANGE NAME TO *CRFI*
  2996. EQ SRSX RETURN
  2997.  
  2998. * RECOVERY FILE WAS NOT FOUND. IF INITIALIZE WAS SPECIFIED
  2999. * DEFINE THE RECOVERY FILE.
  3000.  
  3001. SRS1 SA1 CUID
  3002. SA1 TREC+X1
  3003. MX6 -3
  3004. BX6 -X6*X1 STATUS
  3005. SX6 X6-IST
  3006. NZ X6,SRS2 IF NOT INITIALIZE
  3007. SA1 CRF+CFNF
  3008. BX6 X1 CORRECT FILE NAME
  3009. SA6 CRF+CFPN
  3010. DEFINE CRF
  3011. EQ SRSX RETURN
  3012.  
  3013. * ABORT *TAFREC* WHEN THE RECOVERY FILE NOT FOUND AND
  3014. * INITIALIZATION NOT SPECIFIED.
  3015.  
  3016. SRS2 SA1 CRF
  3017. MX2 42
  3018. BX1 X2*X1
  3019. SB2 1RX
  3020. SB5 SRSA * COMMUNICATIONS RECOVERY FILE NOT FOUND.*
  3021. RJ SNM SET NAME IN MESSAGE
  3022. EQ ERR PROCESS ERROR
  3023.  
  3024. SRSA DATA C* TAF COMM. RECOVERY FILE NOT FOUND - XXXXXXX.*
  3025. PKC SPACE 4,20
  3026. SKD SPACE 4,25
  3027. ** SKD - SET *K-DISPLAY*.
  3028. *
  3029. * FORMAT AND DIPLAY THE INITIAL *K-DISPLAY* AND ACCEPT
  3030. * OPERATOR ENTERED CHANGES AND/OR COMMANDS AND *K.COMMANDS*
  3031. * FROM THE *TCF* FILE.
  3032. *
  3033. * COMMANDS ARE OF THE FORM -
  3034. * K.CMD = PARAMETERS.
  3035. *
  3036. * WHERE CMD = A THREE CHARACTER COMMAND.
  3037. * PARAMETERS = 1-15 CHARACTERS ( A-Z 0-9 , )
  3038. * TERMINATED BY A PERIOD.
  3039. *
  3040. * IF A VALID COMMAND IS ENTERED, *SKD* JUMPS TO THE
  3041. * COMMAND PROCESSOR.
  3042. *
  3043. * ENTRY (A1) = FWA OF STATEMENT BUFFER, IF (KCOF) .NE. 0.
  3044. *
  3045. * EXIT TO *PTF17* IF CONSOLE COMMAND.
  3046. * TO *PTF5* IF UNPACK ERRORS ON TCF FILE DATA.
  3047. *
  3048. * USES X - ALL.
  3049. * A - 0, 1, 2, 3, 5, 6, 7.
  3050. * B - 2, 3, 4, 5, 6, 7.
  3051. *
  3052. * CALLS UPC, ZTB.
  3053. *
  3054. * MACROS CONSOLE, RECALL, WRITEW.
  3055.  
  3056.  
  3057. SKD SUBR ENTRY/EXIT
  3058. SA2 KCOF CHECK COMMAND ORIGIN
  3059. NZ X2,SKD4 IF NOT CONSOLE MODE
  3060. SX6 SKDE
  3061. SX7 SKDEL
  3062. SA6 SBHD SUB HEADING ADDRESS
  3063. SA7 A6+B1 LENGTH
  3064. SX6 B1+B1 SUBHEADING LINE COUNT
  3065. SA6 A7+B1
  3066. SX6 LINP
  3067. SA6 LCNT FORCE NEW PAGE
  3068. SB7 5 ASSUME DECIMAL BASE FOR DXB,ALSO CNSTNT 5
  3069. CONSOLE KCTRL SET *K-DISPLAY* REQUEST
  3070. SKD1 SA1 KCOF COMMAND ORIGIN
  3071. SX2 B0+
  3072. NZ X1,PTF17 IF NOT CONSOLE COMMAND
  3073. SX6 B0+
  3074. SA6 KBUF SET INPUT PROCESSED INDICATOR
  3075. SA6 KILL TURN OFF ERROR MESSAGE
  3076. SA6 KILL1
  3077. SA6 SKDD
  3078. SKD2 SA1 KBUF
  3079. NZ X1,SKD3 IF INPUT TO PROCESS
  3080. RECALL
  3081. EQ SKD2 LOOP
  3082.  
  3083. * PROCESS CONSOLE INPUT.
  3084.  
  3085. SKD3 SB2 B0+
  3086. SB3 5
  3087. SKD3.1 SA1 KBUF+B2
  3088. RJ ZTB CONVERT TRAILING ZEROES TO BLANKS
  3089. SB2 B2+B1
  3090. SA6 A1 ALLOW MISSING TERMINATOR TO BE LEGAL
  3091. SA6 KBUF1+B2 ECHO DSD INPUT TO K-DISPLAY
  3092. LT B2,B3,SKD3.1 IF NOT END OF INPUT BUFFER
  3093. SA5 KBUF UNPACK STATEMENT
  3094. SB7 PTFC
  3095. RJ UPC UNPACK
  3096. SA1 PTFC-1
  3097. ZR X6,SKD8 IF NO UNPACK ERRORS
  3098. EQ SKD14 UNPACK ERRORS
  3099.  
  3100. * PROCESS *TCF* *K.COMMANDS*
  3101.  
  3102. SKD4 MX4 6
  3103. SB3 B0
  3104. SX2 1R. SET *.* AS SEARCH CHARACTER
  3105. LX2 59-5
  3106. SA0 PTFF *INCORRECT TCF ENTRIES.*
  3107. SKD5 SA1 A1+B3 FETCH BUFFER BLOCK
  3108. SB3 B3+B1 INCREMENT WORD COUNT
  3109. SB4 B3-16
  3110. ZR B4,PTF5 IF NO PERIOD IN STATEMENT
  3111. SB5 B0+ CLEAR SHIFT COUNT
  3112. SKD6 BX3 X4*X1 CHECK FOR *.*
  3113. IX3 X3-X2
  3114. ZR X3,SKD7 IF FOUND
  3115. SB5 B5+6 SHIFT COUNT
  3116. SB4 B5-60
  3117. ZR B4,SKD5 IF NOT FOUND
  3118. LX1 6
  3119. EQ SKD6 CHECK NEXT CHARACTER
  3120.  
  3121. SKD7 MX0 -54 MASK OUT THE *.*
  3122. BX1 -X0*X1
  3123. SX2 1R, *,* TO INSERT FOR UPC CALL
  3124. LX2 59-5
  3125. BX1 X1+X2
  3126. SB3 60
  3127. SB5 B3-B5
  3128. LX6 X1,B5 SHIFT BACK TO ORIGINAL POSITION
  3129. SA6 A1+ RESTORE WORD IN BUFFER
  3130. SA5 PTFB FIRST WORD TO UNPACK
  3131. SB7 PTFC FWA TO UNPACK INTO
  3132. RJ UPC UNPACK
  3133. SA1 PTFC
  3134. ZR X6,SKD8 IF NO UNPACK ERRORS
  3135. SA0 PTFF *INCORRECT TCF ENTRIES*
  3136. EQ PTF5 REPORT ERROR
  3137.  
  3138. SKD8 SA1 A1+B1
  3139. MX0 42
  3140. BX1 X0*X1 MASK OUT THE SEPERATOR
  3141. SA2 SKDC-1 VALID COMMAND TABLE
  3142. SKD9 SA2 A2+B1 GET NEXT *K.COMMAND*
  3143. ZR X2,SKD14 IF END OF TABLE
  3144. BX3 X0*X2
  3145. IX4 X1-X3
  3146. NZ X4,SKD9 IF NO MATCH
  3147. SA3 A1+B1 GET SECOND PARAMETER
  3148. BX3 X0*X3
  3149. BX7 X3
  3150. ZR X3,SKD13 IF SECOND PARAMETER ZERO
  3151. SA1 A3+B1 GET THIRD PARAMETER
  3152. BX1 X0*X1
  3153. BX6 X1
  3154. MX0 6
  3155. ZR X6,SKD13 IF NEXT PARAMETER ZERO
  3156. SB2 B0
  3157. BX4 X7
  3158. SKD10 SB2 B2+6 COUNT CHARACTERS IN SECOND PARAMETER
  3159. ZR X4,SKD11 IF NEXT CHARACTER IS ZERO
  3160. LX7 6
  3161. BX4 X0*X7
  3162. EQ SKD10 CHECK NEXT CHARACTER
  3163.  
  3164. SKD11 AX6 B2,X6
  3165. MX4 1 REMOVE SIGN EXTENSION
  3166. SB3 B2-1
  3167. AX4 X4,B3 VARIABLE MASK
  3168. PL X6,SKD12 IF SIGN EXTEND IS ZEROS
  3169. BX6 -X4*X6
  3170. SKD12 BX7 X6+X3
  3171. SB3 60
  3172. SB3 B3-B2
  3173. LX6 X1,B3
  3174. BX6 X4*X6
  3175. SX1 1R, ADD A *,* FOR RECEIVING ROUTINES
  3176. LX1 53-5
  3177. SB2 B2-12
  3178. AX1 X1,B2
  3179. IX7 X7+X1
  3180. SKD13 SB3 X2
  3181. JP B3 PROCESS THE *K.COMMAND*
  3182.  
  3183. * SET INCORRECT INPUT MESSAGE ON SCREEN.
  3184.  
  3185. SKD14 SA2 KCOF
  3186. SA0 KCNV * K.COMMAND NOT VALID.*
  3187. NZ X2,PTF17 IF NOT CONSOLE COMMAND
  3188. SA1 KILL2 FIRST LINE OF ERROR MESSAGE
  3189. MX7 0
  3190. BX6 X1
  3191. SA6 KILL SET INTO ERROR LINE POSITION
  3192. SA7 KBUF
  3193. SA7 SKDD
  3194. EQ SKD2 WAIT FOR NEXT INPUT
  3195.  
  3196. * IF END OF *K-DISPLAY* WRITE IT TO REPORT FILE.
  3197.  
  3198. SKD15 SA1 KCOF
  3199. ZR X1,SKD16 IF CONSOLE ORIGIN
  3200. SX2 B0+ CLEAR ERROR FLAG
  3201. EQ SKDX RETURN
  3202.  
  3203. SKD16 CONSOLE SKDB TURN OFF *K-DISPLAY*
  3204. SB2 30
  3205. RJ ALC ADVANCE LINE COUNT
  3206. WRITEW R,DISP,DISPL WRITE *K-DISPLAY* TO REPORT FILE
  3207. EQ SKDX RETURN
  3208.  
  3209.  
  3210. SKDA VFD 6/1R0,54/0 UPPER DISPLAY CODE LIMIT FOR COMMAND CHARS
  3211.  
  3212. SKDB CON 0 ZERO WORD TO TURN OFF *K-DISPLAY*
  3213.  
  3214. * TABLE OF VALID *K-DISPLAY* COMMANDS.
  3215.  
  3216. SKDC VFD 42/0LSCP,18/SCP
  3217. VFD 42/0LCMB,18/CMB
  3218. VFD 42/0LREC,18/REC
  3219. VFD 42/0LMFL,18/MFL
  3220. VFD 42/0LECS,18/ECS
  3221. VFD 42/0LTLF,18/TLF
  3222. VFD 42/0LINT,18/INT
  3223. VFD 42/0LERO,18/ERO
  3224. VFD 42/0LBFL,18/BFL
  3225. VFD 42/0LEFL,18/EFL
  3226. VFD 42/0LTFL,18/TFL
  3227. VFD 42/0LSTOP,18/STP
  3228. VFD 42/0LEND,18/SKD15
  3229. VFD 42/0LGO,18/SKD15
  3230. CON 0 TABLE TERMINATOR
  3231.  
  3232. SKDD BSSZ 1 FIRST 10 CHARACTERS OF PARAMETER
  3233.  
  3234. SKDE DATA 10H
  3235. DATA C* INITIALIZATION K-DISPLAY*
  3236. DATA 1L
  3237. SKDEL EQU *-SKDE
  3238. SPACE 4,10
  3239. ** INITIALIZATION *K-DISPLAY* COMMANDS.
  3240. *
  3241. * THE FOLLOWING COMMANDS CAN BE USED TO CHANGE PARAMETERS
  3242. * USED BY *TAF* AND THE DATA MANAGER FOR INITIALIZATION, AND
  3243. * TO INITIALIZE VARIOUS FILES USED BY *TAF*.
  3244. SCP SPACE 4,20
  3245. ** K.SCP=N.
  3246. *
  3247. * CHANGE THE NUMBER OF SUBCONTROL POINTS.
  3248. *
  3249. * ENTRY (X7) = NUMBER OF SUBCONTROL POINTS IN DISPLAY CODE.
  3250. *
  3251. * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
  3252. * TO *SKD14* IF ERROR IN PARAMETER.
  3253. *
  3254. * USES X - 1, 2, 3, 4, 5, 6, 7.
  3255. * A - 2, 6, 7.
  3256. * B - 2.
  3257. *
  3258. * CALLS CDD, DXB, UKD.
  3259.  
  3260.  
  3261. SCP BSS 0 ENTRY
  3262. BX5 X7
  3263. RJ DXB CONVERT EQUIVALENCED FIELD TO NUMBER
  3264. NZ X5,SKD14 IF ERROR IN NUMBER
  3265. SX2 X6-MINSCP
  3266. NG X2,SKD14 IF INCORRECT SUBCP COUNT
  3267. SB2 X6-MAXSCP
  3268. GT B2,SKD14 IF INCORRECT SUBCP
  3269. BX1 X6
  3270. LX6 24
  3271. SA6 VNSCP RESET SUBCP COUNT FOR INITIALIZATION
  3272. RJ CDD CONVERT DECIMAL TO DISPLAY CODE
  3273. SA2 KSCP+1 *SCP* WORD IN DISPLAY
  3274. SB5 DIS1+1 UPDATE REPORT
  3275. SB6 B1
  3276. RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
  3277. EQ SKD1 PROCESS NEXT INPUT
  3278. CMB SPACE 4,20
  3279. ** K.CMB=N.
  3280. *
  3281. * CHANGE THE NUMBER OF COMMUNICATION BLOCKS.
  3282. *
  3283. * ENTRY (X7) = NUMBER OF COMMUNICATION BLOCKS IN DISPLAY
  3284. * CODE.
  3285. *
  3286. * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
  3287. * TO *SKD14* IF ERROR IN PARAMETER.
  3288. *
  3289. * USES X - 1, 2, 3, 4, 5, 6, 7.
  3290. * A - 2, 6, 7.
  3291. * B - 2.
  3292. *
  3293. * CALLS CDD, DXB, UKD.
  3294.  
  3295.  
  3296. CMB BSS 0 ENTRY
  3297. BX5 X7
  3298. RJ DXB CONVERT DISPLAY CODE TO BINARY
  3299. NZ X4,SKD14 IF ERROR IN NUMBER
  3300. SX2 X6-MINCMB
  3301. NG X2,SKD14 IF INCORRECT C.B. COUNT
  3302. SB2 X6-MAXCMB
  3303. GT B2,SKD14 IF INCORRECT C.B. COUNT
  3304. BX1 X6
  3305. LX6 24
  3306. SA6 VNCMB RESET C.B. COUNT
  3307. RJ CDD LEFT JUSTIFY NUMBER
  3308. SA2 KCMB+1 *CMB* WORD IN DISPLAY
  3309. SB5 DIS2+1 UPDATE REPORT
  3310. SB6 B1
  3311. RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
  3312. EQ SKD1 PROCESS NEXT INPUT
  3313. REC SPACE 4,15
  3314. ** K.REC=AA.
  3315. *
  3316. * SET USER RECOVERY, *CRM* RECOVERY, OR BOTH.
  3317. *
  3318. * ENTRY (X7) = USER RECOVERY OPTION.
  3319. *
  3320. * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
  3321. * TO *SKD14* IR ERROR IN PARAMETER.
  3322. *
  3323. * USES X - 1, 2, 3, 7.
  3324. * A - 1, 2, 6, 7.
  3325. *
  3326. * CALLS SFN.
  3327.  
  3328.  
  3329. REC BSS 0 ENTRY
  3330. BX1 X7
  3331. RJ SFN SPACE FILL ANSWER
  3332. SA1 RECA *YES*
  3333. SA2 A1+B1 *NO*
  3334. BX3 X1-X6
  3335. SA1 RECB *CRM*
  3336. SX7 1 SET USER RECOVERY FLAG
  3337. ZR X3,REC1 IF *YES*
  3338. BX3 X2-X6
  3339. SX7 B0 TURN OFF USER RECOVERY FLAG
  3340. ZR X3,REC2 IF *NO*
  3341. BX3 X1-X6
  3342. NZ X3,SKD14 IF INCORRECT INPUT
  3343. EQ SKD1 PROCESS NEXT INPUT
  3344.  
  3345. REC1 SA1 VREC
  3346. BX7 X7+X1
  3347. REC2 SA6 KREC+1
  3348. SA7 VREC SET USER RECOVERY FLAG
  3349. SA6 DIS4+1 UPDATE REPORT
  3350. EQ SKD1 PROCESS NEXT INPUT
  3351.  
  3352. RECA DATA 10HYES
  3353. DATA 10HNO
  3354. RECB DATA 10HCRM
  3355. MFL SPACE 4,20
  3356. ** K.MFL=NNNNNN.
  3357. *
  3358. * CHANGE THE MAXIMUM FIELD LENGTH THAT *TAF* IS TO USE. THIS
  3359. * PARAMETER IS ALSO DYNAMICALLY CHANGEABLE WHILE *TAF* IS
  3360. * RUNNING.
  3361. *
  3362. * ENTRY (X7) = FIELD LENGTH IN DISPLAY CODE.
  3363. *
  3364. * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
  3365. * TO *SKD14* IF ERROR IN PARAMETER.
  3366. *
  3367. * USES X - 1, 2, 3, 4, 5, 6, 7.
  3368. * A - 2, 6, 7.
  3369. * B - 2, 3, 4, 7.
  3370. *
  3371. * CALLS COD, DXB, UKD.
  3372.  
  3373.  
  3374. MFL BSS 0 ENTRY
  3375. BX5 X7
  3376. SB7 B0 ASSUME OCTAL CONVERSION
  3377. RJ DXB CONVERT DISPLAY CODE TO BINARY
  3378. SB7 5
  3379. NZ X4,SKD14 IF ERROR IN NUMBER
  3380. SX3 MAXMFL+1 MAXIMUM FIELD LENGTH ALLOWED
  3381. NO
  3382. IX4 X6-X3
  3383. PL X4,SKD14 IF INCORRECT FILED LENGTH COUNT
  3384. SX2 X6-MINMFL
  3385. NG X2,SKD14 IF INCORRECT FIELD LENGTH COUNT
  3386. SA6 VMFL RESET FIELD LENGTH VALUE
  3387. BX1 X6
  3388. RJ COD LEFT JUSTIFY NUMBER
  3389. SA2 KMFL+1 *MFL* WORD IN DISPLAY
  3390. SX3 1RB ADD *B*
  3391. SB5 DIS5+1 UPDATE REPORT
  3392. SB6 B0
  3393. RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
  3394. EQ SKD1 PROCESS NEXT INPUT
  3395. ECS SPACE 4,15
  3396. ** K.ECS=NNNNN.
  3397. *
  3398. * CHANGE THE EXTENDED MEMORY LENGTH REQUIRED FOR *TAF*.
  3399. *
  3400. * ENTRY (X7) = EXTENDED MEMORY FIELD LENGTH IN DISPLAY CODE.
  3401. *
  3402. * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
  3403. * TO *SKD14* IF ERROR IN PARAMETER.
  3404. *
  3405. * USES X - 1, 2, 3, 4, 5, 6, 7.
  3406. * A - 2, 6, 7.
  3407. * B - 2, 3, 4, 7.
  3408. *
  3409. * CALLS COD, DXB, UKD.
  3410.  
  3411.  
  3412. ECS BSS 0 ENTRY
  3413. BX5 X7
  3414. SB7 B0 ASSUME OCTAL CONVERSION
  3415. RJ DXB CONVERT DISPLAY TO BINARY
  3416. SB7 5
  3417. NZ X4,SKD14 IF ERROR IN NUMBER
  3418. SX3 MAXECS+1 MAXIMUM ECS FIELD LENGTH ALLOWED
  3419. IX4 X6-X3
  3420. PL X4,SKD14 IF MORE THAN MAXIMUM REQUESTED
  3421. SX2 X6-MINECS
  3422. NG X2,SKD14 IF LESS THAN MINIMUM REQUESTED
  3423. LX6 9
  3424. SA6 VECS SET EXTENDED MEMORY FIELD LENGTH
  3425. LX6 -9
  3426. BX1 X6
  3427. RJ COD CONVERT OCTAL TO DISPLAY
  3428. SA2 KECS+1 *EXTENDED MEMORY* WORD IN DISPLAY
  3429. SX3 1RK ADD *K*
  3430. SB5 DIS6+1 UPDATE REPORT
  3431. SB6 B0
  3432. RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
  3433. EQ SKD1 PROCESS NEXT INPUT
  3434. TLF SPACE 4,15
  3435. ** K.TLF=FILE NAME.
  3436. *
  3437. * CHANGE THE NAME OF THE TASK LIBRARY FILE.
  3438. *
  3439. * ENTRY (X7) = TASK LIBRARY FILE NAME.
  3440. *
  3441. * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
  3442. *
  3443. * USES X - 1, 2, 3, 6, 7.
  3444. * A - 2, 6, 7.
  3445. *
  3446. * CALLS SFN, UKD.
  3447.  
  3448.  
  3449. TLF BSS 0
  3450. SX6 B1
  3451. BX6 X6+X7 SET STATUS OF ONE
  3452. SA6 VTFL
  3453. BX1 X7
  3454. RJ SFN SPACE FILL NAME
  3455. SA2 KTLF+1 FILE NAME IN DISPLAY
  3456. BX4 X6
  3457. SB5 DIS7+1 UPDATE REPORT
  3458. SB6 1
  3459. RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
  3460. EQ SKD1 PROCESS NEXT INPUT
  3461. INT SPACE 4,30
  3462. ** K.INT=P1,P2.
  3463. *
  3464. * INITIALIZE FILE COMMAND.
  3465. *
  3466. * P1 = CRF - COMMUNICATIONS RECOVERY FILE.
  3467. * CRM - *CRM* RECOVERY FILES.
  3468. *
  3469. * P2 = ALL - INITIALIZE ALL.
  3470. * NONE - INITIALIZE NONE (RECOVER).
  3471. * IJKLMNO - INITIALIZE THOSE DEFINED BY THE
  3472. * OCTAL DIGITS IN *IJKLMNO*.
  3473. * THIS OPTION NOT VALID FOR P1=CRM.
  3474. * REPEATED USE OF THIS OPTION HAS
  3475. * CUMULATIVE AFFECT IF DIFFERENT
  3476. * DIGITS ARE USED.
  3477. *
  3478. * ENTRY (X7) = FIRST TEN CHARACTERS.
  3479. * (X6) = LAST CHARACTER.
  3480. *
  3481. * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
  3482. * TO *SKD14* IF ERROR IN PARAMETER.
  3483. *
  3484. * USES X - ALL.
  3485. * A - 1, 2, 3, 4, 6, 7.
  3486. * B - 2, 3, 5, 6.
  3487. *
  3488. * CALLS SFN.
  3489.  
  3490.  
  3491. INT BSS 0 ENTRY
  3492. SA7 INTD SAVE PARAMETERS
  3493. SA6 INTE
  3494. MX0 24
  3495. BX4 X0*X7 EXTRACT FILE TYPE
  3496. SA1 INTA-1
  3497. INT1 SA1 A1+B1
  3498. ZR X1,SKD14 IF INCORRECT FILE TYPE
  3499. BX2 X0*X1
  3500. BX2 X4-X2
  3501. NZ X2,INT1 IF NO MATCH
  3502. SB3 X1
  3503. JP B3 JUMP TO PROCESSOR
  3504.  
  3505. * PROCESS *CRF*.
  3506.  
  3507. INT2 SX2 IPTAR
  3508. SB2 MAXRC-1
  3509. SB3 INTH
  3510. NZ X2,INT3 IF AUTOMATIC RECOVERY DEFINED
  3511. SA1 INTF
  3512. SA2 A1+B1
  3513. BX6 X1
  3514. BX7 X2
  3515. SA6 KILL1 ADD SPECIFIC ERROR MESSAGE
  3516. SA7 A6+B1
  3517. EQ SKD14 DISPLAY ERROR MESSAGE
  3518.  
  3519. INT3 LT B2,INT4 IF ALL ID-S DONE
  3520. SA4 TREC+B2
  3521. MX3 59
  3522. BX6 X3*X4 CLEAR RECOVERY BIT
  3523. SA6 B3+B2
  3524. SB2 B2-B1
  3525. EQ INT3 NEXT ID
  3526.  
  3527. INT4 SA4 INTE
  3528. BX6 X4
  3529. BX4 -X0*X7 FIRST WORD OF PARAMETER
  3530. LX4 24
  3531. LX6 24
  3532. LX0 24
  3533. BX5 X0*X6
  3534. BX5 X4+X5 NEXT TWO CHARACTERS
  3535. SA1 INTB-1
  3536. BX6 X5 SAVE FOR DAYFILE MESSAGE
  3537. SA6 INTG
  3538. MX0 42
  3539. SB5 KINT+1 DISPLAY BUFFER ADDRESS TO ALTER
  3540. SB6 DIS8+1 REPORT FILE BUFFER ADDRESS TO ALTER
  3541. INT5 SA1 A1+B1
  3542. ZR X1,INT10 IF END OF LIST
  3543. BX2 X0*X1
  3544. BX2 X5-X2
  3545. NZ X2,INT5 IF NO MATCH
  3546. SX2 X1 STATUS (INITIALIZE OR RECOVER)
  3547. SB2 MAXRC-1
  3548. INT6 LT B2,INT7 IF ALL ID-S DONE
  3549. SA1 B3+B2
  3550. SB2 B2-B1
  3551. ZR X1,INT6 IF NO *CRF* THIS ID
  3552. BX6 X1+X2 SET STATUS
  3553. SA6 A1
  3554. EQ INT6 NEXT ID
  3555.  
  3556. INT7 SB2 MAXRC-1
  3557. INT8 LT B2,INT9 IF END OF LIST
  3558. SA3 INTH+B2
  3559. BX6 X3
  3560. SA6 TREC+B2
  3561. SB2 B2-B1
  3562. EQ INT8 NEXT ENTRY
  3563.  
  3564. INT9 SA1 INTD
  3565. RJ SFN SPACE FILL NAME
  3566. SA6 B5 UPDATE *K-DISPLAY*
  3567. SA6 B6 UPDATE REPORT
  3568. SA1 INTE SEVENTH CHARACTER OF PARAMETER STRING
  3569. ZR X1,INT9.1 IF STRING IS LESS THAN 7 CHARACTERS
  3570. SA2 B6+B1 *DIS8*+2
  3571. MX0 -54
  3572. BX2 -X0*X2
  3573. BX6 X1+X2
  3574. SA6 A2+
  3575. INT9.1 RJ SFN SPACE FILL FILE NAME
  3576. SA6 B5+B1
  3577. EQ SKD1 PROCESS NEXT COMMAND
  3578.  
  3579. INT10 MX0 -6
  3580. SB2 7 MAXIMUM DIGITS IN STRING
  3581. INT11 EQ B2,INT12 IF MAXIMUM DIGITS PROCESSED
  3582. LX5 6
  3583. BX2 -X0*X5 EXTRACT DIGIT
  3584. ZR X2,INT7 IF ALL DIGITS PROCESSED
  3585. SX3 X2-1R0
  3586. NG X3,SKD14 IF NOT NUMERIC
  3587. SX3 X2-1R8
  3588. PL X3,SKD14 IF NOT OCTAL OR NUMERIC
  3589. SX2 X2-1R0 DISPLAY TO BINARY
  3590. SB2 B2-B1
  3591. SA3 TREC+X2
  3592. ZR X3,INT11 IF NO *CRF* FOR THIS ID
  3593. SX4 IST INITIALIZE STATUS
  3594. BX6 X3+X4
  3595. SA6 INTH+X2
  3596. EQ INT11 NEXT DIGIT
  3597.  
  3598. INT12 LX5 6
  3599. BX2 -X0*X5
  3600. NZ X2,SKD14 IF GREATER THAN SEVEN DIGITS
  3601. EQ INT7 MOVE DATA TO BUFFER
  3602.  
  3603. * PROCESS CRM.
  3604.  
  3605. INT13 BX4 -X0*X7
  3606. LX4 24 NEXT PARAMETER
  3607. SA1 INTB-1
  3608. MX0 42
  3609. INT14 SA1 A1+B1
  3610. ZR X1,SKD14 IF END OF LIST
  3611. BX2 X0*X1
  3612. BX2 X4-X2
  3613. NZ X2,INT14 IF NO MATCH
  3614. SA2 PRSA FLAG WORD
  3615. SX1 X1
  3616. LX1 TICRS
  3617. MX3 59
  3618. LX3 TICRS
  3619. BX6 X3*X2 CLEAR CRM RECOVERY BIT
  3620. BX6 X6+X1 ADD NEW *CRM* RECOVERY STATUS
  3621. SA6 A2
  3622. SB5 KINC+1 *K-DISPLAY* BUFFER TO ALTER
  3623. SB6 DIS9+1 REPORT BUFFER ADDRESS TO ALTER
  3624. EQ INT9 UPDATE *K-DISPLAY* AND REPORT
  3625.  
  3626. * TABLE OF VALID FIRST PARAMETERS.
  3627.  
  3628. INTA VFD 42/4LCRF,,18/INT2
  3629. VFD 42/4LCRM,,18/INT13
  3630. CON 0 TABLE TERMINATOR
  3631.  
  3632. * TABLE OF VALID STATIC SECOND PARAMETERS.
  3633.  
  3634. INTB VFD 42/0LALL,18/IST
  3635. VFD 42/0LNONE,18/RST
  3636. CON 0 TABLE TERMINATOR
  3637.  
  3638. INTD CON 0 FIRST TEN CHARACTERS OF PARAMETER
  3639. INTE CON 0 LAST CHARACTER OF PARAMETER STRING
  3640. INTF DATA 20HRECOVERY DISABLED.
  3641. INTG DATA 4LNONE P2 FOR P1 = *CRF*
  3642. INTH BSSZ MAXRC TEMPORARY BUFFER
  3643. ERO SPACE 4,20
  3644. ** K.ERO=P1,P2.
  3645. *
  3646. * WHERE P1 = CRF COMMAND RELATES TO COMMUNICATIONS RECOVERY
  3647. * P2 = YES OVERRIDE FILE ERRORS.
  3648. * = NO DO NOT OVERRIDE FILE ERRORS.
  3649. *
  3650. * THIS COMMAND PROVIDES THE CAPABILITY TO OVERRIDE I/O OR
  3651. * LOGICAL ERRORS IN THE *CRF* RECOVERY UNITS.
  3652. *
  3653. * ENTRY (X7) = OVERRIDE OPTION.
  3654. *
  3655. * EXIT TO *SKD1*. *K-DISPLAY* AND REPORT UPDATED.
  3656. * TO *SKD14* IF ERROR IN PARAMETER.
  3657. *
  3658. * USES X - 0, 1, 2, 4, 6, 7.
  3659. * A - 1, 2, 6, 7.
  3660. * B - 3, 5, 6.
  3661.  
  3662.  
  3663. ERO BSS 0 ENTRY
  3664. SA7 EROA SAVE COMMAND PARAMETERS
  3665. MX0 24
  3666. BX4 X0*X7 EXTRACT P1
  3667. SA1 EROB-1
  3668. ERO1 SA1 A1+B1 NEXT FILE TYPE
  3669. ZR X1,SKD14 IF END OF LIST
  3670. BX2 X0*X1
  3671. BX2 X4-X2
  3672. NZ X2,ERO1 IF NO MATCH
  3673. SB3 X1
  3674. JP B3 JUMP TO PROCESSOR
  3675.  
  3676. * PROCESS *CRF*.
  3677.  
  3678. ERO2 SX2 IPTAR
  3679. NZ X2,ERO3 IF AUTOMATIC RECOVERY ENABLED
  3680. SA1 EROD
  3681. SA2 A1+B1
  3682. BX6 X1
  3683. BX7 X2
  3684. SA6 KILL1 ADD SPECIFIC ERROR MESSAGE
  3685. SA7 A6+B1
  3686. EQ SKD14 DISPLAY SPECIFIC ERROR MESSAGE
  3687.  
  3688. ERO3 BX4 -X0*X7 EXTRACT P2
  3689. LX4 24
  3690. SA1 EROC-1
  3691. ERO4 SA1 A1+B1 NEXT OPTION
  3692. ZR X1,SKD14 IF END OF LIST
  3693. BX2 X0*X1
  3694. BX2 X4-X2
  3695. NZ X2,ERO4 IF NO MATCH
  3696. SX6 X1
  3697. SA6 OVRD SET OVERRIDE FLAG
  3698. SB5 KERO+1 *K-DISPLAY* BUFFER ADDRESS TO ALTER
  3699. SB6 DIS10+1 REPORT FILE BUFFER ADDRESS TO ALTER
  3700. SA1 EROA GET COMMAND PARAMETERS
  3701. BX6 X1
  3702. SA6 B5+ UPDATE *K-DISPLAY*
  3703. SA6 B6 UPDATE REPORT
  3704. EQ SKD1 PROCESS NEXT COMMAND
  3705.  
  3706. EROA CON 0 COMMAND PARAMETERS
  3707.  
  3708. * TABLE OF VALID FIRST PARAMETERS.
  3709.  
  3710. EROB VFD 42/4LCRF,,18/ERO2
  3711. CON 0 TABLE TERMINATOR
  3712.  
  3713. * TABLE OF VALID SECOND PARAMETERS FOR P1 = *CRF*.
  3714.  
  3715. EROC VFD 42/0LYES,18/1
  3716. VFD 42/0LNO,18/0
  3717. CON 0 TABLE TERMINATOR
  3718.  
  3719. EROD DATA 20HRECOVERY DISABLED.
  3720. TITLE DISPLAY FORMATS.
  3721. BFL SPACE 4,15
  3722. *** K.BFL=N.
  3723. *
  3724. * CHANGE THE BASE FL FOR CMM.
  3725. *
  3726. * EXIT (VCMM) = 6/0,18/CMMTFL,18/CMMEFL,18/CMMBFL.
  3727. * TO *SKD1* TO PROCESS NEXT INPUT.
  3728. *
  3729. * USES A - 1, 2, 6, 7.
  3730. * B - 2, 3, 7.
  3731. * X - ALL.
  3732. *
  3733. * CALLS COD, DXB, UKD.
  3734.  
  3735.  
  3736. BFL BSS 0 ENTRY
  3737. BX5 X7
  3738. SB7 B0 ASSUME OCTAL CONVERSION
  3739. RJ DXB CONVERT TO BINARY
  3740. SB7 5
  3741. NZ X4,SKD14 IF ERROR IN NUMBER
  3742. SX2 X6-MINCMM
  3743. NG X2,SKD14 IF LESS THAN MINIMUM
  3744. SX4 MAXCMM
  3745. IX2 X4-X6
  3746. BX1 X6
  3747. NG X2,SKD14 IF GREATER THAN MAXIMUM
  3748. SA2 VCMM UPDATE BASE CMM FL
  3749. MX0 42
  3750. BX2 X0*X2
  3751. BX6 X2+X6 ADD NEW BASE CMM FL
  3752. SA6 A2
  3753. RJ COD CONVERT OCTAL TO DISPLAY
  3754. SA2 KBFL+1 *BFL* WORD IN DISPLAY
  3755. SB5 DIS11+1 UPDATE REPORT
  3756. SX3 1RB ADD *B*
  3757. SB6 B0
  3758. RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
  3759. EQ SKD1 PROCESS NEXT INPUT
  3760. EFL SPACE 4,15
  3761. *** K.EFL=N.
  3762. *
  3763. * CHANGE THE EXPANDABLE FL FOR CMM.
  3764. *
  3765. * EXIT (VCMM) = 6/0,18/CMMTFL,18/CMMEFL,18/CMMBFL.
  3766. * TO *SKD1* TO PROCESS NEXT INPUT.
  3767. *
  3768. * USES A - 1, 2, 6, 7.
  3769. * B - 2, 3, 7.
  3770. * X - ALL.
  3771. *
  3772. * CALLS COD, DXB, UKD.
  3773.  
  3774.  
  3775. EFL BSS 0 ENTRY
  3776. BX5 X7
  3777. SB7 B0 ASSUME OCTAL CONVERSION
  3778. RJ DXB CONVERT TO BINARY
  3779. SB7 5
  3780. NZ X4,SKD14 IF ERROR IN NUMBER
  3781. NG X2,SKD14 IF LESS THAN MINIMUM
  3782. SX4 MAXCME
  3783. IX2 X4-X6
  3784. BX1 X6
  3785. NG X2,SKD14 IF GREATER THAN MAXIMUM
  3786. SA2 VCMM UPDATE BASE CMM FL
  3787. MX0 42
  3788. LX0 18
  3789. BX0 X0*X2
  3790. LX6 18
  3791. BX6 X0+X6 ADD NEW EXPANDABLE CMM FL
  3792. SA6 A2
  3793. RJ COD CONVERT OCTAL TO DISPLAY
  3794. SA2 KEFL+1 *EFL* WORD IN DISPLAY
  3795. SX3 1RB ADD *B*
  3796. SB5 DIS12+1 UPDATE REPORT
  3797. SB6 B0
  3798. RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
  3799. EQ SKD1 PROCESS NEXT INPUT
  3800. TFL SPACE 4,15
  3801. *** K.TFL=N.
  3802. *
  3803. * CHANGE THE TARGET FL FOR CMM.
  3804. *
  3805. * EXIT (VCMM) = 6/0,18/CMMTFL,18/CMMEFL,18/CMMBFL.
  3806. * TO *SKD1* TO PROCESS NEXT INPUT.
  3807. *
  3808. * USES X - ALL.
  3809. * A - 1, 2, 6, 7.
  3810. * B - 2, 3, 7.
  3811. *
  3812. * CALLS COD, DXB, UKD.
  3813.  
  3814.  
  3815. TFL BSS 0 ENTRY
  3816. BX5 X7
  3817. SB7 B0 ASSUME OCTAL CONVERSION
  3818. RJ DXB CONVERT TO BINARY
  3819. SB7 5
  3820. NZ X4,SKD14 IF ERROR IN NUMBER
  3821. SX4 MINCMT
  3822. IX2 X6-X4
  3823. NG X2,SKD14 IF LESS THAN MINIMUM
  3824. SX4 MAXCMT
  3825. IX2 X4-X6
  3826. BX1 X6
  3827. NG X2,SKD14 IF GREATER THAN MAXIMUM
  3828. SA2 VCMM UPDATE TARGET CMM FL
  3829. MX0 -36
  3830. LX6 36
  3831. BX0 -X0*X2
  3832. BX6 X0+X6
  3833. SA6 A2
  3834. RJ COD CONVERT OCTAL TO DISPLAY
  3835. SA2 KTFL+1 *TFL* WORD IN DISPLAY
  3836. SX3 1RB ADD *B*
  3837. SB5 DIS13+1 UPDATE REPORT
  3838. SB6 B0
  3839. RJ UKD UPDATE THE *K-DISPLAY* AND REPORT
  3840. EQ SKD1 PROCESS NEXT INPUT
  3841. STP SPACE 4,10
  3842. *** K.STOP.
  3843. *
  3844. * PROCESS *K.STOP* COMMAND.
  3845. *
  3846. * EXIT (B5) = ADDRESS OF MESSAGE.
  3847. * EXIT TO ERR SUBROUTINE TO ABORT *TAFREC*.
  3848. *
  3849. * USES B - 5.
  3850.  
  3851.  
  3852. STP BSS 0 ENTRY
  3853. SA2 KCOF COMMAND ORIGIN
  3854. NZ X2,STP1 IF NOT CONSOLE ORIGIN
  3855. CONSOLE SKDB TURN OFF *K-DISPLAY*
  3856. STP1 SB5 STPA *OPERATOR TERMINATION.*
  3857. EQ ERR ABORT
  3858.  
  3859. STPA DATA C* OPERATOR TERMINATION.*
  3860. UKD SPACE 4,15
  3861. ** UKD UPDATE THE *K-DISPLAY* AND REPORT.
  3862. *
  3863. * ENTRY (X2) = DISPLAY WORD.
  3864. * (X3) = INSERT CHARACTER, IF (B6).EQ.0.
  3865. * (X4) = DISPLAY CODE CONVERSION LEFT JUSTIFIED.
  3866. * (A2) = ADDRESS OF WORD IN DISPLAY.
  3867. * (B2) = 6*COUNT OF DIGITS CONVERTED.
  3868. * (B5) = ADDRESS OF THE DISPLAY WORD.
  3869. * (B6) = 1 IF WORD ALREADY PARTIALLY FORMATTED.
  3870. * = 0 IF WORD NOT FORMATTED.
  3871. *
  3872. * EXIT *K-DISPLAY* AND REPORT UPDATED.
  3873. *
  3874. * USES X - 1, 2, 3, 4, 5, 6, 7.
  3875. * A - 7.
  3876. * B - 2, 3, 4.
  3877.  
  3878.  
  3879. UKD SUBR
  3880. NZ B6,UKD1 IF PARTIALLY FORMATTED
  3881. MX5 1
  3882. SB3 B2-B1
  3883. SB4 B3+6
  3884. AX6 X5,B3 MASK FOR NUMBER
  3885. AX5 X5,B4 MASK FOR BLANKS LESS ONE
  3886. SB2 -B2
  3887. SB4 54+B2 SHIFT COUNT TO POSITION THE CHARACTER
  3888. LX3 X3,B4
  3889. BX1 X6*X4 NUMBER
  3890. IX1 X1+X3 ADD CHARACTER
  3891. BX2 -X5*X4
  3892. BX4 X1+X2 ADD IN BLANKS
  3893. UKD1 BX7 X4
  3894. SA7 A2 UPDATE *K-DISPLAY*
  3895. SA7 B5+ UPDATE REPORT
  3896. EQ UKDX RETURN
  3897. SPACE 4,10
  3898. * DEFINE INITIAL *K-DISPLAY* BY MICROS.
  3899.  
  3900.  
  3901. HHED MICRO 1,,*TRANSACTION EXECUTIVE INITIALIZATION OPTIONS*
  3902. HHEC MICRO 1,,*TAF INITIALIZATION OPTIONS*
  3903. HOPD MICRO 1,,*OPTION DESCRIPTION*
  3904. MSCP MICRO 1,17,*SCP = "NSCPM" *
  3905. HSCP MICRO 1,,*SUB CONTROL POINTS ("MINSCPM" - "MAXSCPM").*
  3906. MCMB MICRO 1,17,*CMB = "NCMBM" *
  3907. HCMB MICRO 1,,*COMMUNICATION BLOCKS ("MINCMBM" - "MAXCMBM").*
  3908. MREC MICRO 1,,*REC = NO *
  3909. HREC MICRO 1,,*RECOVERY MODE (YES OR NO).*
  3910. MMFL MICRO 1,17,*MFL = "SCMFLM"B *
  3911. HMFL MICRO 1,,*MAXIMUM FIELD LENGTH ("MINMFLM"B - "MAXMFLM"B).*
  3912. MECS MICRO 1,17,*ECS = "ECSFLM"K *
  3913. HECS MICRO 1,,*EXTENDED MEMORY FIELD LENGTH ("MINECSM"K - "MAXECSM
  3914. ,"K).*
  3915. MTLF MICRO 1,17,*TLF = "TLFM" *
  3916. HTLF MICRO 1,,*TASK LIBRARY FILE (1-7 CHARACTERS).*
  3917. MINT MICRO 1,,*INT = CRF,NONE *
  3918. HINT MICRO 1,,*INITIALIZE CRF RECOVERY FILES [NONE,ALL OR*
  3919. AINT MICRO 1,,*1-7 DIGITS].*
  3920. MINC MICRO 1,,*INT = CRM,NONE *
  3921. HINC MICRO 1,,*INITIALIZE CRM RECOVERY FILES (NONE OR ALL).*
  3922. MERO MICRO 1,,*ERO = CRF,NO *
  3923. HERO MICRO 1,,*ERROR OVERRIDE (YES OR NO).*
  3924. MBFL MICRO 1,17,*BFL = "CMMBFLM"B *
  3925. HBFL MICRO 1,,*CMM BASE FL ("MINCMMM"B - "MAXCMMM"B).*
  3926. MEFL MICRO 1,17,*EFL = "CMMEFLM"B *
  3927. HEFL MICRO 1,,*CMM EXPANDABLE FL (0 - "MAXCMEM"B).*
  3928. MTFL MICRO 1,17,*TFL = "CMMTFLM"B *
  3929. HTFL MICRO 1,,*CMM TARGET FL ("MINTMEM"B - "MAXTMEM"B).*
  3930. SPACE 4,10
  3931. * *K-DISPLAY* BUFFER FOR THE OPERATOR CONSOLE.
  3932.  
  3933.  
  3934. KCTRL VFD 24/KBUF,18/0,18/KDIS
  3935. KBUF BSS 5 KEYBOARD BUFFER
  3936. DATA 1L. ALLOW COMMANDS WITHOUT TERMINATOR
  3937. KDIS VFD 12/0,36/0,12/2
  3938. KDL 20,T,("HHEC")
  3939. KDL 6,H,("HOPD")
  3940. KSCP KDL 1,,("MSCP")
  3941. KDL 21,K,("HSCP")
  3942. KCMB KDL 1,,("MCMB")
  3943. KDL 21,K,("HCMB")
  3944. KREC KDL 1,,("MREC")
  3945. KDL 21,K,("HREC")
  3946. KMFL KDL 1,,("MMFL")
  3947. KDL 21,K,("HMFL")
  3948. KECS KDL 1,,("MECS")
  3949. KDL 21,K,("HECS")
  3950. KTLF KDL 1,,("MTLF")
  3951. KDL 21,H,("HTLF")
  3952. KINT KDL 1,,("MINT")
  3953. CHAR 1R[,1R(
  3954. CHAR 1R],1R)
  3955. CODE O
  3956. KDL 21,K,("HINT")
  3957. KDL 21,K,("AINT")
  3958. CODE *
  3959. KINC KDL 1,,("MINC")
  3960. KDL 21,K,("HINC")
  3961. KERO KDL 1,,("MERO")
  3962. KDL 21,H,("HERO")
  3963. KBFL KDL 1,,("MBFL")
  3964. KDL 21,K,("HBFL")
  3965. KEFL KDL 1,,("MEFL")
  3966. KDL 21,K,("HEFL")
  3967. KTFL KDL 1,,("MTFL")
  3968. KDL 21,K,("HTFL")
  3969. KBUF1 KDL 1,I,(
  3970. , )
  3971. KILL KDL 7,M,(FORMAT ERROR. )
  3972. KILL1 BSSZ 2 SPECIFIC ERROR MESSAGE
  3973. BSSZ 1
  3974. KILL2 KDL 7,M,(FORMAT ) DUPLICATE FIRST LINE OF ERROR MESSAGE
  3975.  
  3976. * Y-COORDINATE TABLE.
  3977.  
  3978. KPRS KDL *
  3979. SPACE 4,10
  3980. PRK HERE REMOTE BLOCK FROM *COMCDCP*
  3981. SPACE 4,10
  3982. * *K-DISPLAY* BUFFER FOR REPORT FILE.
  3983.  
  3984. CHAR 1R[,1R(
  3985. CHAR 1R],1R)
  3986. CODE O
  3987. DISP DATA C* "HHEC"*
  3988. DATA 1L
  3989. DATA C* "HOPD"*
  3990. DATA 1L
  3991. DIS1 DATA C* "MSCP" "HSCP"*
  3992. DIS2 DATA C* "MCMB" "HCMB"*
  3993. DIS4 DATA C* "MREC" "HREC"*
  3994. DIS5 DATA C* "MMFL" "HMFL"*
  3995. DIS6 DATA C* "MECS" "HECS"*
  3996. DIS7 DATA C* "MTLF" "HTLF"*
  3997. DATA 1L
  3998. CHAR 1R[,1R(
  3999. CHAR 1R],1R)
  4000. CODE O
  4001. DIS8 DATA C* "MINT" "HINT"*
  4002. DATA C* "AINT"*
  4003. CODE *
  4004. DIS9 DATA C* "MINC" "HINC"*
  4005. DIS10 DATA C* "MERO" "HERO"*
  4006. DATA 1L
  4007. DIS11 DATA C* "MBFL" "HBFL"*
  4008. DIS12 DATA C* "MEFL" "HEFL"*
  4009. DIS13 DATA C* "MTFL" "HTFL"*
  4010. DISPL EQU *-DISP
  4011. TITLE FETS AND COMMON DECKS.
  4012. * FETS USED IN *PRESET*.
  4013.  
  4014. TCF BSS 0 *TAF* CONFIGURATION FILE
  4015. TCF FILEB TCBUF,TCBUFL,EPR,FET=13
  4016.  
  4017. N BSS 0 NETWORK FILE
  4018. NETWORK FILEB NBUF,NBUFL,EPR,FET=12
  4019.  
  4020.  
  4021. * TAGS NEEDED FOR ASSEMBLY OF *COMCRTN*.
  4022.  
  4023. VBPT EQU 3 ADDITIONAL PLT WORDS FOR HIGH SPEED LINES
  4024. ABMA CON 0 NUMBER OF ADDITIONAL HIGH SPEED LINES
  4025. SPACE 4,10
  4026. * COMMON DECKS USED IN *PRESET*.
  4027.  
  4028. *CALL COMSNET
  4029. *CALL COMCARG
  4030. *CALL COMCRDC
  4031. *CALL COMCRDS
  4032. *CALL COMCRTN
  4033. *CALL COMCUPC
  4034. SPACE 4,10
  4035. ENDP EQU * END OF PRESET CODE
  4036. BUFFERS TITLE BUFFERS.
  4037. * BUFFERS.
  4038.  
  4039. TRBUF EQU PRS COMMUNICATIONS RECOVERY FILE
  4040. TRBUFL EQU 7*64+2
  4041.  
  4042. TABUF EQU TRBUF+TRBUFL ALTERNATE RECOVERY FILE
  4043. TABUFL EQU 7*64+1
  4044.  
  4045. PBUF EQU TABUF+TABUFL PRU BUFFER
  4046. PBUFL EQU 7*64
  4047.  
  4048. DIR EQU PBUF+PBUFL DIRECTORY OF RECOVERY UNITS
  4049. DIRL EQU RUDL*IPTST
  4050.  
  4051. TCBUF EQU ENDP *TAF* CONFIGURATION FILE
  4052. TCBUFL EQU 2*64+1
  4053.  
  4054. NBUF EQU TCBUF+TCBUFL NETWORK FILE
  4055. NBUFL EQU 4*64+1
  4056.  
  4057. BRTN EQU NBUF+NBUFL SCRATCH AREA FOR *COMCRTN*
  4058. BRTNL EQU IPTST
  4059.  
  4060. TBUF EQU BRTN+BRTNL TAF INITIALIZATION FILE
  4061. TBUFL EQU 3*64+1
  4062.  
  4063. RBUF EQU TBUF+TBUFL RECOVERY REPORT FILE
  4064. RBUFL EQU 4*64+1
  4065.  
  4066. RWSA EQU RBUF+RBUFL *WSA* FOR REPORT FILE
  4067. RWSAL EQU 8
  4068.  
  4069. TSTLW EQU RWSA+RWSAL TERMINAL STATUS TABLE LENGTH WORD
  4070. TSTHD EQU TSTLW+1 TST HEADER
  4071. TST EQU TSTHD+TTFTL START OF TST
  4072. TSTL EQU TSTLLE*IPTST STORAGE FOR TST
  4073.  
  4074. RFL= EQU TST+TSTL
  4075.  
  4076. END