Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 19 additions & 20 deletions FD502/fd502.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,7 @@ static unsigned char RGBDiskRom[EXTROMSIZE];
static char FloppyPath[MAX_PATH];
static char RomFileName[MAX_PATH]="";
static char TempRomFileName[MAX_PATH]="";
static void* gCallbackContextPtr = nullptr;
void* const& gCallbackContext(gCallbackContextPtr);
slot_id_type gSlotId {};
PakAssertInteruptHostCallback AssertInt = nullptr;
static PakAppendCartridgeMenuHostCallback CartMenuCallback = nullptr;
unsigned char PhysicalDriveA=0,PhysicalDriveB=0,OldPhysicalDriveA=0,OldPhysicalDriveB=0;
Expand Down Expand Up @@ -120,13 +119,13 @@ extern "C"
}

__declspec(dllexport) void PakInitialize(
void* const callback_context,
slot_id_type SlotId,
const char* const configuration_path,
HWND hVccWnd,
const cpak_callbacks* const callbacks)
{
DLOG_C("FDC %p %p %p %p %p\n",*callbacks);
gCallbackContextPtr = callback_context;
gSlotId = SlotId;
CartMenuCallback = callbacks->add_menu_item;
AssertInt = callbacks->assert_interrupt;
strcpy(IniFile, configuration_path);
Expand Down Expand Up @@ -452,43 +451,43 @@ void BuildCartridgeMenu()
if (CartMenuCallback ==nullptr)
MessageBox(g_hConfDlg,"No good","Ok",0);

CartMenuCallback(gCallbackContext, "", MID_BEGIN, MIT_Head);
CartMenuCallback(gCallbackContext, "", MID_ENTRY, MIT_Seperator);
CartMenuCallback(gSlotId, "", MID_BEGIN, MIT_Head);
CartMenuCallback(gSlotId, "", MID_ENTRY, MIT_Seperator);

CartMenuCallback(gCallbackContext, "FD-502 Drive 0",MID_ENTRY,MIT_Head);
CartMenuCallback(gCallbackContext, "Insert",ControlId(10),MIT_Slave);
CartMenuCallback(gSlotId, "FD-502 Drive 0",MID_ENTRY,MIT_Head);
CartMenuCallback(gSlotId, "Insert",ControlId(10),MIT_Slave);
strncpy(TempMsg,"Eject: ",MAX_PATH);
strncpy(TempBuf,gVirtualDrive[0].ImageName,MAX_PATH);
PathStripPath(TempBuf);
strncat(TempMsg,TempBuf,MAX_PATH);
CartMenuCallback(gCallbackContext, TempMsg,ControlId(11),MIT_Slave);
CartMenuCallback(gSlotId, TempMsg,ControlId(11),MIT_Slave);

CartMenuCallback(gCallbackContext, "FD-502 Drive 1",MID_ENTRY,MIT_Head);
CartMenuCallback(gCallbackContext, "Insert",ControlId(12),MIT_Slave);
CartMenuCallback(gSlotId, "FD-502 Drive 1",MID_ENTRY,MIT_Head);
CartMenuCallback(gSlotId, "Insert",ControlId(12),MIT_Slave);
strncpy(TempMsg,"Eject: ",MAX_PATH);
strncpy(TempBuf,gVirtualDrive[1].ImageName,MAX_PATH);
PathStripPath(TempBuf);
strncat(TempMsg,TempBuf,MAX_PATH);
CartMenuCallback(gCallbackContext, TempMsg,ControlId(13),MIT_Slave);
CartMenuCallback(gSlotId, TempMsg,ControlId(13),MIT_Slave);

CartMenuCallback(gCallbackContext, "FD-502 Drive 2",MID_ENTRY,MIT_Head);
CartMenuCallback(gCallbackContext, "Insert",ControlId(14),MIT_Slave);
CartMenuCallback(gSlotId, "FD-502 Drive 2",MID_ENTRY,MIT_Head);
CartMenuCallback(gSlotId, "Insert",ControlId(14),MIT_Slave);
strncpy(TempMsg,"Eject: ",MAX_PATH);
strncpy(TempBuf,gVirtualDrive[2].ImageName,MAX_PATH);
PathStripPath(TempBuf);
strncat(TempMsg,TempBuf,MAX_PATH);
CartMenuCallback(gCallbackContext, TempMsg,ControlId(15),MIT_Slave);
CartMenuCallback(gSlotId, TempMsg,ControlId(15),MIT_Slave);

CartMenuCallback(gCallbackContext, "FD-502 Drive 3",MID_ENTRY,MIT_Head);
CartMenuCallback(gCallbackContext, "Insert",ControlId(17),MIT_Slave);
CartMenuCallback(gSlotId, "FD-502 Drive 3",MID_ENTRY,MIT_Head);
CartMenuCallback(gSlotId, "Insert",ControlId(17),MIT_Slave);
strncpy(TempMsg,"Eject: ",MAX_PATH);
strncpy(TempBuf,gVirtualDrive[3].ImageName,MAX_PATH);
PathStripPath(TempBuf);
strncat(TempMsg,TempBuf,MAX_PATH);
CartMenuCallback(gCallbackContext, TempMsg,ControlId(18),MIT_Slave);
CartMenuCallback(gSlotId, TempMsg,ControlId(18),MIT_Slave);

CartMenuCallback(gCallbackContext, "FD-502 Config",ControlId(16),MIT_StandAlone);
CartMenuCallback(gCallbackContext,"", MID_FINISH, MIT_Head);
CartMenuCallback(gSlotId, "FD-502 Config",ControlId(16),MIT_StandAlone);
CartMenuCallback(gSlotId,"", MID_FINISH, MIT_Head);
}

