Board feature control: Difference between revisions

From SpecNext Wiki
Jump to: navigation, search
Johnnyo (talk | contribs)
Next/TBBlue Feature Control Registers: link from the NextReg:$NN too
Johnnyo (talk | contribs)
The list of ports: FE control first
 
(One intermediate revision by the same user not shown)
Line 24: Line 24:


The following ports are currently documented in this wiki:
The following ports are currently documented in this wiki:
 
* {{PortNo|$xxFE}} [[ULA Control Port]] and [[Keyboard]]
* Port:$xxFE [[Keyboard]] and [[ULA Control Port]]
* {{PortNo|$103B}} [[I2C clock]]
* Port:$103B [[I2C clock]]
* {{PortNo|$113B}} [[I2C data]]
* Port:$113B [[I2C data]]
* {{PortNo|$123B}} [[Layer 2 Access Port]]
* Port:$123B [[Layer 2 Access Port]]
* {{PortNo|$133B}} [[UART TX]]
* Port:$133B [[UART TX]]
* {{PortNo|$143B}} [[UART RX]]
* Port:$143B [[UART RX]]
* {{PortNo|$153B}} [[UART Control]]
* Port:$153B [[UART Control]]
* {{PortNo|$163B}} [[UART Frame]]
* Port:$163B [[UART Frame]]
* {{PortNo|$183B}} [[CTC Channels]]
* Port:$183B [[CTC Channels]]
* {{PortNo|$1FFD}} [[Plus 3 Memory Paging Control]]
* Port:$1FFD [[Plus 3 Memory Paging Control]]
* {{PortNo|$243B}} [[TBBlue Register Select]]
* Port:$243B [[TBBlue Register Select]]
* {{PortNo|$253B}} [[TBBlue Register Access]]
* Port:$253B [[TBBlue Register Access]]
* {{PortNo|$303B}} [[Sprite Status/Slot Select]]
* Port:$303B [[Sprite Status/Slot Select]]
* {{PortNo|$7FFD}} [[Memory Paging Control]]
* Port:$7FFD [[Memory Paging Control]]
* {{PortNo|$BFF5}} [[AY Info]]
* Port:$BFF5 [[AY Info]]
* {{PortNo|$BFFD}} [[Sound Chip Register Write]]
* Port:$BFFD [[Sound Chip Register Write]]
* {{PortNo|$DFFD}} [[Next Memory Bank Select]]
* Port:$DFFD [[Next Memory Bank Select]]
* {{PortNo|$E3}} [[DIVMMC]]
* Port:$E3 [[DIVMMC]]
* {{PortNo|$EFF7}} [[Pentagon 1024 paging]]
* Port:$EFF7 [[Pentagon 1024 paging]]
* {{PortNo|$FADF}} [[Kempston Mouse Buttons]]
* Port:$FADF [[Kempston Mouse Buttons]]
* {{PortNo|$FBDF}} [[Kempston Mouse X]]
* Port:$FBDF [[Kempston Mouse X]]
* {{PortNo|$FFDF}} [[Kempston Mouse Y]]
* Port:$FFDF [[Kempston Mouse Y]]
* {{PortNo|$FFFD}} [[Turbo Sound Next Control]]
* Port:$FFFD [[Turbo Sound Next Control]]
* {{PortNo|$xx0B}} [[MB02 DMA Port]]
* Port:$xx0B [[MB02 DMA Port]]
* {{PortNo|$xx1F}} [[Kempston Joystick]]
* Port:$xx1F [[Kempston Joystick]]
* {{PortNo|$xx37}} [[Kempston Joystick 2, Joystick I/O]]
* Port:$xx37 [[Kempston Joystick 2, Joystick I/O]]
* {{PortNo|$xx57}} [[Sprite Attribute Upload]]
* Port:$xx57 [[Sprite Attribute Upload]]
* {{PortNo|$xx5B}} [[Sprite Pattern Upload]]
* Port:$xx5B [[Sprite Pattern Upload]]
* {{PortNo|$xx6B}} [[Datagear DMA Port]]
* Port:$xx6B [[Datagear DMA Port]]
* {{PortNo|$xxDF}} [[SpecDrum DAC Output]]
* Port:$xxDF [[SpecDrum DAC Output]]
* {{PortNo|$xxFE}} [[ULA Control Port]]
* Port:$xxFE [[ULA Control Port]]
* {{PortNo|$xxFF}} [[Timex Sinclair Video Mode Control]]
* Port:$xxFF [[Timex Sinclair Video Mode Control]]


= Next/TBBlue Feature Control Registers =
= Next/TBBlue Feature Control Registers =

Latest revision as of 08:38, 30 December 2025

This is a general list of ports and registers used to control features of the Spectrum Next.

About The Content of this Page

This page features the list of the Next ports and control registers.

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 Next 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.

The list of ports

The following ports are currently documented in this wiki:

Next/TBBlue Feature Control Registers

Specific features of the Next are controlled via these register numbers, accessed via IO:$243B and IO:$253B, or via the NEXTREG opcode.

The following Next Registers are currently described in this wiki: