mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-23 20:29:42 +00:00
Fixes various IIe video deficiencies.
Specifically: * the double-high resolution switches should be read/write; and * the other IIe-specific switches should cause a video update for real-time effect.
This commit is contained in:
parent
e07447eb9a
commit
de68e70246
@ -519,10 +519,11 @@ template <bool is_iie> class ConcreteMachine:
|
||||
// Write-only switches. All IIe as currently implemented.
|
||||
if(is_iie) {
|
||||
switch(address) {
|
||||
default: break;
|
||||
default: printf("Write %04x?\n", address); break;
|
||||
|
||||
case 0xc000:
|
||||
case 0xc001:
|
||||
update_video();
|
||||
video_->set_80_store(!!(address&1));
|
||||
set_main_paging();
|
||||
break;
|
||||
@ -561,13 +562,16 @@ template <bool is_iie> class ConcreteMachine:
|
||||
break;
|
||||
|
||||
case 0xc00c:
|
||||
case 0xc00d: video_->set_80_columns(!!(address&1)); break;
|
||||
case 0xc00d:
|
||||
update_video();
|
||||
video_->set_80_columns(!!(address&1));
|
||||
break;
|
||||
|
||||
case 0xc00e:
|
||||
case 0xc00f: video_->set_alternative_character_set(!!(address&1)); break;
|
||||
|
||||
case 0xc05e:
|
||||
case 0xc05f: video_->set_double_high_resolution(!(address&1)); break;
|
||||
case 0xc00f:
|
||||
update_video();
|
||||
video_->set_alternative_character_set(!!(address&1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -606,6 +610,14 @@ template <bool is_iie> class ConcreteMachine:
|
||||
set_main_paging();
|
||||
break;
|
||||
|
||||
case 0xc05e:
|
||||
case 0xc05f:
|
||||
if(is_iie) {
|
||||
update_video();
|
||||
video_->set_double_high_resolution(!(address&1));
|
||||
}
|
||||
break;
|
||||
|
||||
case 0xc010:
|
||||
keyboard_input_ &= 0x7f;
|
||||
if(string_serialiser_) {
|
||||
|
Loading…
Reference in New Issue
Block a user