[Main]
Name=OSFastArrows
Type=Variable
Subtype=ROM Call
Header Files=kbd.h
Definition=unsigned char OSFastArrows;
See Also=kbd.h/ngetchx, kbd.h/OSInitBetweenKeyDelay, kbd.h/OSInitKeyInitDelay

[ROM Call]
Index=$15C
Address Hack=(unsigned char *) ((unsigned long) (*(((short *) (_rom_call_addr(51))) + 0x80)))
MinAMS=2.00

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

[Explanation]
OSFastArrows tells <A HREF="$$LINK(kbd.h/ngetchx)">ngetchx</A>,
<A HREF="$$LINK(kbd.h/GKeyIn)">GKeyIn</A>, and
<A HREF="$$LINK(system.h/OSdequeue)">OSdequeue</A> how to handle the arrow
keys.
<BR><BR>
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
<A HREF="$$LINK(kbd.h/KB_AUTOREPEAT)">KB_AUTOREPEAT</A> is OR’d with the key value
prior to pushing the key value onto the key queue.
<BR><BR>
It seems that the following values are allowed:
<BR><BR>
<TABLE BORDER CELLPADDING="3">
<TR>
  <TD VALIGN="TOP">0</TD>
  <TD>Keys are repeated at normal speed. This is the default. In this case,
      <A HREF="$$LINK(kbd.h/ngetchx)">ngetchx</A> will clear the
      <A HREF="$$LINK(kbd.h/KB_AUTOREPEAT)">KB_AUTOREPEAT</A> bit from the key
      value.</TD>
</TR>
<TR>
  <TD VALIGN="TOP">1</TD>
  <TD>Same as 0 for <A HREF="$$LINK(kbd.h/ngetchx)">ngetchx</A>,
      but in text editors like the home screen entry line, keys are not repeated at all.</TD>
</TR>
<TR>
  <TD VALIGN="TOP">2</TD>
  <TD>The key delay is ignored; <A HREF="$$LINK(kbd.h/ngetchx)">ngetchx</A> returns
      immediately if an arrow key is pressed. In text editors, the busy
      indicator is visible, but keys do not seem to be repeated.</TD>
</TR>
</TABLE>
<BR>
Further information is welcome.

[References]
In=kbd.h/ngetchx, unknown.h/GT_Trace, unknown.h/_ROM_CALL_473
