Hi there, I am fairly new user here, but did use my Atari 800XL quite intensely back in the 80s.
I have a question relating to atarixfer on x86 PC with an FTDI dongle - hope this is the correct topic - if not I am sorry.
So I have actually started playing around with it and so far was pretty succesfull, everything seems to be working and I had some fun time programming Basic, like it's 1984!
Also the atarisio set of tools let me recover most of my old disks using atarixfer (I only had a 1050 stock drive) and was able to use those on a self programmed SIO device using an atmega pro micro. So all i s good to perfect - thanks a lot for the great programs. So I can confirm that they work as advertised, without kernel driver and cheap dongle. atarixfer with dtr, atariserver without any handshaking.
Now I wanted to make my SIO device a little bit more user friendly (I know there are tons of nice options out there, but for me the fun part is basically understanding how it works and not really using it in the end....) so I thought it should be possible to use atarixfer to get data to my SIO emulator, just to make debugging easier an not having to hook up the Atari for that - this however does not work at all, so maybe someone can give me a pointer what goes wrong I have a few Ideas after going through quite some research of the SIO protocoll.
Some very old manual I found (Atari Home Computer System Serial Input/Output Interface User's Handbook) had the timings but claimed (in a flowchart) that an 'N' is sent when the device is wrong (I suspect that would cause trouble if every hooked up device tries to do that prertty much at the same time the correct device tries to send 'A'...) - so I was not too sure how reliable the information is. Then the Altirra manual has a nice section with pretty much the same timing information abou the rest. So going from here I think the timing should be like: (A: Atari, D:Device) A: pulls down command, sends 5 bytes and raises CMD within 650-950µs (the OS however is qicker but cmd should go HIGH again) , then some time (1-16ms) ist left for from D: to reply
As far as I can tell that is already where the communication goes wrong. If I am not mistaken, atarixfer does not raise the command again - I can log several tries with a command 4E and then several for a status byte - however I loose all timing information, since my only point of reference is the starting point of pulling cmd low - the serial port from the atmega has a buffer, the rest could have arrived any time after that. I did not do a very thorough investigation, but an LED at the cmd line turns off, then the data comes and after the atarixfer times out with two failure messages (percom and status) the LED lights up again. So I suspect that maybe using the DTR from the FTDI as command does not even allow correct use as command?
I am just a little bit stumped why the original Disk Drive works like that?? (now unfortunately I have one more source of uncertainty, I transferred my disks from a different computer and now had to compile atrixfer again using the latest release - but have no acces to a 1050 any more... but I have tried atariserver from the same package with the real Atari and that still worked fine)
Anyways nothing depends on this I am just curious, so if someone has an idea, woud love to hear it.
One little thing I noticed: Maybe add the hint in the README that ATasm needs to be installed, I tried
apt-get install build-essential libncurses5-dev zlib1g-dev
But failed first - all I had to (Debian) do was also to
apt-get install ATasm
Thanks again to HIAS for the great work.