mirror of
https://github.com/TomHarte/CLK.git
synced 2025-02-21 05:29:13 +00:00
Stubs in $c010.
Also reduces memory map logging.
This commit is contained in:
parent
cc6c0d535c
commit
46ee98639e
@ -19,6 +19,15 @@ uint8_t GLU::get_keyboard_data() {
|
|||||||
return 0x00;
|
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() {
|
uint8_t GLU::get_mouse_data() {
|
||||||
// Alternates between returning x and y values.
|
// Alternates between returning x and y values.
|
||||||
//
|
//
|
||||||
|
@ -20,12 +20,14 @@ class GLU {
|
|||||||
uint8_t get_keyboard_data();
|
uint8_t get_keyboard_data();
|
||||||
uint8_t get_mouse_data();
|
uint8_t get_mouse_data();
|
||||||
uint8_t get_modifier_status();
|
uint8_t get_modifier_status();
|
||||||
|
uint8_t get_any_key_down();
|
||||||
|
|
||||||
uint8_t get_data();
|
uint8_t get_data();
|
||||||
uint8_t get_status();
|
uint8_t get_status();
|
||||||
|
|
||||||
void set_command(uint8_t);
|
void set_command(uint8_t);
|
||||||
void set_status(uint8_t);
|
void set_status(uint8_t);
|
||||||
|
void clear_key_strobe();
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -234,7 +234,7 @@ class ConcreteMachine:
|
|||||||
if(!is_read) video_.set_alternative_character_set(address & 1);
|
if(!is_read) video_.set_alternative_character_set(address & 1);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// ADB.
|
// ADB and keyboard.
|
||||||
case 0xc000:
|
case 0xc000:
|
||||||
if(is_read) {
|
if(is_read) {
|
||||||
*value = adb_glu_.get_keyboard_data();
|
*value = adb_glu_.get_keyboard_data();
|
||||||
@ -242,6 +242,12 @@ class ConcreteMachine:
|
|||||||
video_.set_80_store(false);
|
video_.set_80_store(false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 0xc010:
|
||||||
|
adb_glu_.clear_key_strobe();
|
||||||
|
if(is_read) {
|
||||||
|
*value = adb_glu_.get_any_key_down() ? 0x80 : 0x00;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 0xc024:
|
case 0xc024:
|
||||||
if(is_read) {
|
if(is_read) {
|
||||||
*value = adb_glu_.get_mouse_data();
|
*value = adb_glu_.get_mouse_data();
|
||||||
|
@ -275,8 +275,6 @@ class MemoryMap {
|
|||||||
e0_region.read = language_state.read ? ram : rom;
|
e0_region.read = language_state.read ? ram : rom;
|
||||||
e0_region.write = language_state.write ? nullptr : ram;
|
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 assumptions made above re: memory layout.
|
||||||
assert(region_map[bank_base | 0xd0] + 1 == region_map[bank_base | 0xe0]);
|
assert(region_map[bank_base | 0xd0] + 1 == region_map[bank_base | 0xe0]);
|
||||||
assert(region_map[bank_base | 0xe0] == region_map[bank_base | 0xff]);
|
assert(region_map[bank_base | 0xe0] == region_map[bank_base | 0xff]);
|
||||||
@ -292,7 +290,6 @@ class MemoryMap {
|
|||||||
};
|
};
|
||||||
|
|
||||||
if(inhibit_banks0001) {
|
if(inhibit_banks0001) {
|
||||||
printf("Language card: disabled!\n");
|
|
||||||
set_no_card(0x0000);
|
set_no_card(0x0000);
|
||||||
set_no_card(0x0100);
|
set_no_card(0x0100);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user