long CreateDisk (unsigned char Disk)
Expand Down
2 changes: 1 addition & 1 deletion FD502/fd502.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ This file is part of VCC (Virtual Color Computer).
*/
#include <vcc/bus/cpak_cartridge_definitions.h>

extern void*const& gCallbackContext;
extern slot_id_type gSlotId;
extern PakAssertInteruptHostCallback AssertInt;
void BuildCartridgeMenu();

Expand Down
4 changes: 2 additions & 2 deletions FD502/wd1793.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -964,7 +964,7 @@ void DispatchCommand(unsigned char Tmp)
StatusReg=READY;
ExecTimeWaiter=1;
if ((Tmp & 15) != 0)
AssertInt(gCallbackContext, INT_NMI,IS_NMI);
AssertInt(gSlotId, INT_NMI,IS_NMI);
// WriteLog("FORCEINTERUPT",0);
break;

Expand Down Expand Up @@ -1309,7 +1309,7 @@ long GetSectorInfo (SectorInfo *Sector,const unsigned char *TempBuffer)
void CommandDone()
{
if (InteruptEnable)
AssertInt(gCallbackContext, INT_NMI,IS_NMI);
AssertInt(gSlotId, INT_NMI,IS_NMI);
TransferBufferSize=0;
CurrentCommand=IDLE;
}
Expand Down
11 changes: 4 additions & 7 deletions GMC/Cartridge.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@

namespace detail
{
void NullAssetCartridgeLine(void*, bool) {}
void NullAddMenuItem(void*, const char *, int, MenuItemType) {}
void NullAssetCartridgeLine(slot_id_type, bool) {}
void NullAddMenuItem(slot_id_type, const char *, int, MenuItemType) {}
}


Expand All @@ -47,8 +47,6 @@ Cartridge::~Cartridge()
}




void Cartridge::LoadConfiguration(const std::string& /*filename*/)
{
}
Expand All @@ -59,10 +57,9 @@ void Cartridge::LoadMenuItems()
}



void Cartridge::SetCallbackContext(void* key)
void Cartridge::SetSlotId(slot_id_type SlotId)
{
m_CallbackContext = key;
m_SlotId = SlotId;
}


Expand Down
14 changes: 7 additions & 7 deletions GMC/Cartridge.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

namespace detail
{
void NullAssetCartridgeLine(void*, bool);
void NullAddMenuItem(void*, const char*, int, MenuItemType);
void NullAssetCartridgeLine(slot_id_type, bool);
void NullAddMenuItem(slot_id_type, const char*, int, MenuItemType);
}

class Cartridge
Expand All @@ -20,7 +20,7 @@ class Cartridge
virtual ~Cartridge();


virtual void SetCallbackContext(void* key);
virtual void SetSlotId(slot_id_type SlotId);
virtual void SetCartLineAssertCallback(PakAssertCartridgeLineHostCallback callback);
virtual void SetMenuBuilderCallback(PakAppendCartridgeMenuHostCallback addMenuCallback);
virtual void SetConfigurationPath(std::string path);
Expand All @@ -39,12 +39,12 @@ class Cartridge

void AssetCartridgeLine(bool state) const
{
AssetCartridgeLinePtr(m_CallbackContext, state);
AssetCartridgeLinePtr(m_SlotId, state);
}

void AddMenuItem(const char * name, int id, MenuItemType type)
{
AddMenuItemPtr(m_CallbackContext, name, id, type);
AddMenuItemPtr(m_SlotId, name, id, type);
}

