void Disk_LoadLastDiskImage(const int iDrive) { _ASSERT(iDrive == DRIVE_1 || iDrive == DRIVE_2); char sFilePath[ MAX_PATH + 1]; sFilePath[0] = 0; char *pRegKey = (iDrive == DRIVE_1) ? REGVALUE_PREF_LAST_DISK_1 : REGVALUE_PREF_LAST_DISK_2; if (RegLoadString(TEXT(REG_PREFS),pRegKey,1,sFilePath,MAX_PATH)) { sFilePath[ MAX_PATH ] = 0; DiskSetDiskPathFilename(iDrive, sFilePath); #if _DEBUG // MessageBox(g_hFrameWindow,pFileName,pRegKey,MB_OK); #endif // _tcscat(imagefilename,TEXT("MASTER.DSK")); // TODO: Should remember last disk by user g_bSaveDiskImage = false; // Pass in ptr to local copy of filepath, since RemoveDisk() sets DiskPathFilename = "" DiskInsert(iDrive, sFilePath, IMAGE_USE_FILES_WRITE_PROTECT_STATUS, IMAGE_DONT_CREATE); g_bSaveDiskImage = true; } //else MessageBox(g_hFrameWindow,"Reg Key/Value not found",pRegKey,MB_OK); }
static int DoDiskInsert(const int nDrive, LPCSTR szFileName) { std::string strPathName; if (szFileName[0] == '\\' || szFileName[1] == ':') { // Abs pathname strPathName = szFileName; } else { // Rel pathname char szCWD[_MAX_PATH] = {0}; if (!GetCurrentDirectory(sizeof(szCWD), szCWD)) return false; strPathName = szCWD; strPathName.append("\\"); strPathName.append(szFileName); } ImageError_e Error = DiskInsert(nDrive, strPathName.c_str(), IMAGE_USE_FILES_WRITE_PROTECT_STATUS, IMAGE_DONT_CREATE); return Error == eIMAGE_ERROR_NONE; }
//=========================================================================== int APIENTRY WinMain (HINSTANCE passinstance, HINSTANCE previnstance, LPSTR lpCmdLine, int nCmdShow) { #ifdef CPUDEBUG char nomearq[MAX_PATH]; #endif char imagefilename[MAX_PATH]; // DO ONE-TIME INITIALIZATION instance = passinstance; // Initialize COM CoInitialize( NULL ); GdiSetBatchLimit(512); GetProgramDirectory(); RegisterExtensions(); FrameRegisterClass(); Inicializar1(); strcpy(imagefilename, progdir); strcat(imagefilename, NOMEARQTKDOS); if (lpCmdLine[0] != '\0') { CharLowerBuff(&lpCmdLine[strlen(lpCmdLine)-3],3); strcpy(imagefilename, lpCmdLine); } #ifdef CPUDEBUG strcpy(nomearq, progdir); strcat(nomearq, "debugCPU.txt"); DeleteFile(nomearq); arquivocpu = fopen(nomearq, "wb"); #endif do { // DO INITIALIZATION THAT MUST BE REPEATED FOR A RESTART restart = 0; mode = MODE_LOGO; LoadConfiguration(); DebugInitialize(); JoyInitialize(); MemInitialize(); VideoInitialize(); Timer_InitTimer(); FrameCreateWindow(); MemAtualizaSlotAux(); if (imagefilename[0] != '\0') { DiskInsert(0, imagefilename, FALSE, FALSE); imagefilename[0] = '\0'; } // ENTER THE MAIN MESSAGE LOOP EnterMessageLoop(); } while (restart); #ifdef CPUDEBUG //CloseHandle(arquivocpu); fclose(arquivocpu); #endif // Release COM CoUninitialize(); return 0; }