[?]

Group NameRW76543210DescriptionHD
Coordinate (Xbeg,Xend,Ybeg,Yend)■■••••••••8-bit value Xbeg,Xend,Ybeg,Yend coordinate¹*

1 1st Write Xbeg position – *Resets to 0
2nd Write Xend position – *Resets to 255
3rd Write Ybeg position – *Resets to 0
4rh Write Yend position – *Resets to 191
Reads do not advance the clip position – Use NR 28 (1Ch) D2:D3 to read the position. If need be, write to NR 28 (1Ch):D1 to reset the clip index. When the clip window is enabled for sprites in over border mode, the X coordinates are internally doubled and the clip window origin is moved to the sprite origin inside the border

NextREG 26 (1Ah) – Layer 0 (ULA/LoRes) Clip Window Definition

Group NameRWData BitsDescriptionHD
76543210
Coordinate (Xbeg,Xend,Ybeg,Yend)■■••••••••8-bit value Xbeg,Xend,Ybeg,Yend coordinate¹*

1 1st Write Xbeg position – *Resets to 0
2nd Write Xend position – *Resets to 255
3rd Write Ybeg position – *Resets to 0
4rh Write Yend position – *Resets to 191
Reads do not advance the clip position – Use NR 28 (1Ch) D4:D5 to read the position. If need be, write to NR 28 (1Ch):D2 to reset the clip index
NOTE: LoRes may get a separate clip window in the future

NextREG 27 (1Bh) – Layer 3 (Tilemap) Clip Window Definition

Group NameRWData BitsDescriptionHD
76543210
Coordinate (Xbeg,Xend,Ybeg,Yend)■■••••••••8-bit value Xbeg,Xend,Ybeg,Yend coordinate¹*

¹ 1st Write Xbeg position – *Resets to 0
2nd Write Xend position – *Resets to 159
3rd Write Ybeg position – *Resets to 0
4rh Write Yend position – *Resets to 255
Reads do not advance the clip position – NR 28 (1Ch) D6:D7 reads the position. If need be, write to NR 28 (1Ch):D3 to reset the clip index and then do consecutive writes and reads to get to the value you're searching for. The X coordinates are internally doubled

NextREG 28 (1Ch) – Clip Windows Control

Group NameRWData BitsDescriptionHD
76543210
Layer 2 Clip Index■colour: pink colour: pink colour: pink colour: pink colour: pink colour: pink ••Layer 2 Clip Index (0 – 3)
Sprites Layer Clip Index■colour: pink colour: pink colour: pink colour: pink ••colour: pink colour: pink Sprites Clip Index (0 – 3)
Layer 0 / 1 Clip Index■colour: pink colour: pink ••colour: pink colour: pink colour: pink colour: pink ULA / Timex Clip Index (0 – 3)
Layer 3 Clip Index■••colour: pink colour: pink colour: pink colour: pink colour: pink colour: pink Tilemap Clip Index (0 – 3)
Reserved■colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: pink colour: pink colour: pink colour: pink Reserved, must be 0
Layer 2 Clip Index Reset enable■colour: dark green colour: dark green colour: dark green colour: dark green colour: pink colour: pink colour: pink •1 to Reset the Layer 2 Clip Index
Sprites Clip Index Reset enable■colour: dark green colour: dark green colour: dark green colour: dark green colour: pink colour: pink •colour: pink 1 to Reset the Sprites Clip Index
Layer 0/1 Clip Idx Reset enable■colour: dark green colour: dark green colour: dark green colour: dark green colour: pink •colour: pink colour: pink 1 to Reset the ULA/Timex Clip Index
Layer 3 Clip Idx Reset enable■colour: dark green colour: dark green colour: dark green colour: dark green •colour: pink colour: pink colour: pink 1 to Reset the Tilemap Clip Index

NOTE: This NextREG may change in the future

NextREG 30 (1Eh) – Active Video Line MSB

