logs cleans, manual refresh

This commit is contained in:
Dagen Brock 2016-11-02 21:52:40 -05:00
parent 85e71f201d
commit 480b065a6e
4 changed files with 97 additions and 92 deletions

Binary file not shown.

View File

@ -1,60 +1,61 @@
_______ _______ _
| || | _| |_
| ___|| _____||_ _|
| | __ | |_____ |_|
| || ||_____ |
| |_| | _____| |
|_______||_______|
GSplus
Modern cross-platform Apple IIgs emulator and tools based on KEGS
Manual Versions: Alpha Draft: 2016-10-27, Initial Draft: 2016-05-01
gsp_icon_512.png
GSplus
Modern cross-platform Apple IIgs emulator and tools based on KEGS & GSPort
Manual Versions:
Alpha Release: 2016-11-02
Alpha Draft: 2016-10-27
Initial Draft: 2016-05-01
Overview & Purpose
This project is an attempt to build a better Apple IIgs emulator by modernizing the KEGS/GSport emulator family and extending it into a platform.
This project is an attempt to build a better Apple IIgs emulator by modernizing the KEGS/GSport emulator family and extending it into a platform.
The first steps were a release of a new SDL2 driver. SDL or "Simple DirectMedia Layer" enables the writing of one cross-platform driver to handle input and output (video, mouse, keyboard, audio, joystick). This helps the goal of providing first-class support for all of the major platforms supported by SDL, including Mac OSX, Windows and Linux.
Part of this effort has also led to the development of an automated build and packaging pipeline using Gitlab CI. This helps our team of one continue to develop on primarily a single platform, while still ensuring that it works across many operating systems
Currently, the main supported platforms are Linux, OSX and *Windows. *Unfortunately the SDL2 version of Windows is not done as of this draft, but the Win32 API version still works well and is regularly built, though missing some features like screenshots.
Currently, the main supported platforms are Linux, OSX and *Windows.
Getting started
1. Download the emulator package and put it in a folder
2. Download the Apple IIgs Firmware ROMs, for either a ROM01 or ROM03 machine.
(If you have a real IIgs, there are ways to save it from your machine too.)
Try: ftp://ftp.apple.asimov.net/pub/apple_II/emulators/rom_images/
3. Download some Apple IIgs software.
I recommend the excellent Apple IIgs dedicated site:
http://www.whatisthe2gs.apple2.org.za/
If you have a real IIgs, you can transfer your disks using ADTPro
http://adtpro.sourceforge.net/
4. Edit your config:
You can manually edit the config.txt file
.. or while the emulator is running… hit F4 to enter config menu.
Set up the ROM to point to your IIgs ROM file from step 2.
Set up the slots to point to disks from step 3.
5. Boot the Apple IIgs by running the emulator
Windows: gsplus32.exe
Mac/Ubuntu: ./gsplus
________________
Getting started
1. Download the emulator package and put it in a folder
2. Download the Apple IIgs Firmware ROMs, for either a ROM01 or ROM03 machine. (If you have a real IIgs, there are ways to save it from your machine as well.)
3. Download some Apple IIgs software.
1. I recommend the excellent Apple IIgs dedicated site, http://www.whatisthe2gs.apple2.org.za/
2. If you have a real IIgs, you can transfer your disks using ADTPro http://adtpro.sourceforge.net/
1. Edit your config:
1. You can manually edit the config.txt file … OR ...
2. While the emulator is running… hit F4 to enter config menu.
1. Boot the Apple IIgs by running the emulator
1. Windows: gsplus.exe
2. Mac/Ubuntu: ./gsplus
Emulator Hot-Keys
There are several keys used to interact with the emulator while it is running. Heres a quick list of the main hot-keys and what they do.
F4 - Configuration menu
F5 - Config menu
F6 - Toggle System Speed (1, 2.8, 8, ∞ MHz )
F7 - Toggle Fast Disk Emulation
F9 - Invert Paddles
F10 - Toggle a2vid_palette (?)
F11 - Toggle Fullscreen Mode
F12 - RESET Key (so to hit “Ctrl-Reset” on an Apple II, you hit “Ctrl-F12”)
SHIFT+F5 - Screenshot
F4 - Configuration menu
F5 - Paste from host OS into emulator
Shift-F5 - Screenshot
F6 - Toggle System Speed (1, 2.8, 8, ∞ MHz )
F7 - Toggle Fast Disk Emulation
F9 - Invert Paddles
F10 - Toggle a2vid_palette (?)
F11 - Toggle Fullscreen Mode
F12 - RESET Key (so to hit “Ctrl-Reset” on an Apple II, you hit “Ctrl-F12”)
Other Input/Output
1. Mouse and keyboard should automatically work
2. Joystick with SDL2 driver is known to be working. It simply uses the “first” joystick and the first analog pad on that stick plus the first two buttons. The axes and buttons are not yet configurable. Better info forthcoming.
3. There are drivers for serial controller, ImageWriter (II?) printer, and networking. I may have broken some of this functionality to get builds working. Im not currently familiar with the state of these drivers or their usage. More info will be added as I take time to research more of the modules.
1. Mouse and keyboard should automatically work
2. Joystick with SDL2 driver is known to be working. It simply uses the “first” joystick and the first analog pad on that stick plus the first two buttons. The axes and buttons are not yet configurable. Better info forthcoming.
3. There are drivers for serial controller, ImageWriter (II?) printer, and networking. I may have broken some of this functionality to get builds working. Im not currently familiar with the state of these drivers or their usage. More info will be added as I take time to research more of the modules.
Configuration Menu
Configuration options are loaded from, and saved to, a configuration text file. The default configuration file is config.txt. If you are just starting out, its recommended to use the configuration menu versus editing the file yourself.
Enter the configuration menu at any time while running GSplus by hitting <F4>.
Screen Shot 2016-05-01 at 9.10.00 AM.png
Most importantly, you can use the Disk Configuration menu option to “mount” and “eject” disks.
Most importantly, you can use the Disk Configuration menu option to “mount” and “eject” disks.
Command-line Options
This is from source, some are experimental and not all may be built on your system.
-badrd Halt on bad reads
@ -79,6 +80,7 @@ This is from source, some are experimental and not all may be built on your syst
-enet value Set ethernet to value
-config value Set config file to value
-debugport value Set debugport to value
-ssdir value Set screenshot save directory to value
Note: The final argument, if not a flag, will be tried as a mountable device.
@ -86,52 +88,52 @@ Note: The final argument, if not a flag, will be tried as a mountable device.
Debugger Commands
Debugger Commands - BROKEN!!!
Sorry, the debugger is currently broken due to a change in debugging frameworks.
The documentation below is accurate, but does not currently work.
Enter from the debugger prompt (Shift-F6)
GSplus CLI Debugger help (courtesy Fredric Devernay)
General command syntax: [bank]/[address][command]
General command syntax: [bank]/[address][command]
e.g. 'e1/0010B' to set a breakpoint at the interrupt jump pt
Enter all addresses using lower-case. As with the IIgs monitor, you can omit the bank number after having set it: 'e1/0010B' followed by '14B' will set breakpoints at e1/0010 and e1/0014
g Go
[bank]/[addr]g Go from [bank]/[address]
s Step one instruction
[bank]/[addr]s Step one instr at [bank]/[address]
[bank]/[addr]B Set breakpoint at [bank]/[address]
B Show all breakpoints
[bank]/[addr]D Delete breakpoint at [bank]/[address]
[bank]/[addr1].[addr2] View memory
[bank]/[addr]L Disassemble memory
P Dump the trace to 'pc_log_out'
Z Dump SCC state
I Dump IWM state
[drive].[track]I Dump IWM state
E Dump Ensoniq state
[osc]E Dump oscillator [osc] state
R Dump dtime array and events
T Show toolbox log
[bank]/[addr]T Dump tools using ptr [bank]/[addr] as 'tool_set_info'
[mode]V XOR verbose with 1=DISK, 2=IRQ,4=CLK,8=SHADOW,10=IWM,20=DOC,
40=ABD,80=SCC, 100=TEST, 200=VIDEO
[mode]H XOR halt_on with 1=SCAN_INT,2=IRQ, 4=SHADOW_REG, 8=C70D_WRITES
r Reset
[0/1]=m Changes m bit for l listings
[0/1]=x Changes x bit for l listings
[t]=z Stops at absolute time t (obsolete)
S show_bankptr_bank0 & smartport errs
P show_pmhz
A show_a2_line_stuff show_adb_log
Ctrl-e Dump registers
[bank]/[addr1].[addr2]us[file] Save mem area to [file]
[bank]/[addr1].[addr2]ul[file] Load mem area from [file]
v Show video information
q Exit Debugger (and GSplus)
g Go
[bank]/[addr]g Go from [bank]/[address]
s Step one instruction
[bank]/[addr]s Step one instr at [bank]/[address]
[bank]/[addr]B Set breakpoint at [bank]/[address]
B Show all breakpoints
[bank]/[addr]D Delete breakpoint at [bank]/[address]
[bank]/[addr1].[addr2] View memory
[bank]/[addr]L Disassemble memory
P Dump the trace to 'pc_log_out'
Z Dump SCC state
I Dump IWM state
[drive].[track]I Dump IWM state
E Dump Ensoniq state
[osc]E Dump oscillator [osc] state
R Dump dtime array and events
T Show toolbox log
[bank]/[addr]T Dump tools using ptr [bank]/[addr] as 'tool_set_info'
[mode]V XOR verbose with 1=DISK, 2=IRQ,4=CLK,8=SHADOW,10=IWM,20=DOC,
40=ABD,80=SCC, 100=TEST, 200=VIDEO
[mode]H XOR halt_on with 1=SCAN_INT,2=IRQ, 4=SHADOW_REG, 8=C70D_WRITES
r Reset
[0/1]=m Changes m bit for l listings
[0/1]=x Changes x bit for l listings
[t]=z Stops at absolute time t (obsolete)
S show_bankptr_bank0 & smartport errs
P show_pmhz
A show_a2_line_stuff show_adb_log
Ctrl-e Dump registers
[bank]/[addr1].[addr2]us[file] Save mem area to [file]
[bank]/[addr1].[addr2]ul[file] Load mem area from [file]
v Show video information
q Exit Debugger (and GSplus)
________________
Project Info
Developers inquire within :P
Main page and full source code repository: https://github.com/digarok/gsplus
This project has an ugly unmaintained homepage at http://apple2.gs/plus/
This project has a homepage at http://apple2.gs/plus/
The homepage hosts the latest build for a variety of OSes.

