diff --git a/SheepShaver/Makefile b/SheepShaver/Makefile index 1d070803..b7248d1b 100644 --- a/SheepShaver/Makefile +++ b/SheepShaver/Makefile @@ -71,7 +71,11 @@ links: Windows/cd_defs.h Windows/cdenable Windows/extfs_windows.cpp \ Windows/posix_emu.cpp Windows/posix_emu.h Windows/sys_windows.cpp \ Windows/timer_windows.cpp Windows/util_windows.cpp \ - Windows/util_windows.h Windows/xpram_windows.cpp'; \ + Windows/util_windows.h Windows/xpram_windows.cpp \ + Windows/kernel_windows.h Windows/kernel_windows.cpp \ + Windows/serial_windows.cpp Windows/router Windows/b2ether \ + Windows/ether_windows.h Windows/ether_windows.cpp \ + Windows/serial_windows.cpp'; \ PREFIX="`pwd`/"; case $(B2_TOPDIR) in /*) PREFIX="";; esac; \ for i in $$list; do \ echo $$i; \ diff --git a/SheepShaver/src/Windows/Makefile.in b/SheepShaver/src/Windows/Makefile.in index 89de42f7..826fa1cc 100755 --- a/SheepShaver/src/Windows/Makefile.in +++ b/SheepShaver/src/Windows/Makefile.in @@ -40,17 +40,21 @@ HOST_LDFLAGS = ## Files UNIXSRCS = vm_alloc.cpp vm_alloc.h sigsegv.cpp sigsegv.h video_vosf.h video_blit.cpp video_blit.h +ROUTERSRCS = router/arp.cpp router/dump.cpp router/dynsockets.cpp router/ftp.cpp \ + router/icmp.cpp router/mib/interfaces.cpp router/iphelp.cpp router/ipsocket.cpp \ + router/mib/mibaccess.cpp router/router.cpp router/tcp.cpp router/udp.cpp b2ether/packet32.cpp + SRCS = ../main.cpp main_windows.cpp ../prefs.cpp ../prefs_items.cpp prefs_windows.cpp \ sys_windows.cpp cdenable/cache.cpp cdenable/eject_nt.cpp cdenable/ntcd.cpp \ ../rom_patches.cpp ../rsrc_patches.cpp ../emul_op.cpp ../name_registry.cpp \ ../macos_util.cpp ../timer.cpp timer_windows.cpp ../xpram.cpp xpram_windows.cpp \ ../adb.cpp ../sony.cpp ../disk.cpp ../cdrom.cpp ../scsi.cpp ../dummy/scsi_dummy.cpp \ ../gfxaccel.cpp ../video.cpp ../SDL/video_sdl.cpp video_blit.cpp \ - ../audio.cpp ../SDL/audio_sdl.cpp ../ether.cpp ../dummy/ether_dummy.cpp \ - ../thunks.cpp ../serial.cpp ../dummy/serial_dummy.cpp ../extfs.cpp extfs_windows.cpp \ + ../audio.cpp ../SDL/audio_sdl.cpp ../ether.cpp ether_windows.cpp \ + ../thunks.cpp ../serial.cpp serial_windows.cpp ../extfs.cpp extfs_windows.cpp \ about_window_windows.cpp ../user_strings.cpp user_strings_windows.cpp \ - ../dummy/prefs_editor_dummy.cpp clip_windows.cpp util_windows.cpp \ - vm_alloc.cpp sigsegv.cpp posix_emu.cpp SheepShaver.rc $(CPUSRCS) + ../dummy/prefs_editor_dummy.cpp clip_windows.cpp util_windows.cpp kernel_windows.cpp \ + vm_alloc.cpp sigsegv.cpp posix_emu.cpp SheepShaver.rc $(CPUSRCS) $(ROUTERSRCS) APP = SheepShaver.exe ## Rules diff --git a/SheepShaver/src/Windows/main_windows.cpp b/SheepShaver/src/Windows/main_windows.cpp index cfedf5af..03e18c77 100755 --- a/SheepShaver/src/Windows/main_windows.cpp +++ b/SheepShaver/src/Windows/main_windows.cpp @@ -44,6 +44,7 @@ #include "vm_alloc.h" #include "sigsegv.h" #include "util_windows.h" +#include "kernel_windows.h" #define DEBUG 0 #include "debug.h" @@ -205,6 +206,9 @@ int main(int argc, char **argv) if (!check_drivers()) QuitEmulator(); + // Load win32 libraries + KernelInit(); + // FIXME: default to DIB driver if (getenv("SDL_VIDEODRIVER") == NULL) putenv("SDL_VIDEODRIVER=windib"); @@ -453,6 +457,9 @@ static void Quit(void) // Exit preferences PrefsExit(); + // Release win32 libraries + KernelExit(); + #ifdef ENABLE_MON // Exit mon mon_exit(); diff --git a/SheepShaver/src/Windows/prefs_windows.cpp b/SheepShaver/src/Windows/prefs_windows.cpp index 0ce017ef..6b926fdb 100755 --- a/SheepShaver/src/Windows/prefs_windows.cpp +++ b/SheepShaver/src/Windows/prefs_windows.cpp @@ -48,6 +48,14 @@ prefs_desc platform_prefs_items[] = { {"debugextfs", TYPE_BOOLEAN, false, "debug extfs system"}, {"extdrives", TYPE_STRING, false, "define allowed extfs drives"}, {"pollmedia", TYPE_BOOLEAN, false, "poll for new media (e.g. cd, floppy)"}, + {"etherpermanentaddress", TYPE_BOOLEAN, false, "use permanent NIC address to identify itself"}, + {"ethermulticastmode", TYPE_INT32, false, "how to multicast packets"}, + {"etherfakeaddress", TYPE_STRING, false, "optional fake hardware address"}, + {"routerenabled", TYPE_BOOLEAN, false, "enable NAT/Router module"}, + {"ftp_port_list", TYPE_STRING, false, "FTP ports list"}, + {"tcp_port", TYPE_STRING, false, "TCP ports list"}, + {"portfile0", TYPE_STRING, false, "output file for serial port 0"}, + {"portfile1", TYPE_STRING, false, "output file for serial port 1"}, {NULL, TYPE_END, false, NULL} // End of list }; @@ -126,4 +134,12 @@ void AddPlatformPrefsDefaults(void) PrefsAddBool("ignoresegv", false); #endif PrefsAddBool("idlewait", true); + PrefsReplaceBool("etherpermanentaddress", true); + PrefsReplaceInt32("ethermulticastmode", 0); + PrefsReplaceBool("routerenabled", false); + PrefsReplaceString("ftp_port_list", "21"); + PrefsReplaceString("seriala", "COM1"); + PrefsReplaceString("serialb", "COM2"); + PrefsReplaceString("portfile0", "C:\\B2TEMP0.OUT"); + PrefsReplaceString("portfile1", "C:\\B2TEMP1.OUT"); }