restore_tape
restore_tape is broken; it missed files due to incorrect parsing of backup records.
Rewritten as reload.
Reload don't work yet//
$ ../../tapeUtils/dumpTape 12.6EXEC.tap
// offset are off by 010 because of MST header
0001:0010 040172040172 040172040172 " z z z z
0001:0012 040172040172 040172040172 " z z z z
0001:0014 040172040172 040172040172 " z z z z
0001:0016 040172040172 040172040172 " z z z z
0001:0020 124150151163 040151163040 "This is
0001:0022 164150145040 142145147151 "the begi
0001:0024 156156151156 147040157146 "nning of
0001:0026 040141040142 141143153165 " a backu
0001:0030 160040154157 147151143141 "p logica
0001:0032 154040162145 143157162144 "l record
0001:0034 056040040040 040040040040 ".
0001:1010 040172040172 040172040172 " z z z z
0003:0410 040172040172 040172040172 " z z z z
0016:0010 040172040172 040172040172 " z z z z
[cac@sve tmp2]$ ../../tapeUtils/re
reload* restore* restore_tape* restore_toc*
[cac@sve tmp2]$ ../../tapeUtils/reload foo 12.6EXEC.tap
Reading tape file: 12.6EXEC.tap
Tape label information:
EjsMultics, Soquel, CA
12.6EXEC
0001:0000
dname >
ename system_library_obsolete
hdrcnt 288 0440
segcnt 0 00
os 0 hdrcnt 512 segcnt 0
data start 0001:1000
data end 0001:1000
os 0001:1000
0001:1000
dname >system_library_obsolete
ename
hdrcnt 1742 03316
segcnt 0 00
os 512 hdrcnt 1792 segcnt 0
data start 0003:0400
data end 0003:0400
os 0001:4400
os now 0002:2400
os now 0003:400
0003:0400
dname >system_library_obsolete
ename bound_checker_
hdrcnt 242 0362
segcnt 12288 030000
os 256 hdrcnt 512 segcnt 12288
data start 0003:1400
data end 0017:1400
os 0003:31400
os now 0004:27400
os now 0005:25400
os now 0006:23400
os now 0007:21400
os now 0010:17400
os now 0011:15400
os now 0012:13400
os now 0013:11400
os now 0014:7400
os now 0015:5400
os now 0016:3400
os now 0017:1400
0017:1400
Not a Multics backup format
The last one should be 0016:0000; 03400 too far.
But:
status bound_checker_
names: bound_checker_
check_mst
ckm
type: segment
date used: 12/04/15 1658.8 pst Fri
date modified: 10/18/82 0833.6 pst Mon
branch modified: 10/21/82 1417.5 pst Thu
bit count: 420840
records used: 12
mode: re
420840/36 is 11690 words 026652
but the tape says 12288 030000; which is 11690 rounded up to 1024 boundary
bk_input.pl1:
READ_SEG:
if segcnt > 0 then do;
temp = segcnt + 255; /* adjust to read segment to end of physical record */
temp = temp - mod (temp, 256); /* .. */
call iox_$get_chars (iocbp1, segptr, temp * 4, nelemt, code);
if code = error_table_$end_of_info then go to eor; /* check end of reel */
if code ^= 0 then go to tsterr;
end;