<!-- PDF page 236 -->

#### [?]

<table>
<thead>
<tr><th>Group Name</th><th>R</th><th>W</th><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th><th>Description</th><th>H</th><th>D</th></tr>
</thead>
<tbody>
<tr><td>Coordinate (X<sub>beg</sub>,X<sub>end</sub>,Y<sub>beg</sub>,Y<sub>end</sub>)</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value X<sub>beg</sub>,X<sub>end</sub>,Y<sub>beg</sub>,Y<sub>end</sub> coordinate¹</td><td></td><td>*</td></tr>
</tbody>
</table>

1 1<sup>st</sup> Write **X**<sub>beg</sub> position – \*Resets to **0**\
2<sup>nd</sup> Write **X**<sub>end</sub> position – \*Resets to **255**\
3<sup>rd</sup> Write **Y**<sub>beg</sub> position – \*Resets to **0**\
4<sup>rh</sup> Write **Y**<sub>end</sub> 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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Coordinate (X<sub>beg</sub>,X<sub>end</sub>,Y<sub>beg</sub>,Y<sub>end</sub>)</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value X<sub>beg</sub>,X<sub>end</sub>,Y<sub>beg</sub>,Y<sub>end</sub> coordinate¹</td><td></td><td>*</td></tr>
</tbody>
</table>

1 1<sup>st</sup> Write **X**<sub>beg</sub> position – \*Resets to **0**\
2<sup>nd</sup> Write **X**<sub>end</sub> position – \*Resets to **255**\
3<sup>rd</sup> Write **Y**<sub>beg</sub> position – \*Resets to **0**\
4<sup>rh</sup> Write **Y**<sub>end</sub> 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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Coordinate (X<sub>beg</sub>,X<sub>end</sub>,Y<sub>beg</sub>,Y<sub>end</sub>)</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value X<sub>beg</sub>,X<sub>end</sub>,Y<sub>beg</sub>,Y<sub>end</sub> coordinate¹</td><td></td><td>*</td></tr>
</tbody>
</table>

¹ 1<sup>st</sup> Write **X**<sub>beg</sub> position – \*Resets to **0**\
2<sup>nd</sup> Write **X**<sub>end</sub> position – \*Resets to **159**\
3<sup>rd</sup> Write **Y**<sub>beg</sub> position – \*Resets to **0**\
4<sup>rh</sup> Write **Y**<sub>end</sub> 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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Layer 2 Clip Index</td><td>■</td><td></td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>•</td><td>•</td><td>Layer 2 Clip Index (0 – 3)</td><td></td><td></td></tr>
<tr><td>Sprites Layer Clip Index</td><td>■</td><td></td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>•</td><td>•</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Sprites Clip Index (0 – 3)</td><td></td><td></td></tr>
<tr><td>Layer 0 / 1 Clip Index</td><td>■</td><td></td><td>[colour: pink]</td><td>[colour: pink]</td><td>•</td><td>•</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>ULA / Timex Clip Index (0 – 3)</td><td></td><td></td></tr>
<tr><td>Layer 3 Clip Index</td><td>■</td><td></td><td>•</td><td>•</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Tilemap Clip Index (0 – 3)</td><td></td><td></td></tr>
<tr><td>Reserved</td><td></td><td>■</td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Reserved, must be 0</td><td></td><td></td></tr>
<tr><td>Layer 2 Clip Index Reset enable</td><td></td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>•</td><td>1 to Reset the Layer 2 Clip Index</td><td></td><td></td></tr>
<tr><td>Sprites Clip Index Reset enable</td><td></td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>•</td><td>[colour: pink]</td><td>1 to Reset the Sprites Clip Index</td><td></td><td></td></tr>
<tr><td>Layer 0/1 Clip Idx Reset enable</td><td></td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>•</td><td>[colour: pink]</td><td>[colour: pink]</td><td>1 to Reset the ULA/Timex Clip Index</td><td></td><td></td></tr>
<tr><td>Layer 3 Clip Idx Reset enable</td><td></td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>•</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>1 to Reset the Tilemap Clip Index</td><td></td><td></td></tr>
</tbody>
</table>

**NOTE:** This NextREG may change in the future

#### NextREG 30 (1Eh) – Active Video Line MSB

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Active Video Line (MSB)</td><td>■</td><td></td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>•</td><td>1 for lines above 255 else 0</td><td></td><td></td></tr>
<tr><td>Reserved</td><td>■</td><td></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: pink]</td><td>Reserved, must be 0</td><td></td><td></td></tr>
</tbody>
</table>

#### NextREG 31 (1Fh) – Active Video Line LSB

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Active Video Line (LSB)</td><td>■</td><td></td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>Active Video Line (LSB)</td><td></td><td></td></tr>
</tbody>
</table>

#### NextREG 32 (20h) – Maskable Interrupt Generation

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td rowspan="5">CTC</td><td rowspan="5">■</td><td rowspan="5">■</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>0</td><td>0</td><td>0</td><td>0</td><td>No CTC interrupt generated</td><td rowspan="5"></td><td rowspan="5"></td></tr>
<tr><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>•</td><td>Generate CTC 0 interrupt</td></tr>
<tr><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>•</td><td>[colour: pink]</td><td>Generate CTC 1 interrupt</td></tr>
<tr><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>•</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Generate CTC 2 interrupt</td></tr>
<tr><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>•</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Generate CTC 3 interrupt</td></tr>
<tr><td>Reserved</td><td>■</td><td>■</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Reserved, must be 0</td><td></td><td></td></tr>
<tr><td>ULA</td><td>■</td><td>■</td><td>[colour: pink]</td><td>•</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Generate ULA interrupt</td><td></td><td></td></tr>
<tr><td>Line</td><td>■</td><td>■</td><td>•</td><td>[colour: pink]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Generate Line interrupt</td><td></td><td></td></tr>
</tbody>
</table>

