ZXSTBETA128

Beta 128 disk interface from Technology Research UK Ltd. A clone of this interface is also used in the Russian Pentagon and Scorpion machines.

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

// Beta 128 disk interface used by the Pentagon and Scorpion
#define ZXSTBETAF_CONNECTED   1
#define ZXSTBETAF_CUSTOMROM   2
#define ZXSTBETAF_PAGED       4
#define ZXSTBETAF_AUTOBOOT    8
#define ZXSTBETAF_SEEKLOWER  16
#define ZXSTBETAF_COMPRESSED 32

typedef struct _tagZXSTBETA128
{
  ZXSTBLOCK blk;
  DWORD dwFlags;
  BYTE chNumDrives;
  BYTE chSysReg;
  BYTE chTrackReg;
  BYTE chSectorReg;
  BYTE chDataReg;
  BYTE chStatusReg;
  BYTE chRomData[1];
} ZXSTBETA128, *LPZXSTBETA128;

Members

blk

The block header. The block id is ZXSTBID_BETA128 ('B', '1', '2', '8').

dwFlags

Various flags. This can be a combination of:

Flag

Meaning

ZXSTBETAF_CONNECTED

The interface is connected and enabled. This is always set for Pentagon and Scorpion machines.

ZXSTBETAF_CUSTOMROM

A custom TR-DOS ROM is installed. The ROM image begins at chRomData. The default ROM is the last version by Technology Research, version 5.03.

ZXSTBETAF_COMPRESSED

If a custom TR-DOS ROM is embedded in this block, it has been compressed with the Zlib compression library.

ZXSTBETAF_PAGED

The TR-DOS ROM is currently paged in.

ZXSTBETAF_AUTOBOOT

The Beta 128's Auto boot feature is enabled (48k ZX Spectum only).

ZXSTBETAF_SEEKLOWER

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

chNumDrives

The number of disk drives connected (1-4).

chSysReg

The last value written to the Beta 128's system register (port $ff).

chTrackReg

The current value of the WD179x FDC's track register (port $3f).

chSectorReg

The current value of the WD179x FDC's sector register (port $5f).

chDataReg

The current value of the WD179x FDC's data register (port $7f).

chStatusReg

The current value of the WD179x FDC's status register (port $1f).

chRomData

A Zlib compressed or uncompressed custom TR-DOS ROM (if one was installed). The uncompressed ROM size is always 16,384 bytes. When loading Zlib compressed ROMs, the compressed size can be obtained by:

compressedSize = blk.dwSize - ( sizeof( ZXSTBETA128 ) - 1 - sizeof( ZXSTBLOCK ));

Remarks

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

Revision history

Available since version 1.2