CDC Community

๐Ÿ”น Historical Conservation ๐Ÿ”น

User Tools

Site Tools


plato.source:plaopl:backmod

BACKMOD

Table Of Contents

  • [00010] MODIFY BACKUP FILES FROM CONSOLE
  • [00122] MAIN LOOP
  • [00133] SUBROUTINES
  • [00135] ATTFILE - ATTACH PERMANENT FILES
  • [00164] CKSTATS - CHECK FILE STATUS FOR BUSY
  • [00186] CLREPR - CLEAR ERROR PROCESSING BIT IN THE FET
  • [00199] GTW - GET WORD
  • [00249] INIT - INITIALIZE
  • [00289] INITPAR - INITIALIZE PARAMETER BLOCK
  • [00322] MVEB - MOVE BITES INTO A BUFFER
  • [00354] MVEW - MOVE BITS IN ONE WORD
  • [00390] PRA - EXTRACT PARAMETERS BEYOND PERIOD
  • [00445] RDPARAM - READ PARAMETER BLOCK AND REST OF S0BACKC
  • [00457] SETSLOT - SETUP SLOT TABLE
  • [00496] TRIPMSG - WRITE A MESSAGE TO THE DAYFILE 3 TIMES
  • [00512] WRPARAM - WRITE PARAMETER BLOCK AND REST OF S0BACKC
  • [00522] ZERO - ZERO BUFFER
  • [00544] K-DISPLAY ROUTINES
  • [00546] BLANK - MOVE BLANK LINE TO K DISPLAY
  • [00554] BLDRP - BUILD REQUIRED PACK ENTRY FOR K DISPLAY
  • [00573] BLDSL - BUILD SLOT TABLE ENTRY FOR K DISPLAY
  • [00608] BLDVS - BUILD VSN ENTRY FOR K DISPLAY
  • [00686] BUILDO - BUILD OUTPUT LINE
  • [00753] GENINFO - GENERAL INFOMATION PAGE
  • [00951] MOVEL - MOVE CODED LINE TO LEFT SCREEN BUFFER
  • [01023] OUTBLK - OUTPUT BLANKS
  • [01034] OUTDIV - OUTPUT DIVIDE SIGN (/)
  • [01044] OUTPER - OUTPUT PERIOD
  • [01054] OUT2 - OUTPUT 2 CHARACTERS
  • [01066] OUT3 - OUTPUT 3 CHARACTERS
  • [01078] OUT4 - OUTPUT 4 CHARACTERS
  • [01090] SETBUF - SET UP BUFFER
  • [01114] SETK - SET UP K-DISPLAY PARAMETERS
  • [01181] SETPAR - SETUP PARAMETERS
  • [01251] WAINP - WAIT FOR KEYBOARD INPUT
  • [01267] TERMINATION PROGRAMS
  • [01281] MESSAGES, BUFFERS, DATA AREAS AND COM DECKS

Source Code

