Documente Academic
Documente Profesional
Documente Cultură
Please keep 2IMG files clean. We would like to make this a stable, consistent
image format that gets rid of all the problems older and established formats
are known for.
The 2IMG format was jointly developed by the authors of XGS, KEGS,
Catakig and Bernie.
2IMG
+ 0 char magic[4]; // "2IMG"
+ 4 char creator[4]; // Creator signature
+ 8 word16 header_len; // Length of header in bytes
+10 word16 version; // Image version
+12 word32 image_format;// Image data format (see below)
+16 word32 flags; // Format flags (see below)
+20 word32 num_blocks; // Number of 512-byte blocks in this image
+24 word32 data_offset; // File offset to start of data
+28 word32 data_len; // Length of data in bytes
+32 word32 cmnt_offset; // File offset to start of comment
+36 word32 cmnt_len; // Length of comment in bytes
+40 word32 creator_offset; // File offset to start of creator data
+44 word32 creator_len; // Length of creator data in bytes
+48 word32 spare[4]; // Spare words (pads header to 64 bytes)
+ 4 char creator[4];
A signature of the software that created this image. Important to properly handle the
creator-specific chunk. Currently used signatures are:
Describes what kind of disk image is stored in the DATA chunk. Possible values are:
0 for DOS 3.3 -order floppy images. This is the same kind of data as in .do images.
The disk data is already decoded, stored as logical disk blocks, sorted by logical
block number.
1 for ProDOS-order disk images. This format is for hard disk images and "generic
SmartPort devices". Each block has 512 bytes. Blocks are sorted by their logical
block number.
2 for raw dumps of the disk nibbles. This is only valid for floppy disk images.
31 27 23 19 15 11 7 3 0
Lxxx xxxx xxxx xxxx xxxx xxxV vvvv vvvv
|\_________________________/| \_______/
| | | |
Disk Lock Reserved Vol #? DOS 3.3 volume #
x: reserved (0)
L: if true (1), disk image is locked
V: if true (1), the least significant 8 bits provide the volume number. This is only
meaningful for DOS 3.3 images. If V is zero, then the volume number is not specified and
254 is assumed. (Again, only in case of a DOS 3.3 image.)
Number of 512-byte blocks in image. Makes only sense when format flag is set to 1
(ProDOS image.)
Indicates where the actual disk bytes begin. The offset is calculated from the very
beginning of the file, i.e. it includes the size of this header. The following 4 bytes set the
size in bytes of the data chunk.
Note: the DATA chunk must preceed the COMMENT and CREATOR chunks.
Points at a text chunk for a user-defined "disk label". The text should be ASCII encoded.
Since the cmnt_len field determines the length of the comment chunk, there's no C-style
terminator or Pascal-style length byte/word in the text chunk required.
Note: the COMMENT chunk must come after the DATA chunk and before the CREATOR
chunk. If it's not present, set both the offset and length words to zero.
+40 word32 creator_offset;
+44 word32 creator_len;
You may add your own chunk where you can store data specific to your emulator. Please
keep in mind that this chunk is linked to the creator code at the beginning of the header.
If you really need to change the creator, you should take appropriate steps to remove the
CREATOR chunk or convert it to your own format. Just don't change the creator
signature and keep the old creator chunk.
Note: the CREATOR chunk must be the last one of the three chunks. If it's not present, set
both the offset and length words to zero.
+48 word32 spare[4];
ProDOS-Order (.PO)
.PO disks contain logical disk bytes, i.e. blocks of 256 bytes each sorted by their logical
block number. Since they are only used for dumping floppies, .PO images always have
560 blocks originating from 35 tracks of 16 sectors each. You can use the following
translation table to find out about a sector's physical block number:
block: 0 1 2 3 4 5 6 7 8 9 A B C D E F
position: 0 8 1 9 2 A 3 B 4 C 5 D 6 E 7 F
This table mirrors ProDOS' hard-coded interleaving. It is different from the one found on
DOS 3.3 disks.
DOS-Order (.DO)
.DO disks contain logical disk bytes, i.e. blocks of 256 bytes each sorted by their logical
block number. Since they are only used for dumping floppies, .DO images always have
560 blocks originating from 35 tracks of 16 sectors each. You can use the following
translation table to find out about a sector's physical block number:
block: 0 1 2 3 4 5 6 7 8 9 A B C D E F
position: 0 7 E 6 D 5 C 4 B 3 A 2 9 1 8 F
This table mirrors DOS 3.3' hard-coded interleaving. It is different from the one found on
ProDOS disks.
NIB
.NIB images are copies of a disk's nibblized disk bytes. Since they are pure copies
without having gone through any sort of decoding, they work equally well for both DOS
and ProDOS disks.
.NIB images are made up of 35 tracks. Each track has $1A00 (6656) bytes. There's no
header structure. The first disk byte of track 0 starts at file offset +0, the first byte of track
1 at file offset +$1A00, and so on.