Wait for VSync
Um ein Flimmern beim Zeichnen von Grafiken auf dem Schneider CPC / Amstrad CPC zu verhindern, muss man in den Grafikroutinen auf das VSync-Signal des CPCs warten. Das VSync-Signal ist an Port B des 8255 im CPC angeschlossen und kann über ein einfaches „IN“ auf der Adresse &F5xx abgefragt werden. Bit 0 ist genau dann gesetzt wenn VSync aktiv ist. Die Folgende Routine wartet auf das VSync-Signal, benötigt 9µs bzw. 8µs und verwendet nur das AF-Register.
- 1
waitvs: ld a, &F5 in a, (&DB) rra jr nc, waitvs
Anmerkung: „&DB“ wird hier verwendet, um die Komprimierung des Programmes zu verbessern. Der Opcode für „IN a,(n)“ ist &DB, sodass ein „&DB &DB“ vom Compiler erzeugt wird.