gbeauche
a8ba24aecf
Use fast spinlocks only for small enough atomic operations. Otherwise, you
...
run into some performance problems in e.g. video graphics experience because
of busywaits in the current spin_lock() implementation.
2005-06-25 11:40:29 +00:00
gbeauche
12eb8b670f
Avoid C99-isms in C code for old compilers (e.g. gcc "2.96" on MDK 8.1)
2005-06-22 08:51:04 +00:00
gbeauche
1421bca4a7
Comment typo and return handled status in handle_selection()
2005-06-22 08:50:07 +00:00
gbeauche
3e532be645
Check for GTK for the GUI. Also add serial_windows.cpp to SRCS files
2005-06-20 08:43:50 +00:00
gbeauche
1e7c27958d
WIP prefs editor for Windows in GTK
2005-06-20 08:40:34 +00:00
gbeauche
c57c81879c
merge in serial ports emulation from original B2/win port
2005-06-20 06:11:28 +00:00
gbeauche
3a0b4ed999
Get real page size on Windows for vm_get_page_size() [64 KB]
2005-06-20 03:54:46 +00:00
gbeauche
d0fd88f7b2
gtk2 gui support
2005-06-19 15:52:09 +00:00
gbeauche
7f3e40883a
Only close clipboard hidden window only if created. This fixes errors on
...
early exit from the GUI.
2005-06-19 15:50:52 +00:00
gbeauche
fe99211e75
Support USE_CPU_EMUL_SERVICES in SDL/video driver. Only trigger ethernet
...
interrupt in one_tick() if no pthreads at all are used, i.e. ether_dummy
is effective in that case. Otherwise, don't trigger ethernet again if
pthreads are available (and ether_unix) and cpu emul services are active.
2005-06-14 22:35:42 +00:00
gbeauche
957bee00cf
Always allocate RAM and ROM areas at the same time. This avoids having ROM
...
suddenly allocated below RAM and thus not working. Besides, this may fix a
latent deallocation bug in real addressing mode (i.e. release the whole
block allocated at once, not separately).
Side effect: this makes Basilisk II work in direct addressing mode with JIT
on Darwin 8.0.1 for x86.
2005-06-13 20:19:15 +00:00
gbeauche
334f9ce018
Check for CoreFoundation framework (Darwin 8.0.1). Likewise for
...
IOKit/storage/IOBlockStorageDevice.h which is not available there on x86
2005-06-12 23:36:34 +00:00
gbeauche
2bc79fd857
Enable Basilisk II to work even if slirp_init() failed. Disable ethernet
...
emulation in that case, don't exit(1).
2005-06-12 22:48:48 +00:00
gbeauche
e308e5441b
Mach exception recovery and instruction skipping for Darwin/x86.
2005-06-12 21:47:46 +00:00
gbeauche
369d01cf16
%Ld is for long double, not long long (%lld)
2005-06-11 06:52:22 +00:00
gbeauche
0f0b06b099
Much improved responsiveness on NetBSD systems.
...
On those systems, it's really hard to get high resolution timings and the
system oftens fails to honour a timeout in less than 20 ms. The idea here
is to have an average m68k instruction count (countdown quantum) that
triggers real interrupt checks. The quantum is calibrated every 10 ticks
and has a 1000 Hz resolution on average.
2005-06-11 06:43:24 +00:00
gbeauche
57e618990c
Add experimental fullscreen SDL video graphics. Map Windows keys to Option.
2005-06-06 21:20:28 +00:00
gbeauche
8532e34485
Update GTK Prefs Editor with support for "jitinline" and "slirp" ethernet.
2005-06-06 20:11:50 +00:00
gbeauche
6b9f8e85c5
Robustify: only close zero_fd if actually allocated
2005-06-06 19:40:17 +00:00
gbeauche
452b7b9638
Properly QuitEmulator() on unhandled SIGSEGV even if not ENABLE_MON.
2005-06-06 19:39:36 +00:00
gbeauche
f784bf5c05
Restrict mandatory SLIRP_CFLAGS to minimum, i.e. -fno-strict-aliasing.
2005-06-06 19:31:22 +00:00
gbeauche
c0cc43a87b
Really make translation through constant jumps functional. This can be
...
disabled with the new prefs item "jitinline". Some rapid Speedometer 4
benchmarks showed only a 4% improvement.
2005-06-06 19:22:56 +00:00
gbeauche
83b228cf30
Add support for hardware locks on x86_64 too
2005-06-06 18:49:51 +00:00
gbeauche
6c65ae370e
Fix build with NO_INLINE_MEMORY_ACCESS set
2005-06-05 07:32:23 +00:00
gbeauche
830bf0f65c
Fix build on 32-bit platforms with REAL_ADDRESSING mode
2005-06-05 07:03:12 +00:00
gbeauche
08c4acd21f
Enable FLIGHT_RECORDER for generated code but don't record registers in
...
that case (yet).
2005-06-04 16:47:14 +00:00
gbeauche
a4caa8ab09
Handle all slirp input/output from a single thread, thus fixing occasional
...
hangs on slower systems (concurrent read/write in 68k mode). Reduce timeout
to 10 ms.
2005-05-21 17:48:21 +00:00
gbeauche
02714e46a8
Fix and factor out ether_exit(). Pitifully, MacOS X 10.2 does not make select()
...
a cancellation point when it is passed a NULL timeout. Workarounded in
receive_func() with a full inline of poll_fd() + pthread_testcancel().
2005-05-15 17:22:12 +00:00
gbeauche
71c3199a42
Add "fbcon" keycodes (Linux Framebuffer Console)
2005-05-15 07:55:05 +00:00
gbeauche
dab65b1211
Enable ethernet on MacOS X even though slirp seems to have some small
...
problems on big endian systems. IOW, Basilisk II can hang there. I also
noticed that on Linux/ppc so that's probably not MacOS X specific, assuming
the same problem. ==> A packet arrives but Basilisk II can't seem to trigger
an interrupt (need to try sheep_net/tun in linux to make sure)
2005-05-14 17:40:05 +00:00
gbeauche
84c9d99d18
Remove bootp debug code as it uses varargs macros that are not supported in
...
all foreign compilers (including preprocessor shipped with MacOS X!). Also
fix build on platforms not including <stdint.h> by default.
2005-05-14 17:37:07 +00:00
gbeauche
77446db25d
fix poll() emulation
2005-05-14 17:33:57 +00:00
gbeauche
1b53603138
MacOS X doesn't implement unnamed POSIX semaphores even though their libc
...
defines the functions. Use Mach semaphores instead.
2005-05-14 17:32:55 +00:00
gbeauche
85db30f78d
add missing rule to build extfs_macosx.mm
2005-05-14 16:37:21 +00:00
gbeauche
fd61ad2b0c
Try to improve the documentation concerning the "tun" interface. Take note
...
that that kernel module must be loaded and IP forwarding enabled. Also add
slight improvements to the "tunconfig" script so that sudo /sbin/ifconfig
and sudo /sbin/iptables are really supported for current user if not root.
2005-05-14 16:08:17 +00:00
gbeauche
722eedd6e2
ethernet/slirp works on netbsd too
2005-05-14 08:42:39 +00:00
gbeauche
eff6830415
detect slirp at configure time, aka fix build when ether_dummy.cpp is used
2005-05-14 08:10:49 +00:00
gbeauche
4bf4a1d2b0
fix for new packet interface
2005-05-14 08:10:09 +00:00
gbeauche
63015fd6d3
Use a custom poll_fd() function implemented as select() on platforms that
...
don't support poll() natively, e.g. MacOS X and some older BSDs.
2005-05-13 17:43:38 +00:00
gbeauche
d9839e7079
Fix build on MacOS X: dedicated extfs_macosx.mm & static SDL libs
2005-05-13 17:32:13 +00:00
gbeauche
fdfcd3eb86
Some 64-bit fixes to bootp, icmp, udp (cu-seeme). However, it can happen
...
that on certain occasions, it doesn't work. Some timing problem?
2005-05-13 14:02:37 +00:00
gbeauche
745bc86678
fix CFLAGS preservation
2005-05-13 11:13:26 +00:00
gbeauche
d91e8b2a8f
fix "banks" addressing mode for 64-bit platforms
2005-05-13 11:05:56 +00:00
gbeauche
f35e176853
slirp documentation from qemu
2005-05-13 09:33:51 +00:00
gbeauche
20fcf38e30
Recognize Intel Compilers. Add user mode network stack with slirp from qemu.
...
Simply use "ether slirp" in the prefs file, no kernel module required. I
could perform up to 450 KB/sec on my DSL line.
2005-05-13 09:21:21 +00:00
gbeauche
5fffe6e2cd
slirp user mode network emulation code from qemu
2005-05-13 09:00:59 +00:00
gbeauche
a532ff64c8
Improve SDL/fullscreen mode when not used in DGA mode, i.e. cases when
...
screen needs to be updated too. This needs better boxes characterisation.
2005-05-12 16:55:16 +00:00
gbeauche
9f8b4bcc0d
Fix SDL/DGA build. Drop useless "inline" for updates. Overlapping scanlines
...
optimization.
2005-05-12 14:39:56 +00:00
gbeauche
31f80e338b
Fix DGA when visible screen is smaller than virtual display, aka fix
...
fullscreen mode when VidMode extension is enabled. Also fix SDL fullscreen
to really update the screen as this is necessary by default on Linux since
simple windowed is used (and not DGA for fullscreen).
Always prefer the 64 pixel chunks update code.
Rearrange B2 video_x.cpp to match video_vosf.h updates
2005-05-12 11:09:31 +00:00
gbeauche
380a9ed970
ensure allocated code fits under 32-bit boundaries
2005-04-24 23:02:48 +00:00
gbeauche
165b32da39
Fix build with gcc4 on x86-64: ignore errors when casting pointers to int
...
from regs & fpu members + code cache. This is possible because data is
allocated in 32-bit space and we force allocation of translation cache to
those bounds too.
2005-04-24 23:00:08 +00:00
gbeauche
57169c7923
Recognize lahf_lm from Dual Core Opterons. This enables use of LAHF/SETO
...
instructions in long mode (64-bit). However, there seems to be another bug
in the JIT preventing it from being fully supported. m68k.h & codegen_x86.h
are easily fixed bug another patch is still needed.
2005-04-21 09:08:57 +00:00
gbeauche
b4152fc466
cosmetics
2005-04-02 09:56:12 +00:00
gbeauche
85246b8408
Rewrite update_display_dga_vosf() for much improved performance and cope
...
with palette changes. Also slightly improve the generic code when we need
to further update the screen (e.g. SDL without hardware surface)
2005-04-02 09:50:17 +00:00
gbeauche
e8ac4897b6
Enable multiple depths in fullscreen DGA modes, i.e. add 1-bit to 16/32-bit
...
blitters, rewrite update_display_dga_vosf() to actually work with sub byte
pixels. Factor out update_display_window_vosf() since it's long time that
it is no longer checking for first column and last column that have changed.
2005-03-28 16:14:25 +00:00
gbeauche
7dedb433fd
Gracefully catch SIGSEGV & SIGBUS for TEST_VM_PROT_* test cases. This should
...
avoid dumping core, and especially Windows fault alerts when natively
configuring with MinGW32.
2005-03-24 23:45:40 +00:00
gbeauche
a6070dcdf3
enable cross-compilation
2005-03-24 23:13:09 +00:00
gbeauche
35e8c8c9cd
Enable instruction skipping for OpenBSD 3.4 on i386
2005-03-23 22:00:06 +00:00
gbeauche
f2908fe7bf
instruction skipper for Solaris/i386 (Solaris 9)
2005-03-23 21:37:24 +00:00
gbeauche
5c001ba645
Allocate executable space to detect cpu features (cpuid). aka don't crash
...
on non-executable .data sections on x86-64 with NX support enabled.
2005-03-22 16:12:18 +00:00
gbeauche
569d916664
fix for 2.4.21
2005-03-22 13:43:50 +00:00
gbeauche
afe033a63d
fix build with kernels >= 2.6.9
2005-03-22 13:31:13 +00:00
gbeauche
04a331e827
Avoid use of pthread_cancel() for redraw thread cancellation. Use an extra
...
variable to acknowledge cancellation. This avoids Xserver events queue
corruption when clipboard is in use. Concretely, this fixes following errors:
Xlib: unexpected async reply (sequence 0xHEX)!
2005-03-21 23:57:34 +00:00
gbeauche
2871aefa87
Use autogen.sh to generate configure scripts, likewise for Windows
2005-03-21 22:45:09 +00:00
gbeauche
f028a9d217
Extra changes I forgot to mention in the ChangeLog
2005-03-21 22:39:59 +00:00
gbeauche
5892c6c286
more sdl key conversions
2005-03-20 23:43:17 +00:00
gbeauche
7b6d062c9d
Check that drivers are installed (e.g. CD-ROM driver)
2005-03-19 19:01:49 +00:00
gbeauche
143b18c752
Make ethernet really work on 64-bit platforms, especially x86-64
2005-03-19 17:43:03 +00:00
gbeauche
ae6555fd46
SDL_ListModes() sometimes does not return a sorted list from largest to
...
smallest screen dimensions (e.g. on windows)
2005-03-19 05:34:15 +00:00
gbeauche
016b58007a
And finally the Windows specific configure script to be generated with
...
../Unix/autogen.sh. Who would be the first to see Basilisk II is fully
buildable from CVS now with SDL and Cygwin? ;-)
2005-03-17 00:27:54 +00:00
gbeauche
535a658c72
Windows specific Makefile, this could be improved though
2005-03-17 00:25:50 +00:00
gbeauche
7f7b2185c2
Windows specific sysdeps.h
2005-03-17 00:24:25 +00:00
gbeauche
87c8860b92
add missing windows specific header files
2005-03-17 00:22:37 +00:00
gbeauche
608c1f65bd
close opened files and make sure to flush stdout on exit, this used to
...
cause weird results on windows otherwise
2005-03-17 00:21:36 +00:00
gbeauche
fcb323c511
Default to BasiliskII_keycodes file on Windows if user wants keycodes but
...
no keycodefile is specified
2005-03-17 00:19:39 +00:00
gbeauche
f29eb7dd1d
nanosleep() delays seem better suited to MacOS X, instead of select()
2005-02-21 22:57:03 +00:00
gbeauche
10f38d4b50
NetBSD/ppc support
2005-02-20 11:39:12 +00:00
gbeauche
3aeed84471
<machine/soundcard.h> was simply a compatibility symlink on FreeBSD and it
...
is now gone away.
2005-02-13 17:56:55 +00:00
gbeauche
30632aed4f
Happy New Year!
2005-01-30 21:42:16 +00:00
gbeauche
cfff01f846
fix parsing of the keycode table
2005-01-22 17:41:33 +00:00
gbeauche
fd7d8cd625
Implement RGB555 mode on 16-bit displays, big endian, native byte order (MacOS X)
2005-01-19 20:27:14 +00:00
gbeauche
d075282607
new way to allocate dt_store
2005-01-08 08:57:53 +00:00
gbeauche
09d6712bdb
Fixes for NetBSD 2.0
2005-01-04 23:38:01 +00:00
gbeauche
64ff64d500
cross compile fixes
2004-12-26 23:24:34 +00:00
gbeauche
3032cb417c
enable build with kernel 2.6
2004-12-19 15:55:31 +00:00
gbeauche
50eee913b8
s/vm_page_size/vm_get_page_size/ to avoid name clash on MacOS X
2004-12-18 22:20:27 +00:00
gbeauche
61e223471b
Force use of MacX mappings with Apple's X server
2004-12-18 19:28:33 +00:00
gbeauche
1406b615c7
Make EtherInterrupt/packet[] "static" so that it is allocated in the .data
...
section, which is likely accessible under 32-bit address on 64-bit platforms
2004-12-18 18:10:40 +00:00
gbeauche
854478a048
support for kernel 2.6 (from MOL)
2004-12-18 17:49:12 +00:00
gbeauche
c10046c137
Check that we can really read at the faulty eip in Windows prior to decoding
...
the instruction. Also fix the unrecoverable fault dump to really be useful.
2004-12-11 13:07:38 +00:00
gbeauche
a80e76111f
remove obsolete headers inclusion, implement vosf lock with native windows
...
mutexes, use new vm_page_size() accessor
2004-12-11 10:20:32 +00:00
gbeauche
fc47096ef8
implement vm_page_size() to get the actual size of a page
2004-12-11 10:19:34 +00:00
gbeauche
ceba60d76f
native windows mutexes as (fast) critical sections
2004-12-11 10:16:42 +00:00
gbeauche
2bbbde1e2b
thread wrappers
2004-12-11 09:41:13 +00:00
gbeauche
912479d0d1
ethernet related prefs items
2004-12-06 23:42:19 +00:00
gbeauche
fb4dacd6a6
Raw import of ether_windows.cpp from original Basilisk II for Windows.
...
Fix code so that it builds in Cygwin/Mingw32.
2004-12-06 23:31:03 +00:00
gbeauche
ead0de6fdf
Refactor native windows system support routines from sys_unix.cpp. This
...
includes CD-ROM support but still lacks original B2 features involving
floppies, real hard disk, and hard file options
2004-12-05 17:11:15 +00:00
gbeauche
0c7dbfd290
Import some extra functions from Win32 libraries. Expose OS versions.
2004-12-05 16:54:14 +00:00
gbeauche
553127f8f3
import original b2ether code from B2/Win32
2004-12-05 16:51:29 +00:00
gbeauche
2de1c1760f
import NAT-Router code from original Basilisk II for Windows
2004-12-05 16:48:36 +00:00