Skip to main content

HASCII table

A text character is a single letter or digit or punctuation mark or graphical glyph. The Hybrix compiler represents characters as a BYTE number between 0 and 255. The standard mapping of characters for each number is called HASCII. It is based on the ASCII (American Standard Code for Information Interchange) and ISO/IEC 8859-1 standards, but with some differences for control characters and graphical glyphs.

Control code meanings

While codes 32 through 255 are regular printable characters with a standardized tile appearance, codes 0 through 31 are special control codes. Unlike regular characters, the control codes have three separate interpretations:

  1. As console actions: Many of these codes cause the CONSOLE::PRINT() function to perform special actions such as moving the cursor, clearing the screen, or changing the current color. The implementation can be found in the [CONSOLE] framework file. Some codes are widely standardized by ASCII but irrelevant to Hybrix, and so CONSOLE::PRINT() simply ignores them.
  2. As special keyboard keys: The CONSOLE::READ_KEY() function returns control codes for certain non-printing keyboard keys such as the arrow keys, the ENTER key, or the ESC key.
  3. As tile indexes: The console's tilemap will render the control codes as ordinary tile indexes, however their graphical appearance isn't standardized. The framework starter font simply shows "⮽" for these characters. You could invent your own tile images, though.
HexEscapeNameKeyDescription
$00null(unused ASCII)
Hybrix strings don't normally contain null bytes.
$01{RESET}resetaction: disable the modes for scroll off, reverse, and matte
keyboard shortcut: SHIFT + ESC
$02{SOFF}scroll offaction: enable a mode that prevents scrolling when the cursor reaches the bottom of the screen, useful for printing text on the last line
keyboard shortcut: CTRL + B
$03{SUP}scroll upaction: scroll the screen contents upwards
keyboard shortcut: CTRL + C
$04{SDOWN}scroll downaction: scroll the screen contents downwards
keyboard shortcut: CTRL + D
$05{CLS}clear screenaction: erase the screen by filling with space characters
keyboard shortcut: CTRL + BACKSPACE
Apple keyboards: CTRL + DELETE
$06{CLL}clear lineaction: erase the current line by filling with space characters
keyboard shortcut: CTRL + SHIFT + BACKSPACE
Apple keyboards: CTRL + SHIFT + DELETE
$07bell(unused ASCII)
$08backspaceBACKSPACE(not printable)
a keyboard key that typically erases one character leftwards
Note: Apple calls this key DELETE ( ⌫ ) instead of BACKSPACE. Apple's rightwards erasing key is called "forward delete" ( ⌦ ).
$09{TAB}tabTABaction: move the cursor rightwards to the next tab stop
$0A{N}newline
(LF)
ENTERaction: move to the first column of the next line (ASCII "line feed")
Apple keyboards: RETURN ( ⏎ )
$0B{HOME}homeHOMEaction: move to the first column of the top line
Apple keyboards: FN + LEFT
$0C{END}endENDaction: move to the first column of the bottom line
Apple keyboards: FN + RIGHT
$0D{CR}CRaction: move to the first column of the current line (ASCII "carriage return")
keyboard shortcut: CTRL + HOME
Apple keyboards: CTRL + FN + LEFT
Note: Apple's RETURN key is mapped to {N}, not {CR}.
$0E{REV}reverseaction: enable the reversed theme mode, which swaps palette colors #0 (clear) and #48 (theme color A)
This effect is used to blink the cursor.
keyboard shortcut: CTRL + ,
$0F{MAT}matteenable matte coloring mode, which changes color #0 (clear) to be IO::MATTE_COLOR
keyboard shortcut: CTRL + .
$10{0}blackaction: change the text color*
$11{1}whiteaction: change the text color*
$12{2}redaction: change the text color*
$13{3}orangeaction: change the text color*
$14{4}yellowaction: change the text color*
$15{5}greenaction: change the text color*
$16{6}cyanaction: change the text color*
$17{7}blueaction: change the text color*
$18{8}purpleaction: change the text color*
$19{9}violetaction: change the text color*
$1A{META}metaunimplemented by CONSOLE::PRINT(), but meant for use instead of {ESC} as the first byte of custom sequences (similar to the CSI byte $9B from ISO 2022)
$1B{ESC}escape keyESC(not printable)
modern programs typically use this keyboard key to "go back" to a previous menu or state
$1C{U}cursor upUPaction: move the cursor up by one line
$1D{D}cursor downDOWNaction: move the cursor down by one line
$1E{L}cursor leftLEFTaction: move the cursor left by one column
$1F{R}cursor rightRIGHTaction: move the cursor right by one column

*For text color palette indexes, refer to the Palix: themes chapter of the Hybrix Machine Reference. The keyboard shortcut is CTRL + the number key.

$00-$3F Control codes & punctuation

#HexEscapeName#HexEscapeUnicode
0$00null32$20space
1$01{RESET}reset33$21!
2$02{SOFF}scroll off34$22{QUOTE}"
3$03{SUP}scroll up35$23#
4$04{SDOWN}scroll down36$24$
5$05{CLS}clear screen37$25%
6$06{CLL}clear line38$26&
7$07bell39$27'
8$08backspace40$28(
9$09{TAB}tab41$29)
10$0A{N}newline (LF)42$2A*
11$0B{HOME}home43$2B+
12$0C{END}end44$2C,
13$0D{CR}CR45$2D-
14$0E{REV}reverse46$2E.
15$0F{MAT}matte47$2F/
16$10{0}black48$300
17$11{1}white49$311
18$12{2}red50$322
19$13{3}orange51$333
20$14{4}yellow52$344
21$15{5}green53$355
22$16{6}cyan54$366
23$17{7}blue55$377
24$18{8}purple56$388
25$19{9}violet57$399
26$1A{META}meta58$3A:
27$1B{ESC}escape key59$3B;
28$1C{U}cursor up60$3C<
29$1D{D}cursor down61$3D=
30$1E{L}cursor left62$3E>
31$1F{R}cursor right63$3F?

$40-$7F Alphabet

#HexEscapeUnicode#HexEscapeUnicode
64$40@96$60`
65$41A97$61a
66$42B98$62b
67$43C99$63c
68$44D100$64d
69$45E101$65e
70$46F102$66f
71$47G103$67g
72$48H104$68h
73$49I105$69i
74$4AJ106$6Aj
75$4BK107$6Bk
76$4CL108$6Cl
77$4DM109$6Dm
78$4EN110$6En
79$4FO111$6Fo
80$50P112$70p
81$51Q113$71q
82$52R114$72r
83$53S115$73s
84$54T116$74t
85$55U117$75u
86$56V118$76v
87$57W119$77w
88$58X120$78x
89$59Y121$79y
90$5AZ122$7Az
91$5B[123$7B{LB}{
92$5C\1247C|
93$5D]125$7D{RB}}
94$5E^126$7E~
95$5F_127$7F{:-)}

$80-$BF Glyphs

#HexEscapeUnicode#HexEscapeUnicode
128$80{-->}🠞160$A0{EURO}
129$81{ ^ }🠝161$A1¡
130$82{<--}🠜162$A2{CENT}¢
131$83{ V }🠟163$A3{POUND}£
132$84164$A4{[ ]}
133$85165$A5{[./]}
134$86166$A6{( )}
135$87167$A7{(O)}
136$88{ +-}168$A8
137$89{-'-}169$A9{(C)}©
138$8A{-+ }170$AA{./}
139$8B{-.-}171$AB«
140$8C{ '-}172$AC{CAT}🐱
141$8D{-' }173$AD{COIN}🪙
142$8E{-. }174$AE{(R)}®
143$8F{ .-}175$AF{STAR}
144$90{ ''}176$B0{DEG}°
145$91{'' }177$B1{ B'}*
146$92{.. }178$B2{'B }*
147$93{ ..}179$B3{.B }*
148$94{---}180$B4{ B.}*
149$95{ : }181$B5{'B'}*
150$96{-+-}182$B6{.B'}*
151$97🞄183$B7{:B }*
152$98184$B8*
153$99185$B9*
154$9A186$BA{NOTE}
155$9B187$BB»
156$9C{: :}188$BC{FLAT}
157$9D{:::}189$BD{NAT}
158$9E{#:#}190$BE{SHARP}
159$9F{///}191$BF¿

*Use the reversed theme ({REV}) to make the complementary shapes for these characters.

$C0-$FF International

#HexEscapeUnicode#HexEscapeUnicode
192$C0À224$E0à
193$C1Á225$E1á
194$C2Â226$E2â
195$C3Ã227$E3ã
196$C4Ä228$E4ä
197$C5Å229$E5å
198$C6Æ230$E6æ
199$C7Ç231$E7ç
200$C8È232$E8è
201$C9É233$E9é
202$CAÊ234$EAê
203$CBË235$EBë
204$CCÌ236$ECì
205$CDÍ237$EDí
206$CEÎ238$EEî
207$CFÏ239$EFï
208$D0Ð240$F0ð
209$D1Ñ241$F1ñ
210$D2Ò242$F2ò
211$D3Ó243$F3ó
212$D4Ô244$F4ô
213$D5Õ245$F5õ
214$D6Ö246$F6ö
215$D7{X}×247$F7{/}÷
216$D8Ø248$F8ø
217$D9Ù249$F9ù
218$DAÚ250$FAú
219$DBÛ251$FBû
220$DCÜ252$FCü
221$DDÝ253$FDý
222$DEÞ254$FEþ
223$DFß255$FFÿ