Quick Release Sector Transfer

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
Line 9: Line 9:
  
 
QRST files start with the 4-character ASCII string <code>QRST</code>, followed by a <code>0x00</code> byte. The first character of the file extension is an underscore, followed by a 2-digit hexadecimal volume number.
 
QRST files start with the 4-character ASCII string <code>QRST</code>, followed by a <code>0x00</code> 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:
 +
 +
{| class="wikitable"
 +
! Offset
 +
! Size
 +
! Description
 +
|-
 +
|0x00 || 5 bytes || Magic number, <code>QRST</code> followed by <code>0x00</code>
 +
|-
 +
|0x08 || 4 bytes || Checksum
 +
|-
 +
|0x0C || 1 byte || Disk capacity:
 +
{| class="wikitable"
 +
! 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 ====
 +
{| class="wikitable"
 +
! 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 ====
 +
{| class="wikitable"
 +
! 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 ====
 +
{| class="wikitable"
 +
! 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).
  
 
== 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 01:01, 13 March 2016

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).

Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox