Commit Graph

407 Commits

Author SHA1 Message Date
Kelvin Sherlock
67b187e70b prefer _WIN32 over WIN32. 2019-02-23 17:33:38 -05:00
Kelvin Sherlock
69bc724ae8 2 controls Ds needed to exit. 2019-02-23 17:32:00 -05:00
Kelvin Sherlock
52d2c5f509 win32 get_resource_path 2019-02-23 17:31:31 -05:00
ksherlock
97e6f17a31
fixup _WIN32/__CYGWIN__/WIN_SDL #defines 2019-02-21 13:56:57 -05:00
ksherlock
88d3cb9dc7
remove CYGWIN/WIN_SDL defines. 2019-02-21 13:45:35 -05:00
Kelvin Sherlock
b2d6adce69 win32 libraries needed whether GDI or SDL. 2019-02-21 00:34:26 -05:00
Kelvin Sherlock
d12ce862fc win32 sdl build needs scc_windriver. 2019-02-21 00:08:52 -05:00
Kelvin Sherlock
56528ab928 apparently, -DWIN_SOUND was to workaround cygwin not defining _WIN32. But we explicitely -D_WIN32. SMH.
Also, re-order a couple #if trees so SDL takes precedence over WIN32, etc.
2019-02-20 23:47:42 -05:00
ksherlock
adeb2006f7
__USE_W32_SOCKETS moved to parent CMakeLists.txt 2019-02-20 13:48:39 -05:00
ksherlock
516d0e1439
-D__USE_W32_SOCKETS 2019-02-20 13:28:40 -05:00
Kelvin Sherlock
bef27e165e defer to CMake's optimization level. set to release by default. 2019-02-20 00:09:53 -05:00
Kelvin Sherlock
82e976d8e2 add back missing header. 2019-02-20 00:09:25 -05:00
Kelvin Sherlock
3ce34e0e27 lookup addresses for abslong and pc. 2019-02-20 00:09:05 -05:00
Kelvin Sherlock
be9724acfc minor tweaks for nifty list format. 2019-02-20 00:08:21 -05:00
Kelvin Sherlock
367d337674 2 unhandled ^Cs will abort 2019-02-20 00:07:59 -05:00
Kelvin Sherlock
6dd598be0c disassemble prodos mli calls. 2019-02-19 22:18:22 -05:00
Kelvin Sherlock
62dcf4f9d2 clean up socket stuff a little bit to compile better with msys2 2019-02-19 21:57:52 -05:00
Kelvin Sherlock
9f3c0feb39 load tools and gs/os calls from NList.Data 2019-02-19 21:49:35 -05:00
Kelvin Sherlock
58351d1db7 win32 missing strndup 2019-02-19 19:48:39 -05:00
Kelvin Sherlock
22e488df30 GCC's documentation states that __LP64__ is defined if sizeof(void *) == 8 and sizeof(int) == 4. Well, under mingw64 that doesn't seem to be true. And it causes lots of warnings.
Anyhow, as of c99, stdint.h defines a type specifically for casting pointers to integers. It also defines fixed size types so no need to guess or sniff compilers.
2019-02-18 12:38:15 -05:00
ksherlock
b9e36df2bb
mingw/win32 lacks strndup. 2019-02-18 11:24:08 -05:00
ksherlock
8584df91f5
win32 compiler fixes. 2019-02-18 11:08:57 -05:00
ksherlock
0e9cf9879b
use uintptr_t to cast ptr to int. 2019-02-18 10:56:43 -05:00
Kelvin Sherlock
fed51ab444 HISTORY_NO_DUP_FLAG currently missing from mingw wincon.h 2019-02-17 23:42:51 -05:00
Kelvin Sherlock
31ab8d4c6c win32 typo. 2019-02-17 23:34:10 -05:00
Kelvin Sherlock
e9e9fcfd59 host mli - opening/closing a directory would close fd 0 (aka stdin). 2019-02-17 22:26:52 -05:00
Kelvin Sherlock
682dc0c562 host mli - opening/closing a directory would close fd 0 (aka stdin). 2019-02-17 22:23:22 -05:00
Kelvin Sherlock
b6406159bd unix host mli bug fixes
1. file/directory  storage types were reversed
2. month was off-by-one.
2019-02-17 18:47:32 -05:00
Kelvin Sherlock
78591a37d0 unix host mli bug fixes
1. file/directory  storage types were reversed
2. month was off-by-one.
2019-02-17 18:46:19 -05:00
Kelvin Sherlock
216d1f1b35 push 24 mmu check was only checking 2 bytes. :/ 2019-02-17 16:40:34 -05:00
Kelvin Sherlock
4e956a4e06 simplify mp check logic. 2019-02-17 14:37:51 -05:00
Kelvin Sherlock
86285cc43d replace hard coded ADB keycode with nice enums.
There are also a couple fixes in the SDL keymap (home key, {, }, keypad numbers)

