Quick Release Sector Transfer

From Just Solve the File Format Problem
Revision as of 15:17, 11 December 2023 by Sembiance (Talk | contribs)

Jump to: navigation, search
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 or QRST5.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. The first character of the file extension is an underscore, followed by a 2-digit hexadecimal (version <5) or decimal (version 5) volume number.

Structure

File header

The file begins with a 796-byte header:

Offset Size Description
0x000 4 bytes Magic number, QRST
0x004 4 bytes Version number, floating point
0x008 4 bytes Checksum (version <5), unused (version 5)
0x00C 1 byte Disk capacity:
Value Meaning
0 unknown
1 360k
2 1.2M
3 720k
4 1.4M
5 160k
6 180k
7 320k
0x00D 1 byte Current volume number in set
0x00E 1 byte Count of volumes in set
0x00F 60 bytes Description, ASCIIZ
0x04B 720 bytes Disk label, ASCIIZ
0x31B 1 byte Always 0 (version <5), always 2 (version 5)

Version 5 extends the header with an additional 25 bytes:

Offset Size Description
0x31C 1 byte Unknown
0x31D 4 bytes Start of compressed data
0x321 4 bytes Length of compressed data
0x325 4 bytes CRC-32 of compressed data
0x329 4 bytes Unused (start)
0x32D 4 bytes Unused (length)
0x331 4 bytes Unused (CRC-32)

Version <5 data

In versions below 5, 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).

Version 5 data

In version 5, the data is an entire disk image compressed with PKWARE Data Compression Library's Implode. (This is not the same as PKZIP's Implode.)

Checksum

In versions below 5, 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).

In version 5, the CRC-32 covers the compressed data.

Multiple disc images in one file

At least one QRST file is known to exist which contains two disc images -- it has the structure of two separate QRST files concatenated together, each one describing itself as volume 1 of 1.

Software

Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox