ZerosquareLe 26/08/2020 à 18:32
Debug.cpp : #define ROMTBL(x) hw->getmem_dword(hw->getmem_dword(0xc8)+(x)*4)
#define HANDLE_TABLE hw->getmem_dword(ROMTBL(0x2f)+0x11a)
#define HANDLE_TABLE_92 cpu_readmem24_dword(romFuncAddr[0x1c]+0x1902)
#define HANDLE(x) hw->getmem_dword(HANDLE_TABLE+4*(x))
#define HANDLE92(x) hw->getmem_dword(HANDLE_TABLE_92+4*(x))
#define GETBYTE(x) (cpu_readmem24(x)&0xff)
#define GETWORD(x) (cpu_readmem24_word(x)&0xffff)
if ((calc==89)||(calc==94))
{
HandlesBox->Caption="Handles";
max=hw->getmem_word(ROMTBL(0x2f)+0x104);
if (max>0x800) max=0x800;
for (i=0,chg=0;i<max;i++)
{
int addr=hw->getmem_dword(HANDLE_TABLE+4*i);
if (addr)
{
n=i+1;
if (addr!=oldHandleList[i])
chg=1;
}
}
if ((n!=oldHandleCount)||chg)
{
Handles->Clear();
for (i=0;i<n;i++)
{
int addr=hw->getmem_dword(HANDLE_TABLE+4*i);
sprintf(str,"$%4.4X -> $%6.6X",i,addr);
oldHandleList[i]=addr;
Handles->Items->Add(str);
}
oldHandleCount=n;
}
}
else if (calc==92)
{
HandlesBox->Caption="Handles";
max=hw->getmem_word(0x5d2c);
if (max>0x800) max=0x800;
for (i=0,chg=0;i<max;i++)
{
int addr=hw->getmem_dword(hw->getmem_dword(0x5d42)+4*i);
if (addr)
{
n=i+1;
if (addr!=oldHandleList[i])
chg=1;
}
}
if ((n!=oldHandleCount)||chg)
{
Handles->Clear();
for (i=0;i<n;i++)
{
int addr=hw->getmem_dword(hw->getmem_dword(0x5d42)+4*i);
sprintf(str,"$%4.4X -> $%6.6X",i,addr);
oldHandleList[i]=addr;
Handles->Items->Add(str);
}
oldHandleCount=n;
}
}