x86BiosTranslateAddress
INT64 *__fastcall x86BiosTranslateAddress(UINT16 a1, UINT16 a2){
unsigned int v2;
__int64 v4;
unsigned int v5;
INT64 *v6;
v2 = (a2 + 16 * a1) & 0xFFFFF;
if( v2 > 0x8FFFF && v2 - 655360 > 0x1FFFF )
return(INT64 *)(x86BiosIoMemory + v2);
if( v2 >= 0xA0000 )
{
v4 = x86BiosFrameBuffer;
v6 = (INT64 *)v2;
if( !x86BiosFrameBuffer )
v4 = x86BiosIoMemory;
return(INT64 *)((char *)v6 + v4);
}
v4 = (unsigned __int16)(a2 + 16 * a1);
v5 = HIWORD(v2);
if( v5 )
{
if( v5 != 1 && v5 <= 3 && (unsigned int)v4 < x86BiosTransferLength )
return(INT64 *)(x86BiosTransferMemory + v4);
}
else if( (unsigned int)v4 <= 0x800 )
{
v6 = &x86BiosLowMemory;
return(INT64 *)((char *)v6 + v4);
}
x86BiosScratchMemory = 0;
return(INT64 *)&x86BiosScratchMemory;
}Referenced by:
HalInitializeBios
XmEmulateInterrupt
XmEvaluateAddressSpecifier
XmGetCodeByte
XmGetLongImmediate
XmGetOffsetAddress
XmGetStringAddress
XmGetStringAddressRange
XmGetWordImmediate
XmInitializeEmulator
XmIntOp
XmPopStack
XmPushStack
x86BiosReadMemory
x86BiosWriteMemory