1
0
mirror of https://github.com/TomHarte/CLK.git synced 2025-02-16 18:30:32 +00:00

Adds some extra notes, starts getting into trying to run the IIgs.

This commit is contained in:
Thomas Harte 2020-10-27 22:09:45 -04:00
parent ad93ad6018
commit 0a91ac5af5
2 changed files with 11 additions and 2 deletions

View File

@ -85,11 +85,12 @@ class ConcreteMachine:
forceinline Cycles perform_bus_operation(const CPU::WDC65816::BusOperation operation, const uint32_t address, uint8_t *const value) {
const auto &region = MemoryMapRegion(memory_, address);
printf("%06x\n", address);
if(region.flags & MemoryMap::Region::IsIO) {
// TODO: all IO accesses.
assert(false);
} else {
// TODO: branching below is predicated on the idea that an extra 64kb of scratch write area
// and 64kb of 0xffs would be worse than branching due to the data set increase. Verify that?
if(isReadOperation(operation)) {
MemoryMapRead(region, address, value);
} else {

View File

@ -204,6 +204,11 @@ class MemoryMap {
}
}
void access(uint16_t address, bool is_read) {
auxiliary_switches_.access(address, is_read);
if(address &0xfff0 == 0xc080) language_card_.access(address, is_read);
}
private:
Apple::II::AuxiliaryMemorySwitches<MemoryMap> auxiliary_switches_;
Apple::II::LanguageCardSwitches<MemoryMap> language_card_;
@ -436,6 +441,9 @@ class MemoryMap {
// adjust as required.
};
// TODO: branching below on region.read/write is predicated on the idea that extra scratch space
// would be less efficient. Verify that?
#define MemoryMapRegion(map, address) map.regions[map.region_map[address >> 8]]
#define MemoryMapRead(region, address, value) *value = region.read ? region.read[address] : 0xff
#define MemoryMapWrite(map, region, address, value) \