Changes:
. Set 50% scan lines as the default.
Fixes:
. Fix OpenFileName dialogs for Win98 (use older WinVer4 struct).
. Edits to the 'Printer dump filename' edit control are now recognised.
This commit is contained in:
tomch 2010-12-30 20:10:48 +00:00
parent ddfddab911
commit fe39be8a5b
9 changed files with 67 additions and 36 deletions

View File

@ -18,6 +18,17 @@ Restrictions/bugs:
- During Mockingboard playback, Speaker emulation isn't precise.
- For an original Apple //e, 80-column (PR#3) and INVERSE, it still appears to be mousetext character, but it should be inverted upper-case from $40 to $5F.
1.19.3 - 30 Dec 2010
--------------------
Changes:
. Set 50% scan lines as the default.
Fixes:
. Fix OpenFileName dialogs for Win98 (use older WinVer4 struct).
. Edits to the 'Printer dump filename' edit control are now recognised.
1.19.2 - 20 Dec 2010
--------------------
Changes:

View File

@ -218,8 +218,8 @@ BEGIN
PUSHBUTTON "&Load State",IDC_LOADSTATE,13,76,85,15
LTEXT "(F12 during emulation)",IDC_STATIC,107,79,90,8
LTEXT "&Printer dump filename:",IDC_STATIC,5,97,74,8
EDITTEXT IDC_DUMP_FILENAME,5,107,143,12,ES_AUTOHSCROLL
PUSHBUTTON "B&rowse...",IDC_DUMP_FILENAME_BROWSE,154,106,50,14
EDITTEXT IDC_PRINTER_DUMP_FILENAME,5,107,143,12,ES_AUTOHSCROLL
PUSHBUTTON "B&rowse...",IDC_PRINTER_DUMP_FILENAME_BROWSE,154,106,50,14
CONTROL "&Dump to printer (use with caution)",IDC_DUMPTOPRINTER,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,5,124,180,10
CONTROL "&Encoding conversion for clones",IDC_PRINTER_CONVERT_ENCODING,
@ -253,8 +253,8 @@ DISK_ICON ICON "DISK.ICO"
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,19,2,0
PRODUCTVERSION 1,19,2,0
FILEVERSION 1,19,3,0
PRODUCTVERSION 1,19,3,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -272,12 +272,12 @@ BEGIN
VALUE "Comments", "http://applewin.berlios.de"
VALUE "CompanyName", "AppleWin"
VALUE "FileDescription", "Apple //e Emulator for Windows"
VALUE "FileVersion", "1, 19, 2, 0"
VALUE "FileVersion", "1, 19, 3, 0"
VALUE "InternalName", "APPLEWIN"
VALUE "LegalCopyright", " 1994-2010 Michael O'Brien, Oliver Schmidt, Tom Charlesworth, Michael Pohoreski, Nick Westgate, Linards Ticmanis"
VALUE "OriginalFilename", "APPLEWIN.EXE"
VALUE "ProductName", "Apple //e Emulator"
VALUE "ProductVersion", "1, 19, 2, 0"
VALUE "ProductVersion", "1, 19, 3, 0"
END
END
BLOCK "VarFileInfo"

View File

@ -89,8 +89,8 @@
#define IDC_CIDERPRESS_FILENAME 1050
#define IDC_Z80_IN_SLOT5 1051
#define IDC_DUMPTOPRINTER 1052
#define IDC_DUMP_FILENAME 1053
#define IDC_DUMP_FILENAME_BROWSE 1054
#define IDC_PRINTER_DUMP_FILENAME 1053
#define IDC_PRINTER_DUMP_FILENAME_BROWSE 1054
#define IDC_PRINTER_CONVERT_ENCODING 1055
#define IDC_PRINTER_FILTER_UNPRINTABLE 1056
#define IDC_PRINTER_APPEND 1057

View File

@ -925,7 +925,7 @@ int APIENTRY WinMain (HINSTANCE passinstance, HINSTANCE, LPSTR lpCmdLine, int)
// Initialize COM - so we can use CoCreateInstance
// . NB. DSInit() & DIMouse::DirectInputInit are done when g_hFrameWindow is created (WM_CREATE)
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
// CoInitialize(NULL);
bool bSysClkOK = SysClk_InitTimer();
#ifdef USE_SPEECH_API
if (g_bEnableSpeech)

View File

@ -740,6 +740,8 @@ void DiskSelectImage(const int iDrive, LPSTR pszFilename)
_tcscpy(title, TEXT("Select Disk Image For Drive "));
_tcscat(title, iDrive ? TEXT("2") : TEXT("1"));
_ASSERT(sizeof(OPENFILENAME) == sizeof(OPENFILENAME_NT4)); // Required for Win98/ME support (selected by _WIN32_WINNT=0x0400 in stdafx.h)
OPENFILENAME ofn;
ZeroMemory(&ofn,sizeof(OPENFILENAME));
ofn.lStructSize = sizeof(OPENFILENAME);

View File

