mirror of
https://github.com/TomHarte/CLK.git
synced 2025-01-11 08:30:55 +00:00
Permit MSX RAM mapper readback.
This commit is contained in:
parent
19d03dd4fd
commit
1f4d526ea5
@ -595,6 +595,13 @@ class ConcreteMachine:
|
||||
*cycle.value = clock_.read(next_clock_register_);
|
||||
break;
|
||||
|
||||
case 0xfc: case 0xfd: case 0xfe: case 0xff:
|
||||
if constexpr (model != Target::Model::MSX1) {
|
||||
*cycle.value = ram_mapper_[(address & 0xff) - 0xfc];
|
||||
break;
|
||||
}
|
||||
[[fallthrough]];
|
||||
|
||||
default:
|
||||
// printf("Unhandled read %02x\n", address & 0xff);
|
||||
*cycle.value = 0xff;
|
||||
@ -643,6 +650,8 @@ class ConcreteMachine:
|
||||
break;
|
||||
}
|
||||
|
||||
ram_mapper_[port - 0xfc] = *cycle.value;
|
||||
|
||||
// Apply to RAM.
|
||||
//
|
||||
// On a real MSX this may also affect other slots.
|
||||
@ -877,6 +886,7 @@ class ConcreteMachine:
|
||||
// 8kb resolution is used by some cartride titles.
|
||||
const uint8_t *read_pointers_[8];
|
||||
uint8_t *write_pointers_[8];
|
||||
uint8_t ram_mapper_[4]{};
|
||||
|
||||
/// Optionally attaches non-default logic to any of the four things selectable
|
||||
/// via the primary slot register.
|
||||
|
Loading…
x
Reference in New Issue
Block a user