Naja...
Du bastelst Dir eine while-Schleife, deren Bedingung ein Ablauf eines Counters ist. In der while-Schleife selbst fragst Du die Tasten ab und reagierst entsprechend auf diese. Dann baust Du noch ein "sleep" von vllt. einer halben oder ganzen Sekunde ein und passt dann den Endwert für den Counter an. Sleeps von einer Sekunde (1000 Millisekunden) machen bei fünf Sekunden Schleife fünf Durchläufe... Bei einer halben Sekunde sind es entsprechend zehn.
Dauer Schleife = Anzahl Sleeps * Dauer Sleeps
Anzahl Sleeps = Dauer Schleife / Dauer Sleeps
Dauer Sleeps = Dauer Schleife / Anzahl Sleeps
Nach der while-Schleife fährst Du mit Deinem Code fort, in diesem Fall screen:waitVblankStart()
Wird also X gedrückt, dann passiert das, was Du bei der Tastenabfrage als Anweisung angegeben hast, wird nichts gedrückt, zählt die Schleife bis zum Ende durch und fährt mit dem normalen Code fort.
Zu meinem Antwort-Stil: Ich poste ungerne fertigen Code, der macht andere Menschen so gedankenfrei Wenn Du meine Antwort liest, wird Dir sicher ein Licht aufgehen. Vielleicht auch erst nach dem zweiten Mal
Mit freundlichen Grüßen,
wurzelbums