Disk Express

From Just Solve the File Format Problem
Revision as of 08:06, 24 August 2022 by John e (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
File Format
Name Disk Express
Ontology
Extension(s) .dxp, special
Released 1991

Disk Express (stylized as Disk eXPress) is a shareware utility for PCDOS and OS/2 by Albert J. Shan, allowing floppy disks to be imaged. A disk image could be saved either as a data file, or as an executable that when run wrote its contents back to diskette.

Contents

Identification

If the file is not executable, it begins with a 512-byte header. The first two bytes will be 'AS' and the third will be a version number, 0-2.

If the file is executable, it starts with an MS-DOS EXE header. Bytes 2-5 of the header give the length of the executable portion, as normal. The disk image header starting with 'AS' is found four bytes after the executable portion.

Executable files use the .EXE extension.

Structure

Executable loader

Depending on the options selected when the disk was imaged, the executable loader (if present) will either be in MS-DOS EXE or New Executable format (for OS/2). It is followed by a 4-byte checksum and then the disk image data.

Disk image header

The disk image has a 512-byte header:

Offset Size Description
0x000 2 bytes Magic number, AS
0x002 1 byte Major version of Disk Express required to write this file (2 in files generated by v2.x)
0x003 1 byte Minor version required to write this file (30 if 'encrypted' or 'bad sectors' flags are set, otherwise 0)
0x004 1 byte Release of Disk Express that created this file (single ASCII character)
0x005 1 byte Disk capacity:
Value Meaning
0 160k
1 180k
2 320k
3 360k
4 720k
5 1.2M
6 1.4M
7 2.8M
0x006 4 bytes CRC-32 of disk data
0x00A 1 byte Compression type: 0 for uncompressed, 1-2 for compressed
0x00B 1 byte Last cylinder imaged
0x00C 1 byte Last head imaged
0x00D 1 byte Always 0
0x00E 1 byte Bitwise flags:
Value Meaning
0x01 Non-DOS disk
0x02 Encrypted disk image
0x04 Contains bad sectors
0x00F 1 byte Always 0
0x010 4 bytes Passphrase hash (if encrypted)
0x014 284 bytes Always 0
0x130 4 bytes CRC-32 of file header
0x134 200 bytes File description: 5 lines each of 40 characters, CP437 character set
0x1FC 4 bytes CRC-32 of description

Sector data

The imaged sectors follow the header with no further header or trailer information. The default behaviour of Disk Express is to record up to the last allocated block on the disk, so the amount of data stored may be less than the media type in the header block.

If the file is compressed, then each track is compressed separately. Each track in this case is preceded by a little-endian word, giving the length of the compressed data. There are special cases if the length is 1 (in which case all bytes in the track are the same) or if it is the same as the uncompressed length (in which case the track is not compressed).

Software

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox