#### [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 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.