Quick Release Sector Transfer

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m
Line 106: Line 106:
  
 
The compressed data stream consists of alternating literal runs (a byte giving the length of the run, followed by that number of bytes data) and compressed runs (two bytes; first gives number of repeats, second gives byte to repeat).
 
The compressed data stream consists of alternating literal runs (a byte giving the length of the run, followed by that number of bytes data) and compressed runs (two bytes; first gives number of repeats, second gives byte to repeat).
 +
 +
=== Checksum ===
 +
 +
The checksum is the sum of all bytes on the disc, each byte multiplied by (1 + its offset on the disc). So for a 360k disc it would be (1 * first byte of first sector) + (2 * second byte of first sector) + ... + (368640 * last byte of last sector).
  
 
== Sample files ==
 
== Sample files ==
  
 
* [ftp://ftp.oldskool.org/pub/drivers/Compaq/Portable%20III/setup%20and%20diags/ Compaq Portable III setup and diagnostics]
 
* [ftp://ftp.oldskool.org/pub/drivers/Compaq/Portable%20III/setup%20and%20diags/ Compaq Portable III setup and diagnostics]

Revision as of 21:19, 15 February 2017

File Format
Name Quick Release Sector Transfer
Ontology

The QRST disc image format was used by Compaq to distribute disk images of diagnostic software. The file QRST.EXE would be supplied with the disc images to write them to a floppy drive.

Contents

Identification

QRST files start with the 4-character ASCII string QRST, followed by a 0x00 byte. The first character of the file extension is an underscore, followed by a 2-digit hexadecimal volume number.

Structure

File header

The file begins with a 796-byte header:

Offset Size Description
0x00 5 bytes Magic number, QRST followed by 0x00
0x08 4 bytes Checksum
0x0C 1 byte Disk capacity:
Value Meaning
0 unknown
1 360k
2 1.2M
3 720k
4 1.4M
5 160k
6 180k
7 320k
0x0D 1 byte Current volume number in set
0x0E 1 byte Count of volumes in set
0x0F 96 bytes Description, ASCIIZ
0x4B 721 bytes Disk label, ASCIIZ

Tracks

The header will be followed by the data tracks. These can be in one of three forms:

Uncompressed track

Offset Size Description
0x00 1 byte Cylinder
0x01 1 byte Head
0x02 1 byte 0 indicates uncompressed track
0x03 calculated from disk type in header Track data, uncompressed

Blank track

Offset Size Description
0x00 1 byte Cylinder
0x01 1 byte Head
0x02 1 byte 1 indicates blank track
0x03 1 byte Filler byte

Compressed track

Offset Size Description
0x00 1 byte Cylinder
0x01 1 byte Head
0x02 1 byte 2 indicates compressed track
0x03 2 bytes Length of compressed data
0x05 As specified above Compressed data

The compressed data stream consists of alternating literal runs (a byte giving the length of the run, followed by that number of bytes data) and compressed runs (two bytes; first gives number of repeats, second gives byte to repeat).

Checksum

The checksum is the sum of all bytes on the disc, each byte multiplied by (1 + its offset on the disc). So for a 360k disc it would be (1 * first byte of first sector) + (2 * second byte of first sector) + ... + (368640 * last byte of last sector).

Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox