51 lines
1.0 KiB
C
51 lines
1.0 KiB
C
|
/* A2DiskImages.h
|
||
|
|
||
|
Header formats of Apple II disk image files.
|
||
|
*/
|
||
|
|
||
|
typedef struct
|
||
|
{/*
|
||
|
Header format of 2IMG disk images. All integer fields are
|
||
|
little-endian. Positions and lengths are in bytes.
|
||
|
*/
|
||
|
char m2IMG[4], // "2IMG"
|
||
|
mCreator[4]; // "CTKG", or other producer
|
||
|
uint16_t mHeaderLength, // 64
|
||
|
mVersion; // 0 or 1
|
||
|
|
||
|
uint8_t mFormat, // 0=DO, 1=PO, 2=NIB
|
||
|
mPad1[3],
|
||
|
mVolNumber,
|
||
|
mGotVolume, // bit 0
|
||
|
mPad2,
|
||
|
mLocked; // bit 7
|
||
|
|
||
|
uint32_t mNumBlocks, // for PO only
|
||
|
|
||
|
mDataPos, mDataLen,
|
||
|
mCommentPos, mCommentLen,
|
||
|
mAppDataPos, mAppDataLen;
|
||
|
|
||
|
char mPad3[16]; // pad out to 64 bytes
|
||
|
|
||
|
} A2Header2IMG;
|
||
|
|
||
|
|
||
|
typedef struct
|
||
|
{/*
|
||
|
Header format of DiskCopy 4.x disk images. All integer fields are
|
||
|
big-endian. Sizes are in bytes. Data blocks start at offset 84
|
||
|
from the file's beginning. Tag data can be ignored.
|
||
|
*/
|
||
|
char mDiskName[64]; // Pascal string
|
||
|
|
||
|
uint32_t mDataSize, mTagSize,
|
||
|
mDataChecksum, mTagChecksum;
|
||
|
|
||
|
uint8_t mDiskFormat,
|
||
|
mFormatByte,
|
||
|
mPrivate[2];
|
||
|
|
||
|
} A2HeaderDiskCopy4;
|
||
|
|