Group NameRWData BitsDescriptionHD
76543210
Active Video Line (MSB)■colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green •1 for lines above 255 else 0
Reserved■colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: pink Reserved, must be 0

NextREG 31 (1Fh) – Active Video Line LSB

Group NameRWData BitsDescriptionHD
76543210
Active Video Line (LSB)■••••••••Active Video Line (LSB)

NextREG 32 (20h) – Maskable Interrupt Generation

Group NameRWData BitsDescriptionHD
76543210
CTC■■colour: pink colour: pink colour: dark green colour: dark green 0000No CTC interrupt generated
colour: pink colour: pink colour: dark green colour: dark green colour: pink colour: pink colour: pink •Generate CTC 0 interrupt
colour: pink colour: pink colour: dark green colour: dark green colour: pink colour: pink •colour: pink Generate CTC 1 interrupt
colour: pink colour: pink colour: dark green colour: dark green colour: pink •colour: pink colour: pink Generate CTC 2 interrupt
colour: pink colour: pink colour: dark green colour: dark green •colour: pink colour: pink colour: pink Generate CTC 3 interrupt
Reserved■■colour: pink colour: pink colour: dark green 0colour: dark green 0colour: pink colour: pink colour: pink colour: pink Reserved, must be 0
ULA■■colour: pink •colour: dark green colour: dark green colour: pink colour: pink colour: pink colour: pink Generate ULA interrupt
Line■■•colour: pink colour: dark green colour: dark green colour: pink colour: pink colour: pink colour: pink Generate Line interrupt

* Set bits on R indicate whether an interrupt occurred or is pending – alias of bits in NextREGs 200 - 202 (C8h - CAh)
* Set bits on W always generate a maskable interrupt ignoring enables – NextREGs 196 - 198 (C4h - C6h)

NextREG 34 (22h) – Line Interrupt Control

Group NameRWData BitsDescriptionHD
76543210
Line Interrupt Value MSB■■colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: pink colour: pink •MSB of line number0
Line Interrupt Control■■colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: pink •colour: pink Enable Line Interrupt*0
ULA Interrupt Control■■colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green •colour: pink colour: pink Disable ULA Interrupt*0
Reserved■colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: pink colour: pink colour: pink Reserved, must be 0
■colour: light green colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: pink colour: pink colour: pink Reserved, must be 0
ULA Interrupt Signal■•colour: dark green colour: dark green colour: dark green colour: dark green colour: pink colour: pink colour: pink ULA is currently asserting interrupt

* Aliases of interrupt enable bits in NextREG 196 (C4h)

NextREG 35 (23h) – Line Interrupt Value LSB

Group NameRWData BitsDescriptionHD
76543210
Line Interrupt Value LSB■■••••••••Lower 8-bits of line number0

NextREG 36 (24h) – Reserved

Protection against OUT 3Bh, A – See DISCiPLE disk interface for example.
In legacy modes set selected NextREG to 36 (24h)

[?]

Group NameRW76543210DescriptionHD
X Offset■■••••••••8-bit value of X Offset (0-255)0

This setting refers to all ULA modes except Layer 1,0 – LoRes
NextREG 104 (68h):D2 adds a half pixel to the scroll

NextREG 39 (27h) – ULA Vertical Scroll Control

Group NameRWData BitsDescriptionHD
76543210
Y Offset■■••••••••8-bit value of Y Offset (0-191)0

This setting refers to all ULA modes except Layer 1,0 – LoRes

NextREG 40 (28h) – Stored Palette Value and PS/2 Keymap Address MSB

Group NameRWData BitsDescriptionHD
76543210
Stored Palette value■••••••••See NextREG 68 (44h)
PS/2 Keymap Address MSB■colour: pink colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green •MSB of value in NR 41 (29h)
Keymap Selection■0colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: pink Select PS/2 Keymap0
1colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: pink Select key joystick
Reserved■colour: pink colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: pink Reserved, must be 0

NextREG 41 (29h) – PS/2 Keymap Address LSB

