ZXSTPLUSD

Plus D disk interface by Miles Gordon Technology Ltd - later sold by Datel Electronics.

Any blocks specifying which disk files are in which drive will follow this one.

// Flags
#define ZXSTPLUSDF_PAGED        1
#define ZXSTPLUSDF_COMPRESSED   2
#define ZXSTPLUSDF_SEEKLOWER    4

// Rom types
#define ZXSTPDRT_GDOS           0
#define ZXSTPDRT_UNIDOS         1
#define ZXSTPDRT_CUSTOM         2

typedef struct _tagZXSTPLUSD
{
  ZXSTBLOCK blk;
  DWORD dwFlags;
  DWORD dwcbRam;
  DWORD dwcbRom;
  BYTE chRomType;
  BYTE chCtrlReg;
  BYTE chNumDrives;
  BYTE chTrackReg;
  BYTE chSectorReg;
  BYTE chDataReg;
  BYTE chStatusReg;
  BYTE chRam[1];
} ZXSTPLUSD, *LPZXSTPLUSD;

Members

blk

The block header. The block id is ZXSTBID_PLUSD ('P', 'L', 'S', 'D').

dwFlags

Various flags. This can be a combination of:

Flag

Meaning

ZXSTPLUSDF_PAGED

The Plus D's ROM and RAM are currently paged in.

ZXSTPLUSDF_COMPRESSED

Specifies the RAM (and any custom ROM) have been compressed with the Zlib compression library.

ZXSTPLUSDF_SEEKLOWER

If set, the WD1772 FDC's current seek direction is towards lower cylinder numbers. Otherwise, it is towards higher ones.

dwcbRam

Size in bytes of the Zlib compressed or uncompressed custom Plus D RAM. The uncompressed RAM size is always 8,192 bytes.

dwcbRom

Size in bytes of the Zlib compressed or uncompressed custom Plus D ROM (if one was installed). The uncompressed ROM size is always 8,192 bytes.

chRomType

The type of ROM installed in the Plus D. This can be one of:

Value

Meaning

ZXSTPDRT_GDOS

The standard G+DOS ROM (Version 1.A).

ZXSTPDRT_UNIDOS

Uni-DOS ROM.

ZXSTPDRT_CUSTOM

A custom ROM is installed. The Zlib compressed or uncompressed ROM image begins after the RAM image at chRam. dwcbRom contains the size of the compressed (or uncompressed) data.

chCtrlReg

The last value written to the Plus D's control register, port $ef.

chNumDrives

The number of disk drives connected (1 or 2).

chTrackReg

The current value of the WD1772 FDC's track register (port $eb).

chSectorReg

The current value of the WD1772 FDC's sector register (port $f3).

chDataReg

The current value of the WD1772 FDC's data register (port $fb).

chStatusReg

The current value of the WD1772 FDC's status register (port $e3).

chRam

A Zlib compressed or uncompressed image of the Plus D's RAM. The uncompressed RAM size is always 8192 bytes. If a custom ROM is installed. The image follows immediately after the RAM data.

Remarks

Any ZXSTPLUSDDISK blocks specifying which disk files are in which drives will follow this one.

Revision history

Available since version 1.3