Board feature control: Difference between revisions

From SpecNext Wiki
Jump to: navigation, search
mNo edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
This is a general list of ports and registers used to control features of the Spectrum Next.
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 ==
A partial replacement to some of the content that the old codebase provided has been migrated to https://explorer.specnext.dev/ - this site is still under active development, but aims to be an automated way to explore the contents of official specification & documents.


{| class="wikitable"
{| class="wikitable"
! The information is manually copied from the specification, so if something is off or missing, check the gitlab repository of ZX Next FPGA core: [https://gitlab.com/SpectrumNext/ZX_Spectrum_Next_FPGA/-/blob/master/cores/zxnext/ports.txt ports.txt] and [https://gitlab.com/SpectrumNext/ZX_Spectrum_Next_FPGA/-/blob/master/cores/zxnext/nextreg.txt nextreg.txt] and [https://gitlab.com/SpectrumNext/ZX_Spectrum_Next_FPGA/-/blob/master/cores/zxnext/changelog.md changelog.md].
! The information is manually copied from the specification, so if something is off or missing, check the gitlab repository of ZX Next FPGA core: [https://gitlab.com/SpectrumNext/ZX_Spectrum_Next_FPGA/-/blob/master/cores/zxnext/ports.txt ports.txt] and [https://gitlab.com/SpectrumNext/ZX_Spectrum_Next_FPGA/-/blob/master/cores/zxnext/nextreg.txt nextreg.txt] and [https://gitlab.com/SpectrumNext/ZX_Spectrum_Next_FPGA/-/blob/master/cores/zxnext/changelog.md changelog.md].
|}
|}
Note that these lists are automatically generated and not directly editable. To edit data on a port or register, visit its page. To add a new port, click [[Form:Port Form|here]]. To add a new register, click [[Form:Next Configuration Register Form|here]].


= Mapped Spectrum Ports =  
= Mapped Spectrum Ports =  

Latest revision as of 10:19, 8 October 2025

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

A partial replacement to some of the content that the old codebase provided has been migrated to https://explorer.specnext.dev/ - this site is still under active development, but aims to be an automated way to explore the contents of official specification & documents.

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

}}