Quick Release Sector Transfer

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(File header)
Line 20: Line 20:
 
! Description
 
! Description
 
|-
 
|-
|0x00 || 5 bytes || Magic number, <code>QRST</code> followed by <code>0x00</code>
+
|0x00 || 4 bytes || Magic number, <code>QRST</code>
 
|-
 
|-
|0x08 || 4 bytes || Checksum
+
|0x04 || 4 bytes || Version number, floating point, little-endian
 +
|-
 +
|0x08 || 4 bytes || Checksum (version <5), unused (version 5)
 
|-
 
|-
 
|0x0C || 1 byte || Disk capacity:
 
|0x0C || 1 byte || Disk capacity:

Revision as of 23:56, 3 September 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 4 bytes Magic number, QRST
0x04 4 bytes Version number, floating point, little-endian
0x08 4 bytes Checksum (version <5), unused (version 5)
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