ZXSTROM

A custom ROM has been installed for the current Spectrum model.

// Custom ROM for the current model
#define ZXSTRF_COMPRESSED   1

typedef struct _tagZXSTROM
{
  ZXSTBLOCK blk;
  WORD wFlags;
  DWORD dwUncompressedSize;
  BYTE chData[1];
} ZXSTROM, *LPZXSTROM;

Members

blk

The block header. The block id is ZXSTBID_ROM ('R', 'O', 'M', 0).

wFlags

If ZXSTRF_COMPRESSED is set, the ROM image at chData has been compressed with the Zlib compression library.

dwUncompressedSize

The size in bytes of the custom ROM. This will be one of:

Size

Spectrum model

16,384

16k/48k Spectrum

32,768

Spectrum 128/+2

65,536

Spectrum +2A/+3

32,768

Pentagon 128

65,536

ZS Scorpion

16,384

Timex Sinclair TS/TC2048

24,576

Timex Sinclair TS2068

32,768

Spectrum SE

NOTE: For models that have more than one ROM, the ROMs will be concatenated together in ascending order.

chData

Either a Zlib compressed or uncompressed ROM image depending on whether the ZXSTRF_COMPRESSED bit of wFlags is set.

Remarks

When a custom ROM is not installed, the standard UK ROMs should be used for all official ZX Spectrum models. For the Spectrum +2A/+3, this is the v4.0 ROM.

For unofficial models (clones), the appropriate standard ROM should be used if a custom ROM is not installed.

Revision history

Available since version 1.0