ZXSTLEC
Contains the state of the LEC RAM interface.
The LEC RAM interface can add 64KB, 256KB or 512KB of uncontended RAM to a Spectrum 16/48K in 2 * 32KB pages.
The last 32KB page in the interface sustitute the Spectrum RAM in the 0x8000-0xFFFF address range.
The lower 32KB at 0x0000-0x7FFF can be configured as usual (ROM + VRAM) or as a 32KB RAM page that can be one of 2, 8 or 16 RAM pages (depending on LEC model). When the last page is selected, it appears twice in the address range: the first at 0x0000-0x7FFF and the second at 0x8000-0xFFFF.
Memory state is stored separately in ZXSTLECRAMPAGE blocks which will follow this block.
// Flags
#define ZXSTLECF_PAGED 0x01
typedef struct _tagZXSTLEC
{
ZXSTBLOCK blk;
WORD wFlags;
BYTE chMemPaged;
BYTE chNumRamPages;
} ZXSTLEC, *LPZXSTLEC;
Members
- blk
The block header. The block id is ZXSTBID_LEC ('L', 'E', 'C', 0 ).
- wFlags
Various flags. This can be any combination of:
Value
Meaning
ZXSTLECF_PAGED
If set, RAM is paged into the lower 32KB address range (0x0000-0x7fff).
- chMemPaged
Actual page at 0x0000-0x7fff (0-15).
- chNumRamPages
The amount of RAM installed in this LEC interface, in units of 32KB. Normally either 2 (80KB version), 8 (272KB version) or 16 (528KB version).
Remarks
Memory state is stored separately in ZXSTLECRAMPAGE blocks which will follow this block.
Revision history
Available since version 1.5.