1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-25 18:30:07 +00:00

Stubs in $c010.

Also reduces memory map logging.
This commit is contained in:
Thomas Harte 2020-11-04 21:35:11 -05:00
parent cc6c0d535c
commit 46ee98639e
4 changed files with 18 additions and 4 deletions

View File

@ -19,6 +19,15 @@ uint8_t GLU::get_keyboard_data() {
return 0x00;
}
void GLU::clear_key_strobe() {
// Clears the key strobe of the classic Apple II serial keyboard register.
}
uint8_t GLU::get_any_key_down() {
// The Apple IIe check-for-any-key-down bit.
return 0x00;
}
uint8_t GLU::get_mouse_data() {
// Alternates between returning x and y values.
//

View File

@ -20,12 +20,14 @@ class GLU {
uint8_t get_keyboard_data();
uint8_t get_mouse_data();
uint8_t get_modifier_status();
uint8_t get_any_key_down();
uint8_t get_data();
uint8_t get_status();
void set_command(uint8_t);
void set_status(uint8_t);
void clear_key_strobe();
};
}

View File

@ -234,7 +234,7 @@ class ConcreteMachine:
if(!is_read) video_.set_alternative_character_set(address & 1);
break;
// ADB.
// ADB and keyboard.
case 0xc000:
if(is_read) {
*value = adb_glu_.get_keyboard_data();
@ -242,6 +242,12 @@ class ConcreteMachine:
video_.set_80_store(false);
}
break;
case 0xc010:
adb_glu_.clear_key_strobe();
if(is_read) {
*value = adb_glu_.get_any_key_down() ? 0x80 : 0x00;
}
break;
case 0xc024:
if(is_read) {
*value = adb_glu_.get_mouse_data();

View File

@ -275,8 +275,6 @@ class MemoryMap {
e0_region.read = language_state.read ? ram : rom;
e0_region.write = language_state.write ? nullptr : ram;
if(!bank_base) printf("eo region read: %d!\n", language_state.read);
// Assert assumptions made above re: memory layout.
assert(region_map[bank_base | 0xd0] + 1 == region_map[bank_base | 0xe0]);
assert(region_map[bank_base | 0xe0] == region_map[bank_base | 0xff]);
@ -292,7 +290,6 @@ class MemoryMap {
};
if(inhibit_banks0001) {
printf("Language card: disabled!\n");
set_no_card(0x0000);
set_no_card(0x0100);
} else {