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.

amstradcpc/waitvsync.txt · Zuletzt geändert: 2014/08/16 12:01 von octoate
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0