virtual void LoadConfiguration(const std::string& filename);
Expand All @@ -55,7 +55,7 @@ class Cartridge
friend const char* PakGetName();
friend const char* PakGetCatalogId();
friend void PakInitialize(
void* const callback_context,
slot_id_type SlotId,
const char* const configuration_path,
HWND hVccWnd,
const cpak_callbacks* const callbacks);
Expand All @@ -71,7 +71,7 @@ class Cartridge

static Cartridge* m_Singleton;

void* m_CallbackContext = nullptr;
slot_id_type m_SlotId {};
std::string m_Name;
std::string m_CatalogId;
std::string m_ConfigurationPath;
Expand Down
4 changes: 2 additions & 2 deletions GMC/CartridgeTrampolines.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ GMC_EXPORT const char* PakGetDescription()


GMC_EXPORT void PakInitialize(
void* const callback_context,
slot_id_type SlotId,
const char* const configuration_path,
HWND hVccWnd,
const cpak_callbacks* const callbacks)
Expand All @@ -47,7 +47,7 @@ GMC_EXPORT void PakInitialize(
callbacks->read_memory_byte,
callbacks->add_menu_item);

Cartridge::m_Singleton->SetCallbackContext(callback_context);
Cartridge::m_Singleton->SetSlotId(SlotId);
Cartridge::m_Singleton->SetMenuBuilderCallback(callbacks->add_menu_item);
Cartridge::m_Singleton->SetCartLineAssertCallback(callbacks->assert_cartridge_line);
Cartridge::m_Singleton->SetConfigurationPath(configuration_path);
Expand Down
2 changes: 1 addition & 1 deletion GMC/CartridgeTrampolines.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
GMC_EXPORT const char* PakGetName();
GMC_EXPORT const char* PakGetCatalogId();
GMC_EXPORT void PakInitialize(
void* const callback_context,
slot_id_type SlotId,
const char* const configuration_path,
HWND hVccWnd,
const cpak_callbacks* const callbacks);
Expand Down
30 changes: 15 additions & 15 deletions HardDisk/harddisk.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ static char IniFile[MAX_PATH] { 0 };
static char HardDiskPath[MAX_PATH];
static ::VCC::Device::rtc::cloud9 cloud9_rtc;

static void* gCallbackContext = nullptr;
static slot_id_type gSlotId {};
static PakReadMemoryByteHostCallback MemRead8 = nullptr;
static PakWriteMemoryByteHostCallback MemWrite8 = nullptr;
static PakAppendCartridgeMenuHostCallback CartMenuCallback = nullptr;
Expand All @@ -64,12 +64,12 @@ using namespace std;

void MemWrite(unsigned char Data, unsigned short Address)
{
MemWrite8(gCallbackContext, Data, Address);
MemWrite8(gSlotId, Data, Address);
}

unsigned char MemRead(unsigned short Address)
{
return MemRead8(gCallbackContext, Address);
return MemRead8(gSlotId, Address);
}


Expand Down Expand Up @@ -104,12 +104,12 @@ extern "C"
}

__declspec(dllexport) void PakInitialize(
void* const callback_context,
slot_id_type SlotId,
const char* const configuration_path,
HWND hVccWnd,
const cpak_callbacks* const callbacks)
{
gCallbackContext = callback_context;
gSlotId = SlotId;
CartMenuCallback = callbacks->add_menu_item;
MemRead8 = callbacks->read_memory_byte;
MemWrite8 = callbacks->write_memory_byte;
Expand Down Expand Up @@ -378,27 +378,27 @@ void BuildCartridgeMenu()
char TempMsg[512] = "";
char TempBuf[MAX_PATH] = "";

CartMenuCallback(gCallbackContext, "", MID_BEGIN, MIT_Head);
CartMenuCallback(gCallbackContext, "", MID_ENTRY, MIT_Seperator);
CartMenuCallback(gSlotId, "", MID_BEGIN, MIT_Head);
CartMenuCallback(gSlotId, "", MID_ENTRY, MIT_Seperator);

CartMenuCallback(gCallbackContext, "HD Drive 0", MID_ENTRY, MIT_Head);
CartMenuCallback(gCallbackContext, "Insert", ControlId(10), MIT_Slave);
CartMenuCallback(gSlotId, "HD Drive 0", MID_ENTRY, MIT_Head);
CartMenuCallback(gSlotId, "Insert", ControlId(10), MIT_Slave);
strcpy(TempMsg, "Eject: ");
strcpy(TempBuf, VHDfile0);
PathStripPath(TempBuf);
strcat(TempMsg, TempBuf);
CartMenuCallback(gCallbackContext, TempMsg, ControlId(11), MIT_Slave);
CartMenuCallback(gSlotId, TempMsg, ControlId(11), MIT_Slave);

CartMenuCallback(gCallbackContext, "HD Drive 1", MID_ENTRY, MIT_Head);
CartMenuCallback(gCallbackContext, "Insert", ControlId(12), MIT_Slave);
CartMenuCallback(gSlotId, "HD Drive 1", MID_ENTRY, MIT_Head);
CartMenuCallback(gSlotId, "Insert", ControlId(12), MIT_Slave);
strcpy(TempMsg, "Eject: ");
strcpy(TempBuf, VHDfile1);
PathStripPath(TempBuf);
strcat(TempMsg, TempBuf);
CartMenuCallback(gCallbackContext, TempMsg, ControlId(13), MIT_Slave);
CartMenuCallback(gSlotId, TempMsg, ControlId(13), MIT_Slave);

CartMenuCallback(gCallbackContext, "HD Config", ControlId(14), MIT_StandAlone);
CartMenuCallback(gCallbackContext, "", MID_FINISH, MIT_Head);
CartMenuCallback(gSlotId, "HD Config", ControlId(14), MIT_StandAlone);
CartMenuCallback(gSlotId, "", MID_FINISH, MIT_Head);
}

