User Tools

Site Tools


cdc:nos2.source:opl871:restart

RESTART

Table Of Contents

  • [00010] RESTART - RESTART CHECKPOINTED JOB.
  • [00014] RESTARTS A JOB FROM INFORMATION ON A
  • [00130] READX - REDEFINE MACRO TO READ CONTROL WORDS.
  • [00155] STORAGE ASSIGNMENT.
  • [00200] MAIN PROGRAM.
  • [00201] MAIN LOOP.
  • [00301] SUBROUTINES
  • [00303] ERP$ - ERROR PROCESSING ROUTINE.
  • [00336] CPY - COPY FILE.
  • [00407] IWB - INSURE WORD IN BUFFER.
  • [00447] PSF - POSITION FILE.
  • [00630] PRT - PROCESS FILE TABLE.
  • [00825] RCC - RENAME/RETURN CCL FILES.
  • [00870] RDA - READ DATA.
  • [00941] SMD - SET FILE ACCESS MODE.
  • [00982] COMMON DECKS AND BUFFERS.
  • [01004] PRESET.

Source Code

RESTART.txt
  1. IDENT RESTART,FETS
  2. ABS
  3. SST
  4. SYSCOM B1
  5. ENTRY RESTART
  6. ENTRY LIB=
  7. ENTRY DMP=
  8. ENTRY RFL=
  9. ENTRY SSJ=
  10. TITLE RESTART - RESTART CHECKPOINTED JOB.
  11. *COMMENT RESTART - RESTART CHECKPOINTED JOB.
  12. COMMENT COPYRIGHT CONTROL DATA SYSTEMS INC. 1992.
  13. SPACE 4
  14. *** RESTART - RESTARTS A JOB FROM INFORMATION ON A
  15. * CHECKPOINT FILE.
  16. * V.A. WALSH. 72/06/01.
  17. * K.R. COMBS. 73/06/01.
  18. * M.S. CARTER. 76/06/01.
  19. SPACE 4
  20. *** CONTROL CARD FORMAT -
  21. *
  22. * RESTART(FILE,N,RI,NA,FC)
  23. * *FILE* = FILENAME OF CHECKPOINT FILE.
  24. * *N* = NUMBER OF CHECKPOINT TO USE. IF N=*, THE
  25. * LAST CHECKPOINT ON THE FILE WILL BE USED.
  26. * IF NOT PRESENT, SYSTEM ASSUMES 1.
  27. * *RI* = REPLACE INPUT OPTION. IF PRESENT, THE INPUT
  28. * FILE OF THE CHECKPOINT JOB WONT BE RESTORED.
  29. * *NA* = NO ABORT OPTION. IF PRESENT, RESTART WILL
  30. * NOT ABORT IF ALL FILES NEEDED ARE NOT PRESENT.
  31. * IF A PARITY ERROR IS ENCOUNTERED, CHECKPOINT
  32. * N-1 WILL BE RESTARTED IF AVAILABLE.
  33. * *FC* = FILE CHECK OPTION. IF SET, RESTART WILL
  34. * CHECK IF FILE IS PRESENT AND WILL NOT
  35. * REPLACE THE FILE IF IT IS THERE ALREADY.
  36. SPACE 4
  37. *** DAYFILE MESSAGES
  38. *
  39. * * CHECKPOINT NOT FOUND.* = SPECIFIED CHECKPOINT NOT FOUND.
  40. *
  41. * * CHECKPOINT FILE ERROR.* = ILLEGAL FORMAT ON FILE.
  42. *
  43. * * ERROR IN ARGUMENTS.* = RESTART PARAMETERS INCORRECT.
  44. *
  45. * * FILENAM NOT FOUND.* = FILE COULD NOT BE FOUND OR RETRIEVED.
  46. *
  47. * * FILE ERROR FILENAM.* = ILLEGAL ADDRESS ON FILE *FILENAM*.
  48. *
  49. * * JSNN RESTARTED FROM YY/MM/DD. HH.MM.SS.* = JOB WAS
  50. * RESTARTED FROM CHECKPOINT OF GIVEN DATE.
  51. *
  52. * * PARITY ERROR - RESTARTED FROM NN.* = JOB WAS RESTARTED
  53. * CHECKPOINT NN WHEN ERROR AS ENCOUNTERED.
  54. SPACE 4
  55. *** CHECKPOINT FILE FORMAT.
  56. *
  57. *T 60/10002B HEADER
  58. *T 6/0,18/DATE,18/TIME,6/CK,12/CKP NO.
  59. *T 24/JSN,36/0
  60. *
  61. *T 60/20NNNB FILE TABLE
  62. *
  63. *T 42/FILENAM,3/,2/I,1/W,6/FILE TYPE,6/FILE STATUS
  64. *T 24/FL,24/RB,3/COPY TYPE,1/,4/M,3/RS,1/L
  65. * .
  66. * .
  67. * .
  68. *T 60/0 END OF TABLE
  69. *
  70. *T 60/P30NNNB FILE COPIES
  71. *
  72. * FILE 1
  73. *
  74. *T 60/P31NNNB EOR FLAG
  75. *
  76. *T 60/P33NNNB EOI FLAG
  77. *
  78. * FILE 2
  79. *
  80. *T 60/P30NNNB DATA
  81. *
  82. *T 60/P32000B EOF FLAG
  83. *
  84. *T 60/P33000B EOI FLAG
  85. * .
  86. * .
  87. * .
  88. * FILE N
  89. *
  90. *T 60/P30NNNB DATA
  91. *
  92. *T 60/P33000B EOI FLAG
  93. *
  94. *T 60/40NNNB DUMP FILE
  95. *
  96. * CONTENTS OF DM*
  97. *
  98. *T 60/50000B END OF CHECKPOINT FILE
  99. *
  100. * EOR
  101. *
  102. * CHECKPOINT CONTROL WORD
  103. *T 6/0,18/DATE,18/TIME,6/CK,12/CKP NO.
  104. *
  105. * EOR
  106. *
  107. *
  108. *
  109. * P - PARITY BIT IF CODED FILE.
  110. * CK - CHECKPOINT MODE
  111. * NNN - NUMBER OF WORDS IN NEXT BLOCK.
  112. * M - MODE OF USE ALLOWED.
  113. * I - TYPE OF FILE.
  114. * W - SET IF WRITE LOCKOUT.
  115. * FL - FILE LENGTH (0 IF NOT MS)
  116. * RB - RANDOM INDEX (IF MS).
  117. * BLOCK COUNT (IF TAPE).
  118. * RS - READ STATUS.
  119. * L - SET IF LAST OPERATION WAS WRITE.
  120. SPACE 4
  121. * ASSEMBLY CONSTANTS
  122.  
  123. BUFL EQU 1001B
  124. IBUFL EQU 2001B
  125. OBUFL EQU 4011B
  126. SBUFL EQU 401B
  127. TBUFL EQU 1003B LENGTH OF TAPE BUFFER
  128. LIB= EQU 0 READ EXECUTE-ONLY FILES
  129. SPACE 4
  130. ** READX - REDEFINE MACRO TO READ CONTROL WORDS.
  131. *
  132. * FORMAT READX F,S,N
  133. *
  134. * WHERE F = FET ADDRESS.
  135. * S = BUFFER ADDRESS.
  136. * N = LENGTH OF BUFFER IN WORDS.
  137.  
  138.  
  139. READX MACRO F,S,N
  140. R= B6,S
  141. R= B7,N
  142. R= X2,F
  143. RJ RDA
  144. ENDM
  145.  
  146.  
  147. *CALL COMCMAC
  148. *CALL COMCCMD
  149. *CALL COMSLFM
  150. QUAL MTX
  151. *CALL COMSMTX
  152. QUAL *
  153. *CALL COMSPFM
  154. *CALL COMSSSJ
  155. TITLE STORAGE ASSIGNMENT.
  156. ORG 101B
  157. FETS BSS 0
  158. I BSS 0
  159. CCCCCCX FILEB IBUF,IBUFL,EPR
  160. BSS 2
  161. O BSS 0
  162. CCCCCCY FILEB OBUF,OBUFL,EPR,(FET=12)
  163. P BSS 0
  164. CCCCCCZ RFILEB 2,1,(FET=12),EPR
  165. SPACE 4,10
  166. ** LISTS OF CCL FILE NAMES AND NOS SCRATCH FILE
  167. * NAMES USED TO TEMPORARILY SAVE CCL FILES WHEN *RI*
  168. * IS NOT SPECIFIED. EACH ENTRY IS IN THE FORM -
  169. *
  170. *T 42/FILENAM,17/0,1/P.
  171. *
  172. * WHERE P = 1 IF THE FILE IS TO BE PROCESSED.
  173.  
  174.  
  175. CCLF VFD 42/0LZZZZZC0,17/0,1/1
  176. VFD 42/0LZZZZZC1,17/0,1/1
  177. VFD 42/0LZZZZZC2,17/0,1/1
  178. CCLFL EQU *-CCLF
  179. CON 0 END OF CCL FILES
  180. SCRF VFD 42/0LZZZZZG0,17/0,1/0
  181. VFD 42/0LZZZZZG1,17/0,1/0
  182. VFD 42/0LZZZZZG2,17/0,1/0
  183. CON 0 END OF SCRATCH FILES
  184. SPACE 4
  185. * PARAMETER FLAG LOCATIONS.
  186.  
  187. CKNO CON 1 CHECKPOINT NUMBER
  188. RIFL BSSZ 1 REPLACE INPUT FLAG
  189. NAFL BSSZ 1 NO ABORT FLAG
  190. FCFL BSSZ 1 FILE CHECK FLAG
  191. DTYP BSSZ 1 DATA TYPE
  192. HDRB BSSZ 1 HEADER STORAGE WORD
  193. FIID BSS 1 DATA FILE ID
  194.  
  195.  
  196. * SPECIAL ENTRY POINTS.
  197.  
  198. DMP= EQU 450000B CREATE EMPTY DUMP FILE
  199. SSJ= EQU SSJD SSJ= DROP FILES OPTION
  200. TITLE MAIN PROGRAM.
  201. ** RESTART - MAIN LOOP.
  202.  
  203.  
  204. RESTART RJ PRS PRESET PROGRAM
  205. SB4 CCLF FWA OF CCL FILE LIST
  206. SB5 SCRF FWA OF SCRATCH FILE LIST
  207. SB3 B0 SELECT RENAME FUNCTION
  208. RJ RCC RENAME/RETURN CCL FILES
  209. RJ PRT PROCESS FILE TABLE
  210.  
  211. SA1 =C/DM*/ SET UP DM* FILE
  212. SX3 3
  213. BX6 X1+X3
  214. SA6 O
  215. REWIND O,R
  216. READO I
  217. MX0 -9
  218. BX0 -X0*X6 GET BLOCK LENGTH
  219. MX3 -3
  220. AX6 9
  221. BX6 -X3*X6 GET BLOCK TYPE FLAG
  222. SA0 X6 SAVE BLOCK TYPE FLAG
  223. READW I,BUF,X0
  224. SX5 BUF+2
  225. RJ IWB INSURE WORD IN BUFFER
  226. SA1 X5+
  227. MX6 30B
  228. BX6 X6*X1
  229. AX6 6
  230. SA6 MEMR
  231. AX6 30
  232. SX6 X6-PRS
  233. PL X6,RST1 IF FIELD LENGTH BIG ENOUGH FOR RESTART
  234. SX6 PRS
  235. LX6 30
  236. SA6 A6
  237. RST1 SX5 X5-2+ECSW
  238. RJ IWB INSURE WORD IN BUFFER
  239. SA2 UESC
  240. SA1 X5 GET ECS FL/*UEBS*
  241. SB2 X2+39
  242. MX6 -12
  243. BX6 -X6*X1
  244. LX6 B2 FORM EM FL FOR MEMORY MACRO
  245. SA6 MEME STORE ECS FIELD LENGTH
  246. SA1 RIFL CHECK FOR *RI*
  247. ZR X1,RST2 IF OLD CONTROL STATEMENTS TO BE USED
  248. GETJCI RSTA GET CCL PARAMETERS
  249. SX5 X5-ECSW+JCDW
  250. RJ IWB INSURE WORD IN BUFFER
  251. SA1 RSTA
  252. BX6 X1
  253. SA6 X5
  254. SX5 X5-JCDW+JCRW
  255. RJ IWB INSURE WORD IN BUFFER
  256. SA1 RSTA+1
  257. BX6 X1
  258. SA6 X5
  259. RST2 SX6 4 SET UP RETURN JUMP
  260. SX1 RST3
  261. LX6 54
  262. LX1 30
  263. BX6 X1+X6
  264. SA6 CPY
  265. SX6 4 SET START OF (DM*) FILE BLOCK TYPE FLAG
  266. SA6 DTYP
  267. EQ CPY0.5
  268.  
  269. RST3 REWIND O,R
  270.  
  271. * POSITION FILE IN CASE OF SUBSEQUENT CHECKPOINT
  272.  
  273. READO I GET TO EOR
  274. SA1 HDRB GET HEADER WORD
  275. BX6 X1
  276. MX0 1
  277. BX6 -X0*X6 CLEAR TOP BIT
  278. BX6 X0+X6 SET TOP BIT TO SHOW LAST CHKPT
  279. WRITEO I
  280. WRITER I,R
  281. BKSP I,R POSITION FOR SUBSEQUENT CHECKPOINT
  282.  
  283. MESSAGE MSGB,,R
  284.  
  285. MEMORY CM,MEMR,R GET MEMORY NEEDED FOR RESTARTED JOB
  286. MEMORY ECS,MEME,R GET ECS NEEDED FOR RESTARTED JOB
  287. RECALL O
  288. LOCK O,R LOCK DM* FILE TO INDICATE RESTART COMPLETE
  289.  
  290. * RETURN SCRATCH FILES IF NEEDED.
  291.  
  292. SB3 B1+ SELECT RETURN FUNCTION
  293. SB4 SCRF
  294. RJ RCC RENAME/RETURN CCL FILES
  295. ENDRUN
  296.  
  297. RSTA BSS 2 *GETJCI* PARAMETER RETURN BLOCK
  298. MEMR BSS 1 NEEDED FL FROM DM* FILE
  299. MEME BSS 1 NEEDED ECS FROM EXCHANGE PACKAGE
  300. MSGB DATA C* ++++ RESTARTED FROM(((((((((())))))))))*
  301. TITLE SUBROUTINES
  302. ERP$ SPACE 4
  303. ** ERP$ - ERROR PROCESSING ROUTINE.
  304. *
  305. * ENTRY TAPE ERROR.
  306. *
  307. * EXIT ABORT IF FIRST CHECKPOINT
  308. * RESTART RESTART AT PREVIOUS CHECKPOINT.
  309. *
  310. * CALLS NONE.
  311. *
  312. * USES A - 2,7.
  313. * B - NONE.
  314. * X - 2,3,7.
  315.  
  316.  
  317. ERP$ SA2 NAFL
  318. ZR X2,CPY5 IF ABORT SET
  319. SA2 CKNO
  320. SX7 X2-1
  321. ZR X2,CPY5 ABORT
  322. SA7 CKNO
  323. SA7 MSGE+3
  324. SKIPB I,3 POSITION TO N-1
  325. SA2 I
  326. MX3 -3
  327. AX2 3
  328. SX2 X2-5
  329. BX3 -X3*X2
  330. ZR X2,CPY5 ABORT
  331. MESSAGE MSGE,,R
  332. EQ PRS4 START AGAIN
  333.  
  334. MSGE DATA C* PARITY ERROR - RESTARTED FROM NN.*
  335. CPY SPACE 4,15
  336. ** CPY - COPY FILE.
  337. *
  338. * ENTRY FILE NAME SET IN FET I.
  339. * (X6) = DATA TYPE.
  340. *
  341. * EXIT FILE WRITTEN FROM FET O.
  342. *
  343. * USES A - 0, 1, 2, 3, 4, 6, 7.
  344. * X - 0, 1, 2, 3, 4, 6, 7.
  345. * B - ALL.
  346. *
  347. * CALLS RCC.
  348. *
  349. * MACROS ABORT, MESSAGE, RECALL, READO, READW, WRITEF, WRITEF,
  350. * WRITEW.
  351.  
  352.  
  353. CPY SUBR ENTRY/EXIT
  354. SA6 DTYP SAVE DATA TYPE
  355. CPY0 READO I
  356. MX0 -9
  357. BX0 -X0*X6 GET BLOCK LENGTH
  358. SA1 DTYP CHECK FOR VALID BLOCK TYPE
  359. MX3 -3
  360. AX6 9
  361. BX4 -X3*X6 GET BLOCK TYPE FLAG
  362. AX6 3
  363. SA0 X4
  364. BX4 -X3*X6 DATA TYPE
  365. BX2 X3*X6 PARITY BIT
  366. BX4 X4-X1
  367. NZ X4,CPY4 IF ILLEGAL DATA TYPE
  368. ZR X2,CPY0.1 IF NO CHANGE (BINARY)
  369. RECALL O
  370. SA1 O
  371. SX2 B1
  372. BX6 X3*X1
  373. BX6 X6+X2
  374. SA6 A1
  375. CPY0.1 ZR X0,CPY1 IF NO DATA
  376. READW I,BUF,X0
  377. CPY0.5 WRITEW O,BUF,X0
  378. SX6 A0 CHECK BLOCK TYPE FLAG
  379. ZR X6,CPY0 IF NOT EOR
  380. CPY1 SB2 A0-B1 CHECK BLOCK TYPE FLAG
  381. NZ B2,CPY2 IF NOT EOR
  382. WRITER O,R
  383. EQ CPY0 LOOP TIL END OF RECORD
  384.  
  385. * IF END OF FILE.
  386.  
  387. CPY2 SX6 A0-2 CHECK BLOCK TYPE FLAG
  388. ZR X6,CPY3 IF EOF
  389. WRITE O,R
  390. SA1 O+2
  391. SA2 A1+B1
  392. IX2 X1-X2
  393. SX2 X2
  394. ZR X2,CPYX IF NO DATA
  395. CPY3 WRITEF O,R
  396. SX6 A0-3 CHECK BLOCK TYPE FLAG
  397. ZR X6,CPYX IF EOI
  398. EQ CPY0 LOOP TIL END OF INFORMATION
  399.  
  400. CPY4 MESSAGE (=C* CHECKPOINT FILE ERROR.*)
  401. CPY5 SB4 SCRF FWA OF SCRATCH FILE LIST
  402. SB5 CCLF FWA OF CCL FILE LIST
  403. SB3 B0 SELECT RENAME FUNCTION
  404. RJ RCC RENAME/RETURN CCL FILES
  405. ABORT
  406. IWB SPACE 4,15
  407. ** IWB - INSURE WORD IN BUFFER.
  408. *
  409. * IWB INSURES THAT THE DESIRED WORD IS ACTUALLY IN THE
  410. * BUFFER. IF IT IS NOT IN THE PRESENT BLOCK, THEN THE
  411. * PRESENT BLOCK IS COPIED AND THE NEXT BLOCK IS OBTAINED.
  412. *
  413. * ENTRY (X0) = NUMBER OF WORDS IN BLOCK TO BE WRITTEN.
  414. * (X5) = BUF + DESIRED WORD.
  415. * (A0) = BLOCK TYPE.
  416. *
  417. * EXIT (X0) = NUMBER OF WORDS IN NEW BLOCK.
  418. * (X5) = LOCATION OF DESIRED WORD.
  419. * (A0) = NEW BLOCK TYPE IF DATA TRANSFERED.
  420. *
  421. * USES X - 0, 2, 3, 4, 5, 6.
  422. *
  423. * MACROS READO, READW, WRITEW.
  424.  
  425.  
  426. IWB SUBR ENTRY/EXIT
  427. SX2 X5-BUF+1
  428. IX2 X0-X2
  429. PL X2,IWBX IF WORD IN BUFFER
  430. IX5 X5-X0
  431. WRITEW O,BUF,X0
  432. READO I
  433. MX0 -9 GET BLOCK LENGTH
  434. BX0 -X0*X6
  435. MX3 -3 GET BLOCK TYPE
  436. AX6 9
  437. BX4 -X3*X6 BLOCK TYPE
  438. AX6 3
  439. SA0 X4
  440. BX4 -X3*X6 DATA TYPE
  441. SX4 X4-4
  442. NZ X4,CPY4 IF INCORRECT DATA TYPE
  443. ZR X0,CPY4 IF -DM*- FILE TOO SHORT
  444. READW I,BUF,X0
  445. EQ IWBX RETURN
  446. PSF SPACE 4,15
  447. ** PSF - POSITION FILE.
  448. *
  449. * ENTRY FILE NAME IN FETS O AND P.
  450. * USES FET P FOR DISK FILES, POSITIONING BY RANDOM ADDR.
  451. * USED FET O FOR TAPE FILES, POSITIONING BY CONTROL WORD.
  452. *
  453. * CALLS NONE.
  454. *
  455. * EXIT FILE POSITIONED.
  456. *
  457. * USES A - 0, 1, 2, 3, 4, 6.
  458. * X - ALL.
  459. *
  460. * MACROS BKSPRU, FILINFO, MESSAGE, READ, READCW, READX, RECALL,
  461. * REWIND, SKIPF.
  462.  
  463.  
  464. PSF9 REWIND P POSITION FOR COPY TYPE 1
  465.  
  466. PSF SUBR ENTRY/EXIT
  467. RECALL O
  468. RECALL P
  469.  
  470. SA1 O
  471. AX1 10
  472. MX3 -4
  473. BX4 -X3*X1
  474. NZ X4,PRT16 IF ERROR
  475.  
  476. SA1 P
  477. AX1 10
  478. BX4 -X3*X1
  479. NZ X4,PRT16 IF ERROR
  480.  
  481. SA1 O+9
  482. MX0 -3
  483. LX1 2-11
  484. BX3 -X0*X1
  485. SX3 X3-1
  486. ZR X3,PSF9 IF COPY TYPE 1
  487.  
  488. SA1 O+8
  489. AX1 13
  490. MX3 -2
  491. BX4 -X3*X1
  492. SX2 X4-1
  493. ZR X2,PSF3 IF TAPE FILE
  494. SX4 X4-2
  495. ZR X4,PSFX IF TTY FILE
  496.  
  497. * POSITION MASS STORAGE.
  498.  
  499. REWIND P,R
  500. SA1 O+9 SET RANDOM ADDRESS
  501. AX1 12
  502. MX3 -24
  503. BX6 -X3*X1
  504. SX1 B1+
  505. IX1 X6-X1 ACCOUNT FOR RANDOM POSITIONING
  506. ZR X1,PSFX IF BOI DESIRED
  507. PSF1 SA6 P+6
  508. READ P,R DO RANDOM READ
  509. SA1 P
  510. AX1 10
  511. MX0 -4
  512. BX0 -X0*X1
  513. ZR X0,PSFX IF NO ERROR OCCURRED
  514.  
  515. * DISPLAY ERROR MESSAGE
  516.  
  517. PSF2 SA1 O
  518. MX0 42
  519. BX6 X0*X1 ISOLATE FILE NAME
  520. SA1 MSGD+1
  521. MX0 12
  522. BX1 X0*X1
  523. LX6 -18
  524. BX6 X1+X6 MASK INTO MESSAGE
  525. SA6 A1
  526. MESSAGE MSGD
  527. EQ PSFX RETURN
  528.  
  529. * POSITION TAPES.
  530.  
  531. PSF3 REWIND O,R
  532. SA1 O+9 GET BLOCK COUNT
  533. AX1 12
  534. MX3 -24
  535. BX5 -X3*X1 DESIRED BLOCK COUNT
  536. ZR X5,PSFX IF REWOUND
  537. MX0 42 FORMAT *FILINFO* REQUEST
  538. SA1 O FILE NAME
  539. SX2 PSFAL*10000B+1 LENGTH AND COMPLETE BIT
  540. BX6 X0*X1
  541. BX6 X6+X2
  542. SA6 PSFA
  543. FILINFO PSFA GET TAPE FORMAT
  544. SA1 PSFA+5
  545. AX1 6
  546. SX7 X1-/MTX/TFF
  547. PL X7,PSF8 IF *F*, *S* OR *L* TAPE FORMAT
  548.  
  549. * PROCESS *I* AND *SI* FORMAT TAPES.
  550.  
  551. SX0 B0+ PRESET BLOCK COUNT
  552. PSF3.1 MX6 1 SET FIRST READ
  553. SA6 O-2
  554. READCW O
  555. PSF4 READX O,TBUF,TBUFL
  556. SX1 X1+2
  557. ZR X1,PSFX IF EOI
  558. IX3 X0-X5
  559. PL X3,PSF4.1 IF AT POSITION
  560. SX1 X1-1
  561. ZR X1,PSF3.1 IF EOF
  562. EQ PSF4
  563.  
  564. PSF4.1 RECALL O
  565. SA1 O CHECK STATUS IN FET
  566. LX1 59-9
  567. NG X1,PSFX IF END OF INFORMATION
  568. SA1 O+2 GET IN
  569. SA2 A1+1 GET OUT
  570. IX3 X1-X2 IN-OUT
  571. SA4 A1-B1 GET FIRST
  572. SX4 X4
  573. IX4 X1-X4 IN-FIRST
  574. ZR X3,PSFX IF EMPTY BUFFER
  575. PL X3,PSF4.2 IF IN .GE. OUT
  576. SA3 A2+1
  577. SX3 X3+
  578. IX3 X3-X2 LIMIT-OUT
  579. IX3 X4+X3 NUMBER OF WORDS IN BUFFER
  580. PSF4.2 SA1 O-2
  581. NG X1,PSF5 IF AT END OF CURRENT BLOCK
  582. SX2 X2+B1
  583. SX4 B1+
  584. IX3 X3-X4
  585. ZR X1,PSF5 IF NO MORE WORDS IN CURRENT BLOCK
  586. IX6 X3-X1
  587. BX7 X1
  588. ZR X6,PSFX IF AT POSITION
  589. EQ PSF5.1 COMPUTE NEXT OUT
  590.  
  591. PSF5 SA1 X2+ GET NEXT CONTROL WORD
  592. SX7 5
  593. SX4 X1+16B ACCOUNT FOR CONTROL WORDS AND EXTRA BYTES
  594. IX7 X4/X7 GET NUMBER OF WORDS IN BLOCK
  595. IX6 X3-X7 COMPARE TO NUMBER OF WORDS IN BUFFER
  596. SX0 X0+B1 INCREMENT BLOCK COUNT
  597. ZR X6,PSF6 IF 1 BLOCK
  598. PSF5.1 SX3 X6 WORDS BEYOND BLOCK
  599. IX2 X2+X7 NEW OUT (NEXT CONTROL WORD)
  600. SA1 O+4
  601. SX1 X1
  602. IX1 X2-X1 COMPARE TO LIMIT
  603. NG X1,PSF5 IF NO END AROUND
  604. SA2 A4 GET FIRST
  605. SX2 X2+
  606. IX2 X2+X1 SET NEW OUT
  607. EQ PSF5
  608.  
  609. PSF6 IX3 X0-X5
  610. ZR X3,PSFX IF AT POSITION
  611. BKSPRU O,X3,R
  612. PSF7 SA1 O CHECK FOR ERROR
  613. MX0 -4
  614. AX1 10
  615. BX0 -X0*X1
  616. NZ X0,PSF2 IF ERROR ON I/O
  617. EQ PSFX RETURN
  618.  
  619. * PROCESS *F*, *S* AND *L* FORMAT TAPES.
  620.  
  621. PSF8 SKIPF O,X5,R
  622. EQ PSF7 CHECK FOR ERROR
  623.  
  624. PSFA BSSZ 5 STANDARD *FILINFO* PARAMETER BLOCK
  625. VFD 48/0,6/0,6/FMTK TAPE FORMAT
  626. PSFAL EQU *-PSFA LENGTH OF PARAMETER BLOCK
  627. MSGD DATA C* FILE ERROR .*
  628. DATA 0
  629. PRT SPACE 4,15
  630. ** PRT - PROCESS FILE TABLE.
  631. *
  632. * EXIT ALL FILES IN THE FILE TABLE ARE RECOVERED FROM
  633. * THE CHECKPOINT FILE.
  634. *
  635. * USES X - ALL.
  636. * A - 1, 2, 3, 4, 5, 6, 7.
  637. * B - 2.
  638. *
  639. * CALLS CPY, PSF, SFN, SMD.
  640. *
  641. * MACROS ASSIGN, ATTACH, ENCSF, GET, MESSAGE, READO, READW,
  642. * RETURN, REWIND, SETFS, STATUS.
  643.  
  644.  
  645. PRT SUBR ENTRY/EXIT
  646. READO I READ FILE TABLE HEADER
  647. MX0 -9
  648. BX4 -X0*X6 GET LENGTH
  649. AX6 12
  650. SX3 X6-2
  651. NZ X3,CPY4 IF WRONG DATA TYPE
  652. READW I,SBUF,X4 READ FILE TABLE
  653.  
  654. SA5 SBUF-2
  655. PRT0 SA5 A5+2 GET FIRST WORD TABLE ENTRY
  656. ZR X5,PRT17 IF END OF TABLE
  657. SX7 3 DEFAULT ID BINARY FILE
  658. MX0 42
  659. BX6 X0*X5 ISOLATE FILE NAME
  660. BX6 X6+X7
  661. SA6 P SET FILENAME IN FET
  662. SB2 B0 CLEAR CCL FILE FLAG
  663. SA6 O SET FILENAME IN FET
  664. SA2 A5+B1 GET WORD 2 OF TABLE ENTRY
  665. BX6 X5
  666. BX7 X2
  667. SA6 O+8 PLACE FNT ENTRY IN FET
  668. SA7 A6+B1 PLACE FST ENTRY IN FET
  669. SA1 =C*CCCCCCO*
  670. BX3 X1-X5
  671. BX3 X0*X3
  672. NZ X3,PRT1 IF NOT *CCCCCCO*
  673. SA1 RIFL CHECK FOR RI PARAMETER
  674. NZ X1,PRT10 IF NEW FILE WANTED
  675. MX0 -6 CONSTRUCT *ENCSF* CALL WORD
  676. BX5 -X0*X5
  677. MX0 -24
  678. AX2 6
  679. LX0 6
  680. BX6 -X0*X2 GET RANDOM ADDRESS
  681. BX6 X6+X5
  682. SA6 PRTA
  683. REWIND O,R
  684. SX6 3
  685. RJ CPY GET OLD CONTROL STATEMENT FILE
  686. REWIND O,R
  687. ENCSF O,PRTA ENTER AND POSITION CONTROL STATEMENT FILE
  688. EQ PRT0 LOOP FOR REMAINING FILES
  689.  
  690. * PREPARE FOR PROCESSING CCL FILES.
  691.  
  692. PRT1 SA3 CCLF *ZZZZZC0*
  693. BX1 X0*X5
  694. BX3 X0*X3
  695. SA4 CCLF+CCLFL-1 *ZZZZZC2*
  696. BX4 X0*X4
  697. IX3 X1-X3
  698. NG X3,PRT5 IF NOT CCL FILE
  699. IX4 X4-X1
  700. NG X4,PRT5 IF NOT CCL FILE
  701. SB2 B1+ SET CCL FILE FLAG
  702.  
  703. * CHECK COPY TYPE.
  704.  
  705. PRT5 MX3 -3
  706. BX4 X2
  707. LX4 2-11
  708. BX3 -X3*X4 GET COPY TYPE
  709. SX4 X3-4
  710. MX3 -6
  711. BX6 -X3*X5
  712. SA6 FIID SAVE STATUS
  713. NE B2,PRT5.1 IF CCL FILE
  714. SA1 FCFL CHECK FILE CHECK FLAG
  715. NZ X1,PRT9 IF SET
  716. SA1 =C*INPUT*
  717. BX6 X1-X5
  718. BX6 X0*X6
  719. NZ X6,PRT6 IF NOT INPUT
  720. RETURN O,R RETURN BEFORE CREATING
  721. EQ PRT7
  722.  
  723. PRT5.1 SA1 RIFL CHECK FOR *RI* PARAMETER
  724. NZ X1,PRT10 IF NEW CONTROL STATEMENTS WANTED
  725. PRT6 REWIND O,R
  726. PRT7 ZR X4,PRT11 IF NO FILE COPY
  727. SX6 3
  728. RJ CPY COPY FILE
  729. PRT8 RJ PSF POSITION THE FILE
  730. SA2 FIID
  731. SETFS O,X2
  732. EQ PRT0 LOOP FOR REMAINING FILES
  733.  
  734. * CHECK IF FILE ALREADY PRESENT.
  735.  
  736. PRT9 STATUS O
  737. SA1 O
  738. SX3 X1-1
  739. ZR X3,PRT7 IF NOT FOUND
  740. SA2 A2 WORD 2 OF TABLE ENTRY
  741. MX1 -4
  742. LX2 -4
  743. BX1 -X1*X2
  744. SX1 X1-4
  745. ZR X1,PRT8 IF EXECUTE-ONLY
  746. ZR X4,PRT8 IF NO FILE COPY ON CHECKPOINT FILE
  747.  
  748. * COPY FILE TO BE RID OF IT
  749.  
  750. PRT10 SA1 =C*CCCCCCM*
  751. SX3 3
  752. BX6 X1+X3
  753. SA6 O
  754. SX6 3
  755. RJ CPY COPY OLD FILE TO NEW HOME
  756. REWIND O,R
  757. EQ PRT0 LOOP FOR REMAINING FILES
  758.  
  759. * IF NO FILE COPY.
  760.  
  761. PRT11 MX3 -24
  762. LX3 12
  763. SA2 A2 WORD 2 OF TABLE ENTRY
  764. BX4 -X3*X2 ISOLATE RANDOM INDEX
  765. MX3 -6 CHECK FILE TYPE
  766. ZR X4,PRT0 IF EMPTY FILE
  767. AX5 6
  768. BX4 -X3*X5
  769. SX3 X4-LIFT
  770. NZ X3,PRT13 IF NOT LIBRARY FILE
  771. ASSIGN P REASSIGN SYSTEM FILE
  772. EQ PRT8 LOOP FOR REMAINING FILES
  773.  
  774. PRT13 SX3 X4-PMFT
  775. NZ X3,PRT14 IF NOT DIRECT ACCESS FILE
  776.  
  777. * CHECK MODE.
  778.  
  779. SA2 A5+B1
  780. RJ SMD SET MODE
  781. ATTACH P,,,,MODA,,,,NF
  782. EQ PRT8 LOOP FOR REMAINING FILES
  783.  
  784. PRT14 SX3 X4-LOFT
  785. NZ X3,PRT16 IF ILLEGAL FILE TYPE
  786. SA1 O+8
  787. MX3 -2
  788. AX1 13
  789. BX1 -X3*X1
  790. SX3 X1-1
  791. ZR X3,PRT8 IF TAPE FILE
  792. PRT15 GET P
  793. EQ PRT8 LOOP FOR REMAINING FILES
  794.  
  795. * IF FILE NOT FOUND.
  796.  
  797. PRT16 MX0 42
  798. SA1 O
  799. BX1 X0*X1
  800. RJ SFN SPACE FILL FILE NAME
  801. LX6 -6
  802. SA6 MSGA
  803. MESSAGE A6
  804.  
  805. * CHECK NO ABORT FLAG.
  806.  
  807. SA2 NAFL
  808. NZ X2,PRT0 IF NO ABORT, LOOP FOR REMAINING FILES
  809. EQ CPY5
  810.  
  811. * RETURN *CCCCCCM* AND EXIT.
  812.  
  813. PRT17 SA1 =C*CCCCCCM*
  814. SX3 3
  815. BX6 X1+X3
  816. SA6 O
  817. RETURN O,R
  818. EQ PRTX RETURN
  819.  
  820.  
  821. PRTA BSS 1 PARAMETER AREA FOR *ENCSF* CALL
  822.  
  823. MSGA DATA C* NOT FOUND.*
  824. RCC SPACE 4,15
  825. ** RCC - RENAME/RETURN CCL FILES.
  826. *
  827. * ENTRY (B3) = 0, IF RENAME FUNCTION.
  828. * = 1, IF RETURN FUCNTION.
  829. * (B4) = FWA OF LIST OF FILES TO BE RENAMED/RETURNED.
  830. * (B5) = FWA OF LIST OF FILE NAMES TO USE FOR RENAME.
  831. *
  832. * USES X - 0, 1, 2, 5, 6.
  833. * A - 1, 5, 6.
  834. * B - 2.
  835. *
  836. * MACROS RENAME, RETURN.
  837.  
  838.  
  839. RCC3 BX6 X6-X6
  840. SA6 O+6
  841.  
  842. RCC SUBR ENTRY/EXIT
  843. SA1 RIFL
  844. NZ X1,RCCX IF PROCESSING NOT NEEDED
  845. SB2 -1
  846. RCC1 SB2 B2+1
  847. SA5 B4+B2 GET NEXT FILE NAME TO PROCESS
  848. SX2 B1
  849. ZR X5,RCC3 IF ALL FILES PROCESSED
  850. BX6 X5+X2
  851. LX5 59-0
  852. PL X5,RCC1 IF NOT TO PROCESS FILE
  853. SA6 O
  854. EQ B3,B1,RCC2 IF *RETURN* FUNCTION SELECTED
  855. RENAME O,B5+B2
  856. SA1 O
  857. MX0 -8
  858. LX1 7-17
  859. BX2 -X0*X1
  860. SA5 B5+B2
  861. NZ X2,RCC1 IF FILE NOT RENAMED
  862. SX6 B1 SET FILE RENAMED INDICATOR
  863. BX6 X5+X6
  864. SA6 A5+
  865. EQ RCC1 PROCESS NEXT SELECTED FILE
  866.  
  867. RCC2 RETURN O,R
  868. EQ RCC1 PROCESS NEXT SELECTED FILE
  869. RDA SPACE 4
  870. ** RDA - READ DATA.
  871. * PROCESSES CALLS TO READ WORDS (RDW=).
  872. * DEBLOCKS DATA FROM CONTROL WORD READS FOR TAPE POSITIONING.
  873. *
  874. * ENTRY (X0) = BLOCK COUNT.
  875. * (X2) = FET ADDRESS.
  876. * (B6) = ADDRESS TO READ TO.
  877. * (B7) = NUMBER OF WORDS TO READ.
  878. *
  879. * EXIT (X0) = BLOCK COUNT UPDATED.
  880. * ((X2)-2) = NUMBER OF WORDS REMAINING IN CURRENT
  881. * BLOCK IF POSITION IS NOT AT EOR/EOF/EOI.
  882. *
  883. * CALLS RDW=
  884. *
  885. * USES A - 1,3,6,7
  886. * B - 5,6,7
  887. * X - 0,1,2,3,6,7
  888. *
  889.  
  890.  
  891. RDA5 SX6 B5-B7 UPDATE WORDS REMAINING
  892. SA6 A1
  893.  
  894. RJ RDW= READ WORDS
  895.  
  896. RDA PS ENTRY/EXIT
  897. RDA1 SA1 X2-2 GET NUMBER OF WORDS BEFORE CONTROL WORD
  898. SB5 X1+
  899. PL X1,RDA2 IF NOT FIRST READ
  900. SX7 B7+ SET WORDS NEEDED
  901. SA7 RDAA
  902. JP RDA4
  903.  
  904. RDA2 GE B5,B7,RDA5 IF ENOUGH DATA TO FILL BUFFER
  905. SA3 X2-1 CHECK EOR FLAG
  906. PL X3,RDA3 IF NOT EOR ON FILE
  907. MX6 1 SET NEW READ FLAG
  908. SB7 B5+B1 SET WORDS TO READ
  909. SA6 A3
  910. SA6 A1
  911. RJ RDW= READ WORDS
  912. SX1 B6-B1 SET EOR INDICATION
  913. SB6 B6-B1 BACK UP LWA TO ALLOW FOR CONTROL WORD
  914. JP RDA RETURN
  915.  
  916. RDA3 SX6 B7-B5 SAVE ADDITIONAL WORDS NEEDED
  917. SA6 RDAA
  918. SB7 B5+B1 SET WORDS TO TRANSFER
  919. RJ RDW= READ WORDS
  920. SB6 B6-1 BACK UP OVER LAST CONTROL WORD
  921. RDA4 SB7 B1 READ CONTROL WORD
  922. RJ RDW=
  923. NG X1,RDA IF EOF/EOI
  924. SB6 B6-B1 BACK UP WORKING BUFFER
  925. SA1 B6 CONTROL WORD
  926. SX7 5
  927. SX4 X1+4 ROUND UP
  928. AX1 36 EXTRACT BLOCK SIZE
  929. SX3 X1
  930. IX7 X4/X7 WORDS IN BLOCK
  931. IX6 X7-X3 SAVE EOR FLAG
  932. SA7 X2-2 STORE WORD COUNT
  933. SA6 X2-1 EOR FLAG
  934. SA1 RDAA RESET WORDS NEEDED
  935. SB7 X1
  936. SX0 X0+1 INCREMENT BLOCK COUNT
  937. JP RDA1 LOOP
  938.  
  939. RDAA CON 0 NUMBER OF WORDS NEED TO READ
  940. SMD SPACE 4
  941. ** SMD - SET FILE ACCESS MODE.
  942. *
  943. * ENTRY (X2) = WORD 2 OF TABLE ENTRY (REFORMATTED FST).
  944. *
  945. * EXIT (MODA) = MODE.
  946. *
  947. * USES X - 1, 2, 3, 4, 6.
  948. * A - 3, 6.
  949.  
  950.  
  951. SMD SUBR ENTRY/EXIT
  952. LX2 59-7
  953. MX4 4
  954. SA3 MODE SET TABLE ADDRESS
  955. SMD1 BX1 X3-X2
  956. BX1 X4*X1
  957. ZR X1,SMD2 IF FOUND
  958. SA3 A3+B1
  959. NZ X3,SMD1 LOOP
  960. SX6 PTRD SET READ MODE DEFAULT
  961. SA6 MODA
  962. EQ SMDX RETURN
  963.  
  964. SMD2 SX6 X3
  965. SA6 MODA
  966. EQ SMDX RETURN
  967.  
  968.  
  969. MODE BSS 0 MODE TABLE
  970. VFD 4/1,56/PTWR WRITE
  971. VFD 4/0,56/PTRD READ
  972. VFD 4/3,56/PTAP APPEND
  973. VFD 4/4,56/PTEX EXECUTE
  974. VFD 4/2,56/PTMD MODIFY
  975. VFD 4/5,56/PTRM READ/MODIFY
  976. VFD 4/6,56/PTRA READ/APPEND
  977. VFD 4/7,56/PTUP UPDATE
  978. VFD 4/10B,56/PTRU READ/UPDATE
  979. CON 0
  980.  
  981. MODA CON 0 FILE ACCESS MODE
  982. TITLE COMMON DECKS AND BUFFERS.
  983. COM SPACE 4
  984. * COMMON DECKS.
  985.  
  986.  
  987. *CALL COMCARG
  988. *CALL COMCCDD
  989. *CALL COMCCIO
  990. *CALL COMCCPM
  991. *CALL COMCDXB
  992. *CALL COMCEDT
  993. *CALL COMCLFM
  994. *CALL COMCPFM
  995. *CALL COMCRDC
  996. *CALL COMCRDO
  997. *CALL COMCRDW
  998. *CALL COMCSFN
  999. *CALL COMCSNM
  1000. *CALL COMCSYS
  1001. *CALL COMCWTO
  1002. *CALL COMCWTW
  1003. SPACE 4
  1004. TITLE PRESET.
  1005. PRS SPACE 4
  1006. ** PRS PRESET ROUTINE.
  1007. *
  1008. * ENTRY NONE.
  1009. *
  1010. * EXIT FILE POSITIONED TO CORRECT CHECKPOINT.
  1011. *
  1012. * CALLS ARG,DXB.
  1013. *
  1014. * USES A - 1,2,4,5,6,7.
  1015. * B - 2,4,5.
  1016. * X - ALL.
  1017.  
  1018.  
  1019. PRS SUBR ENTRY/EXIT
  1020. SB1 1
  1021.  
  1022. * PROCESS ARGUMENTS.
  1023.  
  1024. SA1 ACTR
  1025. SB2 X1
  1026. ZR B2,PRS7 IF NO ARGUMENTS
  1027. SA1 ARGR
  1028. ZR X1,PRS7 IF ERROR
  1029. SX3 3
  1030. BX6 X1+X3
  1031. SB2 B2-B1
  1032. SA6 I SET FILE NAME
  1033. REWIND I
  1034. ZR B2,PRS2 IF END OF ARGUMENTS
  1035. SA1 ARGR+1
  1036. ZR X1,PRS1 IF NOT SET
  1037. BX6 X1
  1038. SA6 CKNO SET CHECKPOINT NUMBER
  1039. PRS1 SB4 B2-B1
  1040. ZR B4,PRS2 IF END OF ARGUMENTS
  1041. SA4 A1+B1
  1042. SB5 TARG
  1043. RJ ARG
  1044.  
  1045. NZ X1,PRS7 IF ERROR IN ARGUMENT
  1046. PRS2 SA5 CKNO GET CHECKPOINT NUMBER
  1047. SX4 X5-1
  1048. ZR X4,PRS3 IF DEFAULT SET
  1049. SA4 ASK
  1050. BX4 X4-X5
  1051. ZR X4,PRS3 IF LAST CHECKPOINT DESIRED
  1052. SB7 B1 CONVERT TO BINARY ASSUMING DECIMAL NUMBER
  1053. RJ DXB
  1054. NZ X4,PRS7 IF ERROR
  1055. SA6 CKNO SET NO. OF CHECKPOINT DESIRED
  1056.  
  1057. * POSITION FILE TO CHECKPOINT RECORD.
  1058.  
  1059. PRS3 READSKP I,,R SKIP TO END OF RECORD
  1060. SA1 X2 CHECK STATUS
  1061. LX1 59-3
  1062. NG X1,CPY4 IF EOF/EOI
  1063. SA1 IBUF LOOK AT FIRST WORD OF BUFFER
  1064. SX1 X1-10002B CHECK FOR HEADER WORD
  1065. NZ X1,PRS3 IF NOT HEADER
  1066. BKSP I,R
  1067. PRS4 SA1 I+1 SET IN = OUT = FIRST
  1068. SX6 X1
  1069. SA6 A1+B1
  1070. SA6 A6+B1
  1071.  
  1072. * SEARCH FOR CORRECT CHECKPOINT.
  1073.  
  1074. READ I
  1075. READO I READ HEADER WORD 1
  1076. NZ X1,CPY4 IF EOR OR EOF
  1077. ZR X6,CPY4 IF NO DATA
  1078. SX1 X6-10002B
  1079. NZ X1,CPY4 IF WRONG DATA TYPE
  1080. READO I READ HEADER WORD 2
  1081. MX0 -12
  1082. BX3 -X0*X6 GET NO. OF THIS CHECKPOINT
  1083. SA2 CKNO
  1084. SA4 ASK
  1085. BX4 X4-X2
  1086. IX1 X2-X3
  1087. ZR X4,PRS5 IF LAST CHECKPOINT WANTED
  1088. NG X1,CPY4 IF ERROR
  1089. ZR X1,PRS6 IF CORRECT CHECKPOINT NUMBER
  1090.  
  1091. * CHECK CHECKPOINT CODE WORD.
  1092.  
  1093. PRS5 SKIPF I,1,R SKIP RECORD
  1094. SA1 I+1 SET IN = OUT = FIRST
  1095. SX6 X1
  1096. SA6 A1+B1
  1097. SA6 A6+B1
  1098. READ I
  1099. READO I READ HEADER WORD 1
  1100. PL X6,PRS4 IF NOT LAST CHECKPOINT
  1101. SA2 CKNO
  1102. SA4 ASK
  1103. BX4 X2-X4
  1104. NZ X4,PRS8 IF ERROR
  1105.  
  1106. * POSITION TO START OF CHECKPOINT RECORD.
  1107.  
  1108. SKIPB I,2 POSITION FILE
  1109. SA1 I+1 SET IN = OUT = FIRST
  1110. SX6 X1
  1111. SA6 A1+B1
  1112. SA6 A6+B1
  1113. READ I
  1114. READO I READ HEADER WORD 1
  1115. READO I READ HEADER WORD 2
  1116. MX0 -12
  1117. BX7 -X0*X6
  1118. SA7 CKNO SET CHECKPOINT NUMBER
  1119.  
  1120. * GET CHECKPOINT DATE AND TIME.
  1121.  
  1122. PRS6 SA6 HDRB SAVE HEADER WORD
  1123. AX6 18
  1124. BX5 X6
  1125. SX1 X6
  1126. ETIME X1 CONVERT TIME
  1127. SB2 1R)
  1128. SB5 MSGB
  1129. BX1 X6
  1130. RJ SNM SET TIME IN MESSAGE
  1131. AX5 18
  1132. SX1 X5
  1133. EDATE X1 CONVERT DATE
  1134. SB2 1R(
  1135. SB5 MSGB
  1136. BX1 X6
  1137. RJ SNM SET DATE IN MESSAGE
  1138. READO I READ HEADER WORD 3
  1139. SB2 1R+
  1140. SB5 MSGB
  1141. BX1 X6
  1142. RJ SNM SET JSN IN MESSAGE
  1143.  
  1144. * GET USER EM SHIFT COUNT.
  1145.  
  1146. SYSTEM RSB,R,PRSA
  1147. SA1 UESC
  1148. MX0 -3
  1149. LX1 0-33
  1150. BX6 -X0*X1
  1151. SA6 A1
  1152. EQ PRSX RETURN
  1153.  
  1154. PRS7 MESSAGE (=C* ERROR IN ARGUMENTS.*)
  1155. EQ CPY5
  1156.  
  1157. PRS8 MESSAGE (=C* CHECKPOINT NOT FOUND.*)
  1158. EQ CPY5
  1159.  
  1160. ASK DATA 1L*
  1161. PRSA VFD 24/1,18/MEFL,18/UESC
  1162. UESC VFD 1/1,59/0 USER EXTENDED MEMORY SHIFT COUNT
  1163.  
  1164. TARG BSS 0
  1165. RI ARG =-1,RIFL
  1166. NA ARG =-1,NAFL
  1167. FC ARG =-1,FCFL
  1168. CON 0
  1169.  
  1170. * BUFFER ASSIGNMENTS
  1171.  
  1172. USE BUFFERS
  1173. BUF EQU *
  1174. IBUF EQU BUF+BUFL
  1175. OBUF EQU IBUF+IBUFL
  1176. SBUF EQU OBUF+OBUFL
  1177. TBUF EQU SBUF+SBUFL
  1178. RFL= EQU TBUF+TBUFL+4
  1179.  
  1180. END
cdc/nos2.source/opl871/restart.txt ยท Last modified: 2023/08/05 17:24 by Site Administrator