PCem

changeset 65:1a5a5f832cf3

Memory configuration changed from drop-down list to up/down control.
author TomW
date Wed Jan 01 21:09:30 2014 +0000
parents 4bde4cf3074b
children ef06e812e4f2
files src/pc.rc src/resources.h src/win.c
diffstat 3 files changed, 20 insertions(+), 40 deletions(-) [+]
line diff
     1.1 --- a/src/pc.rc	Sun Dec 29 16:05:24 2013 +0000
     1.2 +++ b/src/pc.rc	Wed Jan 01 21:09:30 2014 +0000
     1.3 @@ -61,7 +61,9 @@
     1.4      COMBOBOX        IDC_COMBOCHC,62,96,107,120,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
     1.5      COMBOBOX        IDC_COMBOSPD,62,116,107,120,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
     1.6      COMBOBOX        IDC_COMBOSND,62,136,107,120,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
     1.7 -    COMBOBOX        IDC_COMBOMEM,62,152,107,120,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
     1.8 +    EDITTEXT        IDC_MEMTEXT, 62, 152, 36, 14, ES_AUTOHSCROLL | ES_NUMBER
     1.9 +    CONTROL         "", IDC_MEMSPIN, UPDOWN_CLASS, UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_SETBUDDYINT, 98, 152, 12, 14
    1.10 +    LTEXT           "MB", IDC_STATIC, 98, 152, 40, 10
    1.11      CONTROL         "CMS / Game Blaster",IDC_CHECK3,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,172,118,10
    1.12      CONTROL         "Gravis Ultrasound",IDC_CHECKGUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,188,118,10    
    1.13      CONTROL         "Composite CGA",IDC_CHECK4,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,204,118,10
     2.1 --- a/src/resources.h	Sun Dec 29 16:05:24 2013 +0000
     2.2 +++ b/src/resources.h	Wed Jan 01 21:09:30 2014 +0000
     2.3 @@ -29,7 +29,6 @@
     2.4  #define IDC_COMBO486 1006
     2.5  #define IDC_COMBOSND 1007
     2.6  #define IDC_COMBOCHC 1008
     2.7 -#define IDC_COMBOMEM 1009
     2.8  #define IDC_COMBOCPUM 1060
     2.9  #define IDC_COMBOSPD  1061
    2.10  #define IDC_CHECK1 1010
    2.11 @@ -52,7 +51,8 @@
    2.12  #define IDC_EDITD  1053
    2.13  #define IDC_DFILE  1054
    2.14  #define IDC_DNEW   1055
    2.15 -
    2.16 +#define IDC_MEMSPIN 1070
    2.17 +#define IDC_MEMTEXT 1071
    2.18  #define IDC_STEXT1 1100
    2.19  #define IDC_STEXT2 1101
    2.20  #define IDC_STEXT3 1102
     3.1 --- a/src/win.c	Sun Dec 29 16:05:24 2013 +0000
     3.2 +++ b/src/win.c	Wed Jan 01 21:09:30 2014 +0000
     3.3 @@ -3,6 +3,7 @@
     3.4  #include <windowsx.h>
     3.5  #undef BITMAP
     3.6  
     3.7 +#include <commctrl.h>
     3.8  #include <commdlg.h>
     3.9  
    3.10  #include <process.h>
    3.11 @@ -596,16 +597,6 @@
    3.12  int romstolist[26], listtomodel[26], romstomodel[26], modeltolist[26];
    3.13  static int settings_sound_to_list[20], settings_list_to_sound[20];
    3.14  
    3.15 -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};
    3.16 -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,
    3.17 -                        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,
    3.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,
    3.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,
    3.20 -                        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,
    3.21 -                        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,
    3.22 -                        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,
    3.23 -                        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};
    3.24 -
    3.25  BOOL CALLBACK configdlgproc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam)
    3.26  {
    3.27          char temp_str[256];
    3.28 @@ -734,36 +725,26 @@
    3.29                  SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"Fast VLB/PCI");                
    3.30                  SendMessage(h,CB_SETCURSEL,video_speed,0);
    3.31  
    3.32 -                h=GetDlgItem(hdlg,IDC_COMBOMEM);
    3.33 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"1 MB");
    3.34 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"2 MB");
    3.35 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"3 MB");
    3.36 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"4 MB");
    3.37 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"5 MB");
    3.38 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"6 MB");
    3.39 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"7 MB");
    3.40 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"8 MB");
    3.41 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"9 MB");
    3.42 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"10 MB");
    3.43 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"11 MB");
    3.44 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"12 MB");
    3.45 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"13 MB");
    3.46 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"14 MB");
    3.47 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"15 MB");
    3.48 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"16 MB");
    3.49 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"32 MB");
    3.50 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"48 MB");
    3.51 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"64 MB");
    3.52 -                SendMessage(h,CB_ADDSTRING,0,(LPARAM)(LPCSTR)"256 MB");                
    3.53 -                SendMessage(h,CB_SETCURSEL,mem_size_to_list[mem_size-1],0);
    3.54 +                h = GetDlgItem(hdlg, IDC_MEMSPIN);
    3.55 +                SendMessage(h, UDM_SETBUDDY, (WPARAM)GetDlgItem(hdlg, IDC_MEMTEXT), 0);
    3.56 +                SendMessage(h, UDM_SETRANGE, 0, (1 << 16) | 256);
    3.57 +                SendMessage(h, UDM_SETPOS, 0, mem_size);
    3.58                  
    3.59 -                pclog("Init cpuspeed %i\n",cpuspeed);
    3.60 -
    3.61                  return TRUE;
    3.62                  case WM_COMMAND:
    3.63                  switch (LOWORD(wParam))
    3.64                  {
    3.65                          case IDOK:
    3.66 +			h = GetDlgItem(hdlg, IDC_MEMTEXT);
    3.67 +			SendMessage(h, WM_GETTEXT, 255, (LPARAM)temp_str);
    3.68 +			sscanf(temp_str, "%i", &mem);
    3.69 +			if (mem < 1 || mem > 256)
    3.70 +			{
    3.71 +				MessageBox(NULL, "Invalid memory size\nMemory must be between 1 and 256 MB", "PCem", MB_OK);
    3.72 +				break;
    3.73 +			}
    3.74 +			
    3.75 +			
    3.76                          h=GetDlgItem(hdlg,IDC_COMBO1);
    3.77                          temp_model = listtomodel[SendMessage(h,CB_GETCURSEL,0,0)];
    3.78  
    3.79 @@ -771,9 +752,6 @@
    3.80                          SendMessage(h, CB_GETLBTEXT, SendMessage(h,CB_GETCURSEL,0,0), (LPARAM)temp_str);
    3.81                          gfx = video_new_to_old(video_card_getid(temp_str));
    3.82  
    3.83 -                        h=GetDlgItem(hdlg,IDC_COMBOMEM);
    3.84 -                        mem=mem_list_to_size[SendMessage(h,CB_GETCURSEL,0,0)];
    3.85 -
    3.86                          h = GetDlgItem(hdlg, IDC_COMBOCPUM);
    3.87                          temp_cpu_m = SendMessage(h, CB_GETCURSEL, 0, 0);
    3.88                          h = GetDlgItem(hdlg, IDC_COMBO3);