В любом случае - принятый байт может попасть в регистр данных только если бит готовности сброшен.
Исходник, который я редактировал - содержал ошибку:
Код:
BOOL CFirstMemoryController::NetworkInput(BYTE inputByte)
{
m_Port176562 = (WORD)inputByte;
if (m_Port176560 & 0200) // Ready?
m_Port176560 |= 010000; // Set Overflow flag
else
{
m_Port176560 |= 0200; // Set Ready flag
if (m_Port176560 & 0100) // Interrupt?
return TRUE;
}
return FALSE;
}
Должно быть так:
Код:
BOOL CFirstMemoryController::NetworkInput(BYTE inputByte)
{
if (m_Port176560 & 0200) // Ready?
m_Port176560 |= 010000; // Set Overflow flag
else
{
m_Port176562 = (WORD)inputByte;
m_Port176560 |= 0200; // Set Ready flag
if (m_Port176560 & 0100) // Interrupt?
return TRUE;
}
return FALSE;
}