Compare commits

...

264 Commits

Author SHA1 Message Date
David Schmidt
7e788187b2
Merge pull request #10 from roadriverrail/master
Network support on modern Linux machines
2020-11-14 11:08:51 -05:00
David Schmidt
d1b556c5c5
Fix from Kent Dickey on the WAI instruction
Fantavision hangs when it starts on KEGS-based emulators (which includes GSport and GSplus) due to a bug in the way KEGS handles the WAI instruction.  Fantavision masks interrupts with SEI, sets a SHR line interrupt, and then does a WAI instruction.  This hangs KEGS since it expects an actual interrupt to end the WAI, but there won't be one since interrupts are masked.  I never realized this was a valid WAI use case.

The fix is easy.  In `instable.h`, change:
```
instcb_SYM              /*  WAI */
        g_wait_pending = 1;
        CYCLES_FINISH
```
(There may be some stale #ifdef ASM code, just ignore that) to:
```
instcb_SYM              /*  WAI */
        if(g_irq_pending) {
                g_wait_pending = 0;
                INC_KPC_1;
        } else {
                g_wait_pending = 1;
        }
```
Kent
2020-08-19 15:24:31 -04:00
Rhett Aultman
b3de3bb4c7 Network support on modern Linux machines
This commit introduces two changes:

* The vars for Linux have been modernized to support building an i386
binary on an x86-64 environment, as x86-64 is the overwhelmingly most
common case these days.

* Vars were introduced to enable Uthernet emulation on Linux.
Instructions on its use are provided in the README.
2020-08-08 19:42:00 -04:00
david-schmidt
3e26fb1ecd Update to latest cygwin libraries 2017-10-10 15:49:24 -04:00
david-schmidt
721a604e9f Aim URLs at Github 2017-10-05 13:33:15 -04:00
David Schmidt
5a36db0663 Update README.md 2017-10-05 13:26:43 -04:00
david-schmidt
409106ed09 Help Maven understand the difference between https and http 2017-10-05 13:23:08 -04:00
david-schmidt
dc00a783cc Rebuilding web content 2017-10-05 13:14:24 -04:00
david-schmidt
1be45607fa Merge branch 'master' of https://github.com/david-schmidt/gsport.git 2017-10-05 13:00:33 -04:00
david-schmidt
8193b7c4d5 Host documentation at Github 2017-10-05 12:59:40 -04:00
David Schmidt
31692f5fa6 Update README.md 2017-10-05 12:23:59 -04:00
david-schmidt
876b4519d0 Front-page items after move to Github 2017-10-05 11:25:17 -04:00
David Schmidt
ec6f8bfbb4 Update to latest text of GPL 2.0 2017-10-05 13:29:07 +00:00
Nick Westgate
bfb8ad621d Fixed Windows joystick support. Has nobody ever used this? <:-| 2017-10-05 10:00:05 +00:00
Nick Westgate
8dda6fd620 Fix F4 can exit app after Alt-Tab 2017-04-16 10:18:11 +00:00
David Schmidt
d83331d9ee Close up a brace for MS URL 2016-01-26 19:34:28 +00:00
Peter
f50274816d Remove an unused variable to cleanup a compiler warning. 2016-01-26 19:10:18 +00:00
Peter
6159ff50c0 Document the steps for building with Visual Studio. Cygwin works too on MS Windows if you prefer. 2016-01-26 19:06:27 +00:00
Peter
9a48a8c099 Update the Visual Studio project files for compatibility with the latest free "2015 Community" edition. If you use an older edition (like 2013), the Visual Studio IDE will present a warning but allow you to continue. 2016-01-26 18:52:33 +00:00
Nick Westgate
1462ff0dfb Corrected some of the standard 16 colours for TEXT/LORES/HIRES/DHIRES with RGB values extracted from ROM 3 IIgs video signals by Koichi Nishida. 2015-10-01 10:04:36 +00:00
Christopher Mason
cddea99bd5 Missed one string. 2015-07-12 00:00:59 +00:00
Christopher Mason
3d256ecb15 Hide virtual printer menus if not building with SDL. Minor formatting changes to menus (consistent casing of "ImageWriter") and clarify that the other virtual printer is an Epson. 2015-07-08 21:35:07 +00:00
Christopher Mason
eda058cd0b Fix Ensoniq DOC swap mode behavior so Ninjaforce's NinjaTracker plays looped instruments correctly. 2015-06-06 02:49:33 +00:00
Peter
6ff24f85d0 Configure the "enable AppleTalk diagnostic messages" flag earlier so that initialization messages get printed. 2015-05-05 18:02:27 +00:00
Christopher Mason
79e49b9915 Enable collate function in Windows printer dialog.
Note, this requires that the printer driver internally supports multiple copies and collation. Otherwise the function will not be available to the user.
2015-05-02 04:51:52 +00:00
Christopher Mason
eeec76ecaf Improve handling of Windows printer dialog when printing to a native printer.
-If printing with multipage mode on, user will be prompted with the Windows printer dialog with each print job. If multipage mode is off, user will be prompted every time printer is reset to avoid being prompted for every page.

-Improved error handling when user clicks "Cancel" on the print dialog. An error dialog is shown and the Virtual Imagewriter falls back to bitmap output.
2015-05-02 04:15:12 +00:00
Christopher Mason
4eb6157e11 Force re-creation of the virtual Imagewriter whenever the user enters the control panel. No need to manually select the "Apply Changes" menu item anymore. Moved printer reset function to the main menu so user can reset the virtual Imagewriter quickly and easily if they have a problem. 2015-04-29 19:59:07 +00:00
Peter
9cc8c5645f Improve the performance of AppleTalk.
Prior to this patch, network boot to the desktop at 8 MHz CPU (with "turbo" AppleTalk timing) took 2:08.  After this patch, the same network boot takes 1:17.

Previously, the bridge processed packets from within the emulator's 60 Hz update loop.  This bottlenecks network performance, so this patch increases the update rate.
2015-04-14 01:25:47 +00:00
Peter
1b370205c1 Change the status lines on Windows to use white text on a black background.
r355 changed the window background from white to black (which looks good in full screen mode), and this revision changes the status lines similarly for consistency.
2015-03-15 20:45:16 +00:00
Christopher Mason
3563ed395e Added typedef USHORT so non-Windows platforms can properly compile scc_socket_driver.c. 2015-03-14 17:57:47 +00:00
Nick Westgate
93ee32f993 Improved error handling for SCC socket dial with port number. 2015-02-12 20:05:42 +00:00
Christopher Mason
5cc387205e Always show mouse cursor when printer selection dialog is shown. Previously the cursor was hidden when under GS/OS or when the mouse was "captured" via F8. 2015-02-09 02:23:14 +00:00
Nick Westgate
514a316566 Fix VS warning that should be an error! 2015-02-08 08:47:42 +00:00
Nick Westgate
383f658123 Added SCC socket dial with port number code from Andrew Roughan. Fixed socket closing for Windows. 2015-02-08 06:00:40 +00:00
Christopher Mason
199e2f9a76 Add support to Imagewriter for multiple page sizes and banner printing. 2015-02-08 04:55:32 +00:00
Nick Westgate
502b3f50d9 Integer-only scaled full-screen mode on Windows. (Non-integer scaling can be enabled in the source.) Doing this fixed an existing bug where full-screen restore swapped window position X and Y. 2015-02-06 02:12:28 +00:00
Christopher Mason
a823643faa Fix page margins in Windows once and for all. Clip the source bitmap by the equivalent amount given by the printer driver. Also set the default left margin of the emulated Imagewriter to 1/4 inch. 2015-02-04 05:39:25 +00:00
Christopher Mason
766a0744d8 Add menu item to allow user to apply changes to emulated Imagewriter without restarting GSport. To use, make changes and then select "Apply Changes". 2015-02-03 00:02:45 +00:00
Nick Westgate
fa8313dd1c Fix 5.25 track stepping bug. The only test case is that Mabel's Mansion now boots. 2015-02-02 09:51:26 +00:00
Christopher Mason
753d907315 Slight tweak to pixel resize function for low resolution output. 2015-02-01 20:38:39 +00:00
Christopher Mason
05e6b4c389 Fix Windows printer output to be centered regardless of the margin offsets imposed by a printer driver.
Switch emulated Imagewriter to using page units equivalent to Postscript points (1/72th of an inch) vs 1/10th of an inch. This is to aid in adding additional paper size support in the future.
2015-02-01 20:13:14 +00:00
Peter
e3b7bcd23e Fix a mis-located #endif that would cause the C compiler to skip ImageWriter related function prototypes. Missing prototypes triggered several compiler warnings. 2015-01-07 02:20:23 +00:00
Christopher Mason
ce319c9370 Speed up serial transfer to Virtual Imagewriter. 2014-12-16 21:56:24 +00:00
Christopher Mason
7e57fdbe9c Fix annoying Ensoniq DOC bug that was causing out-of-tune notes in Synthlab and Diversi-Tune. 2014-08-31 03:17:37 +00:00
Christopher Mason
fdead45d01 Implement RLE and ASCII85 encoding on color Postscript output in the Imagewriter emulator. Fix B&W Postscript output scaling bug. 2014-07-30 03:55:12 +00:00
Christopher Mason
4c064fd973 Add vars_x86linux_sdl so folks can build virtual printer support under Linux X11. 2014-07-23 01:28:17 +00:00
David Schmidt
ae7f849af1 Update build instructions for Raspberry Pi 2014-07-10 20:24:35 +00:00
David Schmidt
2432232a60 Trim up the emulated printer documentation 2014-06-26 17:24:08 +00:00
David Schmidt
7e21d64bf0 Update web assets for latest Maven 2014-06-26 16:35:45 +00:00
David Schmidt
8266911a0c Add Christopher Mason's emulated Imagewriter LQ/II doc 2014-06-26 16:34:03 +00:00
David Schmidt
764d461650 Add images for Imagewriter printing 2014-06-26 16:33:06 +00:00
Peter
b36637b133 Remove the AppleTalk "notes.txt" file because the content has migrated to "appletalk.apt". 2014-06-22 20:02:15 +00:00
Peter
c5c82a8c3b Fix two minor typos in the AppleTalk documentation. 2014-06-22 20:00:06 +00:00
David Schmidt
f6925df523 Update version number on site 2014-06-22 13:14:49 +00:00
David Schmidt
a384976235 Re-order release details to put Appletalk first, assign version and date 2014-06-22 13:12:36 +00:00
David Schmidt
ad5e769d90 Better page naming 2014-06-22 02:01:15 +00:00
David Schmidt
e249a055e1 Update web assets for latest maven 2014-06-21 21:46:26 +00:00
David Schmidt
b31c745d6f Update website creation scripts for new content 2014-06-21 21:31:59 +00:00
David Schmidt
7b565978dc Update web documentation to include Peter Neubauer's AppleTalk implementation 2014-06-21 21:28:06 +00:00
David Schmidt
7c874885eb Update maven transform 2014-06-21 20:21:55 +00:00
David Schmidt
3cf688ac2f Update table to please Maven 2014-06-21 20:21:17 +00:00
David Schmidt
b67b4eeb25 Make default imagewriter font be one we ship 2014-06-21 19:36:58 +00:00
David Schmidt
d6938a174b Update version number to 0.31 2014-06-21 19:16:05 +00:00
Peter
044a19af02 Fix an inconsistent menu name. Previously, the "Developer Options" menu appeared in the main menu as "Debugging Options". 2014-06-16 16:09:23 +00:00
David Schmenk
615f06fa17 Fix libraries for fb RPi build 2014-06-10 18:33:33 +00:00
Peter
ab1fee6d3f Shorten the main menu. Previously, the main menu was too long, and menu items would overwrite the help text near the bottom of the screen. 2014-05-21 17:53:23 +00:00
Peter
4cee84c171 Add additional documentation for the AppleTalk bridge. 2014-05-21 17:19:20 +00:00
Christopher Mason
2932a6e6bd Fix a few missing breaks in resolution switch statements. 2014-05-20 23:03:31 +00:00
David Schmidt
9ff3a2aba1 Patch from Vladmir Ivanov (vladitx) - better floating bus support, fixes Castle Wolfenstein random event generation
comp.emulators.apple2, May 4, 2014; Subject: KEGS 0.91 fix for "Beyond Castle Wolfenstein"
2014-05-04 13:30:59 +00:00
Peter
c64cc86de9 Fix Shift-F10 status line toggling on Windows. 2014-04-25 15:36:46 +00:00
Peter
483b63a050 Show the Debugging Options menu on all platforms that support AppleTalk emulation. 2014-04-23 22:14:35 +00:00
Peter
ab27b61d1c Compile C source files with the C compiler rather than the C++ compiler. 2014-04-23 15:36:50 +00:00
Peter
58cc512bc9 Merged revision(s) 262-316 from branches/pneubauer/appletalk: Add support for AppleTalk emulation and bridging. 2014-04-15 03:23:34 +00:00
Christopher Mason
20ca867301 Fix missing extern 2014-04-09 21:56:37 +00:00
Christopher Mason
634b89cc45 Rename a variable to allow Visual Studio to build Imagewriter support. 2014-04-06 22:58:20 +00:00
Christopher Mason
5df55a3269 Fix some errors in Imagewriter code. 2014-04-06 02:09:46 +00:00
Christopher Mason
ce9d39b004 Fix misc errors. Remove SDL and FreeType libraries from vars_win32. 2014-04-03 21:04:18 +00:00
Christopher Mason
408c0453d1 Fix so that Imagewriter will build without SDL. 2014-04-03 19:34:59 +00:00
Christopher Mason
9fe038c8d0 Merge Imagewriter branch into trunk. 2014-04-02 21:29:34 +00:00
David Schmidt
21a61c06a7 Update history for Chris Mason's serial port configurability fix 2014-02-14 11:24:12 +00:00
Christopher Mason
2404c4f5f4 Changed how serial ports are configured. Now you can select what individual port connects to. 2014-02-12 05:10:59 +00:00
David Schmenk
7149c81995 Add TOGGLE_STATUS define 2013-12-21 22:12:03 +00:00
Peter
bb085287d8 Fix console input on Windows to permit the debugger to function.
Previously, on Win32 with MSVC, the non-blocking input function didn't work correctly and prevented use of the debugger.  Instead, use native console I/O to implement non-blocking input, which both works and avoids CRT (i.e. MSVC vs. Cygwin) dependency.
2013-12-04 01:55:22 +00:00
Peter
4db94cb6ff Update the Visual Studio project files to the current version of Visual Studio (2013). 2013-12-04 01:47:37 +00:00
David Schmenk
26d9202ef9 Map Alt-F4 to exit and Alt-F10 to reset 2013-11-24 15:19:07 +00:00
David Schmenk
6a22f2d28b Capture WM DELETE WINDOW for proper cleanup 2013-11-22 22:19:34 +00:00
David Schmenk
d411fd85f4 Bring up to speed w/ TOGGLE_STATUS 2013-11-22 20:37:05 +00:00
David Schmenk
e61efdc528 Call xdriver_end only once on quit key sequence 2013-11-22 00:23:41 +00:00
David Schmenk
405f1c387e Add CMD-SHIFT-F10 -> Quit 2013-11-22 00:08:33 +00:00
David Schmenk
7bcd53b4f8 Toggle status lines with shift-F10 2013-11-19 02:43:27 +00:00
David Schmenk
e3440318be Support arbitrary frambuffer bit depths 2013-11-17 02:43:26 +00:00
David Schmenk
eb50826de5 Uthernet support for RPi 2013-11-16 00:28:17 +00:00
David Schmenk
6f584ae2df Arch routines for TFE 2013-11-16 00:27:24 +00:00
David Schmenk
dd05be98dc Updates to build fbdriver with current 2013-10-07 20:07:50 +00:00
David Schmenk
61df2a666c Clamp mouse position 2013-09-20 04:48:59 +00:00
David Schmidt
2bcae886f4 Add Dave Schmenk's framebuffer+Raspberry Pi implementation - fullscreen on the Pi. Shift-F10 exits. 2013-09-18 12:51:33 +00:00
David Schmidt
b7885c4e2a Joystick fix from Dave Schmenk - correctly read joystick values even when it's not in motion. 2013-09-10 20:47:42 +00:00
David Schmidt
0093780eda Enable incoming serial over IP data with IN#x without having to PR#x first 2013-07-25 15:05:44 +00:00
Peter
aa99ef3e43 Fix some C++ syntax that I accidentally introduced into C code. 2013-06-25 17:17:58 +00:00
David Schmidt
369871df3f Re-enable Cygwin with a couple of tweaks to ifdefs 2013-05-28 20:05:37 +00:00
Peter
9d3d750f98 Fix Win32 specific code that inadvertently leaked outside the "#ifdef _WIN32" blocks. 2013-05-28 17:27:54 +00:00
Peter
15d24ba764 Add several generated files that should not be in source control to the SVN ignore lists. 2013-05-16 02:13:32 +00:00
Peter
08df2baad0 In the Win32 build only, allow the user to hide the console window since a typical end-user won't care about the contents. 2013-05-16 02:06:23 +00:00
Peter
c6057e57ee Implement get_itimer() for Win32, which enables some the emulator's timing statistics. 2013-05-15 20:33:52 +00:00
Peter
08b87fafd0 Cleanup whitespace, indentation, header files, global declarations, and comments in the Win32-specific code to make this code easier to read and maintain. 2013-05-15 20:03:32 +00:00
Peter
b5069fd381 Add a show/hide "debug status lines" configuration option for Win32 so that this preference gets saved. Related, remove the X-Window specific menu option on Win32 to make room for the new "status lines" option. 2013-05-15 15:55:06 +00:00
Peter
032c2c02e5 Use the existing "GSPort32" icon for the window rather than the boring default. 2013-05-15 14:36:27 +00:00
Peter
220ab7a9ee Adjust Visual Studio build settings to slightly improve runtime performance. 2013-05-08 22:01:23 +00:00
Peter
434677d9f9 Remove several unused global variables from the Win32 front-end. 2013-05-08 21:33:55 +00:00
David Schmidt
c642545c2d Tweak Pi instructions more 2013-04-24 20:55:00 +00:00
David Schmidt
989f2c2617 Tweak Pi instructions 2013-04-24 11:25:06 +00:00
David Schmidt
ae968e299d Update developing page for Pi 2013-04-23 18:50:50 +00:00
David Schmidt
00de2c883a Add #include for Raspberry Pi 2013-04-23 15:31:48 +00:00
David Schmidt
268b6e61cb Add Raspberry Pi configuration information courtesy of Mike Stephens 2013-04-22 14:57:35 +00:00
David Schmidt
e008efc24a Update for Peter Neubauer's fix 2013-04-20 04:03:48 +00:00
Peter
72cee13526 Fix a few minor but distracting build warnings. 2013-04-07 18:35:53 +00:00
Peter
e8c512a898 Allow Windows users to hide the debug status lines with Shift-F10. 2013-03-19 22:11:01 +00:00
Peter
571afca835 Correct the calculation for the Win32 window size. Account for the frame and caption size to avoid clipping the status lines. 2013-02-20 22:24:24 +00:00
Peter
fb0c43ccf4 Adjust the Visual Studio build settings to improve build times and debugging with the "debug" build and to improve runtime performance with the "release" build. 2013-02-19 17:38:24 +00:00
Peter
537bd86c92 Add build rules to the Visual Studio project files to automatically run required perl pre-processing scripts. 2013-02-19 16:31:34 +00:00
David Schmidt
06da379cd2 Moving autotools down on the development page so folks don't assume that's the default way to go (yet) 2013-02-18 16:52:06 +00:00
Peter
3f7029ec37 Add a missing null terminator to the slot 1 ROM file list. Previously, GSport could crash when "parallel.rom" is missing due to overrunning the end of the file list. 2013-02-17 17:49:48 +00:00
David Schmidt
1ada0cfb01 Doc tweaks 2013-02-07 13:53:05 +00:00
David Schmidt
185fa8a617 Update history page 2013-02-01 20:33:11 +00:00
David Schmidt
c74afb688b Show clipboard capabilities by platform on developer page 2013-02-01 20:29:11 +00:00
David Schmidt
b93084200a Skip the leading return character when this is the first line in the paste buffer 2013-02-01 14:24:59 +00:00
David Schmidt
8b8e9b32dc Add clipboard paste support doc 2013-02-01 01:51:34 +00:00
David Schmidt
17f949d137 Add clipboard paste support 2013-02-01 01:48:24 +00:00
David Schmidt
b6409c9b2a Enable shift-insert for Oliver's clipboard paste 2013-01-30 18:18:11 +00:00
David Schmidt
8fe3ffb920 Open the SCC port on IN#, not just PR# 2013-01-28 19:34:44 +00:00
Oliver Schmidt
93eda21bae Added 'Paste from Clipboard' with F5 key on Windows. 2013-01-27 13:26:13 +00:00
Oliver Schmidt
05fcad315e Made the Visual C++ 2010 solution generally work (again). 2013-01-09 22:52:17 +00:00
David Schmidt
1740ab7044 Update page for Ewen Wannop's starter kit download 2012-07-13 19:16:29 +00:00
David Schmidt
868a0d0d73 Doc tweaks 2012-03-27 20:41:58 +00:00
David Schmidt
ddce4486f8 Update printer documentation 2012-03-27 20:33:17 +00:00
David Schmidt
88cb830565 A little doc cleanup 2012-03-05 21:02:19 +00:00
David Schmidt
18624d3269 Add a little note in the mac vars about some interesting tidbits about SDKs and linking 2012-03-05 17:52:51 +00:00
David Schmidt
9d3d2e79d3 Fixing up some build artifacts for Windows 2012-03-04 13:34:18 +00:00
David Schmidt
2992da09d6 Ignore more rom files 2012-03-02 19:38:16 +00:00
David Schmidt
f5ce7f7f77 Geez, the build wasn't really picking up the native printer code for Win32! 2012-03-02 19:35:46 +00:00
David Schmidt
8159606d9a OSX needs to calculate endianness mid-compilation; it can't be passed on compile command since one gcc invocation can produce both ppc and intel binaries 2012-02-29 17:37:44 +00:00
David Schmidt
8644685329 Doc updates 2012-02-29 05:14:37 +00:00
David Schmidt
1a53b8b314 Updating doc 2012-02-29 01:06:06 +00:00
David Schmidt
1a92935d20 Boot from a disk image when initially invoked with it 2012-02-28 06:16:34 +00:00
David Schmidt
4a092e181b Add a tiny little boot image in s7d1 so GSport drops you into BASIC vs. the monitor. 2012-02-27 19:42:15 +00:00
David Schmidt
ddb9a59b5e Move font file back to lib directory, since we can reliably point to it there 2012-02-27 17:59:29 +00:00
David Schmidt
844ac605d4 Add parallel.rom to Mac distro 2012-02-27 16:57:34 +00:00
David Schmidt
4478fb3306 Update windows vars 2012-02-26 23:21:56 +00:00
David Schmidt
f04ff66a84 Update version number for release 2012-02-26 22:08:08 +00:00
David Schmidt
e23679c134 Fixing up the Mac build to be compatible with ppc and intel all in one go 2012-02-26 21:00:06 +00:00
David Schmidt
d2bcf31a45 A little cleanup for Mac OSX 10.3 2012-02-25 19:19:57 +00:00
David Schmidt
dd47539e6b Update generic Unix build - compile with g++ to pick up printer additions, which also resulted in a number of casting changes. 2012-02-24 22:23:00 +00:00
David Schmidt
1ea60eab96 Shuffle Mac build artifacts around, add COPYING.txt to Mac .dmg 2012-02-23 12:40:43 +00:00
David Schmidt
50ab176b20 Keeping the history up to date 2012-02-23 03:21:53 +00:00
David Schmidt
8a755df093 Pretty, pretty icons 2012-02-23 01:57:58 +00:00
David Schmidt
13b927ba21 Nice .DMG for Mac OSX 2012-02-22 03:20:07 +00:00
David Schmidt
69f9348b9c Nice .DMG for Mac OSX 2012-02-22 03:18:41 +00:00
David Schmidt
889e13cd7a Nice .DMG for Mac OSX 2012-02-22 03:18:18 +00:00
David Schmidt
e7ff3fbe25 Update Mac processing for finding cwd 2012-02-22 00:54:59 +00:00
David Schmidt
69622cb30e Work harder to find current working directory in Windows
Update Cygwin DLLs
2012-02-21 16:43:36 +00:00
David Schmidt
a0682eeb28 Have *nix ports automagically create a config file in the current working directory if it doesn't exist 2012-02-21 14:37:20 +00:00
David Schmidt
639b52bda2 Keep up to date with Maven 2012-02-18 23:41:33 +00:00
David Schmidt
e769a36462 Keep history updated 2012-02-18 23:31:18 +00:00
David Schmidt
943cea7559 Windows build now puts everything in one directory for easier operation 2012-02-18 08:03:17 +00:00
David Schmidt
ac77772f2a Typo snuck in somehow... 2012-02-18 07:58:57 +00:00
David Schmidt
e7e481206d Make life easier on Windows - drag/drop files get more Posix-like names so you can edit file locations from config window 2012-02-18 07:34:21 +00:00
David Schmidt
1c9806253e 2012-02-18 06:21:43 +00:00
David Schmidt
4f0a1d79af Tweaking doc 2012-02-17 14:37:04 +00:00
David Schmidt
70bc2d6785 Updating the doc a bit 2011-01-17 16:30:35 +00:00
David Schmidt
72512f2fc1 Have Windows work with sound 2011-01-16 22:52:06 +00:00
David Schmidt
1ffc645cba Update printer dev documentation 2011-01-10 12:27:25 +00:00
David Schmidt
5dd9a17a3c Update printer dev documentation with text info 2011-01-10 11:45:51 +00:00
David Schmidt
08bc587246 Making sure Win32 can build with and without SDL support, suppress some warnings 2011-01-10 03:10:09 +00:00
David Schmidt
b62b14b392 Let everyone print text. This is a particularly bad hack of the printer code, with ifdefs all over printer.cpp for SDL. I removed HAVE_PARALLEL, since every one has it now; but HAVE_SDL is now a switch that defines if a platform has the graphics library available instead. 2011-01-09 23:19:39 +00:00
David Schmidt
357870d575 Add plain text printer output 2011-01-09 17:27:11 +00:00
David Schmidt
f695a3ace2 Some better post-compile cleanup 2011-01-09 15:15:13 +00:00
David Schmidt
19fb013161 Add a couple of diagnostic messages to printer support 2011-01-08 14:07:06 +00:00
David Schmidt
8cf0e5c5fb Update docs 2011-01-07 17:22:13 +00:00
David Schmidt
d6f2cc60f8 Allow unix to write a .ps to the current directory (not to the root of the filesystem)! 2011-01-07 17:00:11 +00:00
David Schmidt
36fdba6b47 Update Cygwin makefile 2011-01-07 13:23:21 +00:00
David Schmidt
a04a010658 Add diagnostic message to report ROM reading 2011-01-07 12:54:47 +00:00
David Schmidt
24376db6d4 Add literal location to default font we'll ship 2011-01-07 12:53:49 +00:00
David Schmidt
cb462b333a Remove a couple of debug printfs 2011-01-07 12:51:38 +00:00
David Schmidt
73123505f8 Add printer support libraries to archive 2011-01-07 12:42:59 +00:00
Christopher Mason
4c106419f5 Fix MSB masking on parallel port output. 2011-01-07 03:03:10 +00:00
David Schmidt
7a31afd2a9 Add printer information to the doc 2011-01-07 02:37:22 +00:00
David Schmidt
a8f650d5f1 Add printer developer information to the doc 2011-01-07 02:36:44 +00:00
David Schmidt
2218032bc2 Add printer developer information to the doc 2011-01-06 22:34:27 +00:00
David Schmidt
6fa1cf2730 Add printer developer information to the doc 2011-01-06 22:08:33 +00:00
David Schmidt
8a81d7f7ae Add printer page to the doc 2011-01-06 21:46:17 +00:00
David Schmidt
6140d08062 Add printer page to the doc 2011-01-06 21:29:37 +00:00
David Schmidt
ae9a0c0206 Add printer page to the doc 2011-01-06 21:28:51 +00:00
David Schmidt
062923bcb7 Update docs 2011-01-06 14:43:51 +00:00
David Schmidt
8d99d958fc Update about dialog. 2011-01-06 13:07:49 +00:00
David Schmidt
3b1d6dce37 Have Mac remove the .app when making clean 2011-01-06 03:17:49 +00:00
David Schmidt
3443ba812b Quit, even when the config menu is up. 2011-01-06 03:07:09 +00:00
David Schmidt
a7bedf29cd Cleaning up build artifacts 2011-01-06 00:56:58 +00:00
David Schmidt
e2758d666d Make architecture on OSX be variable (ppc, i386, x86_64) 2011-01-03 15:53:02 +00:00
Mike Stephens
632f67aea9 Merge from mstephens branch. Incorporates modifications to support building under Visual Studio 2010. 2010-10-12 02:43:33 +00:00
David Schmidt
d6f4fb2865 At least make OS/2 paint a picture on the screen until we can get the rendering sorted out... 2010-06-11 11:54:33 +00:00
David Schmidt
bebb4c2c39 A little more progress on OS/2 2010-06-01 07:07:43 +00:00
David Schmidt
6d1b9c3a23 Clean up a couple of OG-isms 2010-05-29 00:33:51 +00:00
David Schmidt
09194da30a Enable Win32 fullscreen, after a fashion 2010-05-19 04:21:11 +00:00
David Schmidt
51f8191a1c Accept dropped files again 2010-05-08 19:04:35 +00:00
David Schmidt
ce80e6ebca Merge in changes from activegs for x build 2010-05-08 14:06:51 +00:00
David Schmidt
d272682f48 Split drivers into pieces 2010-05-08 13:33:38 +00:00
David Schmidt
6b6b1e84cc Merge activegs changes specific to Mac 2010-05-08 05:13:17 +00:00
David Schmidt
5dc39a808f Merge in changes from activegs 2010-05-08 04:41:06 +00:00
David Schmidt
ad70b6bd8d Remind myself how to build with autotools 2010-04-28 03:02:11 +00:00
David Schmidt
e906aef693 Tired of seeing the RCSID tags - they're supposed to come out of the source control system, but they don't any more. 2010-04-28 01:07:29 +00:00
David Schmidt
cf73dc4d8b Replace perl scripts with rexx for building size and inst header files under OS/2 2010-04-27 15:37:44 +00:00
David Schmidt
b6ebec20a6 If audio won't work on Unix, disable it and move on rather than dying. 2010-04-26 12:32:46 +00:00
David Schmidt
668747920b More OS/2 work 2010-04-26 03:55:13 +00:00
David Schmidt
5712dd36e3 More OS/2 work 2010-04-26 02:00:57 +00:00
David Schmidt
705f3a159b OS/2 tinkering 2010-04-23 17:31:10 +00:00
David Schmidt
6e76de124b OS/2 tinkering 2010-04-23 17:17:49 +00:00
David Schmidt
d354d5739f Move os2driver out of main src and under arch instead 2010-04-22 03:42:06 +00:00
David Schmidt
c4d13a5ee1 Mucking about with OS/2 2010-04-22 03:41:14 +00:00
David Schmidt
acb2bce28e Add OS/2 resources 2010-04-22 02:41:21 +00:00
David Schmidt
d2bf79bb7c Removing all references to the KEGS name except in the copyright notices 2010-04-21 21:59:03 +00:00
David Schmidt
92e67702f0 Fix up a couple of references from GSportMac to just GSport 2010-04-21 13:22:04 +00:00
David Schmidt
13183e4ce7 Replacing file descriptor read/write calls with FILE fread/fwrite calls for a little more standard portability. 2010-04-18 03:06:51 +00:00
David Schmidt
5f858c9e94 A start on an OS/2 port - a makefile for VAC++ and a few missing functions ported from VICE. 2010-04-18 03:05:19 +00:00
David Schmidt
6fe4eba92f Simplify image size discovery, rename GSportMac to just GSport 2010-04-17 21:15:15 +00:00
Geoff Weiss
3f3d8902fd Associate better reference to a documentation note I made 10 years ago 2010-04-17 18:54:41 +00:00
David Schmidt
f5c585f7b0 Quiet down the Windows build 2010-04-17 00:42:53 +00:00
David Schmidt
27173383be Fix Win32 TFE build, add OS/2 ifdefs just in case... 2010-04-16 17:25:31 +00:00
David Schmidt
b14d22ae62 Treat final argument as a disk image to insert if present (and is not a command-line switch) 2010-04-16 11:47:47 +00:00
David Schmidt
8096e96c21 Should probably close files again after you're finished with them. 2010-04-16 02:14:59 +00:00
David Schmidt
69507de665 Enable drag/drop files in Windows, add disk image size guessing to config. 2010-04-16 02:05:37 +00:00
David Schmidt
30eb739554 Remove non-standard booting behavior of quitting after slot 7, even when scanning slots. 2010-04-15 23:12:34 +00:00
David Schmidt
5206c8ef57 Ignore *nix output 2010-04-15 12:26:35 +00:00
David Schmidt
a0254a567a Update default speed limit to be 2.8, update Mac niceties 2010-04-15 05:25:16 +00:00
Christopher Mason
7ca3cbf190 Updated $C04F (soft switch to ID emulator) to return 'G' instead of 'K'. 2010-04-15 04:55:59 +00:00
Christopher Mason
fc4a69adfa Added virtual printer time-out back in 2010-04-15 04:52:05 +00:00
David Schmidt
051650b3dc Tie new Mac icon to resource bundle 2010-04-15 03:48:52 +00:00
Christopher Mason
82e7c863bc Fixed build problems with Uthernet (missing types.h include).
Fixed config.c, should build properly on VC++ and Cygwin.
2010-04-15 02:56:31 +00:00
David Schmidt
7d5ce87bc6 Oops, committed a typo 2010-04-15 00:37:24 +00:00
David Schmidt
68db86f65b New Mac icon, more name changes 2010-04-15 00:33:13 +00:00
David Schmidt
326a72dbf1 Doc updates 2010-04-14 21:02:17 +00:00
David Schmidt
65ddbd093c Move more documentation to web 2010-04-14 17:13:25 +00:00
David Schmidt
965e62f97c Move more documentation to web 2010-04-14 16:22:12 +00:00
David Schmidt
e58394fcf9 Add web analytics 2010-04-14 13:56:57 +00:00
David Schmidt
115c778e97 A few more name changes 2010-04-13 22:28:47 +00:00
David Schmidt
77115c70f5 Some more web stuff 2010-04-13 18:29:34 +00:00
David Schmidt
148dcb3235 Add a basic web page via Maven 2010-04-13 16:49:23 +00:00
David Schmidt
50ea82340b Add a basic web page via Maven 2010-04-13 16:47:33 +00:00
David Schmidt
2d13dae3c0 Integrate Christopher Mason's Uthernet and Printer code 2010-04-13 15:17:20 +00:00
David Schmidt
13f860d7ef Ignore more build output 2010-04-13 14:52:29 +00:00
David Schmidt
66727922ce Ignore more build output 2010-04-13 14:52:09 +00:00
David Schmidt
8363914231 Buildable in cigwin/mingw, traditional GUI, no backended Uthernet/Printer support 2010-04-13 14:40:17 +00:00
David Schmidt
70b50d3812 Merge latest naming trunk changes 2010-04-13 14:22:58 +00:00
David Schmidt
c34bc55c64 Compilation fix for Mac 2010-04-13 11:31:55 +00:00
David Schmidt
48138e26a9 Start over with Christopher's TFE 2010-04-12 21:32:29 +00:00
David Schmidt
98319113bf Start over with Christopher's TFE 2010-04-12 21:30:17 +00:00
Christopher Mason
dd2cdd7ccb Deleted VS.NET 2008 project files. Paths were not relative. 2010-04-12 20:49:38 +00:00
Christopher Mason
9da3f08ae9 Replaced scc_windriver.c with original copy. 2010-04-12 20:46:27 +00:00
David Schmidt
1126c6dec1 Almost buildable on win32... 2010-04-12 15:58:22 +00:00
David Schmidt
e06f441c39 Merging in Glenn's TFE structure for now 2010-04-12 15:57:19 +00:00
David Schmidt
8b8616209d Buildable on Linux 2010-04-12 15:31:11 +00:00
David Schmidt
4a3949112f Protect Uthernet with HAVE_TFE and Printer with HAVE_PARALLEL 2010-04-12 14:23:37 +00:00
David Schmidt
e78127fcbe New output filenames 2010-04-12 12:55:38 +00:00
David Schmidt
d4f8d4d606 Initially merge Christopher Mason's changes in (build not working yet) 2010-04-12 10:48:59 +00:00
David Schmidt
9969c4a416 Creating Christopher's branch 2010-04-12 03:35:56 +00:00
231 changed files with 30455 additions and 10685 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/.project
/GSport.app

View File

@ -1,467 +0,0 @@
Changes in KEGS v0.91 since v0.90 (12/06/04)
- Fixed serious bug in engine_c.c that could cause Finder file copies to
silently corrupt data.
- Virtual Modem support--modem appears on serial port, allows outgoing
and incoming connections.
- Sockets (and Virtual Modem) supported on Windows.
- Fixed various reset bugs (where pressing Ctrl-Reset would cause infinite
beeps, etc).
- Allow user to select ROM file from config panel if not found.
- Improved Mac OS X interface: Full Screen support and error dialogs.
- Better floppy support by always having 5.25" read nearest track regardless
of head position (supports Last Gladiator game bad crack by
emulating other emulators).
Changes in KEGS v0.90 since v0.89 (10/19/04)
- Make Keypad Joystick the default joystick emulation
- Fix timezone calculation on Mac OS X for central time zone.
- Fix handling of long paths in config panel, reported by David Scruffham.
- Always call joystick_init at startup.
- Fix F2 keymappings for X Windows, to fix some issue reported by
David Wilson.
- Fixed some documentation issues reported by David Wilson.
- Fixed a bug in joystick_driver.c reported by Doug Mitton.
- Add README.a2.compatibility to discuss known issues with programs.
Changes in KEGS v0.89 since v0.88 (10/17/04)
- Make old mouse button presses disappear after .5 seconds.
- Add Keypad Joystick, along with configuration menu choices to enable it.
The keypad numbers move the joystick to the indicated direction,
with chording allowing in-between values.
The keypad '0' is button 0 and keypad '1' is button 1.
- Also add jostick scaling factor and trim adjustment.
- Allow user to increase keyboard and mouse scan rate to 240Hz from 60Hz
for some better game response.
Changes in KEGS v0.88 since v0.87 (10/13/04)
- Add configuration setting to debug halt on code red halts. Also add
configuration mode (on by default) to shadow text page 2 on ROM 01,
which is an enhancement over a real IIgs.
- Handle mac binary header on images. Handle compressed .po images.
- Fix refresh rate to 59.923Hz from 60Hz so that exactly 17030 1MHz cycles
pass in one screen refresh period.
- Enhance trace-to-file function to also write out data values stored using
the Data_log info.
- Debugger adds memory move and memory compare functions.
- Support "floating bus" where reading certain $C0xx locations returns the
current video data. This allows Bob Bishop's split-screen demos to
run and enables Drol's between-level animations to work fully.
Changes in KEGS v0.87 since v0.86 (10/05/04)
- Remove all of Jonathan Kalbfeld's and Gilles Tschopp's contributions.
All of Solaris audio is removed.
- Fix config screen not drawing correctly if emulator was currently displaying
video page 2.
- Fix STP instruction.
- Fix mouse-joystick which was halving the Y dimension.
Changes in KEGS v0.86 since v0.85 (03/23/04)
- Add patch for Solaris sound by Jonathan Kalbfeld.
- Fix so that F4 enters config panel even while running Prosel-16
- Major mouse pointer changes, based on some ideas from Geoff Weiss.
The GSOS mouse now exactly tracks the host pointer automatically.
- Fixed an accidental debug halt when Prosel-16 disables the keyboard/mouse.
Changes in KEGS v0.85 since v0.84 (01/09/04)
- Fix some minor 65816 bank-crossing bugs.
- Add -noignhalt to allow user to stop on code red halts.
- Fix Win32 capslock problem as reported by Edward Moore
- Fixed DreamVoir app on the sample image (it was corrupt)
Changes in KEGS v0.84 since v0.83 (11/21/03)
- Add new speed, 8.0MHz directly using right-clicking or F6.
- Sim speed and Video update interval added to Config panel.
- Various cycle timing bugs in engine_c.c fixed.
- Add Config Panel entry to mask serial output to 7-bit, to enable PR#2 to
work better with an external telnet.
- In Config Panel file selection, typing a letter jumps to the first file
beginning with that letter.
- Fixed various serial socket bugs. Now you can disconnect a telnet session
and start a new one, and a Linux hang is fixed.
- Default GS memory size increased to 8MB.
- Small fix to double-hires color table.
- X windows can now send displays to other-endian X servers.
Changes in KEGS v0.83 since v0.82 (11/19/03)
- Add Memory Size to config panel, with support for up to 14MB of memory
(Geoff Weiss)
- Add $C04F EMUBYTE support which Bernie II the Rescue defined. (Geoff Weiss)
- Fix $CFFF code red's reported by David Wilson.
- Add smartport $C70A Format routine (David Wilson).
Changes in KEGS v0.82 since v0.81 (11/06/03)
- Fix superhires display glitch introduced in v0.81.
- Improved border handling--XMAS demo looks great.
- Fix some X build problems introduced in v0.81.
Changes in KEGS v0.81 since v0.80 (11/04/03)
- Code Red/Yellow warnings about emulation stability
- Windows file browsing fixes
- Built-in C600 ROM for Apple II 5.25" game compatibility
- Turns key repeat back on when exiting from X-windows version
- Windows F8 captures the cursor
Changes in KEGS v0.80 since v0.71 (10/31/03)
- Configuration Panel means no more hand-editing configuration files
- All emulator state is now saved in "config.kegs"
- 3200 color pictures! Video system much improved for display accuracy.
- F8 Pointer grabbing works on Mac
- ZipGS emulation
Changes in KEGS v0.71 since v0.70 (11/20/02)
- Improved double-hires colors a lot. -dhr140 is no longer the default
- Airheart relies on the PC going from 0xffff to 0x0000, so I undid the
change from KEGS v0.54 which allowed PC to overflow to 0x10000.
This slows KEGS down by about 5%.
- Fixed X shared memory bug in KEGS v0.70 with fix from Jonathan Stark.
Changes in KEGS v0.70 since v0.60 (11/18/02)
- New buttons: Middle button is enter-debugger, and right button changes speed
- New function key mapping (see README.kegs)
- Mac OS X port
- Win32 port
- Centralized much of what had been "xdriver.c" code into video.c, to move
true platform-specific stuff into the various *driver.c codes.
Kimage struct tracks video display buffers in a dev-independent way.
From video.c, the calls to the platform code start with "x_" mostly.
Code in video.c cleaned up somewhat.
Borders are now always in native buffer format, while text/hires/
and superhires are in 8-bit buffers and translated to native later.
- Mac and Windows sound are all done in one process--no child sound process.
- Revamped key press handling and mouse clicks--all is now handled in
adb.c for a consistent user interface. Now KEGS implements the
same function keys on all platforms. See README.kegs for fn key maps.
- I copied the debugger help from Frederic Devernay's KEGS-SDL port.
- Fixed an old IWM bug causing bad nibblization due to using uninit vars.
- Gilles Tschopp workaround to use corrupted 2IMG files (from KEGS-OSX).
- Gilles Tschopp provided code to zero //gs memory at startup (from KEGS-OSX)
- Simple code to try to use Mac Diskcopy format disks
- Ignore writes to 0xc0a8
- Search in $HOME and the launch directory (for mac) for kegs_conf/ROM
- Remove font65.sim file by integrating it into kegsfont.h.
- "-bw" option forces black and white hires mode.
Changes in KEGS v0.60 since v0.59 (10/03/00)
- The 16-bit colors were still wrong due to another coding error. It would
be much easier to get this right if I had a 16-bit color display...
A user says it works now.
Changes in KEGS v0.59 since v0.58 (7/07/00)
- Added support for multiple paths to the default files and also multiple
names for many default files. This should make the .rpm distribution
work better.
- Add another keycode to mean break according to mic@research.nj.nec.com.
- Add support for various ROMs to get plugged into slot 1-7.
- Fix code so that it should compile on 64-bit platforms.
Changes in KEGS v0.58 since v0.57 (2/08/00)
- Setting the execute bit on the disk image no longer means no-write-thru.
Too many new users were getting confused by this.
- Fixed another bug with Apple //e bank switching created by v0.56
Reported by phoenyx.
- Add command line option "-v" to turn on some verbose debugging flags.
- Fixed potential core-dump bug with non-8 bit visuals.
- Fixed double-lo-res color problem.
- The X driver should work with any visual depth display now and get the
colors right. Ian Schmidt reported his 16-bit card had bad colors.
Changes in KEGS v0.57 since v0.56 (12/27/99)
- Another try at making timezone stuff work across all Unix variants.
Let me know if the time in the Apple //gs control panel doesn't
match your real local time.
- Fix a bug created in v0.56 where the fast //e bank switch code had a typo.
This prevented ZBasic from working correctly.
Changes in KEGS v0.56 since v0.55 (10/31/99)
- Faster Apple //e bank switch emulation.
- Simplified number of global variables for various softswitches.
- Fixed a bug which made 3.5" and 5.25" disk access much slower than necessary.
- Improved scan-line interrupt accuracy (lets MEGADEMO run).
- Improved sound interrupt accuracy (was hoping this would fix some sound
issues, but it doesn't seem to help).
- Add Mode_switch as an alias for the Option key
- I noticed the //gs self-tests were broken again--fixed.
Changes in KEGS v0.55 since v0.54 (10/19/99)
- In LOG_PC debug aid, add cycles to the trace
- Fix MEGADEMO bug where 3.5" disks weren't properly ejected. Needed to
look at iwm.motor_on35 not iwm.motor_on.
- Temp fix for MEGADEMO to not halt if shadow-in-all-banks is on in $c036.
- Another MEGADEMO fix to not take a scan-line int if the SCB was cleared
right before the raster got to this line.
- Fix bug in smartport.c that was causing core dumps if you tried to init
a disk is s7dx.
Changes in KEGS v0.54 since v0.53 (10/10/99)
- Add support for Out Of This World's direct reading of ADB RAM loc 0xb to
get key status. This lets shift/control work in OOTW.
- Code simplification to get rid of most set_halt() calls and use halt_printf.
- Speed improvement: track kpc (merged kbank and pc in one 32 bit variable)
which makes the inner loop faster. This does make KEGS not
accurately model a 65816 code crossing bank boundaries, but just
about every other emulator gets it wrong, and the speed improvement
is 5-10%. And I don't know of any code which relies on it
working correctly.
- Fix to allow better GS/OS compatibility: after each smartport call,
set 0x7f8 = 0xc7.
- Fixed ZipGS emulation bug where KEGS was not re-locking Zip at the right
time, which made double-hires not work after booting GS/OS.
Changes in KEGS v0.53 since v0.52 (8/3/99)
- Move all the "fcycles" timing calculations to use double instead of float.
- Fix display shadowing bug reported by "phoenyx" which caused the text
display to not always be updated correctly with funny bank switching.
- Added the "Home" key as an alias for the '=' on the keypad.
- Changed the way X modifiers are interpreted to increase compatibility of
Caps Lock to more X servers.
- Add -dhr140 option to use old double-hires color mode that results in
exactly 140 horizontal pixels with no bleeding. It's set default
to "on" for now while I work out double-hires colors.
- Started adding some ZipGS compatibility--control panels run, but all
the controls are effectively ignored by KEGS.
Changes in KEGS v0.52 since v0.51 (6/27/99)
- Small speed-up of interpreter loop to avoid checking the global variable
"halt_sim" after every instruction.
- Smartport fixes to avoid halts when the SCSI CD player NDA is installed.
- Fix to autodetect X visual depth (it didn't work at all in v0.51).
- Fix to HP binary--KEGS v0.51 hit an HP linker bug which caused the
executable to not run correctly. (It didn't obey an assembly-
language alignment command correctly). Re-ordering the object
list works around the problem.
Changes in KEGS v0.51 since v0.50 (6/1/99)
- Fixed many bugs that crept into scanline interrupts over the last few months.
- RAM size is now settable on the commandline: -mem 0x400000 will use
a 4MB expansion RAM card (giving you 4.25MB of memory with ROM 01).
- VBL time used to be a variable (which was wrong)--it's now always the
same number of cycles.
- Typo preventing joystick_driver.c from compiling fixed.
- Auto senses X visual depth, searching for 8 bit, then 15 bit, then 24,
then 16 bit visuals. Can still override this with commandline.
Changes in KEGS v0.50 since v0.49 (5/31/99)
- Added Linux joystick support with code provided by Jonathan Stark.
Activate with "-joystick" command line option.
- Small improvements in s7 device handling. If you have no s7 devices or no
bootable devices, KEGS launches Applesoft.
- Bug fix in scan-line interrupts--they were occurring at the wrong time
previously.
- Rewrote double-hires color routines. They're still not quite right,
but it's a lot better than it used to be.
Changes in KEGS v0.49 since v0.48 (5/3/99)
- Fixed a key-repeat bug in v0.48 caused usually with shift-key sequences.
- Fixed bug where GNO would not work with ROM 03. ROM area at $C071-$C07F
is different from ROM 01.
- Ian Schmidt pointed out a special Ensoniq case where an oscillator in
one-shot mode can cause it's partner to start if it is in swap mode.
- Integrated in Geoff Weiss's Solaris x86 ports. I might have broken it
making a few last-minute changes...
Changes in KEGS v0.48 since v0.47 (4/13/99)
- Even better ADB key repeat--key rollover works more like a real Apple //gs.
- IWM fix: some "smarport" modes were being activated sometimes during
normal 3.5" accesses, resulting in some games not loading correctly.
- Some fixes to serial port emulation to handle programs writing to
the serial port in MIDI mode when the chars will not be consumed.
- Smartport fix to set zero-page locations $42-$47, needed by some poorly-
written game loaders
- The "oscilloscope" effect in some sound-demos now shows the sounds
being played.
Changes in KEGS v0.47 since v0.46 (4/7/99)
- ADB fix #1: reading $c010 should give key-down status better
- ADB fix #2: key repeat was stopping if modifier key pressed
- ADB fix #3: The game "Pirates" was crashing on startup due to a small bug.
- Bard's Tale 2 was freezing on startup due to a bug in the WAI instruction.
- Major serial port rewrite. Diversi-Tune now runs and sound OK (but there
are some small problems) and serial port emulation is better.
Changes in KEGS v0.46 since v0.45 (3/21/99)
- Fix for undefined var in engine_c.c. Oops.
- Fix for old bug in engine_c.c causing KEGS to sometimes misinterpret
instructions which cross page boundaries. Was causing Thexder not
to work, at least.
Changes in KEGS v0.45 since v0.44 (3/20/99)
- Fix for COP instruction in engine_c.c. Pointed out by Kelvin Sherlock.
- Major fixes to Ensoniq emulation, SynthLab sounds much better.
- Fix to iwm.c to deal with corrupt 2IMG archives a little better.
Changes in KEGS v0.44 since v0.43 (2/23/99)
- -audio 0 option would often cause programs to hang. Bug was that the
audio rate was defaulting to '0' which confused KEGS.
- Made keycode 0x072 be the XK_Break key for XFree86
Changes in KEGS v0.43 since v0.42 (2/19/99)
- Support .nib 5.25" format as read-only
- Faster 3.5" nibblization routines (should make startup faster)
- Fixed a very-old 3.5" disk writing bug that made bit-copiers not work
Changes in KEGS v0.42 since v0.41 (2/1/99)
- Include <errno.h> to fix Linux compile problem
- Fix relative branch timing bug that was making IWM emulation flaky
(backward branches should count as 3 cycles if to the same page,
and 4 if to a different page in emulation mode. Bug always counted
them as 4)
- Gave up on fast 5.25" writes--KEGS always slows to 1MHz for 5.25"
writes since the timing and kludges just got too annoying.
- add "-arate 22050" option to change audio sample rate on the command-line.
Slower audio rates can hit more audio bugs (I'm working on them).
- fixed little-endian bug in smartport.c and partls.c
- fixed side border redraw bug that would sometimes leave super-hires
images on the right-side border.
Changes in KEGS v0.41 since v0.40 (1/19/99)
- Fixed bug where fill-line mode would not always redraw the screen correctly
- Changed some // comments to /* */ to help David Wilson's Solaris port
- Fixed little-endian bugs in smartport.c preventing mounting of
parititioned disks. Fix submitted by Jonathan Stark.
- Christopher Neufeld noted that fast space/delete option in the control
panel caused KEGS to hit breakpoints. I fixed this and fast arrows and
fast mouse options (they are now just ignored).
- Solaris port by David Wilson now provides a Makefile_solaris
Changes in KEGS v0.40 since v0.39 (10/25/98)
- 15 and 24 bit depth displays now supported (though somewhat slower than
8 bit displays). But Super-hires displays now show 256
simultaneous colors on a 16- or 24-bit X display.
Select a 15-bit display with the cmd line option "-15" and
a 24-bit display with "-24". Otherwise, KEGS defaults to looking
for an 8-bit display, and fails if it cannot find one.
- Some border fixes--border colors now update correctly when palette
changes occur (like via F10).
- Alias F1 to ESC for OS/2.
Changes in KEGS v0.39 since v0.38 (9/13/98)
- OS/2 port by Tschopp Gilles
- handle cr&lf better in disk_conf
- Drive letters work and are not confused with partition names, so
s7d1 = D:\images\cd:1 will open partition 1 correctly.
- KEGS no longer uses system() to do file copies, it does it all
using POSIX calls.
- Unix-specific socket calls moved from scc.c to scc_driver.h
- Default X handler re-installed properly now for better debug
- Nasty core dump bug found and fixed by Tschopp Gilles in disk switch code
Changes in KEGS v0.38 since v0.37 (7/28/98)
- IWM bugs:
- fast_disk_emul off under GS/OS caused I/O errors.
KEGS was always slowing down to 1MHz when 5.25" drive was on, when
it should have been obeying the $C036 register.
- bug in IWM on little-endian processors
- disk ejection should now work, but a beta user claimed some bugs on
x86 Linux.
- 2IMG support, but only lightly tested.
- Removed some internal breaks on access to $C0B0 for tool033.
- Modulae also stumbled into some breakpoints by writing to $C02F,
which does nothing.
- Screen refresh simplified (for me) by redrawing the screen while
raster is on first scan-line, rather than line 200.
However, a side effect is some of the graphics during the XMAS DEMO
look a bit choppier.
- More SCC fixes to avoid breakpoints under GNO.
- Start support for sound under Linux, but it sounds horrible right now.
Any Linux sound gurus want to help out?
- Fixed possible array-overrun bug in video.c around border effects.
Maybe shared memory works under x86 Linux now?
- Made changes for OS/2 port to fopen() text files. From Blue Neon.
Changes in KEGS v0.37 since v0.36 (7/13/98)
- Linux PPC port completed and functional. KEGS has been tested to
run quite well and quite fast on a 240MHz 604e running
MkLinux pre-DR3.
- Change LITTLE_ENDIAN define to KEGS_LITTLE_ENDIAN since Linux
always defines LITTLE_ENDIAN as a silly macro.
- Dumb bug in IWM 3.5" routines could cause core dumps if disk arm moved
from outer track to inner track very quickly.
- Deleted some breakpoints that some Second Sight searching code would hit.
- Ignore some SCC reset commands GNO would use that caused KEGS to stop.
- Handle odd partitions better--some //gs formatted Zips had a blocksize
of 0, which defaults to 512 now.
- Handle some keysyms better to avoid MkLinux bug with keysym 0.
Changes in KEGS v0.36 since v0.35 (5/30/98)
- Linux x86 port completed and functional with help from Karl Pfleger
- Linux clock fixes--should handle daylight savings better on Linux
- LITTLE_ENDIAN defines
- Start making fixes for NeXTStep due to Eric Sunshine
- Fixed bug in HP asm code with I/O fetches--caused //gs selftests to fail
and a bug in scc.c was also causing self-tests to fail.
Changes in KEGS v0.35 since v0.34 (5/17/98)
- engine_c.c fully implemented--KEGS now has a version completely written
in C, and now portable to other Unix machines.
- KEGS got another 5% faster with more tweaks to the asm dispatch loop.
Changes in KEGS v0.34 since v0.33
- KEGS is 10-15% faster due to finally implementing a planned recoding
of the dispatch loop.
Changes in KEGS v0.33 since v0.32 (5/7/98)
- Fixed bug in engine_s.s that prevented compiling on pre-10.20 systems.
- ADB mouse interrupts work now. Fixed "bug" where GSHK would think
mouse button was depressed at startup. (GS/OS is looking at mouse
button 1 status, which accidentally was reading as down).
- ADB emulation of read char_sets and read_kbd_layouts now matches a real
//gs.
- optimization to allow dereferencing page_info[] even if BANK_IO is set,
to get a small speed improvement in engines_s:dispatch().
- SCC logs are 'Z' at the disas prompt.
- Tool decoded is 'T' at the disas prompt.
- SCC changes to support slot 1 == port 6501 and slot 2 == port 6502,
with limited interrupt support. Most serial tasks won't work still,
but some do. PR#1/2 and IN#1/2 work fine. getty under GNO doesn't.
- -audio [0/1] forces audio off/on. This just stops the sound playing--
internally all Ensoniq interrupts/etc are fully emulated. If display
is not using shared memory (i.e., it's remote), audio defaults to off.
(but can be forced on with -audio 1).
- -display {foo} sends X display to {foo}.
Changes in KEGS v0.32 since v0.31 (10/23/97)
- Faster dispatch loop, for a 10-15% overall performance improvement
- Fixed sound bug where Oversampler would make KEGS halt (Oversampler
said turn on 128 oscillators, and KEGS tried to...)
- Fixed bug where KEGS would not work on 24-bit displays due to a typo.
- Added frame skipping support (-skip n) and auto frame skipping if you
are not using shared memory (like displaying KEGS to a remote machine).
- Added -noshm support for forcing off shared memory, so you can see how
much it helps.
Changes in KEGS v0.31 since v0.30 (9/23/97)
- New mouse handling--Press F8 to hide X windows cursor and constrain
cursor inside window. Makes using the mouse much easier.
F8 toggles back to normal.
- Add revision to status area.
- Remove "slow memory" calculation. KEGS was emulating slowing down to
1MHz to write to slow memory (bank $E0 or $E1). But true //gs
accelerators have a smarter trick, so I just removed it from
KEGS. KEGS still slows down for I/O reads and writes.
This eliminates the confusing 40MHz speed numbers you'd sometimes get.
KEGS can also now run faster when it would have slowed down to
1MHz before.
- Turn off accurate IWM emulation be default, for much faster emulation.
Bit copiers won't work by default now. Toggle accurate IWM
with F7. Accurate IWM forces 1MHz speed for 5.25" and 2.5MHz for
3.5", but less accurate IWM runs as fast as possible.
- Add optional size to s7dx entries in disk_conf, to allow using /dev/rfloppy.
- Allow mounting partitions by number, instead of just by name, since some
Mac-formatted Zip disks don't have partition names.
- Add -ignbadacc to ignore bad memory accesses.
- Increase MAX_C030_TIMES. Otherwise, fast workstations could generate too
many clicks per VBL, causing an assertion to fail.
- Small speed increase detecting changes in the superhires screen.
- Alt_L is now Open-Apple, and Alt_R is Closed-Apple.
- KEGS now uses just one private colormap, so xwd can get screendumps.

39
GSport.html Normal file
View File

@ -0,0 +1,39 @@
<html>
<head>
<title>GSport Project Page</title>
</head>
<body>
<META HTTP-EQUIV="Refresh" CONTENT="0; URL=http://gsport.sourceforge.net">
<center>
<a href="http://gsport.sourceforge.net">[GSport Home Page]</a>
<a href="http://sourceforge.net/projects/gsport/">[SourceForge project page]</a>
</center>
<hr>
<h1>
<center>
GSport: an Apple II Emulator
</center>
</h1>
<hr>
<p>
The documentation for the GSport project is maintained on the SourceForge site.
You should have been immediately redirected there; click on the following link
<a href="http://gsport.sourceforge.net">(http://gsport.sourceforge.net)</a>
if not.
</p>
<hr>
<center>
<a href="http://gsport.sourceforge.net">[GSport Home Page]</a>
<a href="https://sourceforge.net/projects/gsport/">[SourceForge project page]</a>
</center>
</body>
</html>

View File

@ -1,12 +1,12 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Library General Public License instead.) You can apply it to
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@ -225,7 +225,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
@ -277,4 +277,63 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.

View File

@ -1,123 +0,0 @@
# $Id: README.a2.compatibility,v 1.2 2004/10/18 18:17:21 kentd Exp $
Flobynoid: Must disable Fast Disk Emul (hit F7 to toggle it off) since
game's loader relies on the sector order on the disk (reads 8
sectors from the start without checking headers, assumes every other
physical sector is skipped due to decode delays).
Bard's Tale II GS: Doesn't recognize any save disk as a ProDOS disk.
It's detecting a "ProDOS" disk by checking for a string on block
0 at offset 0x15e. GSOS on system 6 has moved the string to 0x162,
so disks inited under GSOS will be detected as "Not a PRODOS disk".
Just make a copy of the Bard's Tale disk image to another file and
then mount that new image and remove all the files using the Finder.
Then rename the volume and you have a working save disk.
Robotron 2084:
Robot Battle:
These cracks use a "Fastloader" which is buggy.
It tries to JMP $F3D4 and expects to hit an RTS soon.
But on a IIgs it will access some illegal memory causing a code
yellow. You can just ignore the code yellow.
Beyond Castle Wolfenstein: Make sure your disk is writeable (not compressed!)
Breakout: Has trouble loading from the cracked copy.
From the BASIC prompt, do: "CALL -151" then "C083 N C083" then
"BLOAD INTBASIC" then run breakout. Then it runs fine.
Burgertime: This is a bad crack. Loader starts the game by writing
the game entry point into $0036/$0037, and then executing a BRK
instruction. The BRK handler on an old Apple II will try to write
out a message by calling through $0036/$0037, and this will start
the game. But on a IIgs, the ROM sets the $0036/$0037 vectors
back to the default, and so we crash into the monitor instead.
Here's a memory fix and a disk-image fix: From the crack screen,
press Shift-F6 (or middle mouse button) and in the KEGS debugger
window enter: "1d0a:ea 6c 36 0" and then "g". You can make
this fix to the disk image using a sector editor and change
Track $1E sector $09 offset $0A from "60 78 A9 03" to "EA 6C 36 00"
and write it back.
Caverns of Callisto: Requires old C600 ROM in slot 6 (Slot 6==Your Card).
Championship Loderunner: Requires disk to be writeable or else it starts
the level and then jumps immediately back to the title page.
Jeopardy: Disk must be writeable or else it displays "DISK ERROR" and
then crashes into the monitor.
Drol: Needs slot 6 set to "Your Card" from the IIgs control panel
(Ctrl-Cmd-ESC, then choose "Slots").
I found Drol hard, so here are some cheats. First, the standard cheat
for Drol is to have infinite lives, this cheat is to edit the disk
image:
Track $0B, Sector $0A, byte $22 to EA EA
Track $11, Sector $0A, byte $10 to EA EA
Track $17, Sector $09, byte $B2 to EA EA
I didn't create those cheats, I got it from textfiles.com.
My cheats are for the monsters to never kill you--just run right
through them.
While playing Drol, press Shift-F6 (or middle mouse button) to
enter the KEGS debugger, and then:
0/f28:18 18 # Monsters' missiles won't kill you
0/e05:90 0c # Monsters won't kill you
Continue emulation by type "g" and then enter.
Other things, like the bird, axes, swords still kill you.
To easily solve the third screen, move your man to the far right
side on the top level, so that you are directly above the woman
on the bottom row. Fly into the air "A" and then get to the KEGS
debugger, and type:
0/c:4
and then continue with "g". Now press "Z" and you will go all
the way down and land on the woman and end the level. It's
useful to have made the two above patches so that touching monsters
won't kill you.
Two more patches that only apply to level 3, and so most be made
in memory each time you enter level 3:
6cf3:18 18 18 # Axes won't kill you
6f70:38 38 # Swords/arrows won't kill you
The bird and the guy you can't kill will still kill you. These
cheats were enough to make the game easily playable.
In the game, your death is indicated by setting location $001E to
$FF. Setting breakpoints there can let you find other cheats.
Moon Patrol: Crashes into the monitor after completing checkpoint E.
To fix the Moon Patrol/Dung beetles version, from within KEGS:
BLOAD MOON PATROL
CALL -151
1E15:EA
919G
and it will work fine.
If you have the booting version that just has Moon Patrol on it,
then from any point after the crack screen is shown, enter the
KEGS debugger (Shift-F6 or middle moust button) and then enter:
0/1e15:ea
g
and then it will play fine.
The bug is that the code executes an instruction with opcode $02,
which is a NOP on 6502, but is a COP instruction to 65816. The
COP instruction acts like BRK and will crash. The patch just
makes it a real NOP.
Microbe: Crashes upon booting.
Code at $599E tries to pull a return address off of a location
beneath the stack pointer and jump to it, but it doesn't add 1
correctly so it jumps to $5917 when it meant to jump to $5918.
On a IIgs, this causes a BRK to be executed and the game to crash.
This can be patched in memory in two places:
0/599e:ba ca 9a 7d 00 01 48 98 7d 01 01 9d 01 01 60
0/6f1d:ba ca 9a 7d 00 01 48 98 7d 01 01 9d 01 01 60
The original byte sequence for both locations is:
00/599e: ba TSX
00/599f: 7d ff 00 ADC $00ff,X
00/59a2: 85 94 STA $94
00/59a4: 98 TYA
00/59a5: 7d 00 01 ADC $0100,X
00/59a8: 85 95 STA $95
00/59aa: 6c 94 00 JMP ($0094)
You can also patch the code onto the disk image. I found
the $599E version on Track $05, Sector $06, Byte $9E.
I found the $6F1D version on the image at Track $0C, Sector $00,
at byte $1D.

View File

@ -1,118 +0,0 @@
# $Id: README.compile,v 1.20 2004/10/18 04:05:14 kentd Exp $
General build instructions:
--------------------------
You need to build with a make utility. I've only tested GNU make.
There's a default Makefile, which should work for nearly any environment.
The Makefile includes a file called "vars" which defines the platform-
dependent variables. You need to make vars point to the appropriate
file for your machine.
This makes my maintenance of the diverse platforms a bit easier.
WIN32 build instructions:
------------------------
See the file README.win32 for build instructions and other information
for Microsoft Windows.
Mac OS X build instructions (the default):
------------------------------------------
KEGS is easy to compile. Just cd to the src directory and type "make".
KEGS requires perl to be in your path (or just edit the vars file to give
the full path to wherever you installed perl). Perl version 4 or 5 is
fine.
After the "make" has finished, it will create the application KEGSMAC.
To run, see README.mac.
X86 Linux build instructions:
----------------------------
Use the vars_x86linux file with:
rm vars; ln -s vars_x86linux vars
make
The resulting executable is called "xkegs".
The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.
For audio, KEGS needs access to /dev/dsp. If the permissions do not allow
KEGS to access /dev/dsp, it can fail with a cryptic error message. As root,
just do: "chmod 666 /dev/dsp".
PowerPC Linux build instructions:
----------------------------
Use the vars_linuxppc vars file by:
rm vars; ln -s vars_linuxppc vars
make
The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.
Audio is currently disabled by default, but you can try turning it on
by runnning "xkegs -audio 1". It sounds horrible to me, but sounds do
come out.
Solaris SPARC build instructions:
--------------------------------
Use the vars_solaris vars file by:
rm vars; ln -s vars_solaris vars
make
The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.
Audio is currently disabled by default, but you can try turning it on
by runnning "xkegs -audio 1".
Solaris x86 build instructions:
--------------------------------
Use the vars_x86solaris vars file by:
rm vars; ln -s vars_x86solaris vars
make
The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.
Audio is currently disabled by default, but you can try turning it on
by runnning "xkegs -audio 1".
HP-UX assembly-emulation instructions:
-------------------------------------
Use the vars_hp vars file by:
rm vars; ln -s vars_hp vars
Edit the Makefile, and remove "engine_c.o" from the "OBJECTS1=" line at
the top. Then just type "make".
This version is quite out of date and most likely does not compile any more.
Other platform "C" build instructions:
-------------------------------------
If you are porting to an X-windows and Unix-based machine, it should be
easy. Start with vars_x86linux if you are a little-endian machine, or
vars_linuxppc if you are big endian. Don't define -DKEGS_LITTLE_ENDIAN
unless your processor is little-endian (x86, Alpha). Mac, Sun, MIPS,
HP, Motorola, and IBM are big-endian.

File diff suppressed because it is too large Load Diff

View File

@ -1,252 +0,0 @@
[ This info provided by Mike Thomas <phoenyx@texas.net> ]
[ Updated 10/30/2003 by Kent: This file mentions editing "kegs.conf" to ]
[ mount images--this is now replaced by the built-in Configuration Panel. ]
Setup and configuration for x86 Linux:
--------------------------------------
KEGS is very easy to setup on your Linux box, but not foolproof. First
you will need to decide where it will live. When doing this you will
have to take into consideration any users of your machine. It really
doesn't matter where it goes but it should have it's own directory and
any supplied sub-directories should be there. You may decide to use the
/usr/local path where most systems recommend you install applications.
Again, this is entirely up to you. On my system I have a separate
partition for KEGS and all the miscellaneous files I've accumulated for
it. This makes it easy for me to reinstall the system should the need
arise. Since I fool around with a large variety of software and OS's
this happens more often than it would for normal users.
Once you have put the files into the proper place you will need to
compile it. You should not need to be 'root' to do this part. The file
README.compile explains the steps required for this. Basically all you
should need to do is set the vars link to point to the file
vars_x86linux. You will want to check the file and make sure it is
accurate for your system. On my Redhat 6.0 system the default compile
setup works fine. I use the pentium GCC compiler instead of the
supplied EGCS since it seems to build better binaries. I do not
recommend using optimization levels higher than 2. Once you have
successfully built the binaries you will need to copy them to the KEGS
directory. At a minimum copy the file kegs and to_pro.
Ok, now that you have the binaries you're almost ready. You will need a
copy of the IIgs rom placed in the KEGS directory. It should be named
ROM. You will also need some disk images. This is the hardest part.
You will need to create an HD image to work with. Kent mentions an easy
way in his readme. From the shell type this:
echo "testfile" > testfile
to_pro -16384 testfile
If you're using bash try this:
echo "testfile" > testfile
./to_pro -16384 testfile
This should create a 16 megabyte HD image. This image will NOT be properly
formatted to boot a system. The block zero is not properly setup. There is no
easy way to fix this with the current KEGS/Linux system. There seems to be a
problem formating HD files for Prodos using KEGS. The system will easily erase
them but this doesn't help you. One solution is to make the primary boot drive
use a disk partition. This is more involved and will be explained later.
Another solution is to have access to the utility Block.Warden or some other
P8 block utility. What you need to do is copy the boot blocks (blocks 0 and 1)
from any bootable disk to the HD image. With that done you can now install
GS/OS.
Make sure you set the proper file permissions on files needed by KEGS. You
will not be able to properly use it while logged on as root. KEGS uses the
file permissions to test if it should write the image to disk or the memory
image. As root, KEGS will never write the image since it thinks root
always has execute privilege. The main files which you will need read/write
access to are bram.data.1 and disk_conf. I suggest you have read access to all
the other files in the directory.
Once you've got all the proper permissions set, log onto the system with your
normal account. Start up X and a shell and cd to the KEGS directory. Assuming
you have the disk images for GS/OS edit your disk_conf file so it looks
similar to this:
# boot from install disk
s7d1 = /usr/local/fst/gsos1
# our HD image
# you should rename POOF1 file created with to_pro
# I use *.hdv to be compatible with other utilities
s7d2 = /usr/local/fst/boot.hdv
# other GSOS images
s7d3 = /usr/local/fst/gsos2
...
If you include all the GSOS images this way you will have a simple setup.
Execute KEGS. For now go with the simplest command line possible. Since the
newer versions support auto detect on video resolutions this should be the
command kegs by itself. Hopefully you will boot into the emulator. If so,
install GSOS and you're ready to go.
Sound
-----
Kent says sound doesn't work under Linux. This is partially true and much
depends on the sound system you have installed. I have been successful with
sound on both Soundblaster and Soundpro systems. For long compositions the
sound may break up but it is functional for games and system sounds.
System Video Setup
------------------
This is rather personal and based upon system hardware so I'll just give you my
thoughts and setup info on this. My normal X system is configured
@ 1152x864 15bpp due to constraints in the X server for my video system. I
have custom configured it to boot into this mode and then I change to 800x600
by using the CTRL+ALT+(keypad)PLUS sequence when I use KEGS. This makes the
system much easier to read.
KEGS and disk partitions
------------------------
Kent mentions using partitions in his readme file but doesn't go into much
details. I suspect this is mostly for accessing CD-roms. But it also works
well for HFS and Prodos formatted partitions also. Linux can also handle HFS
partitions but not Prodos. To accomplish this you will need some free space on
your hard disk to create the partitions. You should not attempt this unless you
know what you are doing. You have been warned!
This task is not easy, nor is it supported by Kent. This was done and tested
on my own system so I know it works. You will need the HFS support utilities
for Linux. These are available on several Linux software sites. The primary
need for these utilities is to change an ext2fs partition to an HFS partition.
You can also use them to format the HFS volumes and copy files to and from
the partition. Newer versions of the Linux kernel support HFS file systems but
you will still need the utilities to create the original volume.
You must decide how you want to divide this partition. You can use it all for
HFS or you can create Prodos volumes and HFS volumes. There are pros and cons
for using Prodos partitions instead of files. The pros, it is a little faster
than using an HD file. It is a real Prodos partition, formatted by KEGS. The
cons, It must be backed up by using software on the emulator. You can't just
copy the HD file to another drive.
You must weigh these pros and cons and decide for yourself. Of course you
are not limited to using partitions. I have a mix of partitions and files
which works quite well. I like the P8 partitions for holding my boot system
and applications. I back them up with GSHK to an HFS volume which I can then
transfer to another drive if I need even more security.
If you decide to use the whole partition for HFS then all you need to do is
run the HFS utilities and setup the HFS volume. Read the documentation which
comes with the utility package and follow it faithfully.
If you want to use P8 and HFS partitions you have some more work to do. If
you have never worked with low level partitions or are worried about destroying
your HD then you should probably forget this. For this to work you will have
to change the partition table on your HD. This can and most likely will ruin
any data you already have on there. I can not state this enough. Back up any
important data on the hard drive! It is possible to change the partitions in
Linux and not destroy the system. I have done this on mine but I also used
the last defined partition to make the changes and designed the system for
change should it be necessary.
For those of you who know how to handle this, take the partition you have
decided to use for KEGS and divide it into at least one 32 meg partition.
More is better but you will have to use the emulator to back up any drives
setup this way since Linux can't access a Prodos partition (yet). I have setup
4 32 meg P8 partitions and several smaller HFS partitions of about 96 megs.
The reason I use smaller HFS partitions is because HFS isn't real efficient
with larger drives, but that's another story. The reason for the separate
HFS partitions is so Linux can mount the HFS volumes like any other file system.
I find this works quite easily for accessing files instead of using the HFS
utilities. Just my opinion though. For P8 utilities you will still need to
use the HFS utility and configure the drive as an HFS volume. This lets KEGS
read the partition when it loads the partition the first time. KEGS doesn't
like the Linux file system.
Ok, everybody got their partitions defined? You want to use the HFS tools
and setup all the partitions (P8 and HFS) as HFS volumes. Next you will have
to setup the HFS partitions. No, I'm not repeating myself. This is not the same
thing as the low level partitions. HFS volumes have their own partition table.
For our purposes the table will only hold one partition on each whole volume.
The utility will give you the block count when you setup the partitions,
write it down so you don't forget. After you have the volume partition setup
you can format the drive. Yeah I know you made a Prodos partition but it
doesn't hurt anything and KEGS will be able to read the partition when it
boots up.
Well, I think I covered everything needed to set them up. Now you will need to
edit the /etc/fstab file. Make sure there are no references to the original
partition. If you want to access the HFS volumes you will need to add them to
this file. You will also need to make sure that your Linux can understand the
HFS format. Most newer kernels will as long as you've compiled it into the
kernel or set it up as a module. KEGS doesn't need these entries to access
the volumes, they are just here for your convenience. In fact, if you don't
need Linux access I suggest you either leave them out or set them up as
NOAUTO and mount them only when needed. Unmount them when finished to avoid
any potential problems also. Do not give Linux access to any P8 partitions.
For one thing it can't recognize them and most likely will give you problems
when you boot the system. For safety's sake the only partition I have listed
in my /etc/fstab is a volume called transfer. You must set the filetype to HFS
so Linux doesn't complain about the partitions if you mount them.
Ok, all partitions are defined, the /etc/fstab is setup correct, now you need
to change the permissions on the device files associated with the partitions.
This allows you to access the files as a normal user. (Thanks Kent, guess I
got too involved and forgot it should be treated like the CD). You will need
to reboot to ensure the system sees the new partitions and has the correct
/dev/hd?# device files. If you setup the partitions with fdisk you should know
the correct hd info to select the files. For the sake of example let's assume
the device is HDB and the partitions numbers are 1,2,3. From the shell,
cd /dev
chmod 666 /dev/hdb1
chmod 666 /dev/hdb2
chmod 666 /dev/hdb3
After you start KEGS you can format the Prodos partitions. If you use the
method mentioned earlier for installing GS/OS you will want to quit the
installer and run the advanced disk utilities on the utilities disk, then
quit back to the installer program or reboot.
Now I know this all sounds like a lot of trouble but (IMHO) it's worth it. For
one thing, KEGS will format a Prodos partition without problems (unlike an HD
file image) which makes a great boot system. And with GS/OS 6.01 you can access
large HFS volumes for storage and GS applications. You can also download from
the net to the HFS volume (if it's mounted) and avoid the trouble of copying
files to an image with to_pro. Not to mention the fact that the newest GNO
works with HFS drives.
One more note, if you use HFS you will need to patch the HFS fst. There is a
one byte bug which mis-calculates HFS block sizes and WILL trash your HFS
drive. The patch is at several places on the net or ask someone in one of
the comp.sys.apple2 news groups.
Miscellanea
-----------
To ease access to the KEGS binary, make an executable script which contains
any command line parms you need. Then put this script somewhere in the path
so you can execute it from any shell. Depending on the desktop you use you
may want to setup links for editing the disk_conf file also. With GNO/ME you
can launch KEGS without the shell but I don't recommend this since you won't
know what happened when it dies. With KDE you can set up the launcher to use
a shell, this is much better but until you have your setup stable you will
want to use a regular terminal so you can keep track of what's going on. Like
GNO/ME, the KDE shell will close as soon as KEGS quits with an error.
Thanks
------
I hope this info helps you enjoy KEGS. Many thanks to Kent for creating this
fine emulator and for putting up with me bugging him with 'bug' reports. Many
of these weren't actually bugs but were my own fault due to lack of knowledge
about *nix systems. But Kent was prompt in fixing the ones which truly were
bugs. Thanks to him I can now play my favorite game, Questron 2 (gs version)
which requires a player disk in slot 5. I know no other emulator which can
actually play this game.
Mike Thomas

View File

@ -1,41 +0,0 @@
MAC OS X port of KEGS (KEGSMAC): http://kegs.sourceforge.net
-------------------------------------------------------------
There is a different port of KEGS to Mac OS X called KEGS-OSX.
You can get it from http://casags.net/.
This port is not leveraged from KEGS-OSX (which is based on SDL).
This is a Mac OS X Carbon port. It will not work on Mac OS 9.
Everything pretty much works, but 8-bit color doesn't work. Make sure your
Mac is set to Thousands or Millions of colors.
Usage:
-----
Like most other KEGS versions, KEGSMAC is usually run from a Terminal
window. Just type "./KEGSMAC.app/Contents/MacOS/KEGSMAC" in the directory
you installed/compiled it in. You need to have a ROM file (named
ROM, ROM.01, or ROM.03) and a config.kegs in the same directory or in your
home directory (read the README--these files are searched for in various
places).
KEGSMAC can also be run from the Finder, but if you do this, there
will be no debug window at all. This is not well tested, yet.
To quit, either click the window close box, or select Quit from the menu.
You can also middle-click (if you have a 3-button mouse) or
Shift-F6 to get the debugger in the terminal window, and then type "q".
Compile directions
------------------
In order to compile,
1) cd into the src/ directory
2) copy vars_mac to vars
3) run make
You can contact me at kadickey@alumni.princeton.edu

26
README.md Normal file
View File

@ -0,0 +1,26 @@
# GSport: an Apple IIgs Emulator
GSport is a portable (in the programming sense) Apple IIgs emulator, based on the KEGS cross-platform IIgs emulator by Kent Dickey. The base emulator builds and runs on all of the same platforms that KEGS did, and the new capabilities are being integrated as contributors have time and interest. Full documentation is available at the GSport website [here.](https://david-schmidt.github.io/gsport/)
[![alt](https://raw.githubusercontent.com/david-schmidt/gsport/master/doc/web/src/site/resources/images/gsport.png)](https://david-schmidt.github.io/gsport/) [![Download Link](https://raw.githubusercontent.com/david-schmidt/gsport/master/doc/web/src/site/resources/images/download.png)](https://github.com/david-schmidt/gsport/releases)
## Now with network support on Linux!
The GSPort project has been updated to support building for modern 64-bit Linux systems, including support for
networking via the Uthernet emulation! This has only been tested on a Ubuntu 18.04 machine and may require some
tweaking, but the following steps have worked:
* Make sure multiarch support is enabled
* Download the i386 libraries, especially libX11, libXext, and libpcap (e.g. `sudo apt install libpcap-dev:i386`, etc)
* `cd src`, `ln -s vars_x86linux vars`, and `make`, and you're on your way
One important note is that the Uthernet emulation relies on sending layer 2 frames in the raw and the use of
promiscuous mode to discover frames addressed to the MAC of the emulated Uthernet card. Because of this *wifi is not
supported*! I repeat **wifi is not supported**! It's highly encouraged you start out running this on a machine with
only one active interface, and that interface should be wired Ethernet.
## Project Goals
The main goal for GSport is to provide a free, open ecosystem for the continuation of cross-platform development of IIgs emulation.
Some interesting advances that initially spawned this project are Uthernet and printer support. Now that those objectives are met, we will move on to the next objectives. Do you have something that you wish a GS emulator did? Dive in and contribute!

View File

@ -1,52 +0,0 @@
WIN32 port of KEGS (KEGSWIN)
----------------------------
There is a different port of KEGS by Chea Chee Keong (akilgard) called
KEGS32. You can get it from http://www.geocities.com/akilgard/kegs32.
This port is leveraged from KEGS32, but mostly a rewrite (perhaps for
the worse). I am grateful for Chea for doing the windows port since I
did not know any Windows programming.
This port is alpha quality. Don't expect much.
This is a bare-bones Win32 port. It was compiled with Mingw2.0,
which you can download at: http://www.mingw.org/. I also had
previously installed cygwin at http://www.cygwin.com/. Installing
these two beasts is a bit of a pain, so I'll eventually write up
directions (I hope).
Sound works, the mouse works, and a joystick might work (ported
from KEGS32). The user-interface is just like every other KEGS
version (i.e., bad), so you can just read the standard README file.
Only tested on a 32-bit graphics display, although I think 16-bit and
24-bit will work. 8-bit definitely does not work. There are many
other bugs I just haven't had time to list yet.
Usage:
-----
Like most other KEGS versions, KEGSWIN must be run from a terminal
window (command.com is fine). Just type "KEGSWIN" in the directory
you installed/compiled it in. You need to have a ROM file (named
ROM, ROM.01, or ROM.03) and a kegs_conf in the same directory (or
read the README--these files are searched for in various places).
To quit, either click the close box, or force quit the application.
You can also middle-click (if you have a 3-button mouse) or
Shift-F6 to get the debugger in the terminal window, and then type "q".
Compile directions
------------------
In order to compile,
1) cd into the src/ directory
2) rm vars
3) ln -s vars_win32 vars
3) ./make_win
You can contact me at kadickey@alumni.princeton.edu

View File

@ -1,12 +1,9 @@
# GSport configuration file
s5d1 =
s5d2 =
s6d1 =
s6d2 =
s7d1 =
g_limit_speed = 2
# GSport configuration file
s5d1 =
s5d2 =
s6d1 =
s6d2 =
s7d1 = NoBoot.po

1
doc/web/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/target/

7
doc/web/buildit.bat Normal file
View File

@ -0,0 +1,7 @@
@REM
@REM Sorry, this is hopelessly tied to my environment...
@REM I hope folks don't really want to build the doc themselves.
@REM
call c:\dev\env
rmdir /q /s target
call mvn site

2
doc/web/buildit.sh Normal file
View File

@ -0,0 +1,2 @@
#!/bin/sh
mvn site

11
doc/web/buildpost.bat Normal file
View File

@ -0,0 +1,11 @@
cd target\site
perl -i.orig -p ..\..\removeMaven.re appletalk.html
perl -i.orig -p ..\..\removeMaven.re developing.html
perl -i.orig -p ..\..\removeMaven.re ethernet.html
perl -i.orig -p ..\..\removeMaven.re history.html
perl -i.orig -p ..\..\removeMaven.re index.html
perl -i.orig -p ..\..\removeMaven.re operating.html
perl -i.orig -p ..\..\removeMaven.re printer.html
erase *.orig
cd ..\..
xcopy /y target\site\* /s ..\..\docs

11
doc/web/buildpost.sh Normal file
View File

@ -0,0 +1,11 @@
#!/bin/sh
cd target/site
perl -i.orig -p ../../removeMaven.re appletalk.html
perl -i.orig -p ../../removeMaven.re developing.html
perl -i.orig -p ../../removeMaven.re ethernet.html
perl -i.orig -p ../../removeMaven.re history.html
perl -i.orig -p ../../removeMaven.re index.html
perl -i.orig -p ../../removeMaven.re operating.html
perl -i.orig -p ../../removeMaven.re printer.html
rm *.orig
cd ../..

36
doc/web/pom.xml Normal file
View File

@ -0,0 +1,36 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.gsport</groupId>
<artifactId>doc</artifactId>
<version>0.31</version>
<name>GSport</name>
<url>https://github.com/david-schmidt/gsport</url>
<inceptionYear>2010</inceptionYear>
<organization>
<name>GSport Contributors</name>
</organization>
<distributionManagement>
<site>
<id>website</id>
<url>scp://webhost.company.com/www/website</url>
</site>
</distributionManagement>
<build>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.6</version>
<reportSets>
<reportSet>
<reports><!-- select reports -->
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
</project>

7
doc/web/removeMaven.re Normal file
View File

@ -0,0 +1,7 @@
s@\<a href="http://maven.apache.org/" title="Built by Maven" class="poweredBy"\>@<a href="https://github.com/david-schmidt/gsport"><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Logo.png" width="100" alt="Get GSport at Github." /></a>@ig;s@\<img alt="Built by Maven" src="\./images/logos/maven-feather.png"\>\</img\>@<p>@ig;
s@href="https://github.com/david-schmidt/gsport/releases"@href="http://sourceforge.net/projects/gsport/files/" target\="_new"@ig;
s@\</body\>@\<!-- Piwik --\> \<script type\=\"text\/javascript\"\> var pkBaseURL \= \(\(\"https:\" \=\= document.location.protocol\) ? \"https:\/\/sourceforge.net\/apps\/piwik\/gsport\/\" : \"http:\/\/sourceforge.net\/apps\/piwik\/gsport\/\"\); document.write\(unescape\(\"%3Cscript src\='\" + pkBaseURL + \"piwik.js' type\='text\/javascript'%3E%3C\/script%3E\"\)\); \<\/script\>\<script type\=\"text\/javascript\"\> try { var piwikTracker \= Piwik.getTracker\(pkBaseURL + \"piwik.php\", 1\);piwikTracker.trackPageView\(\); piwikTracker.enableLinkTracking\(\);} catch\( err \) {} \<\/script\>\<noscript\>\<p\>\<img src\=\"http:\/\/sourceforge.net\/apps\/piwik\/gsport\/piwik.php?idsite\=1\" style\=\"border:0\" alt\=\"\"\/\>\<\/p\>\<\/noscript\>\<!-- End Piwik Tag --\>@ig;
s@<img src="images/download.png" alt="" />@<a href="https://github.com/david-schmidt/gsport/releases" target\="_new"><img src="images/download.png" /></a>@ig;
s@<img src="images/gsport.png" />@<a href="https://github.com/david-schmidt/gsport/releases" target\="_new"><img src="images/gsport.png" /></a>@ig;
s@\<img class="poweredBy" alt="Built by Maven" src="\./images/logos/maven-feather.png" \/\>@@ig;
s@http://github.com@https://github.com@ig;

View File

@ -0,0 +1,109 @@
-----
GSport AppleTalk
-----
Peter Neubauer
-----
AppleTalk Emulation and Bridging for GSport
GSport now emulates the AppleTalk networking hardware found in the real Apple IIgs and bridges the networking packets to EtherTalk v2. GSport supports file
sharing, printer sharing, and network booting features using Apple's original AppleTalk software, such as that shipped with GS/OS 6.0.1. Note that the
original AppleTalk software is not directly compatible with modern software, and you will need a compatible file server, such as netatalk or A2SERVER.
* Introduction
The Apple IIgs shipped with a fantastic but often overlooked feature -- AppleTalk networking. AppleTalk is a low-cost, easy-to-maintain network technology that
enables network booting, file sharing, and printer sharing between your Apple IIgs, Workstation Card equipped Apple IIe, and classic Macintosh machines. As of
March 2014, GSport is the first modern emulator with support for AppleTalk. Now, you can just "drag and drop" files between your machines without thinking about
disk images, FTP, or serial cables. You can develop new software with an emulator and quickly test on real hardware. You don't need to think much about version
control. Rather, you can update the file once on your file server, and all of your emulated and real machines have the new file. You can download the latest
Apple II software and immediately run it.
Beware that Apple changed the meaning of the word "AppleTalk." Originally, AppleTalk implied a physical layer using 3-pin MiniDIN shielded cables connected in a
bus topology. As other physical layers such as Ethernet and TokenTalk became more affordable, Apple defined new terms. The term AppleTalk no longer implied
MiniDIN cabling. Rather, AppleTalk became the overall term for Apple's approach to networking. LocalTalk refers to AppleTalk using the original MiniDIN physical
and link layers. EtherTalk refers to AppleTalk using the Ethernet link and physical layers. TokenTalk refers to AppleTalk using the TokenRing link and physical
layers. As the Internet became popular, Apple revised their approach to networking to use TCP/IP for the network and transport layers. The "Internet modernized"
AppleTalk (AppleTalk IP) replaces many key services of the older AppleTalk and is incompatible with the previous incarnation of AppleTalk. The IIgs only supports
AppleTalk using LocalTalk. The GSport emulation converts LocalTalk to EtherTalk but does <<not>> support AppleTalk over IP.
* Using It
First, you need an AppleShare-compatible server. A classic Mac or "netatalk" server could provide this function. For simplicity, I recommend Ivan Drucker's
A2SERVER ({{{http://appleii.ivanx.com/a2server/}http://appleii.ivanx.com/a2server/}}), which is a pre-configured and easy-to-use package with "netatalk" and other useful tools. You may run A2SERVER in
a VirtualBox virtual machine, on an existing Linux server, or on a Raspberry Pi. File and print sharing functions built-in to modern computers are not directly
compatible.
Second, you need GSport 0.3 or later with ROM03 running on a Windows or Linux (x86 or Raspberry Pi) machine. Start GSport and press F4 to access the configuration
menu. If necessary, select a ROM03 image. Select the "Ethernet Card Configuration" menu option. Change "AppleTalk Bridging" to "On". Change "Use Interface
Number" to select the network where you have attached your AppleShare server or A2SERVER. Exit the GSport configuration menu.
You may run GSport and netatalk (or A2SERVER) on the same machine:
On Windows:
[[]] Configure A2SERVER in a VirtualBox virtual machine. The A2SERVER project provides a pre-configured virtual machine as well as manual installation directions.
[[]] Install the "Microsoft Loopback Adapter" following directions from Microsoft.
See {{{http://blogs.msdn.com/b/ukvsts/archive/2009/02/27/adding-the-ms-loopback-adapter-on-windows-7.aspx}http://blogs.msdn.com/b/ukvsts/archive/2009/02/27/adding-the-ms-loopback-adapter-on-windows-7.aspx}} and
{{{http://technet.microsoft.com/en-us/library/cc708322%28v=ws.10%29.aspx}http://technet.microsoft.com/en-us/library/cc708322%28v=ws.10%29.aspx}}.
[[]] In the VirtualBox Manager, open "Settings" for the A2SERVER virtual machine. Select the "Network" section. Change the "Attached to" option to "Bridged Adapter"
and "Name" to "Microsoft Loopback Adapter". Under the "Advanced" sub-section, make sure "Promiscuous Mode" is "Allow All".
[[]] Restart A2SERVER.
[[]] Restart GSport. Under the "Ethernet Card Configuration" menu, change "Use Interface Number" to select the "MS LoopBack Driver".
On Linux:
(Directions are forthcoming.)
Finally, party like it is 1989. Your GS is now connected to the AppleTalk network. Refer to Apple's documentation included with GS/OS System 5 and 6 for further
directions.
* Internal Overview
GSport with AppleTalk networking is functionally equivalent to a real Apple IIgs with a LocalTalk/EtherTalk bridge. Originally, AppleTalk employed the "LocalTalk"
physical layer, which requires special hardware not found on modern computers. GSport converts LocalTalk to EtherTalk, a somewhat more modern physical layer using
familiar Ethernet cabling. Internally, GSport emulates the Zilog SCC chip in the IIgs, communicates with unmodified Apple-provided networking software built-in to
the IIgs and GS/OS, and converts the network traffic to EtherTalk.
* Limitations
* The IIgs hardware and GSport only support AppleTalk using LocalTalk. Neither are compatible with file or print sharing functions in modern computers. Instead,
run a compatible network server, such as A2SERVER, Netatalk 2.x, or AppleShare.
* A wireless network may not work because many wireless adapters drop EtherTalk packets. Instead, use a wired Ethernet connection.
* AppleTalk bridging has been tested with System 6.0.1 and System 5.0.2 on ROM03. Booting from a local disk or from the network works. Other ROM revisions and
system software may not work.
* The SCC baud rate is incorrect because the GSport does not emulate line coding. Still, emulated network speed should be close to the 230.4kbps speed of a real
LocalTalk network.
* The bridge supports Windows using Visual Studio, Cygwin, and Linux (x86 and Raspberry Pi). Other platforms should be straightforward, but I do not have a suitable
build environment.
* The bridge requires an AppleTalk router on the network. The bridge should work in both a routerless and router-filled network, and future revisions will remove
this limitation.
* The bridge works with simple networks consisting of a single network on a single segment with a single zone. The bridge should function with all valid network
configurations and hardware routers, and future revisions will remove this limitation. Other configurations might not work, and I welcome reports.
* The bridge implements the non-extended method for acquiring the network number. Interoperability would likely be better using the extended method, but this method
is much more complex.
* Credits
Thanks to Gursharan Sidhu, Richard Andrews, and Alan Oppenheimer for creating and documenting AppleTalk.
Thanks to Kent Dickey and the GSport contributors for GSport and the original SCC emulation.
Thanks to David Schmenk for testing, encouragement, and Raspberry Pi support.
Thanks to Ivan Drucker for A2SERVER.
Thanks to the Gus emulator engineers for showing that AppleTalk emulation is possible.
Thanks to James Littlejohn for discussions about extending the capabilities of the Apple IIgs.

View File

@ -0,0 +1,247 @@
-----
Developing GSport
-----
David Schmidt (1110325+david-schmidt@users.noreply.github.com)
-----
Developing GSport
Information, mostly concerning building, about various platforms:
* General Build Instructions
You need to build with a <<<make>>> utility.
There's a default Makefile, which should work for nearly any environment.
The Makefile includes a file called <<<vars>>> which defines the platform-
dependent variables. You need to make <<<vars>>> point to (or be) the appropriate
file for your machine.
* Win32
There is a different port of KEGS by Chea Chee Keong (akilgard) called
KEGS32. It was originally available from {{{http://web.archive.org/web/20071107082448/http://www.geocities.com/akilgard/kegs32/}http://www.geocities.com/akilgard/kegs32}},
but geocities has since closed.
The Win32 code in GSport is leveraged from KEGS32.
GSport can be compiled with {{{http://www.mingw.org/}Mingw}}
and {{{http://www.cygwin.com/}Cygwin}} as well as via standard Microsoft compiler suites.
In order to compile with the standard Microsoft compiler suites, download and
install {{{https://www.visualstudio.com/downloads/download-visual-studio-vs}Microsoft Visual Studio Community 2015 from Microsoft's website}}.
The build process requires Perl, such as {{{http://www.activestate.com/activeperl}ActiveState ActivePerl}}.
Within Visual Studio, open the "gsport.sln" solution file. Set the "gsport" project as the "StartUp Project",
and choose "Build Solution" from the "Build" menu.
In order to compile with Cygwin:
------------------
cd into the src/ directory
rm vars
ln -s vars_win32 vars
make
------------------
You need to have a ROM file (named
ROM, ROM.01, or ROM.03) in the same directory as the resulting executable.
To quit, either click the close box, or force quit the application.
You can also middle-click (if you have a 3-button mouse) or
Shift-F6 to get the debugger in the terminal window, and then type "q".
* Mac OS X
Use the <<<vars_mac>>> file:
-------------------------------------
cd into the src/ directory
rm vars; ln -s vars_mac vars
make
-------------------------------------
After the <<<make>>> has finished, it will create the application <<<GSport>>>.
* X86 Linux
Use the <<<vars_x86linux>>> file:
-------------------------------------
cd into the src/ directory
rm vars; ln -s vars_x86linux vars
make
-------------------------------------
The resulting executable is called <<<gsportx>>>.
The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.
For audio, GSport needs access to <<</dev/dsp>>>. If the permissions do not allow
GSport to access <<</dev/dsp>>>, it can fail with a cryptic error message. As root,
just do: <<<chmod 666 /dev/dsp>>> .
If you do not have the <<</dev/dsp>>> device, GSport will not start unless you
tell it to disable audio with the following command-line argument:
<<<./gsportx -audio 0>>>
* PowerPC Linux
Use the <<<vars_linuxppc>>> file:
-------------
cd into the src/ directory
rm vars; ln -s vars_linuxppc vars
make
---------
The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.
Audio is currently disabled by default, but you can try turning it on
by runnning the command: <<<gsportx -audio 1>>>. It sounds horrible, but sounds do
come out.
* Raspberry Pi
At first, you may want to update/upgrade your base OS:
* <<<sudo apt-get update>>>
* <<<sudo apt-get upgrade>>>
[]
Then, add a line with the value <<<snd-pcm-oss>>> to the <<</etc/modules>>> file and reboot to enable sound.
Change the permissions to the resulting device <<</dev/pcm>>> (after rebooting): <<<sudo chmod 666 /dev/pcm>>>
Depending on the version of your OS, the following packages may need to be installed:
* xfonts-base: <<<sudo apt-get install xfonts-base>>>
* libX11-dev: <<<sudo apt-get install libX11-dev>>>
* libxext-dev: <<<sudo apt-get install libxext-dev>>>
* libpcap-dev: <<<sudo apt-get install libpcap-dev>>>
[]
Use the <<<vars_pi>>> file for compilation:
-------------
cd into the src/ directory
rm vars; ln -s vars_pi vars
make
---------
The resulting executable is called <<<gsportx>>>.
* Solaris SPARC
Use the <<<vars_solaris>>> file:
-------------------------------------
cd into the src/ directory
rm vars; ln -s vars_solaris vars
make
-------------------------------------
The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.
Audio is currently disabled by default, but you can try turning it on
by runnning the command: <<<gsportx -audio 1>>>
* Solaris x86
Use the <<<vars_x86solaris>>> file:
-------------------------------------
cd into the src/ directory
rm vars; ln -s vars_x86solaris vars
make
-------------------------------------
The build scripts assume perl is in your path. If it is somewhere else,
you need to edit the "PERL = perl" line in the vars file and make it point
to the correct place.
Audio is currently disabled by default, but you can try turning it on
by runnning the command: <<<gsportx -audio 1>>>
* Other platforms - "C"
If you are porting to an X-windows and Unix-based machine, it should be
easy. Start with <<<vars_x86linux>>> if you are a little-endian machine, or
<<<vars_linuxppc>>> if you are big endian. Don't define <<<-DGSPORT_LITTLE_ENDIAN>>>
unless your processor is little-endian (Alpha, x86, Mac Intel). Mac PPC, Sun, MIPS,
HP, Motorola, and IBM Power are big-endian.
* Under Development - Autotools Integration
With the autotools branch, the following sequence will
execute the build from the main directory:
----------------
autoreconf
automake --add-missing
autoheader
autoconf
sh configure
make
----------------
* Extended {Capabilities} by Platform
All platforms have a common core of capabilities:
* Base IIgs emulation
* Ensoniq sound emulation
* Virtual serial ports mapped to real hardware or IP-emulated ports
* Text and graphical printers
[]
The table below notes where the various builds differ in the support they have in the
code base now for various extended capabilities.
Turning the "No" boxes into "Yes" are all opportunities for contributions!
*-----:------:------:------+
|| <<Platform>> || <<Ethernet>> || <<Drag/Drop Disks>> || <<Clipboard Paste>>
*-----:------:------:------+
Linux | No | No | No |
*-----:------:------:------+
Macintosh | No | No | Yes |
*-----:------:------:------+
Windows | Yes | Yes | Yes |
*-----:------:------:------+
[]
* Building Graphical Printer Support
Until graphical parallel printer support is generally integrated into all builds, the following work needs to be done:
* Install Simple DirectMedia Layer ({{{http://www.libsdl.org/}SDL}}) and Freetype in your build environment - you'll need to link to their libraries
* Add the <<<-DHAVE_SDL>>> option to your <<<CCOPTS>>> and add the same (perhaps to a new) <<<CPPOPTS>>> in your <<<vars>>> file
* Add something like <<<-I/usr/include/freetype2>>> and <<<-I/usr/include/SDL>>> options to your <<<CCOPTS>>> and add the same (perhaps for a new) <<<CPPOPTS>>> in your <<<vars>>> file to point to the SDL and Freetype include files
* Include SDL and Freetype libraries to <<<EXTRA_LIBS>>> in your <<<vars>>> file (i.e. <<<EXTRA_LIBS = -lSDL -lfreetype>>>)
* Include the Win32 common dialog library to <<<EXTRA_LIBS>>> as part of your final linkage if you're on Windows (i.e. <<<EXTRA_LIBS = -lSDL -lfreetype -lcomdlg32>>>)
* After building, you'll need the file <<<parallel.rom>>> in the same directory that <<<config.txt>>> is found
* You'll probably want a monospaced TrueType font file easily accessible to add as part of the GSport configuration
* Run through the emulated printer {{{./printer.html}configuration}} steps
[]

View File

@ -0,0 +1,44 @@
-----
GSport Ethernet
-----
David Schmidt (1110325+david-schmidt@users.noreply.github.com)
-----
GSport Emulated Ethernet
The Uthernet (TFE) support in GSport was made possible by implementing the GPL source written by Spiro Trikaliotis for the {{{http://www.viceteam.org/}Vice emulator}}.
This version of GSport contains the latest code from VICE 2.2.
* Details
Right now Uthernet emulation only works under Windows.
Support for emulation under OS X and Linux is planned.
In order to use Uthernet emulation, you must install {{{http://www.WinPcap.org/install/default.html}WinPCap}} and
have a wired (not wireless) Ethernet connection on the host computer.
* GSport Setup
After GSport starts, press F4 to enter the text based menu and select the "Ethernet Card Configuration" option.
By default, Uthernet emulation is turned off. Enable it by setting "Uthernet Card in Slot 3" to "On".
Next, select the host interface you wish to use to communicate with the outside world. A list of available
interfaces is provided on screen. For most the default of interface "0" is correct.
Return back to the main menu and save your configuration for good measure. Due to limitations, you must exit
and restart GSport for the changes you made to take effect.
* GS/OS Setup
In order to use TCP/IP connectivity under GS/OS, you need to install the latest version of Marinetti
and its Uthernet Link Layer.
Ewen Wannop has prepared a ready-made hard drive image with everything pre-installed, and that image
is available in a version tuned specifically to GSport's Uthernet emulation.
Download and use the disk image in the "GSport Internet Starter Kit":
{{{http://sourceforge.net/projects/gsport/files/Emulator%20Software%20Images/}http://sourceforge.net/projects/gsport/files/Emulator Software Images/}}
* 8-bit Applications
Uthernet enabled versions of Contiki and ADTPro work fine with GSport. Other 8-bit software should also work but
are untested.

View File

@ -0,0 +1,69 @@
-----
GSport History
-----
David Schmidt (1110325+david-schmidt@users.noreply.github.com)
-----
GSport Release History
* Version 0.31 - 6/22/2014
New functionality:
* Added {{{./appletalk.html}AppleTalk}} networking emulation with bridging to EtherTalk
* Added clipboard text paste capability (OSX, Windows)
* Emulated serial ports are individually configurable as either
IP or passthrough to real hardware ports
* Added Imagewriter LQ printer emulation
[]
Bug fixes:
* IN#1 and IN#2 now trigger the incoming IP port to listen when
using IP simulated serial ports; previously, only PR#1 or PR#2
did
* Fixed crash when parallel.rom is missing
* Fix for real joysticks: unless the joystick is moving, gsport
sets the values to zero
[]
* Version 0.2a - 2/29/2012
New functionality:
* Added text-based virtual printer output for all platforms
* Added OSX drag/drop "installer" disk image (.dmg)
* Disk images will automatically mount and boot when specified as
the last argument on the command line, or when invoked from the
Windows shell (file->open as GSport.exe)
[]
Bug fixes:
* Win32: Added sound and native printer libraries, mistakenly omitted
* OSX: Fixed some "endianness" troubles with the fat binaries
[]
* Version 0.1 - 1/6/2011 released as interim build
New functionality:
* Added Uthernet support in slot 3. Code comes from the VICE emulator.
* Added virtual printer support in slot 1. Code comes from DOSBox emulator.
[]

View File

@ -0,0 +1,27 @@
-----
GSport Project Page
-----
David Schmidt (1110325+david-schmidt@users.noreply.github.com)
-----
GSport
GSport is a portable (in the programming sense) Apple IIgs emulator, based on the
KEGS cross-platform IIgs emulator by Kent Dickey.
The base emulator builds and runs on all of the same platforms that KEGS did, and
the new capabilities are being integrated as contributors have time and interest.
[images/gsport.png]
[images/download.png]
* Project Goals
The main goal for GSport is to provide a free, open ecosystem for the continuation
of cross-platform development of IIgs emulation.
Some interesting advances that initially spawned this project are Uthernet and printer support.
As those objectives are met, we will move on to the next objectives.
Do you have something that you wish a GS emulator did?
Submit an issue {{{https://github.com/david-schmidt/gsport/issues}here,}}
or better yet - dive in and {{{https://github.com/david-schmidt/gsport}contribute!}}

View File

@ -0,0 +1,744 @@
-----
Operating GSport
-----
David Schmidt (1110325+david-schmidt@users.noreply.github.com)
-----
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
---

View File

@ -0,0 +1,153 @@
-----
GSport Printers
-----
David Schmidt (1110325+david-schmidt@users.noreply.github.com)
-----
GSport Emulated Printers
There are two classes of printers emulated by GSport: an Epson LQ connected by a virtual serial card in slot 1,
and an Apple Imagewriter LQ or Imagewriter II attached to serial port 1.
Set up for common printing scenarios is detailed below:
* Emulated {{{./printer.html#Imagewriter}Imagewriter LQ/II}} - when you want to emulate an Imagewriter LQ or Imagewriter II specifically in slot 1
* Windows {{{./printer.html#Bitmap}Bitmap or Postscript}} (B&W) - when you want a graphical file saved on the host computer
* Direct to {{{./printer.html#Host}host printer}} - when you want a real, paper-based copy immediately (or, a Postscript file with an appropriate printer driver)
* {{{./printer.html#Text}Text File}} - when you want a file of plain text saved on the host computer
[]
When configuring the virtual printer (details below), these notes apply in all situations:
* The "Printer Timeout" setting configures how long until a form feed is automatically sent to the printer
(which forces the emulator to kick out a "page").
This value should be set to a value like 15 seconds or more for PR#1-type printing to work as you might expect.
If it is set to "Never", you must manually send a form feed, fill a page with text, or exit the emulator before output is saved.
This behavior is similar to modern laser/inkjet printers when they are used with Applesoft.
Most applications are good about sending form feeds at page end, so this issue doesn't usually come up.
* The Roman font is used in graphical printing by default, and the matching <<<lib/letgothl.ttf>>> is included in the distribution package.
Printing emulation won't work if no fonts at all are defined.
Any other mono-spaced TrueType font you have may also be used.
* Emulated {Imagewriter} LQ/II
In GSport's internal control panel:
[[]] Under "Serial Port Configuration" set Port 0 to "Virtual Imagewriter"
[images/printerI1.png]
[[]] Under "Virtual Imagewriter Configuration" you need to configure fonts. GSport comes with a fixed width font installed and pre-configured. Set any proportional font you wish to use. If you plan on using native Windows printer output or Postscript, set Multipage Files to "Yes". The default printer timeout of 2 seconds is fine if you are running the machine in 8Mhz or unlimited speed modes. Set it higher if you are running at 1Mhz or 2.8Mhz since the printer may time out while the computer is "thinking" during print jobs.
[images/printerI2.png]
[]
Printer DPI should be set to at least 720x720dpi for Imagewriter LQ resolution output (mostly GS/OS). Use 1440x1440dpi if you have a high resolution inkjet printer and plan on printing pure text documents. It also minimizes scaling artifacts when printing graphics.
Printer Type just changes the self ID string sent by the printer when the "ESC-?" command is sent. This is used by the driver included in GS/OS to determine what type of printer is connected and whether a color ribbon is installed. Set it to Imagewriter LQ in most cases.
<<Save your settings and restart GSport to apply your configuration changes!>>
(This will likely be fixed in a future release.)
In the native IIgs control panel:
[[]] Under "Slots", Slot 1 should be set to "Printer Port"
[[]] Under "Printer Port" leave everything at its default setting, but set baud rate to 19200. It is highly recommended that you install the QuickPort CDA and set the port speed to "57600". Since we are using the SCC emulation, the speed that data is transferred to the virtual printer is limited by the baud rate set by the emulated environment.
[]
8-bit and non-Printer Manager IIgs applications (like Printshop GS) should work without a problem after configuring them to print to an Imagewriter connected to slot 1. When printing text in programs like Appleworks, be sure to set page margins. By default, the emulator starts printing at the upper left hand corner of the virtual "page".
GS/OS requires configuration in the "DC Printer" control panel. Make sure you install the printer drivers from your GS/OS disk set. Set the port to "Printer" and type to "Imagewriter.LQ". If you have Harmonie, use its "Printer57.6" port driver as it greatly speeds up printing (the built in port driver appears to be hard coded to 19200 baud max). Do not use its "Printer.HAR" port driver as it sends junk text to the printer for some reason. Harmonie's "IWriterLQ.HAR" and "Imagewriter.HAR" drivers have been tested and are fully compatible with the printer emulator. They do not query the printer with ESC-?, so the setting of Printer Type in the GSport control panel doesn't matter with these. Both Harmonie and Pointless are highly recommended for the best quality output in GS/OS.
The printer emulator supports all Imagewriter II and LQ functions documented in Apple's official reference manuals. Mousetext and custom character definitions are NOT supported. This is consistent with a real Imagewriter LQ. Only the Imagewriter II supported those functions.
* Windows {Bitmap} or Postscript
To set up GSport to write .BMP or .PS files for each "page" produced, apply the following settings:
Enter the GS native control panel and set slot 1 to "Your Card", then save and exit the control panel.
You will need to reboot the emulated GS (with a cold boot - Ctrl-Alt-F12, etc.)
or restart GSport to have this change take effect, just like a real GS:
[images/printer0.png]
Press F4 to enter the text-based GSport menu and select the "Parallel Card Configuration" option.
By default, printer emulation is turned off. Enable it by setting "Parallel Card in Slot 1" to "On,"
and leave the "Parallel Output" option set to its default value, "Send full 8-bit data:"
[images/printer1.png]
Next, navigate back to the main menu and select the "Virtual Printer Configuration" option
and set "Printer Output Type" to either "Windows Bitmap" or "Postscript (B&W)" based on your preference:
[images/printer3.png]
Save the configuration, and printed output will be saved as files in GSport's current working directory.
* Direct to {Host} Printer
The "Direct to host printer" feature is only implemented on the Windows platform.
To set up GSport to send page-oriented output directly to your system's printer, apply the following settings:
Enter the GS native control panel and set slot 1 to "Your Card", then save and exit the control panel.
Note that you will need to restart GSport after all of the changes below are made, so don't restart just yet:
[images/printer0.png]
Press F4 to enter the text-based GSport menu and select the "Parallel Card Configuration" option.
By default, printer emulation is turned off. Enable it by setting "Parallel Card in Slot 1" to "On,"
and leave the "Parallel Output" option set to its default value, "Send full 8-bit data:"
[images/printer1.png]
Next, navigate back to the main menu and select the "Virtual Printer Configuration" option
and set "Printer Output Type" to "Direct to host printer:"
[images/printer6.png]
Save the configuration, and stop the GSport application altogether and restart it.
You should be presented with your system's default printer selection dialog box:
[images/printer7.png]
The printer you choose here will be the place that page-oriented output is sent, subject to the page ejection
timeouts discussed earlier.
Note that it is even possible to use a printer driver that itself produces PDF output instead of physical paper.
* {Text} File
Printing to a text file will bypass all printer emulation and simply append printed data to a file
named <<<printer.txt>>> in GSport's current working directory.
This is especially useful for text-based operations like Applesoft listings using the traditional
<<<PR#1:LIST:PR#0>>> command sequences.
Output from GSOS applications like TeachText are not actually textual in nature - they are graphical.
It would be more appropriate to use a different type of printer output in that situation.
To set up GSport to append printed text to a printer.txt file, apply the following settings:
Enter the GS native control panel and set slot 1 to "Your Card", then save and exit the control panel.
You will need to reboot the emulated GS (with a cold boot - Ctrl-Alt-F12, etc.)
or restart GSport to have this change take effect, just like a real GS:
[images/printer0.png]
Press F4 to enter the text-based GSport menu and select the "Parallel Card Configuration" option.
By default, printer emulation is turned off. Enable it by setting "Parallel Card in Slot 1" to "On."
Also change the "Parallel Output" option to "Mask off high bit:"
[images/printer4.png]
Next, navigate back to the main menu and select the "Virtual Printer Configuration" option
and set "Printer Output Type" to "Text file:"
[images/printer5.png]
Save the configuration, and printed output will be appended in the <<<printer.txt>>>
file in GSport's current working directory.

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

27
doc/web/src/site/site.xml Normal file
View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="GSport">
<bannerLeft>
<name>GSport: an Apple IIgs Emulator</name>
</bannerLeft>
<bannerRight>
<name></name>
</bannerRight>
<body>
<links>
<item name="Download" href="http://github.com/david-schmidt/gsport/releases"/>
<item name="Project Development Page" href="http://github.com/david-schmidt/gsport"/>
</links>
<menu name="GSport">
<item name="Main" href="index.html"/>
<item name="Download" href="http://github.com/david-schmidt/gsport/releases"/>
<item name="Operating" href="operating.html"/>
<item name="Developing" href="developing.html"/>
<item name="Emulated Appletalk" href="appletalk.html"/>
<item name="Emulated Ethernet" href="ethernet.html"/>
<item name="Emulated Printers" href="printer.html"/>
<item name="History" href="history.html"/>
</menu>
</body>
</project>

148
docs/appletalk.html Normal file
View File

@ -0,0 +1,148 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 2017-10-05 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GSport - GSport AppleTalk</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="author" content="Peter Neubauer" />
<meta name="Date-Revision-yyyymmdd" content="20171005" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<div id="bannerLeft">
GSport: an Apple IIgs Emulator
</div>
<div id="bannerRight">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2017-10-05</span>
&nbsp;| <span id="projectVersion">Version: 0.31</span>
</div>
<div class="xright"> <a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
|
<a href="https://github.com/david-schmidt/gsport" class="externalLink" title="Project Development Page">Project Development Page</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>GSport</h5>
<ul>
<li class="none">
<a href="index.html" title="Main">Main</a>
</li>
<li class="none">
<a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
</li>
<li class="none">
<a href="operating.html" title="Operating">Operating</a>
</li>
<li class="none">
<a href="developing.html" title="Developing">Developing</a>
</li>
<li class="none">
<strong>Emulated Appletalk</strong>
</li>
<li class="none">
<a href="ethernet.html" title="Emulated Ethernet">Emulated Ethernet</a>
</li>
<li class="none">
<a href="printer.html" title="Emulated Printers">Emulated Printers</a>
</li>
<li class="none">
<a href="history.html" title="History">History</a>
</li>
</ul>
<a href="https://github.com/david-schmidt/gsport"><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Logo.png" width="100" alt="Get GSport at Github." /></a>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section">
<h2>AppleTalk Emulation and Bridging for GSport<a name="AppleTalk_Emulation_and_Bridging_for_GSport"></a></h2>
<p>GSport now emulates the AppleTalk networking hardware found in the real Apple IIgs and bridges the networking packets to EtherTalk v2. GSport supports file sharing, printer sharing, and network booting features using Apple's original AppleTalk software, such as that shipped with GS/OS 6.0.1. Note that the original AppleTalk software is not directly compatible with modern software, and you will need a compatible file server, such as netatalk or A2SERVER.</p>
<div class="section">
<h3>Introduction<a name="Introduction"></a></h3>
<p>The Apple IIgs shipped with a fantastic but often overlooked feature -- AppleTalk networking. AppleTalk is a low-cost, easy-to-maintain network technology that enables network booting, file sharing, and printer sharing between your Apple IIgs, Workstation Card equipped Apple IIe, and classic Macintosh machines. As of March 2014, GSport is the first modern emulator with support for AppleTalk. Now, you can just &quot;drag and drop&quot; files between your machines without thinking about disk images, FTP, or serial cables. You can develop new software with an emulator and quickly test on real hardware. You don't need to think much about version control. Rather, you can update the file once on your file server, and all of your emulated and real machines have the new file. You can download the latest Apple II software and immediately run it.</p>
<p>Beware that Apple changed the meaning of the word &quot;AppleTalk.&quot; Originally, AppleTalk implied a physical layer using 3-pin MiniDIN shielded cables connected in a bus topology. As other physical layers such as Ethernet and TokenTalk became more affordable, Apple defined new terms. The term AppleTalk no longer implied MiniDIN cabling. Rather, AppleTalk became the overall term for Apple's approach to networking. LocalTalk refers to AppleTalk using the original MiniDIN physical and link layers. EtherTalk refers to AppleTalk using the Ethernet link and physical layers. TokenTalk refers to AppleTalk using the TokenRing link and physical layers. As the Internet became popular, Apple revised their approach to networking to use TCP/IP for the network and transport layers. The &quot;Internet modernized&quot; AppleTalk (AppleTalk IP) replaces many key services of the older AppleTalk and is incompatible with the previous incarnation of AppleTalk. The IIgs only supports AppleTalk using LocalTalk. The GSport emulation converts LocalTalk to EtherTalk but does <b>not</b> support AppleTalk over IP.</p></div>
<div class="section">
<h3>Using It<a name="Using_It"></a></h3>
<p>First, you need an AppleShare-compatible server. A classic Mac or &quot;netatalk&quot; server could provide this function. For simplicity, I recommend Ivan Drucker's A2SERVER (<a class="externalLink" href="http://appleii.ivanx.com/a2server/">http://appleii.ivanx.com/a2server/</a>), which is a pre-configured and easy-to-use package with &quot;netatalk&quot; and other useful tools. You may run A2SERVER in a VirtualBox virtual machine, on an existing Linux server, or on a Raspberry Pi. File and print sharing functions built-in to modern computers are not directly compatible.</p>
<p>Second, you need GSport 0.3 or later with ROM03 running on a Windows or Linux (x86 or Raspberry Pi) machine. Start GSport and press F4 to access the configuration menu. If necessary, select a ROM03 image. Select the &quot;Ethernet Card Configuration&quot; menu option. Change &quot;AppleTalk Bridging&quot; to &quot;On&quot;. Change &quot;Use Interface Number&quot; to select the network where you have attached your AppleShare server or A2SERVER. Exit the GSport configuration menu.</p>
<p>You may run GSport and netatalk (or A2SERVER) on the same machine:</p>
<p>On Windows:</p>
<ol style="list-style-type: decimal">
<li>Configure A2SERVER in a VirtualBox virtual machine. The A2SERVER project provides a pre-configured virtual machine as well as manual installation directions.</li>
<li>Install the &quot;Microsoft Loopback Adapter&quot; following directions from Microsoft. See <a class="externalLink" href="http://blogs.msdn.com/b/ukvsts/archive/2009/02/27/adding-the-ms-loopback-adapter-on-windows-7.aspx">http://blogs.msdn.com/b/ukvsts/archive/2009/02/27/adding-the-ms-loopback-adapter-on-windows-7.aspx</a> and <a class="externalLink" href="http://technet.microsoft.com/en-us/library/cc708322%28v=ws.10%29.aspx">http://technet.microsoft.com/en-us/library/cc708322%28v=ws.10%29.aspx</a>.</li>
<li>In the VirtualBox Manager, open &quot;Settings&quot; for the A2SERVER virtual machine. Select the &quot;Network&quot; section. Change the &quot;Attached to&quot; option to &quot;Bridged Adapter&quot; and &quot;Name&quot; to &quot;Microsoft Loopback Adapter&quot;. Under the &quot;Advanced&quot; sub-section, make sure &quot;Promiscuous Mode&quot; is &quot;Allow All&quot;.</li>
<li>Restart A2SERVER.</li>
<li>Restart GSport. Under the &quot;Ethernet Card Configuration&quot; menu, change &quot;Use Interface Number&quot; to select the &quot;MS LoopBack Driver&quot;.</li></ol>
<p>On Linux:</p>
<p>(Directions are forthcoming.)</p>
<p>Finally, party like it is 1989. Your GS is now connected to the AppleTalk network. Refer to Apple's documentation included with GS/OS System 5 and 6 for further directions.</p></div>
<div class="section">
<h3>Internal Overview<a name="Internal_Overview"></a></h3>
<p>GSport with AppleTalk networking is functionally equivalent to a real Apple IIgs with a LocalTalk/EtherTalk bridge. Originally, AppleTalk employed the &quot;LocalTalk&quot; physical layer, which requires special hardware not found on modern computers. GSport converts LocalTalk to EtherTalk, a somewhat more modern physical layer using familiar Ethernet cabling. Internally, GSport emulates the Zilog SCC chip in the IIgs, communicates with unmodified Apple-provided networking software built-in to the IIgs and GS/OS, and converts the network traffic to EtherTalk.</p></div>
<div class="section">
<h3>Limitations<a name="Limitations"></a></h3>
<ul>
<li>The IIgs hardware and GSport only support AppleTalk using LocalTalk. Neither are compatible with file or print sharing functions in modern computers. Instead, run a compatible network server, such as A2SERVER, Netatalk 2.x, or AppleShare.</li>
<li>A wireless network may not work because many wireless adapters drop EtherTalk packets. Instead, use a wired Ethernet connection.</li>
<li>AppleTalk bridging has been tested with System 6.0.1 and System 5.0.2 on ROM03. Booting from a local disk or from the network works. Other ROM revisions and system software may not work.</li>
<li>The SCC baud rate is incorrect because the GSport does not emulate line coding. Still, emulated network speed should be close to the 230.4kbps speed of a real LocalTalk network.</li>
<li>The bridge supports Windows using Visual Studio, Cygwin, and Linux (x86 and Raspberry Pi). Other platforms should be straightforward, but I do not have a suitable build environment.</li>
<li>The bridge requires an AppleTalk router on the network. The bridge should work in both a routerless and router-filled network, and future revisions will remove this limitation.</li>
<li>The bridge works with simple networks consisting of a single network on a single segment with a single zone. The bridge should function with all valid network configurations and hardware routers, and future revisions will remove this limitation. Other configurations might not work, and I welcome reports.</li>
<li>The bridge implements the non-extended method for acquiring the network number. Interoperability would likely be better using the extended method, but this method is much more complex.</li></ul></div>
<div class="section">
<h3>Credits<a name="Credits"></a></h3>
<p>Thanks to Gursharan Sidhu, Richard Andrews, and Alan Oppenheimer for creating and documenting AppleTalk.</p>
<p>Thanks to Kent Dickey and the GSport contributors for GSport and the original SCC emulation.</p>
<p>Thanks to David Schmenk for testing, encouragement, and Raspberry Pi support.</p>
<p>Thanks to Ivan Drucker for A2SERVER.</p>
<p>Thanks to the Gus emulator engineers for showing that AppleTalk emulation is possible.</p>
<p>Thanks to James Littlejohn for discussions about extending the capabilities of the Apple IIgs.</p></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2010-2017
GSport Contributors.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
<!-- Piwik --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/gsport/" : "http://sourceforge.net/apps/piwik/gsport/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); </script><script type="text/javascript"> try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);piwikTracker.trackPageView(); piwikTracker.enableLinkTracking();} catch( err ) {} </script><noscript><p><img src="http://sourceforge.net/apps/piwik/gsport/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript><!-- End Piwik Tag -->
</html>

155
docs/css/maven-base.css Normal file
View File

@ -0,0 +1,155 @@
body {
margin: 0px;
padding: 0px;
}
img {
border:none;
}
table {
padding:0px;
width: 100%;
margin-left: -2px;
margin-right: -2px;
}
acronym {
cursor: help;
border-bottom: 1px dotted #feb;
}
table.bodyTable th, table.bodyTable td {
padding: 2px 4px 2px 4px;
vertical-align: top;
}
div.clear{
clear:both;
visibility: hidden;
}
div.clear hr{
display: none;
}
#bannerLeft, #bannerRight {
font-size: xx-large;
font-weight: bold;
}
#bannerLeft img, #bannerRight img {
margin: 0px;
}
.xleft, #bannerLeft img {
float:left;
}
.xright, #bannerRight {
float:right;
}
#banner {
padding: 0px;
}
#banner img {
border: none;
}
#breadcrumbs {
padding: 3px 10px 3px 10px;
}
#leftColumn {
width: 170px;
float:left;
overflow: auto;
}
#bodyColumn {
margin-right: 1.5em;
margin-left: 197px;
}
#legend {
padding: 8px 0 8px 0;
}
#navcolumn {
padding: 8px 4px 0 8px;
}
#navcolumn h5 {
margin: 0;
padding: 0;
font-size: small;
}
#navcolumn ul {
margin: 0;
padding: 0;
font-size: small;
}
#navcolumn li {
list-style-type: none;
background-image: none;
background-repeat: no-repeat;
background-position: 0 0.4em;
padding-left: 16px;
list-style-position: outside;
line-height: 1.2em;
font-size: smaller;
}
#navcolumn li.expanded {
background-image: url(../images/expanded.gif);
}
#navcolumn li.collapsed {
background-image: url(../images/collapsed.gif);
}
#navcolumn li.none {
text-indent: -1em;
margin-left: 1em;
}
#poweredBy {
text-align: center;
}
#navcolumn img {
margin-top: 10px;
margin-bottom: 3px;
}
#poweredBy img {
display:block;
margin: 20px 0 20px 17px;
}
#search img {
margin: 0px;
display: block;
}
#search #q, #search #btnG {
border: 1px solid #999;
margin-bottom:10px;
}
#search form {
margin: 0px;
}
#lastPublished {
font-size: x-small;
}
.navSection {
margin-bottom: 2px;
padding: 8px;
}
.navSectionHead {
font-weight: bold;
font-size: x-small;
}
.section {
padding: 4px;
}
#footer {
padding: 3px 10px 3px 10px;
font-size: x-small;
}
#breadcrumbs {
font-size: x-small;
margin: 0pt;
}
.source {
padding: 12px;
margin: 1em 7px 1em 7px;
}
.source pre {
margin: 0px;
padding: 0px;
}
#navcolumn img.imageLink, .imageLink {
padding-left: 0px;
padding-bottom: 0px;
padding-top: 0px;
padding-right: 2px;
border: 0px;
margin: 0px;
}

141
docs/css/maven-theme.css Normal file
View File

@ -0,0 +1,141 @@
body {
padding: 0px 0px 10px 0px;
}
body, td, select, input, li{
font-family: Verdana, Helvetica, Arial, sans-serif;
font-size: 13px;
}
code{
font-family: Courier, monospace;
font-size: 13px;
}
a {
text-decoration: none;
}
a:link {
color:#36a;
}
a:visited {
color:#47a;
}
a:active, a:hover {
color:#69c;
}
#legend li.externalLink {
background: url(../images/external.png) left top no-repeat;
padding-left: 18px;
}
a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
background: url(../images/external.png) right center no-repeat;
padding-right: 18px;
}
#legend li.newWindow {
background: url(../images/newwindow.png) left top no-repeat;
padding-left: 18px;
}
a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {
background: url(../images/newwindow.png) right center no-repeat;
padding-right: 18px;
}
h2 {
padding: 4px 4px 4px 6px;
border: 1px solid #999;
color: #900;
background-color: #ddd;
font-weight:900;
font-size: x-large;
}
h3 {
padding: 4px 4px 4px 6px;
border: 1px solid #aaa;
color: #900;
background-color: #eee;
font-weight: normal;
font-size: large;
}
h4 {
padding: 4px 4px 4px 6px;
border: 1px solid #bbb;
color: #900;
background-color: #fff;
font-weight: normal;
font-size: large;
}
h5 {
padding: 4px 4px 4px 6px;
color: #900;
font-size: normal;
}
p {
line-height: 1.3em;
font-size: small;
}
#breadcrumbs {
border-top: 1px solid #aaa;
border-bottom: 1px solid #aaa;
background-color: #ccc;
}
#leftColumn {
margin: 10px 0 0 5px;
border: 1px solid #999;
background-color: #eee;
}
#navcolumn h5 {
font-size: smaller;
border-bottom: 1px solid #aaaaaa;
padding-top: 2px;
color: #000;
}
table.bodyTable th {
color: white;
background-color: #bbb;
text-align: left;
font-weight: bold;
}
table.bodyTable th, table.bodyTable td {
font-size: 1em;
}
table.bodyTable tr.a {
background-color: #ddd;
}
table.bodyTable tr.b {
background-color: #eee;
}
.source {
border: 1px solid #999;
}
dl {
padding: 4px 4px 4px 6px;
border: 1px solid #aaa;
background-color: #ffc;
}
dt {
color: #900;
}
#organizationLogo img, #projectLogo img, #projectLogo span{
margin: 8px;
}
#banner {
border-bottom: 1px solid #fff;
}
.errormark, .warningmark, .donemark, .infomark {
background: url(../images/icon_error_sml.gif) no-repeat;
}
.warningmark {
background-image: url(../images/icon_warning_sml.gif);
}
.donemark {
background-image: url(../images/icon_success_sml.gif);
}
.infomark {
background-image: url(../images/icon_info_sml.gif);
}

7
docs/css/print.css Normal file
View File

@ -0,0 +1,7 @@
#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {
display: none !important;
}
#bodyColumn, body.docs div.docs {
margin: 0 !important;
border: none !important
}

1
docs/css/site.css Normal file
View File

@ -0,0 +1 @@
/* You can override this file with your own styles */

251
docs/developing.html Normal file
View File

@ -0,0 +1,251 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 2017-10-05 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GSport - Developing GSport</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="author" content="David Schmidt (1110325+david-schmidt@users.noreply.github.com)" />
<meta name="Date-Revision-yyyymmdd" content="20171005" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<div id="bannerLeft">
GSport: an Apple IIgs Emulator
</div>
<div id="bannerRight">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2017-10-05</span>
&nbsp;| <span id="projectVersion">Version: 0.31</span>
</div>
<div class="xright"> <a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
|
<a href="https://github.com/david-schmidt/gsport" class="externalLink" title="Project Development Page">Project Development Page</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>GSport</h5>
<ul>
<li class="none">
<a href="index.html" title="Main">Main</a>
</li>
<li class="none">
<a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
</li>
<li class="none">
<a href="operating.html" title="Operating">Operating</a>
</li>
<li class="none">
<strong>Developing</strong>
</li>
<li class="none">
<a href="appletalk.html" title="Emulated Appletalk">Emulated Appletalk</a>
</li>
<li class="none">
<a href="ethernet.html" title="Emulated Ethernet">Emulated Ethernet</a>
</li>
<li class="none">
<a href="printer.html" title="Emulated Printers">Emulated Printers</a>
</li>
<li class="none">
<a href="history.html" title="History">History</a>
</li>
</ul>
<a href="https://github.com/david-schmidt/gsport"><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Logo.png" width="100" alt="Get GSport at Github." /></a>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section">
<h2>Developing GSport<a name="Developing_GSport"></a></h2>
<p>Information, mostly concerning building, about various platforms:</p>
<div class="section">
<h3>General Build Instructions<a name="General_Build_Instructions"></a></h3>
<p>You need to build with a <tt>make</tt> utility. There's a default Makefile, which should work for nearly any environment. The Makefile includes a file called <tt>vars</tt> which defines the platform- dependent variables. You need to make <tt>vars</tt> point to (or be) the appropriate file for your machine.</p></div>
<div class="section">
<h3>Win32<a name="Win32"></a></h3>
<p>There is a different port of KEGS by Chea Chee Keong (akilgard) called KEGS32. It was originally available from <a class="externalLink" href="http://web.archive.org/web/20071107082448/http://www.geocities.com/akilgard/kegs32/">http://www.geocities.com/akilgard/kegs32</a>, but geocities has since closed. The Win32 code in GSport is leveraged from KEGS32.</p>
<p>GSport can be compiled with <a class="externalLink" href="http://www.mingw.org/">Mingw</a> and <a class="externalLink" href="http://www.cygwin.com/">Cygwin</a> as well as via standard Microsoft compiler suites.</p>
<p>In order to compile with the standard Microsoft compiler suites, download and install <a class="externalLink" href="https://www.visualstudio.com/downloads/download-visual-studio-vs">Microsoft Visual Studio Community 2015 from Microsoft's website</a>. The build process requires Perl, such as <a class="externalLink" href="http://www.activestate.com/activeperl">ActiveState ActivePerl</a>. Within Visual Studio, open the &quot;gsport.sln&quot; solution file. Set the &quot;gsport&quot; project as the &quot;StartUp Project&quot;, and choose &quot;Build Solution&quot; from the &quot;Build&quot; menu.</p>
<p>In order to compile with Cygwin:</p>
<div>
<pre>cd into the src/ directory
rm vars
ln -s vars_win32 vars
make
</pre></div>
<p>You need to have a ROM file (named ROM, ROM.01, or ROM.03) in the same directory as the resulting executable.</p>
<p>To quit, either click the close box, or force quit the application. You can also middle-click (if you have a 3-button mouse) or Shift-F6 to get the debugger in the terminal window, and then type &quot;q&quot;.</p></div>
<div class="section">
<h3>Mac OS X<a name="Mac_OS_X"></a></h3>
<p>Use the <tt>vars_mac</tt> file:</p>
<div>
<pre>cd into the src/ directory
rm vars; ln -s vars_mac vars
make
</pre></div>
<p>After the <tt>make</tt> has finished, it will create the application <tt>GSport</tt>.</p></div>
<div class="section">
<h3>X86 Linux<a name="X86_Linux"></a></h3>
<p>Use the <tt>vars_x86linux</tt> file:</p>
<div>
<pre>cd into the src/ directory
rm vars; ln -s vars_x86linux vars
make
</pre></div>
<p>The resulting executable is called <tt>gsportx</tt>.</p>
<p>The build scripts assume perl is in your path. If it is somewhere else, you need to edit the &quot;PERL = perl&quot; line in the vars file and make it point to the correct place.</p>
<p>For audio, GSport needs access to <tt>/dev/dsp</tt>. If the permissions do not allow GSport to access <tt>/dev/dsp</tt>, it can fail with a cryptic error message. As root, just do: <tt>chmod 666 /dev/dsp</tt> .</p>
<p>If you do not have the <tt>/dev/dsp</tt> device, GSport will not start unless you tell it to disable audio with the following command-line argument: <tt>./gsportx -audio 0</tt></p></div>
<div class="section">
<h3>PowerPC Linux<a name="PowerPC_Linux"></a></h3>
<p>Use the <tt>vars_linuxppc</tt> file:</p>
<div>
<pre>cd into the src/ directory
rm vars; ln -s vars_linuxppc vars
make
</pre></div>
<p>The build scripts assume perl is in your path. If it is somewhere else, you need to edit the &quot;PERL = perl&quot; line in the vars file and make it point to the correct place.</p>
<p>Audio is currently disabled by default, but you can try turning it on by runnning the command: <tt>gsportx -audio 1</tt>. It sounds horrible, but sounds do come out.</p></div>
<div class="section">
<h3>Raspberry Pi<a name="Raspberry_Pi"></a></h3>
<p>At first, you may want to update/upgrade your base OS:</p>
<ul>
<li><tt>sudo apt-get update</tt></li>
<li><tt>sudo apt-get upgrade</tt></li></ul>
<p>Then, add a line with the value <tt>snd-pcm-oss</tt> to the <tt>/etc/modules</tt> file and reboot to enable sound. Change the permissions to the resulting device <tt>/dev/pcm</tt> (after rebooting): <tt>sudo chmod 666 /dev/pcm</tt></p>
<p>Depending on the version of your OS, the following packages may need to be installed:</p>
<ul>
<li>xfonts-base: <tt>sudo apt-get install xfonts-base</tt></li>
<li>libX11-dev: <tt>sudo apt-get install libX11-dev</tt></li>
<li>libxext-dev: <tt>sudo apt-get install libxext-dev</tt></li>
<li>libpcap-dev: <tt>sudo apt-get install libpcap-dev</tt></li></ul>
<p>Use the <tt>vars_pi</tt> file for compilation:</p>
<div>
<pre>cd into the src/ directory
rm vars; ln -s vars_pi vars
make
</pre></div>
<p>The resulting executable is called <tt>gsportx</tt>.</p></div>
<div class="section">
<h3>Solaris SPARC<a name="Solaris_SPARC"></a></h3>
<p>Use the <tt>vars_solaris</tt> file:</p>
<div>
<pre>cd into the src/ directory
rm vars; ln -s vars_solaris vars
make
</pre></div>
<p>The build scripts assume perl is in your path. If it is somewhere else, you need to edit the &quot;PERL = perl&quot; line in the vars file and make it point to the correct place.</p>
<p>Audio is currently disabled by default, but you can try turning it on by runnning the command: <tt>gsportx -audio 1</tt></p></div>
<div class="section">
<h3>Solaris x86<a name="Solaris_x86"></a></h3>
<p>Use the <tt>vars_x86solaris</tt> file:</p>
<div>
<pre>cd into the src/ directory
rm vars; ln -s vars_x86solaris vars
make
</pre></div>
<p>The build scripts assume perl is in your path. If it is somewhere else, you need to edit the &quot;PERL = perl&quot; line in the vars file and make it point to the correct place.</p>
<p>Audio is currently disabled by default, but you can try turning it on by runnning the command: <tt>gsportx -audio 1</tt></p></div>
<div class="section">
<h3>Other platforms - &quot;C&quot;<a name="Other_platforms_-_C"></a></h3>
<p>If you are porting to an X-windows and Unix-based machine, it should be easy. Start with <tt>vars_x86linux</tt> if you are a little-endian machine, or <tt>vars_linuxppc</tt> if you are big endian. Don't define <tt>-DGSPORT_LITTLE_ENDIAN</tt> unless your processor is little-endian (Alpha, x86, Mac Intel). Mac PPC, Sun, MIPS, HP, Motorola, and IBM Power are big-endian.</p></div>
<div class="section">
<h3>Under Development - Autotools Integration<a name="Under_Development_-_Autotools_Integration"></a></h3>
<p>With the autotools branch, the following sequence will execute the build from the main directory:</p>
<div>
<pre>autoreconf
automake --add-missing
autoheader
autoconf
sh configure
make
</pre></div></div>
<div class="section">
<h3>Extended <a name="Capabilities">Capabilities</a> by Platform<a name="Extended_Capabilities_by_Platform"></a></h3>
<p>All platforms have a common core of capabilities:</p>
<ul>
<li>Base IIgs emulation</li>
<li>Ensoniq sound emulation</li>
<li>Virtual serial ports mapped to real hardware or IP-emulated ports</li>
<li>Text and graphical printers </li></ul>
<p>The table below notes where the various builds differ in the support they have in the code base now for various extended capabilities. Turning the &quot;No&quot; boxes into &quot;Yes&quot; are all opportunities for contributions!</p>
<table border="1" class="bodyTable">
<tr class="a">
<th align="right"><b>Platform</b></th>
<th align="right"><b>Ethernet</b></th>
<th align="right"><b>Drag/Drop Disks</b></th>
<th align="left"><b>Clipboard Paste</b></th></tr>
<tr class="b">
<td align="right">Linux</td>
<td align="right">No</td>
<td align="right">No</td>
<td align="left">No</td></tr>
<tr class="a">
<td align="right">Macintosh</td>
<td align="right">No</td>
<td align="right">No</td>
<td align="left">Yes</td></tr>
<tr class="b">
<td align="right">Windows</td>
<td align="right">Yes</td>
<td align="right">Yes</td>
<td align="left">Yes</td></tr></table></div>
<div class="section">
<h3>Building Graphical Printer Support <a name="Building_Graphical_Printer_Support"></a></h3>
<p>Until graphical parallel printer support is generally integrated into all builds, the following work needs to be done:</p>
<ul>
<li>Install Simple DirectMedia Layer (<a class="externalLink" href="http://www.libsdl.org/">SDL</a>) and Freetype in your build environment - you'll need to link to their libraries </li>
<li>Add the <tt>-DHAVE_SDL</tt> option to your <tt>CCOPTS</tt> and add the same (perhaps to a new) <tt>CPPOPTS</tt> in your <tt>vars</tt> file</li>
<li>Add something like <tt>-I/usr/include/freetype2</tt> and <tt>-I/usr/include/SDL</tt> options to your <tt>CCOPTS</tt> and add the same (perhaps for a new) <tt>CPPOPTS</tt> in your <tt>vars</tt> file to point to the SDL and Freetype include files</li>
<li>Include SDL and Freetype libraries to <tt>EXTRA_LIBS</tt> in your <tt>vars</tt> file (i.e. <tt>EXTRA_LIBS = -lSDL -lfreetype</tt>)</li>
<li>Include the Win32 common dialog library to <tt>EXTRA_LIBS</tt> as part of your final linkage if you're on Windows (i.e. <tt>EXTRA_LIBS = -lSDL -lfreetype -lcomdlg32</tt>)</li>
<li>After building, you'll need the file <tt>parallel.rom</tt> in the same directory that <tt>config.txt</tt> is found</li>
<li>You'll probably want a monospaced TrueType font file easily accessible to add as part of the GSport configuration</li>
<li>Run through the emulated printer <a href="./printer.html">configuration</a> steps</li></ul></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2010-2017
GSport Contributors.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
<!-- Piwik --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/gsport/" : "http://sourceforge.net/apps/piwik/gsport/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); </script><script type="text/javascript"> try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);piwikTracker.trackPageView(); piwikTracker.enableLinkTracking();} catch( err ) {} </script><noscript><p><img src="http://sourceforge.net/apps/piwik/gsport/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript><!-- End Piwik Tag -->
</html>

123
docs/ethernet.html Normal file
View File

@ -0,0 +1,123 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 2017-10-05 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GSport - GSport Ethernet</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="author" content="David Schmidt (1110325+david-schmidt@users.noreply.github.com)" />
<meta name="Date-Revision-yyyymmdd" content="20171005" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<div id="bannerLeft">
GSport: an Apple IIgs Emulator
</div>
<div id="bannerRight">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2017-10-05</span>
&nbsp;| <span id="projectVersion">Version: 0.31</span>
</div>
<div class="xright"> <a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
|
<a href="https://github.com/david-schmidt/gsport" class="externalLink" title="Project Development Page">Project Development Page</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>GSport</h5>
<ul>
<li class="none">
<a href="index.html" title="Main">Main</a>
</li>
<li class="none">
<a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
</li>
<li class="none">
<a href="operating.html" title="Operating">Operating</a>
</li>
<li class="none">
<a href="developing.html" title="Developing">Developing</a>
</li>
<li class="none">
<a href="appletalk.html" title="Emulated Appletalk">Emulated Appletalk</a>
</li>
<li class="none">
<strong>Emulated Ethernet</strong>
</li>
<li class="none">
<a href="printer.html" title="Emulated Printers">Emulated Printers</a>
</li>
<li class="none">
<a href="history.html" title="History">History</a>
</li>
</ul>
<a href="https://github.com/david-schmidt/gsport"><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Logo.png" width="100" alt="Get GSport at Github." /></a>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section">
<h2>GSport Emulated Ethernet<a name="GSport_Emulated_Ethernet"></a></h2>
<p>The Uthernet (TFE) support in GSport was made possible by implementing the GPL source written by Spiro Trikaliotis for the <a class="externalLink" href="http://www.viceteam.org/">Vice emulator</a>. This version of GSport contains the latest code from VICE 2.2.</p>
<div class="section">
<h3>Details<a name="Details"></a></h3>
<p>Right now Uthernet emulation only works under Windows. Support for emulation under OS X and Linux is planned. In order to use Uthernet emulation, you must install <a class="externalLink" href="http://www.WinPcap.org/install/default.html">WinPCap</a> and have a wired (not wireless) Ethernet connection on the host computer.</p></div>
<div class="section">
<h3>GSport Setup<a name="GSport_Setup"></a></h3>
<p>After GSport starts, press F4 to enter the text based menu and select the &quot;Ethernet Card Configuration&quot; option.</p>
<p>By default, Uthernet emulation is turned off. Enable it by setting &quot;Uthernet Card in Slot 3&quot; to &quot;On&quot;.</p>
<p>Next, select the host interface you wish to use to communicate with the outside world. A list of available interfaces is provided on screen. For most the default of interface &quot;0&quot; is correct.</p>
<p>Return back to the main menu and save your configuration for good measure. Due to limitations, you must exit and restart GSport for the changes you made to take effect.</p></div>
<div class="section">
<h3>GS/OS Setup<a name="GSOS_Setup"></a></h3>
<p>In order to use TCP/IP connectivity under GS/OS, you need to install the latest version of Marinetti and its Uthernet Link Layer. Ewen Wannop has prepared a ready-made hard drive image with everything pre-installed, and that image is available in a version tuned specifically to GSport's Uthernet emulation. Download and use the disk image in the &quot;GSport Internet Starter Kit&quot;:</p>
<p><a class="externalLink" href="http://sourceforge.net/projects/gsport/files/Emulator%20Software%20Images/">http://sourceforge.net/projects/gsport/files/Emulator Software Images/</a></p></div>
<div class="section">
<h3>8-bit Applications<a name="a8-bit_Applications"></a></h3>
<p>Uthernet enabled versions of Contiki and ADTPro work fine with GSport. Other 8-bit software should also work but are untested.</p></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2010-2017
GSport Contributors.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
<!-- Piwik --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/gsport/" : "http://sourceforge.net/apps/piwik/gsport/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); </script><script type="text/javascript"> try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);piwikTracker.trackPageView(); piwikTracker.enableLinkTracking();} catch( err ) {} </script><noscript><p><img src="http://sourceforge.net/apps/piwik/gsport/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript><!-- End Piwik Tag -->
</html>

136
docs/history.html Normal file
View File

@ -0,0 +1,136 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 2017-10-05 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GSport - GSport History</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="author" content="David Schmidt (1110325+david-schmidt@users.noreply.github.com)" />
<meta name="Date-Revision-yyyymmdd" content="20171005" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<div id="bannerLeft">
GSport: an Apple IIgs Emulator
</div>
<div id="bannerRight">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2017-10-05</span>
&nbsp;| <span id="projectVersion">Version: 0.31</span>
</div>
<div class="xright"> <a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
|
<a href="https://github.com/david-schmidt/gsport" class="externalLink" title="Project Development Page">Project Development Page</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>GSport</h5>
<ul>
<li class="none">
<a href="index.html" title="Main">Main</a>
</li>
<li class="none">
<a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
</li>
<li class="none">
<a href="operating.html" title="Operating">Operating</a>
</li>
<li class="none">
<a href="developing.html" title="Developing">Developing</a>
</li>
<li class="none">
<a href="appletalk.html" title="Emulated Appletalk">Emulated Appletalk</a>
</li>
<li class="none">
<a href="ethernet.html" title="Emulated Ethernet">Emulated Ethernet</a>
</li>
<li class="none">
<a href="printer.html" title="Emulated Printers">Emulated Printers</a>
</li>
<li class="none">
<strong>History</strong>
</li>
</ul>
<a href="https://github.com/david-schmidt/gsport"><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Logo.png" width="100" alt="Get GSport at Github." /></a>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section">
<h2>GSport Release History<a name="GSport_Release_History"></a></h2>
<div class="section">
<h3>Version 0.31 - 6/22/2014<a name="Version_0.31_-_6222014"></a></h3>
<p>New functionality:</p>
<ul>
<li>Added <a href="./appletalk.html">AppleTalk</a> networking emulation with bridging to EtherTalk</li>
<li>Added clipboard text paste capability (OSX, Windows)</li>
<li>Emulated serial ports are individually configurable as either IP or passthrough to real hardware ports</li>
<li>Added Imagewriter LQ printer emulation</li></ul>
<p>Bug fixes:</p>
<ul>
<li>IN#1 and IN#2 now trigger the incoming IP port to listen when using IP simulated serial ports; previously, only PR#1 or PR#2 did </li>
<li>Fixed crash when parallel.rom is missing</li>
<li>Fix for real joysticks: unless the joystick is moving, gsport sets the values to zero</li></ul></div>
<div class="section">
<h3>Version 0.2a - 2/29/2012<a name="Version_0.2a_-_2292012"></a></h3>
<p>New functionality:</p>
<ul>
<li>Added text-based virtual printer output for all platforms</li>
<li>Added OSX drag/drop &quot;installer&quot; disk image (.dmg)</li>
<li>Disk images will automatically mount and boot when specified as the last argument on the command line, or when invoked from the Windows shell (file-&gt;open as GSport.exe)</li></ul>
<p>Bug fixes:</p>
<ul>
<li>Win32: Added sound and native printer libraries, mistakenly omitted</li>
<li>OSX: Fixed some &quot;endianness&quot; troubles with the fat binaries</li></ul></div>
<div class="section">
<h3>Version 0.1 - 1/6/2011 released as interim build<a name="Version_0.1_-_162011_released_as_interim_build"></a></h3>
<p>New functionality:</p>
<ul>
<li>Added Uthernet support in slot 3. Code comes from the VICE emulator.</li>
<li>Added virtual printer support in slot 1. Code comes from DOSBox emulator.</li></ul></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2010-2017
GSport Contributors.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
<!-- Piwik --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/gsport/" : "http://sourceforge.net/apps/piwik/gsport/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); </script><script type="text/javascript"> try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);piwikTracker.trackPageView(); piwikTracker.enableLinkTracking();} catch( err ) {} </script><noscript><p><img src="http://sourceforge.net/apps/piwik/gsport/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript><!-- End Piwik Tag -->
</html>

BIN
docs/images/collapsed.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 B

BIN
docs/images/download.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/images/expanded.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 B

BIN
docs/images/external.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 230 B

BIN
docs/images/gsport.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
docs/images/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1010 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 990 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 576 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
docs/images/newwindow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

BIN
docs/images/printer0.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
docs/images/printer1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

BIN
docs/images/printer2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
docs/images/printer3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
docs/images/printer4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
docs/images/printer5.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
docs/images/printer6.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
docs/images/printer7.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

BIN
docs/images/printerI1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

BIN
docs/images/printerI2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

111
docs/index.html Normal file
View File

@ -0,0 +1,111 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 2017-10-05 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GSport - GSport Project Page</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="author" content="David Schmidt (1110325+david-schmidt@users.noreply.github.com)" />
<meta name="Date-Revision-yyyymmdd" content="20171005" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<div id="bannerLeft">
GSport: an Apple IIgs Emulator
</div>
<div id="bannerRight">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2017-10-05</span>
&nbsp;| <span id="projectVersion">Version: 0.31</span>
</div>
<div class="xright"> <a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
|
<a href="https://github.com/david-schmidt/gsport" class="externalLink" title="Project Development Page">Project Development Page</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>GSport</h5>
<ul>
<li class="none">
<strong>Main</strong>
</li>
<li class="none">
<a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
</li>
<li class="none">
<a href="operating.html" title="Operating">Operating</a>
</li>
<li class="none">
<a href="developing.html" title="Developing">Developing</a>
</li>
<li class="none">
<a href="appletalk.html" title="Emulated Appletalk">Emulated Appletalk</a>
</li>
<li class="none">
<a href="ethernet.html" title="Emulated Ethernet">Emulated Ethernet</a>
</li>
<li class="none">
<a href="printer.html" title="Emulated Printers">Emulated Printers</a>
</li>
<li class="none">
<a href="history.html" title="History">History</a>
</li>
</ul>
<a href="https://github.com/david-schmidt/gsport"><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Logo.png" width="100" alt="Get GSport at Github." /></a>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section">
<h2>GSport<a name="GSport"></a></h2>
<p>GSport is a portable (in the programming sense) Apple IIgs emulator, based on the KEGS cross-platform IIgs emulator by Kent Dickey. The base emulator builds and runs on all of the same platforms that KEGS did, and the new capabilities are being integrated as contributors have time and interest.</p><img src="images/gsport.png" alt="" /><a href="https://github.com/david-schmidt/gsport/releases" target="_new"><img src="images/download.png" /></a>
<div class="section">
<h3>Project Goals<a name="Project_Goals"></a></h3>
<p>The main goal for GSport is to provide a free, open ecosystem for the continuation of cross-platform development of IIgs emulation.</p>
<p>Some interesting advances that initially spawned this project are Uthernet and printer support. As those objectives are met, we will move on to the next objectives. Do you have something that you wish a GS emulator did? Submit an issue <a class="externalLink" href="https://github.com/david-schmidt/gsport/issues">here,</a> or better yet - dive in and <a class="externalLink" href="https://github.com/david-schmidt/gsport">contribute!</a></p></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2010-2017
GSport Contributors.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
<!-- Piwik --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/gsport/" : "http://sourceforge.net/apps/piwik/gsport/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); </script><script type="text/javascript"> try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);piwikTracker.trackPageView(); piwikTracker.enableLinkTracking();} catch( err ) {} </script><noscript><p><img src="http://sourceforge.net/apps/piwik/gsport/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript><!-- End Piwik Tag -->
</html>

417
docs/operating.html Normal file
View File

@ -0,0 +1,417 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 2017-10-05 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GSport - Operating GSport</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="author" content="David Schmidt (1110325+david-schmidt@users.noreply.github.com)" />
<meta name="Date-Revision-yyyymmdd" content="20171005" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<div id="bannerLeft">
GSport: an Apple IIgs Emulator
</div>
<div id="bannerRight">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2017-10-05</span>
&nbsp;| <span id="projectVersion">Version: 0.31</span>
</div>
<div class="xright"> <a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
|
<a href="https://github.com/david-schmidt/gsport" class="externalLink" title="Project Development Page">Project Development Page</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>GSport</h5>
<ul>
<li class="none">
<a href="index.html" title="Main">Main</a>
</li>
<li class="none">
<a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
</li>
<li class="none">
<strong>Operating</strong>
</li>
<li class="none">
<a href="developing.html" title="Developing">Developing</a>
</li>
<li class="none">
<a href="appletalk.html" title="Emulated Appletalk">Emulated Appletalk</a>
</li>
<li class="none">
<a href="ethernet.html" title="Emulated Ethernet">Emulated Ethernet</a>
</li>
<li class="none">
<a href="printer.html" title="Emulated Printers">Emulated Printers</a>
</li>
<li class="none">
<a href="history.html" title="History">History</a>
</li>
</ul>
<a href="https://github.com/david-schmidt/gsport"><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Logo.png" width="100" alt="Get GSport at Github." /></a>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section">
<h2>Operating GSport<a name="Operating_GSport"></a></h2>
<div class="section">
<h3>Getting a ROM file<a name="Getting_a_ROM_file"></a></h3>
<p>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.</p>
<p>GSport can use the ROM image from either a ROM01 or ROM03 IIgs machine. By default, that file should be named <tt>rom</tt> and be placed in the same folder as the GSport program/app. The name and location are configurable options, but it will &quot;just work&quot; with the defaults. </p></div>
<div class="section">
<h3>Running GSport<a name="Running_GSport"></a></h3>
<p>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 &quot;debug&quot; window. </p>
<p>GSport will look in a number of places for two files it requires: <tt>config.txt</tt> and <tt>rom</tt>. The suggested place for these files is right alongside the GSport application itself.</p>
<p>Start GSport by Double-clicking the GSport icon on a Mac, or by running the executable (<tt>gsport.exe</tt> on Windows, and <tt>gsportx</tt> on Linux). GSport can be run from the Terminal window on a Mac as well (which enables access to more debug information) by typing: <tt>./GSport.app/Contents/MacOS/GSport</tt> 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: <br /><tt>./GSport.app/Contents/MacOS/GSport /path/to/my/disk.po</tt> </p>
<p>Assuming all goes well, GSport will then boot up but probably not find any disk images. Hit the &quot;F4&quot; key and see below for how to tell GSport what disk images to use. Tip: Hitting &quot;F8&quot; locks the mouse in the window (and hides the host cursor) until you hit &quot;F8&quot; again.</p>
<p>See the the <a href="./developing.html">developing</a> page for information about developing GSport and compiliing it for yourself.</p></div>
<div class="section">
<h3>Configuration Panel<a name="Configuration_Panel"></a></h3>
<p>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).</p>
<p>To select a ROM file, select &quot;ROM File Selection&quot; and then select your ROM file. If you were not forced into the panel at startup, then GSport found one and it is working.</p></div>
<div class="section">
<h3>Disk Images<a name="Disk_Images"></a></h3>
<p>The primary use of the Configuration Panel is to select disk images. To change disk images being used, select &quot;Disk Configuration&quot;. Each slot and drive that can be loaded with an image is listed. &quot;s5d1&quot; means slot 5, drive 1. Slot 5 devices are 3.5&quot; 800K disks, and slot 6 devices are 5.25&quot; 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).</p>
<p>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 &quot;..&quot; entries to go up a directory level. When you find the image you want, just press the Enter or Return key.</p>
<p>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.</p>
<p>GSport can handle &quot;raw&quot;, .dsk, .po, 2IMG, 5.25&quot; &quot;.nib&quot; images, most Mac Diskcopy images and partitioned images. The .dsk and .po formats you often find on the web are really &quot;raw&quot; 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 &quot;.gz&quot;) automatically as a read-only disk image.</p>
<p>An image is the representation of an Apple IIgs disk, but in a file on your computer. For 3.5&quot; 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.</p>
<p>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.</p>
<p>Support for 5.25&quot; 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 &quot;disk.nib&quot; in the <tt>config.txt</tt> file like any .dsk or .po image.</p>
<p>In addition to changing disks, you can also just &quot;eject&quot; and image by moving the cursor to select that slot/drive and then press &quot;E&quot;. The emulated IIgs will immediately detect changes to s5d1 and s5d2.</p>
<p>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.</p></div>
<div class="section">
<h3>Keyboard Summary<a name="Keyboard_Summary"></a></h3>
<div>
<pre>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 &quot;Clear&quot;.
F12, Pause, Break: Reset
&quot;Home&quot;: Alias for &quot;=&quot; on the keypad (since my Unix keyboard doesn't have an =).
</pre></div></div>
<div class="section">
<h3>Using GSport<a name="Using_GSport"></a></h3>
<p>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.</p>
<p>The middle mouse button or Shift-F6 causes GSport to stop emulation, and enter the debugger. You can continue with &quot;g&quot; then return in the debug window. You can also disassemble memory, etc. The section &quot;Debugging GSport&quot; above describes the debugger interface a little more.</p>
<p>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).</p></div>
<div class="section">
<h3>Quitting GSport<a name="Quitting_GSport"></a></h3>
<p>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 &quot;q&quot; return in the debug window.</p></div>
<div class="section">
<h3>Command/Option keys<a name="CommandOption_keys"></a></h3>
<p>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.</p>
<p>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).</p>
<p>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.</p>
<p>The joystick/paddle buttons are just the Command and Option keys.</p></div>
<div class="section">
<h3>Reset<a name="Reset"></a></h3>
<p>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.</p></div>
<div class="section">
<h3>Full Screen mode (Mac OS X only)<a name="Full_Screen_mode_Mac_OS_X_only"></a></h3>
<p>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).</p>
<p>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.</p></div>
<div class="section">
<h3>Joystick Emulation (Mouse, Keypad, or real native joystick)<a name="Joystick_Emulation_Mouse_Keypad_or_real_native_joystick"></a></h3>
<p>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 &quot;Little Brick Out&quot; so that the mouse will be moving like the paddle on the screen. &quot;Little Brick Out&quot; is on the DOS 3.3 master disk. The joystick does not work properly if the pointer is constrained in the window.</p>
<p>You can also select from a &quot;Keypad Joystick&quot; or a real joystick from the Configuration panel. Press return on the &quot;Joystick Configuration&quot; 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.</p>
<p>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.</p></div>
<div class="section">
<h3>Debugging GSport<a name="Debugging_GSport"></a></h3>
<p>GSport by default now continues emulation even when it detects buggy programs running. (Now I know why Appleworks GS always seemed to crash!).</p>
<p>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.</p>
<p>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 &quot;About This Apple IIgs&quot; window in the Finder causes a code yellow alert, but it seems quite harmless.</p>
<p>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.</p>
<p>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:</p>
<div>
<pre>e1/0010B
</pre></div>
<p>The format is &quot;bank/address&quot; then &quot;B&quot;, 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.</p>
<p>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</p>
<div>
<pre>e1/0010D
</pre></div>
<p>deletes the above breakpoint. The addresses work like the IIgs monitor: once you change banks, you can use shortcut addresses:</p>
<div>
<pre>e1/0010B
14B
</pre></div>
<p>will add breakpoints at e1/0010 and e1/0014.</p>
<p>This is a &quot;transparent&quot; 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 &quot;page&quot; the breakpoint is on. Breakpoints are not just instruction breakpoints, they also cause GSport to halt on any data access, too (usually called watchpoints).</p>
<p>Frederic Devernay has written a nice help screen available in the debugger when you type &quot;h&quot;.</p>
<p>Useful locations for setting breakpoints: 0/3f0B - Break handler 0/c000B - Keyboard latch, programs read keys from this address</p></div>
<div class="section">
<h3>GSport command-line option summary<a name="GSport_command-line_option_summary"></a></h3>
<p>There are others, but the Configuration panel provides a better way to set them so they are no longer listed here.</p>
<div>
<pre>-skip: GSport will &quot;skip&quot; 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 (&gt;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.
</pre></div>
<p>X-Windows/Linux options:</p>
<div>
<pre>-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.
</pre></div></div>
<div class="section">
<h3>Apple IIgs Control Panel<a name="Apple_IIgs_Control_Panel"></a></h3>
<p>You can get to the Apple IIgs control panel (unless some application has locked it out) using Ctrl-Command-Esc.</p></div>
<div class="section">
<h3>Details on config.txt and disk images<a name="Details_on_config.txt_and_disk_images"></a></h3>
<p>The file <tt>config.txt</tt> 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.</p>
<p>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.</p>
<p>GSport, by default, runs the IWM (3.5&quot; and 5.25&quot; disks) emulation in an &quot;approximate&quot; mode, called &quot;fast_disk_emul&quot;. In this mode, GSport emulates the hardware &quot;faster&quot; 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&quot; 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.</p>
<p>GSport can read in the &quot;.nib&quot; 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 &quot;Not-write-through-to-Image&quot; 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 &quot;disk&quot; 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 &quot;drive-speed&quot; test will cause further changes not to propagate to the Unix file. You will need to &quot;eject&quot; the image and re-insert it before writes will take effect.</p>
<p>In full accuracy mode (i.e., not fast_disk_emul), 5.25&quot; drive accesses force GSport to run at 1MHz, and 3.5&quot; drive accesses force GSport to run at 2.8MHz.</p></div>
<div class="section">
<h3>GSport Timing<a name="GSport_Timing"></a></h3>
<p>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.</p>
<p>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.</p>
<p>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 &quot;fast&quot; mode you can access through the control panel. But, 3.5&quot; accesses will &quot;speed up&quot; to 2.8MHz to enable that code to operate correctly while the 3.5&quot; disk is being accessed.</p>
<p>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 &quot;slow&quot;, it will really be running at 1MHz. Accesses to 5.25&quot; 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 &quot;second&quot;, 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.</p>
<p>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.</p>
<p>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 &quot;slow&quot; will slow down to 1MHz.</p>
<p>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!</p>
<p>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.</p></div>
<div class="section">
<h3>GSport: What Works<a name="GSport:_What_Works"></a></h3>
<p>Basically, just about every Apple II program works.</p>
<p>Some old Apple II 5.25&quot; 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 &quot;Your Card&quot;. This allows many more Apple II games to run, and is the recommended setting.</p>
<p>The NinjaForce Megademo mostly works, but sometimes hangs in the BBS Demo. Just skip that demo if it happens.</p>
<p>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.</p></div>
<div class="section">
<h3>GSport bugs<a name="GSport_bugs"></a></h3>
<p>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.</p>
<p>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.</p></div>
<div class="section">
<h3>Sound emulation<a name="Sound_emulation"></a></h3>
<p>GSport supports very accurate classic Apple II sound (clicking of the speaker using $C030) and fairly accurate Ensoniq sound.</p>
<p>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 &quot;Pausing sound&quot; in the debug window. However, when sound restarts, it sometimes &quot;breaks-up&quot; a little.</p>
<p>If your display is not using shared memory, audio defaults to off unless you override it with &quot;-audio 1&quot;.</p></div>
<div class="section">
<h3>SCC (Serial Port) emulation<a name="SCC_Serial_Port_emulation"></a></h3>
<p>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.</p>
<p>By default, slot 1 is emulated using a simple receive socket, and slot 2 emulates a Virtual Modem.</p>
<p>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 &quot;Hayes- Compatible&quot; modem, meaning it accepts &quot;AT&quot; commands. You can use GSport to connect to free telnet-BBSs, or run a BBS program on GSport and become a telnet BBS yourself.</p>
<p>The two main AT commands are: ATDT for dialing out, and ATA for receiving calls. To dial out, enter &quot;ATDThostname&quot;, or for example, &quot;ATDTboycot.no-ip.com&quot; (which is down at the moment, unfortunately). You can also enter an IP address, like &quot;ATDT127.0.0.1&quot;. 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: &quot;sudo /usr/libexec/telnetd -debug&quot;. You must then enable telnet on port 23 through your Mac OS X Firewall in the System Preferences-&gt;Sharing-&gt;Firewall page (just add port 23 as open--you'll need to use the &quot;New...&quot; button and then select Other for Port Name, and enter Port Number as 23). Then from GSport in a communications program, do &quot;ATDT127.0.0.1&quot;, and then log-in to your Mac.</p>
<p>GSport also accepts incoming &quot;calls&quot;. 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 &quot;telnet 127.0.0.1 6502&quot; and you will connect to GSport. The Virtual Modem then starts printing &quot;RING&quot; every 2 seconds until you answer with &quot;ATA&quot;. You are now connected.</p>
<p>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.</p>
<p>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 &quot;ATH&quot; to hang up, or &quot;ATO&quot; to go back online.</p>
<p>On Windows, the socket code is very preliminary and there are problems receiving connections.</p>
<p>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: &quot;telnet localhost 6501&quot; and then you will see all the output going to the &quot;printer&quot;.</p>
<p>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 &quot;mask off high bit&quot; for serial port accesses to make PR#1 work a little nicer.</p>
<p>You can &quot;print&quot; from BASIC by using something like PR#1 in GSport and &quot;telnet localhost 6501 | tee file.out&quot; in another window.</p></div>
<div class="section">
<h3>GSport status area<a name="GSport_status_area"></a></h3>
<p>The status area is updated once each second. It displays internal emulation information.</p>
<div>
<pre>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 &quot;lores&quot; 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&quot; or 5.25&quot; 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 &quot;interrupts&quot; 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 &quot;actions&quot; 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 &quot;special events&quot; 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&quot; disks). If a disk is spinning, there will be an &quot;*&quot; next to the
track number. Only updated once a second, so the disk arm moving may
appear to jump by several tracks. &quot;fast_disk_emul:1&quot; shows that GSport
is using less accurate, but faster, IWM emulation. Press F7 to toggle
to accurate disk emulation.
</pre></div></div>
<div class="section">
<h3>X Window (Linux) interface information<a name="X_Window_Linux_interface_information"></a></h3>
<p>If GSport fails to start under Linux, first try the following options:</p>
<div>
<pre>GSport -audio 0 -noshm
</pre></div>
<p>There may be a bug with drawing the border on x86 Linux with Shared Memory-- add the options &quot;-noshm -skip 0&quot; to fix this up (but lose some graphics performance, sorry). Try GSport without these options first, but use this as a workaround if necessary.</p>
<p>If you want the display to go somewhere different, make sure the shell environment variable $DISPLAY is set, or give the command-line argument &quot;-display <a name="foo">foo</a>&quot;.</p>
<p>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. (&quot;ps -ef| grep GSport;kill xxxxx&quot;).</p>
<p>Geoff Weiss adds some notes for mounting disks/floppies/CDs under Solaris 7 through Solaris 10:</p>
<p>To use a CDROM, insert the CD and let Volume Management mount it. Edit <tt>config.txt</tt> and use the filesystem that shows up in the &quot;df -k&quot; listing. The volume name of the CDROM must be included. For example, a CDROM in an IDE drive would look like this:</p>
<div>
<pre> /vol/dev/dsk/c1t0d0/ciscocd
</pre></div>
<p>A CDROM in a SCSI drive would look like this:</p>
<div>
<pre> /vol/dev/dsk/c0t6d0/j1170_10804
</pre></div>
<p>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.</p>
<p>Sometimes the converse is true--key repeat is &quot;on&quot; 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.</p>
<p>GSport uses a private color-map for its X-window in 8-bit mode. This may cause colormap &quot;flash&quot; when your cursor enters the window.</p></div>
<div class="section">
<h3>GSport details/troubleshooting<a name="GSport_detailstroubleshooting"></a></h3>
<p>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.</p></div>
<div class="section">
<h3>Disk Image Details<a name="Disk_Image_Details"></a></h3>
<p>Images loaded into slot 6 (drive 1 or 2) are assumed to be 140K 5.25&quot; disks, which is usually have the extension &quot;.dsk&quot;. 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.</p>
<p>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&quot; drives in slot 6, two 3.5&quot; drives in slot 5, and up to 32 &quot;hard drives&quot; 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.</p>
<p>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):</p>
<div>
<pre>brw-r--r-- 1 root operator 14, 0 Jun 10 00:01 /dev/disk2
</pre></div>
<p>You can do this on a Mac with:</p>
<div>
<pre>sudo chmod 644 /dev/disk2
</pre></div></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2010-2017
GSport Contributors.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
<!-- Piwik --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/gsport/" : "http://sourceforge.net/apps/piwik/gsport/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); </script><script type="text/javascript"> try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);piwikTracker.trackPageView(); piwikTracker.enableLinkTracking();} catch( err ) {} </script><noscript><p><img src="http://sourceforge.net/apps/piwik/gsport/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript><!-- End Piwik Tag -->
</html>

155
docs/printer.html Normal file
View File

@ -0,0 +1,155 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- Generated by Apache Maven Doxia Site Renderer 1.4 at 2017-10-05 -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>GSport - GSport Printers</title>
<style type="text/css" media="all">
@import url("./css/maven-base.css");
@import url("./css/maven-theme.css");
@import url("./css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print" />
<meta name="author" content="David Schmidt (1110325+david-schmidt@users.noreply.github.com)" />
<meta name="Date-Revision-yyyymmdd" content="20171005" />
<meta http-equiv="Content-Language" content="en" />
</head>
<body class="composite">
<div id="banner">
<div id="bannerLeft">
GSport: an Apple IIgs Emulator
</div>
<div id="bannerRight">
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="breadcrumbs">
<div class="xleft">
<span id="publishDate">Last Published: 2017-10-05</span>
&nbsp;| <span id="projectVersion">Version: 0.31</span>
</div>
<div class="xright"> <a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
|
<a href="https://github.com/david-schmidt/gsport" class="externalLink" title="Project Development Page">Project Development Page</a>
</div>
<div class="clear">
<hr/>
</div>
</div>
<div id="leftColumn">
<div id="navcolumn">
<h5>GSport</h5>
<ul>
<li class="none">
<a href="index.html" title="Main">Main</a>
</li>
<li class="none">
<a href="https://github.com/david-schmidt/gsport/releases" class="externalLink" title="Download">Download</a>
</li>
<li class="none">
<a href="operating.html" title="Operating">Operating</a>
</li>
<li class="none">
<a href="developing.html" title="Developing">Developing</a>
</li>
<li class="none">
<a href="appletalk.html" title="Emulated Appletalk">Emulated Appletalk</a>
</li>
<li class="none">
<a href="ethernet.html" title="Emulated Ethernet">Emulated Ethernet</a>
</li>
<li class="none">
<strong>Emulated Printers</strong>
</li>
<li class="none">
<a href="history.html" title="History">History</a>
</li>
</ul>
<a href="https://github.com/david-schmidt/gsport"><img src="https://assets-cdn.github.com/images/modules/logos_page/GitHub-Logo.png" width="100" alt="Get GSport at Github." /></a>
</a>
</div>
</div>
<div id="bodyColumn">
<div id="contentBox">
<div class="section">
<h2>GSport Emulated Printers<a name="GSport_Emulated_Printers"></a></h2>
<p>There are two classes of printers emulated by GSport: an Epson LQ connected by a virtual serial card in slot 1, and an Apple Imagewriter LQ or Imagewriter II attached to serial port 1. Set up for common printing scenarios is detailed below:</p>
<ul>
<li>Emulated <a href="./printer.html#Imagewriter">Imagewriter LQ/II</a> - when you want to emulate an Imagewriter LQ or Imagewriter II specifically in slot 1</li>
<li>Windows <a href="./printer.html#Bitmap">Bitmap or Postscript</a> (B&amp;W) - when you want a graphical file saved on the host computer</li>
<li>Direct to <a href="./printer.html#Host">host printer</a> - when you want a real, paper-based copy immediately (or, a Postscript file with an appropriate printer driver) </li>
<li><a href="./printer.html#Text">Text File</a> - when you want a file of plain text saved on the host computer </li></ul>
<p>When configuring the virtual printer (details below), these notes apply in all situations:</p>
<ul>
<li>The &quot;Printer Timeout&quot; setting configures how long until a form feed is automatically sent to the printer (which forces the emulator to kick out a &quot;page&quot;). This value should be set to a value like 15 seconds or more for PR#1-type printing to work as you might expect. If it is set to &quot;Never&quot;, you must manually send a form feed, fill a page with text, or exit the emulator before output is saved. This behavior is similar to modern laser/inkjet printers when they are used with Applesoft. Most applications are good about sending form feeds at page end, so this issue doesn't usually come up.</li>
<li>The Roman font is used in graphical printing by default, and the matching <tt>lib/letgothl.ttf</tt> is included in the distribution package. Printing emulation won't work if no fonts at all are defined. Any other mono-spaced TrueType font you have may also be used.</li></ul>
<div class="section">
<h3>Emulated <a name="Imagewriter">Imagewriter</a> LQ/II<a name="Emulated_Imagewriter_LQII"></a></h3>
<p>In GSport's internal control panel:</p>
<ol style="list-style-type: decimal">
<li>Under &quot;Serial Port Configuration&quot; set Port 0 to &quot;Virtual Imagewriter&quot;<img src="images/printerI1.png" alt="" /></li>
<li>Under &quot;Virtual Imagewriter Configuration&quot; you need to configure fonts. GSport comes with a fixed width font installed and pre-configured. Set any proportional font you wish to use. If you plan on using native Windows printer output or Postscript, set Multipage Files to &quot;Yes&quot;. The default printer timeout of 2 seconds is fine if you are running the machine in 8Mhz or unlimited speed modes. Set it higher if you are running at 1Mhz or 2.8Mhz since the printer may time out while the computer is &quot;thinking&quot; during print jobs.<img src="images/printerI2.png" alt="" /></li></ol>
<p>Printer DPI should be set to at least 720x720dpi for Imagewriter LQ resolution output (mostly GS/OS). Use 1440x1440dpi if you have a high resolution inkjet printer and plan on printing pure text documents. It also minimizes scaling artifacts when printing graphics.</p>
<p>Printer Type just changes the self ID string sent by the printer when the &quot;ESC-?&quot; command is sent. This is used by the driver included in GS/OS to determine what type of printer is connected and whether a color ribbon is installed. Set it to Imagewriter LQ in most cases.</p>
<p><b>Save your settings and restart GSport to apply your configuration changes!</b> (This will likely be fixed in a future release.)</p>
<p>In the native IIgs control panel:</p>
<ol style="list-style-type: decimal">
<li>Under &quot;Slots&quot;, Slot 1 should be set to &quot;Printer Port&quot;</li>
<li>Under &quot;Printer Port&quot; leave everything at its default setting, but set baud rate to 19200. It is highly recommended that you install the QuickPort CDA and set the port speed to &quot;57600&quot;. Since we are using the SCC emulation, the speed that data is transferred to the virtual printer is limited by the baud rate set by the emulated environment.</li></ol>
<p>8-bit and non-Printer Manager IIgs applications (like Printshop GS) should work without a problem after configuring them to print to an Imagewriter connected to slot 1. When printing text in programs like Appleworks, be sure to set page margins. By default, the emulator starts printing at the upper left hand corner of the virtual &quot;page&quot;.</p>
<p>GS/OS requires configuration in the &quot;DC Printer&quot; control panel. Make sure you install the printer drivers from your GS/OS disk set. Set the port to &quot;Printer&quot; and type to &quot;Imagewriter.LQ&quot;. If you have Harmonie, use its &quot;Printer57.6&quot; port driver as it greatly speeds up printing (the built in port driver appears to be hard coded to 19200 baud max). Do not use its &quot;Printer.HAR&quot; port driver as it sends junk text to the printer for some reason. Harmonie's &quot;IWriterLQ.HAR&quot; and &quot;Imagewriter.HAR&quot; drivers have been tested and are fully compatible with the printer emulator. They do not query the printer with ESC-?, so the setting of Printer Type in the GSport control panel doesn't matter with these. Both Harmonie and Pointless are highly recommended for the best quality output in GS/OS.</p>
<p>The printer emulator supports all Imagewriter II and LQ functions documented in Apple's official reference manuals. Mousetext and custom character definitions are NOT supported. This is consistent with a real Imagewriter LQ. Only the Imagewriter II supported those functions. </p></div>
<div class="section">
<h3>Windows <a name="Bitmap">Bitmap</a> or Postscript<a name="Windows_Bitmap_or_Postscript"></a></h3>
<p>To set up GSport to write .BMP or .PS files for each &quot;page&quot; produced, apply the following settings:</p>
<p>Enter the GS native control panel and set slot 1 to &quot;Your Card&quot;, then save and exit the control panel. You will need to reboot the emulated GS (with a cold boot - Ctrl-Alt-F12, etc.) or restart GSport to have this change take effect, just like a real GS:</p><img src="images/printer0.png" alt="" />
<p>Press F4 to enter the text-based GSport menu and select the &quot;Parallel Card Configuration&quot; option. By default, printer emulation is turned off. Enable it by setting &quot;Parallel Card in Slot 1&quot; to &quot;On,&quot; and leave the &quot;Parallel Output&quot; option set to its default value, &quot;Send full 8-bit data:&quot;</p><img src="images/printer1.png" alt="" />
<p>Next, navigate back to the main menu and select the &quot;Virtual Printer Configuration&quot; option and set &quot;Printer Output Type&quot; to either &quot;Windows Bitmap&quot; or &quot;Postscript (B&amp;W)&quot; based on your preference:</p><img src="images/printer3.png" alt="" />
<p>Save the configuration, and printed output will be saved as files in GSport's current working directory.</p></div>
<div class="section">
<h3>Direct to <a name="Host">Host</a> Printer<a name="Direct_to_Host_Printer"></a></h3>
<p>The &quot;Direct to host printer&quot; feature is only implemented on the Windows platform. To set up GSport to send page-oriented output directly to your system's printer, apply the following settings:</p>
<p>Enter the GS native control panel and set slot 1 to &quot;Your Card&quot;, then save and exit the control panel. Note that you will need to restart GSport after all of the changes below are made, so don't restart just yet:</p><img src="images/printer0.png" alt="" />
<p>Press F4 to enter the text-based GSport menu and select the &quot;Parallel Card Configuration&quot; option. By default, printer emulation is turned off. Enable it by setting &quot;Parallel Card in Slot 1&quot; to &quot;On,&quot; and leave the &quot;Parallel Output&quot; option set to its default value, &quot;Send full 8-bit data:&quot;</p><img src="images/printer1.png" alt="" />
<p>Next, navigate back to the main menu and select the &quot;Virtual Printer Configuration&quot; option and set &quot;Printer Output Type&quot; to &quot;Direct to host printer:&quot;</p><img src="images/printer6.png" alt="" />
<p>Save the configuration, and stop the GSport application altogether and restart it. You should be presented with your system's default printer selection dialog box:</p><img src="images/printer7.png" alt="" />
<p>The printer you choose here will be the place that page-oriented output is sent, subject to the page ejection timeouts discussed earlier. Note that it is even possible to use a printer driver that itself produces PDF output instead of physical paper.</p></div>
<div class="section">
<h3><a name="Text">Text</a> File<a name="Text_File"></a></h3>
<p>Printing to a text file will bypass all printer emulation and simply append printed data to a file named <tt>printer.txt</tt> in GSport's current working directory. This is especially useful for text-based operations like Applesoft listings using the traditional <tt>PR#1:LIST:PR#0</tt> command sequences. Output from GSOS applications like TeachText are not actually textual in nature - they are graphical. It would be more appropriate to use a different type of printer output in that situation. </p>
<p>To set up GSport to append printed text to a printer.txt file, apply the following settings:</p>
<p>Enter the GS native control panel and set slot 1 to &quot;Your Card&quot;, then save and exit the control panel. You will need to reboot the emulated GS (with a cold boot - Ctrl-Alt-F12, etc.) or restart GSport to have this change take effect, just like a real GS:</p><img src="images/printer0.png" alt="" />
<p>Press F4 to enter the text-based GSport menu and select the &quot;Parallel Card Configuration&quot; option. By default, printer emulation is turned off. Enable it by setting &quot;Parallel Card in Slot 1&quot; to &quot;On.&quot; Also change the &quot;Parallel Output&quot; option to &quot;Mask off high bit:&quot;</p><img src="images/printer4.png" alt="" />
<p>Next, navigate back to the main menu and select the &quot;Virtual Printer Configuration&quot; option and set &quot;Printer Output Type&quot; to &quot;Text file:&quot;</p><img src="images/printer5.png" alt="" />
<p>Save the configuration, and printed output will be appended in the <tt>printer.txt</tt> file in GSport's current working directory.</p></div></div>
</div>
</div>
<div class="clear">
<hr/>
</div>
<div id="footer">
<div class="xright">
Copyright &#169; 2010-2017
GSport Contributors.
All Rights Reserved.
</div>
<div class="clear">
<hr/>
</div>
</div>
<!-- Piwik --> <script type="text/javascript"> var pkBaseURL = (("https:" == document.location.protocol) ? "https://sourceforge.net/apps/piwik/gsport/" : "http://sourceforge.net/apps/piwik/gsport/"); document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); </script><script type="text/javascript"> try { var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);piwikTracker.trackPageView(); piwikTracker.enableLinkTracking();} catch( err ) {} </script><noscript><p><img src="http://sourceforge.net/apps/piwik/gsport/piwik.php?idsite=1" style="border:0" alt=""/></p></noscript><!-- End Piwik Tag -->
</html>

BIN
lib/NoBoot.po Normal file

Binary file not shown.

BIN
lib/arch/mac/setfileicon Executable file

Binary file not shown.

BIN
lib/arch/win32/SDL.dll Normal file

Binary file not shown.

BIN
lib/arch/win32/cygbz2-1.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/arch/win32/cygwin1.dll Normal file

Binary file not shown.

BIN
lib/arch/win32/cygz.dll Normal file

Binary file not shown.

BIN
lib/letgothl.ttf Normal file

Binary file not shown.

6
src/.gitignore vendored Normal file
View File

@ -0,0 +1,6 @@
*.o
gsport.exe
/16inst_c.h
/8inst_c.h
/size_c.h
/vars

16
src/GSport.bat Normal file
View File

@ -0,0 +1,16 @@
@echo off
REM
REM GSport - Windows startup batch file
REM
SET GSPORT_HOME=%CD%\
set CYGWIN=nodosfilewarning
:add_classpath
SET CWD=%CD%
if "%GSPORT_PATH_SET%" == "1" goto start
set GSPORT_PATH_SET=1
PATH=%PATH%;%GSPORT_HOME
:start
GSport.exe

View File

@ -1,9 +1,12 @@
# $Id: release_makefile_base,v 1.15 2003/11/21 20:00:42 kentd Exp kentd $
# GSport central makefile - you need a 'vars' file linked/copied from a 'vars_xxx' template to build.
OBJECTS1 = adb.o clock.o config.o dis.o engine_c.o scc.o iwm.o \
joystick_driver.o moremem.o paddles.o sim65816.o smartport.o \
sound.o sound_driver.o video.o scc_socket_driver.o scc_windriver.o \
scc_macdriver.o
joystick_driver.o moremem.o paddles.o parallel.o printer.o \
sim65816.o smartport.o sound.o sound_driver.o video.o \
scc_socket_driver.o imagewriter.o scc_imagewriter.o scc_llap.o
ATOBJ = atbridge/aarp.o atbridge/atbridge.o atbridge/elap.o atbridge/llap.o atbridge/port.o
PCAPOBJ = atbridge/pcap_delay.o
TFEOBJ = tfe/tfe.o tfe/tfearch.o tfe/tfesupp.o
include vars
@ -16,6 +19,15 @@ PERL = perl
all: $(TARGET)
clean:
- rm -f $(OBJECTS)
- rm -f $(TARGET)
- rm -f compile_time.o
- rm -f 8inst_c.h
- rm -f 16inst_c.h
- rm -rf ../GSport.app
- rm -rf ../GSportDmg
specials: 8inst_s 16inst_s 8size 16size 8inst_c 16inst_c size_c size_s
specials_clean:
@ -24,39 +36,57 @@ specials_clean:
# Mac builds:
gsportmac: $(OBJECTS) compile_time.o
$(CC) $(CCOPTS) $(LDOPTS) -arch ppc $(OBJECTS) compile_time.o $(LDFLAGS) -o gsport $(EXTRA_LIBS) -prebind -framework Carbon -framework Quicktime
$(CC) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o gsport $(EXTRA_LIBS)
mkdir -p ../GSport.app/Contents/Resources/English.lproj/main.nib
mkdir -p ../GSport.app/Contents/MacOS
mv gsport ../GSport.app/Contents/MacOS/GSportMac
mv gsport ../GSport.app/Contents/MacOS/GSport
echo "APPL????" > ../GSport.app/Contents/PkgInfo
cp -f Info.plist ../GSport.app/Contents/
cp -f info.nib ../GSport.app/Contents/Resources/English.lproj/main.nib
cp -f classes.nib ../GSport.app/Contents/Resources/English.lproj/main.nib
cp -f objects.xib ../GSport.app/Contents/Resources/English.lproj/main.nib
cp -f kegsicon.icns ../GSport.app/Contents/Resources/
cp -f 525.icns ../GSport.app/Contents/Resources/
cp -f 2mg.icns ../GSport.app/Contents/Resources/
cp -f arch/mac/Info.plist ../GSport.app/Contents/
cp -f arch/mac/info.nib ../GSport.app/Contents/Resources/English.lproj/main.nib
cp -f arch/mac/classes.nib ../GSport.app/Contents/Resources/English.lproj/main.nib
cp -f arch/mac/objects.xib ../GSport.app/Contents/Resources/English.lproj/main.nib
cp -f arch/mac/gsporticon.icns ../GSport.app/Contents/Resources/
cp -f arch/mac/525.icns ../GSport.app/Contents/Resources/
cp -f arch/mac/2mg.icns ../GSport.app/Contents/Resources/
touch '../GSport.app/Icon?'
cp -f ../config.template ../config.txt
rm -rf ../GSportDmg
mkdir ../GSportDmg
mkdir ../GSportDmg/GSport
cp ../LICENSE ../GSportDmg/GSport
cp -f parallel.rom ../GSportDmg/GSport
cp -f ../lib/NoBoot.po ../GSportDmg/GSport
mv ../GSport.app ../GSportDmg/GSport
cp -f ../config.template ../GSportDmg/GSport/config.txt
cp ../GSport.html ../GSportDmg/GSport/GSport.html
arch/mac/makedmg.sh .. GSportDmg GSport GSport 7
# Linux for X builds:
gsportx: $(OBJECTS) compile_time.o
$(CC) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(XLIBS) $(EXTRA_LIBS) -lX11
$(LD) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(XLIBS) $(EXTRA_LIBS) -lX11
echo $(OBJECTS)
mv gsportx ..
cp -f ../config.template ../config.txt
# Cygwin for X builds:
gsport.exe: $(OBJECTS) compile_time.o
$(CC) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(XLIBS) $(EXTRA_LIBS) -lXext -lX11 -lm
mv gsport.exe ..
# Linux framebuffer builds:
gsportfb: $(OBJECTS) compile_time.o
$(LD) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(EXTRA_LIBS)
echo $(OBJECTS)
mv gsportfb ..
cp -f ../config.template ../config.txt
# Mingw32 (native windows) builds:
gsportwin.exe: $(OBJECTS) compile_time.o
$(CC) $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(EXTRA_LIBS) -lwinmm -lgdi32 -ldsound -lcomctl32 -lws2_32
mv $(NAME)$(SUFFIX) ..
cp -f ../config.template ../config.txt
gsport.exe: $(OBJECTS) compile_time.o
g++ $(CCOPTS) $(LDOPTS) $(OBJECTS) compile_time.o $(LDFLAGS) -o $(NAME)$(SUFFIX) $(EXTRA_LIBS) -lwinmm -lgdi32 -ldsound -lcomctl32 -lws2_32 -lshell32
mkdir -p ../GSport.app/lib
cp -f gsport.exe ../GSport.app/GSport.exe
cp -f ../config.template ../GSport.app/config.txt
cp -f ../lib/*.ttf ../GSport.app/lib
cp -f ../lib/arch/win32/*.dll ../GSport.app
cp -f ../lib/NoBoot.po ../GSport.app
cp -f GSport.bat ../GSport.app/GSport.bat
cp -f parallel.rom ../GSport.app
cp -f ../LICENSE ../GSport.app
cp -f ../GSport.html ../GSport.app
8inst_c.h: instable.h
$(PERL) make_inst c 8 instable.h > 8inst_c.h
@ -90,6 +120,12 @@ engine_s.o: 8inst_s.h 16inst_s.h 8size_s.h 16size_s.h size_s.h
$(AS) -c $(OPTS) -I. $*.s
.c.o:
$(CC) $(CCOPTS) $(XOPTS) -c $(OPTS) -I. -o $*.o $*.c
.cpp.o:
$(CC) $(CPPOPTS) $(XOPTS) -c $(OPTS) -I. $*.cpp
.cpp.O:
$(CC) $(CCOPTS) $(XOPTS) -c $(OPTS) -I. $*.c
partls: partls.c
@ -98,31 +134,51 @@ partls: partls.c
to_pro: prodos.h prodos_protos.h to_pro.c
cc $(CCOPTS) $(XOPTS) $(OPTS) -o to_pro to_pro.c
gsport32.o: win32.rc winresource.h
windres win32.rc -o gsport32.o
compile_time.o: $(OBJECTS)
# dependency stuff
adb.o: adb.c adb.h defc.h defcomm.h iwm.h protos.h
atbridge/aarp.o: defc.h atbridge/atbridge.h atbridge/port.h atbridge/elap.h atbridge/aarp.h atbridge/elap_defs.h
atbridge/atbridge.o: defc.h atbridge/atbridge.h atbridge/port.h atbridge/elap.h atbridge/llap.h atbridge/aarp.h
atbridge/elap.o: defc.h atbridge/atbridge.h atbridge/port.h atbridge/elap.h atbridge/aarp.h atbridge/elap_defs.h atbridge/pcap_delay.h
atbridge/llap.o: defc.h atbridge/atbridge.h atbridge/port.h atbridge/llap.h
atbridge/port.o: atbridge/atalk.h atbridge/port.h
atbridge/pcap_delay.o: atbridge/pcap_delay.h
engine_c.o: engine_c.c defc.h defcomm.h iwm.h protos.h protos_engine_c.h size_c.h op_routs.h defs_instr.h 8inst_c.h 16inst_c.h
clock.o: clock.c defc.h defcomm.h iwm.h protos.h
compile_time.o: compile_time.c
config.o: config.c defc.h defcomm.h iwm.h protos.h config.h
dis.o: dis.c defc.h defcomm.h iwm.h protos.h disas.h
scc.o: scc.c defc.h defcomm.h iwm.h protos.h scc.h
scc_llap.o: atbridge/atbridge.h atbridge/llap.h defc.h scc.h
scc_socket_driver.o: scc_socket_driver.c defc.h defcomm.h iwm.h protos.h scc.h
scc_windriver.o: scc_windriver.c defc.h defcomm.h iwm.h protos.h scc.h
scc_macdriver.o: scc_macdriver.c defc.h defcomm.h iwm.h protos.h scc.h
scc_imagewriter.o: scc_imagewriter.c defc.h defcomm.h protos.h scc.h
iwm.o: iwm.c defc.h defcomm.h iwm.h protos.h iwm_35_525.h
imagewriter.o: imagewriter.cpp
joystick_driver.o: joystick_driver.c defc.h defcomm.h iwm.h protos.h
moremem.o: moremem.c defc.h defcomm.h iwm.h protos.h
paddles.o: paddles.c defc.h defcomm.h iwm.h protos.h
parallel.o: parallel.c defc.h
printer.o: printer.cpp
sim65816.o: sim65816.c defc.h defcomm.h iwm.h protos.h
smartport.o: smartport.c defc.h defcomm.h iwm.h protos.h
sound.o: sound.c defc.h defcomm.h iwm.h protos.h sound.h
sound_driver.o: sound_driver.c defc.h defcomm.h iwm.h protos.h sound.h
video.o: video.c defc.h defcomm.h iwm.h protos.h superhires.h kegsfont.h
video.o: video.c defc.h defcomm.h iwm.h protos.h superhires.h gsportfont.h
tfe.o: tfe/tfe.c tfe/tfe.h tfe/tfe_protos.h
tfearch.o: tfe/tfearch.c tfe/tfearch.h tfe/tfe_protos.h
tfesupp.o: tfe/tfesupp.c tfe/tfesupp.h tfe/tfe_protos.h
macdriver.o: macdriver.c defc.h defcomm.h iwm.h protos.h protos_macdriver.h
macdriver_console.o: macdriver_console.c defc.h defcomm.h iwm.h protos.h protos_macdriver.h
macdriver_generic.o: macdriver_generic.c defc.h defcomm.h iwm.h protos.h protos_macdriver.h
macsnd_driver.o: macsnd_driver.c defc.h defcomm.h iwm.h protos.h sound.h
windriver.o: windriver.c defc.h defcomm.h iwm.h protos.h protos_windriver.h winresource.h
windriver.o: windriver.c defc.h defcomm.h iwm.h protos.h protos_windriver.h winresource.h gsport32.o
win_console.o: win_console.c defc.h defcomm.h iwm.h protos.h protos_windriver.h winresource.h
win_generic.o: win_generic.c defc.h defcomm.h iwm.h protos.h protos_windriver.h winresource.h
win32snd_driver.o: win32snd_driver.c defc.h defcomm.h iwm.h protos.h sound.h

3798
src/adb.c

File diff suppressed because it is too large Load Diff

View File

@ -19,8 +19,6 @@
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
const char rcsid_adb_h[] = "@(#)$KmKId: adb.h,v 1.11 2004-10-13 23:30:33-04 kentd Exp $";
#include "defc.h"
/* Format: a2code, ascii if no shift, ascii if shift, ascii if ctl */
@ -143,7 +141,9 @@ const int a2_key_to_ascii[][4] = {
{ 0x67, 0x800b, 0x1067, -1 }, /* F11 */
{ 0x68, -1, -1, -1 },
{ 0x69, 0x800d, 0x1069, -1 }, /* F13 */
// { 0x69, 0x800d, 0x1069, -1 }, /* F13 */
// OG remap F13 to reset
{ 0x69, 0x800c, 0x1069, -1 }, /* F13 */
{ 0x6a, -1, -1, -1 },
{ 0x6b, 0x800e, 0x106b, -1 }, /* F14 */
{ 0x6c, -1, -1, -1 },

BIN
src/arch/mac/GSportDMG.icns Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

View File

@ -26,7 +26,7 @@
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>kegs</string>
<string>gsport</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>525.icns</string>
@ -34,18 +34,18 @@
<string>GSport Configuration File</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>kegs</string>
<string>gsport</string>
</array>
<key>CFBundleTypeRole</key>
<string>None</string>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>GSportMac</string>
<string>GSport</string>
<key>CFBundleName</key>
<string>GSportMac</string>
<string>GSport</string>
<key>CFBundleIconFile</key>
<string>kegsicon.icns</string>
<string>gsporticon.icns</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
@ -55,9 +55,9 @@
<key>CFBundleVersion</key>
<string>0.1</string>
<key>CFBundleShortVersionString</key>
<string>GSportMac version 0.1</string>
<string>GSport version 0.1</string>
<key>CFBundleGetInfoString</key>
<string>GSportMac v0.1, Copyright 2010 GSport Contributors, http://gsport.sourceforge.net</string>
<string>GSport v0.1, Copyright 2010 GSport Contributors, http://gsport.sourceforge.net</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2010 GSport Contributors</string>
</dict>

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More