mirror of
https://github.com/V2RetroComputing/analog.git
synced 2025-02-21 12:29:04 +00:00
VGA mode bugfixes
AUX page was being selected due to an errant && where a & should have been. IIe and IIgs registers were being written during read cycles.
This commit is contained in:
parent
e76ecd19b3
commit
7eb8ea3ede
@ -21,7 +21,7 @@ static inline void __time_critical_func(shadow_memory)(uint32_t address, uint32_
|
|||||||
// Shadow parts of the Apple's memory by observing the bus write cycles
|
// Shadow parts of the Apple's memory by observing the bus write cycles
|
||||||
if((value & (1u << CONFIG_PIN_APPLEBUS_RW-CONFIG_PIN_APPLEBUS_DATA_BASE)) == 0) {
|
if((value & (1u << CONFIG_PIN_APPLEBUS_RW-CONFIG_PIN_APPLEBUS_DATA_BASE)) == 0) {
|
||||||
// Mirror Video Memory from MAIN & AUX banks
|
// Mirror Video Memory from MAIN & AUX banks
|
||||||
if(terminal_switches && TERMINAL_AUX_WRITE) {
|
if(terminal_switches & TERMINAL_AUX_WRITE) {
|
||||||
if((address >= 0x400) && (address < 0xC00)) {
|
if((address >= 0x400) && (address < 0xC00)) {
|
||||||
private_memory[address] = value & 0xff;
|
private_memory[address] = value & 0xff;
|
||||||
} else if((address >= 0x2000) && (address < 0x6000)) {
|
} else if((address >= 0x2000) && (address < 0x6000)) {
|
||||||
@ -78,11 +78,11 @@ static inline void __time_critical_func(shadow_memory)(uint32_t address, uint32_
|
|||||||
terminal_switches |= TERMINAL_80COL;
|
terminal_switches |= TERMINAL_80COL;
|
||||||
break;
|
break;
|
||||||
case 0x22:
|
case 0x22:
|
||||||
if(terminal_switches & TERMINAL_IIGS_REGS)
|
if((terminal_switches & TERMINAL_IIGS_REGS) && ((value & (1u << CONFIG_PIN_APPLEBUS_RW-CONFIG_PIN_APPLEBUS_DATA_BASE)) == 0))
|
||||||
terminal_tbcolor = value & 0xff;
|
terminal_tbcolor = value & 0xff;
|
||||||
break;
|
break;
|
||||||
case 0x34:
|
case 0x34:
|
||||||
if(terminal_switches & TERMINAL_IIGS_REGS)
|
if((terminal_switches & TERMINAL_IIGS_REGS) && ((value & (1u << CONFIG_PIN_APPLEBUS_RW-CONFIG_PIN_APPLEBUS_DATA_BASE)) == 0))
|
||||||
terminal_border = value & 0x0f;
|
terminal_border = value & 0x0f;
|
||||||
break;
|
break;
|
||||||
case 0x50:
|
case 0x50:
|
||||||
|
@ -16,7 +16,9 @@ void render_init() {
|
|||||||
// Initialize the character generator ROM
|
// Initialize the character generator ROM
|
||||||
memcpy(character_rom, default_character_rom, sizeof(character_rom));
|
memcpy(character_rom, default_character_rom, sizeof(character_rom));
|
||||||
soft_switches = 0;
|
soft_switches = 0;
|
||||||
terminal_switches = TERMINAL_TEST;
|
terminal_switches = TERMINAL_TEST | TERMINAL_IIE_REGS | TERMINAL_IIGS_REGS;
|
||||||
|
terminal_tbcolor = 0x0f;
|
||||||
|
terminal_border = 0x00;
|
||||||
|
|
||||||
render_test_init();
|
render_test_init();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user