xdriver isn't updated because I don't care about x.
win32 driver isn't updated pending other win32 keymap patch.
2019-02-17 14:22:38 -05:00
Kelvin Sherlock
3c9a004a9e store fields in separate array, not as part of record. 2019-02-16 23:56:27 -05:00
Kelvin Sherlock
9589abfda7 debugger - add toolcall and GS/OS call recognition to the disassembler. 2019-02-16 17:29:39 -05:00
Kelvin Sherlock
a65833d6d8 register assignment - assign from other registers (eg, %a=%x) 2019-02-16 17:27:56 -05:00
Kelvin Sherlock
a0976f82a8 ubuntu. 2019-02-14 22:43:39 -05:00
Kelvin Sherlock
0956f154fd compile with old versions of re2c (*cough* ubuntu *cough*) 2019-02-14 22:24:42 -05:00
Kelvin Sherlock
44acfd5434 Debugger: %pc++, %s++, %s-- 2019-02-14 21:54:23 -05:00
Kelvin Sherlock
5cb4f63993 Debugger - GSBug.Templates support.
address\temp TemplateName to print structured memory.

Also, registers now need a % prefix so as not to interfere with other commands.
2019-02-14 21:37:03 -05:00
Kelvin Sherlock
2f05a766b0 fix GNU readline bug. linking libhistory is not necessary. In fact, it causes a SIGSEGV. 2019-02-11 23:09:59 -05:00
Kelvin Sherlock
14e1fe18f8 move icon files around. 2019-02-11 20:15:30 -05:00
Kelvin Sherlock
4a0c190ce3 win32 readline support, maybe. 2019-02-11 18:11:45 -05:00
Kelvin Sherlock
0021956044 bug fixes. 2019-02-10 22:45:42 -05:00
Kelvin Sherlock
f9a86eed8a auto-select readline library by default. 2019-02-10 22:39:23 -05:00
Kelvin Sherlock
817792f94d ubuntu, debian, etc, have outdated version of re2c. imagine that. 2019-02-10 22:21:06 -05:00
Kelvin Sherlock
25caf2dbad add ;s stack command. 2019-02-10 21:42:15 -05:00
Kelvin Sherlock
fdcb504d9c use simpler signal interface. 2019-02-10 21:40:47 -05:00
Kelvin Sherlock
66fbd7f677 move readline code to separate file. 2019-02-10 21:40:22 -05:00
Kelvin Sherlock
61858c4d62 Add Low-Level hook for Windows keyboard events
windows, alt, and control keys are handled separately, before windows can get a chance to act on them. This makes win usable as an option key and prevents things like alt-esc from minimizing the window.
Some combos (alt-control-delete, windows-L, etc) cannot be blocked.
2019-02-08 20:59:15 -05:00
Kelvin Sherlock
a76d26a0ad drop all keys when window no longer active (not jut loss of focus). Also drop all pending keys that haven't been sent to the ADB yet. 2019-02-07 23:09:53 -05:00
Kelvin Sherlock
ea9a16fc5f debug shell - ;l or l for list. 2019-02-06 22:54:41 -05:00
Kelvin Sherlock
2b1e04c3ac debug shell - allow registers as addresses. 2019-02-06 22:54:18 -05:00
Kelvin Sherlock
524d4a27e4 halt_printf, control-c, etc set a halt bit. This now invokes the debugger, asynchronously (ie, after the current instruction finishes execution). 2019-02-06 22:53:44 -05:00
Kelvin Sherlock
68260dcf6a debugger - new WANTS_BRK bit. setting it will cause BRKS to invoke the debugger instead of being handled within the 65816. 2019-02-06 22:50:38 -05:00
Kelvin Sherlock
dccb965631 eliminate overflow warnings when byteswapping. 2019-02-06 22:48:04 -05:00
Kelvin Sherlock
d0ed507ef4 debug shell - control-C sets asynchronous halt request. 2019-02-06 22:47:35 -05:00
Kelvin Sherlock
b08806c12a debug shell - : memory assignment 2019-02-06 22:46:46 -05:00
Kelvin Sherlock
b7ff6d56e8 debug shell - @ and ^ indirection. 2019-02-06 22:46:08 -05:00
Kelvin Sherlock
2fb1249c96 clean up windows key mapping to use adb names codes. also fixes a few mistakes with keypad values. 2019-02-04 23:45:39 -05:00
Kelvin Sherlock
35993914f9 update adb keycodes with F15-F20, use proper value for F keys, eliminate Mac OS arrow key mapping. 2019-02-04 20:43:12 -05:00
Kelvin Sherlock
82229498b4 adb keycodes. 2019-02-04 20:41:11 -05:00
Dagen Brock
2cde38ba3c
Merge pull request #57 from ksherlock/option_return
remove warning about parse_cli_options not returning a value.
2019-01-30 11:13:14 -06:00
Kelvin Sherlock
e62889901c fix up tcp debug to work with new debugger 2019-01-29 19:20:17 -05:00
Kelvin Sherlock
d47589374c bp/mp are now post-fix ops. 2019-01-29 19:18:08 -05:00
Kelvin Sherlock
619ea2109d remove dead code, update for new debugger code 2019-01-29 00:21:24 -05:00
Kelvin Sherlock
6034573693 udpated cmakefile for new debug code. 2019-01-28 23:04:55 -05:00
Kelvin Sherlock
c4aa64de48 new breakpoint code. 2019-01-28 23:04:20 -05:00
Kelvin Sherlock
0cf532c00d BRK / COP weren't pushing the current z/neg flags. 2019-01-28 23:03:04 -05:00
Kelvin Sherlock
81c74470ef PUSH16 MMU check was incorrect. 2019-01-28 22:59:00 -05:00
Kelvin Sherlock
0e2f35e7fe re-order instructions so zero/negative flags are set AFTER memory write (which may abort) 2019-01-28 22:01:29 -05:00
Kelvin Sherlock
8d60a2d437 clean up the disassembler a little bit. 2019-01-28 18:10:27 -05:00
Kelvin Sherlock
0c0c886be9 drop the g_dbg_step variable for now... 2019-01-26 17:14:39 -05:00
Kelvin Sherlock
66f3971027 add debug flag register to engine. 2019-01-26 17:07:40 -05:00
Kelvin Sherlock
f376e2a442 new memory checking [part 1]
_ macros bypass the memory checking code.
2019-01-26 17:06:48 -05:00
Kelvin Sherlock
7e87fc6968 replace inline asm for rdtsc with compiler intrinsics. 2019-01-26 16:50:59 -05:00
Kelvin Sherlock
38e691562c use c99 stdint types. 2019-01-22 22:37:20 -05:00
Kelvin Sherlock
ee078aeb19 remove breakpoint checks (to be added back later) 2019-01-22 21:52:00 -05:00
Kelvin Sherlock
77eb25fc71 use defines instead of bit shifts 2019-01-22 19:28:59 -05:00
Kelvin Sherlock
9f5a6566f5 sdl driver - support for the Home key. 2019-01-16 18:23:17 -05:00
Kelvin Sherlock
ad3ec85a1d shift-keypad . was generating a keypad comma. very strange. 2019-01-16 18:22:36 -05:00
Kelvin Sherlock
ff1022db8f sdl driver keymap mistakes. 2019-01-12 21:10:51 -05:00
Kelvin Sherlock
43b7330256 clean up CMake dependencies a little bit. 2019-01-10 20:36:17 -05:00
Kelvin Sherlock
5e852773ca os x - setuid helper utility to connect to the bridge interface. 2019-01-08 18:41:55 -05:00
Kelvin Sherlock
4a5d6effd5 to work around vmnet root/entitlement restrictions, add a stand-alone helper utility than can be setuid root.
vmnet_helper creates a vmnet connection then communicates back to GS+ via pipes to stdin/stdout and a simple binary messaging protocol.
2019-01-06 22:58:41 -05:00
Kelvin Sherlock
55de506812 msvc warnings 2019-01-04 22:58:56 -05:00
Kelvin Sherlock
1700285fd2 cleanup to build with MSVC. 2019-01-04 17:53:16 -05:00
Kelvin Sherlock
b0764fb93c build fix. 2019-01-02 21:49:48 -05:00
Kelvin Sherlock
f0bd88195b bsd tuntap documentation. 2019-01-02 21:49:38 -05:00
Kelvin Sherlock
7422409f53 remove stale old msvc projects 2019-01-02 21:48:55 -05:00
Kelvin Sherlock
b353a7ff22 cleanup headers a bit 2019-01-02 19:53:34 -05:00
Kelvin Sherlock
4923efb5fc cleanup to build under msys2/mingw64 2019-01-02 18:45:14 -05:00
Kelvin Sherlock
ecf6c58661 improved ethernet startup. use device name instead of index into a list that could change. 2018-12-31 20:51:14 -05:00
Kelvin Sherlock
4da1a246c7 get rid of the -enet flag, for now. 2018-12-31 20:50:07 -05:00
Kelvin Sherlock
fae38450e9 tap cleanup, more *BSD support. 2018-12-31 20:49:39 -05:00
Kelvin Sherlock
aaeda41baf unix mtu/mac code for pcap. 2018-12-31 20:49:07 -05:00
Kelvin Sherlock
4af3cf0761 untested win32 mac code. 2018-12-31 20:48:34 -05:00
Kelvin Sherlock
04314d7bb0 dead code, no longer needed as of Uthernet Link Layer 1.0.2 2018-12-31 20:48:07 -05:00
Kelvin Sherlock
41b01509ad rawnet - replace ugly transmit/receive functions with read/write. 2018-12-30 15:53:54 -05:00
Kelvin Sherlock
5884e751bc rawnet - close pcap if not an ethernet device. 2018-12-30 15:51:53 -05:00
Kelvin Sherlock
c4796f77ec rawnet - add rawnet_status() call to check if interface is open. 2018-12-30 15:50:41 -05:00
Kelvin Sherlock
324c9a191f win32 - support for npcap which is a successor to winpcap. winpcap is still supported. 2018-12-30 15:49:29 -05:00
Kelvin Sherlock
0b03aad15d tap/tun interface (alpha!) 2018-12-29 15:04:14 -05:00
Kelvin Sherlock
c34b0a4c02 vmnet - allocate one buffer and use it. 2018-12-26 22:51:04 -05:00
Kelvin Sherlock
44ee124882 can use numbers to navigate file picker. 2018-12-26 20:01:22 -05:00
Kelvin Sherlock
ce3bb3d642 add new menu lookup for ethernet interface. 2018-12-26 00:11:42 -05:00
Kelvin Sherlock
fc100dd6b6 sdl key mapping - remove alternate value (eg, page up) for keypad numbers. Hitting real page-up is converted to the 3 key, for example, which is bad. 2018-12-25 21:53:56 -05:00
Kelvin Sherlock
8dcbb38a62 clean up config menus 2018-12-25 21:52:41 -05:00
Kelvin Sherlock
1790096088 clean up arrow key code in the config window. 2018-12-25 20:00:15 -05:00
Kelvin Sherlock
18d988319e rawnet cmake 2018-12-19 21:07:57 -05:00
Kelvin Sherlock
7a6ea5ef99 remove unused variables. 2018-12-19 21:07:25 -05:00
Kelvin Sherlock
b98635aaf1 darwin rawnet - since the MAC address can't change, switch it with Uthernet's mac address. Unfortunately, dhcp requests include a mac address, so it also has to be swapped in the DHCP message. 2018-12-18 19:23:57 -05:00
Kelvin Sherlock
9370ed8604 rawnet - add functions to get mac and mtu, if known. 2018-12-18 19:21:20 -05:00
Kelvin Sherlock
f550249382 tweak rawnet_hexdump 2018-12-18 19:20:11 -05:00
Kelvin Sherlock
ba50807910 tfe -> rawnet. 2018-12-14 20:37:39 -05:00
Kelvin Sherlock
12c8f215ba darwin vmnet tweaks. 2018-12-14 20:35:50 -05:00
Kelvin Sherlock
a8c23a4c2a rawnet - fix logging, add hexdump. 2018-12-14 20:35:23 -05:00
Kelvin Sherlock
1b1983b64a rawnet - add link libraries, debugging defines. 2018-12-14 20:35:04 -05:00
Kelvin Sherlock
698678f508 rawnet
vice cleaned up TFE and called it RAWNET.  Slightly better code separation.
I removed libnet stuff in the unix version and added a darwin version that uses the vmnet framework.
2018-12-13 23:20:04 -05:00
Kelvin Sherlock
5f2a5e4348 remove warning about parse_cli_options not returning a value. 2018-12-13 21:50:43 -05:00
Kelvin Sherlock
e37e50affe cmake support.
cmake generates makefiles (or ninja file, xcode projects, etc) which are then built with make, ninja, xcode, etc.

