$WW,1$A $FG,2$Char$FG$acter is a single byte holding an ASCII code for a letter, num or sym.  The $FG,2$SparrowOS$FG$ term is a $FG,2$U8$FG$.

ASCII values range from 0 to 127.  Values below 32 are ctrl key's.  So, an ASCII #3 is a $FG,2$<CTRL-C>$FG$.  SparrowOS uses a few nonstandard values.  In SparrowOS ASCII #5 is the cursor location, ASCII 28 is $FG,2$<SHIFT-ESC>$FG$ and ASCII #31 is a $FG,2$<SHIFT-SPACE>$FG$.  See $LK,"Char Definitions","MN:CH_SHIFT_SPACE"$.

A $FG,2$Key$FG$ is typically specified with a scan code.  SparrowOS scan codes contain the key value in the lowest $FG,2$U8$FG$, and flags in the upper bytes.  See $LK,"Scan Code Flags","MN:SCF_CTRL"$ and $LK,"Scan Codes","MN:SC_INS"$.

SparrowOS stores scan codes in 8 bytes.
  $FG,2$Byte 0$FG$   is the code with left and right keys combined.
  $FG,2$Byte 1-3$FG$ are flags
  $FG,2$Byte 4$FG$   is the code with left and right distinct.
  $FG,2$Byte 5-7$FG$ are flags

Run the program $LK,"::/SparrowOS/Demo/MsgLoop.CPP.Z","FI:::/SparrowOS/Demo/MsgLoop.CPP.Z"$ to examine scan code.

A $FG,2$String$FG$ is a bunch of ASCII characters terminated with a zero.

