Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

KEGS 1.32 - More compatibility fixes

74 views
Skip to first unread message

Kent Dickey

unread,
Nov 25, 2023, 11:58:13 AM11/25/23
to
I've released a new version of KEGS v1.32, an Apple IIgs emulator for Mac,
Windows, and Linux at: http://kegs.sourceforge.net/

Changes in KEGS v1.32 since v1.31 (11/22/23)
- Fix (dloc,x) in emulation mode to wrap as described at
https://github.com/gilyon/snes-tests/tree/main/cputest
- Improve virtual hard drive in slot 7 to use a small driver at $C700 which
uses WDM $C7,$00 to call back to KEGS for handling commands.
- Improve SCC8530 emulation to add support for RTxC as clock for higher speeds.
- Fix a GS/OS visual anomaly with the mouse cursor sometimes disappearing
when moving upwards, due to Scanline interrupts not being taken
properly.
- Support qkumba's code to run from $C050 by having get_remaing_opcodes()
track time properly, and to have reads to $C050-$C057 call float_bus()
before doing the softswitch action.

Kent

Hugh Hood

unread,
Nov 26, 2023, 10:52:12 PM11/26/23
to
Kent,

Thanks for taking care of the visual anomaly with the mouse cursor. It's
working well now.

I've had one strange thing crop up in KEGS 1.32 under Windows 10 that I
cannot duplicate in 1.31 and 1.30 --

To duplicate it:

1. Launch KEGS and boot into the GS/OS Finder;
2. Hit the 'F4' key to enter the configuration menu;
3. Hit 'escape' key to exit the configuration menu;
4. Press 'return'.

When you go back to the emulated GS' Finder window, KEGS throws up a
Code RED.

I first noticed this when I was testing various high speed serial port
drivers for compatibility and performance now that KEGS recognizes
sourcing the emulated SCC clock from RTxC.

At first I thought I had introduced something strange with the serial
drivers, but that turned out not to be the case.

FWIW, I plan to put up on my site this week the following GS/OS port
drivers (with source code) in the hope that someone in addition to me
could test them:

1. Port1Dvr57600
2. Port1Dvr115200
3. Port1Dvr230400

4. Port2Dvr57600
5. Port2Dvr115200
6. Port2Dvr230400

I'm able to test the 115,200 baud driver on both the emulated IIgs and
also on a real IIgs with a serially-connected LaserJet, but the LaserJet
maxes out at a 115,200 baud rate so I can't test the highest speed in a
'real' setting. Plus, I don't think you've added 230,400 baud support to
KEGS.

These drivers are all based on Burger Becky Heineman's original Freeware
'Printer57.6' port driver from 1991. I corrected a couple of issues in
the original 57,600 baud one, and then added some code in the others to
increase the baud rates.

I tested a 52,000 line, 922,000 character, 177 printable page PostScript
file this evening with the 115200 driver and got around 20,000 CPS.
That's amazing speed. No, I didn't print it to an actual printer, but
instead had set up an ncat server that received the input from KEGS and
then saved it to a file.

Finally, I offer a hat tip to Ewen Wannop. His BrkDown disassembler did
a great job disassembling Heineman's original port driver and
reconstructing usable source code.

Kent, assuming these drivers don't have major flaws, I'll include them
with the materials you asked.




Hugh Hood

Hugh Hood

unread,
Nov 27, 2023, 11:59:36 AM11/27/23
to
I can confirm the same behavior running KEGS 1.32 under MacOS.

Other than the RED condition, everything seems to run fine, though.




Hugh Hood

Jerry Penner

unread,
Nov 27, 2023, 7:23:01 PM11/27/23
to
100% reproducible on the Linux (x86-64) build for 1.32.


--
Jerry jerry+a2 at jpen.ca

Kent Dickey

unread,
Dec 10, 2023, 10:35:52 PM12/10/23
to
KEGS 1.33 fixes this problem. When using the menu item to leave the
config panel, KEGS could get confused since KEGS tries to "pause" all
Apple II processing when at the config panel. But in this case, the
code unpauses the Apple II processing at a bad time. The fix was just
to get out early. F4 doesn't have this problem since it changes the
setting at a different point in the main loop.

Kent
0 new messages