Anonymous

ZX-State format: Difference between revisions

From Sinclair Wiki
→‎ZXSTSPECTRANET: Document block
(Add stubs for the Spectranet blocks.)
(→‎ZXSTSPECTRANET: Document block)
Line 122: Line 122:
=== ZXSTSPECTRANET ===
=== ZXSTSPECTRANET ===


'''TODO'''
'''NB''': Note that the [http://www.spectaculator.com/docs/svn/zx-state/spectranet.shtml draft of the next version of the SZX format] is out of date and does not represent what has been implemented in Fuse.


Note that the [http://www.spectaculator.com/docs/svn/zx-state/spectranet.shtml draft of the next version of the SZX format] is out of date and does '''not''' represent what has been implemented in Fuse.
This block represents Dylan Smith's Spectranet Ethernet interface for the 16K, 48K, 128, +2, +2A and +3 ZX Spectrums.
 
// Spectranet state
#define ZXSTSNETF_PAGED                      0x0001
#define ZXSTSNETF_PAGED_VIA_IO              0x0002
#define ZXSTSNETF_PROGRAMMABLE_TRAP_ACTIVE  0x0004
#define ZXSTSNETF_PROGRAMMABLE_TRAP_MSB      0x0008
#define ZXSTSNETF_ALL_DISABLED              0x0010
#define ZXSTSNETF_RST8_DISABLED              0x0020
#define ZXSTSNETF_DENY_DOWNSTREAM_A15        0x0040
#define ZXSTSNETF_NMI_FLIPFLOP              0x0080
typedef struct _tagZXSTSPECTRANET
{
  ZXSTBLOCK blk;
  DWORD dwFlags;
  BYTE chPageA;
  BYTE chPageB;
  WORD wTrap;
  BYTE chRegisters[0x30];
} ZXSTSPECTRANET, *LPZXSTSPECTRANET;
 
==== Members ====
&nbsp;&nbsp; '''blk'''<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The block header. The block id is '''ZXSTBID_SPECTRANET''' ('S', 'N', 'E', 'T').<br />
&nbsp;&nbsp; '''wFlags'''<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Various flags. This can be any combination of:
{|cellspacing="1" cellpadding="1" border="1" width="100%"
|'''Flag'''
|'''Meaning'''
|-
|ZXSTSNETF_PAGED
|The Spectranet is currently paged.
|-
|ZXSTSNETF_PAGED_VIA_IO
|The Spectranet was paged in via I/O port.
|-
|ZXSTSNETF_PROGRAMMABLE_TRAP_ACTIVE
|The Spectranet's programmable trap is currently active.
|-
|ZXSTSNETF_PROGRAMMABLE_TRAP_MSB
|The next write to the Spectranet's programmable trap port will set the MSB of the programmable trap address.
|-
|ZXSTSNETF_ALL_DISABLED
|All the Spectranet's traps are currently disabled.
|-
|ZXSTSNETF_RST8_DISABLED
|The Spectranet's RST 8 trap is currently disabled.
|-
|ZXSTSNETF_DENY_DOWNSTREAM_A15
|The Spectranet is forcing the A15 line low for any peripherals connecting via its expansion port.
|-
|ZXSTSNETF_NMI_FLIPFLOP
|The Spectranet's "suppress NMI" flipflop is set
|}
 
&nbsp;&nbsp; '''chPageA'''<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The page currently paged into the Spectranet's page A (0x1000-0x1fff).<br />
&nbsp;&nbsp; '''chPageB'''<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The page currently paged into the Spectranet's page B (0x2000-0x2fff).<br />
&nbsp;&nbsp; '''wTrap'''<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The current value of the Spectranet's programmable trap.<br />
&nbsp;&nbsp; '''chRegisters'''<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The values of the core W5100 registers.
 
==== Remarks ====
The contents of the W5100's socket registers are not saved - whatever was listening on the other end will have gone away when the snapshot is restored.


=== ZXSTSPECTRANETFLASHPAGE ===
=== ZXSTSPECTRANETFLASHPAGE ===
49

edits