Und weils so schön war, noch eine Prozedur, welche erst zurückkehrt, wenn der Kathodenstrahl des Monitors von der unteren, rechten Ecke zur oberen, linken Ecke wandert. (DOS Animationen haben dadurch flickerfreies Darstellungen ermöglicht).
Code:
WaitRetrace proc pascal far
;Status Register für den Test vorbereiten
mov DX, 3DAh
;Label (für Jumps)
@w1:
;Bit 3 in AL ist 0, wenn der Bildschirm aufgebaut wird
in AL, DX
test AL, 8h
;warten, wenn das Bit 3 nicht 0, also 1, ist
jnz @w1
;Label (für Jumps)
@w2:
;Bit 3 in AL ist 1, wenn der Strahl zurück geht
in AL, DX
test AL, $8
;warten, wenn das Bit 3 auf 0 gesetzt ist
jz @w2
ENDP