.6 Fixed Assembler storing one too many bytes in AssemblerPokeAddress()
.5 Fixed Assembler not parsing target address in AssemblerGetArgs() A 40C7 BRA $40D7 .4 Fixed Assembler hang in AssemblerProcessDelayedSymols() A 40C7 BRA $40D7
This commit is contained in:
parent
9ae98cccbc
commit
fa92703cec
1 changed files with 22 additions and 13 deletions
|
@ -584,10 +584,10 @@ int AssemblerPokeAddress( const int Opcode, const int nOpmode, const WORD nBaseA
|
|||
*(memdirty + (nBaseAddress >> 8)) |= 1;
|
||||
// *(mem + nBaseAddress) = (BYTE) nOpcode;
|
||||
|
||||
if (nOpbytes > 0)
|
||||
if (nOpbytes > 1)
|
||||
*(mem + nBaseAddress + 1) = (BYTE)(nTargetOffset >> 0);
|
||||
|
||||
if (nOpbytes > 1)
|
||||
if (nOpbytes > 2)
|
||||
*(mem + nBaseAddress + 2) = (BYTE)(nTargetOffset >> 8);
|
||||
|
||||
return nOpbytes;
|
||||
|
@ -797,21 +797,27 @@ bool AssemblerGetArgs( int iArg, int nArgs, WORD nBaseAddress )
|
|||
}
|
||||
else
|
||||
{
|
||||
DelayedTarget_t tDelayedTarget;
|
||||
// if valid hex address, don't have delayed target
|
||||
TCHAR sAddress[ 32 ];
|
||||
wsprintf( sAddress, "%X", m_nAsmTargetAddress);
|
||||
if (_tcscmp( sAddress, pArg->sArg))
|
||||
{
|
||||
DelayedTarget_t tDelayedTarget;
|
||||
|
||||
tDelayedTarget.m_nBaseAddress = nBaseAddress;
|
||||
strncpy( tDelayedTarget.m_sAddress, pArg->sArg, MAX_SYMBOLS_LEN );
|
||||
tDelayedTarget.m_sAddress[ MAX_SYMBOLS_LEN ] = 0;
|
||||
tDelayedTarget.m_nBaseAddress = nBaseAddress;
|
||||
strncpy( tDelayedTarget.m_sAddress, pArg->sArg, MAX_SYMBOLS_LEN );
|
||||
tDelayedTarget.m_sAddress[ MAX_SYMBOLS_LEN ] = 0;
|
||||
|
||||
// Flag this target that we need to update it when we have the relevent info
|
||||
m_bDelayedTargetsDirty = true;
|
||||
// Flag this target that we need to update it when we have the relevent info
|
||||
m_bDelayedTargetsDirty = true;
|
||||
|
||||
tDelayedTarget.m_nOpcode = 0;
|
||||
tDelayedTarget.m_iOpmode = m_iAsmAddressMode;
|
||||
tDelayedTarget.m_nOpcode = 0;
|
||||
tDelayedTarget.m_iOpmode = m_iAsmAddressMode;
|
||||
|
||||
m_vDelayedTargets.push_back( tDelayedTarget );
|
||||
m_vDelayedTargets.push_back( tDelayedTarget );
|
||||
|
||||
m_nAsmTargetAddress = 0;
|
||||
m_nAsmTargetAddress = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if ((m_iAsmAddressMode != AM_M) &&
|
||||
|
@ -1027,6 +1033,9 @@ void AssemblerProcessDelayedSymols()
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (! bModified)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue