Skip to content

Fixed bug with sio3/socket interaction.#557

Open
RomanSyunyaev wants to merge 1 commit into
udo-munk:masterfrom
RomanSyunyaev:master
Open

Fixed bug with sio3/socket interaction.#557
RomanSyunyaev wants to merge 1 commit into
udo-munk:masterfrom
RomanSyunyaev:master

Conversation

@RomanSyunyaev

Copy link
Copy Markdown

Previously, the logic to accept() incoming socket connections for SIO3 was located exclusively within the altair_sio3_status_in() function. This caused a bug where a direct read from the data port (port 7) before a status poll (port 6) would fail to trigger the connection, resulting in zeroes being read as data.

I don't believe that's how original Altair 8800 worked -- while checking the status before reading was standard practice, it was not required. For example, some leader check routines won't work because of that: code that expects to poll the data stream directly would fail because the socket remained unaccepted.

This PR extracts the connection-checking logic into a helper function sio3_check_connection() and ensures it is called during both status and data input operations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant