Merge branch 'master' into experimental
This commit is contained in:
BIN
src/86box.cfg
Normal file
BIN
src/86box.cfg
Normal file
Binary file not shown.
@@ -1,16 +1,14 @@
|
||||
#ifdef __amd64__
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "ibm.h"
|
||||
#include "../ibm.h"
|
||||
#include "../mem.h"
|
||||
#include "cpu.h"
|
||||
#include "x86.h"
|
||||
#include "x86_flags.h"
|
||||
#include "x86_ops.h"
|
||||
#include "x87.h"
|
||||
#include "mem.h"
|
||||
|
||||
#include "386_common.h"
|
||||
|
||||
#include "codegen.h"
|
||||
#include "codegen_ops.h"
|
||||
#include "codegen_ops_x86-64.h"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#
|
||||
# Modified Makefile for Win32 MinGW 32-bit environment.
|
||||
#
|
||||
# Version: @(#)Makefile.mingw 1.0.12 2017/05/12
|
||||
# Version: @(#)Makefile.mingw 1.0.13 2017/05/17
|
||||
#
|
||||
# Authors: Kotori, <oubattler@gmail.com>
|
||||
# Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -29,20 +29,24 @@ STUFF = -DDEV_BRANCH
|
||||
EXTRAS =
|
||||
|
||||
# Do we want a debugging build?
|
||||
DEBUG = n
|
||||
DEBUG = y
|
||||
OPTIM = n
|
||||
X64 = n
|
||||
|
||||
# Where is the WinPcap DLL ?
|
||||
PCAPDLL = C:\\Windows\\System32\\wpcap.dll
|
||||
|
||||
|
||||
#########################################################################
|
||||
# Nothing should need changing from here on.. #
|
||||
#########################################################################
|
||||
VPATH = . cpu sound sound/resid-fp video lzf slirp
|
||||
VPATH = . cpu sound sound/resid-fp video lzf slirp win
|
||||
PLAT = win/
|
||||
CPP = g++.exe
|
||||
CC = gcc.exe
|
||||
WINDRES = windres.exe
|
||||
|
||||
OPTS = -DWIN32 $(EXTRAS) $(STUFF)
|
||||
OPTS = -DWIN32 -I$(PLAT) $(EXTRAS) $(STUFF)
|
||||
ifeq ($(DEBUG), y)
|
||||
ifeq ($(VRAMDUMP), y)
|
||||
DFLAGS = -march=i686 -ggdb -DDEBUG -DENABLE_VRAM_DUMP
|
||||
@@ -129,7 +133,7 @@ DEVOBJ = bugger.o lpt.o serial.o \
|
||||
disc_86f.o disc_fdi.o disc_imd.o disc_img.o \
|
||||
disc_random.o disc_td0.o \
|
||||
cdrom.o \
|
||||
cdrom-dosbox.o cdrom-image.o cdrom-ioctl.o cdrom-null.o
|
||||
cdrom_dosbox.o cdrom_image.o cdrom_ioctl.o cdrom_null.o
|
||||
USBOBJ = usb.o
|
||||
NETOBJ = network.o \
|
||||
net_pcap.o net_slirp.o \
|
||||
@@ -174,12 +178,12 @@ VIDOBJ = video.o \
|
||||
vid_pc1512.o vid_pc1640.o vid_pc200.o \
|
||||
vid_tandy.o vid_tandysl.o
|
||||
WINOBJ = win.o \
|
||||
win-d3d.o win-d3d-fs.o \
|
||||
win-ddraw.o win-ddraw-fs.o win-ddraw-screenshot.o \
|
||||
win-language.o win-status.o win-opendir.o \
|
||||
win-video.o win-serial.o win-mouse.o \
|
||||
win-joystick.o win-midi.o \
|
||||
win-settings.o win-deviceconfig.o win-joystickconfig.o \
|
||||
win_d3d.o win_d3d-fs.o \
|
||||
win_ddraw.o win_ddraw-fs.o win_ddraw-screenshot.o \
|
||||
win_language.o win_status.o win_opendir.o \
|
||||
win_video.o win_serial.o win_mouse.o \
|
||||
win_joystick.o win_midi.o \
|
||||
win_settings.o win_deviceconfig.o win_joystickconfig.o \
|
||||
86Box.res
|
||||
OBJ = $(MAINOBJ) $(CPUOBJ) $(SYSOBJ) $(DEVOBJ) $(USBOBJ) \
|
||||
$(NETOBJ) $(SCSIOBJ) $(SNDOBJ) $(VIDOBJ) $(WINOBJ)
|
||||
@@ -197,7 +201,7 @@ LIBS = -mwindows -lcomctl32 -lwinmm -lopenal.dll -lopenal -lddraw \
|
||||
# Build rules.
|
||||
%.o: %.c
|
||||
@echo $<
|
||||
@$(CC) $(CFLAGS) -c $<
|
||||
$(CC) $(CFLAGS) -c $<
|
||||
|
||||
%.o: %.cc
|
||||
@echo $<
|
||||
@@ -236,11 +240,15 @@ clean:
|
||||
|
||||
86Box.res: 86Box.rc
|
||||
@echo Processing $<
|
||||
@$(WINDRES) $(RFLAGS) -i 86Box.rc -o 86Box.res
|
||||
@$(WINDRES) $(RFLAGS) -i win/86Box.rc -o 86Box.res
|
||||
|
||||
libwpcapdelay.a: $(PCAPDLL)
|
||||
@dlltool --export-all-symbols --output-def wpcap.def $(PCAPDLL)
|
||||
@dlltool --def wpcap.def --output-delaylib libwpcapdelay.a
|
||||
|
||||
pcap_if.res: pcap_if.rc
|
||||
@echo Processing $<
|
||||
@$(WINDRES) $(RFLAGS) -i pcap_if.rc -o pcap_if.res
|
||||
@$(WINDRES) $(RFLAGS) -i win/pcap_if.rc -o pcap_if.res
|
||||
|
||||
|
||||
# End of Makefile.mingw.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#include "../io.h"
|
||||
#include "../pic.h"
|
||||
#include "../timer.h"
|
||||
#include "../plat-midi.h"
|
||||
#include "../win/plat_midi.h" /*YUCK*/
|
||||
#include "snd_mpu401.h"
|
||||
|
||||
#include <stdarg.h>
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "../io.h"
|
||||
#include "../pic.h"
|
||||
#include "../dma.h"
|
||||
#include "../plat-midi.h"
|
||||
#include "../win/plat_midi.h" /*YUCK*/
|
||||
#include "../timer.h"
|
||||
#include "sound.h"
|
||||
#include "snd_mpu401.h"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
#include "vid_cga.h"
|
||||
#include "vid_cga_comp.h"
|
||||
#ifndef __unix
|
||||
#include "../win-cgapal.h"
|
||||
# include "../win/win_cgapal.h" /*YUCK*/
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "video.h"
|
||||
#include "vid_hercules.h"
|
||||
#ifndef __unix
|
||||
#include "../win-cgapal.h"
|
||||
# include "../win/win_cgapal.h" /*YUCK*/
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "video.h"
|
||||
#include "vid_mda.h"
|
||||
#ifndef __unix
|
||||
#include "../win-cgapal.h"
|
||||
# include "../win/win_cgapal.h" /*YUCK*/
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
#include "video.h"
|
||||
#include "vid_svga.h"
|
||||
#ifndef __unix
|
||||
#include "../win-cgapal.h"
|
||||
# include "../win/win_cgapal.h" /*YUCK*/
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Definitions for the platform OpenDir module.
|
||||
*
|
||||
* Version: @(#)plat-dir.h 1.0.1 2017/05/12
|
||||
* Version: @(#)plat_dir.h 1.0.1 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Copyright 2017 Fred N. van Kempen.
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Definitions for the Bottom Half of the SERIAL card.
|
||||
*
|
||||
* Version: @(#)plat-serial.h 1.0.3 2017/05/06
|
||||
* Version: @(#)plat_serial.h 1.0.3 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Copyright 2017 Fred N. van Kempen.
|
||||
@@ -16,39 +16,39 @@
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdint.h>
|
||||
#include "86box.h"
|
||||
#include "device.h"
|
||||
#include "disc.h"
|
||||
#include "fdd.h"
|
||||
#include "hdd.h"
|
||||
#include "ibm.h"
|
||||
#include "cpu/cpu.h"
|
||||
#include "mem.h"
|
||||
#include "rom.h"
|
||||
#include "nvr.h"
|
||||
#include "thread.h"
|
||||
#include "config.h"
|
||||
#include "model.h"
|
||||
#include "ide.h"
|
||||
#include "cdrom.h"
|
||||
#include "cdrom-null.h"
|
||||
#include "cdrom-ioctl.h"
|
||||
#include "cdrom-image.h"
|
||||
#include "video/video.h"
|
||||
#include "video/vid_ega.h"
|
||||
#include "plat-keyboard.h"
|
||||
#include "plat-mouse.h"
|
||||
#include "plat-midi.h"
|
||||
#include "mouse.h"
|
||||
#include "sound/sound.h"
|
||||
#include "sound/snd_dbopl.h"
|
||||
#include "../86box.h"
|
||||
#include "../device.h"
|
||||
#include "../disc.h"
|
||||
#include "../fdd.h"
|
||||
#include "../hdd.h"
|
||||
#include "../ibm.h"
|
||||
#include "../cpu/cpu.h"
|
||||
#include "../mem.h"
|
||||
#include "../rom.h"
|
||||
#include "../nvr.h"
|
||||
#include "../thread.h"
|
||||
#include "../config.h"
|
||||
#include "../model.h"
|
||||
#include "../ide.h"
|
||||
#include "../cdrom.h"
|
||||
#include "../cdrom_null.h"
|
||||
#include "../cdrom_ioctl.h"
|
||||
#include "../cdrom_image.h"
|
||||
#include "../video/video.h"
|
||||
#include "../video/vid_ega.h"
|
||||
#include "../mouse.h"
|
||||
#include "../sound/sound.h"
|
||||
#include "../sound/snd_dbopl.h"
|
||||
#include "plat_keyboard.h"
|
||||
#include "plat_mouse.h"
|
||||
#include "plat_midi.h"
|
||||
|
||||
#include "win.h"
|
||||
#include "win-ddraw.h"
|
||||
#include "win-ddraw-fs.h"
|
||||
#include "win-d3d.h"
|
||||
#include "win-d3d-fs.h"
|
||||
#include "win-language.h"
|
||||
#include "win_ddraw.h"
|
||||
#include "win_ddraw-fs.h"
|
||||
#include "win_d3d.h"
|
||||
#include "win_d3d-fs.h"
|
||||
#include "win_language.h"
|
||||
#include "resource.h"
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* Copyright holders: Riley
|
||||
see COPYING for more details
|
||||
|
||||
win-crashdump.c : Windows exception handler to make a crash dump just before a crash happens.
|
||||
win_crashdump.c : Windows exception handler to make a crash dump just before a crash happens.
|
||||
*/
|
||||
#define _WIN32_WINNT 0x0501
|
||||
#include <windows.h>
|
||||
@@ -9,8 +9,8 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include "86box.h"
|
||||
#include "win-crashdump.h"
|
||||
#include "../86box.h"
|
||||
#include "win_crashdump.h"
|
||||
|
||||
PVOID hExceptionHandler;
|
||||
char* ExceptionHandlerBuffer;
|
||||
@@ -182,4 +182,4 @@ void InitCrashDump() {
|
||||
ExceptionHandlerBuffer = malloc(ExceptionHandlerBufferSize);
|
||||
// Register the exception handler. Zero first argument means this exception handler gets called last, therefore, crash dump is only made, when a crash is going to happen.
|
||||
hExceptionHandler = AddVectoredExceptionHandler(0,MakeCrashDump);
|
||||
}
|
||||
}
|
||||
@@ -8,11 +8,11 @@
|
||||
#include <d3d9.h>
|
||||
#undef BITMAP
|
||||
#include <D3dx9tex.h>
|
||||
#include "86box.h"
|
||||
#include "video/video.h"
|
||||
#include "win-d3d-fs.h"
|
||||
#include "../86box.h"
|
||||
#include "../video/video.h"
|
||||
#include "win.h"
|
||||
#include "win-cgapal.h"
|
||||
#include "win_d3d-fs.h"
|
||||
#include "win_cgapal.h"
|
||||
#include "resource.h"
|
||||
|
||||
|
||||
@@ -7,10 +7,11 @@
|
||||
#include <d3d9.h>
|
||||
#undef BITMAP
|
||||
#include <D3dx9tex.h>
|
||||
#include "win.h"
|
||||
#include "win_d3d.h"
|
||||
#include "../video/video.h"
|
||||
#include "win_cgapal.h"
|
||||
#include "resource.h"
|
||||
#include "win-d3d.h"
|
||||
#include "video/video.h"
|
||||
#include "win-cgapal.h"
|
||||
|
||||
|
||||
extern "C" void fatal(const char *format, ...);
|
||||
@@ -6,10 +6,10 @@
|
||||
#define BITMAP WINDOWS_BITMAP
|
||||
#include <ddraw.h>
|
||||
#undef BITMAP
|
||||
#include "win-ddraw-fs.h"
|
||||
#include "win-ddraw-screenshot.h"
|
||||
#include "video/video.h"
|
||||
#include "win-cgapal.h"
|
||||
#include "../video/video.h"
|
||||
#include "win_ddraw-fs.h"
|
||||
#include "win_ddraw-screenshot.h"
|
||||
#include "win_cgapal.h"
|
||||
|
||||
|
||||
extern "C" void fatal(const char *format, ...);
|
||||
@@ -7,10 +7,10 @@
|
||||
#define BITMAP WINDOWS_BITMAP
|
||||
#include <ddraw.h>
|
||||
#undef BITMAP
|
||||
#include "../video/video.h"
|
||||
#include "win.h"
|
||||
#include "win-ddraw-screenshot.h"
|
||||
#include "win-language.h"
|
||||
#include "video/video.h"
|
||||
#include "win_ddraw-screenshot.h"
|
||||
#include "win_language.h"
|
||||
|
||||
|
||||
extern "C" void fatal(const char *format, ...);
|
||||
@@ -7,10 +7,10 @@
|
||||
#define BITMAP WINDOWS_BITMAP
|
||||
#include <ddraw.h>
|
||||
#undef BITMAP
|
||||
#include "win-ddraw.h"
|
||||
#include "win-ddraw-screenshot.h"
|
||||
#include "video/video.h"
|
||||
#include "win-cgapal.h"
|
||||
#include "../video/video.h"
|
||||
#include "win_ddraw.h"
|
||||
#include "win_ddraw-screenshot.h"
|
||||
#include "win_cgapal.h"
|
||||
|
||||
|
||||
extern "C" void fatal(const char *format, ...);
|
||||
@@ -6,9 +6,9 @@
|
||||
#include <windowsx.h>
|
||||
#undef BITMAP
|
||||
|
||||
#include "ibm.h"
|
||||
#include "config.h"
|
||||
#include "device.h"
|
||||
#include "../ibm.h"
|
||||
#include "../config.h"
|
||||
#include "../device.h"
|
||||
#include "resource.h"
|
||||
#include "win.h"
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
#include <math.h>
|
||||
#include <stdint.h>
|
||||
extern "C" {
|
||||
#include "device.h"
|
||||
#include "gameport.h"
|
||||
#include "../device.h"
|
||||
#include "../gameport.h"
|
||||
}
|
||||
#include "plat-joystick.h"
|
||||
#include "plat_joystick.h"
|
||||
#include "win.h"
|
||||
|
||||
extern "C" int video_fullscreen;
|
||||
@@ -6,11 +6,11 @@
|
||||
#include <windowsx.h>
|
||||
#undef BITMAP
|
||||
|
||||
#include "ibm.h"
|
||||
#include "config.h"
|
||||
#include "device.h"
|
||||
#include "gameport.h"
|
||||
#include "plat-joystick.h"
|
||||
#include "../ibm.h"
|
||||
#include "../config.h"
|
||||
#include "../device.h"
|
||||
#include "../gameport.h"
|
||||
#include "plat_joystick.h"
|
||||
#include "resource.h"
|
||||
#include "win.h"
|
||||
|
||||
@@ -10,12 +10,12 @@
|
||||
|
||||
#include <commdlg.h>
|
||||
|
||||
#include "ibm.h"
|
||||
#include "device.h"
|
||||
#include "ide.h"
|
||||
#include "../ibm.h"
|
||||
#include "../device.h"
|
||||
#include "../ide.h"
|
||||
#include "resource.h"
|
||||
#include "win.h"
|
||||
#include "win-language.h"
|
||||
#include "win_language.h"
|
||||
|
||||
LCID dwLanguage;
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
*/
|
||||
#include <windows.h>
|
||||
#include <mmsystem.h>
|
||||
#include "ibm.h"
|
||||
#include "config.h"
|
||||
#include "plat-midi.h"
|
||||
#include "../ibm.h"
|
||||
#include "../config.h"
|
||||
#include "plat_midi.h"
|
||||
|
||||
int midi_id;
|
||||
static HMIDIOUT midi_out_device = NULL;
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
#define DIRECTINPUT_VERSION 0x0800
|
||||
#include <dinput.h>
|
||||
#include "plat-mouse.h"
|
||||
#include "plat_mouse.h"
|
||||
#include "win.h"
|
||||
|
||||
extern "C" int video_fullscreen;
|
||||
@@ -10,7 +10,7 @@
|
||||
*
|
||||
* Based on old original code @(#)dir_win32.c 1.2.0 2007/04/19
|
||||
*
|
||||
* Version: @(#)win-opendir.c 1.0.1 2017/05/12
|
||||
* Version: @(#)win_opendir.c 1.0.1 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Copyright 1998-2007 MicroWalt Corporation
|
||||
@@ -23,8 +23,8 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "ibm.h"
|
||||
#include "plat-dir.h"
|
||||
#include "../ibm.h"
|
||||
#include "plat_dir.h"
|
||||
|
||||
|
||||
#ifdef UNICODE
|
||||
@@ -12,7 +12,7 @@
|
||||
* Windows and UNIX systems, with support for FTDI and Prolific
|
||||
* USB ports. Support for these has been removed.
|
||||
*
|
||||
* Version: @(#)win-serial.c 1.0.2 2017/05/05
|
||||
* Version: @(#)win_serial.c 1.0.2 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Copyright 2017 Fred N. van Kempen.
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#define BHTTY_C
|
||||
#include "plat-serial.h"
|
||||
#include "plat_serial.h"
|
||||
|
||||
|
||||
extern void pclog(char *__fmt, ...);
|
||||
@@ -9,29 +9,29 @@
|
||||
|
||||
#include <commctrl.h>
|
||||
#include <inttypes.h>
|
||||
#include "ibm.h"
|
||||
#include "mem.h"
|
||||
#include "cpu/cpu.h"
|
||||
#include "nvr.h"
|
||||
#include "model.h"
|
||||
#include "device.h"
|
||||
#include "cdrom.h"
|
||||
#include "disc.h"
|
||||
#include "fdd.h"
|
||||
#include "hdd.h"
|
||||
#include "ide.h"
|
||||
#include "scsi.h"
|
||||
#include "scsi_buslogic.h"
|
||||
#include "network.h"
|
||||
#include "plat-midi.h"
|
||||
#include "sound/sound.h"
|
||||
#include "sound/snd_dbopl.h"
|
||||
#include "video/video.h"
|
||||
#include "video/vid_voodoo.h"
|
||||
#include "gameport.h"
|
||||
#include "mouse.h"
|
||||
#include "../ibm.h"
|
||||
#include "../mem.h"
|
||||
#include "../cpu/cpu.h"
|
||||
#include "../nvr.h"
|
||||
#include "../model.h"
|
||||
#include "../device.h"
|
||||
#include "../cdrom.h"
|
||||
#include "../disc.h"
|
||||
#include "../fdd.h"
|
||||
#include "../hdd.h"
|
||||
#include "../ide.h"
|
||||
#include "../scsi.h"
|
||||
#include "../scsi_buslogic.h"
|
||||
#include "../network.h"
|
||||
#include "../sound/sound.h"
|
||||
#include "../sound/snd_dbopl.h"
|
||||
#include "../video/video.h"
|
||||
#include "../video/vid_voodoo.h"
|
||||
#include "../gameport.h"
|
||||
#include "../mouse.h"
|
||||
#include "plat_midi.h"
|
||||
#include "win.h"
|
||||
#include "win-language.h"
|
||||
#include "win_language.h"
|
||||
#include "resource.h"
|
||||
|
||||
|
||||
@@ -82,8 +82,9 @@ static int settings_scsi_to_list[20], settings_list_to_scsi[20];
|
||||
static int settings_network_to_list[20], settings_list_to_network[20];
|
||||
static char *hdd_names[16];
|
||||
|
||||
|
||||
/* This does the initial read of global variables into the temporary ones. */
|
||||
static void win_settings_init()
|
||||
static void win_settings_init(void)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
@@ -115,8 +116,8 @@ static void win_settings_init()
|
||||
|
||||
/* Network category */
|
||||
temp_net_type = network_type;
|
||||
memset(temp_pcap_dev, 0, 520);
|
||||
strcpy(temp_pcap_dev, pcap_dev);
|
||||
memset(temp_pcap_dev, '\0', sizeof(temp_pcap_dev));
|
||||
strcpy(temp_pcap_dev, network_pcap);
|
||||
temp_net_card = network_card;
|
||||
|
||||
/* Peripherals category */
|
||||
@@ -146,8 +147,9 @@ static void win_settings_init()
|
||||
memcpy(temp_cdrom_drives, cdrom_drives, CDROM_NUM * sizeof(cdrom_drive_t));
|
||||
}
|
||||
|
||||
|
||||
/* This returns 1 if any variable has changed, 0 if not. */
|
||||
static int win_settings_changed()
|
||||
static int win_settings_changed(void)
|
||||
{
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
@@ -180,7 +182,7 @@ static int win_settings_changed()
|
||||
|
||||
/* Network category */
|
||||
i = i || (network_type != temp_net_type);
|
||||
i = i || strcmp(temp_pcap_dev, pcap_dev);
|
||||
i = i || strcmp(temp_pcap_dev, network_pcap);
|
||||
i = i || (network_card != temp_net_card);
|
||||
|
||||
/* Peripherals category */
|
||||
@@ -212,7 +214,8 @@ static int win_settings_changed()
|
||||
return i;
|
||||
}
|
||||
|
||||
static int settings_msgbox_reset()
|
||||
|
||||
static int settings_msgbox_reset(void)
|
||||
{
|
||||
int i = 0;
|
||||
int changed = 0;
|
||||
@@ -242,8 +245,9 @@ static int settings_msgbox_reset()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* This saves the settings back to the global variables. */
|
||||
static void win_settings_save()
|
||||
static void win_settings_save(void)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
@@ -276,8 +280,8 @@ static void win_settings_save()
|
||||
|
||||
/* Network category */
|
||||
network_type = temp_net_type;
|
||||
memset(pcap_dev, 0, 512);
|
||||
strcpy(pcap_dev, temp_pcap_dev);
|
||||
memset(network_pcap, '\0', sizeof(network_pcap));
|
||||
strcpy(network_pcap, temp_pcap_dev);
|
||||
network_card = temp_net_card;
|
||||
|
||||
/* Peripherals category */
|
||||
@@ -324,6 +328,7 @@ static void win_settings_save()
|
||||
update_status_bar_panes(hwndStatus);
|
||||
}
|
||||
|
||||
|
||||
static void win_settings_machine_recalc_cpu(HWND hdlg)
|
||||
{
|
||||
HWND h;
|
||||
@@ -387,6 +392,7 @@ static void win_settings_machine_recalc_cpu(HWND hdlg)
|
||||
SendMessage(h, BM_SETCHECK, temp_fpu, 0);
|
||||
}
|
||||
|
||||
|
||||
static void win_settings_machine_recalc_cpu_m(HWND hdlg)
|
||||
{
|
||||
HWND h;
|
||||
@@ -416,6 +422,7 @@ static void win_settings_machine_recalc_cpu_m(HWND hdlg)
|
||||
free(lptsTemp);
|
||||
}
|
||||
|
||||
|
||||
static void win_settings_machine_recalc_model(HWND hdlg)
|
||||
{
|
||||
HWND h;
|
||||
@@ -482,6 +489,7 @@ static void win_settings_machine_recalc_model(HWND hdlg)
|
||||
free(lptsTemp);
|
||||
}
|
||||
|
||||
|
||||
static BOOL CALLBACK win_settings_machine_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND h;
|
||||
@@ -629,6 +637,7 @@ static BOOL CALLBACK win_settings_machine_proc(HWND hdlg, UINT message, WPARAM w
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
static void recalc_vid_list(HWND hdlg)
|
||||
{
|
||||
HWND h = GetDlgItem(hdlg, IDC_COMBO_VIDEO);
|
||||
@@ -674,6 +683,7 @@ static void recalc_vid_list(HWND hdlg)
|
||||
EnableWindow(h, ((models[model].flags & MODEL_PCI) && temp_voodoo) ? TRUE : FALSE);
|
||||
}
|
||||
|
||||
|
||||
static BOOL CALLBACK win_settings_video_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND h;
|
||||
@@ -959,6 +969,7 @@ static BOOL CALLBACK win_settings_input_proc(HWND hdlg, UINT message, WPARAM wPa
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
static void recalc_hdd_list(HWND hdlg, int model, int use_selected_hdd)
|
||||
{
|
||||
HWND h;
|
||||
@@ -1066,8 +1077,10 @@ static void recalc_hdd_list(HWND hdlg, int model, int use_selected_hdd)
|
||||
free(lptsTemp);
|
||||
}
|
||||
|
||||
|
||||
int valid_ide_irqs[11] = { 2, 3, 4, 5, 7, 9, 10, 11, 12, 14, 15 };
|
||||
|
||||
|
||||
int find_irq_in_array(int irq, int def)
|
||||
{
|
||||
int i = 0;
|
||||
@@ -1083,6 +1096,7 @@ int find_irq_in_array(int irq, int def)
|
||||
return 7 + def;
|
||||
}
|
||||
|
||||
|
||||
static char midi_dev_name_buf[512];
|
||||
|
||||
static BOOL CALLBACK win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
@@ -1226,6 +1240,7 @@ static BOOL CALLBACK win_settings_sound_proc(HWND hdlg, UINT message, WPARAM wPa
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
static BOOL CALLBACK win_settings_peripherals_proc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
|
||||
{
|
||||
HWND h;
|
||||
@@ -1424,6 +1439,7 @@ static BOOL CALLBACK win_settings_peripherals_proc(HWND hdlg, UINT message, WPAR
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
int net_ignore_message = 0;
|
||||
|
||||
static void network_recalc_combos(HWND hdlg)
|
||||
@@ -1433,7 +1449,7 @@ static void network_recalc_combos(HWND hdlg)
|
||||
net_ignore_message = 1;
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_COMBOPCAP);
|
||||
if (temp_net_type == 1)
|
||||
if (temp_net_type == NET_TYPE_PCAP)
|
||||
{
|
||||
EnableWindow(h, TRUE);
|
||||
}
|
||||
@@ -1443,11 +1459,12 @@ static void network_recalc_combos(HWND hdlg)
|
||||
}
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_COMBONET);
|
||||
if (temp_net_type == 0)
|
||||
if (temp_net_type == NET_TYPE_SLIRP)
|
||||
{
|
||||
EnableWindow(h, TRUE);
|
||||
}
|
||||
else if ((temp_net_type == 1) && (network_dev_to_id(temp_pcap_dev) > 0))
|
||||
else if ((temp_net_type == NET_TYPE_PCAP) &&
|
||||
(network_dev_to_id(temp_pcap_dev) > 0))
|
||||
{
|
||||
EnableWindow(h, TRUE);
|
||||
}
|
||||
@@ -1457,11 +1474,14 @@ static void network_recalc_combos(HWND hdlg)
|
||||
}
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_CONFIGURENET);
|
||||
if (network_card_has_config(temp_net_card) && (temp_net_type == 0))
|
||||
if (network_card_has_config(temp_net_card) &&
|
||||
(temp_net_type == NET_TYPE_SLIRP))
|
||||
{
|
||||
EnableWindow(h, TRUE);
|
||||
}
|
||||
else if (network_card_has_config(temp_net_card) && (temp_net_type == 1) && (network_dev_to_id(temp_pcap_dev) > 0))
|
||||
else if (network_card_has_config(temp_net_card) &&
|
||||
(temp_net_type == NET_TYPE_PCAP) &&
|
||||
(network_dev_to_id(temp_pcap_dev) > 0))
|
||||
{
|
||||
EnableWindow(h, TRUE);
|
||||
}
|
||||
@@ -1490,10 +1510,10 @@ static BOOL CALLBACK win_settings_network_proc(HWND hdlg, UINT message, WPARAM w
|
||||
SendMessage(h, CB_ADDSTRING, 0, (LPARAM) L"None");
|
||||
SendMessage(h, CB_ADDSTRING, 0, (LPARAM) L"PCap");
|
||||
SendMessage(h, CB_ADDSTRING, 0, (LPARAM) L"SLiRP");
|
||||
SendMessage(h, CB_SETCURSEL, temp_net_type + 1, 0);
|
||||
SendMessage(h, CB_SETCURSEL, temp_net_type, 0);
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_COMBOPCAP);
|
||||
if (temp_net_type == 0)
|
||||
if (temp_net_type == NET_TYPE_PCAP)
|
||||
{
|
||||
EnableWindow(h, TRUE);
|
||||
}
|
||||
@@ -1503,9 +1523,9 @@ static BOOL CALLBACK win_settings_network_proc(HWND hdlg, UINT message, WPARAM w
|
||||
}
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_COMBOPCAP);
|
||||
for (c = 0; c < netdev_num; c++)
|
||||
for (c = 0; c < network_ndev; c++)
|
||||
{
|
||||
mbstowcs(lptsTemp, netdev_list[c].description, strlen(netdev_list[c].description) + 1);
|
||||
mbstowcs(lptsTemp, network_devs[c].description, strlen(network_devs[c].description) + 1);
|
||||
SendMessage(h, CB_ADDSTRING, 0, (LPARAM) lptsTemp);
|
||||
}
|
||||
SendMessage(h, CB_SETCURSEL, network_dev_to_id(temp_pcap_dev), 0);
|
||||
@@ -1517,7 +1537,7 @@ static BOOL CALLBACK win_settings_network_proc(HWND hdlg, UINT message, WPARAM w
|
||||
{
|
||||
char *s = network_card_getname(c);
|
||||
|
||||
if (!s[0])
|
||||
if (s[0] == '\0')
|
||||
{
|
||||
break;
|
||||
}
|
||||
@@ -1559,7 +1579,7 @@ static BOOL CALLBACK win_settings_network_proc(HWND hdlg, UINT message, WPARAM w
|
||||
}
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_COMBONETTYPE);
|
||||
temp_net_type = SendMessage(h, CB_GETCURSEL, 0, 0) - 1;
|
||||
temp_net_type = SendMessage(h, CB_GETCURSEL, 0, 0);
|
||||
|
||||
network_recalc_combos(hdlg);
|
||||
break;
|
||||
@@ -1571,8 +1591,8 @@ static BOOL CALLBACK win_settings_network_proc(HWND hdlg, UINT message, WPARAM w
|
||||
}
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_COMBOPCAP);
|
||||
memset(temp_pcap_dev, 0, 520);
|
||||
strcpy(temp_pcap_dev, netdev_list[SendMessage(h, CB_GETCURSEL, 0, 0)].device);
|
||||
memset(temp_pcap_dev, '\0', sizeof(temp_pcap_dev));
|
||||
strcpy(temp_pcap_dev, network_devs[SendMessage(h, CB_GETCURSEL, 0, 0)].device);
|
||||
|
||||
network_recalc_combos(hdlg);
|
||||
break;
|
||||
@@ -1605,11 +1625,11 @@ static BOOL CALLBACK win_settings_network_proc(HWND hdlg, UINT message, WPARAM w
|
||||
|
||||
case WM_SAVESETTINGS:
|
||||
h = GetDlgItem(hdlg, IDC_COMBONETTYPE);
|
||||
temp_net_type = SendMessage(h, CB_GETCURSEL, 0, 0) - 1;
|
||||
temp_net_type = SendMessage(h, CB_GETCURSEL, 0, 0);
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_COMBOPCAP);
|
||||
memset(temp_pcap_dev, 0, 520);
|
||||
strcpy(temp_pcap_dev, netdev_list[SendMessage(h, CB_GETCURSEL, 0, 0)].device);
|
||||
memset(temp_pcap_dev, '\0', sizeof(temp_pcap_dev));
|
||||
strcpy(temp_pcap_dev, network_devs[SendMessage(h, CB_GETCURSEL, 0, 0)].device);
|
||||
|
||||
h = GetDlgItem(hdlg, IDC_COMBONET);
|
||||
temp_net_card = settings_list_to_network[SendMessage(h, CB_GETCURSEL, 0, 0)];
|
||||
@@ -6,11 +6,11 @@
|
||||
#include <windowsx.h>
|
||||
#undef BITMAP
|
||||
|
||||
#include "ibm.h"
|
||||
#include "mem.h"
|
||||
#include "cpu/x86_ops.h"
|
||||
#include "cpu/codegen.h"
|
||||
#include "device.h"
|
||||
#include "../ibm.h"
|
||||
#include "../mem.h"
|
||||
#include "../cpu/x86_ops.h"
|
||||
#include "../cpu/codegen.h"
|
||||
#include "../device.h"
|
||||
#include "resource.h"
|
||||
#include "win.h"
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "video/video.h"
|
||||
#include "win-cgapal.h"
|
||||
#include "../video/video.h"
|
||||
#include "win_cgapal.h"
|
||||
|
||||
|
||||
BITMAP *screen;
|
||||
@@ -28,7 +28,7 @@
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
#include <sys/stat.h>
|
||||
#include "cdrom-dosbox.h"
|
||||
#include "cdrom_dosbox.h"
|
||||
|
||||
#if !defined(WIN32)
|
||||
#include <libgen.h>
|
||||
@@ -6,10 +6,10 @@
|
||||
#include <stdarg.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "cdrom-dosbox.h"
|
||||
#include "cdrom_dosbox.h"
|
||||
#include "cdrom.h"
|
||||
#include "cdrom-image.h"
|
||||
#include "cdrom-null.h"
|
||||
#include "cdrom_image.h"
|
||||
#include "cdrom_null.h"
|
||||
|
||||
#define __USE_LARGEFILE64
|
||||
#define _LARGEFILE_SOURCE
|
||||
@@ -10,7 +10,7 @@
|
||||
#include "ntddscsi.h"
|
||||
#include "ibm.h"
|
||||
#include "cdrom.h"
|
||||
#include "cdrom-ioctl.h"
|
||||
#include "cdrom_ioctl.h"
|
||||
#include "scsi.h"
|
||||
|
||||
#define MSFtoLBA(m,s,f) ((((m*60)+s)*75)+f)
|
||||
@@ -9,7 +9,7 @@
|
||||
#include <stdlib.h>
|
||||
#include "ibm.h"
|
||||
#include "ide.h"
|
||||
#include "cdrom-ioctl.h"
|
||||
#include "cdrom_ioctl.h"
|
||||
|
||||
static ATAPI ioctl_atapi;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
*/
|
||||
#include "ibm.h"
|
||||
#include "cdrom.h"
|
||||
#include "cdrom-ioctl.h"
|
||||
#include "cdrom_ioctl.h"
|
||||
|
||||
static CDROM null_cdrom;
|
||||
|
||||
515
src/config.c
515
src/config.c
File diff suppressed because it is too large
Load Diff
50
src/config.h
50
src/config.h
@@ -1,37 +1,39 @@
|
||||
/* Copyright holders: Sarah Walker
|
||||
see COPYING for more details
|
||||
*/
|
||||
int config_get_int(char *head, char *name, int def);
|
||||
char *config_get_string(char *head, char *name, char *def);
|
||||
wchar_t *config_get_wstring(char *head, char *name, wchar_t *def);
|
||||
void config_set_int(char *head, char *name, int val);
|
||||
void config_set_string(char *head, char *name, char *val);
|
||||
void config_set_wstring(char *head, char *name, wchar_t *val);
|
||||
|
||||
char *get_filename(char *s);
|
||||
wchar_t *get_filename_w(wchar_t *s);
|
||||
void append_filename(char *dest, char *s1, char *s2, int size);
|
||||
void append_filename_w(wchar_t *dest, wchar_t *s1, wchar_t *s2, int size);
|
||||
void put_backslash(char *s);
|
||||
void put_backslash_w(wchar_t *s);
|
||||
char *get_extension(char *s);
|
||||
|
||||
extern wchar_t config_file_default[256];
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
wchar_t *get_extension_w(wchar_t *s);
|
||||
extern int config_get_int(char *head, char *name, int def);
|
||||
extern char *config_get_string(char *head, char *name, char *def);
|
||||
extern wchar_t *config_get_wstring(char *head, char *name, wchar_t *def);
|
||||
extern void config_set_int(char *head, char *name, int val);
|
||||
extern void config_set_string(char *head, char *name, char *val);
|
||||
extern void config_set_wstring(char *head, char *name, wchar_t *val);
|
||||
|
||||
extern char *get_filename(char *s);
|
||||
extern wchar_t *get_filename_w(wchar_t *s);
|
||||
extern void append_filename(char *dest, char *s1, char *s2, int size);
|
||||
extern void append_filename_w(wchar_t *dest, wchar_t *s1, wchar_t *s2, int size);
|
||||
extern void put_backslash(char *s);
|
||||
extern void put_backslash_w(wchar_t *s);
|
||||
extern char *get_extension(char *s);
|
||||
|
||||
extern wchar_t *get_extension_w(wchar_t *s);
|
||||
|
||||
extern void config_load(wchar_t *fn);
|
||||
extern void config_save(wchar_t *fn);
|
||||
extern void config_dump(void);
|
||||
|
||||
extern void loadconfig(wchar_t *fn);
|
||||
extern void saveconfig(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
void config_load(wchar_t *fn);
|
||||
void config_save(wchar_t *fn);
|
||||
void config_dump(void);
|
||||
void config_free(void);
|
||||
|
||||
extern wchar_t config_file_default[256];
|
||||
|
||||
void loadconfig(wchar_t *fn);
|
||||
void saveconfig(void);
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
#include "device.h"
|
||||
#include "io.h"
|
||||
#include "timer.h"
|
||||
#include "plat-joystick.h"
|
||||
#include "gameport.h"
|
||||
#include "joystick_ch_flightstick_pro.h"
|
||||
#include "joystick_standard.h"
|
||||
#include "joystick_sw_pad.h"
|
||||
#include "joystick_tm_fcs.h"
|
||||
#include "plat_joystick.h"
|
||||
|
||||
|
||||
int joystick_type;
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
#include "timer.h"
|
||||
#include "gameport.h"
|
||||
#include "joystick_standard.h"
|
||||
#include "plat-joystick.h"
|
||||
#include "plat_joystick.h"
|
||||
|
||||
|
||||
static void *ch_flightstick_pro_init()
|
||||
{
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
#include "timer.h"
|
||||
#include "gameport.h"
|
||||
#include "joystick_standard.h"
|
||||
#include "plat-joystick.h"
|
||||
#include "plat_joystick.h"
|
||||
|
||||
|
||||
static void *joystick_standard_init()
|
||||
{
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
#include "timer.h"
|
||||
#include "gameport.h"
|
||||
#include "joystick_sw_pad.h"
|
||||
#include "plat-joystick.h"
|
||||
#include "plat_joystick.h"
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
#include "timer.h"
|
||||
#include "gameport.h"
|
||||
#include "joystick_standard.h"
|
||||
#include "plat-joystick.h"
|
||||
#include "plat_joystick.h"
|
||||
|
||||
|
||||
static void *tm_fcs_init()
|
||||
{
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
see COPYING for more details
|
||||
*/
|
||||
#include "ibm.h"
|
||||
#include "plat-keyboard.h"
|
||||
#include "plat_keyboard.h"
|
||||
#include "keyboard.h"
|
||||
|
||||
int keybsendcallback = 0;
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
* Based on an early driver for MINIX 1.5.
|
||||
* Based on the 86Box PS/2 mouse driver as a framework.
|
||||
*
|
||||
* Version: @(#)mouse_bus.c 1.0.4 2017/05/06
|
||||
* Version: @(#)mouse_bus.c 1.0.4 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Copyright 1989-2017 Fred N. van Kempen.
|
||||
@@ -44,7 +44,7 @@
|
||||
#include "pic.h"
|
||||
#include "mouse.h"
|
||||
#include "mouse_bus.h"
|
||||
#include "plat-mouse.h"
|
||||
#include "plat_mouse.h"
|
||||
|
||||
|
||||
#define ENABLE_3BTN 1 /* enable 3-button mode */
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
#include "keyboard_at.h"
|
||||
#include "mouse.h"
|
||||
#include "mouse_ps2.h"
|
||||
#include "plat-mouse.h"
|
||||
#include "plat_mouse.h"
|
||||
|
||||
|
||||
int mouse_scan = 0;
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
* NOTE: Its still a mess, but we're getting there. The file will
|
||||
* also implement an NE1000 for 8-bit ISA systems.
|
||||
*
|
||||
* Version: @(#)net_ne2000.c 1.0.3 2017/05/12
|
||||
* Version: @(#)net_ne2000.c 1.0.4 2017/05/17
|
||||
*
|
||||
* Authors: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Peter Grehan, grehan@iprg.nokia.com>
|
||||
@@ -49,9 +49,6 @@ typedef union {
|
||||
} bar_t;
|
||||
|
||||
|
||||
/* This stuff should go into the struct. --FvK */
|
||||
static uint8_t maclocal[6] = {0xac, 0xde, 0x48, 0x88, 0xbb, 0xaa};
|
||||
static uint8_t maclocal_pci[6] = {0xac, 0xde, 0x48, 0x88, 0xbb, 0xaa};
|
||||
#if ENABLE_NE2000_LOG
|
||||
static int nic_do_log = ENABLE_NE2000_LOG;
|
||||
#else
|
||||
@@ -216,6 +213,7 @@ typedef struct {
|
||||
int disable_netbios;
|
||||
int tx_timer_index;
|
||||
int tx_timer_active;
|
||||
uint8_t maclocal[6]; /* configured MAC (local) address */
|
||||
uint8_t pci_regs[256];
|
||||
uint8_t eeprom[128]; /* for RTL8029AS */
|
||||
rom_t bios_rom;
|
||||
@@ -1767,14 +1765,15 @@ nic_rom_init(nic_t *dev, wchar_t *s)
|
||||
}
|
||||
|
||||
|
||||
uint32_t
|
||||
ne2000_get_maclocal(void)
|
||||
/* Return the 'local' part of our configured MAC address. */
|
||||
static uint32_t
|
||||
nic_get_maclocal(nic_t *dev)
|
||||
{
|
||||
uint32_t temp;
|
||||
|
||||
temp = (((int) maclocal[3]) << 16);
|
||||
temp |= (((int) maclocal[4]) << 8);
|
||||
temp |= ((int) maclocal[5]);
|
||||
temp = (((int) dev->maclocal[3]) << 16);
|
||||
temp |= (((int) dev->maclocal[4]) << 8);
|
||||
temp |= ((int) dev->maclocal[5]);
|
||||
|
||||
return(temp);
|
||||
}
|
||||
@@ -1784,23 +1783,17 @@ static void *
|
||||
nic_init(int board)
|
||||
{
|
||||
uint32_t mac;
|
||||
uint8_t *ptr;
|
||||
nic_t *dev;
|
||||
|
||||
dev = malloc(sizeof(nic_t));
|
||||
memset(dev, 0x00, sizeof(nic_t));
|
||||
dev->board = board;
|
||||
dev->is_rtl8029as = (PCI && (board == NE2K_RTL8029AS)) ? 1 : 0;
|
||||
if (board == NE2K_RTL8029AS)
|
||||
{
|
||||
if (board == NE2K_RTL8029AS) {
|
||||
strcpy(dev->name, "RTL8029AS");
|
||||
}
|
||||
else if (board == NE2K_NE1000)
|
||||
{
|
||||
} else if (board == NE2K_NE1000) {
|
||||
strcpy(dev->name, "NE1000");
|
||||
}
|
||||
else
|
||||
{
|
||||
} else {
|
||||
strcpy(dev->name, "NE2000");
|
||||
}
|
||||
|
||||
@@ -1812,32 +1805,35 @@ nic_init(int board)
|
||||
dev->base_address = device_get_config_int("addr");
|
||||
}
|
||||
|
||||
/* See if we have a local MAC address configured. */
|
||||
mac = device_get_config_int_ex("mac", -1);
|
||||
|
||||
/* Set up our MAC address. */
|
||||
if (dev->is_rtl8029as) {
|
||||
maclocal[0] = 0x00; /* 00:20:18 (RTL 8029AS PCI vendor prefix). */
|
||||
maclocal[1] = 0x20;
|
||||
maclocal[2] = 0x18;
|
||||
dev->maclocal[0] = 0x00; /* 00:20:18 (RTL 8029AS PCI vendor prefix). */
|
||||
dev->maclocal[1] = 0x20;
|
||||
dev->maclocal[2] = 0x18;
|
||||
} else {
|
||||
maclocal[0] = 0x00; /* 00:00:D8 (NE2000 ISA vendor prefix). */
|
||||
maclocal[1] = 0x00;
|
||||
maclocal[2] = 0xD8;
|
||||
dev->maclocal[0] = 0x00; /* 00:00:D8 (NE2000 ISA vendor prefix). */
|
||||
dev->maclocal[1] = 0x00;
|
||||
dev->maclocal[2] = 0xD8;
|
||||
}
|
||||
ptr = maclocal;
|
||||
pclog(1, "MAClocal: mac=%08lx\n", mac);
|
||||
if (mac & 0xff000000) {
|
||||
/* Generating new MAC. */
|
||||
ptr[3] = disc_random_generate();
|
||||
ptr[4] = disc_random_generate();
|
||||
ptr[5] = disc_random_generate() | 1;
|
||||
device_set_config_int("mac", ne2000_get_maclocal());
|
||||
dev->maclocal[3] = disc_random_generate();
|
||||
dev->maclocal[4] = disc_random_generate();
|
||||
dev->maclocal[5] = disc_random_generate() | 1;
|
||||
device_set_config_int("mac", nic_get_maclocal(dev));
|
||||
} else {
|
||||
ptr[3] = (mac>>16) & 0xff;
|
||||
ptr[4] = (mac>>8) & 0xff;
|
||||
ptr[5] = (mac & 0xff) | 1;
|
||||
dev->maclocal[3] = (mac>>16) & 0xff;
|
||||
dev->maclocal[4] = (mac>>8) & 0xff;
|
||||
#if 1
|
||||
dev->maclocal[5] = (mac & 0xfe);
|
||||
#else
|
||||
dev->maclocal[5] = (mac & 0xff) | 1;
|
||||
#endif
|
||||
}
|
||||
memcpy(dev->physaddr, ptr, 6);
|
||||
memcpy(dev->physaddr, dev->maclocal, sizeof(dev->maclocal));
|
||||
|
||||
pclog(1,"%s: I/O=%04x, IRQ=%d, MAC=%02x:%02x:%02x:%02x:%02x:%02x BIOS=%d\n",
|
||||
dev->name, dev->base_address, dev->base_irq,
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Definitions for the NE2000 ethernet controller.
|
||||
*
|
||||
* Version: @(#)net_ne2000.h 1.0.2 2017/05/11
|
||||
* Version: @(#)net_ne2000.h 1.0.3 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
*/
|
||||
@@ -26,11 +26,4 @@ extern device_t ne2000_device;
|
||||
extern device_t rtl8029as_device;
|
||||
|
||||
|
||||
extern void ne2000_generate_maclocal(uint32_t mac);
|
||||
extern uint32_t ne2000_get_maclocal(void);
|
||||
|
||||
extern void ne2000_generate_maclocal_pci(uint32_t mac);
|
||||
extern uint32_t ne2000_get_maclocal_pci(void);
|
||||
|
||||
|
||||
#endif /*NET_NE2000_H*/
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Handle WinPcap library processing.
|
||||
*
|
||||
* Version: @(#)net_pcap.c 1.0.1 2017/05/11
|
||||
* Version: @(#)net_pcap.c 1.0.2 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
*/
|
||||
@@ -29,9 +29,6 @@ static thread_t *poll_tid;
|
||||
static NETRXCB poll_rx; /* network RX function to call */
|
||||
static void *poll_arg; /* network RX function arg */
|
||||
|
||||
int netdev_num;
|
||||
netdev_t netdev_list[512];
|
||||
|
||||
|
||||
#ifdef WALTJE
|
||||
int pcap_do_log = 1;
|
||||
@@ -108,8 +105,6 @@ poll_thread(void *arg)
|
||||
}
|
||||
|
||||
|
||||
char pcap_dev[512];
|
||||
|
||||
/* Initialize WinPcap for us. */
|
||||
int
|
||||
network_pcap_setup(uint8_t *mac, NETRXCB func, void *arg)
|
||||
@@ -135,11 +130,12 @@ network_pcap_setup(uint8_t *mac, NETRXCB func, void *arg)
|
||||
pclog("Initializing WinPcap, version %s\n", temp);
|
||||
|
||||
/* Get the value of our capture interface. */
|
||||
if (pcap_dev == NULL) {
|
||||
dev = network_pcap;
|
||||
if ((dev[0] == '\0') || !strcmp(dev, "none")) {
|
||||
pclog(" No network device configured!\n");
|
||||
return(-1);
|
||||
}
|
||||
pclog(" Network interface: '%s'\n", pcap_dev);
|
||||
pclog(" Network interface: '%s'\n", dev);
|
||||
|
||||
pcap = pcap_open_live(dev, /* interface name */
|
||||
1518, /* maximum packet size */
|
||||
@@ -227,16 +223,15 @@ network_devlist(netdev_t *list)
|
||||
pcap_if_t *devlist, *dev;
|
||||
int i = 0;
|
||||
|
||||
/* Note by Kotori: Add the first (and guaranteed to be always present) device - "None". */
|
||||
/* Create a first entry that's always there - needed by UI. */
|
||||
strcpy(list->device, "none");
|
||||
strcpy(list->description, "None");
|
||||
list++;
|
||||
i++;
|
||||
list++; i++;
|
||||
|
||||
/* Retrieve the device list from the local machine */
|
||||
if (pcap_findalldevs(&devlist, errbuf) == -1) {
|
||||
pclog("NETWORK: error in pcap_findalldevs_ex: %s\n", errbuf);
|
||||
return(i); /* Note by Kotori: The list will always have at least one entry - "None". */
|
||||
pclog("NETWORK: error in pcap_findalldevs: %s\n", errbuf);
|
||||
return(i);
|
||||
}
|
||||
|
||||
for (dev=devlist; dev!=NULL; dev=dev->next) {
|
||||
@@ -245,8 +240,7 @@ network_devlist(netdev_t *list)
|
||||
strcpy(list->description, dev->description);
|
||||
else
|
||||
memset(list->description, '\0', sizeof(list->description));
|
||||
list++;
|
||||
i++;
|
||||
list++; i++;
|
||||
}
|
||||
|
||||
/* Release the memory. */
|
||||
@@ -254,19 +248,3 @@ network_devlist(netdev_t *list)
|
||||
|
||||
return(i);
|
||||
}
|
||||
|
||||
int network_dev_to_id(char *dev)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for (i = 0; i < netdev_num; i++)
|
||||
{
|
||||
if (!strcmp(netdev_list[i].device, dev))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
/* If the device does not match the list, consider it as if it was set to "none". */
|
||||
return 0;
|
||||
}
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Handle SLiRP library processing.
|
||||
*
|
||||
* Version: @(#)net_slirp.c 1.0.1 2017/05/11
|
||||
* Version: @(#)net_slirp.c 1.0.2 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
*/
|
||||
@@ -29,7 +29,6 @@ static queueADT slirpq; /* SLiRP library handle */
|
||||
static thread_t *poll_tid;
|
||||
static NETRXCB poll_rx; /* network RX function to call */
|
||||
static void *poll_arg; /* network RX function arg */
|
||||
static int fizz;
|
||||
|
||||
|
||||
/* Instead of calling this and crashing some times
|
||||
@@ -38,27 +37,29 @@ static int fizz;
|
||||
static void
|
||||
slirp_tic(void)
|
||||
{
|
||||
int ret2,nfds;
|
||||
int ret2, nfds;
|
||||
struct timeval tv;
|
||||
fd_set rfds, wfds, xfds;
|
||||
int tmo;
|
||||
nfds=-1;
|
||||
|
||||
/* Let SLiRP create a list of all open sockets. */
|
||||
nfds = -1;
|
||||
FD_ZERO(&rfds);
|
||||
FD_ZERO(&wfds);
|
||||
FD_ZERO(&xfds);
|
||||
tmo = slirp_select_fill(&nfds, &rfds, &wfds, &xfds); /* this can crash */
|
||||
if (tmo < 0) {
|
||||
if (tmo < 0)
|
||||
tmo = 500;
|
||||
}
|
||||
|
||||
tv.tv_sec = 0;
|
||||
tv.tv_usec = tmo; /* basilisk default 10000 */
|
||||
tv.tv_usec = tmo;
|
||||
|
||||
/* Now wait for something to happen, or at most 'tmo' usec. */
|
||||
ret2 = select(nfds+1, &rfds, &wfds, &xfds, &tv);
|
||||
if (ret2 >= 0) {
|
||||
|
||||
/* If something happened, let SLiRP handle it. */
|
||||
if (ret2 >= 0)
|
||||
slirp_select_poll(&rfds, &wfds, &xfds);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -77,10 +78,8 @@ poll_thread(void *arg)
|
||||
pclog("SLiRP: poll event is %08lx\n", evt);
|
||||
|
||||
while (slirpq != NULL) {
|
||||
if (++fizz > 1200) {
|
||||
fizz = 0;
|
||||
slirp_tic();
|
||||
}
|
||||
/* See if there is any work. */
|
||||
slirp_tic();
|
||||
|
||||
/* Wait for the next packet to arrive. */
|
||||
if (QueuePeek(slirpq) == 0) {
|
||||
@@ -124,8 +123,6 @@ network_slirp_setup(uint8_t *mac, NETRXCB func, void *arg)
|
||||
slirpq = QueueCreate();
|
||||
pclog(" Packet queue is at %08lx\n", &slirpq);
|
||||
|
||||
fizz = 0;
|
||||
|
||||
/* Save the callback info. */
|
||||
poll_rx = func;
|
||||
poll_arg = arg;
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* it should be malloc'ed and then linked to the NETCARD def.
|
||||
* Will be done later.
|
||||
*
|
||||
* Version: @(#)network.c 1.0.3 2017/05/12
|
||||
* Version: @(#)network.c 1.0.4 2017/05/17
|
||||
*
|
||||
* Authors: Kotori, <oubattler@gmail.com>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -41,8 +41,12 @@ static netcard_t net_cards[] = {
|
||||
};
|
||||
|
||||
|
||||
int network_card;
|
||||
int network_type;
|
||||
/* Global variables. */
|
||||
int network_card;
|
||||
int network_type;
|
||||
int network_ndev;
|
||||
netdev_t network_devs[32];
|
||||
char network_pcap[512];
|
||||
|
||||
|
||||
/*
|
||||
@@ -55,8 +59,11 @@ int network_type;
|
||||
void
|
||||
network_init(void)
|
||||
{
|
||||
network_type = NET_TYPE_NONE;
|
||||
network_card = 0;
|
||||
network_type = -1;
|
||||
|
||||
/* Initialize list of PCap devices. */
|
||||
network_ndev = network_devlist(network_devs);
|
||||
}
|
||||
|
||||
|
||||
@@ -80,11 +87,11 @@ network_attach(void *dev, uint8_t *mac, NETRXCB rx)
|
||||
|
||||
/* Start the platform module. */
|
||||
switch(network_type) {
|
||||
case 0:
|
||||
case NET_TYPE_PCAP:
|
||||
ret = network_pcap_setup(mac, rx, dev);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
case NET_TYPE_SLIRP:
|
||||
ret = network_slirp_setup(mac, rx, dev);
|
||||
break;
|
||||
}
|
||||
@@ -98,11 +105,11 @@ void
|
||||
network_close(void)
|
||||
{
|
||||
switch(network_type) {
|
||||
case 0:
|
||||
case NET_TYPE_PCAP:
|
||||
network_pcap_close();
|
||||
break;
|
||||
|
||||
case 1:
|
||||
case NET_TYPE_SLIRP:
|
||||
network_slirp_close();
|
||||
break;
|
||||
}
|
||||
@@ -127,10 +134,11 @@ network_reset(void)
|
||||
network_close();
|
||||
|
||||
/* If no active card, we're done. */
|
||||
if (!network_card || (network_type<0)) return;
|
||||
if ((network_type==NET_TYPE_NONE) || (network_card==0)) return;
|
||||
|
||||
pclog("NETWORK: set up for %s, card=%s\n",
|
||||
(network_type==1)?"SLiRP":"WinPcap", net_cards[network_card].name);
|
||||
(network_type==NET_TYPE_SLIRP)?"SLiRP":"WinPcap",
|
||||
net_cards[network_card].name);
|
||||
|
||||
pclog("NETWORK: reset (card=%d)\n", network_card);
|
||||
/* Add the (new?) card to the I/O system. */
|
||||
@@ -147,11 +155,11 @@ void
|
||||
network_tx(uint8_t *bufp, int len)
|
||||
{
|
||||
switch(network_type) {
|
||||
case 0:
|
||||
case NET_TYPE_PCAP:
|
||||
network_pcap_in(bufp, len);
|
||||
break;
|
||||
|
||||
case 1:
|
||||
case NET_TYPE_SLIRP:
|
||||
network_slirp_in(bufp, len);
|
||||
break;
|
||||
}
|
||||
@@ -217,3 +225,19 @@ network_card_get_from_internal_name(char *s)
|
||||
|
||||
return(-1);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
network_dev_to_id(char *dev)
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for (i=0; i<network_ndev; i++) {
|
||||
if (! strcmp(network_devs[i].device, dev)) {
|
||||
return(i);
|
||||
}
|
||||
}
|
||||
|
||||
/* If no match found, assume "none". */
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
* Definitions for the network module.
|
||||
*
|
||||
* Version: @(#)network.h 1.0.3 2017/05/12
|
||||
* Version: @(#)network.h 1.0.4 2017/05/17
|
||||
*
|
||||
* Authors: Kotori, <oubattler@gmail.com>
|
||||
* Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
@@ -18,6 +18,12 @@
|
||||
# include <stdint.h>
|
||||
|
||||
|
||||
/* Network provider types. */
|
||||
#define NET_TYPE_NONE 0 /* networking disabled */
|
||||
#define NET_TYPE_PCAP 1 /* use the (Win)Pcap API */
|
||||
#define NET_TYPE_SLIRP 2 /* use the SLiRP port forwarder */
|
||||
|
||||
/* Supported network cards. */
|
||||
#define NE1000 1
|
||||
#define NE2000 2
|
||||
#define RTL8029AS 3
|
||||
@@ -44,11 +50,9 @@ typedef struct {
|
||||
/* Global variables. */
|
||||
extern int network_card;
|
||||
extern int network_type;
|
||||
|
||||
extern char pcap_dev[512];
|
||||
|
||||
extern int netdev_num;
|
||||
extern netdev_t netdev_list[512];
|
||||
extern int network_ndev;
|
||||
extern netdev_t network_devs[32];
|
||||
extern char network_pcap[512];
|
||||
|
||||
|
||||
/* Function prototypes. */
|
||||
@@ -68,13 +72,13 @@ extern void network_slirp_close(void);
|
||||
extern void network_slirp_in(uint8_t *, int);
|
||||
|
||||
extern int network_devlist(netdev_t *);
|
||||
extern int network_dev_to_id(char *);
|
||||
extern int network_card_available(int);
|
||||
extern char *network_card_getname(int);
|
||||
extern int network_card_has_config(int);
|
||||
extern char *network_card_get_internal_name(int);
|
||||
extern int network_card_get_from_internal_name(char *);
|
||||
extern struct device_t *network_card_getdevice(int);
|
||||
extern device_t *network_card_getdevice(int);
|
||||
|
||||
int network_dev_to_id(char *dev);
|
||||
|
||||
#endif /*NETWORK_H*/
|
||||
|
||||
22
src/pc.c
22
src/pc.c
@@ -18,8 +18,6 @@
|
||||
#include "device.h"
|
||||
|
||||
#include "ali1429.h"
|
||||
#include "cdrom.h"
|
||||
#include "cdrom-ioctl.h"
|
||||
#include "disc.h"
|
||||
#include "disc_86f.h"
|
||||
#include "disc_fdi.h"
|
||||
@@ -31,20 +29,21 @@
|
||||
#include "fdc.h"
|
||||
#include "fdd.h"
|
||||
#include "gameport.h"
|
||||
#include "plat-joystick.h"
|
||||
#include "plat-midi.h"
|
||||
#include "plat_joystick.h"
|
||||
#include "plat_midi.h"
|
||||
#include "hdd.h"
|
||||
#include "ide.h"
|
||||
#include "cdrom.h"
|
||||
#include "cdrom-image.h"
|
||||
#include "cdrom-null.h"
|
||||
#include "cdrom_ioctl.h"
|
||||
#include "cdrom_image.h"
|
||||
#include "cdrom_null.h"
|
||||
#include "scsi.h"
|
||||
#include "keyboard.h"
|
||||
#include "plat-keyboard.h"
|
||||
#include "plat_keyboard.h"
|
||||
#include "keyboard_at.h"
|
||||
#include "model.h"
|
||||
#include "mouse.h"
|
||||
#include "plat-mouse.h"
|
||||
#include "plat_mouse.h"
|
||||
#include "network.h"
|
||||
#include "serial.h"
|
||||
#include "sound/sound.h"
|
||||
@@ -60,7 +59,7 @@
|
||||
#include "amstrad.h"
|
||||
#ifdef WALTJE
|
||||
# define UNICODE
|
||||
# include "plat-dir.h"
|
||||
# include "plat_dir.h"
|
||||
#endif
|
||||
|
||||
#ifndef __unix
|
||||
@@ -69,7 +68,7 @@
|
||||
#include <windows.h>
|
||||
#undef BITMAP
|
||||
#include "win.h"
|
||||
#include "win-language.h"
|
||||
#include "win_language.h"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -288,9 +287,6 @@ void initpc(int argc, wchar_t *argv[])
|
||||
*p=L'\0';
|
||||
pclog("path = %ws\n", pcempath);
|
||||
|
||||
/* Initialize list of PCap devices. */
|
||||
netdev_num = network_devlist(netdev_list);
|
||||
|
||||
for (c = 1; c < argc; c++)
|
||||
{
|
||||
if (!_wcsicmp(argv[c], L"--help"))
|
||||
|
||||
@@ -10,9 +10,8 @@
|
||||
|
||||
#include "ibm.h"
|
||||
#include "pit.h"
|
||||
|
||||
#include "plat-keyboard.h"
|
||||
#include "plat-mouse.h"
|
||||
#include "plat_keyboard.h"
|
||||
#include "plat_mouse.h"
|
||||
|
||||
void ppi_reset()
|
||||
{
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
*
|
||||
* Based on the 86Box serial port driver as a framework.
|
||||
*
|
||||
* Version: @(#)serial.c 1.0.5 2017/05/07
|
||||
* Version: @(#)serial.c 1.0.5 2017/05/17
|
||||
*
|
||||
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
|
||||
* Copyright 2017 Fred N. van Kempen.
|
||||
@@ -43,7 +43,7 @@
|
||||
#include "pic.h"
|
||||
#include "timer.h"
|
||||
#include "serial.h"
|
||||
#include "plat-serial.h"
|
||||
#include "plat_serial.h"
|
||||
|
||||
|
||||
enum {
|
||||
|
||||
Reference in New Issue
Block a user