mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-23 05:29:23 +00:00
Merge pull request #1297 from TomHarte/InverseText
Fix Apple II inverse text errors.
This commit is contained in:
commit
8a85ef8426
@ -39,7 +39,7 @@ template <typename TimeUnit> class VideoSwitches {
|
||||
set of potential flashing characters and alternate video modes.
|
||||
*/
|
||||
VideoSwitches(bool is_iie, TimeUnit delay, std::function<void(TimeUnit)> &&target) : delay_(delay), deferrer_(std::move(target)) {
|
||||
character_zones_[0].xor_mask = 0;
|
||||
character_zones_[0].xor_mask = 0xff;
|
||||
character_zones_[0].address_mask = 0x3f;
|
||||
character_zones_[1].xor_mask = 0;
|
||||
character_zones_[1].address_mask = 0x3f;
|
||||
@ -49,7 +49,7 @@ template <typename TimeUnit> class VideoSwitches {
|
||||
character_zones_[3].address_mask = 0x3f;
|
||||
|
||||
if(is_iie) {
|
||||
character_zones_[0].xor_mask =
|
||||
character_zones_[1].xor_mask =
|
||||
character_zones_[2].xor_mask =
|
||||
character_zones_[3].xor_mask = 0xff;
|
||||
character_zones_[2].address_mask =
|
||||
@ -88,7 +88,7 @@ template <typename TimeUnit> class VideoSwitches {
|
||||
|
||||
if(alternative_character_set) {
|
||||
character_zones_[1].address_mask = 0xff;
|
||||
character_zones_[1].xor_mask = 0;
|
||||
character_zones_[1].xor_mask = 0xff;
|
||||
} else {
|
||||
character_zones_[1].address_mask = 0x3f;
|
||||
character_zones_[1].xor_mask = flash_mask();
|
||||
@ -286,7 +286,9 @@ template <typename TimeUnit> class VideoSwitches {
|
||||
// Update character set flashing; flashing is applied only when the alternative
|
||||
// character set is not selected.
|
||||
flash_ = (flash_ + 1) % (2 * flash_length);
|
||||
character_zones_[1].xor_mask = flash_mask() * !internal_.alternative_character_set;
|
||||
if(!internal_.alternative_character_set) {
|
||||
character_zones_[1].xor_mask = flash_mask();
|
||||
}
|
||||
}
|
||||
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user