ZitatWas hindert dich daran den AVR zu programmieren wenn die SD-Karte am normalen SPI-Port hängt? Wenn ich an sd2iec entwickle steckt ständig mindestens eine SD-Karte in der Platine und der Programmer ist permanent mit dem ISP-Anschluss verbunden - ohne Probleme.
Die wird spätestens bei der Nutzung eines Fastloaders Ticks verlieren und ein dedizierter RTC-Chip bei dem man statt den voluminösen Mignonzellen einfach eine Knopfzelle oder für kürzere Pufferzeiten (IIRC Wochen) einen Goldcap verwenden kann kostet auch nicht die Welt (1.50EUR bei Reichelt).
Ich habe keinen Programmer. Als ich damals mit IEC2IEEE anfing, habe ich mir eine AT90S8515 (mit Quarz) gekauft, sonst nichts. Von Anfang an habe ich dann Schritt für Schritt zuerst ein C64-Flashprogramm geschrieben, zuerst in Basic, dann mit Assembler-Teilen...
Wenn man halt nur die Platinen verschicken würde und die User würden die Chips selbst kaufen, dann wäre es halt kein Problem, wenn kein Bootloader im AVR ist.
Ich würde nur einen IRQ pro Sekunde machen (nicht 10 oder 50). Normalerweise sind alle Routinen zeitunkritisch. Ausnahmen sind IEC-IN, IEC-OUT (und evtl.LOAD). Hier könnte man die Sache mit Hauptprogramm und IRQ-Programm umdrehen. Die IEC-Routine würde den PC-INT-Pin der seriellen Leitung, die der C64 als Startflag zur Übertragung eines Bytes benutzt, so setzen, dass dieses Flag einen IRQ auslöst. Dann würde die IEC-Routine den Echtzeituhr-IRQ deaktivieren und im Hauptprogramm lediglich abfragen, ob der Timer abgelaufen ist. Die serielle Übertragung würde dann im IRQ erfolgen, solbald der C64 das Flag sendet. Das ergäbe sogar ein exakteres Timig als das Pollen des Ports. Auch die Reset- oder Atn-Leitung muss nicht abgefragt werden, die sind so geschaltet, dass sie ein Level-IRQ auslösen könnten.