mirror of
https://github.com/david-schmidt/gsport.git
synced 2025-01-30 04:33:47 +00:00
David Schmidt
d1b556c5c5
Fix from Kent Dickey on the WAI instruction
Fantavision hangs when it starts on KEGS-based emulators (which includes GSport and GSplus) due to a bug in the way KEGS handles the WAI instruction. Fantavision masks interrupts with SEI, sets a SHR line interrupt, and then does a WAI instruction. This hangs KEGS since it expects an actual interrupt to end the WAI, but there won't be one since interrupts are masked. I never realized this was a valid WAI use case. The fix is easy. In `instable.h`, change: ``` instcb_SYM /* WAI */ g_wait_pending = 1; CYCLES_FINISH ``` (There may be some stale #ifdef ASM code, just ignore that) to: ``` instcb_SYM /* WAI */ if(g_irq_pending) { g_wait_pending = 0; INC_KPC_1; } else { g_wait_pending = 1; } ``` Kent
GSport: an Apple IIgs Emulator
GSport is a portable (in the programming sense) Apple IIgs emulator, based on the KEGS cross-platform IIgs emulator by Kent Dickey. The base emulator builds and runs on all of the same platforms that KEGS did, and the new capabilities are being integrated as contributors have time and interest. Full documentation is available at the GSport website here.
Project Goals
The main goal for GSport is to provide a free, open ecosystem for the continuation of cross-platform development of IIgs emulation.
Some interesting advances that initially spawned this project are Uthernet and printer support. Now that those objectives are met, we will move on to the next objectives. Do you have something that you wish a GS emulator did? Dive in and contribute!
Languages
C
85.5%
C++
9.7%
Assembly
3.5%
Makefile
0.7%
Batchfile
0.3%
Other
0.2%