Difference between revisions of "Board feature control"

From SpecNext official Wiki
Jump to: navigation, search
(Next/TBBlue Feature Control Registers)
Line 10: Line 10:
  
 
= Next/TBBlue Feature Control Registers =
 
= Next/TBBlue Feature Control Registers =
 +
 +
Specific features of the Next are controlled via these register numbers, accessed via {{PortNo|$243B}} and {{PortNo|$253B}}.
 +
 
{{#ask:
 
{{#ask:
 
  [[Category:Next Configuration Registers]]
 
  [[Category:Next Configuration Registers]]

Revision as of 17:57, 15 August 2017

Mapped Spectrum Ports

 NumberDescription
Keyboard$**FESeries of specific ports that read keyboard key presses.
I2C clock$103BSets and reads the I2C SCL line.
I2C data$113BSets and reads the I2C SDA line
Layer 2 Access Port$123BEnables Layer 2 and controls paging of layer 2 screen into lower memory.
UART TX$133BSends byte to serial port. If read, tells if data in RX buffer
UART RX$143BReads data from serial port, write sets the baudrate
UART Control$153BConfiguration of UART interfaces
UART Frame$163BUART Frame
CTC Channels$183BCTC 8 channels 0x183b - 0x1f3b
Plus 3 Memory Paging Control$1FFDControls ROM paging and special paging options from the +2a/+3.
TBBlue Register Select$243BSelects active port for TBBlue/Next feature configuration.
TBBlue Register Access$253BReads and/or writes the selected TBBlue control register.
Sprite Status/Slot Select$303BSets active sprite-attribute index and pattern-slot index, reads sprite status.
Memory Paging Control$7FFDSelects active RAM, ROM, and displayed screen.
AY Info$BFF5AY information
Sound Chip Register Write$BFFDWrites to the selected register of the selected sound chip.
Next Memory Bank Select$DFFDProvides additional bank select bits for extended memory.
DIVMMC$E3Divmmc control
Pentagon 1024 paging$EFF7Paging in Pentagon 1024K mode
Kempston Mouse Buttons$FADFReads buttons on Kempston Mouse.
Kempston Mouse X$FBDFX coordinate of Kempston Mouse, 0-255.
Kempston Mouse Y$FFDFY coordinate of Kempston Mouse, 0-192.
Turbo Sound Next Control$FFFDControls stereo channels and selects active sound chip and sound chip channel.
MB02 DMA Port$xx0BControls Z8410 DMA chip via MB02 standard.
Kempston Joystick$xx1FReads movement of joysticks using Kempston interface.
Kempston Joystick 2, Joystick I/O$xx37Kempston interface second joystick variant and controls joystick I/O.
Sprite Attribute Upload$xx57Uploads sprite positions, visibility, colour type and effect flags.
Sprite Pattern Upload$xx5BUsed to upload the pattern of the selected sprite.
Datagear DMA Port$xx6BControls zxnDMA chip
SpecDrum DAC Output$xxDFOutput to SpecDrum DAC.
ULA Control Port$xxFEControls border color and base Spectrum audio settings.
Timex Sinclair Video Mode Control$xxFFControls Timex Sinclair video modes and colours in hi-res mode.

Next/TBBlue Feature Control Registers

Specific features of the Next are controlled via these register numbers, accessed via TBBlue Register Select ($243B / 9275) and TBBlue Register Access ($253B / 9531).

 NumberReadableWritableDescription
Machine ID Register$00truefalseIdentifies TBBlue board type. Should always be 10 (binary 0000 1010) on Next.
Core Version Register$01truefalseIdentifies core (FPGA image) version.
Next Reset Register$02truetrueIdentifies type of last reset. Can be written to force reset.
Machine Type Register$03truetrueIdentifies timing and machine type.
Config Mapping Register$04falsetrueIn config mode, allows RAM to be mapped to ROM area.
Peripheral 1 Register$05truetrueSets joystick mode, video frequency and Scandoubler.
Peripheral 2 Register$06truetrueEnables CPU Speed key, DivMMC, Multiface, Mouse and AY audio.
CPU Speed Register$07truetrueSets CPU Speed, reads actual speed.
Peripheral 3 Register$08truetrueABC/ACB Stereo, Internal Speaker, SpecDrum, Timex Video Modes, Turbo Sound Next, RAM contention and [un]lock 128k paging.
Peripheral 4 Register$09truetrueSets scanlines, AY mono output, Sprite-id lockstep, reset DivMMC mapram and disable HDMI audio.
Peripheral 5 Register$0AtruetrueMultiface type, Divmmc automap, Mouse buttons and DPI config
Joystick I/O Mode$0BtruetrueJoystick port I/O control
Core Version Register (sub minor)$0EtruefalseIdentifies core (FPGA image) version (sub minor number).
Board ID$0FtruefalseSpectrum next issue ID
Anti-brick Register$10truetrueUsed within the Anti-brick system.
Video Timing Register$11truetrueSets video output timing variant.
Layer 2 RAM Page Register$12truetrueSets the bank number where Layer 2 video memory begins.
Layer 2 RAM Shadow Page Register$13truetrueSets the bank number where the Layer 2 shadow screen begins.
Global Transparency Register$14truetrueSets the "transparent" colour for Layer 2, ULA and LoRes pixel data.
Sprite and Layers System Register$15truetrueEnables/disables Sprites and Lores Layer, and chooses priority of sprites and Layer 2.
Layer 2 X Offset Register$16truetrueSets the pixel offset used for drawing Layer 2 graphics on the screen.
Layer 2 Y Offset Register$17truetrueSets the Y offset used when drawing Layer 2 graphics on the screen.
Clip Window Layer 2 Register$18truetrueSets and reads clip-window for Layer 2.
Clip Window Sprites Register$19truetrueSets and reads clip-window for Sprites
Clip Window ULA/LoRes Register$1AtruetrueSets and reads clip-window for ULA/LoRes layer.
Clip Window Tilemap Register$1BtruetrueSets and reads clip-window for Tilemap.
Clip Window Control Register$1CtruetrueControls (resets) the clip-window registers indices.
Active Video Line MSB Register$1EtruefalseHolds the MSB (only, as bit 0) of the raster line currently being drawn.
Active Video Line LSB Register$1FtruefalseHolds the eight LSBs of the raster line currently being drawn.
Generate Maskable Interrupt$20truetrueTrigger interrupt
Video Line Interrupt Control Register$22truetrueControls the timing of raster interrupts and the ULA frame interrupt.
Video Line Interrupt Value Register$23truetrueHolds the eight LSBs of the line on which a raster interrupt should occur.
Reserved$24falsefalsen/a
ULA X Offset Register$26truetruePixel X offset (0..255) to use when drawing ULA Layer.
ULA Y Offset Register$27truetruePixel Y offset (0..191) to use when drawing ULA Layer.
Keymap High Address Register$28truetruePS/2 Keymap address MSB, read (pending) first byte of palette colour
Keymap Low Address Register$29falsetruePS/2 Keymap address LSB.
Keymap High Data Register$2AfalsetrueHigh data to PS/2 Keymap (MSB of data in bit 0)
Keymap Low Data Register$2BfalsetrueLow eight LSBs of PS/2 Keymap data.
DAC B (left) mirror Register$2CtruetrueDAC B mirror, read current I2S left MSB
DAC A+D (mono) mirror Register$2DtruetrueSpecDrum port 0xDF / DAC A+D mirror, read current I2S LSB
DAC C (right) mirror Register$2EtruetrueDAC C mirror, read current I2S right MSB
Tilemap Offset X MSB Register$2FtruetrueSets the pixel offset (two high bits) used for drawing Tilemap graphics on the screen.
Tilemap Offset X LSB Register$30truetrueSets the pixel offset (eight low bits) used for drawing Tilemap graphics on the screen.
Tilemap Offset Y Register$31truetrueSets the pixel offset used for drawing Tilemap graphics on the screen.
LoRes X Offset Register$32truetruePixel X offset (0..255) to use when drawing LoRes Layer.
LoRes Y Offset Register$33truetruePixel Y offset (0..191) to use when drawing LoRes Layer.
Sprite port-mirror Index Register$34truetrueSelects sprite index 0..127 to be affected by writes to other Sprite ports (and mirrors).
Sprite port-mirror Attribute 0 Register$35falsetrueNextreg port-mirror to write directly into "byte 1" of Sprite Attribute Upload ($xx57 / 87).
Sprite port-mirror Attribute 1 Register$36falsetrueNextreg port-mirror to write directly into "byte 2" of Sprite Attribute Upload ($xx57 / 87).
... further results