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.