MCPcopy Index your code
hub / github.com/AppleWin/AppleWin / MemInitializeROM

Function MemInitializeROM

source/Memory.cpp:2047–2118  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2045}
2046
2047void MemInitializeROM(void)
2048{
2049 // READ THE APPLE FIRMWARE ROMS INTO THE ROM IMAGE
2050 UINT ROM_SIZE = 0;
2051 WORD resourceId = 0;
2052 switch (g_Apple2Type)
2053 {
2054 case A2TYPE_APPLE2: resourceId = IDR_APPLE2_ROM ; ROM_SIZE = Apple2RomSize ; break;
2055 case A2TYPE_APPLE2PLUS: resourceId = IDR_APPLE2_PLUS_ROM ; ROM_SIZE = Apple2RomSize ; break;
2056 case A2TYPE_APPLE2JPLUS: resourceId = IDR_APPLE2_JPLUS_ROM ; ROM_SIZE = Apple2RomSize ; break;
2057 case A2TYPE_APPLE2E: resourceId = IDR_APPLE2E_ROM ; ROM_SIZE = Apple2eRomSize; break;
2058 case A2TYPE_APPLE2EENHANCED:resourceId = IDR_APPLE2E_ENHANCED_ROM; ROM_SIZE = Apple2eRomSize; break;
2059 case A2TYPE_PRAVETS82: resourceId = IDR_PRAVETS_82_ROM ; ROM_SIZE = Apple2RomSize ; break;
2060 case A2TYPE_PRAVETS8M: resourceId = IDR_PRAVETS_8M_ROM ; ROM_SIZE = Apple2RomSize ; break;
2061 case A2TYPE_PRAVETS8A: resourceId = IDR_PRAVETS_8C_ROM ; ROM_SIZE = Apple2eRomSize; break;
2062 case A2TYPE_TK30002E: resourceId = IDR_TK3000_2E_ROM ; ROM_SIZE = Apple2eRomSize; break;
2063 case A2TYPE_BASE64A: resourceId = IDR_BASE_64A_ROM ; ROM_SIZE = Base64ARomSize; break;
2064 }
2065
2066 BYTE* pData = NULL;
2067 if (resourceId)
2068 {
2069 pData = GetFrame().GetResource(resourceId, "ROM", ROM_SIZE);
2070 }
2071
2072 if (pData == NULL)
2073 {
2074 char sRomFileName[ MAX_PATH ];
2075 switch (g_Apple2Type)
2076 {
2077 case A2TYPE_APPLE2: strcpy(sRomFileName, "APPLE2.ROM"); break;
2078 case A2TYPE_APPLE2PLUS: strcpy(sRomFileName, "APPLE2_PLUS.ROM"); break;
2079 case A2TYPE_APPLE2JPLUS: strcpy(sRomFileName, "APPLE2_JPLUS.ROM"); break;
2080 case A2TYPE_APPLE2E: strcpy(sRomFileName, "APPLE2E.ROM"); break;
2081 case A2TYPE_APPLE2EENHANCED:strcpy(sRomFileName, "APPLE2E_ENHANCED.ROM"); break;
2082 case A2TYPE_PRAVETS82: strcpy(sRomFileName, "PRAVETS82.ROM"); break;
2083 case A2TYPE_PRAVETS8M: strcpy(sRomFileName, "PRAVETS8M.ROM"); break;
2084 case A2TYPE_PRAVETS8A: strcpy(sRomFileName, "PRAVETS8C.ROM"); break;
2085 case A2TYPE_TK30002E: strcpy(sRomFileName, "TK3000e.ROM"); break;
2086 case A2TYPE_BASE64A: strcpy(sRomFileName, "BASE64A.ROM"); break;
2087 default:
2088 {
2089 strcpy(sRomFileName, "Unknown type!");
2090 GetPropertySheet().ConfigSaveApple2Type(A2TYPE_APPLE2EENHANCED);
2091 }
2092 }
2093
2094 std::string strText = StrFormat("Unable to open the required firmware ROM data file.\n\nFile: %s", sRomFileName);
2095
2096 LogFileOutput("%s\n", strText.c_str());
2097
2098 GetFrame().FrameMessageBox(strText.c_str(),
2099 g_pAppTitle.c_str(),
2100 MB_ICONSTOP | MB_SETFOREGROUND);
2101
2102 ExitProcess(1);
2103 }
2104

Callers 2

MemInitializeFunction · 0.85

Calls 5

StrFormatFunction · 0.85
LogFileOutputFunction · 0.85
GetResourceMethod · 0.80
FrameMessageBoxMethod · 0.80
ConfigSaveApple2TypeMethod · 0.45

Tested by

no test coverage detected