#### [Spec](../) - [Data types](../types) - [Operators](../operators) - **Encoding** **Please note:** This spec is a draft; any detail may change without warning. ### Encoding Crayon uses a custom encoding for the first 32 bytes of the code table, which contains custom positional and directional chars: Hex Name Char Task (r-down means down relative to the cursor, i.e. at a 90 degree angle.) 00 rst • Reset all directional and positional changes made to the cursor. 01 de → Point the cursor east (to the right). 02 dse ↘ Point the cursor south-east. 03 ds ↓ Point the cursor south. 04 dsw ↙ Point the cursor south-west. 05 dw ← Point the cursor west. 06 dnw ↖ Point the cursor north-west. 07 dn ↑ Point the cursor north. 08 dne ↗ Point the cursor north-east. 09 anc ⚓ This is the "anchor" (or "origin") of a pattern when drawn onto the canvas. If not specified, the default is 0,0 (the top left corner). 0A nl ↵ Move r-down one line, with respect to the direction of the cursor, and to the beginning of the line. 0D cr ↤ Move the cursor back to the beginning of the line. 0E rnl ↰ Same as nl, but move r-up instead of r-down. 0F xnl ↩ Reset the cursor completely and move to the beginning of the next line. 10 sd ➥ Slide the cursor r-down by one row. 11 su ➦ Slide the cursor r-up by one row. 12 tr1 ⤸ Turn the cursor clockwise by 45 degrees. 13 tr2 ⤵ Turn the cursor clockwise by 90 degrees. 14 tr3 ↷ Turn the cursor clockwise by 135 degrees. 15 tu4 ⟲ Turn the cursor around (by 180 degrees). 16 tl3 ↶ Turn the cursor counter-clockwise by 135 degrees. 17 tl2 ⤷ Turn the cursor counter-clockwise by 90 degrees. 18 tl1 ⤹ Turn the cursor counter-clockwise by 45 degrees. 1D rpt × Repeat <next char> <next byte> times. 1F nbsp ¤ When the pattern is drawn onto the canvas, overwrite the character underneath with a space. 20 sp When the pattern is drawn onto the canvas, leave the character underneath untouched. The rest of the encoding may abide with ISO-8859-1, UTF-8, UTF-16, etc., but for the most part, only chars in the range 00-7E are used.