@ -1855,7 +1855,7 @@ void FrameCreateWindow ()
{
int nXScreen = GetSystemMetrics(SM_CXSCREEN) - nWidth;
if (RegLoadValue(TEXT("Preferences"), TEXT("Window X-Position"), 1, (DWORD*)&nXPos))
if (RegLoadValue(TEXT(REG_PREFS), TEXT("Window X-Position"), 1, (DWORD*)&nXPos))
{
if (nXPos > nXScreen)
nXPos = -1; // Not fully visible, so default to centre position
@ -1871,7 +1871,7 @@ void FrameCreateWindow ()
{
int nYScreen = GetSystemMetrics(SM_CYSCREEN) - nHeight;
if (RegLoadValue(TEXT("Preferences"), TEXT("Window Y-Position"), 1, (DWORD*)&nYPos))
if (RegLoadValue(TEXT(REG_PREFS), TEXT("Window Y-Position"), 1, (DWORD*)&nYPos))
{
if (nYPos > nYScreen)
nYPos = -1; // Not fully visible, so default to centre position

View File

@ -290,14 +290,13 @@ static void ConfigDlg_OK(HWND window, UINT afterclose)
{
DWORD NewCompType = (DWORD) SendDlgItemMessage(window,IDC_COMPUTER,CB_GETCURSEL,0,0);
DWORD OldApple2Type = g_Apple2Type;
eApple2Type NewApple2Type = GetApple2Type(NewCompType, 0 );
eApple2Type NewApple2Type = GetApple2Type(NewCompType, 0);
DWORD newvidtype = (DWORD)SendDlgItemMessage(window,IDC_VIDEOTYPE,CB_GETCURSEL,0,0);
DWORD newserialport = (DWORD)SendDlgItemMessage(window,IDC_SERIALPORT,CB_GETCURSEL,0,0);
if (OldApple2Type > (APPLECLONE_MASK|APPLE2E_MASK))
OldApple2Type = (APPLECLONE_MASK|APPLE2E_MASK);
if (NewApple2Type != OldApple2Type)
{
@ -1158,10 +1157,10 @@ static void SaveStateUpdate()
{
Snapshot_SetFilename(g_szSSNewFilename);
RegSaveString(TEXT(REG_CONFIG),REGVALUE_SAVESTATE_FILENAME,1,Snapshot_GetFilename());
RegSaveString(TEXT(REG_CONFIG), REGVALUE_SAVESTATE_FILENAME, 1, Snapshot_GetFilename());
if(g_szSSNewDirectory[0])
RegSaveString(TEXT("Preferences"),REGVALUE_PREF_START_DIR,1,g_szSSNewDirectory); RegSaveString(TEXT("Preferences"),REGVALUE_PREF_START_DIR,1,g_szSSNewDirectory);
RegSaveString(TEXT(REG_PREFS), REGVALUE_PREF_START_DIR, 1 ,g_szSSNewDirectory);
}
}
@ -1202,7 +1201,7 @@ static int SaveStateSelectImage(HWND hWindow, TCHAR* pszTitle, bool bSave)
}
}
RegLoadString(TEXT("Preferences"),REGVALUE_PREF_START_DIR,1,szDirectory,MAX_PATH);
RegLoadString(TEXT(REG_PREFS),REGVALUE_PREF_START_DIR,1,szDirectory,MAX_PATH);
//
@ -1259,20 +1258,38 @@ static void InitFreezeDlgButton(HWND window)
static void AdvancedDlg_OK(HWND window, UINT afterclose)
{
char szFilename[MAX_PATH];
memset(szFilename, 0, sizeof(szFilename));
* (USHORT*) szFilename = sizeof(szFilename);
// Update save-state filename
{
char szFilename[MAX_PATH];
memset(szFilename, 0, sizeof(szFilename));
* (USHORT*) szFilename = sizeof(szFilename);
UINT nLineLength = SendDlgItemMessage(window,IDC_SAVESTATE_FILENAME,EM_LINELENGTH,0,0);
UINT nLineLength = SendDlgItemMessage(window, IDC_SAVESTATE_FILENAME, EM_LINELENGTH, 0, 0);
SendDlgItemMessage(window,IDC_SAVESTATE_FILENAME,EM_GETLINE,0,(LPARAM)szFilename);
SendDlgItemMessage(window, IDC_SAVESTATE_FILENAME, EM_GETLINE, 0, (LPARAM)szFilename);
nLineLength = nLineLength > sizeof(szFilename)-1 ? sizeof(szFilename)-1 : nLineLength;
szFilename[nLineLength] = 0x00;
nLineLength = nLineLength > sizeof(szFilename)-1 ? sizeof(szFilename)-1 : nLineLength;
szFilename[nLineLength] = 0x00;
SaveStateUpdate();
RegSaveString(TEXT("Configuration"),REGVALUE_PRINTER_FILENAME,1,Printer_GetFilename());
// PrinterStateUpdate();
SaveStateUpdate();
}
// Update printer dump filename
{
char szFilename[MAX_PATH];
memset(szFilename, 0, sizeof(szFilename));
* (USHORT*) szFilename = sizeof(szFilename);
UINT nLineLength = SendDlgItemMessage(window, IDC_PRINTER_DUMP_FILENAME, EM_LINELENGTH, 0, 0);
SendDlgItemMessage(window, IDC_PRINTER_DUMP_FILENAME, EM_GETLINE, 0, (LPARAM)szFilename);
nLineLength = nLineLength > sizeof(szFilename)-1 ? sizeof(szFilename)-1 : nLineLength;
szFilename[nLineLength] = 0x00;
Printer_SetFilename(szFilename);
RegSaveString(TEXT(REG_CONFIG), REGVALUE_PRINTER_FILENAME, 1, Printer_GetFilename());
}
g_bSaveStateOnExit = IsDlgButtonChecked(window, IDC_SAVESTATE_ON_EXIT) ? true : false;
REGSAVE(TEXT(REGVALUE_SAVE_STATE_ON_EXIT), g_bSaveStateOnExit ? 1 : 0);
@ -1394,15 +1411,12 @@ static BOOL CALLBACK AdvancedDlgProc (HWND window,
break;
case IDC_SAVESTATE_BROWSE:
if(SaveStateSelectImage(window, TEXT("Select Save State file"), true))
SendDlgItemMessage(window, IDC_SAVESTATE_FILENAME, WM_SETTEXT, 0, (LPARAM) g_szSSNewFilename);
SendDlgItemMessage(window, IDC_SAVESTATE_FILENAME, WM_SETTEXT, 0, (LPARAM)g_szSSNewFilename);
break;
case IDC_DUMP_FILENAME_BROWSE:
case IDC_PRINTER_DUMP_FILENAME_BROWSE:
{
char PrinterDumpLoc[MAX_PATH] = {0};
strcpy(PrinterDumpLoc, BrowseToFile (window, TEXT("Select printer dump file"), REGVALUE_PRINTER_FILENAME, TEXT("Text files (*.txt)\0*.txt\0") TEXT("All Files\0*.*\0")).c_str());
RegSaveString(TEXT("Configuration"),REGVALUE_PRINTER_FILENAME,1,PrinterDumpLoc);
SendDlgItemMessage(window, IDC_DUMP_FILENAME, WM_SETTEXT, 0, (LPARAM) PrinterDumpLoc);
Printer_SetFilename (PrinterDumpLoc);
string strPrinterDumpLoc = BrowseToFile(window, TEXT("Select printer dump file"), REGVALUE_PRINTER_FILENAME, TEXT("Text files (*.txt)\0*.txt\0") TEXT("All Files\0*.*\0"));
SendDlgItemMessage(window, IDC_PRINTER_DUMP_FILENAME, WM_SETTEXT, 0, (LPARAM)strPrinterDumpLoc.c_str());
}
break;
case IDC_SAVESTATE_ON_EXIT:
@ -1452,7 +1466,7 @@ static BOOL CALLBACK AdvancedDlgProc (HWND window,
CheckDlgButton(window, IDC_PRINTER_APPEND, g_bPrinterAppend ? BST_CHECKED : BST_UNCHECKED);
SendDlgItemMessage(window, IDC_SPIN_PRINTER_IDLE, UDM_SETRANGE, 0, MAKELONG(999,0));
SendDlgItemMessage(window, IDC_SPIN_PRINTER_IDLE, UDM_SETPOS, 0, MAKELONG(Printer_GetIdleLimit (),0));
SendDlgItemMessage(window,IDC_DUMP_FILENAME,WM_SETTEXT,0,(LPARAM)Printer_GetFilename());
SendDlgItemMessage(window, IDC_PRINTER_DUMP_FILENAME, WM_SETTEXT, 0, (LPARAM)Printer_GetFilename());
FillComboBox(window, IDC_CLONETYPE, g_CloneChoices, g_uCloneType);
InitFreezeDlgButton(window);

View File

@ -1,5 +1,9 @@
//#define WIN32_LEAN_AND_MEAN
//#define _WIN32_WINNT 0x0400 // For CoInitializeEx() to get defined in objbase.h (Updated[TC]: Removed as not needed)
// Required for Win98/ME support:
// . See: http://support.embarcadero.com/article/35754
// . "GetOpenFileName() fails under Windows 95/98/NT/ME due to incorrect OPENFILENAME structure size"
#define _WIN32_WINNT 0x0400
// Mouse Wheel is not supported on Win95.
// If we didn't care about supporting Win95 (compile/run-time errors)

View File

@ -238,7 +238,7 @@ static LPBYTE vidlastmem = NULL;
static DWORD vidmode = VF_TEXT;
DWORD g_eVideoType = VT_COLOR_TVEMU;
DWORD g_uHalfScanLines = false; // drop 50% scan lines for a more authentic look
DWORD g_uHalfScanLines = true; // drop 50% scan lines for a more authentic look
static bool g_bTextFlashState = false;