\* 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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Line Interrupt Value MSB</td><td>■</td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>•</td><td>MSB of line number</td><td></td><td>0</td></tr>
<tr><td>Line Interrupt Control</td><td>■</td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>•</td><td>[colour: pink]</td><td>Enable Line Interrupt*</td><td></td><td>0</td></tr>
<tr><td>ULA Interrupt Control</td><td>■</td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>•</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Disable ULA Interrupt*</td><td></td><td>0</td></tr>
<tr><td rowspan="2">Reserved</td><td></td><td>■</td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Reserved, must be 0</td><td></td><td></td></tr>
<tr><td>■</td><td></td><td>[colour: light green]</td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>Reserved, must be 0</td><td></td><td></td></tr>
<tr><td>ULA Interrupt Signal</td><td>■</td><td></td><td>•</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>[colour: pink]</td><td>ULA is currently asserting interrupt</td><td></td><td></td></tr>
</tbody>
</table>

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

#### NextREG 35 (23h) – Line Interrupt Value LSB

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Line Interrupt Value LSB</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>Lower 8-bits of line number</td><td></td><td>0</td></tr>
</tbody>
</table>

#### NextREG 36 (24h) – Reserved

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

#### [?]

<table>
<thead>
<tr><th>Group Name</th><th>R</th><th>W</th><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th><th>Description</th><th>H</th><th>D</th></tr>
</thead>
<tbody>
<tr><td>X Offset</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value of X Offset (0-255)</td><td></td><td>0</td></tr>
</tbody>
</table>

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Y Offset</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value of Y Offset (0-191)</td><td></td><td>0</td></tr>
</tbody>
</table>

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

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Stored Palette value</td><td>■</td><td></td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>See NextREG 68 (44h)</td><td></td><td></td></tr>
<tr><td>PS/2 Keymap Address MSB</td><td></td><td>■</td><td>[colour: pink]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>•</td><td>MSB of value in NR 41 (29h)</td><td></td><td></td></tr>
<tr><td rowspan="2">Keymap Selection</td><td rowspan="2"></td><td rowspan="2">■</td><td>0</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>Select PS/2 Keymap</td><td rowspan="2"></td><td rowspan="2">0</td></tr>
<tr><td>1</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: pink]</td><td>Select key joystick</td></tr>
<tr><td>Reserved</td><td></td><td>■</td><td>[colour: pink]</td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: pink]</td><td>Reserved, must be 0</td><td></td><td></td></tr>
</tbody>
</table>

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>PS/2 Keymap Address LSB</td><td></td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value (0-255)</td><td></td><td>0</td></tr>
</tbody>
</table>

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>PS/2 Keymap Data MSB</td><td></td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>•</td><td>PS/2 Keymap Data MSB*</td><td></td><td></td></tr>
<tr><td>Reserved</td><td></td><td>■</td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: pink]</td><td>Reserved, must be 0</td><td></td><td></td></tr>
</tbody>
</table>

\* Not currently used by hardware. Write **0**

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>PS/2 Keymap Data LSB</td><td></td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value (0-255)</td><td></td><td></td></tr>
</tbody>
</table>

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>I²S Left Sample MSB</td><td>■</td><td></td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value (0-255)</td><td></td><td></td></tr>
<tr><td>8-bit sample Left DAC B</td><td></td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value</td><td></td><td>*</td></tr>
</tbody>
</table>

\* 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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>I²S Last Sample LSB</td><td>■</td><td></td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value (0-255)</td><td></td><td></td></tr>
<tr><td>8-bit sample DACs A + D</td><td></td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value</td><td></td><td>*</td></tr>
</tbody>
</table>

\* 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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>I²S Right Sample MSB</td><td>■</td><td></td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value (0-255)</td><td></td><td></td></tr>
<tr><td>8-bit sample Right DAC C</td><td></td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value</td><td></td><td>*</td></tr>
</tbody>
</table>

\* 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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Layer 3 X Scroll Offset MSB</td><td>■</td><td>■</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>[colour: dark green]</td><td>•</td><td>•</td><td>Tilemap X Scroll Offset MSB</td><td></td><td>0</td></tr>
<tr><td>Reserved</td><td></td><td>■</td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: dark green] <b>0</b></td><td>[colour: pink]</td><td>[colour: pink]</td><td>Reserved, must be 0</td><td></td><td></td></tr>
</tbody>
</table>

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>X Offset LSB</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value (0-255)</td><td></td><td><b>0</b></td></tr>
</tbody>
</table>

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Y Offset</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value (0-255)</td><td></td><td><b>0</b></td></tr>
</tbody>
</table>

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>X Offset</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value of X Offset (0-255)</td><td></td><td>0</td></tr>
</tbody>
</table>

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

<table>
<thead>
<tr><th rowspan="2">Group Name</th><th rowspan="2">R</th><th rowspan="2">W</th><th colspan="8">Data Bits</th><th rowspan="2">Description</th><th rowspan="2">H</th><th rowspan="2">D</th></tr>
<tr><th>7</th><th>6</th><th>5</th><th>4</th><th>3</th><th>2</th><th>1</th><th>0</th></tr>
</thead>
<tbody>
<tr><td>Y Offset</td><td>■</td><td>■</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>•</td><td>8-bit value of Y Offset (0-191)</td><td></td><td>0</td></tr>
</tbody>
</table>

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

