diff --git a/src/pc.rc b/src/pc.rc index b0db6f8..352767a 100644 --- a/src/pc.rc +++ b/src/pc.rc @@ -61,7 +61,9 @@ BEGIN COMBOBOX IDC_COMBOCHC,62,96,107,120,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_COMBOSPD,62,116,107,120,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP COMBOBOX IDC_COMBOSND,62,136,107,120,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP - COMBOBOX IDC_COMBOMEM,62,152,107,120,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP + EDITTEXT IDC_MEMTEXT, 62, 152, 36, 14, ES_AUTOHSCROLL | ES_NUMBER + CONTROL "", IDC_MEMSPIN, UPDOWN_CLASS, UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_SETBUDDYINT, 98, 152, 12, 14 + LTEXT "MB", IDC_STATIC, 98, 152, 40, 10 CONTROL "CMS / Game Blaster",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,172,118,10 CONTROL "Gravis Ultrasound",IDC_CHECKGUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,188,118,10 CONTROL "Composite CGA",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,204,118,10 diff --git a/src/resources.h b/src/resources.h index f9bc464..2daac37 100644 --- a/src/resources.h +++ b/src/resources.h @@ -29,7 +29,6 @@ #define IDC_COMBO486 1006 #define IDC_COMBOSND 1007 #define IDC_COMBOCHC 1008 -#define IDC_COMBOMEM 1009 #define IDC_COMBOCPUM 1060 #define IDC_COMBOSPD 1061 #define IDC_CHECK1 1010 @@ -52,7 +51,8 @@ #define IDC_EDITD 1053 #define IDC_DFILE 1054 #define IDC_DNEW 1055 - +#define IDC_MEMSPIN 1070 +#define IDC_MEMTEXT 1071 #define IDC_STEXT1 1100 #define IDC_STEXT2 1101 #define IDC_STEXT3 1102 diff --git a/src/win.c b/src/win.c index ac14ae4..81b37d6 100644 --- a/src/win.c +++ b/src/win.c @@ -3,6 +3,7 @@ #include #undef BITMAP +#include #include #include @@ -596,16 +597,6 @@ extern int is486; int romstolist[26], listtomodel[26], romstomodel[26], modeltolist[26]; static int settings_sound_to_list[20], settings_list_to_sound[20]; -int mem_list_to_size[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,32,48,64,256}; -int mem_size_to_list[]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11,12,13,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, 19}; - BOOL CALLBACK configdlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam) { char temp_str[256]; @@ -734,36 +725,26 @@ BOOL CALLBACK configdlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lPara SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"Fast VLB/PCI"); SendMessage(h,CB_SETCURSEL,video_speed,0); - h=GetDlgItem(hdlg,IDC_COMBOMEM); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"1 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"2 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"3 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"4 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"5 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"6 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"7 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"8 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"9 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"10 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"11 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"12 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"13 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"14 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"15 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"16 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"32 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"48 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"64 MB"); - SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"256 MB"); - SendMessage(h,CB_SETCURSEL,mem_size_to_list[mem_size-1],0); + h = GetDlgItem(hdlg, IDC_MEMSPIN); + SendMessage(h, UDM_SETBUDDY, (WPARAM)GetDlgItem(hdlg, IDC_MEMTEXT), 0); + SendMessage(h, UDM_SETRANGE, 0, (1 << 16) | 256); + SendMessage(h, UDM_SETPOS, 0, mem_size); - pclog("Init cpuspeed %i\n",cpuspeed); - return TRUE; case WM_COMMAND: switch (LOWORD(wParam)) { case IDOK: + h = GetDlgItem(hdlg, IDC_MEMTEXT); + SendMessage(h, WM_GETTEXT, 255, (LPARAM)temp_str); + sscanf(temp_str, "%i", &mem); + if (mem < 1 || mem > 256) + { + MessageBox(NULL, "Invalid memory size\nMemory must be between 1 and 256 MB", "PCem", MB_OK); + break; + } + + h=GetDlgItem(hdlg,IDC_COMBO1); temp_model = listtomodel[SendMessage(h,CB_GETCURSEL,0,0)]; @@ -771,9 +752,6 @@ BOOL CALLBACK configdlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lPara SendMessage(h, CB_GETLBTEXT, SendMessage(h,CB_GETCURSEL,0,0), (LPARAM)temp_str); gfx = video_new_to_old(video_card_getid(temp_str)); - h=GetDlgItem(hdlg,IDC_COMBOMEM); - mem=mem_list_to_size[SendMessage(h,CB_GETCURSEL,0,0)]; - h = GetDlgItem(hdlg, IDC_COMBOCPUM); temp_cpu_m = SendMessage(h, CB_GETCURSEL, 0, 0); h = GetDlgItem(hdlg, IDC_COMBO3);