BACKMOD.txt
  1. BACKMOD
  2. * /--- FILE TYPE = E
  3. * /--- BLOCK SOURCEZ 00 000 81/04/29 11.25
  4. BACKMOD
  5. IDENT BACKMOD,BEGIN,BACKMOD
  6. ENTRY BACKMOD
  7. SYSCOM B1 DEFINE (B1) = 1
  8. *COMMENT MODIFY BACKUP FILES FROM CONSOLE
  9. COMMENT COPYRIGHT CONTROL DATA CORP. 1980.
  10. TITLE MODIFY BACKUP FILES FROM CONSOLE
  11. SPACE 4
  12. *** MODIFY BACKUP FILES FROM CONSOLE
  13. * J. J. BUCHMANN. 80/06/17.
  14. *
  15. *FUNCTION;
  16. * THIS PROGRAM CAN BE USED TO MAKE CHANGES TO THE BACKUP
  17. * PARAMETERS, SLOT TABLE, REQUIRED PACKS TABLE OR PLACE
  18. * MESSAGES ABOUT TAPES IN THE VSN TABLE. THE INFORMATION
  19. * IN ALL THESE TABLES IS SHOWN ON A K-DISPLAY.
  20. *
  21. * CHANGES MAY BE MADE TO THE PARAMETERS SHOWN, BUT THE
  22. * CHANGES WILL NOT BE WRITTEN TO BACK TO THE DISK UNLESS
  23. * A K.WR COMMAND IS ISSUED.
  24. *
  25. * AN ON-LINE LISTING OF ALL PARAMETERS MAYBE DISPLAYED
  26. * BY TYPING KK.
  27. *
  28. *K-DISPLAY PARAMETERS;
  29. * K.GI SHOW GENERAL INFORMATION PAGE
  30. * K.RP SHOW REQUIRED PACKS TABLE
  31. * K.ST SHOW SLOT TABLE
  32. * K.VS SHOW VSN TABLE
  33. * K.ND=N CHANGE THE NUMBER OF PLATO DUMP DIRECTORY
  34. * DATASETS.
  35. * K.RR REREAD PARAMETERS FILE FROM DISK
  36. * K.WR WRITE PARAMETERS FILE TO DISK
  37. * K.STOP OR K.END EXIT FROM PROGRAM (NO WRITE TO DISK)
  38. * K.+ PAGE THROUGH ENTRIES
  39. *
  40. * ON REQUIRED PACKS PAGE;
  41. * K.N=PACK STORE PACK NAME *PACK* AT ENTRY N
  42. *
  43. * ON SLOT TABLE PAGE;
  44. * K.M=N STORE *N* AT SLOT ENTRY M
  45. * K.DA=N SET DAILY CYCLE NUMBER TO N
  46. * K.WK=M SET WEEKLY CYCLE NUMBER TO M
  47. * K.SS SETUP SLOT TABLE ACCORDING TO THE DA/WK
  48. * PARAMETERS
  49. *
  50. * ON THE VSN TABLE PAGE;
  51. * K.M=MESSAGE SET *MESSAGE* TO BE STORE LATER
  52. * K.N START DISPLAY AT ENTRY N
  53. * K.SL=M DISPLAY ENTRIES WITH SLOT VALUE=M. THIS
  54. * ALSO LIMIT WHERE MESSAGES CAN BE STORED.
  55. * K.N= STORE MESSAGE AT ENTRY N
  56. * K.M-N STORE MESSAGE AT ENTRIES M THROUGH N
  57. * K.1-4000 STORE MESSAGE AT ALL VSN ENTRIES
  58. *
  59. *ERROR MESSAGES;
  60. * ERROR IN PARAMETERS
  61. *
  62. *INTERNAL ERROR MESSAGES; NONE
  63. * /--- BLOCK SOURCEZ 00 000 81/05/07 06.51
  64. SPACE 4
  65. *CALL COMCMAC
  66. *CALL COMCDCM
  67. *CALL COMCCMD
  68. *CALL PLASMPC
  69. **** ASSEMBLY CONSTANTS.
  70.  
  71. MAXK545 EQU 35 MAX LINES ON CC545 K-DISPLAY
  72. MAXK721 EQU 20 MAX LINES ON 721 K-DISPLAY
  73.  
  74. IBUFL EQU 2001B IFILE BUFFER LENGTH
  75. OBUFL EQU 2001B OFILE BUFFER LENGTH
  76. ABUFL EQU 2001B AFILE BUFFER LENGTH
  77.  
  78. BLKSZE EQU 320 BLOCK SIZE (WORDS) FOR S0BACKC
  79. MBPARM EQU 1 MAX NUM OF BLOCKS / PARAMETERS
  80. MBSLOT EQU 2 MAX NUM OF BLOCKS / SLOT TABLE
  81. MBLAB EQU 25 MAX NUM OF BLOCKS / LOOK ASIDE
  82. MBVSN EQU 25 MAX NUM OF BLOCKS / VSN TABLE
  83. MBALL EQU MBPARM+MBSLOT+MBLAB+MBVSN TOTAL NUM BLOCKS
  84. SLOTSZE EQU MBSLOT*BLKSZE SIZE OF SLOT TABLE
  85.  
  86. AUDBLK EQU 300 BLOCK SIZE FOR AUDIT TRAIL
  87. AUDCNT EQU 13 NUMBER OF BLOCKS/AUDIT TRAIL
  88.  
  89. USERI EQU 377773B USER INDEX FOR FILES
  90. TIMEL EQU 7777B TIME LIMIT
  91. PRIOR EQU 41B PRIORITY
  92.  
  93. * OFFSETS WITHIN PARAMETER BLOCK
  94.  
  95. PDATE EQU 0 LAST BACKUP DATE
  96. PTIME EQU 1 LAST BACKUP TIME
  97. PBASE EQU 2 DUMP DIRECTORY BASE NAME
  98. PDNUM EQU 3 NUMBER OF DATASETS IN DUMP DIR.
  99. PNREC EQU 4 NUMBER OF RECORDS IN DATASETS
  100. PLREC EQU 5 NUMBER OF RECORDS-LAST DATASET
  101. PLABW EQU 6 WORDS IN LOOK-ASIDE BUFFER
  102. PMAXS EQU 8 MAXIMUM NUMBER OF SLOTS
  103. PPAGE EQU 9 PAGE SIZE
  104. PREQP EQU 50 REQUIRED PACKS TABLE
  105.  
  106.  
  107. BEGIN BSS 0
  108.  
  109. FETS BSS 0
  110.  
  111. I BSS 0
  112. S0BACKC RFILEB IBUF,IBUFL,(FET=13D),EPR
  113.  
  114.  
  115. * DATA WORDS
  116.  
  117.  
  118. PACK DATA 0 PACK NAME FOR ATTACHES
  119. DPER DATA 7LBACKDIR PERMANENT FILE FOR DUMP DIRECT.
  120. SPER DATA 7LS0BACKC PERM. FILE FOR BACKUP PARAMS.
  121. APER DATA 5LAUDIT PERMANENT FILE FOR AUDIT TRAIL
  122. TITLE MAIN LOOP
  123. * MAIN LOOP
  124.  
  125. BACKMOD BSS 0 ENTRY POINT
  126. SB1 1 FOREVER CONSTANT
  127. RJ INIT INITIALIZE AND GET ARGS
  128. RJ ATTFILE ATTACH FILES
  129. RJ RDPARAM READ S0BACKC
  130. RJ KDISP DO K-DISPLAY
  131. EQ END
  132. * /--- BLOCK SOURCEZ 00 000 81/03/18 10.00
  133. TITLE SUBROUTINES
  134. ATTFILE SPACE 4
  135. ** ATTFILE - ATTACH PERMANENT FILES
  136. *
  137. * ATTACH S0BACKC, BACKDIR, AND AUDIT
  138. *
  139.  
  140.  
  141. ATTFILE DATA 0 ENTRY/EXIT
  142. SETUI USERI USER INDEX
  143. PACKNAM PACK SET PACKNAME
  144. ATT1 ATTACH I,SPER,,,W ATTACH S0BACKC
  145. SA1 I
  146. RJ CKSTATS
  147. NZ X2,ATT1 IF FILE WAS BUSY
  148. SA1 I+1
  149. RJ CLREPR CLEAR EPR
  150. * ATT2 ATTACH O,DPER,,,R ATTACH BACKDIR
  151. * SA1 O
  152. * RJ CKSTATS
  153. * NZ X2,ATT2 IF FILE WAS BUSY
  154. * SA1 O+1
  155. * RJ CLREPR CLEAR EPR
  156. * ATT3 ATTACH A,APER,,,R ATTACH AUDIT
  157. * SA1 A
  158. * RJ CKSTATS
  159. * NZ X2,ATT3 IF FILE WAS BUSY
  160. * SA1 A+1
  161. * RJ CLREPR CLEAR EPR
  162. EQ ATTFILE EXIT
  163. CKSTATS SPACE 4
  164. ** CKSTATS - CHECK FILE STATUS FOR BUSY
  165. * ROLLOUT FOR 64 SECONDS IF BUSY
  166. * ABORT IF ERROR
  167. *
  168. * ENTRY X1-FET STATUS WORD
  169. *
  170. * EXIT X2=0, NOT BUSY
  171.  
  172.  
  173. CKSTATS DATA 0 ENTRY/EXIT
  174. AX1 10
  175. MX7 -8
  176. BX2 -X7*X1 ISOLATE STATUS
  177. ZR X2,CKSTATS IF NOT BUSY AND NO ERROR
  178. SX2 X2-1
  179. NZ X2,ABORT ATTACH ERROR
  180. ROLLOUT CKSW
  181. SX2 1 BUSY STATUS
  182. EQ CKSTATS
  183.  
  184. CKSW DATA 7700000100B
  185. CLREPR SPACE 4
  186. ** CLREPR - CLEAR ERROR PROCESSING BIT IN THE FET
  187. *
  188. * ENTRY A1/X1=FET+1 AND CONTENTS
  189.  
  190.  
  191. CLREPR DATA 0 ENTRY/EXIT
  192. SX6 B1 MASK FOR EPR
  193. LX6 44
  194. BX6 -X6*X1
  195. SA6 A1
  196. EQ CLREPR
  197. * /--- BLOCK SOURCEZ 00 000 81/04/21 09.19
  198. GTW SPACE 4
  199. ** GTW - GET WORD
  200. *
  201. * THIS ROUTINE EXTRACTS UP TO TEN CHARACTERS FROM
  202. * A CONTROL CARD AREA. ALL WORDS ARE SEPARATED
  203. * BY DELIMITERS (ANY CHARACTER .GT. 9 EXCEPT BLANK).
  204. *
  205. * ENTRY B1 = 1
  206. * A4/X4 = CHARACTERS TO BE EXTRACTED FROM
  207. * B6 = SHIFT COUNT (INITIALLY 0)
  208. *
  209. * EXIT X1 = WORD THAT WAS EXTRACTED
  210. * X2 = DELIMITER
  211. * IF X2 .LT. 0 - MORE THAN 10 CHARS IN WORD
  212. * IF X2 .EQ. 0 - END OF CARD
  213. * B5 = 60-(N*6) WHERE N IS THE NUMBER OF
  214. * CHARACTERS FOUND IN THE WORD
  215. * A4/X4/B6 SET FOR NEXT WORD
  216. *
  217. * USES A-4
  218. * X-1,2,3,4
  219. * B-5,6,7
  220.  
  221.  
  222. GTW DATA 0 ENTRY/EXIT
  223. MX1 0 INITIAL SETTINGS
  224. SB5 60
  225. SB7 B5
  226. GTW1 SB6 B6+6 NEXT CHARACTER
  227. GT B6,B7,GTW2 IF NEW WORD NEEDED
  228. MX2 -6 CHARACTER MASK
  229. LX4 6 SHIFT TO NEXT CHARACTER
  230. BX2 -X2*X4
  231. ZR X2,GTW END OF CARD
  232. SX3 X2-1R TEST FOR BLANKS
  233. ZR X3,GTW1A
  234. SX3 X2-1R9-1
  235. PL X3,GTW IF DELIMITER
  236. GTW1A SB5 B5-6 DECREASE CHARACTER SHIFT COUNT
  237. NG B5,GTW3 IF MORE THAN 10 CHARS.
  238. LX2 X2,B5 SHIFT TO PROPER LOCATION
  239. BX1 X1+X2 MERGE
  240. EQ GTW1 GET NEXT CHARACTER
  241.  
  242. GTW2 SA4 A4+B1 GET NEXT WORD
  243. SB6 B0
  244. EQ GTW1
  245.  
  246. GTW3 BX2 -X2 ERROR FLAG
  247. EQ GTW EXIT
  248. INIT SPACE 4
  249. ** INIT - INITIALIZE
  250.  
  251.  
  252. INIT DATA 0 ENTRY/EXIT
  253. SETTL TIMEL SET TIME LIMIT
  254. SETPR PRIOR SET PRIORITY
  255.  
  256. SB6 LSCR CLEAR BUFFERS
  257. SB7 BEND-LSCR
  258. RJ ZERO
  259. *
  260. * GET ARGUMENTS
  261. *
  262. SA1 ACTR ARG COUNT
  263. SB4 X1
  264. SA4 ARGR FIRST ARG
  265. SB5 ARGTBL ARG TABLE
  266. RJ ARG
  267. NZ X1,INITERR ERROR IN ARGUMENTS
  268. SA1 INITM MODIFY COMCARG FOR 10 CHARS
  269. BX6 X1
  270. SA6 ARG5
  271. SA1 Z SEE IF EXTENDED PARAMETERS
  272. ZR X1,INIT
  273. SX5 CCDR CONTROL CARD AREA
  274. RJ PRA EXTRACT EXTENDED PARAMETERS
  275. NZ X6,INITERR IF ERROR IN CARD
  276. SB5 ARGTBL ARG TABLE ADDRESS
  277. RJ ARG
  278. NZ X1,INITERR ERROR IN ARGUMENTS
  279. EQ INIT
  280.  
  281. * /--- BLOCK SOURCEZ 00 000 81/04/22 07.19
  282. INITM BX7 X3+X6 INSTRUCTIONS MODIFIED AT ARG5
  283. SA7 B2+
  284. SB3 B2-B3
  285.  
  286. INITERR MESSAGE INMSG
  287. EQ ABORT
  288. INITPAR SPACE 4
  289. ** INITPAR - INITIALIZE PARAMETER BLOCK
  290. *
  291. * SETS DATE OF LAST BACKUP TO *NEVER*
  292. * DATASET BASE NAME TO *D0*
  293. * NUMBER OF DATASETS TO 7
  294. * NUMBER OF RECORDS IN DATASETS TO 142
  295. * MAX. NUMBER OF SLOTS TO 30
  296. * PAGE SIZE TO 3000
  297. * SETUP SLOT TABLE(DAILY=6, WEEKLY=24 DEFAULT)
  298.  
  299.  
  300. INITPAR DATA 0 ENTRY/EXIT
  301. SB6 PARAM ZERO EVERYTHING
  302. SB7 MBALL*BLKSZE
  303. RJ ZERO
  304. SA1 =5LNEVER SET DATE OF LAST BACKUP
  305. SA2 =2LD0 DATASET BASE NAME
  306. BX6 X1
  307. BX7 X2
  308. SA6 PARAM+PDATE
  309. SA7 PARAM+PBASE
  310. SX6 7 NUMBER OF DATASETS
  311. SA6 PARAM+PDNUM
  312. SX6 142 NUMBER OF RECORDS/DATASET
  313. SA6 PARAM+PNREC
  314. SA6 PARAM+PLREC
  315. SX6 30 MAX NUMBER OF SLOTS
  316. SA6 PARAM+PMAXS
  317. SX6 3000 PAGE SIZE
  318. SA6 PARAM+PPAGE
  319. RJ SETSLOT SETUP SLOT TABLE
  320. EQ INITPAR EXIT
  321. MVEB SPACE 4
  322. ** MVEB - MOVE BITES INTO A BUFFER
  323. *
  324. * ENTRY X6=BITS TO BE MOVED (LEFT JUSTIFIED)
  325. * B7=NUMBER OF BITS TO MOVE
  326. * MVBS=3/2,9/CURRENT BIT COUNT,30/0,
  327. * 18/CURRENT ADDRESS
  328. *
  329. * EXIT BITS MOVED
  330. * MVBS UPDATED
  331.  
  332.  
  333. MVEB DATA 0 ENTRY/EXIT
  334. SA2 MVBS GET CURRENT POINTER
  335. SB5 60 NUMBER OF BITS IN A WORD
  336. UX2 X2,B6 EXTRACT CURRENT BIT COUNT
  337. SB4 B6+B7 TOTAL BITS AFTER STORE
  338. GT B4,B5,MVEB1 IF ANOTHER WORD IS NEEDED
  339. RJ MVEW STORE THIS WORD
  340. EQ MVEB EXIT
  341.  
  342. MVEB1 BX5 X6 SAVE BITS TO BE STORED
  343. SB2 B7 AND BIT COUNT
  344. SB7 B5-B6 NUMBER OF BITS IN THIS WORD
  345. SB4 B5 TOTAL FIRST WORD
  346. RJ MVEW STORE FIRST WORD
  347. LX6 B7,X5 SHIFT OFF THE ALREADY STORED
  348. SB7 B2-B7 REMAINING BIT COUNT
  349. SB6 B0 STARTING BIT COUNT
  350. SB4 B6+B7 FINISH BIT COUNT
  351. RJ MVEW SECOND WORD
  352. EQ MVEB EXIT
  353. MVEW SPACE 4
  354. ** MVEW - MOVE BITS IN ONE WORD
  355. *
  356. * ENTRY X6=BITS TO BE MOVED (LEFT JUSTIFIED)
  357. * B7=NUMBER OF BITS TO MOVE
  358. * B5=60
  359. * A2=MVBS
  360. * X2=CURRENT WORD ADDRESS
  361. * /--- BLOCK SOURCEZ 00 000 81/04/21 10.10
  362. * B6=CURRENT BIT COUNT
  363. * B4=B6+B7 - MUST BE .LE. 60
  364.  
  365.  
  366. MVEW DATA 0 ENTRY/EXIT
  367. SA1 X2 GET CURRENT WORD
  368. MX7 1 FORM MASK TO STRIP OFF BITS
  369. SB3 B7-B1
  370. AX7 B3
  371. BX6 X7*X6 ISOLATE BITS TO BE STORED
  372. SB3 B5-B6 SHIFT COUNT FOR BITS
  373. LX6 B3 SHIFT TO PROPER LOCATION
  374. BX6 X6+X1 MERGE
  375. SA6 A1 STORE
  376. EQ B5,B4,MVEW1 IF JUST ONE WORD
  377. PX6 X2,B4 UPDATE MVBS
  378. SA6 A2
  379. EQ MVEW EXIT
  380.  
  381. MVEW1 SX2 X2+B1 NEXT WORD
  382. PX6 X2,B0 BIT COUNT = 0
  383. SA6 A2
  384. MX7 0 CLEAR NEXT WORD
  385. SA7 X2
  386. EQ MVEW
  387.  
  388. MVBS DATA 0 CURRENT ADDRESS AND BIT COUNT
  389. PRA SPACE 4
  390. ** PRA - EXTRACT PARAMETERS BEYOND PERIOD
  391. *
  392. * EXTRACT PARAMETERS FROM CONTROL CARD AREA
  393. *
  394. * ENTRY B1 = 1
  395. * X5 = ADDRESS OF CONTROL CARD
  396. *
  397. * EXIT X6 = 0 ALL OK, -1 IF ERROR
  398. * ARGUMENTS AT ARGR
  399. * A4/X4 = FIRST ARGUMENT
  400. * B4 = NUMBER OF ARGUMENTS
  401. *
  402. * USES A-4
  403. * X-1,2,3,4,6,7
  404. * B-3,4,5,6,7
  405. *
  406. * CALLS GTW
  407.  
  408.  
  409. PRA DATA 0 ENTRY/EXIT
  410. SA4 X5 CONTROL CARD AREA
  411. SB6 0 INITIAL SHIFT COUNT
  412. PRA1 RJ GTW GET NEXT WORD
  413. NG X2,PRAX ERROR - MORE THAN 10 CHARS.
  414. ZR X2,PRAX ERROR - NULL WORD
  415. SX7 X2-1R.
  416. ZR X7,PRA2 IF PERIOD
  417. SX7 X2-1R)
  418. NZ X7,PRA1 IF NOT )
  419. PRA2 SB3 ARGR LOCATION TO STORE ARGS
  420. PRA3 RJ GTW GET NEXT WORD
  421. NG X2,PRAX ERROR - MORE THAN 10 CHARS
  422. ZR X1,PRA5 IF END OF CARD
  423. SX7 X2-1R= SEE IF = IS DELIMITER
  424. SX6 0
  425. NZ X7,PRA3A IF NOT =
  426. SX6 1R= ADD = CHARACTER TO WORD
  427. EQ PRA4 MERGE
  428.  
  429. PRA3A SX7 X2-1R- SEE IF - IS DELIMITER
  430. NZ X7,PRA4 IF NOT -
  431. SX6 1R- ADD - CHARACTER TO WORD
  432. PRA4 BX6 X6+X1 MERGE
  433. SA6 B3 STORE ARGUMENT
  434. SB3 B3+B1 ADVANCE ARG POINTER
  435. NZ X2,PRA3 IF NOT END OF CARD
  436. PRA5 SB4 B3-ARGR NUMBER OF ARGUMENTS
  437. SA4 ARGR FIRST ARGUMENT
  438. MX6 0 OK EXIT
  439. EQ PRA
  440.  
  441. PRAX MX6 59 ERROR EXIT
  442. EQ PRA
  443. * /--- BLOCK SOURCEZ 00 000 81/04/21 08.19
  444. RDPARAM SPACE 4
  445. ** RDPARAM - READ PARAMETER BLOCK AND REST OF S0BACKC
  446.  
  447.  
  448. RDPARAM DATA 0 ENTRY/EXIT
  449. SB6 PARAM FWA
  450. SB7 MBALL*BLKSZE NUMBER OF WORDS TO ZERO
  451. RJ ZERO ZERO PARAMETER AREA
  452. REWIND I,R
  453. READ I,R
  454. READW I,PARAM,MBALL*BLKSZE
  455. EQ RDPARAM EXIT
  456. SETSLOT SPACE 4
  457. ** SETSLOT - SETUP SLOT TABLE
  458. *
  459. * ENTRY DA=DAILY COUNT
  460. * WK=WEEKLY COUNT
  461. * EXIT SLOT TABLE SET AS FOLLOWS';
  462. * 1,1,2,...,DA,DA+1,1,2,...,DA,DA+2,1,2,...
  463. * DA+3,1,2..........,DA,DA+WK
  464.  
  465.  
  466. SETSLOT DATA 0 ENTRY/EXIT
  467. SA1 DA GET DAILY COUNT
  468. SA2 WK GET WEEKLY COUNT
  469. IX7 X1+X2 CHECK PARAMETERS
  470. SX6 X1+B1
  471. SX7 X7-31 SEE IF .GT. 30
  472. PL X7,SETSLOT IF TOO BIG
  473. IX7 X6*X2
  474. SX3 B0 INITIAL COUNT
  475. SX7 X7-SLOTSZE-1
  476. PL X7,SETSLOT IF TOO BIG FOR BUFFER
  477. SB6 SLOT CLEAR SLOT TABLE
  478. SB7 SLOTSZE
  479. RJ ZERO
  480. SX7 1 SLOT 0 = 1
  481. SA7 SLOT
  482. SS1 SX7 1 BEGIN DAILY CYCLE
  483. SS2 SA7 A7+B1 STORE NEXT DAILY
  484. SX7 X7+1 BUMP COUNT
  485. IX6 X1-X7
  486. PL X6,SS2 IF MORE DAILY TO DO
  487. SX3 X3+B1 BUMP WEEKLY COUNT
  488. IX6 X2-X3
  489. NG X6,SETSLOT IF ALREADY DONE
  490. IX7 X3+X1 GET WEEKLY SLOT NUMBER
  491. SA7 A7+B1 STORE IN NEXT SLOT
  492. NZ X6,SS1 IF NOT DONE - RESTART DAILY
  493. EQ SETSLOT EXIT
  494. * /--- BLOCK SOURCEZ 00 000 81/04/21 07.57
  495. TRIPMSG SPACE 4
  496. ** TRIPMSG - WRITE A MESSAGE TO THE DAYFILE 3 TIMES
  497. *
  498. * X6 - ADDRESS OF MESSAGE
  499.  
  500.  
  501. TRIPMSG DATA 0
  502. SA6 TRSAVE
  503. MESSAGE X6
  504. SA1 TRSAVE
  505. MESSAGE X1
  506. SA1 TRSAVE
  507. MESSAGE X1
  508. EQ TRIPMSG
  509.  
  510. TRSAVE DATA 0
  511. WRPARAM SPACE 4
  512. ** WRPARAM - WRITE PARAMETER BLOCK AND REST OF S0BACKC
  513.  
  514.  
  515. WRPARAM DATA 0 ENTRY/EXIT
  516. REWIND I,R
  517. WRITEW I,PARAM,MBALL*BLKSZE
  518. WRITER I,R
  519. WRITEF I,R
  520. EQ WRPARAM EXIT
  521. ZERO SPACE 4
  522. ** ZERO - ZERO BUFFER
  523. *
  524. * ENTRY B1=1
  525. * B6=FWA
  526. * B7=NUMBER OF WORDS TO ZERO
  527. *
  528. * EXIT X7=0
  529. * BUFFER ZEROED
  530. *
  531. * USES A-7
  532. * X-7
  533. * B-6,7
  534.  
  535. ZERO DATA 0 EMTRY/EXIT
  536. MX7 0
  537. SB7 B7-B1
  538. NG B7,ZERO
  539. ZRO1 SA7 B6+B7
  540. SB7 B7-B1
  541. PL B7,ZRO1
  542. EQ ZERO
  543. * /--- BLOCK SOURCEZ 00 000 81/03/13 11.41
  544. TITLE K-DISPLAY ROUTINES
  545. BLANK SPACE 4
  546. ** BLANK - MOVE BLANK LINE TO K DISPLAY
  547.  
  548.  
  549. BLANK DATA 0 ENTRY/EXIT
  550. SB6 =1L MOVE BLANK LINE
  551. RJ MOVEL
  552. EQ BLANK
  553. BLDRP SPACE 4
  554. ** BLDRP - BUILD REQUIRED PACK ENTRY FOR K DISPLAY
  555.  
  556.  
  557. BLDRP DATA 0 ENTRY/EXIT
  558. SA1 BUILDC GET COUNTER
  559. SX1 X1+1
  560. SX6 X1-MXDSU+1
  561. PL X6,BLDRP IF TOO LARGE
  562. RJ OUT3 OUTPUT AS 3 CHARACTERS
  563. RJ OUTPER OUTPUT PERIOD
  564. SA1 BUILDC OUTPUT PACK NAME
  565. SX6 X1+B1 INCREMENT COUNTER
  566. SA6 A1
  567. SA1 X1+REQPK
  568. RJ SFN
  569. SB7 60
  570. RJ MVEB
  571. EQ BLDRP
  572. BLDSL SPACE 4
  573. ** BLDSL - BUILD SLOT TABLE ENTRY FOR K DISPLAY
  574.  
  575.  
  576. BLDSL DATA 0 ENTRY/EXIT
  577. SA1 BUILDC GET COUNTER
  578. SX6 X1-366
  579. PL X6,BLDSL IF OVER A YEAR
  580. RJ OUT3 OUTPUT AS 3 CHARACTERS
  581. RJ OUTPER OUTPUT PERIOD
  582. SA1 BUILDC OUTPUT SLOT NUMBER
  583. SA1 X1+SLOT
  584. ZR X1,BLDSL3 IF ZERO, OUTPUT BLANKS
  585. RJ OUT3
  586. BLDSL1 SA1 BUILDC SEE IF SLOT .EQ. COUNTER
  587. SA2 SLOT
  588. SX6 X1+B1 INCREMENT COUNTER
  589. SA6 A1
  590. ZR X1,BLDSL2 IF ZERO SLOT
  591. IX6 X1-X2 SEE IF MATCH ON SLOT
  592. ZR X6,BLDSL2
  593. SB7 6 OUTPUT ONE BLANK
  594. RJ OUTBLK
  595. EQ BLDSL
  596.  
  597. BLDSL2 SA1 =1L* OUTPUT STAR
  598. BX6 X1
  599. SB7 6
  600. RJ MVEB
  601. EQ BLDSL
  602.  
  603. BLDSL3 SB7 18 OUTPUT 3 BLANKS
  604. RJ OUTBLK
  605. EQ BLDSL1
  606. * /--- BLOCK SOURCEZ 00 000 81/03/10 11.59
  607. BLDVS SPACE 4
  608. ** BLDVS - BUILD VSN ENTRY FOR K DISPLAY
  609.  
  610.  
  611. BLDVS DATA 0 ENTRY/EXIT
  612. SX6 X2+B1 INCREMENT COUNTER
  613. SA6 A2
  614. SX1 X6
  615. BX6 X3 SAVE ENTRY
  616. SA6 BUILDY
  617. SA3 A3-B1 GET FIRST WORD OF VSN ENTRY
  618. BX6 X3 SAVE IT ALSO
  619. SA6 A6+B1
  620. RJ OUT4 OUTPUT VSN ENTRY NUMBER
  621. RJ OUTPER OUTPUT PERIOD
  622. SA1 BUILDY GET VSN NAME
  623. MX7 6 TEST TOP CHARACTER
  624. BX6 X7*X1
  625. NZ X6,BLDVS1 IF PACK NAME
  626. SA1 =5L T OUTPUT T FOR TAPE
  627. SB7 30
  628. BX6 X1
  629. RJ MVEB
  630. SA1 BUILDY
  631. LX1 6
  632. MX7 36 MASK NAME
  633. EQ BLDVS2
  634.  
  635. BLDVS1 SA1 =5L D OUTPUT D FOR DISK
  636. SB7 30
  637. BX6 X1
  638. RJ MVEB
  639. SA1 BUILDY
  640. MX7 42 MASK NAME
  641. BLDVS2 BX1 X7*X1
  642. RJ SFN OUTPUT PACK NAME
  643. SB7 42
  644. RJ MVEB
  645. SA1 BUILDY+1 GET SLOT
  646. MX7 -12 MASK SLOT
  647. BX1 -X7*X1
  648. RJ OUT4
  649. SA1 BUILDY
  650. AX1 14 EXTRACT YEAR
  651. MX7 -4
  652. BX1 -X7*X1
  653. SX1 X1+80 ADD OFFSET
  654. RJ OUT4
  655. RJ OUTDIV OUTPUT /
  656. SA1 BUILDY
  657. AX1 10 EXTRACT MONTH
  658. MX7 -4
  659. BX1 -X7*X1
  660. SX1 X1+10000
  661. RJ OUT2
  662. RJ OUTDIV OUTPUT /
  663. SA1 BUILDY
  664. AX1 5 EXTRACT DAY
  665. MX7 -5
  666. BX1 -X7*X1
  667. SX1 X1+10000
  668. RJ OUT2
  669. SB7 12
  670. RJ OUTBLK OUTPUT 2 BLANKS
  671. SA1 BUILDY
  672. MX7 -5 EXTRACT HOUR
  673. BX1 -X7*X1
  674. RJ OUT2
  675. SB7 12
  676. RJ OUTBLK OUTPUT 2 BLANKS
  677. SA1 BUILDY+1 OUTPUT MESSAGE
  678. MX7 8*6
  679. BX1 X7*X1
  680. RJ SFN
  681. SB7 8*6
  682. RJ MVEB
  683. EQ BLDVS EXIT
  684. * /--- BLOCK SOURCEZ 00 000 81/03/13 09.59
  685. BUILDO SPACE 4
  686. ** BUILDO - BUILD OUTPUT LINE
  687.  
  688.  
  689. BUILDX SX6 -1 END OF DISPLAY EXIT
  690. BUILDO DATA 0 ENTRY/EXIT
  691. SB6 BUILD FWA
  692. SB7 7 NUMBER OF WORDS
  693. RJ ZERO CLEAR BUILD BUFFER
  694. SX7 B6
  695. PX7 B0
  696. SA7 MVBS POINTER TO BUFFER
  697. SA1 DI
  698. SA2 BUILDC GET COUNTER
  699. ZR X1,BUILDX IF GENERAL INFO
  700. SX1 X1-1
  701. NZ X1,BUI1 IF NOT REQUIRED PACKS
  702. SX2 X2-MXDSU SEE IF DONE
  703. PL X2,BUILDX
  704. RJ BLDRP BUILD REQUIRED PACK LINE
  705. RJ BLDRP
  706. RJ BLDRP
  707. RJ BLDRP
  708. MX6 0 NOT FINISHED FLAG
  709. EQ BUILDO EXIT
  710.  
  711. BUI1 SX1 X1-1
  712. NZ X1,BUI2 IF NOT SLOT TABLE
  713. SX2 X2-366 SEE IF DONE
  714. PL X2,BUILDX
  715. RJ BLDSL BUILD SLOT TABLE OUTPUT LINE
  716. RJ BLDSL
  717. RJ BLDSL
  718. RJ BLDSL
  719. RJ BLDSL
  720. RJ BLDSL
  721. RJ BLDSL
  722. MX6 0 NOT FINISHED FLAG
  723. EQ BUILDO EXIT
  724.  
  725. BUI2 SX1 X1-1
  726. NZ X1,BUILDO IF NOT VSN TABLE
  727. BUI3 SX3 X2-4000 SEE IF DONE
  728. PL X3,BUILDX
  729. IX3 X2+X2 DOUBLE ENTRY NUMBER
  730. SA3 X3+VSN+1 LOOK FOR ENTRY
  731. NZ X3,BUI4
  732. SX2 X2+B1
  733. EQ BUI3
  734.  
  735. BUI4 SA4 S SEE IF SLOT SELECTED
  736. ZR X4,BUI5 IF NON SELECTED
  737. SA1 A3-B1 GET THIS SLOT NUMBER
  738. MX6 -12
  739. BX1 -X6*X1
  740. IX1 X1-X4 SEE IF THE SAME
  741. ZR X1,BUI5 PROCESS THIS ENTRY
  742. SX2 X2+B1 ADVANCE TO NEXT ENTRY
  743. EQ BUI3
  744.  
  745. BUI5 RJ BLDVS BUILD VSN TABLE ENTRY
  746. MX6 0 NOT FINISHED FLAG
  747. EQ BUILDO EXIT
  748.  
  749. BUILDC DATA 0 BUILD COUNTER
  750. BUILDY DATA 0,0 SAVE ENTRIES
  751. * /--- BLOCK SOURCEZ 00 000 81/04/21 08.44
  752. GENINFO SPACE 4
  753. ** GENINFO - GENERAL INFOMATION PAGE
  754.  
  755.  
  756. GENINFO DATA 0 ENTRY/EXIT
  757. SA1 PARAM+PDATE GET DATE OF LAST BACKUP
  758. SA2 PARAM+PTIME GET TIME
  759. BX6 X1
  760. BX7 X2
  761. SA6 PAR2
  762. SA7 A6+B1
  763. SB6 PAR1 MOVE BACK DATE/TIME TO K-DISP
  764. RJ MOVEL
  765. RJ BLANK BLANK LINE
  766. SA1 PARAM+PDNUM GET NUMBER OF DATASETS
  767. RJ CDD
  768. SA6 PAR8
  769. SB6 PAR7 MOVE TO KDISP
  770. RJ MOVEL
  771. RJ BLANK BLANK LINE
  772. SA1 SLOT GET SLOT POINTER
  773. RJ CDD
  774. SA6 PAR4
  775. SB6 PAR3 MOVE TO KDISP
  776. RJ MOVEL
  777. SA1 SLOT GET SLOT VALUE
  778. SA1 X1+SLOT
  779. RJ CDD
  780. SA6 PAR6
  781. SB6 PAR5 MOVE TO KDISP
  782. RJ MOVEL
  783. RJ BLANK
  784. EQ GENINFO GENERAL INFO PAGE
  785. * /--- BLOCK SOURCEZ 00 000 81/04/21 08.11
  786. KDISP SPACE 4
  787. ** DO K-DISPLAY
  788.  
  789.  
  790. KDISP DATA 0 ENTRY/EXIT
  791. RJ SETPAR SET UP PARAMETERS
  792. NZ X4,INITERR IF ERROR IN PARAMS
  793. KDSP1 RJ SETK SET UP K-DISPLAY PARAMETERS
  794. SA1 DI SEE DISPLAY MODE
  795. NZ X1,KDSP2 IF NOT GENERAL PARAMETERS
  796. RJ GENINFO GENERAL INFO DISPLAY
  797. EQ KDSP3
  798.  
  799. KDSP2 RJ BUILDO BUILD OUTPUT LINE
  800. NG X6,KDSP3 IF END OF DISPLAY
  801. SB6 BUILD
  802. RJ MOVEL MOVE TO K-DISPLAY BUFFER
  803. ZR X6,KDSP2 IF NO OUTPUT TO TRANSFER
  804. EQ KDSP4
  805.  
  806. KDSP3 SB6 0 END OF DISPLAY
  807. RJ MOVEL
  808. ZR X6,KDSP1 START OVER IF +
  809. KDSP4 SA1 =10HXXXXXXXXX. SET UP FAKE CONTROL CARD
  810. SX5 KFILL
  811. BX6 X1
  812. SA6 X5
  813. RJ PRA STRIP OFF PARAMETERS
  814. NZ X6,KDSP5 IF ERROR IN PARAMETERS
  815. MX7 6 SEE IF FIRST CHARACTER NUMERIC
  816. BX7 X7*X4
  817. LX7 6
  818. SX7 X7-1R0
  819. PL X7,KDSP6 IF POSSIBLE NUMERIC
  820. SA1 =3LEND
  821. SA2 =4LSTOP
  822. SA3 =10LINITIALIZE
  823. BX6 X4-X1
  824. BX7 X4-X2
  825. ZR X6,KDISP
  826. ZR X7,KDISP
  827. BX6 X4-X3
  828. ZR X6,KDSP18
  829. SB5 ARGT ARG TABLE ADDRESS
  830. RJ ARG
  831. NZ X1,KDSP5 ERROR IN PARAMETERS
  832. RJ SETBUF SET UP BUFFER
  833. RJ SETPAR SET UP PARAMETERS
  834. ZR X4,KDSP1 IF NO ERROR IN PARAMS
  835. KDSP5 RJ SETBUF SET UP BUFFER PARAMS
  836. RJ SETK
  837. SB6 INMSG ERROR IN PARAMS MESSAGE
  838. RJ MOVEL
  839. EQ KDSP3
  840.  
  841. * /--- BLOCK SOURCEZ 00 000 81/04/21 06.51
  842. KDSP6 MX5 42 MASK OFF NUMBER
  843. BX5 X5*X4
  844. SX7 B4 SAVE NUMBER OF ARGS
  845. SB7 B1 ASSUME DECIMAL
  846. SA7 KDSPX
  847. RJ DXB CONVERT
  848. NZ X4,KDSP5 IF ERROR
  849. NG X6,KDSP5 IF NEGATIVE VALUE
  850. SA1 KDSPX GET ARG COUNT
  851. SX1 X1-1
  852. NZ X1,KDSP9 IF MORE THAN ONE ARG
  853. SA2 ARGR GET FIRST ARGUMENT
  854. SX2 X2-1R= SEE IF EQUAL SEPARATOR
  855. ZR X2,KDSP8
  856. SX2 X2-1R-+1R= SEE IF MINUS SEPARATOR
  857. ZR X2,KDSP5 ERROR IF - AND ONLY ONE ARG.
  858. SA2 DI SEE DISPLAY MODE
  859. SX2 X2-2
  860. ZR X2,KDSP7 IF SLOT TABLE DISPLAY
  861. ZR X6,KDSP7 IF ZERO SELECTED
  862. SX6 X6-1 DECREMENT FOR PROPER VALUE
  863. KDSP7 SA6 A1+ SAVE ENTRY VALUE
  864. RJ SETBUF SET UP BUFFERS
  865. RJ SETK SET UP K DISPLAY PARAMETERS
  866. SA1 KDSPX SET UP ENTRY COUNTER
  867. BX6 X1
  868. SA6 BUILDC
  869. EQ KDSP2
  870.  
  871. KDSP8 SX7 0 SET UP DUMMY SECOND ARGUMENT
  872. SA7 ARGR+1
  873. KDSP9 SA1 ARGR GET FIRST ARGUMENT
  874. SX2 X1-1R=
  875. SX3 X1-1R-
  876. ZR X2,KDSP10 IF = SEPARATOR
  877. NZ X3,KDSP5 IF ERROR
  878. KDSP10 SA6 KDSPX SAVE ENTRY NUMBER
  879. SA5 A1+B1 GET NEXT ARGUMENT
  880. SB7 B1 ASSUME DECIMAL
  881. SA1 DI GET DISPLAY MODE
  882. ZR X1,KDSP5 IF GENERAL INFO.
  883. SX1 X1-2 SEE IF SLOT TABLE
  884. NZ X1,KDSP12 IF NOT SLOT TABLE
  885. RJ DXB CONVERT
  886. NZ X4,KDSP5 IF ERROR
  887. NG X6,KDSP5 IF ILLEGAL SLOT VALUE
  888. SA1 KDSPX GET SLOT ENTRY NUMBER
  889. SX2 X1-366
  890. PL X2,KDSP5 IF ENTRY NUMBER TO BIG
  891. ZR X1,KDSP11 IF ZERO SLOT ENTRY
  892. SX5 X6-31
  893. PL X5,KDSP5 IF SLOT VALUE TOO BIG
  894. SA6 X1+SLOT
  895. EQ KDSP1
  896.  
  897. KDSP11 SX5 X6-366
  898. PL X5,KDSP5 IF SLOT VALUE TOO BIG
  899. SA6 X1+SLOT
  900. EQ KDSP1
  901.  
  902. KDSP12 PL X1,KDSP13 IF NOT REQUIRED PACKS TABLE
  903. SX1 X6-MXDSU+1 SEE IF ENTRY NUMBER TOO LARGE
  904. PL X1,KDSP5
  905. ZR X6,KDSP5 IF ENTRY NUMBER ZERO
  906. BX7 X5 STORE ENTRY
  907. SA7 X6+REQPK-1
  908. EQ KDSP1
  909. * /--- BLOCK SOURCEZ 00 000 81/04/21 09.17
  910.  
  911. * VSN TABLE
  912.  
  913. KDSP13 ZR X6,KDSP5 ILLEGAL ENTRY NUMBER
  914. SX1 X6-4001
  915. PL X1,KDSP5 ILLEGAL ENTRY NUMBER
  916. ZR X2,KDSP14 IF ONLY ONE TO SET
  917. NZ X3,KDSP5 IF NOT MINUS SEPARATOR
  918. RJ DXB CONVERT SECOND ARGUMENT
  919. NZ X4,KDSP5 IF ERROR
  920. NG X6,KDSP5 IF NEGATIVE ENTRY NUMBER
  921. KDSP14 SA5 KDSPX FIRST ENTRY VALUE
  922. IX7 X6-X5 COMPARE FIRST AND SECOND ENTRY
  923. NG X7,KDSP5 SECOND .LT. FIRST
  924. SX1 X6-4001
  925. PL X1,KDSP5 ENTRY NUMBER TOO LARGE
  926. SA4 MESS MESSAGE TO STORE
  927. SA3 S SPECIFIED SLOT NUMBER
  928. MX2 48 MESSAGE/SLOT MASK
  929. BX4 X2*X4 ISOLATE MESSAGE
  930. KDSP15 IX1 X5+X5 OFFSET IN SLOT TABLE
  931. SA1 X1+VSN-1 GET ENTRY
  932. ZR X1,KDSP17 IF NULL ENTRY
  933. SA1 A1-B1 MESSAGE ENTRY
  934. BX7 -X2*X1 SLOT NUMBER
  935. IX1 X7-X3 COMPARE SLOTS
  936. ZR X3,KDSP16 IF ALL SLOTS ALLOWED
  937. NZ X1,KDSP17 IF WRONG SLOT
  938. KDSP16 BX7 X4+X7 MERGE MESSAGE AND SLOT
  939. SA7 A1+ STORE IN VSN
  940. KDSP17 SX5 X5+B1 GO TO NEXT VSN ENTRY
  941. IX1 X6-X5 COMPARE WITH LAST
  942. PL X1,KDSP15 IF NOT DONE
  943. EQ KDSP1 SHOW SCREEN
  944.  
  945. KDSP18 RJ INITPAR INITIALIZE PARAMETER BLOCK
  946. EQ KDSP1
  947.  
  948. KDSPX DATA 0 NUMBER OF ARGS
  949. * /--- BLOCK SOURCEZ 00 000 81/04/21 10.38
  950. MOVEL SPACE 4
  951. ** MOVEL - MOVE CODED LINE TO LEFT SCREEN BUFFER
  952. *
  953. * MOVES A CODED LINE TO LEFT DISPLAY BUFFER IF ROOM.
  954. * IF NO ROOM, OUTPUT MESSAGE *+ FOR MORE*, AND
  955. * WAIT FOR KEYBOARD INPUT. IF INPUT =*+*, THEN
  956. * ZERO BUFFER AFTER HEADER AND MOVE LINE.
  957. *
  958. * ENTRY B1=1
  959. * B6=ADDRESS OF CODED LINE
  960. * IF B6=0, END MESSSAGE SENT
  961. * WLINE, WHDR, LLINE, LHDR SET(INIT. 0,1,0,0)
  962. *
  963. * EXIT X6=0, LINE MOVED OK
  964. * X6.NE.0, INFORMATION IN KEYBOARD BUFFER
  965. * WLINE, LLINE RESET
  966.  
  967.  
  968. MOVEL DATA 0 ENTRY/EXIT
  969. MVL1 ZR B6,MVL7 IF END MESSAGE
  970. MX7 -12 CHARACTER MASK
  971. SB7 B0 WORD COUNTER
  972. MVL2 SA1 B6+B7 GET NEXT WORD
  973. BX6 -X7*X1 SEE IF BOTTOM 12 BITS ARE ZERO
  974. ZR X6,MVL3 IF END OF LINE
  975. SB7 B7+B1 BUMP WORD COUNT
  976. EQ MVL2
  977.  
  978. MVL3 SA1 WLINE CURRENT WORD COUNT
  979. SB7 B7+B1 CORRECT WORD COUNT FOR LINE
  980. SX6 X1+B7 TOTAL INCLUDING THIS LINE
  981. SX7 X6-1000B-3
  982. PL X7,MVL5 IF NOT ENOUGH ROOM IN BUFFER
  983. SA6 A1 UPDATE WORD COUNT
  984. SA2 LLINE UPDATE NUMBER OF LINES
  985. SX6 X2+B1
  986. SA6 A2
  987. SB4 B0 MOVE COUNTER
  988. SA3 MAXK CHECK IF TOO MANY LINES
  989. IX6 X2-X3
  990. PL X6,MVL5
  991. SB5 X1+LSCR FIRST STOREAGE ADDRESS
  992. MVL4 SA1 B6+B4 NEXT WORD TO TRANSFER
  993. BX6 X1
  994. SA6 B5+B4 STORE IN LEFT SCREEN BUFFER
  995. SB4 B4+B1 BUMP COUNTER
  996. LT B4,B7,MVL4 IF NOT DONE
  997. MX6 0 OK FLAG
  998. EQ MOVEL EXIT
  999.  
  1000. MVL5 SA2 =10L+ FOR MORE MORE INFO MESSAGE
  1001. MVL6 BX6 X2
  1002. SX7 B6 SAVE FWA OF MESSAGE
  1003. SA6 LSCR+X1 PUT IN SCREEN BUFFER
  1004. SA7 LSAVE
  1005. SB6 A6+B1 ZERO REST OF SCREEN BUFFER
  1006. SB7 X1-777B
  1007. SB7 -B7
  1008. RJ ZERO
  1009. RJ WAINP WAIT FOR KEYBOARD INPUT
  1010. NZ X6,MOVEL EXIT WITH ERROR FLAG
  1011. RJ SETBUF SET UP BUFFER
  1012. SA1 LSAVE RESTORE FWA OF LINE
  1013. SB6 X1
  1014. MX6 0
  1015. ZR B6,MOVEL EXIT IF END MESSAGE
  1016. EQ MVL1 TRY IT AGAIN
  1017.  
  1018. MVL7 SA2 =3LEND END MESSAGE
  1019. SA1 WLINE WORD COUNT
  1020. EQ MVL6 MOVE END MESSAGE
  1021. * /--- BLOCK SOURCEZ 00 000 81/03/10 12.23
  1022. OUTBLK SPACE 4
  1023. ** OUTBLK - OUTPUT BLANKS
  1024. *
  1025. * B7=6*CHAR COUNT
  1026.  
  1027.  
  1028. OUTBLK DATA 0 ENTRY/EXIT
  1029. SA1 =10H BLANKS
  1030. BX6 X1
  1031. RJ MVEB
  1032. EQ OUTBLK
  1033. OUTDIV SPACE 4
  1034. ** OUTDIV - OUTPUT DIVIDE SIGN (/)
  1035.  
  1036.  
  1037. OUTDIV DATA 0 ENTRY/EXIT
  1038. SA1 =1L/ OUTPUT DIVIDE SIGN
  1039. BX6 X1
  1040. SB7 6
  1041. RJ MVEB
  1042. EQ OUTDIV
  1043. OUTPER SPACE 4
  1044. ** OUTPER - OUTPUT PERIOD
  1045.  
  1046.  
  1047. OUTPER DATA 0 ENTRY/EXIT
  1048. SA1 =1L. OUTPUT PERIOD
  1049. BX6 X1
  1050. SB7 6
  1051. RJ MVEB
  1052. EQ OUTPER
  1053. OUT2 SPACE 4
  1054. ** OUT2 - OUTPUT 2 CHARACTERS
  1055. *
  1056. * ENTRY X1=NUMBER TO BE PUT IN BUILD BUFFER
  1057.  
  1058.  
  1059. OUT2 DATA 0 ENTRY/EXIT
  1060. RJ CDD CONVERT
  1061. LX6 6*8 OUTPUT 2 CHARACTERS
  1062. SB7 12
  1063. RJ MVEB
  1064. EQ OUT2
  1065. OUT3 SPACE 4
  1066. ** OUT3 - OUTPUT 3 CHARACTERS
  1067. *
  1068. * ENTRY X1=NUMBER TO BE PUT IN BUILD BUFFER
  1069.  
  1070.  
  1071. OUT3 DATA 0 ENTRY/EXIT
  1072. RJ CDD CONVERT
  1073. LX6 6*7 OUTPUT 3 CHARACTERS
  1074. SB7 18
  1075. RJ MVEB
  1076. EQ OUT3
  1077. OUT4 SPACE 4
  1078. ** OUT4 - OUTPUT 4 CHARACTERS
  1079. *
  1080. * ENTRY X1=NUMBER TO BE PUT IN BUILD BUFFER
  1081.  
  1082.  
  1083. OUT4 DATA 0 ENTRY/EXIT
  1084. RJ CDD CONVERT
  1085. LX6 6*6 OUTPUT 4 CHARACTERS
  1086. SB7 24
  1087. RJ MVEB
  1088. EQ OUT4
  1089. SETBUF SPACE 4
  1090. ** SETBUF - SET UP BUFFER
  1091. *
  1092. * ZEROS NON-HEADER PORTION OF BUFFER
  1093. * ZERO KEYBOARD BUFFER
  1094. * SETS POINTER TO REFLECT HEADER
  1095.  
  1096.  
  1097. SETBUF DATA 0 ENTRY/EXIT
  1098. SA1 WHDR ZERO BUFFER AND SET LINE COUNT
  1099. SA2 LHDR
  1100. BX6 X1
  1101. BX7 X2
  1102. SA6 WLINE
  1103. SA7 LLINE
  1104. SB6 X1+LSCR
  1105. SB7 X1-1000B - WORD COUNT
  1106. SB7 -B7
  1107. RJ ZERO
  1108. SB6 KBUF ZERO KEYBOARD BUFFER
  1109. SB7 KEND-KBUF
  1110. RJ ZERO
  1111. EQ SETBUF
  1112. * /--- BLOCK SOURCEZ 00 000 81/03/10 09.05
  1113. SETK SPACE 4
  1114. ** SETK - SET UP K-DISPLAY PARAMETERS
  1115.  
  1116.  
  1117. SETK DATA 0 ENTRY/EXIT
  1118. .NOS23 IFGE "MODLEVEL",617D
  1119. CSTATUS CTYPE GET CONSOLE TYPE
  1120. SA1 CTYPE
  1121. MX6 12
  1122. BX1 X6*X1
  1123. ZR X1,SETK0 IF CC545 CONSOLE
  1124. SX6 MAXK721 RESET MAX LINES
  1125. SA6 MAXK
  1126. .NOS23 ENDIF
  1127. SETK0 SX6 B1 SET UP SCREEN BUFFERS
  1128. SA6 WLINE NUMBER OF WORDS
  1129. LX6 48
  1130. SX7 0
  1131. SA7 LLINE LINE COUNT
  1132. SA6 LSCR SET DISPLAY MODES
  1133. SA6 RSCR
  1134. SB6 PLINE MOVE HEADER LINES
  1135. RJ MOVEL
  1136. SB6 =1L
  1137. RJ MOVEL
  1138. SA1 DI SEE WHICH DISPLAY
  1139. NZ X1,SETK1 IF NOT GENERAL INFO
  1140. SB6 LINE1
  1141. RJ MOVEL
  1142. SB6 LINE2
  1143. RJ MOVEL
  1144. EQ SETKX FINISH UP
  1145.  
  1146. SETK1 SX1 X1-1
  1147. NZ X1,SETK2 IF NOT REQUIRED PACKS TABLE
  1148. SB6 LINE3
  1149. RJ MOVEL
  1150. SB6 LINE4
  1151. RJ MOVEL
  1152. EQ SETKX FINISH UP
  1153.  
  1154. SETK2 SX1 X1-1
  1155. NZ X1,SETK3 IF NOT SLOT TABLE
  1156. SB6 LINE5
  1157. RJ MOVEL
  1158. SB6 LINE6
  1159. RJ MOVEL
  1160. EQ SETKX FINISH UP
  1161.  
  1162. SETK3 BSS 0 VSN TABLE
  1163. SB6 LINE7
  1164. RJ MOVEL
  1165. SB6 LINE8
  1166. RJ MOVEL
  1167.  
  1168. SETKX SA1 WLINE NUMBER OF WORDS IN HEADER
  1169. BX6 X1
  1170. SA6 WHDR
  1171. SX6 4 NUMBER OF LINES IN HEADER
  1172. SA6 LHDR
  1173. SX6 B0 CLEAR BUILD COUNTER
  1174. SA6 BUILDC
  1175. CONSOLE CMA CALL CONSOLE
  1176. EQ SETK
  1177.  
  1178. CTYPE BSS 1
  1179. * /--- BLOCK SOURCEZ 00 000 81/04/21 09.12
  1180. SETPAR SPACE 4
  1181. ** SETPAR - SETUP PARAMETERS
  1182. *
  1183. * CONVERT DATE/SLOT PARAMETERS
  1184. *
  1185. * EXIT X4=0 IF OK, X4.NE.0 IF ERROR
  1186.  
  1187.  
  1188. SETPAR DATA 0 ENTRY/EXIT
  1189. SA5 RR SEE IF REREAD REQUESTED
  1190. ZR X5,SETP1 NO
  1191. MX6 0
  1192. SA6 A5 CLEAR FLAG
  1193. RJ RDPARAM REREAD DATA
  1194. SETP1 SA5 WR SEE IF WRITE REQUESTED
  1195. ZR X5,SETP2 NO
  1196. MX6 0
  1197. SA6 A5 CLEAR FLAG
  1198. RJ WRPARAM WRITE DATA
  1199. SETP2 SA5 SLT CONVERT SLOT
  1200. SX6 B1
  1201. IX6 X5-X6
  1202. MX4 0 EXIT FLAG
  1203. SB7 B1 BASE FLAG = DECIMAL
  1204. ZR X6,SETP3
  1205. RJ DXB CONVERT
  1206. SETP3 NZ X4,SETPAR IF ERROR
  1207. SA6 S STORE CONVERTED NUMBER
  1208. SA5 DAF CONVERT DAILY
  1209. SX6 B1
  1210. IX6 X5-X6
  1211. MX4 0 EXIT FLAG
  1212. SB7 B1 BASE FLAG = DECIMAL
  1213. ZR X6,SETP4
  1214. RJ DXB CONVERT
  1215. NZ X4,SETPAR IF ERROR
  1216. SA6 DA STORE CONVERTED NUMBER
  1217. SETP4 SA5 WKF CONVERT WEEKLY
  1218. SX6 B1
  1219. IX6 X5-X6
  1220. MX4 0 EXIT FLAG
  1221. SB7 B1 BASE FLAG = DECIMAL
  1222. ZR X6,SETP5
  1223. RJ DXB CONVERT
  1224. NZ X4,SETPAR IF ERROR
  1225. SA6 WK STORE CONVERTED NUMBER
  1226. SETP5 SA1 DA ADD DAILY AND WEEKLY
  1227. SA2 WK
  1228. IX4 X1+X2
  1229. SX4 X4-30 COMPARE WITH MAXIMUM
  1230. ZR X4,SETP6 IF 30 EXACTLY
  1231. PL X4,SETPAR IF .GT. 30 (ERROR)
  1232. SETP6 SA5 SS SEE IF SET SLOT SELECTED
  1233. ZR X5,SETP7 NO
  1234. MX6 0
  1235. SA6 A5 CLEAR FLAG
  1236. RJ SETSLOT SET SLOT
  1237. SETP7 SA5 ND CONVERT NUMBER OF DATASETS
  1238. SX6 B1
  1239. IX6 X5-X6
  1240. MX4 0 EXIT FLAG
  1241. SB7 B1 BASE FLAG = DECIMAL
  1242. ZR X6,SETPAR
  1243. SX7 B1 CLEAR ND FLAG
  1244. SA7 A5
  1245. RJ DXB CONVERT
  1246. NZ X4,SETPAR IF ERROR
  1247. SA6 PARAM+PDNUM STORE CONVERTED NUMBER
  1248. EQ SETPAR
  1249. * /--- BLOCK SOURCEZ 00 000 81/04/21 10.17
  1250. WAINP SPACE 4
  1251. ** WAINP - WAIT FOR KEYBOARD INPUT
  1252. *
  1253. * EXIT X6=0, FIRST CHARACTER OF INPUT IS A *+*
  1254.  
  1255.  
  1256. WAINP DATA 0
  1257. SX6 0
  1258. SA6 KBUF ZERO KEYBOARD BUFFER
  1259. WAI1 RECALL WAIT FOR USER INPUT
  1260. SA1 KBUF SEE IF USER INPUT
  1261. ZR X1,WAI1 IF NO INPUT
  1262. MX6 6 SEE IF *+*
  1263. BX6 X6*X1
  1264. LX6 6
  1265. SX6 X6-1R+
  1266. EQ WAINP
  1267. TITLE TERMINATION PROGRAMS
  1268. * END PROGRAM
  1269. END ENDRUN
  1270.  
  1271. ABORT SX6 MSG1
  1272. RJ TRIPMSG
  1273. SX6 MSG2
  1274. RJ TRIPMSG
  1275. MESSAGE MSG3
  1276. SX6 MSG2
  1277. RJ TRIPMSG
  1278. SX6 MSG1
  1279. RJ TRIPMSG
  1280. ABORT
  1281. TITLE MESSAGES, BUFFERS, DATA AREAS AND COM DECKS
  1282.  
  1283. * DISPLAY MESSAGES
  1284.  
  1285.  
  1286. INMSG DIS ,* ERROR IN PARAMETERS.*
  1287. MSG1 DIS ,Z ******************************Z
  1288. MSG2 DIS ,Z *** ***Z
  1289. MSG3 DIS ,Z *** ERRORS ***Z
  1290.  
  1291. PLINE DIS ,* BACKUP TABLES*
  1292. LINE1 DIS ,* GENERAL INFORMATION*
  1293. LINE2 DIS ,* *
  1294. LINE3 DIS ,* REQUIRED PACKS TABLE*
  1295. LINE4 DIS ,* *
  1296. LINE5 DIS ,* SLOT TABLE*
  1297. LINE6 DIS ,*SLOT 0 IS A POINTER TO THE CURRENT SLOT*
  1298. LINE7 DIS ,* VSN TABLE*
  1299. LINE8 DIS ,* T/D VSN SLOT DATE HR MESSAGE*
  1300.  
  1301. PAR1 DATA 20HBACKUPS LAST RUN AT
  1302. PAR2 DATA 0 DATE
  1303. DATA 0 TIME
  1304. DATA 0
  1305. PAR7 DATA 20HNUMBER OF DATASETS
  1306. PAR8 DATA 0
  1307. DATA 0
  1308. PAR3 DATA 20HCURRENT SLOT POINTER
  1309. PAR4 DATA 0
  1310. DATA 0
  1311. PAR5 DATA 20HCURRENT SLOT VALUE
  1312. PAR6 DATA 0
  1313. DATA 0
  1314.  
  1315.  
  1316. * /--- BLOCK SOURCEZ 00 000 81/04/21 08.46
  1317. * ARGUMENT TABLE
  1318.  
  1319.  
  1320. ARGTBL BSS 0
  1321. ARGT BSS 0
  1322. VFD 12/2LRP,18/ONE,30/DI
  1323. VFD 12/2LGI,18/ZRO,30/DI
  1324. VFD 12/2LND,18/ONE,30/ND
  1325. VFD 12/2LST,18/TWO,30/DI
  1326. VFD 12/2LVS,18/THREE,30/DI
  1327. VFD 12/2LSL,18/ONE,30/SLT
  1328. VFD 12/2LDA,18/ONE,30/DAF
  1329. VFD 12/2LWK,18/ONE,30/WKF
  1330. VFD 12/2LRR,18/ONE,30/RR
  1331. VFD 12/2LWR,18/ONE,30/WR
  1332. VFD 12/2LSS,18/ONE,30/SS
  1333. VFD 12/1LM,18/ZRO,30/MESS
  1334. ARGTBLE DATA 0 END OF TABLE
  1335.  
  1336.  
  1337.  
  1338. * COUNTERS AND PARAMETERS
  1339.  
  1340. Z DATA 0 EXTENDED PARAMETER FLAG
  1341. S DATA 0 SLOT VALUE
  1342. ND DATA 1 NUMBER OF DATASETS FLAG
  1343. SLT DATA 0 SLOT FLAG
  1344. RR DATA 0 RE-READ FLAG
  1345. WR DATA 0 WRITE FLAG
  1346. SS DATA 0 SET SLOT FLAG
  1347. DAF DATA 1 DAILY FLAG
  1348. WKF DATA 1 WEEKLY FLAG
  1349. DA DATA 6 DAILY DEFAULT (6 DAILY DUMPS)
  1350. WK DATA 24 WEEKLY DEFAULT (24)
  1351. MESS DATA 0 MESSAGE AREA
  1352. ONE DATA 1 CONSTANT ONE
  1353. ZRO DATA 0 CONSTANT ZERO
  1354. TWO DATA 2 CONSTANT TWO
  1355. THREE DATA 3 CONSTANT THREE
  1356. DI DATA 0 DISPLAY FLAG
  1357.  
  1358. WLINE DATA 0 NUMBER OF WORDS USED IN BUFFER
  1359. LLINE DATA 0 NUMBER OF LINES IN BUFFER
  1360. WHDR DATA 1 NUMBER OF WORDS IN HEADER
  1361. LHDR DATA 0 NUMBER OF LINES IN HEADER
  1362. LSAVE DATA 0 SAVE FWA OF LINE
  1363.  
  1364. MAXK CON MAXK545 MAX LINES ON K-DISPLAY
  1365. CMA VFD 24/KBUF,18/RSCR,18/LSCR K-SCREEN PARAMS
  1366.  
  1367. * RESERVE BUFFER SPACE
  1368.  
  1369. IBUF BSSZ IBUFL CIRCULAR BUFFER FOR I
  1370. * OBUF BSSZ OBUFL CIRCULAR BUFFER FOR O
  1371. * ABUF BSSZ ABUFL CIRCULAR BUFFER FOR A
  1372. PARAM BSSZ MBPARM*BLKSZE PARAMETER TABLE
  1373. SLOT BSSZ MBSLOT*BLKSZE SLOT TABLE
  1374. LAB BSSZ MBLAB*BLKSZE LOOK ASIDE BUFFER
  1375. VSN BSSZ MBVSN*BLKSZE VSN TABLE
  1376. REQPK EQU PARAM+PREQP REQUIRED PACKS TABLE
  1377.  
  1378. * SCREEN LOCATIONS
  1379.  
  1380. SCREEN BSSZ 2030B SCREEN BUFFERS
  1381. RSCR EQU SCREEN RIGHT SCREEN
  1382. LSCR EQU RSCR+1000B LEFT SCREEN
  1383. KFILL EQU LSCR+1000B KEYBOARD FILL IN COMMAND
  1384. KBUF EQU KFILL+1 KEYBOARD BUFFER
  1385. KEND EQU KBUF+9 END OF KEYBOARD BUFFER
  1386. BUILD EQU KEND BUILD OUTPUT LINE
  1387. BEND EQU BUILD+7 END OF BUFFERS
  1388.  
  1389. * /--- BLOCK SOURCEZ 00 000 81/04/29 09.09
  1390.  
  1391. * COMMON DECKS.
  1392.  
  1393.  
  1394. *CALL COMCCIO
  1395. *CALL COMCRDS
  1396. *CALL COMCRDW
  1397. *CALL COMCSYS
  1398. *CALL COMCWTS
  1399. *CALL COMCWTW
  1400. *CALL COMCCDD
  1401. *CALL COMCWOD
  1402. *CALL COMCMVE
  1403. *CALL COMCSFN
  1404. *CALL COMCCPM
  1405. *CALL COMCPFM
  1406. *CALL COMCLFM
  1407. *CALL PLACARG
  1408. *CALL COMCDXB
  1409.  
  1410. ORG RSCR+1
  1411. DIS ,* BACKMOD PARAMETER HELP SEQUENCE*
  1412. DIS ,* *
  1413. DIS ,* K.GI. GENERAL INFORMATION PAGE*
  1414. DIS ,* K.ND=N - SET THE NUMBER OF DATASETS*
  1415. DIS ,* *
  1416. DIS ,* K.RP. REQUIRED PACKS PAGE*
  1417. DIS ,* K.N=PACK - STORE PACKNAME AT N*
  1418. DIS ,* *
  1419. DIS ,* K.ST. SLOT TABLE PAGE*
  1420. DIS ,* K.N=M - STORE M AT SLOT N*
  1421. DIS ,* K.DA=M - SET DAILY CYCLE*
  1422. DIS ,* K.WK=M - SET WEEKLY CYCLE*
  1423. DIS ,* K.SS - SET SLOT TABLE USING DA AND WK*
  1424. DIS ,* SLOT 0 IS POINTER TO NEXT SLOT TO USE*
  1425. DIS ,* *
  1426. DIS ,* K.VS. VSN TABLE PAGE*
  1427. DIS ,* K.SL=NN - SELECT SLOT ENTRIES*
  1428. DIS ,* K.M=MESSAGE - SETUP MESSAGE FOR VSN(S)*
  1429. DIS ,* K.N START DISPLAY AT VSN ENTRY N*
  1430. DIS ,* K.N= STORE MESSAGE AT VSN ENTRY N*
  1431. DIS ,* K.1-4000 STORE MESSAGE AT ALL ENTRIES*
  1432. DIS ,* K.M-N STORE MESSAGE AT ENTRIES M - N*
  1433. DIS ,* MESSAGES WILL ONLY BE STORED AT VSNS WITH*
  1434. DIS ,* CORRECT SLOT VALUES IF K.SL=NN SELECTED*
  1435. DIS ,* *
  1436. DIS ,* K.RR. REREAD FROM DISK - K.WR WRITE TO DISK*
  1437. DIS ,* K.INITIALIZE. INITIALIZE*
  1438. DIS ,* K.STOP. OR K.END. - EXIT.*
  1439. DIS ,* *
  1440. DIS ,* K.+ WILL ADVANCE THE ENTRIES OR START OVER*
  1441. DIS ,* IF AT THE END OF THE ENTRIES*
  1442. DATA 0
  1443.  
  1444. ORG *
  1445.  
  1446.  
  1447. END BACKMOD
plato.source/plaopl/backmod.txt ยท Last modified: 2021/02/06 16:21 by 127.0.0.1