mirror of
https://github.com/digarok/gsplus.git
synced 2024-11-24 06:34:02 +00:00
745 lines
34 KiB
Plaintext
745 lines
34 KiB
Plaintext
-----
|
|
Operating GSport
|
|
-----
|
|
David Schmidt (david__schmidt at users dot souceforge dot net)
|
|
-----
|
|
|
|
Operating GSport
|
|
|
|
* Getting a ROM file
|
|
|
|
The required ROM for GSport is not part of the distribution, as it is
|
|
not freely distributable. You must own a IIgs ROM (i.e. a IIgs machine) in
|
|
order to legally use a ROM file that you may find on the internet.
|
|
|
|
GSport can use the ROM image from either a ROM01 or ROM03 IIgs machine.
|
|
By default, that file should be named <<<rom>>> and be placed in the same folder as the GSport program/app.
|
|
The name and location are configurable options, but it will "just work" with the defaults.
|
|
|
|
* Running GSport
|
|
|
|
On all platforms except Windows and Mac, you must start GSport from a terminal
|
|
window. GSport will open a new window and use the window you started it from
|
|
as a "debug" window.
|
|
|
|
GSport will look in a number of places for two files it requires: <<<config.txt>>>
|
|
and <<<rom>>>. The suggested place for these files is right alongside the GSport
|
|
application itself.
|
|
|
|
Start GSport by Double-clicking the GSport icon on a Mac, or by running
|
|
the executable (<<<gsport.exe>>> on Windows, and <<<gsportx>>> on Linux).
|
|
GSport can be run from the Terminal window on a Mac as well (which enables access to
|
|
more debug information) by typing: <<<./GSport.app/Contents/MacOS/GSport>>> from the folder GSport is in.
|
|
This also enables the automatic mounting/booting feature by allowing you to specify a disk
|
|
image of your choice on that command line; for example: \
|
|
<<<./GSport.app/Contents/MacOS/GSport /path/to/my/disk.po>>>
|
|
|
|
Assuming all goes well, GSport will then boot up but probably not find any disk images.
|
|
Hit the "F4" key and see below for how to tell GSport what disk images to use.
|
|
Tip: Hitting "F8" locks the mouse in the window (and hides the host cursor)
|
|
until you hit "F8" again.
|
|
|
|
See the the {{{./developing.html}developing}} page for information about developing GSport and compiliing it for yourself.
|
|
|
|
* Configuration Panel
|
|
|
|
The Configuration panel is accessed by pressing the F4 key at any time.
|
|
(If GSport couldn't find a ROM file when it started, 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, then GSport
|
|
found one and it is working.
|
|
|
|
* 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 the Enter or Return key.
|
|
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 the Enter or Return key.
|
|
|
|
If the image has partitions that GSport 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.
|
|
|
|
GSport 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. GSport uses
|
|
the host file permissions to encode the read/write status of the image.
|
|
GSport 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). GSport directs the emulated GS accesses to
|
|
the image, and does the correct reads and writes of the Unix file instead.
|
|
|
|
If you do not have any disk mounted in s7d1, GSport 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 simplistic, it's tricky for GSport to write to it since GSport
|
|
has more information than fits in that format). Just select your image,
|
|
like "disk.nib" in the <<<config.txt>>> 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--GSport does not notify
|
|
GSOS that images have changed (or been ejected), and so it's best to make
|
|
changes when GSOS is not running.
|
|
|
|
|
|
* Keyboard Summary
|
|
|
|
---
|
|
F1: Alias of Command
|
|
F2: Alias of Option
|
|
F3: Alias of ESC
|
|
F4: Configuration Panel
|
|
F5, Shift-Insert: Paste from clipboard (on Windows and Mac)
|
|
F6: Toggle through the 4 speeds: Unlimited, 1MHz, 2.8MHz, 8.0MHz
|
|
Shift-F6: Enter GSport 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)
|
|
Shift-F10: Toggle visibility of the debug status lines (on Windows only)
|
|
F11: Full screen mode (on Mac OS X and Windows).
|
|
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 GSport
|
|
|
|
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,
|
|
GSport 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 GSport 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 GSport"
|
|
above describes the debugger interface a little more.
|
|
|
|
GSport 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 GSport
|
|
|
|
Just close the main GSport window, and GSport 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).
|
|
|
|
Note that X Windows often has other things mapped to Meta- and Alt-
|
|
key sequences, so they often don't get passed through to GSport. 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 GSport--you'll need to use Break for reset in that case.
|
|
|
|
* Full Screen mode (Mac OS X only)
|
|
|
|
GSport can run in full screen mode--which is especially useful when letting
|
|
small kids use GSport (but it is not really a lock, so do not let a 2 year
|
|
old bang on the keyboard while running GSport).
|
|
|
|
Full Screen mode is toggled with F11 (or Ctrl-F11, since Expose on a Mac
|
|
is intercepting F11). If GSport 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 GSport. 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 GSport
|
|
|
|
GSport by default now continues emulation even when it detects buggy programs
|
|
running. (Now I know why Appleworks GS always seemed to crash!).
|
|
|
|
GSport 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 GSport 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 GSport if you get into the
|
|
Red mode.
|
|
|
|
GSport 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 GSport to halt. So you can
|
|
set breakpoints on I/O addresses, or ROM, or whatever. Setting a breakpoint
|
|
slows GSport down somewhat, but only on accesses to the 256 byte "page"
|
|
the breakpoint is on. Breakpoints are not just instruction breakpoints,
|
|
they also cause GSport 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
|
|
|
|
|
|
|
|
* GSport 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: GSport 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 GSport 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 GSport'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: GSport will only look for a 15-bit X-Window display.
|
|
-16: GSport will only look for a 16-bit X-Window display (not tested, probably
|
|
will get red colors wrong).
|
|
-24: GSport 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: GSport will not try to used shared memory for the X graphics display.
|
|
This will make GSport 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.
|
|
|
|
* Details on config.txt and disk images
|
|
|
|
The file <<<config.txt>>> describes the images GSport 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.
|
|
|
|
GSport 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.
|
|
|
|
GSport, by default, runs the IWM (3.5" and 5.25" disks) emulation in an
|
|
"approximate" mode, called "fast_disk_emul". In this mode, GSport
|
|
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.
|
|
|
|
GSport 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, GSport will
|
|
automatically treat the image as "Not-write-through-to-Image" from then
|
|
on. This mode means GSport 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 GSport 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 GSport to run at 1MHz, and 3.5" drive accesses force GSport to run at
|
|
2.8MHz.
|
|
|
|
* GSport Timing
|
|
|
|
GSport 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 GSport to run at exactly those speeds, providing
|
|
accurate reproduction of a real Apple IIgs.
|
|
|
|
GSport 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 GSport 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. GSport 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 GSport to run at 2.8MHz, GSport 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). GSport 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.8MHz. If GSport 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 GSport timing. GSport must
|
|
play one second of sound per second of emulated time. Normally, this
|
|
works out exactly right. But as noted above, if GSport can't maintain the
|
|
needed speed, it extends the emulated second. If it extends the second
|
|
to 1.4 real seconds, that means GSport only produces 1.0 second of sound
|
|
data every 1.4 seconds--the sound breaks up!
|
|
|
|
In all cases, 1MHz to GSport is 1.024MHz. And 2.8MHz to GSport 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.
|
|
|
|
* GSport: What Works
|
|
|
|
Basically, just about every Apple II program works.
|
|
|
|
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 GSport's fault--these games
|
|
don't run on a real Apple IIgs either. GSport 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.
|
|
|
|
|
|
* GSport bugs
|
|
|
|
On a ROM03, GSport makes a patch to the ROM image (inside emulation, not
|
|
to the ROM file) to fix a bug in the ROM code. Both ROM01 and ROM03
|
|
are patched to enable use of more than 8MB of memory. It then patches 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 GSport is unable to keep up--it should only be happening
|
|
if you are trying to force GSport to run at 2.8MHz, but cannot due to
|
|
sound and video overhead.
|
|
|
|
|
|
* Sound emulation
|
|
|
|
GSport supports very accurate classic Apple II sound (clicking of the
|
|
speaker using $C030) and fairly accurate Ensoniq sound.
|
|
|
|
When GSport 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.
|
|
|
|
If your display is not using shared memory, audio defaults to off unless
|
|
you override it with "-audio 1".
|
|
|
|
* SCC (Serial Port) emulation
|
|
|
|
You may use the SCC ports as either a LocalTalk networking connection
|
|
or as traditional serial ports. GSport 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 GSport acts as if a modem is on the serial port
|
|
allowing Apple II communcation programs to fully work, but connected to
|
|
internet-enabled sockets. GSport emulates a "Hayes- Compatible" modem,
|
|
meaning it accepts "AT" commands. You can use GSport to connect to free
|
|
telnet-BBSs, or run a BBS program on GSport 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 GSport in a
|
|
communications program, do "ATDT127.0.0.1", and then log-in to your Mac.
|
|
|
|
GSport also accepts incoming "calls". Start GSport, and initialize the
|
|
Virtual Modem with some AT command (ATZ resets all state, and is a useful
|
|
start). GSport 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 GSport. The Virtual
|
|
Modem then starts printing "RING" every 2 seconds until you answer with
|
|
"ATA". You are now connected.
|
|
|
|
On Windows XP SP2, when GSport 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.
|
|
|
|
GSport also supports an older, simpler socket interface, which it defaults
|
|
to using on slot 1. In GSport, 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 GSport and
|
|
"telnet localhost 6501 | tee file.out" in another window.
|
|
|
|
|
|
* GSport status area
|
|
|
|
The status area is updated once each second. It displays internal
|
|
emulation information.
|
|
|
|
---
|
|
Line 1: (Emulation speed info)
|
|
dcycs: number of seconds since GSport was started
|
|
sim MHz: Effective speed of GSport 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 GSport's
|
|
emulated seconds. Should be 1.00 +/- .01. Under 1
|
|
means GSport is running a bit fast, over 1 means GSport is
|
|
running slow. When you force speed to 2.8MHz, if GSport
|
|
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. GSport 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, GSport 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. GSport 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 GSport
|
|
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 GSport
|
|
is using less accurate, but faster, IWM emulation. Press F7 to toggle
|
|
to accurate disk emulation.
|
|
---
|
|
|
|
* X Window (Linux) interface information
|
|
|
|
If GSport fails to start under Linux, first try the following options:
|
|
|
|
---
|
|
GSport -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 GSport 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}".
|
|
|
|
GSport also forks off a subprocess to help handle the sound if audio is
|
|
active. If GSport crashes in a unusual way (a core dump, for instance),
|
|
you may have to manually kill the subprocess. ("ps -ef| grep GSport;kill
|
|
xxxxx").
|
|
|
|
Geoff Weiss adds some notes for mounting disks/floppies/CDs under
|
|
Solaris 7 through Solaris 10:
|
|
|
|
To use a CDROM, insert the CD and let Volume Management mount it.
|
|
Edit <<<config.txt>>> 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, GSport turns off Unix key repeat when the
|
|
focus is in the GSport window. It should be turned back on every time
|
|
the pointer leaves the GSport window, but sometimes it doesn't. Re-running
|
|
GSport (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 GSport window. Moving the cursor out of the window and then
|
|
back in should solve it. This is sometimes noticeable when running
|
|
Wolfenstein 3D GS.
|
|
|
|
GSport uses a private color-map for its X-window in 8-bit mode. This
|
|
may cause colormap "flash" when your cursor enters the window.
|
|
|
|
* GSport details/troubleshooting
|
|
|
|
GSport will work on all platforms with a 15/16-bit, 24-bit, or 32-bit
|
|
color display. GSport 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.
|
|
|
|
GSport boots s7d1 by default. You can change this using the emulated IIgs
|
|
control panel, just like a real Apple IIgs. GSport 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
|
|
---
|