usage:

make build # don't build in the source tree itself
cd build
cmake ../src/

then

make as usual.

It should work with OS X, Linux, and Win32 (tested on Windows with msys2 / mingw64, IIRC, using the win32 driver).

"make bundle" will run the OS X bundle utility to bundle up libraries.
2018-12-13 20:53:58 -05:00
Dagen Brock
5e009305f8 v0.14 release 2018-09-11 17:06:05 -05:00
Dagen Brock
fba7d6c89d partially realized delta mouse handler (hidden in shift-F5 for now) 2018-09-07 09:29:46 -05:00
Dagen Brock
61d672f635 use SDL keycode whenever possible
- tested with US 101 key on US keyboard and it worked fine with this switch, but need users with international keyboards to test behavior on their end
2018-08-31 10:18:41 -05:00
Dagen Brock
7df808cf4a add scaling options and fix speedups 2018-08-30 09:55:10 -05:00
Dagen Brock
710e2cd067 always alpha sort and cleaner hotkeys in file menu 2018-08-28 10:51:54 -05:00
Dagen Brock
6ec560ca49 only grab mouse in fullscreen for now 2018-08-27 12:16:57 -05:00
Dagen Brock
48bad8a432 cleaner shutdown / mouse code for SDL 2018-08-27 11:21:59 -05:00
Dagen Brock
ff39749feb fix sdl frame rendering vsync method to simply present the buffer once per frame 2018-08-26 13:59:39 -05:00
Dagen Brock
17f22c3393 fix sdl2 keymap on non-apple systems and add rpi doc 2018-08-24 23:20:47 -05:00
Dagen Brock
12ec7c4fa9 proper SDL shutdown - fixes exit on RPi HW accel version 2018-08-24 14:18:44 -05:00
Dagen Brock
ed817c15fe add vsync flag for great success 2018-08-24 12:45:51 -05:00
Dagen Brock
9b708a2ad8 resolve builds on windows with new fst objects 2018-08-24 11:40:25 -05:00
Dagen Brock
16b131d1f9
Merge pull request #41 from ksherlock/prodos_mli
Prodos mli (win32 edition)
2018-08-24 05:28:37 -05:00
Dagen Brock
26ac5bc51a
Merge branch 'master' into master 2018-08-24 05:12:46 -05:00
Kelvin Sherlock
fcf8dea873 host mli - convert cygwin paths to Win32 paths before using with Win32 API. 2018-08-23 20:47:09 -04:00
Kelvin Sherlock
2b38b6bf8d win32 prefix fix. 2018-08-23 15:27:23 -04:00
Dagen Brock
27a0d34dff pi build with sdl2 2018-08-23 18:35:41 +00:00
Kelvin Sherlock
7b66b3a070 bug fixes and more cleanup 2018-08-23 10:56:09 -04:00
Kelvin Sherlock
192cfc724b win32 host mli support
this also moves a lot of common host_fst / host_mli / win_host_fst into host_common / unix_host_common / win32_host_common