View File

@ -181,7 +181,7 @@ adb_init()
for(i = 0; i < 128; i++) {
keycode = a2_key_to_ascii[i][0];
if(keycode != i) {
printf("ADB keycode lost/skipped: i=%x: keycode=%x\n",
gloghead(); printf("ADB keycode lost/skipped: i=%x: keycode=%x\n",
i, keycode);
my_exit(1);
}
@ -497,14 +497,12 @@ adb_set_config(word32 val0, word32 val1, word32 val2)
new_mouse = val0 >> 4;
new_kbd = val0 & 0xf;
if(new_mouse != g_mouse_ctl_addr) {
printf("ADB config: mouse from %x to %x!\n",
g_mouse_ctl_addr, new_mouse);
gloghead(); printf("ADB config: mouse from %x to %x!\n", g_mouse_ctl_addr, new_mouse);
adb_error();
g_mouse_ctl_addr = new_mouse;
}
if(new_kbd != g_kbd_ctl_addr) {
printf("ADB config: kbd from %x to %x!\n",
g_kbd_ctl_addr, new_kbd);
gloghead(); printf("ADB config: kbd from %x to %x!\n", g_kbd_ctl_addr, new_kbd);
adb_error();
g_kbd_ctl_addr = new_kbd;
}
@ -567,7 +565,7 @@ void
adb_set_new_mode(word32 val)
{
if(val & 0x03) {
printf("Disabling keyboard/mouse:%02x!\n", val);
gloghead(); printf("Disabling keyboard/mouse:%02x!\n", val);
}
if(val & 0xa2) {

View File

@ -1356,11 +1356,16 @@ setup_gsplus_file(char *outname, int maxlen, int ok_if_missing,
fatal_printf(" %s\n", *path_ptr++);
}
*/
gloghead(); printf("Could not find required file \"%s\" !!! IIgs will likely hang!\n", *name_ptr);
glog(" Get an Apple IIgs firmware ROM image from somewhere like:");
glog(" ftp://ftp.apple.asimov.net/pub/apple_II/emulators/rom_images/");
glog(" ... and rename the file to \"ROM\" and restart");
glog(" ... or hit <F4> and browse for a valid ROM image.");
gloghead(); printf("Could not find required file \"%s\" !!!\n", *name_ptr);
if (strcmp(*name_ptr, "ROM")) {
glog(" IIgs will likely hang now!");
glog(" Get an Apple IIgs firmware ROM image from somewhere like:");
glog(" ftp://ftp.apple.asimov.net/pub/apple_II/emulators/rom_images/");
glog(" ... and rename the file to \"ROM\" and restart");
glog(" ... or hit <F4> and browse for a valid ROM image.");
}
// if (strcmp(*name_ptr, "config.txt")) {
//}
if(can_create_file) {
// If we didn't find a file, pick a place to put it.