Difference between revisions of "DUMPER tape format"

From Computer History Wiki
Jump to: navigation, search
(RECORD HEADER: Inversed when stored.)
(DATA RECORD: It's all file data.)
 
(14 intermediate revisions by 2 users not shown)
Line 1: Line 1:
The original TENEX [[Magnetic tape|tape]] backup program is called MINI-DUMPER or just DUMPER.  It was written by Ray Tomlinson April 1971, in FAIL assembly language.  The oldest version on record is from December 1971, and the newest is from February 1982.  There is also a more elaborate program called BSYS, written at [[Stanford Research Institute|Stanford]].
+
The original [[TENEX]] [[magnetic tape|tape]] [[backup]] program is called MINI-DUMPER or just DUMPER.  It was written by Ray Tomlinson April 1971, in FAIL [[assembly language]].  The oldest version on record is from December 1971, and the newest is from February 1982.  There is also a more elaborate program called BSYS, written at [[Stanford Research Institute|SRI]].
  
(As a historical aside, the MINI-DUMPER user interface was considered atrocious which inspired making a command line library similar to the EXEC facility.  This was later moved inside the [[TOPS-20]] monitor.)
+
(As a historical aside, the MINI-DUMPER [[user interface]] was considered atrocious which inspired making a [[command processor|command line]] [[subroutine package|library]] similar to the EXEC facility.  This was later moved inside the [[TOPS-20]] [[operating system|monitor]].)
  
The tape format is an older version of what TOPS-20 DUMPER uses. This describes DUMPER format 4: http://bitsavers.org/pdf/dec/pdp10/Dumper_And_Backup_Tape_Formats_Oct82.pdf
+
This was written primarily to document the reverse engineered MINI-DUMPER format.  The format is an older version of what TOPS-20 DUMPER uses (below), and some information about the newer formats is included.
  
 
===OVERVIEW===
 
===OVERVIEW===
  
A DUMPER tape consists of a series of 518-word records, where the first six words is a header and the following 512 words are data.  The first record is a tape header.  After this follows [[File|files]], or optionally, directory data.  A file is started by a file [[Header|header]] record, followed by data records, and ended by a file trailer.  The tape is terminated by a tape trailer.
+
A DUMPER tape consists of a series of 518-word [[record]]s, where the first six words is a [[header]] and the following 512 words are data.  The first record is a tape header.  After this comes [[file]]s, or optionally, [[directory]] data.  A file is started by a file header record, followed by data records, and ended by a file trailer.  The tape is terminated by a tape trailer.
  
DUMPER normally doesn't write any tape marks except to terminate a saveset; marks are mostly ignored when read.  MINI-DUMPER is much more particular about marks and requires them after tape headers and file trailers, and nowhere else.
+
DUMPER normally doesn't write any [[tape mark]]s except to terminate a saveset; marks are mostly ignored when read.  MINI-DUMPER is much more particular about marks and requires them after tape headers and file trailers, and nowhere else.
  
 
===TAPE FORMATS===
 
===TAPE FORMATS===
  
There is a tape format number stored in the tape header.  MINI-DUMPER is retroactively assigned format number 0, and doesn't have the format number stored in the tape header.
+
There is a tape format number stored in the tape header.  It corresponds roughly to the TOPS-20 release.  MINI-DUMPER is retroactively assigned format number 0, and doesn't have the format number stored in the tape header.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 19: Line 19:
 
| Format
 
| Format
 
| Description
 
| Description
 +
| Used by
 
|-
 
|-
 
| 0  
 
| 0  
| [[BBN]] original format.
+
| [[Bolt, Beranek, and Newman|BBN]] original MINI-DUMPER format.
 +
| TENEX
 
|-
 
|-
 
| 3  
 
| 3  
| "Full dir spec".
+
| FDB changes, structures, "full dir spec".
 +
| TOPS-20 V2, V3A
 
|-
 
|-
 
| 4  
 
| 4  
| Lowest legal format for latest DUMPER.
+
| New GTDIR blocks.  Lowest legal format for latest DUMPER.
 +
|
 
|-
 
|-
 
| 5  
 
| 5  
| Encrypted passwords.
+
| Encrypted passwords and other "CRDIR%iods".
 +
|
 
|-
 
|-
 
| 6  
 
| 6  
| "Tonext" record type.
+
| "TONEXT" record type.
 +
| TOPS-20 V6, V7
 
|}
 