Group NameRWData BitsDescriptionHD
76543210
PS/2 Keymap Address LSB■••••••••8-bit value (0-255)0

NextREG 42 (2Ah) – PS/2 Keymap Data MSB

Group NameRWData BitsDescriptionHD
76543210
PS/2 Keymap Data MSB■colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green •PS/2 Keymap Data MSB*
Reserved■colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: pink Reserved, must be 0

* Not currently used by hardware. Write 0

NextREG 43 (2Bh) – PS/2 Keymap Data LSB

Group NameRWData BitsDescriptionHD
76543210
PS/2 Keymap Data LSB■••••••••8-bit value (0-255)

A write causes the data to be written and auto-increments the Keymap Address

NextREG 44 (2Ch) – DAC B Mirror (Left) / I²S Left Sample MSB

Group NameRWData BitsDescriptionHD
76543210
I²S Left Sample MSB■••••••••8-bit value (0-255)
8-bit sample Left DAC B■••••••••8-bit value*

* A soft reset sets a value of 128 (80h)
The I²S Left Sample LSB is latched and can be read from NextREG 45 (2Dh) later

NextREG 45 (2Dh) – DAC A+D Mirror (Mono) / I²S Sample LSB

Group NameRWData BitsDescriptionHD
76543210
I²S Last Sample LSB■••••••••8-bit value (0-255)
8-bit sample DACs A + D■••••••••8-bit value*

* A soft reset sets a value of 128 (80h)
Returns the LSB of last sample read from NextREG 44(2Ch) or NextREG 46(2Eh)

NextREG 46 (2Eh) – DAC C Mirror (Right) / I²S Right Sample MSB

Group NameRWData BitsDescriptionHD
76543210
I²S Right Sample MSB■••••••••8-bit value (0-255)
8-bit sample Right DAC C■••••••••8-bit value*

* A soft reset sets a value of 128 (80h)
The I²S Right Sample LSB is latched and can be read from NextREG 45 (2Dh) later

NextREG 47 (2Fh) – Layer 3 (Tilemap) Horizontal Scroll Control MSB

Group NameRWData BitsDescriptionHD
76543210
Layer 3 X Scroll Offset MSB■■colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green colour: dark green ••Tilemap X Scroll Offset MSB0
Reserved■colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: dark green 0colour: pink colour: pink Reserved, must be 0

Meaningful range: 0 to 319 in 40 tiles mode, 0 to 639 in 80 tiles mode

NextREG 48 (30h) – Layer 3 (Tilemap) Horizontal Scroll Control LSB

Group NameRWData BitsDescriptionHD
76543210
X Offset LSB■■••••••••8-bit value (0-255)0

Meaningful range: 0 to 319 in 40 tiles mode, 0 to 639 in 80 tiles mode

NextREG 49 (31h) – Layer 3 (Tilemap) Vertical Scroll Control

Group NameRWData BitsDescriptionHD
76543210
Y Offset■■••••••••8-bit value (0-255)0

NextREG 50 (32h) – Layer 1,0 (LoRes) Horizontal Scroll Control

Group NameRWData BitsDescriptionHD
76543210
X Offset■■••••••••8-bit value of X Offset (0-255)0

Layer 1,0 (LoRes) scrolls in half-pixels at the same resolution and smoothness as Layer 2

NextREG 51 (33h) – Layer 1,0 (LoRes) Vertical Scroll Control

Group NameRWData BitsDescriptionHD
76543210
Y Offset■■••••••••8-bit value of Y Offset (0-191)0

Layer 1,0 (LoRes) scrolls in half-pixels at the same resolution and smoothness as Layer 2


ZX Spectrum Next User Manual, 3rd Edition (ISBN 978-1-5272-5496-1), written and illustrated by Phoebus R. Dokos. Copyright © 2020-2024 Phoebus Dokos / SpecNext Ltd. Licensed under CC BY-NC-SA 4.0. This is a transcription and can contain errors; check any doubt against the printed page.