1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-29 00:29:34 +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.
struct MainState {
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;
/// @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;
};

View File

@ -433,8 +433,6 @@ class MemoryMap {
regions[region_map[zone]].flags |= Region::IsShadowed; \
}
printf("Shadowing: %02x\n", shadow_register_);
// Relevant bits:
//
// 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);
// 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_ & 0x12) && (shadow_register_ & 0x08), 0x0120);
apply((shadow_register_ & 0x02) || inhibit_all_pages, 0x0220);
@ -486,9 +487,7 @@ class MemoryMap {
// Hi-res graphics Page 2, main and auxiliary — $4000$6000;
// also part of the super high-res graphics page.
//
// Test applied: both the graphics page inhibit and, on odd
// pages, the super high-res inhibit must be applied to inhibit
// this area.
// Test applied: much like that for page 1.
apply(shadow_register_ & 0x04, 0x0040);
apply((shadow_register_ & 0x14) && (shadow_register_ & 0x08), 0x0140);
apply((shadow_register_ & 0x04) || inhibit_all_pages, 0x0240);