Board feature control

From SpecNext official Wiki
Revision as of 18:57, 14 August 2017 by wiki>Hyphz
Jump to: navigation, search
 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