.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:
mpohoreski 2006-02-27 00:39:46 +00:00
parent 9ae98cccbc
commit fa92703cec
1 changed files with 22 additions and 13 deletions

View File

@ -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;
@ -796,6 +796,11 @@ bool AssemblerGetArgs( int iArg, int nArgs, WORD nBaseAddress )
m_iAsmAddressMode = AM_A;
}
else
{
// 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;
@ -813,6 +818,7 @@ bool AssemblerGetArgs( int iArg, int nArgs, WORD nBaseAddress )
m_nAsmTargetAddress = 0;
}
}
if ((m_iAsmAddressMode != AM_M) &&
(m_iAsmAddressMode != AM_IMPLIED) &&
@ -1027,6 +1033,9 @@ void AssemblerProcessDelayedSymols()
}
}
}
if (! bModified)
break;
}
}