According to the Apple III Standard Device Drivers Manual, the .CONSOLE device driver provides a function to wait for vertical blanking. This function could effectively replace the simple VBL polling routines that Apple II developers typically write for games and graphics demos.
You can wait for vertical blanking by sending the ASCII control code SYN
(decimal 22, hex $16) to the .CONSOLE driver. This can be used to synchronize video animations, or for general timing (e.g., printing a string of 30 SYN
bytes would perform a half-second pause)
From the device driver manual, page 43:
SCREEN SYNCHRONIZATION
Code 22, "SYN" (Synchronous Idle)
Causes the console to delay further processing until the video generator has finished displaying one complete frame on the video display. The video generator produces 60 frames each second; a SYN code can thus cause a delay of up to 1/60 of second.
One application of this control code is in programs that erase and redraw portions of the screen in a fixed cycle, to perform animation or other special effects. Sometimes the difference between the timing of the program's output and the timing of the video generator produces a distracting flicker of the screen. Sending a SYN code to the console as part of the erase/draw cycle will synchronize the program with the video display and reduce or eliminate flickering.
Another use of the SYN code is in timing loops. Since the video generator always produces 60 frames per second regardless of the screen setting, sending a string of 60 SYN codes will cause a delay of one second. You an use this to build fairly accurate timing loops into user programs.