Char Overview

A Character is a single byte holding an ASCII code for a letter, num or symbol. The ZealOS term is a U8.

Standard ASCII values range from 0 to 127.  Values below 32 are ctrl key's.  So, an ASCII #3 is a <CTRL-c>.  ZealOS uses a 
couple nonstandard values below 32.  See Char Definitions.

ASCII #5    is the cursor location in a saved file.
ASCII #28 is <SHIFT-ESC>.

ZealOS ASCII is 8-bit instead of 7-bit, so it also uses the range from 128-255.  Press <CTRL-ALT-a> to see shapes for 128-255.  
Technically, <CTRL-ALT-a> are screen codes.

A Key is typically specified with a scan code.  ZealOS scan codes contain the key value in the lowest U8, and flags in the 
upper 3 bytes.  See Scan Code Flags and Scan Codes.

ZealOS stores scan codes in 8 bytes.
    Byte 0   is the code.  NumPad keys, SHIFT, ALT, CTRL and GUI keys combined.
    Byte 1-3 are flags

The upper 4-bytes are copied from lower 4-bytes.
    Byte 4   is the code.  Left, Right and NumPad keys distinct.
    Byte 5-7 are flags

Run the program ::/Demo/MessageLoop.ZC to examine scan code.  Press <CTRL-SHIFT-l> and "Insert ASCII/ScanCode".

See Key Allocations and CKbdStateGlobals.

A String is a bunch of ASCII characters terminated with a zero.