Board feature control
This is a general list of ports and registers used to control features of the Spectrum Next.
THIS PAGE IS SUBSTANTIALLY BROKEN SINCE WIKI UPGRADED
| The information is manually copied from the specification, so if something is off or missing, check the gitlab repository of ZX Next FPGA core: ports.txt and nextreg.txt and changelog.md. |
|---|
Mapped Spectrum Ports
A note on partial decoding
Most Spectrum peripherals did not actually decode all 16 bits of the address bus; they checked only for certain bits, and would respond if those bit values were set correctly, regardless of the other bits. The "bitmask" column for each port shows the bits that are tested for by the device. Traditionally all "unused" bits are set to 1 to avoid conflicts with other devices, which is the basis of the given port numbers; but alternate port numbers may be used in some cases. However, beware of creating clashes: in particular any port which does not intend to access the ULA should have the LSB set, as the ULA checks only for a reset LSB.
It is not known if the Next's built-in devices will have this decoding restriction, but it seems a safe presumption that they will not except where needed by legacy code.
On the other hand, partial decoding can allow use of the multiple output opcodes such as OTIR, which normally places the loop counter on the top half of the address bus - thus making it useless except for devices which ignore this top half. This is the reason why some of the Next registers do ignore the top half of the port address.
{{#ask:
|?PortNumber=Hexadecimal |?NumberDec#-=Decimal |?PortMask=Mask |?ShortDesc=Description |sort=PortNumber
}}
Next/TBBlue Feature Control Registers
Specific features of the Next are controlled via these register numbers, accessed via {{#ask: PortNumber::$243B }} ($243B{{#ask: PortNumber::$243B |mainlabel=- |headers=hide |intro= / |?NumberDec#- }}) and {{#ask: PortNumber::$253B }} ($253B{{#ask: PortNumber::$253B |mainlabel=- |headers=hide |intro= / |?NumberDec#- }}), or via the NEXTREG opcode.
{{#ask:
|?TBRegisterNumber=Number |?TBRegisterReadable#Yes,No=Readable |?TBRegisterWritable#Yes,No=Writable |?ShortDesc=Description |limit=150 |sort=TBRegisterNumber
}}