Difference between revisions of "Layer 2 RAM Page Register"

From SpecNext official Wiki
Jump to: navigation, search
(core 3.0.7 changes/refresh)
 
(8 intermediate revisions by 5 users not shown)
Line 3: Line 3:
 
|Readable=Yes
 
|Readable=Yes
 
|Writable=Yes
 
|Writable=Yes
|ShortDesc=Sets the "SRAM page"(?) used by Layer 2 for video memory.
+
|ShortDesc=Sets the [[Memory map|bank]] number where Layer 2 video memory begins.
 
}}
 
}}
 +
Bits 6-0 store the number of the "SRAM page" (ie, [[Memory map|bank]]) used for the standard Layer 2 screen. The default is 8. Because the layer 2 screen is 48kiB, it actually occupies 3 banks, and the number set here is the first; so by default, it occupies banks 8-10. Then later NextZXOS does reconfigure both this and shadow bank to 9 (banks 9-11). (bit 7 is reserved, use always 0)
  
Bits 5-0 store the number of the "SRAM page" used for the standard Layer 2 screen. The default is 8.
+
For shadow bank paging see [[Layer_2]] and {{NextRegNo|$13}}.
  
It is not clear what an "SRAM page" actually is. It does not correspond to a "bank" in standard memory management because Layer 2 is too big to fit into a single bank (it is $BFFF big while a regular bank is $3FFF).
+
Note that this register uses the 16kiB bank method, so if you set Nextreg $12,$C if you need to read the contents via 8kb banks you would need to multiply x 2 (16k bank $0C is identical to 8k pages $18 and $19).
 +
 
 +
Valid values are 0 to 109 (with 2MiB SRAM memory extension, 0 to 45 with default 1MiB memory).
 +
 
 +
The new 320x256x8 and 640x256x4 Layer 2 modes require 80kiB of memory, i.e. five 16k banks. The valid values are then 0 to 107 (2MiB extended) or 0 to 43 with default 1MiB model.

Latest revision as of 14:52, 15 January 2020

Number $12
Readable Yes
Writable Yes
Short Description Sets the bank number where Layer 2 video memory begins.

Bits 6-0 store the number of the "SRAM page" (ie, bank) used for the standard Layer 2 screen. The default is 8. Because the layer 2 screen is 48kiB, it actually occupies 3 banks, and the number set here is the first; so by default, it occupies banks 8-10. Then later NextZXOS does reconfigure both this and shadow bank to 9 (banks 9-11). (bit 7 is reserved, use always 0)

For shadow bank paging see Layer_2 and Layer 2 RAM Shadow Page Register ($13).

Note that this register uses the 16kiB bank method, so if you set Nextreg $12,$C if you need to read the contents via 8kb banks you would need to multiply x 2 (16k bank $0C is identical to 8k pages $18 and $19).

Valid values are 0 to 109 (with 2MiB SRAM memory extension, 0 to 45 with default 1MiB memory).

The new 320x256x8 and 640x256x4 Layer 2 modes require 80kiB of memory, i.e. five 16k banks. The valid values are then 0 to 107 (2MiB extended) or 0 to 43 with default 1MiB model.