1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-09-29 16:55:59 +00:00

More clarity tweaks.

This commit is contained in:
Thomas Harte 2020-12-10 22:47:11 -05:00
parent 5d8f284757
commit 159924dcc0
2 changed files with 10 additions and 11 deletions

View File

@ -33,9 +33,9 @@ template <typename Machine> class AuxiliaryMemorySwitches {
/// Describes banking state between $0200 and $BFFF. /// Describes banking state between $0200 and $BFFF.
struct MainState { struct MainState {
struct Region { struct Region {
/// @c true indicates auxiliary memory should be read from in this region; @c false indicates that main memory should be used. /// @c true indicates auxiliary memory should be read from; @c false indicates main.
bool read = false; bool read = false;
/// @c true indicates auxiliary memory should be written to in this region; @c false indicates that main memory should be used. /// @c true indicates auxiliary memory should be written to; @c false indicates main.
bool write = false; bool write = false;
}; };

View File

@ -433,8 +433,6 @@ class MemoryMap {
regions[region_map[zone]].flags |= Region::IsShadowed; \ regions[region_map[zone]].flags |= Region::IsShadowed; \
} }
printf("Shadowing: %02x\n", shadow_register_);
// Relevant bits: // Relevant bits:
// //
// b5: inhibit shadowing, text page 2 [if ROM 03; as if always set otherwise] // b5: inhibit shadowing, text page 2 [if ROM 03; as if always set otherwise]
@ -469,11 +467,14 @@ class MemoryMap {
assert(region_map[0x030c] == region_map[0x0308]+1); assert(region_map[0x030c] == region_map[0x0308]+1);
// Hi-res graphics Page 1, main and auxiliary — $2000$4000; // Hi-res graphics Page 1, main and auxiliary — $2000$4000;
// also part of the super high-res graphics page. // also part of the super high-res graphics page on odd pages.
//
// Even test applied:
// high-res graphics page 1 inhibit bit alone is definitive.
//
// Odd test:
// (high-res graphics inhibit or auxiliary high res graphics inhibit) _and_ (super high-res inhibit).
// //
// Test applied: both the graphics page inhibit and, on odd
// pages, the super high-res inhibit must be applied to inhibit
// this area.
apply(shadow_register_ & 0x02, 0x0020); apply(shadow_register_ & 0x02, 0x0020);
apply((shadow_register_ & 0x12) && (shadow_register_ & 0x08), 0x0120); apply((shadow_register_ & 0x12) && (shadow_register_ & 0x08), 0x0120);
apply((shadow_register_ & 0x02) || inhibit_all_pages, 0x0220); apply((shadow_register_ & 0x02) || inhibit_all_pages, 0x0220);
@ -486,9 +487,7 @@ class MemoryMap {
// Hi-res graphics Page 2, main and auxiliary — $4000$6000; // Hi-res graphics Page 2, main and auxiliary — $4000$6000;
// also part of the super high-res graphics page. // also part of the super high-res graphics page.
// //
// Test applied: both the graphics page inhibit and, on odd // Test applied: much like that for page 1.
// pages, the super high-res inhibit must be applied to inhibit
// this area.
apply(shadow_register_ & 0x04, 0x0040); apply(shadow_register_ & 0x04, 0x0040);
apply((shadow_register_ & 0x14) && (shadow_register_ & 0x08), 0x0140); apply((shadow_register_ & 0x14) && (shadow_register_ & 0x08), 0x0140);
apply((shadow_register_ & 0x04) || inhibit_all_pages, 0x0240); apply((shadow_register_ & 0x04) || inhibit_all_pages, 0x0240);