diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..932eaf2
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.o
+src/16inst_c.h
+src/8inst_c.h
+src/size_c.h
diff --git a/KEGSMAC.app/Contents/Info.plist b/KEGSMAC.app/Contents/Info.plist
deleted file mode 100644
index d810c7d..0000000
--- a/KEGSMAC.app/Contents/Info.plist
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- English
- CFBundleDocumentTypes
-
-
- CFBundleTypeExtensions
-
- 2mg
- 2MG
-
- CFBundleTypeIconFile
- 2mg.icns
- CFBundleTypeName
- Apple II 2MG Disk Image
- CFBundleTypeOSTypes
-
- a2mg
-
- CFBundleTypeRole
- None
-
-
- CFBundleTypeExtensions
-
- kegs
-
- CFBundleTypeIconFile
- 525.icns
- CFBundleTypeName
- KEGS Configuration File
- CFBundleTypeOSTypes
-
- kegs
-
- CFBundleTypeRole
- None
-
-
- CFBundleExecutable
- KEGSMAC
- CFBundleName
- KEGSMAC
- CFBundleIconFile
- kegsicon.icns
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundlePackageType
- APPL
- CFBundleSignature
- KEGS
- CFBundleVersion
- 0.91
- CFBundleShortVersionString
- KEGSMAC version 0.91
- CFBundleGetInfoString
- KEGSMAC v0.91, Copyright 2004 Kent Dickey, http://kegs.sourceforge.net
- NSHumanReadableCopyright
- Copyright 2004 Kent Dickey
-
-
diff --git a/KEGSMAC.app/Contents/MacOS/KEGSMAC b/KEGSMAC.app/Contents/MacOS/KEGSMAC
deleted file mode 100755
index 2255037..0000000
Binary files a/KEGSMAC.app/Contents/MacOS/KEGSMAC and /dev/null differ
diff --git a/KEGSMAC.app/Contents/PkgInfo b/KEGSMAC.app/Contents/PkgInfo
deleted file mode 100644
index 6f749b0..0000000
--- a/KEGSMAC.app/Contents/PkgInfo
+++ /dev/null
@@ -1 +0,0 @@
-APPL????
diff --git a/KEGSMAC.app/Contents/Resources/2mg.icns b/KEGSMAC.app/Contents/Resources/2mg.icns
deleted file mode 100644
index 1e612e0..0000000
Binary files a/KEGSMAC.app/Contents/Resources/2mg.icns and /dev/null differ
diff --git a/KEGSMAC.app/Contents/Resources/525.icns b/KEGSMAC.app/Contents/Resources/525.icns
deleted file mode 100644
index 94e5a90..0000000
Binary files a/KEGSMAC.app/Contents/Resources/525.icns and /dev/null differ
diff --git a/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/classes.nib b/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/classes.nib
deleted file mode 100755
index ea58db1..0000000
--- a/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/classes.nib
+++ /dev/null
@@ -1,4 +0,0 @@
-{
-IBClasses = ();
-IBVersion = 1;
-}
diff --git a/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/info.nib b/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/info.nib
deleted file mode 100644
index 4fcb7b8..0000000
--- a/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/info.nib
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- IBDocumentLocation
- 152 85 356 240 0 0 1280 832
- IBEditorPositions
-
- 29
- 69 252 182 44 0 0 1280 832
-
- IBFramework Version
- 291.0
- IBSystem Version
- 6R73
- targetFramework
- IBCarbonFramework
-
-
diff --git a/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/objects.xib b/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/objects.xib
deleted file mode 100644
index 616ea10..0000000
--- a/KEGSMAC.app/Contents/Resources/English.lproj/main.nib/objects.xib
+++ /dev/null
@@ -1,169 +0,0 @@
-
-
diff --git a/KEGSMAC.app/Contents/Resources/kegsicon.icns b/KEGSMAC.app/Contents/Resources/kegsicon.icns
deleted file mode 100644
index 72ea172..0000000
Binary files a/KEGSMAC.app/Contents/Resources/kegsicon.icns and /dev/null differ
diff --git a/KEGSMAC.app/Icon? b/KEGSMAC.app/Icon?
deleted file mode 100644
index e69de29..0000000
diff --git a/README.md b/README.md
index c9317db..e17995d 100644
--- a/README.md
+++ b/README.md
@@ -7,3 +7,1079 @@ The latest version on the main KEGS home page is v0.91 which doesn't work on Int
small build changes are required, so I have forked the code to Github with my changes.
Original homepage with useful info on how to get it running is here: (http://kegs.sourceforge.net/)[http://kegs.sourceforge.net/]
+
+Disk image and compression utilities
+------------------------------------
+
+NuLib: (http://www.nulib.com/)[http://www.nulib.com/]
+Ciderpress (Windows): (http://ciderpress.sourceforge.net/)[http://ciderpress.sourceforge.net/]
+
+License
+-------
+
+GPL (see COPYING.txt)
+
+Original README.kegs (unedited atm, so some of this will be wrong)
+==================================================================
+
+
+KEGS: Kent's Emulated GS version 0.91
+http://kegs.sourceforge.net/
+
+What is this?
+-------------
+
+KEGS is an Apple IIgs emulator for Mac OS X, Linux, and Win32.
+The Apple IIgs was the most powerful computer in the Apple II line.
+It first was sold in 1986. An Apple IIgs has the capability to run almost all
+Apple II, Apple IIe, and Apple IIc programs.
+
+KEGS supports all Apple IIgs graphics modes (which include all Apple //e
+modes), plus plays all Apple IIgs sounds accurately. It supports
+serial port emulation through TCP/IP connections, or can use real
+serial ports on Windows and Mac OS X.
+
+The ROMs and GS/OS (the Apple IIgs operating system) are not included
+with KEGS since they are not freely distributable. KEGS is a little
+user-hostile now, so if something doesn't work, let me know what went
+wrong, and I'll try to help you out. See my email address at the end of
+this file.
+
+I'd like to thank Chea Chee Keong who created KEGS32, the first Windows
+port of KEGS. That version, which has a better Windows-interface but which
+is based on older core code, is at http://www.geocities.com/akilgard/kegs2.
+
+KEGS features:
+-------------
+
+Fast 65816 emulation:
+ About 80MHz on a Pentium 4 1.7GHz or a Mac G4 1GHz.
+Emulates low-level 5.25" and 3.5" drive accesses (even nibble-copiers work!).
+Emulates classic Apple II sound and 32-voice Ensoniq sound.
+ All sound is played in 16-bit stereo at 48KHz (44100 on a Mac).
+Emulates all Apple IIgs and Apple II graphics modes, including border effects.
+ Can handle display changes at any time (superhires at the top, lores
+ at the bottom). Always does 60 full screen video updates per second.
+ Supports 3200-color pictures.
+Mouse and joystick support.
+Emulated battery RAM remembers control panel settings.
+Limited SCC (serial port) emulation to enable PR#1/2 IN#1/2 and Virtual
+ Modem enables standard Apple terminal programs to telnet to any
+ internet address (or receive connections from another telnet).
+
+KEGS by default emulates a 8MB Apple IIgs, but you can change this from
+the Configuration Panel.
+
+KEGS is so accurate, even the built-in ROM selftests pass (you must be in
+2.8MHz speed mode to pass the self-tests and you must set the Configuration
+Panel entry "Enable Text Page 2 shadow" to "Disabled on ROM 01" for ROM 01).
+
+Release info:
+------------
+
+Included files:
+ CHANGES - Description of changes since last release
+ README.kegs.txt - you're here
+ README.compile.txt - Describes how to build KEGS
+ README.linux.rpm.txt - Describes how to install KEGS's RPM for Linux
+ README.win32.txt - Win32 special directions
+ README.mac.txt - Mac OS X special directions
+ README.a2.compatibility.txt - List of programs which need tweaking
+ src/INTERNALS.overview - description of how KEGS code works
+ src/INTERNALS.xdriver - Describes the xdriver.c routines for porting
+ src/INTERNALS.iwm - Describes the internal 3.5" and 5.25" disk
+ handling routines
+ KEGSMAC - the Mac OS X executable
+ kegswin.exe - the Windows executable
+ config.kegs - disk image configuration info
+ to_pro - Hard-to-use ProDOS volume creator
+ partls - Lists partitions on Apple-partitioned hard
+ drives or CD-ROMs
+ src/ - All the source code, with a Makefile
+
+You need to provide:
+
+ 1) Patience.
+ 2) a ROM file called "ROM", "ROM.01" or "ROM.03" in the KEGS directory
+ (or in your home directory). It can be either from a ROM 01
+ (131072 bytes long) or from a ROM 03 machine (262144 bytes
+ long.)
+ 3) A disk image to boot. This can be either "raw" format or 2IMG.
+ See discussion below. GS/OS would be best.
+
+Getting ROMs
+------------
+
+You need a copy of the memory from fe/0000 - ff/ffff from a ROM 01 GS
+or fc/0000 - ff/ffff from a ROM 03 GS, and put that in a file called
+"ROM". I'll eventually write detailed instructions on how to do this.
+
+Running KEGS:
+------------
+
+The distribution comes with the full source code for all platforms in
+the src/ directory, the Windows executable as kegswin.exe, and the Mac OS X
+executable as KEGSMAC.
+
+See the README.compile.txt file for more info about compiling for Linux.
+
+On all platforms except the Mac, you must start KEGS from a terminal
+window. KEGS will open a new window and use the window you started it from
+as a "debug" window.
+
+On a MAC, you need to place the "config.kegs" file someplace where KEGS
+can find it. The simplest place is in your home directory, so copy it there
+with the Finder (or using the Terminal). You can also make the directory
+Library/KEGS from your home directory, and then place config.kegs there
+along with the ROM file. You do not need a starting config.kegs file
+on a Mac--KEGS will offer to make it for you if it cannot find one.
+
+Start kegs by Double-clicking the KEGSMAC icon on a MAC, or by running
+the executable (kegswin on Windows, and kegs on Linux). KEGSMAC can
+be run by the Terminal window on a Mac as well (which enables access to
+more debug information) by typing: "./KEGSMAC.app/Contents/MacOS/KEGSMAC".
+
+Assuming all goes well, KEGS will then boot up but probably not find any
+disk images. See below for how to tell KEGS what disk images to use.
+Tip: Hitting "F8" locks the mouse in the window (and hides the host cursor)
+until you hit "F8" again.
+
+Configuration Panel:
+-------------------
+
+You enter the Configuration panel by pressing F4 at any time. You tell
+KEGS what disk images to use through the Configuration panel. (If KEGS
+couldn't find a ROM file, you will be forced into the Configuration
+Panel mode until you select a valid ROM file).
+
+To select a ROM file, select "ROM File Selection" and then select your
+ROM file. If you were not forced into the panel at startup, the KEGS
+found one and you can skip this step.
+
+Disk Images
+-----------
+
+The primary use of the Configuration Panel is to select disk images. To
+change disk images being used, select "Disk Configuration". Each slot
+and drive that can be loaded with an image is listed. "s5d1" means slot
+5, drive 1. Slot 5 devices are 3.5" 800K disks, and slot 6 devices are
+5.25" 140K disks. Slot 7 devices are virtual hard drives, and can be
+any size at all (although ProDOS-formatted images should be less than
+32MB).
+
+Just use the arrow keys to navigate to the device entry to change, and
+then select it by pressing Return. A scrollable file selection
+interface is presented, letting you locate your image files. To quickly
+jump to a particular path, you can press Tab to toggle between entering
+a path manually, and using the file selector. Press Return on ".."
+entries to go up a directory level. When you find the image you want,
+just press Return.
+
+If the image has partitions that KEGS supports, another selection
+dialog will have you select which partition to mount. You will probably
+only have partitions on direct devices you mount (or on a Mac, of .dmg
+images of CDs). For instance, on a Mac, /dev/disk1 can sometimes be the
+CDROM drive.
+
+KEGS can handle "raw", .dsk, .po, 2IMG, 5.25" ".nib" images, most Mac
+Diskcopy images and partitioned images. The .dsk and .po formats you often
+find on the web are really "raw" formats, and so they work fine. KEGS uses
+the host file permissions to encode the read/write status of the image.
+KEGS can open any image file compressed with gzip (with the extension ".gz")
+automatically as a read-only disk image.
+
+An image is the representation of an Apple IIgs disk, but in a file on
+your computer. For 3.5" disks, for example, a raw image would be exactly
+800K bytes long (819200 bytes). KEGS directs the emulated GS accesses to
+the image, and does the correct reads and writes of the Unix file instead.
+
+To do "useful" things with KEGS, you need to get a bootable disk image.
+You can go to http://www.info.apple.com/support/oldersoftwarelist.html and
+get Apple IIgs System 6. Unfortunately, Apple now only has .sea files which
+are executable files for Macintosh only. You need a macintosh to execute
+those programs, which creates Disk Copy image files with no special extensions
+(and with spaces in the names). Once you get those files back to your
+host machine, you can use them by selecting them from the Configuration Panel.
+
+You can also get Apple II programs in ".dsk" format from a variety of
+sites on the internet, and these should all work on KEGS as well.
+
+KEGS also supports partitioned devices. For instance, if you have a CD-ROM
+on your computer, just pop an Apple II CD in, and KEGS can mount it, if
+you have a Unix-based system (Linux, any Unix, and Mac OS X).
+
+If you're on a Mac, be careful letting KEGS use your HFS partitions--
+GSOS has many HFS bugs when it is writing. Also avoid having KEGS access
+an image which have mounted on your Mac at the same time (always unmount
+it from your Mac before letting KEGS access it)!
+
+If you do not have any disk mounted in s7d1, KEGS will jump into the monitor.
+To boot slot 6 (or slot 5), use the Apple IIgs Control Panel by pressing
+Ctrl-Command-ESC.
+
+Support for 5.25" nibblized images is read-only for now (since the
+format is kinda simplistic, it's tricky for KEGS to write to it since KEGS
+has more information than fits in that format). Just select your image,
+like "disk.nib" in the kegs_conf file like any .dsk or .po image.
+
+In addition to changing disks, you can also just "eject" and image by
+moving the cursor to select that slot/drive and then press "E". The
+emulated IIgs will immediately detect changes to s5d1 and s5d2.
+
+Care should be taken when changing images in slot 7--KEGS does not notify
+GSOS that images have changed (or been ejected), and so it's best to make
+changes when GSOS is not running.
+
+
+Key summary:
+-----------
+
+F1: Alias of Command
+F2: Alias of Option
+F3: Alias of ESC for OS/2 compatibility.
+F4: Configuration Panel
+F6: Toggle through the 4 speeds: Unlimited, 1MHz, 2.8MHz, 8.0MHz
+Shift-F6: Enter KEGS debugger
+F7: Toggle fast_disk_emul on/off
+F8: Toggle pointer hiding on/off.
+F9: Invert the sense of the joystick.
+Shift-F9: Swap x and y joystick/paddle axes.
+F10: Attempt to change the a2vid_palette (only useful on 256-color displays)
+F11: Full screen mode (only on Mac OS X).
+F12: Alias of Pause/Break which is treated as Reset
+
+F2, Alt_R, Meta_r, Menu, Print, Mode_switch, Option: Option key
+F1, Alt_L, Meta_L, Cancel, Scroll_lock, Command: Command key
+Num_Lock: Keypad "Clear".
+F12, Pause, Break: Reset
+
+"Home": Alias for "=" on the keypad (since my Unix keyboard doesn't have an =).
+
+Using KEGS:
+----------
+
+The host computer mouse is the Apple IIgs mouse and joystick by default.
+By default, the host pointer is not constrained inside the window and
+remains visible. Press F8 to hide the cursor and constrain the mouse. F8
+again toggles out of constrain mode. When the GSOS desktop is running,
+KEGS hides the host cursor automatically and enables special tracking
+which forces the emulated cursor to follow the host cursor. If this doesn't
+work right under some program, just press F8 for better compatibility.
+
+The middle mouse button or Shift-F6 causes KEGS to stop emulation, and enter
+the debugger. You can continue with "g" then return in the debug window.
+You can also disassemble memory, etc. The section "Debugging KEGS"
+above describes the debugger interface a little more.
+
+KEGS has no pop-up menus or other interactive interfaces (other than
+the debug window, and the occasional error dialogs on Mac OS X). Input to
+the debug window is only acted upon when the emulation is stopped
+(Shift-F6, middle mouse button, or hitting a breakpoint).
+
+Quitting KEGS:
+-------------
+
+Just close the main KEGS window, and KEGS will exit cleanly. Or you
+can select Quit from the menu. Or enter ctrl-c in the debugger window.
+Or press the middle-mouse button in the emulation window, and then type
+"q" return in the debug window.
+
+Command/Option keys:
+-------------------
+
+If you have a keyboard with the special Windows keys, you can
+use them as the command/option keys. For those without those keys,
+there are several alternatives.
+
+The following keys are Option (closed-apple) (not all keyboards have all
+keys): F2, Meta_R, Alt_R, Cancel, Print_screen, Mode_switch, Option,
+or the Windows key just to the right of the spacebar. The following keys are
+Command (open-apple): F1, Meta_L, Alt_L, Menu, Scroll_lock, Command,
+the Windows key left of the spacebar, and the Windows key on the far right
+that looks like a pull-down menu. You can use F1 and F2 if you cannot make
+anything else work (especially useful if your OS is intercepting some
+Alt or Command key sequences).
+
+If you can't get any of these to work on your machine, let me know.
+Note that X Windows often has other things mapped to Meta- and Alt-
+key sequences, so they often don't get passed through to KEGS. So it's
+best to use another key instead of Alt or Meta.
+
+The joystick/paddle buttons are just the Command and Option keys.
+
+
+Reset:
+-----
+
+The reset key is Pause/Break or F12. You must hit it with Ctrl to get it to
+take effect (just like a real Apple IIgs). Ctrl-Command-Reset
+forces a reboot. Ctrl-Command-Option-Reset enters selftests.
+Selftests will pass if you force speed to 2.8MHz using the middle
+button or F6 (and also set Enable Text Page 2 shadow = Disabled for ROM 01).
+Watch out for ctrl-shift-Break--it will likely kill an X Windows session.
+Also note that the Unix olvwm X window manager interprets ctrl-F12 and will
+not pass it on to KEGS--you'll need to use Break for reset in that case.
+
+Full Screen mode (MAC OS X ONLY):
+----------------
+
+KEGS can run in full screen mode--which is especially useful when letting
+small kids use KEGS (but it is not really a lock, so do not let a 2 year
+old bang on the keyboard while running KEGS).
+
+Full Screen mode is toggled with F11 (or Ctrl-F11, since Expose on a Mac
+is intercepting F11). If KEGS stops in the debugger for any reason,
+full screen mode is toggled off automatically.
+
+
+Joystick Emulation (Mouse, Keypad, or real native joystick):
+------------------
+
+The default joystick is the mouse position. Upper left is 0,0. Lower right
+is 255,255. Press Shift-F9 to swap the X and Y axes. Press F9 to reverse
+the sense of both paddles (so 0 becomes 255, etc). Swapping and
+reversing are convenient with paddle-based games like "Little Brick Out"
+so that the mouse will be moving like the paddle on the screen. "Little
+Brick Out" is on the DOS 3.3 master disk. The joystick does not work
+properly if the pointer is constrained in the window.
+
+You can also select from a "Keypad Joystick" or a real joystick from
+the Configuration panel. Press return on the "Joystick Configuration"
+entry, and then select between Mouse Joystick, Keypad Joystick, or one
+of two native joysticks. The Keypad Joystick uses your keypad number
+keys as a joystick, where keypad 7 means move to the upper left, and
+keypad 3 means move to the lower right. Pressing multiple keys together
+averages the results, allowing finer control than just 8 directions.
+Also, joystick scaling is selectable here for games which require
+a greater range of motion to work correctly, along with trim adjustment
+which moves the centering point. Adjusting scaling usually means you
+will need to adjust the trim as well.
+
+The left mouse button is the mouse button for KEGS. The right mouse
+button (if you have it) or F6 toggles between four speed modes. Mode 0
+(the default) means run as fast as possible. Mode 1 means run at 1MHz.
+Mode 2 means run at 2.8MHz. Mode 3 means run at 8.0MHz (about the speed
+of a ZipGS accelerator). Most Apple //e (or earlier) games need to be
+run at 1MHz. Many Apple IIgs demos must run at 2.8MHz or they will not
+operate correctly. Try running ornery programs at 2.8MHz. 3200 pictures
+generally only display correctly at 2.8MHz or sometimes 8.0MHz.
+
+
+Debugging KEGS:
+--------------
+
+KEGS by default now continues emulation even when it detects buggy programs
+running. (Now I know why Appleworks GS always seemed to crash!).
+
+KEGS divides buggy programs into two severities: Code Yellow and Code Red.
+The status is displayed in words in the text area under the emulation window.
+If nothing's wrong, nothing is printed.
+
+A Yellow bug is a mild bug where an Apple IIgs program merely read an
+invalid location. Although completely harmless, it indicates the potential
+for some Apple IIgs program bug which may become more severe shortly.
+For instance, closing the "About This Apple IIgs" window in the Finder
+causes a code yellow alert, but it seems quite harmless.
+
+A Code Red bug is a more serious problem. The Apple IIgs program either
+tried to write non-existent memory, entered an invalid system state, or
+perhaps just tried to use an Apple IIgs feature which KEGS does not implement
+yet. Note that entering GSBUG tends to cause a Code Red alert always, so if
+you intended to enter it, you can ignore it. My recommendation is to
+save work immediately (to new files) and restart KEGS if you get into the
+Red mode.
+
+KEGS also supports breakpoints and watchpoints. In the debug window, you
+set a breakpoint at an address by typing the address, followed by a 'B'
+(it must be in caps). To set a breakpoint on the interrupt jump point,
+type:
+
+e1/0010B
+
+The format is "bank/address" then "B", where the B must be in caps and
+the address must use lower-case hex. For Apple IIe programs, just use a
+bank of 0.
+
+To list all breakpoints, just type 'B' with no number in front of it.
+To delete a breakpoint, enter its address followed by 'D', so
+
+e1/0010D
+
+deletes the above breakpoint. The addresses work like the IIgs monitor:
+once you change banks, you can use shortcut addresses:
+
+e1/0010B
+14B
+
+will add breakpoints at e1/0010 and e1/0014.
+
+This is a "transparent" breakpoint--memory is not changed. But any
+read or write to that address will cause KEGS to halt. So you can
+set breakpoints on I/O addresses, or ROM, or whatever. Setting a breakpoint
+slows KEGS down somewhat, but only on accesses to the 256 byte "page"
+the breakpoint is on. Breakpoints are not just instruction breakpoints,
+they also cause KEGS to halt on any data access, too (usually called
+watchpoints).
+
+Frederic Devernay has written a nice help screen available in the
+debugger when you type "h".
+
+Useful locations for setting breakpoints:
+0/3f0B - Break handler
+0/c000B - Keyboard latch, programs read keys from this address
+
+
+
+KEGS command-line option summary:
+--------------------------------
+
+There are others, but the Configuration panel provides a better way to
+set them so they are no longer listed here.
+-skip: KEGS will "skip" that many screen redraws between refreshes.
+ -skip 0 will do 60 frames per second, -skip 1 will do 30 fps,
+ -skip 5 will do 10 fps.
+-audio [0/1]: Forces audio [off/on]. By default, audio is on unless
+ the X display is a remote machine or shared memory is off.
+ This switch can override the default. -audio 0 causes KEGS to
+ not fork the background audio process, but Ensoniq emulation
+ is still 100% accurate, just the sound is not sent to the
+ workstation speaker. Audio defaults off on Linux for now.
+-arate {num}: Forces audio sample rate to {num}. 44100 and 48000 are
+ usual, you can try 22050 to reduce KEGS's overhead. On a reasonably
+ fast machine (>250MHz or so), you shouldn't need to mess with this.
+-dhr140: Will use the old Double-hires color algorithm that results in
+ exactly 140 colors across the screen, as opposed to the blending
+ being done by default.
+
+X-Windows/Linux options
+-15: KEGS will only look for a 15-bit X-Window display.
+-16: KEGS will only look for a 16-bit X-Window display (not tested, probably
+ will get red colors wrong).
+-24: KEGS will only look for a 24-bit X-Window display.
+-display {machine:0.0}: Same as setting the environment variable DISPLAY.
+ Sends X display to {machine:0.0}.
+-noshm: KEGS will not try to used shared memory for the X graphics display.
+ This will make KEGS much slower on graphics-intensive tasks,
+ by as much as a factor of 10! By default, -noshm causes an
+ effective -skip of 3 which is 15 fps. You can override this
+ default by specifying a -skip explicitly.
+
+
+
+Apple IIgs Control Panel:
+------------------------
+
+You can get to the Apple IIgs control panel (unless some application
+has locked it out) using Ctrl-Command-ESC.
+
+
+How to use "to_pro":
+-------------------
+
+This lame utility serves two purposes: It "formats" large disk images,
+and lets you move files from Unix into the simulator. It does this
+by taking the files you provide, and putting them onto Unix file called
+"POOF1" that is an image in ProDOS format.
+
+So, if you have a wolfdemo.bxy file from an FTP site, you can get it
+into the emulator by:
+
+to_pro -800 wolfdemo.bxy
+
+which creates an 800K Unix file called "POOF1". POOF1 is now an
+image that can be loaded into KEGS, and when you catalog it, it will
+have wolfdemo.bxy on it.
+
+To create a 4MB image:
+
+to_pro -4096 wolfdemo.bxy
+
+which puts wolfdemo.bxy on a much larger image.
+
+I don't know what happens if the file, wolfdemo.bxy, is bigger than
+the image...it probably crashes.
+
+Even if you want to format a "blank" image, you have to put something in it.
+Like:
+
+echo "This is a lame utility" > foo
+to_pro -16384 foo
+
+...creates a 16MB POOF1 with the file foo on it. Just delete foo
+from within KEGS.
+
+See? I told you it was a lame utility!
+
+to_pro can handle up to 51 files at a time--for example:
+
+to_pro -32000 *.shk
+
+...would put all *.shk files in the current Unix directory into a 31.25MB
+image called POOF1.
+
+To_pro tries to truncate Unix filenames to the 15 character ProDOS
+limit, and converts all punctuation to dots. I've tested it enough
+that it has worked for my purposes.
+
+The algorithm to_pro uses to create a disk volume is possibly suspect.
+I recommend reformatting any images again inside KEGS (using GS/OS, for
+instance) just to make sure the directory structure is good. To_pro
+is intended to put files into images quickly and easily, and then to
+copy the files off of those images onto images formatted from within
+KEGS by an Apple IIgs OS.
+
+Since ProDOS cannot handle > 32MB images, make sure you run to_pro with
+arguments under 32767. I personally haven't tried a partition bigger
+than 30000K (about 2.5MB short of the maximum). Well, you can use bigger
+images if you format them HFS, but I don't trust the GS/OS HFS driver.
+
+To_pro automatically sets the ProDOS filetype of files ending in ".shk"
+to $E0.
+
+Details on config.kegs and disk images
+--------------------------------------
+
+The file "config.kegs" describes the images KEGS will use. Although you
+can edit the file manually, in general you can use the Configuration Panel
+to make all the changes you need. This information is for reference.
+
+KEGS by default will boot s7d1 (unless you've changed that using the
+Apple IIgs control panel), so you should put an image in that slot.
+
+KEGS, by default, runs the IWM (3.5" and 5.25" disks) emulation in an
+"approximate" mode, called "fast_disk_emul". In this mode, KEGS
+emulates the hardware "faster" than real, meaning the data the code
+being emulated expects is made available much faster than on a real
+Apple IIgs, providing a nice speed boost. For instance, the 5.25"
+drives run 10x the real speed usually. Almost everything will work
+except for nibble copiers, which don't like the data coming this fast.
+(Meaning, unless you're using a nibble copier, you shouldn't run into an
+issue. All games/demos/etc run fine in this mode). To make nibble
+copiers work, Press F7.
+
+KEGS can read in the ".nib" nibblized disk format, but as read-only mode. If
+the emulated image is no longer ProDOS or DOS 3.3 standard, KEGS will
+automatically treat the image as "Not-write-through-to-Image" from then
+on. This mode means KEGS will continue to emulate the disk properly in
+memory, but it cannot encode the changes in the standard .dsk or .nib
+image format. It prints a message saying it has done so. However,
+the "disk" in emulation is fully useable as long as KEGS is running. A
+standard reformatting will not cause an image to flip to not-write-
+through-to-Image, but running things like a "drive-speed" test will cause
+further changes not to propagate to the Unix file. You will need
+to "eject" the image and re-insert it before writes will take effect.
+
+In full accuracy mode (i.e., not fast_disk_emul), 5.25" drive accesses
+force KEGS to run at 1MHz, and 3.5" drive accesses force KEGS to run at
+2.5MHz.
+
+KEGS Timing:
+-----------
+
+KEGS supports running at four speeds: 1MHz, 2.8MHz, 8.0MHz, and Unlimited.
+Pressing the middle mouse button cycles between these modes. The 1MHz
+and 2.8MHz speeds force KEGS to run at exactly those speeds, providing
+accurate reproduction of a real Apple IIgs.
+
+KEGS will always run at 1MHz at least. If it is unable to keep up,
+it will extend the emulated time to maintain the illusion of running
+at 1MHz. That is, it may do just 40 screen refreshes per real second,
+instead of the usual 60. This happens rarely.
+
+If you force KEGS to run at 1MHz, it will strive to run at exactly
+1MHz (well, really 1.024MHz). If it is running faster (almost always),
+it will pause briefly several times a second to maintain the 1MHz speed. It
+does this in a friendly way that makes time available to other tasks.
+This makes older Apple II games very playable just like a
+real Apple IIgs on slow speed. KEGS is running at exactly the same
+speed as an Apple //e when in 1MHz mode. The 1MHz mode you set
+through the right mouse button overrides the "fast" mode you can access
+through the control panel. But, 3.5" accesses will "speed up" to 2.8MHz
+to enable that code to operate correctly while the 3.5" disk is being
+accessed.
+
+If you force KEGS to run at 2.8MHz, KEGS tries to run at exactly 2.8MHz. But
+like a real unaccelerated Apple IIgs, if you set the control panel to
+"slow", it will really be running at 1MHz. Accesses to 5.25" disk
+automatically slow down to 1MHz, when running the IWM in accurate
+mode (F7). KEGS may not be able to keep up with some programs running
+at 2.8MHz due to video and sound overheads on lower-end machines. If
+that happens, it effectively runs slower by extending the emulated
+"second", like in the 1MHz mode. You can tell this is happening
+when Eff MHz in the status area falls below 2.5MHz. If KEGS is running
+faster than 2.8MHz, it takes small pauses to slow down, just like in
+1MHz. Many Apple IIgs demos must be run at 2.8MHz. The built-in
+selftests (cmd-option-ctrl-Reset) must run at 2.8MHz. Many Apple IIgs
+action games are more playable at 2.8MHz.
+
+The 8.0MHz setting means follow the ZipGS-selected speed, but don't go
+faster than 8.0MHz. If your host computer cannot keep up, then the
+emulated second will be extended. You can use the ZipGS control panel,
+or ZIPPY.GS on the sample disk image to set the emulated ZipGS speed to
+anything from 1MHz to 8MHz in .5MHz increments.
+
+The Unlimited setting means run as fast as possible, whatever speed that
+is (but always above 1MHz). Eff MHz gives you the current Apple IIgs
+equivalent speed. Many games will be unplayable at the unlimited
+setting. Setting the IIgs control panel speed to "slow" will slow down
+to 1MHz.
+
+Sound output has an important relationship to KEGS timing. KEGS must
+play one second of sound per second of emulated time. Normally, this
+works out exactly right. But as noted above, if KEGS can't maintain the
+needed speed, it extends the emulated second. If it extends the second
+to 1.4 real seconds, that means KEGS only produces 1.0 second of sound
+data every 1.4 seconds--the sound breaks up!
+
+In all cases, 1MHz to KEGS is 1.024MHz. And 2.8MHz to KEGS is 2.56MHz
+(trying to approximate the slowdown causes by memory refresh on a real
+Apple IIgs). It's just easier to say 1MHz and 2.8MHz.
+
+
+KEGS SAMPLE_DISK:
+----------------
+
+I'm providing a sample disk of freely available utilities/programs to
+demonstrate a little of what KEGS can do. I'm also including my simple
+changes to a benchmark called "SPEEDTEST" to make it run under ProDOS and
+time itself automatically. The SAMPLE_DISK is not bootable since I'm
+not sure if I can distribute PRODOS (the OS).
+
+
+ SPEEDTEST:
+ ---------
+
+In the folder "SPEEDTEST", there are two BASIC programs. OLD.SPEEDTEST
+is the old, unmodified DOS 3.3 emulator benchmark by Clayten Hamacher.
+It does not run properly under ProDOS 8. My modified version is
+SPEED.PRO, meaning converted to ProDOS. I made few modifications, other
+than to make the benchmarks time themselves.
+
+To run, just say "RUN SPEED.PRO". To run benchmarks, press "B". If
+you say "A)ll tests", make sure you have a 5.25" disk image in s6d1!
+(A blank 140K image will work fine).
+
+This modified SPEED.PRO can run on ANY Apple IIgs emulator (or on the real
+thing).
+
+ GSOS7, GSOS5, BYE.SYSTEM:
+ ------------------------
+
+These are handy utilities I use on my s7d1 boot disk. Get a GS/OS 6.x
+bootable disk image. (See GSOS.INFO file for how to get GS/OS).
+Remove "PRODOS" from that disk's root directory, and copy GSOS7 to
+the root directory. Then copy SYSTEM/P8 to PRODOS. Then move
+BASIC.System into SYSTEM/. Then copy BYE.SYSTEM to the root directory,
+then move BASIC.SYSTEM back to the root directory.
+
+What all this means is that now the root directory of your system disk
+is: GSOS7, (other stuff), PRODOS, BYE.SYSTEM, and BASIC.SYSTEM.
+When you boot, ProDOS will boot (this is PRODOS 8) and will search
+for the first *.SYSTEM file, and run it. BYE.SYSTEM just does a BYE
+command, which puts you in the PRODOS 8 textual launcher.
+If you now select GSOS7 (the first entry, already highlighted, just
+hit return), it will boot GSOS on slot 7. (Use GSOS5 to boot slot5).
+Or, just move down and select BASIC.SYSTEM to go to BASIC. A very simple
+program launcher!?
+
+Note that I didn't write GSOS5 or GSOS7--I just made a one byte hack
+to the default GS/OS launcher. No real wizardry is going on here.
+
+
+ SHRINKIT3.4, GSHK1.1:
+ --------------------
+
+Useful for unpacking .SHK files you can download off of the net.
+Always use GSHK (GS/OS version of ShrinkIt) for GS programs since
+they may have resource forks. It's also faster. GSHK must be run from GS/OS.
+
+ LISTV2.0:
+ --------
+
+ProDOS 8 text file lister, useful for viewing text files.
+
+ Wolfenstein3D:
+ ------
+
+Wolfenstein 3D for the Apple IIgs. No kidding! Must be run from GS/OS.
+
+ SOUND22:
+ -------
+
+Cool little ProDOS 8 program (SOUND.EDITOR) that plays hi-fidelity
+(relatively) through the old Apple II speaker. This is included as a
+demonstration of how accurate KEGS sound emulation is.
+
+ Sound.Smith.95:
+ --------------
+
+GS/OS application that plays SoundSmith songs, which are spreadsheet music,
+like MODs. I included some sample songs--FILE.11, FILE.16, FILE.17, and
+SPACE.HARRIER. Enjoy!
+
+ SOLITAIRE:
+ ---------
+
+Klondike. I like the interface on this game.
+
+ CAT.DOCTOR:
+ ----------
+
+From Prosel8 (which is now public domain), this utility is very handy for
+sorting directories (among other things). Useful for arranging GSOS7,
+and BYE.SYSTEM mentioned above.
+
+ BGSOUND:
+ -------
+
+This CDA lets you play Soundsmith songs in the background while other
+applications are running. Very handy for playing Solitaire with some music.
+
+ DOCVu.CDA:
+ ---------
+
+This CDA shows the current DOC contents in real-time. It has neat visual
+effects while playing Soundsmith songs.
+
+ Zippy.gs
+ --------
+
+Very useful ProDOS 8 program by Andy McFadden for setting ZipGS parameters.
+In KEGS, you'll want to use this to change the Zip speed to less than
+100% to make the "Unlimited" speed become limited to 7.5MHz, which is
+useful for some games.
+
+
+KEGS: What works:
+-----------------
+
+Basically, just about every Apple II program works. See the file
+README.a2.compatibility for directions on how to make certain games/programs
+work.
+
+KEGS is EXTREMELY compatible. But, I haven't tested everything. Let
+me know if you find a program which is not working correctly.
+
+Some old Apple II 5.25" games require the old C600 ROM image, and don't work
+with the default Apple IIgs ROM. This is not KEGS's fault--these games
+don't run on a real Apple IIgs either. KEGS has built-in the old Apple II
+Disk PROM which you can enable by using the IIgs control panel to set
+Slot 6 to "Your Card". This allows many more Apple II games to run, and
+is the recommended setting.
+
+The NinjaForce Megademo mostly works, but sometimes hangs in the BBS Demo.
+Just skip that demo if it happens.
+
+The California Demo hangs at startup unless you use the IIgs control panel
+to boot from slot 5, and then do a ctrl-Open_Apple-Reset to boot--doing
+the above lets it work fine. This seems to be a bug in the demo.
+
+
+KEGS bugs:
+---------
+
+On a ROM03, KEGS makes a patch to the ROM image (inside emulation, not
+to the Unix file) to fix a bug in the ROM code. Both ROM01 and ROM03
+are patched to enable use of more than 8MB of memory. I then patch the ROM
+self-tests to make the ROM checksum pass. But other programs, like
+the Apple IIgs Diagnostic Disk, will detect a ROM checksum mismatch.
+Don't worry about it.
+
+Sound breaks up if KEGS is unable to keep up--it should only be happening
+if you are trying to force KEGS to run at 2.8MHz, but cannot due to
+sound and video overhead.
+
+
+Sound emulation:
+---------------
+
+KEGS supports very accurate classic Apple II sound (clicking of the
+speaker using $C030) and fairly accurate Ensoniq sound.
+
+When KEGS determines that no sound has been produced for more than
+5 seconds, it turns off the sound calculation routines for a small
+speedup. It describes that it has done this by saying "Pausing sound"
+in the debug window. However, when sound restarts, it sometimes
+"breaks-up" a little. I will work on fixes for this.
+
+If your display is not using shared memory, audio defaults to off unless
+you override it with "-audio 1".
+
+SCC (Serial Port) emulation:
+---------------------------
+
+KEGS emulates the two serial ports on a IIgs as being two Unix sockets.
+Port 1 (printer port) is at socket address 6501, and port 2 (modem)
+is at socket address 6502.
+
+By default, slot 1 is emulated using a simple receive socket, and slot 2
+emulates a Virtual Modem.
+
+A Virtual Modem means KEGS acts as if a modem is on the serial port
+allowing Apple II communcation programs to fully work, but connected to
+internet-enabled sockets. KEGS emulates a "Hayes- Compatible" modem,
+meaning it accepts "AT" commands. You can use KEGS to connect to free
+telnet-BBSs, or run a BBS program on KEGS and become a telnet BBS yourself.
+
+The two main AT commands are: ATDT for dialing out, and ATA for receiving
+calls. To dial out, enter "ATDThostname", or for example,
+"ATDTboycot.no-ip.com" (which is down at the moment, unfortunately).
+You can also enter an IP address, like "ATDT127.0.0.1". On a Mac, to
+create a telnet server to allow telnet connections (do not use over the
+internet, but on a private network behind a firewall, this should be
+fine), in a Terminal window type: "sudo /usr/libexec/telnetd -debug".
+You must then enable telnet on port 23 through your Mac OS X Firewall in
+the System Preferences->Sharing->Firewall page (just add port 23 as
+open--you'll need to use the "New..." button and then select Other for
+Port Name, and enter Port Number as 23). Then from KEGS in a
+communications program, do "ATDT127.0.0.1", and then log-in to your Mac.
+
+KEGS also accepts incoming "calls". Start KEGS, and initialize the
+Virtual Modem with some AT command (ATZ resets all state, and is a useful
+start). KEGS now has a socket port open, 6502 for slot 2, which you
+can connect to using any telnet program. In a Terminal window, then
+type "telnet 127.0.0.1 6502" and you will connect to KEGS. The Virtual
+Modem then starts printing "RING" every 2 seconds until you answer with
+"ATA". You are now connected. I have not tried BBS programs, but have
+made connections with ProTERM.
+
+On Windows XP SP2, when KEGS tries to open this incoming socket, you'll
+need to enable it and click Unblock to the dialog that Windows pops up.
+If you do not want incoming connections, you can block it instead.
+
+Once connected, you can go back to talking to the Virtual Modem by
+pressing + three times quickly (+++), and then not type anything for a second.
+This goes back to the AT-command mode. You can now "ATH" to hang up, or
+"ATO" to go back online.
+
+On Windows, the socket code is very preliminary and there are problems
+receiving connections.
+
+KEGS also supports an older, simpler socket interface, which it defaults
+to using on slot 1. In KEGS, from APPLESOFT, if you PR#1, all output will
+then be sent to socket port 6501. You can see it by connecting to the
+port using telnet. In another terminal window, do: "telnet localhost 6501"
+and then you will see all the output going to the "printer".
+
+Under APPLESOFT, you can PR#1 and IN#1. This gets input from the
+socket also. You can type in the telnet window, it will be sent on
+to the emulated IIgs. You may want to go to the F4 Config Panel and set
+"mask off high bit" for serial port accesses to make PR#1 work a little nicer.
+
+You can "print" from BASIC by using something like PR#1 in KEGS and
+"telnet localhost 6501 | tee file.out" in another window.
+
+
+KEGS status area:
+----------------
+
+The status area is updated once each second. It displays info I am
+(or was at some time) interested in seeing.
+
+Line 1: (Emulation speed info)
+dcycs: number of seconds since KEGS was started
+sim MHz: Effective speed of KEGS instruction emulation, not counting
+ overhead for video or sound routines.
+Eff MHz: Above, but with overhead accounted for. Eff MHz is the
+ speed of an equivalent true Apple IIgs. This is extremely
+ accurate.
+sec: The number of real seconds that have passed during on of KEGS's
+ emulated seconds. Should be 1.00 +/- .01. Under 1
+ means KEGS is running a bit fast, over 1 means KEGS is
+ running slow. When you force speed to 2.5MHz, if KEGS
+ can't keep up, it extends sec, so you can see how slow
+ it's really going here.
+vol: Apple IIgs main audio volume control, in hex, from 0-F.
+pal: Super-hires palette that is unavailable. KEGS needs one palette
+ for the standard Apple // graphics mode on an 8-bit display,
+ and it grabs the least-used palette. Defaults to 0xe.
+ You can try changing it with F10. If you change it to a
+ palette that is not least used, KEGS changes it back in
+ one second. Any superhires lines using the unavailable
+ palette will have their colors mapped into the
+ closest-matching "lores" colors, to minimize visual
+ impact.
+Limit: Prints which speed setting the user has requested: 1MHz, 2.8MHz,
+ or Unlimited.
+
+Line 2: (Video and X info)
+xfer: In hex, number of bytes transferred to the X screen per second.
+xred_cs: Percentage of Unix processor cycles that were spent in the X
+ server (or other processes on the machine).
+ch_in: Percentage of Unix processor cycles spent checking for X input Events.
+ref_l: Percentage of Unix processor cycles spent scanning the Apple IIgs
+ memory for changes to the current display screen memory,
+ and copying those changes to internal XImage buffers.
+ref_x: Percentage of Unix processor cycles spent sending those XImage buffers
+ to the X server. Very similar to xred_cs.
+
+Line 3: (Interpreter overhead)
+Ints: Number of Apple IIgs interrupts over the last second.
+I/O: Rate of I/O through the fake smartport interface (hard drives).
+ Does not count 3.5" or 5.25" disk accesses.
+BRK: Number of BRKs over the last second.
+COP: Number of COPs over the last second.
+Eng: Number of calls to the main instruction interpreter loop in the
+ last second. All "interrupts" or other special behavior
+ causes the main interpreter loop to exit. A high call
+ rate here indicates a lot of overhead. 12000-15000 is normal.
+ 20000+ indicates some sort of problem.
+act: Some instructions are handled by the main interpreter loop returning
+ special status "actions" to main event loop. This is the
+ number over the last second. Should be low.
+hev: This tracks HALT_EVENTs. KEGS returns to the main loop to recalc
+ effective speed whenever any speed-changing I/O location is
+ touched. See the code, mostly in moremem.c
+esi: This counts the number of superhires scan-line interrupts
+ taken in the last second.
+edi: This counts the number of Ensoniq "special events" over the last
+ second. A sound that stops playing always causes a KEGS
+ event, even if it doesn't cause a IIgs interrupt.
+
+Line 4: (Ensoniq DOC info)
+snd1,2,3,4: Percentage of Unix processor cycles spent handling various
+ sound activities. snd1 is the total sum of all sound overhead.
+st: Percentage of Unix cycles spent starting new Ensoniq oscillators.
+est: Percentage of Unix cycles spent looking for 0 bytes in sounds.
+x.yz: This final number is the average number of oscillators playing
+ over the last second. Up to 4.00 is low overhead, over
+ 20.0 is high overhead.
+
+Line 5: (Ensoniq DOC info)
+snd_plays: Number of calls to a routine called sound_play, which
+ plays Ensoniq sounds. Always called at least 60 times per sec.
+doc_ev: Number of Ensoniq (DOC) events in the last second. A sound
+ stopping is an event, but changing a parameter of a sound
+ while it is playing is also an event.
+st_snd: Number of sounds that were started in the last second.
+snd_parms: Number of times a sound parameter was changed while it
+ was playing.
+
+Line 6: (IWM info)
+For each IWM device, this line displays the current track (and side for
+3.5" disks). If a disk is spinning, there will be an "*" next to the
+track number. Only updated once a second, so the disk arm moving may
+appear to jump by several tracks. "fast_disk_emul:1" shows that KEGS
+is using less accurate, but faster, IWM emulation. Press F7 to toggle
+to accurate disk emulation.
+
+
+Documentation To-Do:
+-------------------
+
+Describe the tracing and breakpoint debug features.
+Describe the debug interface.
+Describe how the code works.
+Describe more of what's known to work.
+Describe my changes to SPEEDTEST.
+
+KEGS To-Do:
+----------
+
+Better serial port emulation (printing, comm)
+Better nibblized images.
+Fix the Ensoniq bugs to make sound more accurate.
+
+-------------------
+
+If you have any problems/questions/etc., just let me know.
+
+Special thanks to Jeff Smoot of climbingwashington.com for letting me use
+the picture of a keg for the Mac icon.
+
+Kent Dickey
+kadickey@alumni.princeton.edu
+
+
+X Window (Linux) interface information:
+--------------------------------------------
+
+Every version of Linux is different. Supporting this is very difficult
+especially since I do not run Linux myself.
+
+If KEGS fails to start, try the following options:
+
+kegs -audio 0 -noshm
+
+There may be a bug with drawing the border on x86 Linux with Shared Memory--
+add the options "-noshm -skip 0" to fix this up (but lose some graphics
+performance, sorry). Try KEGS without these options first, but use
+this as a workaround if necessary.
+
+If you want the display to go somewhere different, make sure the shell
+environment variable $DISPLAY is set, or give the command-line argument
+"-display {foo}".
+
+KEGS also forks off a subprocess to help handle the sound if audio is
+active. If KEGS crashes in a unusual way (a core dump, for instance),
+you may have to manually kill the subprocess. ("ps -ef| grep kegs;kill
+xxxxx").
+
+User geoff@gwlink.net adds some notes for mounting disks/floppies/CDs under
+Solaris:
+
+ To use a CDROM, insert the CD and let Volume Management mount it.
+ Edit kegs_conf and use the filesystem that shows up in the "df -k"
+ listing. The volume name of the CDROM must be included. For example,
+ a CDROM in an IDE drive would look like this:
+
+ /vol/dev/dsk/c1t0d0/ciscocd
+
+ A CDROM in a SCSI drive would look like this:
+
+ /vol/dev/dsk/c0t6d0/j1170_10804
+
+To provide low-level ADB emulation, KEGS turns off Unix key repeat when the
+focus is in the KEGS window. It should be turned back on every time
+the pointer leaves the KEGS window, but sometimes it doesn't. Re-running
+KEGS (and then quitting it quickly) should turn key-repeat back on,
+or you can type 'xset r' in another terminal window.
+
+Sometimes the converse is true--key repeat is "on" when the cursor is
+in the KEGS window. Moving the cursor out of the window and then
+back in should solve it. This is sometimes noticeable when running
+Wolfenstein 3D GS. I haven't spent much time debugging the problem.
+I think it may be the X Server.
+
+KEGS uses a private color-map for its X-window in 8-bit mode. This
+may cause colormap "flash" when your cursor enters the window.
+
+KEGS details/troubleshooting
+----------------------------
+
+KEGS will work on all platforms with a 15/16-bit, 24-bit, or 32-bit
+color display. KEGS also supports an 8-bit display on X windows only.
+On all platforms, it autodetects the color depth--no color switching
+is necessary as long as you're at a supported depth.
+
+
+Disk Image Details
+
+Images loaded into slot 6 (drive 1 or 2) are assumed to be 140K
+5.25" disks, which is usually have the extension ".dsk". Images
+loaded into slot 5 (drive 1 or 2) are assumed to be 800K disk images
+and can be in any supported imahe format (including partitions, if
+you have 800K partitions). Images loaded into slot 7 (drives 1
+through 32) can be in any format and can be any size up to 4GB.
+
+KEGS boots s7d1 by default. You can change this using the emulated IIgs
+control panel, just like a real Apple IIgs. KEGS emulates a IIgs with
+two 5.25" drives in slot 6, two 3.5" drives in slot 5, and up to 32
+"hard drives" in slot 7. However, the current Configuration Panel only
+lets you set through s7d11. ProDOS 8 can access disks up to s7d8, but GSOS
+has no limit, so it's best to put HFS images past s7d8 in order to leave
+more slots for ProDOS images.
+
+If you're trying to use a real host device (CD-ROM, or hard drive, or
+floppy), you should make the permissions on the /dev/disk* files something
+like (meaning, everyone should have read permission):
+
+brw-r--r-- 1 root operator 14, 0 Jun 10 00:01 /dev/disk2
+
+You can do this on a Mac with:
+
+sudo chmod 644 /dev/disk2
+
+DO NOT RUN KEGS AS ROOT. It is not designed for this and it's almost certain
+problems will ensue.
+
diff --git a/kegswin.exe b/kegswin.exe
deleted file mode 100755
index 5d2277e..0000000
Binary files a/kegswin.exe and /dev/null differ
diff --git a/src/Makefile b/src/Makefile
index 8af41f0..8acd4b5 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -24,7 +24,7 @@ specials_clean:
# Mac builds:
kegsmac: $(OBJECTS) compile_time.o
- $(CC) $(CCOPTS) $(LDOPTS) -arch ppc $(OBJECTS) compile_time.o $(LDFLAGS) -o kegsmac $(EXTRA_LIBS) -prebind -framework Carbon -framework Quicktime
+ $(CC) $(CCOPTS) -arch i386 $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o kegsmac $(EXTRA_LIBS) -prebind -framework Carbon -framework Quicktime
mkdir -p ../KEGSMAC.app/Contents/Resources/English.lproj/main.nib
mkdir -p ../KEGSMAC.app/Contents/MacOS
mv kegsmac ../KEGSMAC.app/Contents/MacOS/KEGSMAC
diff --git a/src/vars_mac b/src/vars_mac
index d59fed2..ad095ec 100644
--- a/src/vars_mac
+++ b/src/vars_mac
@@ -5,6 +5,6 @@ CCOPTS = -O2 -DMAC
SUFFIX =
NAME = kegsmac
-XOPTS = -Wall -fpascal-strings -mdynamic-no-pic -arch ppc
+XOPTS = -Wall -fpascal-strings -mdynamic-no-pic -arch i386
XLIBS =