Another massive cleanup run. Ibm.h no longer includes system header files. ROM loading simplified, and moved from mem.c to rom.c. Fixes in Makefile. Corrected mamy wrong includes. Removed old junk from days long gone. First phase of new SCAT chipset driver - no longer gives errors in BIOS, but NOT DONE YET.

This commit is contained in:
waltje
2017-09-25 04:31:20 -04:00
parent 637ce66da2
commit 43b055b5ee
227 changed files with 2861 additions and 2082 deletions

View File

@@ -8,7 +8,7 @@
*
* Windows resource script.
*
* Version: @(#)86Box.rc 1.0.9 2017/09/07
* Version: @(#)86Box.rc 1.0.10 2017/09/23
*
* Authors: Miran Grca, <mgrca8@gmail.com>
* Fred N. van Kempen, <decwiz@yahoo.com>
@@ -45,8 +45,12 @@ BEGIN
POPUP "&Action"
BEGIN
MENUITEM "&Hard Reset", IDM_ACTION_HRESET
MENUITEM SEPARATOR
MENUITEM "&Ctrl+Alt+Del\tCtrl+F12", IDM_ACTION_RESET_CAD
MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC
MENUITEM SEPARATOR
MENUITEM "Ctrl+Alt+&Esc", IDM_ACTION_CTRL_ALT_ESC
MENUITEM SEPARATOR
MENUITEM "&Pause", IDM_ACTION_PAUSE
MENUITEM SEPARATOR
MENUITEM "E&xit", IDM_ACTION_EXIT
END
@@ -57,43 +61,43 @@ BEGIN
MENUITEM SEPARATOR
POPUP "Re&nderer"
BEGIN
MENUITEM "&DirectDraw", IDM_VID_DDRAW
MENUITEM "Direct&3D 9", IDM_VID_D3D
MENUITEM "&DirectDraw", IDM_VID_DDRAW
MENUITEM "Direct&3D 9", IDM_VID_D3D
END
MENUITEM SEPARATOR
POPUP "&Window scale factor"
BEGIN
MENUITEM "&0.5x", IDM_VID_SCALE_1X
MENUITEM "&1x", IDM_VID_SCALE_2X
MENUITEM "1.&5x", IDM_VID_SCALE_3X
MENUITEM "&2x", IDM_VID_SCALE_4X
MENUITEM "&0.5x", IDM_VID_SCALE_1X
MENUITEM "&1x", IDM_VID_SCALE_2X
MENUITEM "1.&5x", IDM_VID_SCALE_3X
MENUITEM "&2x", IDM_VID_SCALE_4X
END
MENUITEM SEPARATOR
MENUITEM "&Fullscreen\tCtrl+Alt+PageUP", IDM_VID_FULLSCREEN
POPUP "Fullscreen &stretch mode"
BEGIN
MENUITEM "&Full screen stretch", IDM_VID_FS_FULL
MENUITEM "&4:3", IDM_VID_FS_43
MENUITEM "&Square pixels", IDM_VID_FS_SQ
MENUITEM "&Integer scale", IDM_VID_FS_INT
MENUITEM "&Full screen stretch", IDM_VID_FS_FULL
MENUITEM "&4:3", IDM_VID_FS_43
MENUITEM "&Square pixels", IDM_VID_FS_SQ
MENUITEM "&Integer scale", IDM_VID_FS_INT
END
POPUP "E&GA/(S)VGA settings"
BEGIN
MENUITEM "&Inverted VGA monitor", IDM_VID_INVERT
MENUITEM "E&GA/(S)VGA overscan", IDM_VID_OVERSCAN
MENUITEM "&Inverted VGA monitor", IDM_VID_INVERT
MENUITEM "E&GA/(S)VGA overscan", IDM_VID_OVERSCAN
POPUP "VGA screen &type"
BEGIN
MENUITEM "RGB &Color", IDM_VID_GRAY_RGB
MENUITEM "&RGB Grayscale", IDM_VID_GRAY_MONO
MENUITEM "&Amber monitor", IDM_VID_GRAY_AMBER
MENUITEM "&Green monitor", IDM_VID_GRAY_GREEN
MENUITEM "&White monitor", IDM_VID_GRAY_WHITE
MENUITEM "RGB &Color", IDM_VID_GRAY_RGB
MENUITEM "&RGB Grayscale", IDM_VID_GRAY_MONO
MENUITEM "&Amber monitor", IDM_VID_GRAY_AMBER
MENUITEM "&Green monitor", IDM_VID_GRAY_GREEN
MENUITEM "&White monitor", IDM_VID_GRAY_WHITE
END
POPUP "Grayscale &conversion type"
BEGIN
MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601
MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709
MENUITEM "&Average", IDM_VID_GRAYCT_AVE
MENUITEM "BT&601 (NTSC/PAL)", IDM_VID_GRAYCT_601
MENUITEM "BT&709 (HDTV)", IDM_VID_GRAYCT_709
MENUITEM "&Average", IDM_VID_GRAYCT_AVE
END
END
MENUITEM SEPARATOR
@@ -193,6 +197,7 @@ BEGIN
VK_PRIOR,IDM_VID_FULLSCREEN, VIRTKEY, CONTROL , ALT
VK_F11, IDM_ACTION_SCREENSHOT, VIRTKEY, CONTROL
VK_F12, IDM_ACTION_RESET_CAD, VIRTKEY, CONTROL
VK_PAUSE,IDM_ACTION_PAUSE
END

View File

@@ -11,7 +11,7 @@
* NOTE: FIXME: Strings 2176 and 2193 are same.
* NOTE: FIXME: string 2095 not in use.
*
* Version: @(#)resource.h 1.0.5 2017/08/24
* Version: @(#)resource.h 1.0.6 2017/09/23
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
@@ -417,6 +417,7 @@
#define IDM_ACTION_RESET_CAD 40013
#define IDM_ACTION_EXIT 40014
#define IDM_ACTION_CTRL_ALT_ESC 40015
#define IDM_ACTION_PAUSE 40016
#define IDM_CONFIG 40020
#define IDM_CONFIG_LOAD 40021
#define IDM_CONFIG_SAVE 40022

View File

@@ -8,7 +8,7 @@
*
* The Emulator's Windows core.
*
* Version: @(#)win.c 1.0.9 2017/09/19
* Version: @(#)win.c 1.0.11 2017/09/24
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
@@ -16,10 +16,19 @@
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
*/
#include <stdint.h>
#define UNICODE
#define BITMAP WINDOWS_BITMAP
#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include <commdlg.h>
#include <process.h>
#undef BITMAP
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include <wchar.h>
#include "../86box.h"
#include "../config.h"
#include "../cpu/cpu.h"
@@ -60,11 +69,6 @@
#include "win_d3d.h"
#include "win_language.h"
#include <windowsx.h>
#include <commctrl.h>
#include <commdlg.h>
#include <process.h>
#ifndef MAPVK_VK_TO_VSC
#define MAPVK_VK_TO_VSC 0
@@ -86,6 +90,7 @@ typedef struct win_event_t
HANDLE handle;
} win_event_t;
static wchar_t wTitle[512];
LONG_PTR OriginalStatusBarProcedure;
HWND ghwnd;
HINSTANCE hinstance;
@@ -102,7 +107,6 @@ HANDLE slirpMutex;
HANDLE mainthreadh;
int infocus=1;
int drawits=0;
int romspresent[ROM_MAX];
int quited=0;
RECT oldclip;
int mousecapture=0;
@@ -594,9 +598,14 @@ void get_executable_name(wchar_t *s, int size)
void set_window_title(wchar_t *s)
{
if (video_fullscreen)
return;
SetWindowText(ghwnd, s);
if (! video_fullscreen) {
if (s != NULL)
wcscpy(wTitle, s);
else
s = wTitle;
SetWindowText(ghwnd, s);
}
}
uint64_t timer_read(void)
@@ -1715,6 +1724,8 @@ int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpsz
hwndRender = CreateWindow(L"STATIC", NULL, WS_VISIBLE | WS_CHILD | SS_BITMAP, 0, 0, 1, 1, ghwnd, NULL, hinstance, NULL);
/* FIXME: Kotori, code below should be moved to pc.c, as its not Win specific. */
initpc(argc, argv);
init_cdrom_host_drives();
@@ -1749,34 +1760,32 @@ int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpsz
reset_menus();
d=romset;
/* FIXME: Kotori, code below should be moved to pc.c, its not Win specific. */
d = 0;
for (c=0;c<ROM_MAX;c++)
{
romset=c;
romspresent[c]=loadbios();
pclog("romset %i - %i\n", c, romspresent[c]);
romspresent[c] = rom_load_bios(c);
pclog("romset %i - %s\n", c, romspresent[c]?"YES":"NO");
d |= romspresent[c];
}
for (c = 0; c < ROM_MAX; c++)
{
if (romspresent[c])
break;
}
if (c == ROM_MAX)
if (d == 0)
{
/* Dang, no ROMs found at all! */
msgbox_critical(ghwnd, IDS_2062);
return 0;
}
romset=d;
c=loadbios();
if (!c)
/* Load the ROMs for the selected machine. */
c = rom_load_bios(romset);
if (c == 0)
{
/* Whoops, ROMs not found. */
if (romset!=-1)
{
msgbox_info(ghwnd, IDS_2063);
}
/* Select another machine to use. */
for (c=0;c<ROM_MAX;c++)
{
if (romspresent[c])
@@ -1813,7 +1822,7 @@ int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpsz
}
}
loadbios();
rom_load_bios(romset);
resetpchard();
timeBeginPeriod(1);
@@ -2021,6 +2030,7 @@ void video_toggle_option(HMENU hmenu, int *val, int id)
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
static wchar_t wOldTitle[512];
HMENU hmenu;
RECT rect;
int i = 0;
@@ -2056,7 +2066,18 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
case IDM_ACTION_CTRL_ALT_ESC:
ctrl_alt_esc();
break;
case IDM_ACTION_PAUSE:
pause ^= 1;
if (pause) {
wcscpy(wOldTitle, wTitle);
wcscat(wTitle, L" - PAUSED -");
set_window_title(NULL);
} else
set_window_title(wOldTitle);
break;
case IDM_CONFIG:
win_settings_open(hwnd);
break;
@@ -2332,7 +2353,7 @@ LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM
/* pclog_w(L"NVR path: %s\n", nvr_path); */
mem_resize();
loadbios();
rom_load_bios(romset);
#ifdef USE_NETWORK
network_init();
#endif

View File

@@ -8,13 +8,17 @@
*
* Windows device configuration dialog implementation.
*
* Version: @(#)win_deviceconfig.c 1.0.2 2017/09/19
* Version: @(#)win_deviceconfig.c 1.0.3 2017/09/24
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
* Copyright 2016,2017 Miran Grca.
*/
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../config.h"
#include "../device.h"

View File

@@ -8,17 +8,18 @@
*
* Try to load a support DLL.
*
* Version: @(#)win_dynld.c 1.0.2 2017/05/24
* Version: @(#)win_dynld.c 1.0.3 2017/09/24
*
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
* Copyright 2017 Fred N. van Kempen
*/
#include <windows.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include <wchar.h>
#include <pcap.h>
#include <windows.h>
#include "plat_dynld.h"
#include "../ibm.h"

View File

@@ -8,7 +8,7 @@
*
* Windows IO device menu handler.
*
* Version: @(#)win_iodev.c 1.0.2 2017/09/19
* Version: @(#)win_iodev.c 1.0.3 2017/09/24
*
* Author: Miran Grca, <mgrca8@gmail.com>
* Copyright 2016,2017 Miran Grca.
@@ -23,11 +23,12 @@
#include <commctrl.h>
#include <commdlg.h>
#include <process.h>
#include <string.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
#include <wchar.h>
#include "../ibm.h"
#include "../config.h"
#include "../device.h"

View File

@@ -8,14 +8,13 @@
*
* Joystick interface to host device.
*
* Version: @(#)win_joystick.cc 1.0.0 2017/05/30
* Version: @(#)win_joystick.cc 1.0.1 2017/09/24
*
* Author: Sarah Walker, <http://pcem-emulator.co.uk/>
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
* Copyright 2016,2017 Miran Grca.
*/
#define DIRECTINPUT_VERSION 0x0800
#include <dinput.h>
#include <math.h>

View File

@@ -5,7 +5,10 @@
#include <windows.h>
#include <windowsx.h>
#undef BITMAP
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../config.h"
#include "../device.h"

View File

@@ -8,7 +8,7 @@
*
* Windows raw keyboard input handler.
*
* Version: @(#)win_d3d.cc 1.0.0 2017/05/30
* Version: @(#)win_d3d.cc 1.0.1 2017/09/24
*
* Author: Miran Grca, <mgrca8@gmail.com>
* Copyright 2016-2017 Miran Grca.
@@ -20,7 +20,6 @@
#include <windows.h>
#include <windowsx.h>
#undef BITMAP
#include <commctrl.h>
#include <commdlg.h>
#include <process.h>
@@ -29,12 +28,11 @@
#include <stdarg.h>
#include <stdlib.h>
#include <stdint.h>
#include "../device.h"
#include "plat_keyboard.h"
#include "win.h"
#ifndef MAPVK_VK_TO_VSC
#define MAPVK_VK_TO_VSC 0
#endif
@@ -208,4 +206,4 @@ void process_raw_input(LPARAM lParam, int infocus)
}
free(raw);
}
}

View File

@@ -8,23 +8,25 @@
*
* Windows localization core.
*
* Version: @(#)win_language.c 1.0.1 2017/08/24
* Version: @(#)win_language.c 1.0.2 2017/09/24
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016,2017 Miran Grca.
*/
#include <inttypes.h>
//#include <inttypes.h>
#define UNICODE
#define BITMAP WINDOWS_BITMAP
#include <windows.h>
#include <windowsx.h>
#include <shlobj.h>
#undef BITMAP
#include <commdlg.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../device.h"
#include "plat_ui.h"

View File

@@ -1,5 +1,9 @@
#include <windows.h>
#include <mmsystem.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../config.h"
#include "../sound/midi.h"

View File

@@ -8,12 +8,12 @@
*
* Mouse interface to host device.
*
* Version: @(#)win_mouse.cc 1.0.1 2017/06/21
* Version: @(#)win_mouse.cc 1.0.2 2017/09/24
*
* Authors: Sarah Walker, <http://pcem-emulator.co.uk/>
* Miran Grca, <mgrca8@gmail.com>
* Copyright 2008-2017 Sarah Walker.
* Copyright 2016-2017 Miran Grca.
* Copyright 2016,2017 Miran Grca.
*/
#define DIRECTINPUT_VERSION 0x0800
#include <dinput.h>

View File

@@ -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/17
* Version: @(#)win_opendir.c 1.0.2 2017/09/24
*
* Author: Fred N. van Kempen, <decwiz@yahoo.com>
* Copyright 1998-2007 MicroWalt Corporation
@@ -19,10 +19,11 @@
#define UNICODE
#include <windows.h>
#include <io.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>
#include <stdlib.h>
#include <wchar.h>
#include "../ibm.h"
#include "plat_dir.h"

View File

@@ -8,7 +8,7 @@
*
* Windows 86Box Settings dialog handler.
*
* Version: @(#)win_settings.c 1.0.11 2017/09/19
* Version: @(#)win_settings.c 1.0.13 2017/09/24
*
* Author: Miran Grca, <mgrca8@gmail.com>
* Copyright 2016,2017 Miran Grca.
@@ -18,13 +18,17 @@
#include <windows.h>
#include <windowsx.h>
#undef BITMAP
#include <commctrl.h>
#include <inttypes.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../config.h"
#include "../cpu/cpu.h"
#include "../mem.h"
#include "../rom.h"
#include "../device.h"
#include "../nvr.h"
#include "../machine/machine.h"
@@ -361,7 +365,7 @@ static void win_settings_save(void)
memcpy(cdrom_drives, temp_cdrom_drives, CDROM_NUM * sizeof(cdrom_drive_t));
mem_resize();
loadbios();
rom_load_bios(romset);
update_status_bar_panes(hwndStatus);

View File

@@ -5,7 +5,10 @@
#include <windows.h>
#include <windowsx.h>
#undef BITMAP
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#include <wchar.h>
#include "../ibm.h"
#include "../mem.h"
#include "../cpu/x86_ops.h"