I have totally missed the fact that IF1 ULA detects the falling edge of the byte leader pulse, thus providing hardware synchronisation for every byte. With that in mind, "playback" works and broadcast transmissions are working, too. Code is nice and clean and I like it. However, there is a significant (~5 msec) delay before the receiving machine sees inbound data and it breaks everything because at the time receiver sends ACK back to the sender the sender has already started re-transmission. Latest...
Most of the programmes (I've seen so far) utilising CMD18 and CMD25 seem to expect Z-Controller SD card interface, and those appear to be using quite a lot of SPI mode commands. Next revision of the patch, adds basic support for CMD16 and CMD59.
SD Card: multiple block read/write support
Unfortunately, at the moment I do not fully understand all the subtleties of IF1 protocol and I could not get a (reliably) working prototype. I am publishing my changes in case if someone is able to pick it up. Updated 2024-09-28: Cleaned up code, slightly easier to read (and smaller)
All configuration options can be changed via command line arguments. Those override anything found in config file. Unfortunately, it means that changing configuration file location using a command line argument is not that simple. A while ago I thought I needed that option anyway, so I created a naive implementation. I have not used it for a while and it MAY NOT work with all build targets! That is why I am not creating a separate patch ticket and simply attaching my changes here.
Unfortunately, at the moment I do not fully understand all the subtleties of IF1 protocol and I could not get a (reliably) working prototype. I am publishing my changes in case if someone is able to pick it up.
I’ve managed to create a simple “wire” simulation code. With that code the broadcast transmissions are now being sent out successfully. There are some peculiarities of the IF1 schematics and ROM code, which I do not fully understand (hopefully, yet). If someone has a clear explanation, please share. Right now I rely on Gergely’s comments for if1.c, IF1 ROM disassembly, experimental data, and my very limited understanding of the IF1 schematics. Anyway, here is what I observe “inside” FUSE: SCOUT frame:...
I’ve managed to create a simple “wire” simulation code. With that code the broadcast transmissions are now being sent out successfully. There are some peculiarities of the IF1 schematics and ROM code, which I do not fully understand (hopefully, yet). If someone has a clear explanation, please share. Right now I rely on Gergely’s comments for if1.c, IF1 ROM disassembly, experimental data, and my very limited understanding of the IF1 schematics. Anyway, here is what I observe “inside” FUSE: SCOUT frame:...