tschak909 Posted February 9, 2020 Share Posted February 9, 2020 I'm noticing something interesting with regards to 0x80 commands, versus 0x40 commands. With 0x40 commands, once acknowledged, I can take up to the timeout to acknowledge with a COMPLETE, and send the data frame. With 0x80 commands, I acknowledge the data written to my device, but it seems that if I take longer than say, 2ms to send back a COMPLETE, then the Atari throws raspberries. Is there something I need to understand with regards to write command timings? At this point, I will have to re-think a couple of my commands that send data to the peripheral and may have to wait a moment for a response, (such as when I build a directory cache) sigh. -Thom Quote Link to comment Share on other sites More sharing options...
phaeron Posted February 9, 2020 Share Posted February 9, 2020 You should have until the full command timeout to send back COMPLETE. Floppy disk drives don't send it until the disk I/O is complete as it's the only way for the computer to know when it can send another command. Check if you are sending back the data frame ACK too quickly. The SIO protocol spec requires a minimum delay of 850us between the end of the checksum byte of the data frame and the beginning of the data frame ACK, which is needed for the OS to reconfigure itself to read the ACK. The OS can drop a byte if it is sent before the SIO routine can flip from sending to receiving. It also has a bug with accepting $43 for ACKs, so it's possible that your ACK is getting dropped and your COMPLETE is being checked as an ACK with command timeout (1-2 VBIs). 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.