mirror of
https://github.com/TomHarte/CLK.git
synced 2025-01-12 00:30:31 +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.
|
// Write-only switches. All IIe as currently implemented.
|
||||||
if(is_iie) {
|
if(is_iie) {
|
||||||
switch(address) {
|
switch(address) {
|
||||||
default: break;
|
default: printf("Write %04x?\n", address); break;
|
||||||
|
|
||||||
case 0xc000:
|
case 0xc000:
|
||||||
case 0xc001:
|
case 0xc001:
|
||||||
|
update_video();
|
||||||
video_->set_80_store(!!(address&1));
|
video_->set_80_store(!!(address&1));
|
||||||
set_main_paging();
|
set_main_paging();
|
||||||
break;
|
break;
|
||||||
@ -561,13 +562,16 @@ template <bool is_iie> class ConcreteMachine:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xc00c:
|
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 0xc00e:
|
||||||
case 0xc00f: video_->set_alternative_character_set(!!(address&1)); break;
|
case 0xc00f:
|
||||||
|
update_video();
|
||||||
case 0xc05e:
|
video_->set_alternative_character_set(!!(address&1));
|
||||||
case 0xc05f: video_->set_double_high_resolution(!(address&1)); break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -606,6 +610,14 @@ template <bool is_iie> class ConcreteMachine:
|
|||||||
set_main_paging();
|
set_main_paging();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0xc05e:
|
||||||
|
case 0xc05f:
|
||||||
|
if(is_iie) {
|
||||||
|
update_video();
|
||||||
|
video_->set_double_high_resolution(!(address&1));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 0xc010:
|
case 0xc010:
|
||||||
keyboard_input_ &= 0x7f;
|
keyboard_input_ &= 0x7f;
|
||||||
if(string_serialiser_) {
|
if(string_serialiser_) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user