Added ROM & FIRMWARE resources

This commit is contained in:
tomch 2006-03-13 23:46:57 +00:00
parent 35ec4f29b2
commit c895764652
6 changed files with 48 additions and 20 deletions

View File

@ -331,6 +331,12 @@
<Filter <Filter
Name="Resources" Name="Resources"
Filter=".txt,.ico,.bmp,.rc"> Filter=".txt,.ico,.bmp,.rc">
<File
RelativePath=".\resource\Apple2.rom">
</File>
<File
RelativePath=".\resource\Apple2e.rom">
</File>
<File <File
RelativePath=".\resource\Applewin.bmp"> RelativePath=".\resource\Applewin.bmp">
</File> </File>

View File

@ -456,6 +456,14 @@
Name="Resources" Name="Resources"
Filter=".txt,.ico,.bmp,.rc" Filter=".txt,.ico,.bmp,.rc"
> >
<File
RelativePath=".\resource\Apple2.rom"
>
</File>
<File
RelativePath=".\resource\Apple2e.rom"
>
</File>
<File <File
RelativePath=".\resource\Applewin.bmp" RelativePath=".\resource\Applewin.bmp"
> >

View File

@ -263,11 +263,18 @@ END
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //
// Data // FIRMWARE
// //
IDR_HDDRVR RCDATA "Hddrvr.bin" IDR_HDDRVR FIRMWARE "Hddrvr.bin"
/////////////////////////////////////////////////////////////////////////////
//
// ROM
//
IDR_APPLE2_ROM ROM "Apple2.rom"
IDR_APPLE2E_ROM ROM "Apple2e.rom"
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
// //

View File

@ -28,6 +28,8 @@
#define IDC_2_0_MHz 123 #define IDC_2_0_MHz 123
#define IDC_MAX_MHz 124 #define IDC_MAX_MHz 124
#define IDR_MENU 125 #define IDR_MENU 125
#define IDR_APPLE2_ROM 126
#define IDR_APPLE2E_ROM 127
#define IDC_MB_ENABLE 130 #define IDC_MB_ENABLE 130
#define IDC_KEYB_BUFFER_ENABLE 1005 #define IDC_KEYB_BUFFER_ENABLE 1005
#define IDC_SAVESTATE 1006 #define IDC_SAVESTATE 1006
@ -66,6 +68,6 @@
#define _APS_NEXT_RESOURCE_VALUE 131 #define _APS_NEXT_RESOURCE_VALUE 131
#define _APS_NEXT_COMMAND_VALUE 40007 #define _APS_NEXT_COMMAND_VALUE 40007
#define _APS_NEXT_CONTROL_VALUE 1031 #define _APS_NEXT_CONTROL_VALUE 1031
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 105
#endif #endif
#endif #endif

View File

@ -248,7 +248,7 @@ VOID HD_Load_Rom(LPBYTE lpMemRom)
if(!g_bHD_Enabled) if(!g_bHD_Enabled)
return; return;
HRSRC hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_HDDRVR), RT_RCDATA); HRSRC hResInfo = FindResource(NULL, MAKEINTRESOURCE(IDR_HDDRVR), "FIRMWARE");
if(hResInfo == NULL) if(hResInfo == NULL)
return; return;

View File

@ -28,6 +28,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include "StdAfx.h" #include "StdAfx.h"
#pragma hdrstop #pragma hdrstop
#include "..\resource\resource.h"
#define MF_80STORE 0x00000001 #define MF_80STORE 0x00000001
#define MF_ALTZP 0x00000002 #define MF_ALTZP 0x00000002
@ -894,21 +895,15 @@ void MemInitialize () {
#endif #endif
// READ THE APPLE FIRMWARE ROMS INTO THE ROM IMAGE // READ THE APPLE FIRMWARE ROMS INTO THE ROM IMAGE
TCHAR sRomFileName[ 128 ]; const UINT ROM_SIZE = 0x5000; // HACK: Magic #
_tcscpy( sRomFileName, apple2e ? TEXT("APPLE2E.ROM") : TEXT("APPLE2.ROM") );
TCHAR filename[MAX_PATH]; HRSRC hResInfo = apple2e ? FindResource(NULL, MAKEINTRESOURCE(IDR_APPLE2E_ROM), "ROM")
_tcscpy(filename,progdir); : FindResource(NULL, MAKEINTRESOURCE(IDR_APPLE2_ROM), "ROM");
_tcscat(filename,sRomFileName ); if(hResInfo == NULL)
HANDLE file = CreateFile(filename,
GENERIC_READ,
FILE_SHARE_READ,
(LPSECURITY_ATTRIBUTES)NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN,
NULL);
if (file == INVALID_HANDLE_VALUE)
{ {
TCHAR sRomFileName[ 128 ];
_tcscpy( sRomFileName, apple2e ? TEXT("APPLE2E.ROM") : TEXT("APPLE2.ROM") );
TCHAR sText[ 256 ]; TCHAR sText[ 256 ];
wsprintf( sText, TEXT("Unable to open the required firmware ROM data file.\n\nFile: %s."), sRomFileName ); wsprintf( sText, TEXT("Unable to open the required firmware ROM data file.\n\nFile: %s."), sRomFileName );
@ -919,9 +914,19 @@ void MemInitialize () {
ExitProcess(1); ExitProcess(1);
} }
DWORD bytesread; DWORD dwResSize = SizeofResource(NULL, hResInfo);
ReadFile(file,memrom,0x5000,&bytesread,NULL); // HACK: Magic # if(dwResSize != ROM_SIZE)
CloseHandle(file); return;
HGLOBAL hResData = LoadResource(NULL, hResInfo);
if(hResData == NULL)
return;
BYTE* pData = (BYTE*) LockResource(hResData); // NB. Don't need to unlock resource
if(pData == NULL)
return;
memcpy(memrom, pData, ROM_SIZE);
// TODO/FIXME: HACK! REMOVE A WAIT ROUTINE FROM THE DISK CONTROLLER'S FIRMWARE // TODO/FIXME: HACK! REMOVE A WAIT ROUTINE FROM THE DISK CONTROLLER'S FIRMWARE
{ {