Currently untested.
2018-08-23 00:38:53 -04:00
Dagen Brock
45da5d239d add unimplemented functions to allow win32 builds to work 2018-08-22 10:07:25 -05:00
Kelvin Sherlock
70578779e4 mli init - was reading unit as 16-bit quantity instead of 8-bit quantity. 2018-08-20 21:34:59 -04:00
Kelvin Sherlock
30491a39a0 host fst - return a better error for ChangePathGS when destination file exists and DestroyGS when file is non-empty directory 2018-08-20 21:28:09 -04:00
Kelvin Sherlock
67a8d7a0c6 sunos xattr defines 2018-08-20 20:58:48 -04:00
Kelvin Sherlock
8be3dad543 uncrustify. 2018-08-20 20:57:45 -04:00
Kelvin Sherlock
a5e55f826c update makefile, remove dead code 2018-08-20 20:55:19 -04:00
Kelvin Sherlock
3390a35f84 host mli support
intercepts ProDOS MLI calls for the /HOST/ path.
2018-08-20 15:43:06 -04:00
Dagen Brock
8e53c19f66 making it merge someway, somehow 2018-08-20 13:16:47 -05:00
Dagen Brock
5d6bc63bf7
Merge branch 'experimental' into debugger_wdm 2018-08-20 12:40:08 -05:00
Kelvin Sherlock
e021a622b4 adds two new WDM debugger commands useful for programmers.
WDM $a0 prints a string
a: string type (0 = c-string, 1 = pascal string, 2 = gs/os string). set bit 15 ($8000) to add a trailing '\n
x/y:  pointer to the string

WDM $a1 hexdumps memory
a: length
x/y pointer to memory

(in both cases, x is the low  word and y is the high word (ie, bank))
2018-08-20 13:03:53 -04:00
Dagen Brock
d7ccfb919c remove debug and status line (not supported) flags from osx builds 2018-08-14 22:48:50 -05:00