Disk Save and Compress (DSC) Tape Formats 1-April-81 I. INTRODUCTION This note describes what I have learned of the format of DSC produced magnetic tapes. The information presented here is to be considered preliminary and subject to revision. The Stand-Alone DSC V2 was used to create test tapes for this project. Bill Burton Texas Research Institute of Mental Sciences 1300 Moursund Houston, Texas 77030 (713) 797-1976 ext 501 II. DSC TAPE STRUCTURE Basically, DSC tapes are ANSI standard version 1 labeled magtapes. Standard version 1 has been superceeded by version 3 (ANSI X3.27-1978). Some of the label records are non-conforming or undefined in the version 3 standard. The DSC tape volume consists of ANSI labeled volume and header labels surrounding DSC formatted data records. Record Number Length Contents 1 80. VOL1 label record volume identifier derived from the output file name given in the DSC command line for the first output file. a. Truncated to 4 characters if necessary b. Padded to 4 characters using the character X c. Sequence number, 2 characters 01 for first reel of a set 02 for second, etc. d. Other information is documented in ANSI Standard Manual or RSX-11 I/O Operations Manual. 2 512. Dummy bootstrap block which produces the message "This volume does not contain a hardware bootable system". 3 80. HDR1 label record a. File name specified in DSC command line b. Volume identifier from VOL1 record 4 80. HDR2 label record a. An undefined record code (U) is non-standard b. Logical record length 2064 bytes c. Physical record length maximum 2064 bytes d. The character M in byte 37, non-standard e. Buffer offset 00 in bytes 51-52. 5 Tapemark 6 1040. First DSC formatted record, contains a. 8 word (16 bytes) DSC header with code=40 b. 512. bytes of DSC Bookkeeping information (documented in section IV) c. 512. byte Files-11 file header for the file (1,1) [0,0]INDEXF.SYS;1 7. 1040. DSC Data record should contain initialization data for disk structure, 2 virtual blocks worth. 8. 2064. DSC Data record More initialization information for virtual block 377,177777. records 9 and up lengths 528., 1040., 1552., or 2064. Contain DSC data records with DSC codes 1, 2, or 4 The details of these records are in section III. DSC copies files to the output tape in file-number order. For each input file on the disk there is 1 type 2 record (of unknown function) 1 type 4 Files-11 Header record as many type 1 data records as needed to hold all virtual blocks allocated to the input file. At the end of data from a disk volume, there will be Record number Length Contents N tapemark N+1 80. EOF1 record Identical to HDR1 except bytes 55-60 now contain the number of physical tape records between HDR2 and EOF1. N+2 80. EOF2 record Identical to HDR2 record N+3 tapemark N+4 tapemark, if this is the end of the tape volume OR 80. HDR1 for the next output tape file created using DSC /AP switch. If the tape is filled, (ie reaches the End-of-Tape foil marker) the EOF1 and EOF2 records will be replaced by EOV1 and EOV2 records. The following reel in the set will start with a VOL1 label with the output volume name incremented by 1. The structure of all subsequent reels is the same as described above for the first reel, except that data records start immediately. There will be no DSC initialization records (6, 7, and 8. above) on subsequent reels. It is possible for data from a disk file to be split across two reels, and the data for a file can be separated from its DSC header records or Files-11 header record when changing reels. III. DSC DATA RECORD FORMAT Within the labeled file, DSC writes its own format records. These records contain: a. An 8. word header b. 1, 2, 3, or 4-512. byte logical data blocks. DSC header Format word 1 Length of the data portion of the record, excluding ALL DSC specific information. word 2 DSC record-type code indicating the type of data in the data portion of the record. code = 1 Disk data record(s), images of input disk blocks 2 Prefix information. I have not fully decoded the data in these records. May have some filename and extent information. 4 Files-11 file header (records of code 4 only have one 512. byte data block). 40 Special DSC initialization record. a. 512. bytes of initialization information see section IV. b. 512. byte Files-11 header for INDEXF.SYS words 3-4 For type 1 records, these words contain the Virtual Block Number (VBN) of the of the first logical block in the DSC data record. The low order part of the VBN is in word 3, the high-order part is in the low byte of word 4. I have not fully understood the use of these words for the second data record for the INDEXF.SYS file. word 5 The file number this record applies to word 6 The file sequence number this record applies to. words 7-8 Always seem to be zero. IV. DSC INITIALIZATION RECORD This record contains the usual 8-word DSC header with a code of octal-40 in word 2. The data portion of the record contains 512. bytes of DSC control information plus the 512. byte Files-11 file header for (1,1) [0,0]INDEXF.SYS;1 The DSC control information is formatted within the record as follows: Bytes Contents 1.- 12. DSC Output name from the command line, ASCII padded with spaces 13.- 24. Input device name (e.g. DK1), ASCII, padded with spaces 25.- 36. ? null 37.- 48. Input volume name, ASCII, padded with nulls 49.- 52. ? null 53.- 54. ? 1 55.- 58. Number of blocks on the input device, binary 59.- 62. Number of blocks in use on the device, binary (not including bad blocks) 63.- 66. Number of files in use on the device, binary 67.- 68. ? 69.- 70. ? null 71.- 72 ? Number of blocks allocated to index file 73.- 74 ? 75.- 76. ? 77.- 78. ? 79.- 80. ? 81.- 82. ? 83.- 84 ? 85.-510. ? null 511.-512. checksum Items marked with ? are items I have not identified. V. DSC CODE 2 RECORDS One of these records preceeds each files-11 file on the DSC tape DSC header word 1 = 512 word 2 = 2 word 5 = file number of the files-11 file word 6 = file sequence of the files-11 file. DSC data block, 512. bytes words 1-3 the string BACKUP word 5 The number of bytes in the name string words 6.. The file name string, in the form DDU:[126,342]filename.ext;ver the UIC 126,342 seems to be constant,regardless of what the source or directory uic was. word 46. Number of blocks allocated to the file word 52. (same as word 46.) word 67. Owning UIC group number word 68. Owning UIC member number. There is some more information, but I have not determined what it is, it was not necessary for restoring files. VI. DSC FILES-11 HEADER RECORD One of these records immediately follows the DSC code 2 record and contains: DSC header word 2 = 4 code for files-11 header record word 5 = files-11 file number for this file word 6 = files-11 file sequence number for this file. The data portion of the record contains the 512. byte files-11 header block for the file. It is an exact image of the header as it was on the disk, including the map area.