|}
  
Line 67: Line 73:
 
|-
 
|-
 
| 5  
 
| 5  
| Sequence number  
+
| [[Sequence number]]
 
| See below.
 
| See below.
 
|}
 
|}
  
The [[checksum]] is computed over all 518 words in the record, with the checksum set to 0.  For formats 0-4, it's a one's complement sum.  For format 5-6, it the sum is first rotated one step to the left and then adding in the data.  The finished checksum is bitwise inversed before being stored in the header.
+
The [[checksum]] is computed over all 518 words in the record, with the checksum set to 0.  For formats 0-4, it's a [[one's complement]] sum.  For format 5-6, it the sum is first rotated one step to the left and then adding in the data.  The finished checksum is bit-wise inversed before being stored in the header.
  
MINI-DUMPER expects the sequence number to start with 2, whereas later versions begin with 1.  Normally each record increments the sequence number by 1, but a MINI-DUMPER tape header increments it by 2.
+
MINI-DUMPER expects the sequence number to start with 2, whereas later versions begin with 1.  Each record increments the sequence number by 1; MINI-DUMPER also have tape marks increment it.
  
 
{| class="wikitable"
 
{| class="wikitable"
Line 100: Line 106:
  
 
===DATA RECORD===
 
===DATA RECORD===
 +
 +
All 512 words after the header is file data.
  
 
===TAPE HEADER===
 
===TAPE HEADER===
  
In format 0, the data is just an ASCIZ saveset name.
+
In format 0, the data is just an [[ASCIZ]] saveset name at record offset 6.
  
 
If format 4, the data is:
 
If format 4, the data is:
Line 119: Line 127:
 
|-
 
|-
 
| 8  
 
| 8  
| Timestamp for saveset.
+
| [[Timestamp]] for saveset.
 
|-
 
|-
 
| 6+BFMSG  
 
| 6+BFMSG  
Line 127: Line 135:
 
===FILE HEADER===
 
===FILE HEADER===
  
In format 0, the only file header data is an ASCIZ string in the format DEV:<DIRECTORY>NAME.TYPE;VERSION;P123456;AUSER.
+
In format 0, the only file header data is an ASCIZ string in the format ''DEVICE''''':<'''''DIRECTORY'''''>'''''NAME'''''.'''''TYPE''''';'''''VERSION''''';P'''''PROTECTION''''';A'''''ACCOUNT''.
 +
 
 +
The ''DEVICE''''':''' part is optional.  The ''NAME'' and ''TYPE'' strings can be up to 39 characters.  ''VERSION'' is the generation number.  ''PROTECTION'' is six octal digits.  ''ACCOUNT'' is not the user name, but for accounting purposes.
  
Other formats have an FDB, file descriptor block at offset 200 (octal) from the record header.
+
Other formats use a period instead of semicolon before the version, and have an FDB (file descriptor block) at offset 0200 (octal) from the record header.
  
 
===FILE TRAILER===
 
===FILE TRAILER===
 +
 +
The data is the FDB, file descriptor block.  In format 0, this is 25 (octal) words.  Newer format has 30 (or more?) words.
  
 
===TAPE TRAILER===
 
===TAPE TRAILER===
 +
 +
This record only marks the end of the saveset and has no data.  After this record there should be a tape mark to end the file.
  
 
===USER DIRECTORY===
 
===USER DIRECTORY===
  
 
These are optional in all formats.
 
These are optional in all formats.
 +
 +
==External links==
 +
 +
* [http://bitsavers.org/pdf/dec/pdp10/Dumper_And_Backup_Tape_Formats_Oct82.pdf Dumper and Backup Tape Formats] - describes DUMPER format 4
 +
 +
[[Category: PDP-10 Tape Formats]]

Latest revision as of 11:29, 27 April 2022

The original TENEX tape backup program is called MINI-DUMPER or just DUMPER. It was written by Ray Tomlinson April 1971, in FAIL assembly language. The oldest version on record is from December 1971, and the newest is from February 1982. There is also a more elaborate program called BSYS, written at SRI.

(As a historical aside, the MINI-DUMPER user interface was considered atrocious which inspired making a command line library similar to the EXEC facility. This was later moved inside the TOPS-20 monitor.)

This was written primarily to document the reverse engineered MINI-DUMPER format. The format is an older version of what TOPS-20 DUMPER uses (below), and some information about the newer formats is included.

OVERVIEW

A DUMPER tape consists of a series of 518-word records, where the first six words is a header and the following 512 words are data. The first record is a tape header. After this comes files, or optionally, directory data. A file is started by a file header record, followed by data records, and ended by a file trailer. The tape is terminated by a tape trailer.

DUMPER normally doesn't write any tape marks except to terminate a saveset; marks are mostly ignored when read. MINI-DUMPER is much more particular about marks and requires them after tape headers and file trailers, and nowhere else.

TAPE FORMATS

There is a tape format number stored in the tape header. It corresponds roughly to the TOPS-20 release. MINI-DUMPER is retroactively assigned format number 0, and doesn't have the format number stored in the tape header.

Format Description Used by
0 BBN original MINI-DUMPER format. TENEX
3 FDB changes, structures, "full dir spec". TOPS-20 V2, V3A
4 New GTDIR blocks. Lowest legal format for latest DUMPER.
5 Encrypted passwords and other "CRDIR%iods".
6 "TONEXT" record type. TOPS-20 V6, V7

RECORD HEADER

All records have a six-word header.

Offset Type Description
0 Checksum See below.
1 Access Unused, set to 0.
2 Tape number Starts from 1.
3 Page number Starts from 0 in data pages; other records set to 0.
4 Record type See below.
5 Sequence number See below.

The checksum is computed over all 518 words in the record, with the checksum set to 0. For formats 0-4, it's a one's complement sum. For format 5-6, it the sum is first rotated one step to the left and then adding in the data. The finished checksum is bit-wise inversed before being stored in the header.

MINI-DUMPER expects the sequence number to start with 2, whereas later versions begin with 1. Each record increments the sequence number by 1; MINI-DUMPER also have tape marks increment it.

Record Type Number
Data 0
Tape header 1
File header 2
File trailer 3
Tape trailer 4
User directory 5

DATA RECORD

All 512 words after the header is file data.

TAPE HEADER

In format 0, the data is just an ASCIZ saveset name at record offset 6.

If format 4, the data is:

Record offset Description
6 Tape format number.
7 "BFMSG" - offset from header to start of saveset name?
8 Timestamp for saveset.
6+BFMSG Saveset name.

FILE HEADER

In format 0, the only file header data is an ASCIZ string in the format DEVICE:<DIRECTORY>NAME.TYPE;VERSION;PPROTECTION;AACCOUNT.

The DEVICE: part is optional. The NAME and TYPE strings can be up to 39 characters. VERSION is the generation number. PROTECTION is six octal digits. ACCOUNT is not the user name, but for accounting purposes.

Other formats use a period instead of semicolon before the version, and have an FDB (file descriptor block) at offset 0200 (octal) from the record header.

FILE TRAILER

The data is the FDB, file descriptor block. In format 0, this is 25 (octal) words. Newer format has 30 (or more?) words.

TAPE TRAILER

This record only marks the end of the saveset and has no data. After this record there should be a tape mark to end the file.

USER DIRECTORY

These are optional in all formats.

External links