Skip to content

Commit b2e9b7a

Browse files
committed
Find saveset name for DUMPER formats 5-6.
1 parent 2b48288 commit b2e9b7a

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

dumper.c

+18-2
Original file line numberDiff line numberDiff line change
@@ -435,12 +435,21 @@ static word_t
435435
read_tape_header (FILE *f, word_t word)
436436
{
437437
char name[100];
438+
int bfmsg;
438439

439440
word = read_record (f, word);
440441

441442
//fprintf (stderr, "006: %012llo format\n", data[0]);
442443

443-
read_asciz (name, &data[3]);
444+
if (format == 0)
445+
bfmsg = 0;
446+
else {
447+
bfmsg = data[1];
448+
if (bfmsg == 0)
449+
bfsmsg = format > 4 ? 10 : 3;
450+
}
451+
452+
read_asciz (name, &data[bfmsg]);
444453
fprintf (stderr, "DUMPER tape #%d, %s", right (block[2]), name);
445454
if (format > 0) {
446455
fputs (", ", stderr);
@@ -722,7 +731,7 @@ write_tape (FILE *f)
722731
struct word_format *tmp = input_word_format;
723732
input_word_format = output_word_format;
724733
output_word_format = tmp;
725-
int i, bfmsg = 0;
734+
int i, bfmsg;
726735

727736
if (f == NULL)
728737
f = stdout;
@@ -734,13 +743,20 @@ write_tape (FILE *f)
734743
if (format == 0)
735744
{
736745
record_number = 2;
746+
bfmsg = 0;
737747
}
738748
else
739749
{
740750
record_number = 1;
741751
data[bfmsg++] = format;
742752
bfmsg++;
743753
data[bfmsg++] = tops20_timestamp (time (NULL));
754+
if (format > 4)
755+
{
756+
// Unknown fields for now.
757+
memset(data + bfmsg, 0, 7 * sizeof (word_t));
758+
bfmsg += 7;
759+
}
744760
data[1] = bfmsg;
745761
}
746762
write_asciz ("Saveset name", data + bfmsg);

0 commit comments

Comments
 (0)