Timing

Aus C64-Wiki
Wechseln zu: Navigation, Suche

Von Timing wird im Zusammenhang mit der Programmierung des C64 dann gesprochen, wenn etwas nicht nur korrekt, sondern auch zu einer ganz bestimmten Zeit passieren muss, damit es funktioniert.

Oft geht es beim Timing um mehrere gleichzeitig passierende Dinge. So baut beispielsweise der Grafikchip VIC ständig das Bild des C64 auf. Dies tut er ohne dass man aktiv mit dem Prozessor 6510 etwas tun muss, d.h. er läuft weitgehend autonom. Will man nun in den Bildaufbau eingreifen, muss man deshalb nicht nur die richtigen Register des VIC mit den richtigen Werten programmieren, sondern dies unter Umständen auch exakt zu einer bestimmten Zeit, damit der gewünschte Effekt eintritt.

Ähnliches gilt für die Programmierung der Floppy 1541 oder der Datasette: Sie lassen sich zwar vom C64 steuern, tun aber dann eben auch Dinge von sich aus, senden z.B. Daten, etc. Damit die Kommunikation klappt, muss ggf. im richtigen Moment oder innerhalb eines bestimmten Zeitfensters reagiert werden.

Beispielweise eine Rasterbar (Quellcode von codebase64.org).

Im folgenden einige Beispiele, bei denen das Timing - also wann genau was passiert - stimmen muss:

  • Rasterbars müssen so programmiert werden, dass sie zur Geschwindigkeit, mit der der VIC das Bild aufbaut passen.
  • Fastloader sind oft timing-kritisch, z.B. wenn es darum geht, die Daten so schnell von der Floppy zum C64 zu bekommen, dass ein Track innerhalb einer Umdrehung der Diskette gelesen werde kann
  • Das Öffnen des Borders (Rahmens) kann mit einem Trick erreicht werden, der allerdings völlig wirkungslos bleibt, wenn er nicht zum richtigen Zeitpunkt angewandt wird
  • Die Darstellung von FLI funktioniert nur, in dem der VIC genau zum richtigen Zeitpunkt dazu gebracht wird, die Information, welche Farben zu verwenden sind, neu einzulesen
  • Auch manche Kopierschutz-Verfahren verlassen sich auf das Timing, z.B. wie schnell welche Blocks von Diskette eintreffen - stimmt dies nicht, wird davon ausgegangen, dass eine Kopie vorliegt
  • Digi-Sounds bestehen aus Samples, beim C64 oft 4 Bit, welche in genau richtigen Zeitabständen voneinander in den SID geschrieben werden müssen, da sonst die Klangqualität leidet (weshalb viele ältere Digi-Demos beispielsweise den Bildschirm abschalten)