#include "libFireBird.h" int getState(dword *toppyState) { static byte *fwToppyState = NULL; if(fwToppyState == NULL) { short *pOffset; InitTAPex(); pOffset = (short*)FindInstructionSequence( "83869d5c 2cd80032 1300004b 00001825 0006c080 3c018018 24219df0 00380821 8c210000 00200008 00000000", "FFF00000 FF0FFF00 FFFFFF00 FFFF00FF FFF0FFFF FFFF0000 FFFF0000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF", 0x80160000, 0x80200000, 0, FALSE); if(pOffset == NULL) { TAP_Print("No ToppyState variable - unsupported firmware (fw: %d:%x)\n",SysID,ApplID); return 0; } fwToppyState = (byte*)(FWgp + pOffset[1]); } *toppyState = *fwToppyState; return 1; } /* Use it something like: dword state, subState; TAP_GetState(&state, &subState); if(state == STATE_Normal && subState == SUBSTATE_MainMenu) { dword realState; if(getState(&realState) == 0 || realState == 0) { // Safe to handle keys if we think we have our OSD up } } */