In einem Thread auf lemon hatte jemand Bedarf an einer exakten Uhr für den C64. Im Lauf des Threads habe ich passenden Code entwickelt, der mit Hilfe der Timer von CIA#2 exakt Sekunden zählt (1022727 Cycles auf NTSC, 985248 Cycles auf PAL). Daraus ist einfach zum Spaß ein kleines Spielzeug entstanden, eine Uhr im Rahmen:
Source: https://github.com/Zirias/c64_borderclock
PRG hängt an.
Die Funktionalität der Uhr an sich ist im File src/clock.s zu finden, falls sich jemand dafür interessiert. Sie funktioniert ohne Interrupts (damit VIC Effekte nicht gestört werden), es muss mit clock_run "gepollt" werden (z.B. einmal pro Frame aus einem Raster IRQ), das Carry Flag sagt danach, ob die Uhr eine Sekunde weitergezählt hat.
Natürlich kommt auch diese Uhr aus dem Tritt, wenn IRQs länger deaktiviert werden -- ansonsten läuft sie aber so exakt wie auf dem C64 möglich