Keymap High Address Register: Difference between revisions

From SpecNext Wiki
Jump to: navigation, search
Ped7g (talk | contribs)
core 3.0 changes/refresh
Ped7g (talk | contribs)
core 3.0 changes/refresh
Line 3: Line 3:
|Readable=Yes
|Readable=Yes
|Writable=Yes
|Writable=Yes
|ShortDesc=High address of Keymap (MSB in bit 0), read palette half-value from $44
|ShortDesc=High address of Keymap (MSB in bit 0), read (pending) first byte of palette colour
}}
}}
Write:
Write:
Line 11: Line 11:
Read:
Read:


   bits 7:0 = Stored palette value from {{NextRegNo|$44}}
   bits 7:0 = Stored first-byte palette value from {{NextRegNo|$44}}


This value does update right after writing first 8 bits of colour to NextReg $44, while the palette entry is modified only after the second write (adding ninth bit and L2 priority bit) is done. So half-written value can't be read back through {{NextRegNo|$41}}, but can be read with this register.
This value does update right after writing first 8 bits of colour to NextReg $44, while the real palette entry is modified only after the second write (adding ninth bit and L2 priority bit) is done. So half-written value can't be read back through {{NextRegNo|$41}}, but can be read with this register (after writing second byte to $44, this register still reads the first byte value, but the change is also committed to the palette itself and visible by reading $41 + $44 registers).

Revision as of 16:16, 11 November 2019

Number TBRegisterNumber::$28
Readable TBRegisterReadable::Yes
Writable TBRegisterWritable::Yes
Short Description ShortDesc::High address of Keymap (MSB in bit 0), read (pending) first byte of palette colour

Write:

 bits 7:1 = Reserved, must be 0
 bit 0 = MSB keymap address

Read:

 bits 7:0 = Stored first-byte palette value from {{#ask:

TBRegisterNumber::$44 }} ($44)

This value does update right after writing first 8 bits of colour to NextReg $44, while the real palette entry is modified only after the second write (adding ninth bit and L2 priority bit) is done. So half-written value can't be read back through {{#ask: TBRegisterNumber::$41 }} ($41), but can be read with this register (after writing second byte to $44, this register still reads the first byte value, but the change is also committed to the palette itself and visible by reading $41 + $44 registers).