// Dialog for creating a new hard disk
Expand Down
27 changes: 13 additions & 14 deletions SuperIDE/SuperIDE.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,7 @@ static bool ClockReadOnly = true;
static unsigned char DataLatch=0;
static HINSTANCE gModuleInstance;
static HWND hConfDlg = nullptr;
static void* gCallbackContextPtr = nullptr;
static void* const& gCallbackContext(gCallbackContextPtr);
static slot_id_type gSlotId {};

using namespace std;

Expand Down Expand Up @@ -87,12 +86,12 @@ extern "C"
}

__declspec(dllexport) void PakInitialize(
void* const callback_context,
slot_id_type SlotId,
const char* const configuration_path,
HWND hVccWnd,
const cpak_callbacks* const callbacks)
{
gCallbackContextPtr = callback_context;
gSlotId = SlotId;
CartMenuCallback = callbacks->add_menu_item;
strcpy(IniFile, configuration_path);

Expand Down Expand Up @@ -221,24 +220,24 @@ void BuildCartridgeMenu()
{
char TempMsg[512]="";
char TempBuf[MAX_PATH]="";
CartMenuCallback(gCallbackContext, "", MID_BEGIN, MIT_Head);
CartMenuCallback(gCallbackContext, "", MID_ENTRY, MIT_Seperator);
CartMenuCallback(gCallbackContext, "IDE Master",MID_ENTRY,MIT_Head);
CartMenuCallback(gCallbackContext, "Insert",ControlId(10),MIT_Slave);
CartMenuCallback(gSlotId, "", MID_BEGIN, MIT_Head);
CartMenuCallback(gSlotId, "", MID_ENTRY, MIT_Seperator);
CartMenuCallback(gSlotId, "IDE Master",MID_ENTRY,MIT_Head);
CartMenuCallback(gSlotId, "Insert",ControlId(10),MIT_Slave);
QueryDisk(MASTER,TempBuf);
strcpy(TempMsg,"Eject: ");
PathStripPath (TempBuf);
strcat(TempMsg,TempBuf);
CartMenuCallback(gCallbackContext, TempMsg,ControlId(11),MIT_Slave);
CartMenuCallback(gCallbackContext, "IDE Slave",MID_ENTRY,MIT_Head);
CartMenuCallback(gCallbackContext, "Insert",ControlId(12),MIT_Slave);
CartMenuCallback(gSlotId, TempMsg,ControlId(11),MIT_Slave);
CartMenuCallback(gSlotId, "IDE Slave",MID_ENTRY,MIT_Head);
CartMenuCallback(gSlotId, "Insert",ControlId(12),MIT_Slave);
QueryDisk(SLAVE,TempBuf);
strcpy(TempMsg,"Eject: ");
PathStripPath (TempBuf);
strcat(TempMsg,TempBuf);
CartMenuCallback(gCallbackContext, TempMsg,ControlId(13),MIT_Slave);
CartMenuCallback(gCallbackContext, "IDE Config",ControlId(14),MIT_StandAlone);
CartMenuCallback(gCallbackContext, "", MID_FINISH, MIT_Head);
CartMenuCallback(gSlotId, TempMsg,ControlId(13),MIT_Slave);
CartMenuCallback(gSlotId, "IDE Config",ControlId(14),MIT_StandAlone);
CartMenuCallback(gSlotId, "", MID_FINISH, MIT_Head);
}

LRESULT CALLBACK IDE_Config(HWND hDlg, UINT message, WPARAM wParam, LPARAM /*lParam*/)
Expand Down
Loading