[ Spectaculator, ZX Spectrum Emulator ] Home | Downloads | Support [ ZX Spectrum Image ]

Table of contents

The zx-state file format
Block types

ZXSTPLUSDDISK

Each disk drive connected to the Plus D disk interface will have one of these blocks, if a disk is inserted. They follow the ZXSTPLUSD block which identifies the number of drives.

// Associated Plus D disk images

// Disk image types
#define ZXSTPDDT_MGT           0
#define ZXSTPDDT_IMG           1
#define ZXSTPDDT_FLOPPY0       2
#define ZXSTPDDT_FLOPPY1       3

// Flags
#define ZXSTPDDF_EMBEDDED      1
#define ZXSTPDDF_COMPRESSED    2
#define ZXSTPDDF_WRITEPROTECT  4

typedef struct _tagZXSTPLUSDDISK
{
  ZXSTBLOCK blk;
  DWORD dwFlags;
  BYTE chDriveNum;
  BYTE chCylinder;
  BYTE chDiskType;
  union {
    CHAR szFileName[1];
    BYTE chDiskImage[1];
  };
} ZXSTPLUSDDISK, *LPZXSTPLUSDDISK;

Members

blk
The block header. The block id is ZXSTBID_PLUSDDISK ('P', 'D', 'S', 'K').
dwFlags
Various flags. This can be a combination of:
FlagMeaning
ZXSTPDDF_EMBEDDEDThe actual disk image is embedded in this block.
ZXSTPDDF_COMPRESSEDIf ZXSTPDDF_EMBEDDED is also set, the disk image in this block is compressed using the Zlib compression library.
ZXSTPDDF_WRITEPROTECTSpecifies whether or not the disk image is write-protected.
chDriveNum
Specifies the drive to insert this disk image into (0-1).
chCylinder
The cylinder the drive heads are currently over (0-86).
chDiskType
Specifies the type of disk image. This can be one of:
ValueMeaning
ZXSTPDDT_MGTThe disk image is in the .mgt format.
ZXSTPDDT_IMGThe disk image is in the .img format.
ZXSTPDDT_FLOPPY0Real disk mode. Instead of using disk images, drive chDriveNum should use the first real 3½" floppy disk drive in a system. In Windows, this is the A: drive.

Note: szFileName and chDiskImage are unused.

ZXSTPDDT_FLOPPY1Real disk mode. Instead of using disk images, drive chDriveNum should use the second real 3½" floppy disk drive in a system. In Windows, this is the B: drive.

Note: szFileName and chDiskImage are unused.

szFileName
The file name of the disk image which should be opened and inserted into this drive, if the disk image is not embedded.
chDiskImage
If the disk image is embedded, this member is the (possibly compressed) disk image to be inserted into this drive.

Remarks

These blocks follow the ZXSTPLUSD block which identifies the number of drives.

When loading this block, you should use the chDiskType member to determine the disk image format, rather than the file extension of szFileName. This is especially important since these members are not valid when chDiskType is ZXSTPDDT_FLOPPYx.

Revision history

Available since version 1.3


  Copyright © 2001 - 2011 Jonathan Needle Top