Misc tweaks

This commit is contained in:
David Kuder 2023-05-04 22:48:39 -04:00
parent c8b4ce9631
commit 4bff5c15b5
3 changed files with 24 additions and 11 deletions

View File

@ -1,6 +1,6 @@
#define BUILDDATE 0x20230502 #define BUILDDATE 0x20230504
#define BUILDID 0x0182 #define BUILDID 0x0187
#define BUILDSTR " 2 May 2023 Build 0182" #define BUILDSTR " 4 May 2023 Build 0187"
#ifdef ANALOG_GS #ifdef ANALOG_GS
#define HWSTRING " V2 Analog GS Rev1" #define HWSTRING " V2 Analog GS Rev1"

View File

@ -761,10 +761,18 @@ void DELAYED_COPY_CODE(config_handler)() {
break; break;
case 'R': case 'R':
// Reboot and bypass auto-detection of machine type. switch(config_cmdbuf[1]) {
cfg_machine = current_machine; default:
write_config(true); retval = REPLY_ECMD;
flash_reboot(); break;
case 'b':
// Reboot and bypass auto-detection of machine type.
cfg_machine = current_machine;
read_config();
write_config(true);
flash_reboot();
break;
}
break; break;
case 'I': case 'I':

View File

@ -55,9 +55,12 @@ void __time_critical_func(vga_businterface)(uint32_t address, uint32_t value) {
return; return;
} }
} }
// Nothing left to do for RAM accesses.
if(address < 0xc000) return;
// Shadow the soft-switches by observing all read & write bus cycles // Shadow the soft-switches by observing all read & write bus cycles
if((address & 0xff80) == 0xc000) { if(address < 0xc080) {
switch(address & 0x7f) { switch(address & 0x7f) {
case 0x00: case 0x00:
if((internal_flags & (IFLAGS_IIGS_REGS | IFLAGS_IIE_REGS)) && ACCESS_WRITE) { if((internal_flags & (IFLAGS_IIGS_REGS | IFLAGS_IIE_REGS)) && ACCESS_WRITE) {
@ -210,7 +213,7 @@ void __time_critical_func(vga_businterface)(uint32_t address, uint32_t value) {
break; break;
} }
} else if(romx_unlocked == 3) { } else if(romx_unlocked == 3) {
if((address & 0xFFF0) == 0xF810) { if((address >> 4) == 0xF81) {
romx_textbank = address & 0xF; romx_textbank = address & 0xF;
} }
if(address == 0xF851) { if(address == 0xF851) {
@ -237,10 +240,10 @@ void __time_critical_func(vga_businterface)(uint32_t address, uint32_t value) {
break; break;
} }
} else if(romx_unlocked == 3) { } else if(romx_unlocked == 3) {
if((address & 0xFFF0) == 0xCFD0) { if((address >> 4) == 0xCFD) {
romx_textbank = address & 0xF; romx_textbank = address & 0xF;
} }
if((address & 0xFFF0) == 0xCFE0) { if((address >> 4) == 0xCFE) {
romx_changed = 1; romx_changed = 1;
romx_unlocked = 0; romx_unlocked = 0;
} }
@ -299,10 +302,12 @@ void __time_critical_func(vga_businterface)(uint32_t address, uint32_t value) {
apple_memory[address] = (terminal_fifo_rdptr - terminal_fifo_wrptr); apple_memory[address] = (terminal_fifo_rdptr - terminal_fifo_wrptr);
break; break;
case 0x0B: case 0x0B:
#if 0
if((value & 0xFF) <= 0x27) { if((value & 0xFF) <= 0x27) {
romx_textbank = (value & 0xFF); romx_textbank = (value & 0xFF);
romx_changed = 1; romx_changed = 1;
} }
#endif
break; break;
case 0x0C: case 0x0C:
apple_memory[address] = value; apple_memory[address] = value;