It's only been 16 years since the last release, but I was thinking I should >release my current version of KEGS in anticipation of Nox Archaist coming
out tomorrow.
KEGS is an Apple IIgs emulator for Mac OS X and Linux. There's an older >version for Win32, but I'm not updating that now. Most Apple II/II+/IIe/IIc >games and applications work as well.
KEGS v1.03 is available at: http://kegs.sourceforge.net
And as usual, full source code is included.
It would be better if Nox Archaist checked the header checksum before
writing the sector data. Real floppy disks do go bad, and extra checking
is a good idea.
GS/OS won't be able to use the mouse
when slot 4 is set to Your Card
In article,
Kent Dickey wrote:
It's only been 16 years since the last release, but I was thinking I should >release my current version of KEGS in anticipation of Nox Archaist coming >out tomorrow.
KEGS is an Apple IIgs emulator for Mac OS X and Linux. There's an older >version for Win32, but I'm not updating that now. Most Apple II/II+/IIe/IIc >games and applications work as well.
KEGS v1.03 is available at: http://kegs.sourceforge.net
And as usual, full source code is included.KEGS by default has a problem with the 5.25" disk images of Nox Archaist. The fix is to turn off "Fast Disk emulation" by pressing Shift-F7 anytime after starting KEGS, but before you make any selections at the game's main menu.
------------------------------------------------------------------------
The details: KEGS's fast disk emulation was to avoid having KEGS slow
down to access the 5.25" disk--it could run at full speed and still access the disk. In this mode, KEGS ignores the disk cycle timing and just reads the
"next" byte off of the disk whenever software gets around to reading it.
And for writing, it similarly just writes bytes to the disk image ignoring cycle timing.
Each sector on a 5.25" disk consists of sync bytes (at least 5 bytes of 0xff written each 40usec, instead of the usual 32usec), then the sector header D5 AA 96. Then there's the sector information: 2 bytes for volume, 2 bytes for track, 2 bytes for physical sector number, then 2 bytes for checksum. Then DE
AA EB, then 5-6 sync bytes written at 40usec timing, then the data starts with
D5 AA AD, then the data.
DOS3.3/ProDOS/etc, read all of the header data, including the checksum,
and may read the DE byte as well. So then, when they get around to doing the write, KEGS in fast disk emulation mode just begins writing at the disk
byte right after the last one read by software, regardless of how much "time"
passes.
Nox Archaist works differently. It doesn't read the header checksum when writing a sector. It reads the volume, track, and sector number, then does a small delay loop $24 times, then begins writing the 0xff sync bytes and the sector data. This will wait a total of 186 clocks, which is 5.8 disk nibbles,
and then begin writing the sync bytes, D5 AA AD and then sector data.
So the checksum, and DE AA EB will have passed by. But not with fast disk emulation in KEGS. Instead, KEGS with fast disk emulation enabled would overwrite the checksum bytes with the new sync bytes, and so corrupt the sector header.
And KEGS 1.03 defaults to fast disk emulation on. I've changed that so it's now disabled by default, and this will be the default in KEGS from now on.
It would be better if Nox Archaist checked the header checksum before writing the sector data. Real floppy disks do go bad, and extra checking
is a good idea.
Kent
It's only been 16 years since the last release, but I was thinking I should release my current version of KEGS in anticipation of Nox Archaist coming
out tomorrow.
On Saturday, 12 December 2020 at 22:02:39 UTC, Kent Dickey wrote:[ snip ]
Nox Archaist works differently. It doesn't read the header checksum when
writing a sector. It reads the volume, track, and sector number, then does a >> small delay loop $24 times, then begins writing the 0xff sync bytes and the >> sector data. This will wait a total of 186 clocks, which is 5.8 disk nibbles,
and then begin writing the sync bytes, D5 AA AD and then sector data.
So the checksum, and DE AA EB will have passed by. But not with fast disk
emulation in KEGS. Instead, KEGS with fast disk emulation enabled would
overwrite the checksum bytes with the new sync bytes, and so corrupt the
sector header.
And KEGS 1.03 defaults to fast disk emulation on. I've changed that so it's >> now disabled by default, and this will be the default in KEGS from now on. >>
It would be better if Nox Archaist checked the header checksum before
writing the sector data. Real floppy disks do go bad, and extra checking
is a good idea.
Kent
I read this and immediately worried, as AppleWin (in a similar 'Fast
Disk Emulation' mode) does something similar to what you describe.
But surely this isn't an issue for 2 reasons:
1) If Qkumba's ProRWTS doesn't read the two 4&4 checksum nibbles, then
why does it matter if they get stomped on? IE. the RWTS code never
checks them, nor does it write them (they are only written once during
the disk INIT/FORMAT).
2) When the emulator commits the "dirty" (written) track to the file
(.dsk image), then just don't check the 4&4 checksum. (OK, this is
obviously dependent on the emulator's implementation.)
I quickly eyeballed the AppleWin code. I've not stepped the code, but it >appears to ignore cycle timings in 'Fast Disk Emulation' mode when in
write mode (for .dsk/nib images - but not ignored for .woz), so I assume
it will also stomp on the 4&4 checksum (and epilogue DE nibbles). Then
when AppleWin commits the dirty track to .dsk file, it'll just use the
4&4 sector (ignoring the checksum) and the 343 nibbles of 6&2 data. So
for a .dsk, the 343 nibbles get decoded to 256 bytes, and the sector >determines the location in the 4KiB track.
Tom
I have a 64 bit Mac, but cannot open the Kegs app. Using 10.7.5.
What is the minimum OS?
In article <342db52b-4d6a-4f62...@googlegroups.com>,
I am Rob wrote:
I have a 64 bit Mac, but cannot open the Kegs app. Using 10.7.5.
What is the minimum OS?Sadly, Apple "obsoletes" software very fast. I have no good mechanism
for compiling and running on modern OS'es and ones 8 years old. If
someone knows how to do this easily, I'm all ears.
I compiled KEGS for 10.15, "Catalina". I suspect it won't work on 10.7.
You may want to use KEGS.0.91, also on the website. That was built for
10.3 (if I remember right), so it should definitely work for you.
Kent
On Tuesday, December 15, 2020 at 2:00:33 PM UTC-6, Kent Dickey wrote:
In article <342db52b-4d6a-4f62...@googlegroups.com>,
I am Rob wrote:
I have a 64 bit Mac, but cannot open the Kegs app. Using 10.7.5.Sadly, Apple "obsoletes" software very fast. I have no good mechanism
What is the minimum OS?
for compiling and running on modern OS'es and ones 8 years old. If
someone knows how to do this easily, I'm all ears.
I compiled KEGS for 10.15, "Catalina". I suspect it won't work on 10.7.
You may want to use KEGS.0.91, also on the website. That was built for
10.3 (if I remember right), so it should definitely work for you.
Kent
I swap between GSPort and SWEET16 right now, but was hoping to get the
new KEGS working at the emulated speed of 1 Ghz. GSPort caps out at 250
Mhz (which is still pretty fast). SWEET16 tops out at 100 Mhz. Mostly >wanted the speed of KEGS to do graphics compression.
Although I don't believe SWEET16 works on the newer OSes yet, At least
KEGS will give me a reason to upgrade now.
In article <a67abad6-1d87-4f24...@googlegroups.com>,
TomCh wrote:
On Saturday, 12 December 2020 at 22:02:39 UTC, Kent Dickey wrote:[ snip ]
KEGS always slows down to 1MHz during writing, even with fast disk emulation. But that's only once writing has started, so it doesn't help this case.
On Tuesday, 15 December 2020 at 00:08:33 UTC, Kent Dickey wrote:
In article <a67abad6-1d87-4f24...@googlegroups.com>,Why does KEGS slow down to 1MHz during writing?
TomCh wrote:
On Saturday, 12 December 2020 at 22:02:39 UTC, Kent Dickey wrote:[ snip ]
KEGS always slows down to 1MHz during writing, even with fast disk emulation.
But that's only once writing has started, so it doesn't help this case.
Tom
There's no magic change in KEGS to make it faster--it's basically the same code. Two things have occurred--CPUs have gotten more efficient at executing code (so, new machines are faster), and compilers have gotten better at making the KEGS inner loop work better. And the Apple M1 chip is even faster--giving it a 33% edge over anything else I've run on.
On an old machine running 10.7.5, you're not going to get 1GHz emulation speed.
New KEGS is basically for Catalina and later, since Apple dropped 32-bit compatibility, and so 32-bit KEGS no longer runs. KEGS now uses Swift for
the UI code on Mac builds, so you'll need to move to a somewhat new Mac OS
to run it. And Apple has thrown a lot of roadblocks in the way--new OS'es have upped their hardware requirements, so your 10.7.5 system probably cannot go too high. If you can, go to Mojave (10.14), which still gives you
32-bit app compatibility. But make sure your system is compatible first.
On an average modern Mac, I'd suspect you'll get around 400-500MHz emulated speed. I would be curious to collect KEGS speed data if anyone wants to report it from various Mac models and Linux machines.
Basically, if on a Mac, KEGS.0.91 works for you (or GSPort, or whatever),
you should stick with it. If KEGS on the Mac stopped working for you because of no 32-bit compatibility on new OS'es, move to KEGS.1.03+.
But even if it could run, would there be a speed difference between the 32-bit and 64-bit apps?
I would be curious to collect KEGS speed data if anyone wants
to report it from various Mac models and Linux machines.
I compiled KEGS for 10.15, "Catalina". I suspect it won't work on 10.7.
Le 15/12/2020 à 21:00, Kent Dickey a écrit :
I compiled KEGS for 10.15, "Catalina". I suspect it won't work on 10.7.
Do not work also on 10.13, that's bad.
JV
It's only been 16 years since the last release, but I was thinking I should release my current version of KEGS in anticipation of Nox Archaist coming
out tomorrow.
Le 18/12/2020 à 23:10, Jerome Vernet a écrit :
Le 15/12/2020 à 21:00, Kent Dickey a écrit :Got it built and running under 10.13. Don't forget to add all the >libSwiftLibrary dylib in a Frameworks folder inside the app, and use
I compiled KEGS for 10.15, "Catalina". I suspect it won't work on 10.7.
Do not work also on 10.13, that's bad.
JV
install_name_tool -add_rpath @executable_path/../Frameworks >./KEGSMAC.app/Contents/MacOS/KEGSMAC
to get them found.
Think that it could be run under at least 10.10 .
JV
I could see that when I told Xcode to build for 10.13 (for example), it would add some .dylib's to Frameworks inside KEGSMAC.app/, but I don't know
how to do that outside of Xcode (which is my preference) and how to
do this in an automatic build process. I don't know how to determine
which .dylibs are not valid for a given older OS and so need to be copied
in to the app. I guess I could just copy everything.
I also haven't looked up how to generate an executable that supports x86_64 and Apple silicon. I used to do this for PowerPC/x86, but that was pretty clearly documented and easy to do.
In article <rrja8m$o6j$1@gioia.aioe.org>,
Jerome Vernet <jeromevernet@hotmail.com> wrote:
Le 18/12/2020 23:10, Jerome Vernet a crit:
Le 15/12/2020 21:00, Kent Dickey a crit:Got it built and running under 10.13. Don't forget to add all the >>libSwiftLibrary dylib in a Frameworks folder inside the app, and use
I compiled KEGS for 10.15, "Catalina". I suspect it won't work on 10.7. >>>Do not work also on 10.13, that's bad.
JV
install_name_tool -add_rpath @executable_path/../Frameworks >>./KEGSMAC.app/Contents/MacOS/KEGSMAC
to get them found.
Think that it could be run under at least 10.10 .
JV
I am interested in fixing this, but I have no idea how to do anything you
are suggesting. Is there documentation on this I can read? Or can you
give more detailed steps?
I could see that when I told Xcode to build for 10.13 (for example), it would >add some .dylib's to Frameworks inside KEGSMAC.app/, but I don't know
how to do that outside of Xcode (which is my preference) and how to
do this in an automatic build process. I don't know how to determine
which .dylibs are not valid for a given older OS and so need to be copied
in to the app. I guess I could just copy everything.
I also haven't looked up how to generate an executable that supports x86_64 >and Apple silicon. I used to do this for PowerPC/x86, but that was pretty >clearly documented and easy to do.
Kent
Le 19/12/2020 à 07:21, Kent Dickey a écrit :
Is there any XCode Project for KEGS ?
On 15/12/2020 19.57, Kent Dickey wrote:
I would be curious to collect KEGS speed data if anyone wants
to report it from various Mac models and Linux machines.
On a 3.5 GHz i7-4770K, under Linux Mint 19.3 (after chasing a few >dependencies (libpulse-dev libx11-dev libxext-dev) to get it to build).
About 1750 MHz emulation, idling at an AppleSoft prompt.
About 600 MHz emulation, idling in GS/OS 6.0.4 Finder.
Apple has a very simple universal binary makefile here: >developer.apple.com/documentation/xcode/building_a_universal_macos_binary >which essentially involves compiling and linking twice, then using
lipo to merge them together.
In <f5GdncFqg7R8BkDCnZ2dnUU7-WvNnZ2d@giganews.com>
kegs@provalid.com (Kent Dickey) writes:
In article <rrja8m$o6j$1@gioia.aioe.org>,
Jerome Vernet <jeromevernet@hotmail.com> wrote:
Le 18/12/2020 23:10, Jerome Vernet a crit:
Le 15/12/2020 21:00, Kent Dickey a crit:Got it built and running under 10.13. Don't forget to add all the >>>libSwiftLibrary dylib in a Frameworks folder inside the app, and use
I compiled KEGS for 10.15, "Catalina". I suspect it won't work on 10.7. >>>>Do not work also on 10.13, that's bad.
JV
install_name_tool -add_rpath @executable_path/../Frameworks >>>./KEGSMAC.app/Contents/MacOS/KEGSMAC
to get them found.
Think that it could be run under at least 10.10 .
JV
I am interested in fixing this, but I have no idea how to do anything you >>are suggesting. Is there documentation on this I can read? Or can you >>give more detailed steps?
I could see that when I told Xcode to build for 10.13 (for example), it would >>add some .dylib's to Frameworks inside KEGSMAC.app/, but I don't know
how to do that outside of Xcode (which is my preference) and how to
do this in an automatic build process. I don't know how to determine
which .dylibs are not valid for a given older OS and so need to be copied >>in to the app. I guess I could just copy everything.
I also haven't looked up how to generate an executable that supports x86_64 >>and Apple silicon. I used to do this for PowerPC/x86, but that was pretty >>clearly documented and easy to do.
Kent
-------
ProLine: kelvin@pro-kegs
Le 19/12/2020 à 22:56, Jerome Vernet a écrit :
Le 19/12/2020 à 07:21, Kent Dickey a écrit :
Is there any XCode Project for KEGS ?
I made an XCode project for KEGS, it's building, but I need
Mainemenu.nib as an original .nib, not compiled nib. Or even better, as
.xib files (export form Xcode).
JV
In article <rrf7fk$1fta$1@gioia.aioe.org>,
Brian Patrie <bpatrie@bellsouth.spamisicky.net> wrote:
On 15/12/2020 19.57, Kent Dickey wrote:
I would be curious to collect KEGS speed data if anyone wants
to report it from various Mac models and Linux machines.
On a 3.5 GHz i7-4770K, under Linux Mint 19.3 (after chasing
a few dependencies (libpulse-dev libx11-dev libxext-dev) to
get it to build).
About 1750 MHz emulation, idling at an AppleSoft prompt.
About 600 MHz emulation, idling in GS/OS 6.0.4 Finder.
Unfortunately, idling at an Applesoft prompt is not a realistic
speed. Applesoft calls a monitor routine to read input, and it
reads the keyboard at $C000 very often--and that always takes one
full "slow" cycle per read, which KEGS tries to make take one
microsecond in real time as well. KEGS is fast enough that it
can do that more than 1 million times per second, so the
effective speed is infinite. KEGS limits its speed to 1.9GHz
currently (or about that), so you're just hitting that limit.
The Finder result is fine--that's a good indication of KEGS
running code. Alternatively, run an Applesoft program like this:
10 SUM = 0
20 FOR I = 1 to 345678
30 SUM = SUM + SIN(I)
40 NEXT
50 PRINT SUM
This will take 10-40 seconds, and the speed shown while it
runs is more indicative of the real speed. It doesn't really
matter what the BASIC code is doing, as long as it doesn't try
to read the keyboard much (and SIN() is pretty slow).
I find KEGS runs Applesoft at about ~95% of the finder speed,
so I expect your Applesoft speed will be about 550MHz if your
Finder speed is 600MHz.
Open XcodeThanks, it's working (need to remove some .c like to_pro, partls).
Select "Create a new Xcode Project"
...
In article <rro4ko$tj2$1@dont-email.me>,
OK, so they've modified lipo under Big Sur to merge the two executables together. I'll look into that once I update to Big Sur. I still don'tSeems that you need to build it on an older system...
know how to create an executable to run on older OS'es.
Alas, the link on http://kegs.sourceforge.net/ for KeGS v1.04.tar.gz is >invalid.
The 1.03 tarball is valid.
--
--
Jerry awanderin at gmail dot com
Hi,
I'm trying out KEGS 1.04 on BigSur, but need an idea to switch to
fullscreen, I tried the usual suspects F11 and Ctrl + F11. (and more :-)
)
I switched off the "F11 - desktop show" under shortcuts inside my system >settings.
thanks
Stephan
Le 25/01/2021 à 06:08, Kent Dickey a écrit :
Hello
Do not work under 10.13 (Ask for 10.14 at least). But it should work, as
my previous version from your sources was working.
JV
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 468 |
Nodes: | 16 (2 / 14) |
Uptime: | 18:09:15 |
Calls: | 9,440 |
Calls today: | 3 |
Files: | 13,594 |
Messages: | 6,109,723 |