Ich bleibe am Ball. Eigentlich fehlt nur noch die Richtung P4 nach PC. Da bin ich mir im Moment noch nicht ganz im Klaren, was da transferiert werden sollte.
Speichersegmente ($1000 - $variabel) oder per Pointer. Ganz nützlich wäre auch das Einlesen eines D64 von der 1551. Die schafft ca. 1,6kByte/s, da könnte ein D64 in 2 Minuten zum PC rüber zuckeln.
Am PC kann man dann (mit Linux) ganz einfach per: cat myd64.d64 </dev/ttyUSB0 in eine Datei schreiben.
Ein festes Verzeichnis am PC wie damals dieses HDD64 (?) verwendete wäre auch machbar. Mit höherem PC-Programmaufwand auch Lesen aus einem D64.
Im Moment setzt der AVR zwei Statusbits auf "1", damit der P/4 das aktive Interface erkennen kann. Das würde ich dann erweitern: AVR %11 setzen, P/4 erkennt und sendet ACK, PC setzt Statusbits auf Eingang und wartet wieder auf ACK. Wenn der P/4 die dann löscht, geht der Datenverkehr in Richtung PC.
Im Moment ist der Source zum gestern erwähnten ROM online: Bitte melde dich an, um diesen Link zu sehen.
Der einfache Nachbau mit Arduino, also einfaches I/O auf I/O verbinden, funktioniert damit nach dieser Anleitung: Bitte melde dich an, um diesen Link zu sehen.
Beim C++ Listing ist eine kleine Unsicherheit drin. Es wird nicht abgefragt, ob überhaupt ein unvollständiger Block vorhanden ist.
Patch:
if (rest != 0)
{
for(i=0; i<=255-rest; i++)
{
buffer2[size+3+a] = 0;
a++;
}
}
Ich mache mir mal Gedanken, wie die Transfermöglichkeiten in Richtung PC aussehen könnten. Ansonsten kann es jeder gern aufgreifen und selbst mitwirken.