OSFastArrows Variable (ROM Call 0x15C)

kbd.h

unsigned char OSFastArrows;

A variable determining whether arrow keys are repeated slowly or quickly.

OSFastArrows tells ngetchx, GKeyIn, and OSdequeue how to handle the arrow keys.

Once a key value is pushed onto the key queue, the same key value is not pushed again until the key is released, unless that key is one of the following: any of the arrow keys, the contrast keys, delete, or backspace. These keys are allowed to "auto-repeat". If one of these keys is pressed and held, after an initial delay, the same key value will be pushed again. If the keypress continues to be active, the key value will continue to be pushed at a rate set by a delay which is slightly shorter than the initial delay. If a key is pushed as a result of this auto-repeat feature, the value KB_AUTOREPEAT is OR’d with the key value prior to pushing the key value onto the key queue.

It seems that the following values are allowed:

0 Keys are repeated at normal speed. This is the default. In this case, ngetchx will clear the KB_AUTOREPEAT bit from the key value.
1 Same as 0 for ngetchx, but in text editors like the home screen entry line, keys are not repeated at all.
2 The key delay is ignored; ngetchx returns immediately if an arrow key is pressed. In text editors, the busy indicator is visible, but keys do not seem to be repeated.

Further information is welcome.


Used by: ngetchx, GT_Trace, ROM Call 0x473


See also: ngetchx, OSInitBetweenKeyDelay, OSInitKeyInitDelay