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