ZXSTAYBLOCK
The state of the AY chip found in all 128k Spectrums, Pentagons, Scorpions and Timex machines. This block may also be present for 16k/48k Spectrums if Fuller Box or Melodik emulation is enabled.
// AY Block flags
#define ZXSTAYF_FULLERBOX 1
#define ZXSTAYF_128AY 2
// AY Block. Contains the AY register values
typedef struct _tagZXSTAYBLOCK
{
ZXSTBLOCK blk;
BYTE chFlags;
BYTE chCurrentRegister;
BYTE chAyRegs[16];
} ZXSTAYBLOCK, *LPZXSTAYBLOCK;
Members
- blk
The block header. The block id is ZXSTBID_AY ('A', 'Y', 0, 0).
- chFlags
A set of flags that indicate an AY chip is available to the 16k/48k ZX Spectrum and Timex TC2048. This can be one of:
Flag
Meaning
ZXSTAYF_FULLERBOX
Fuller Box emulation.
ZXSTAYF_128AY
Melodik Soundbox emulation. This is essentially an AY chip for older Spectrums that uses the same ports as that found in 128k Spectrums.
Note: This member should be set to 0 (zero) for other machines which have a built-in AY chip.
- chCurrentRegister
The currently selected AY register (0-15).
- chAyRegs
The current values of the AY registers. Note: The AY chip does not use all 8 bits for all registers. Where this is the case, the unused bits should be set to 0 (zero).
Revision history
Available since version 1.0