User Rating 0.0
Total Usage 0 times
0 chars
ATASCII Output
Atari Screen Preview
Is this tool helpful?

Your feedback helps us improve.

About

ATASCII (Atari ASCII) is the character encoding used by Atari 8-bit home computers (400, 800, XL, XE series). It shares code points 32 - 122 with standard ASCII for printable characters but diverges significantly in control codes and the upper range. Characters 128 - 255 produce inverse video renditions via XOR with 0x80. Misidentifying the encoding corrupts display output on real hardware and emulators alike. This tool performs exact byte-level mapping from ASCII input to ATASCII output, rendering each glyph through the authentic Atari character ROM pattern on an 8×8 pixel grid.

Standard ASCII control codes (0x00 - 0x1F) have entirely different functions in ATASCII. For example, 0x7D is the clear-screen command, 0x9B is the end-of-line (EOL) marker replacing ASCII 0x0A, and 0xFD triggers the system buzzer. This converter handles these divergences and flags unmappable sequences. Note: graphical block characters unique to ATASCII have no ASCII source equivalent and must be inserted via the reference table below.

ascii atascii atari 8-bit character encoding retro computing converter

Formulas

The core ATASCII mapping follows a direct byte translation. For printable ASCII characters in the shared range, the mapping is identity:

ATASCIIbyte = ASCIIbyte for 0x20 ASCIIbyte 0x7A

For inverse video characters, the transformation applies a bitwise XOR operation:

ATASCIIinverse = ATASCIInormal 0x80

The end-of-line remapping converts both CR and LF:

{
0x9B if ASCIIbyte = 0x0A (LF)0x9B if ASCIIbyte = 0x0D (CR)0xFD if ASCIIbyte = 0x07 (BEL)

Where ATASCIIbyte is the resulting byte value, ASCIIbyte is the input code point, and 0x80 (128 decimal) is the inverse video flag bit. CRLF sequences (0x0D 0x0A) collapse to a single 0x9B EOL byte to prevent double line breaks on Atari hardware.

Reference Data

ASCII CodeASCII CharATASCII CodeATASCII FunctionNotes
0x00NUL0x00Heart glyph ♥Graphics character
0x01SOH0x01┣ (box drawing)Graphics character
0x02STX0x02┗ (box right-angle)Graphics character
0x07BEL0xFDBuzzerBell → Buzzer remap
0x08BS0x7EBackspaceDelete previous char
0x09TAB0x7FTabSet/clear tab stop
0x0ALF0x9BEOL (End of Line)Primary line terminator
0x0DCR0x9BEOL (End of Line)CR also maps to EOL
0x1BESC0x1BEscapeToggle escape mode
0x1CFS0x1CCursor UpMove cursor up
0x1DGS0x1DCursor DownMove cursor down
0x1ERS0x1ECursor LeftMove cursor left
0x1FUS0x1FCursor RightMove cursor right
0x20Space0x20SpaceIdentical mapping
0x21 - 0x5A! to Z0x21 - 0x5A! to ZIdentical mapping range
0x5B[0x5B[Identical
0x5C\0x5C\Identical
0x5D]0x5D]Identical
0x5E^0x5E^Identical
0x5F_0x5F_Identical
0x60`0x60♦ (diamond glyph)Glyph differs from ASCII
0x61 - 0x7Aa to z0x61 - 0x7Aa to zIdentical mapping range
0x7B{0x7BSpade glyph ♠Glyph differs
0x7C|0x7C| (pipe)Identical
0x7D}0x7DClear ScreenControl function, not printable
0x7E~0x7EBackspaceControl function in ATASCII
0x7FDEL0x7FTabTab key function
0x80 - 0xFFExtended0x80 - 0xFFInverse VideoXOR 0x80 of codes 0x00 - 0x7F

Frequently Asked Questions

Atari's operating system (OS) designers chose 0x9B (155 decimal) as the EOL marker because the low control code range (0x00 - 0x1F) was repurposed for graphics characters (hearts, box-drawing glyphs, etc.) rather than terminal control sequences. The screen editor uses 0x9B to signal a logical line end to the CIO (Central I/O) subsystem. This converter automatically translates both LF and CR to 0x9B and collapses CRLF pairs into a single EOL byte.
Inverse video characters occupy codes 128 - 255 and display with swapped foreground/background colors. The mapping is a bitwise XOR: code 65 (letter A) becomes 193 (inverse A) via 65 128 = 193. Inverse characters were commonly used for menu highlights, cursor indicators, and visual emphasis in Atari software. Toggle the inverse option in this converter to generate inverse-video output.
Standard ASCII defines only 0 - 127. Characters in the 128 - 255 range from encodings like ISO-8859-1 or Windows-1252 have no standard ATASCII equivalent. This converter flags such bytes as unmappable and substitutes a placeholder (0x00, the heart glyph) while logging a warning. If your source text contains accented characters or typographic quotes, convert them to their nearest ASCII equivalent first.
Yes. The downloaded .ata file contains raw ATASCII bytes with 0x9B line terminators. Emulators such as Altirra, Atari800, and Atari800Win recognize this format when loading text files via the H: (host filesystem) device or when injecting data through simulated SIO. For disk image workflows, use a tool like Dir2Atr to embed the .ata file into an ATR disk image.
The Atari character ROM replaces several ASCII punctuation glyphs with graphics characters. Code 0x60 (backtick in ASCII) renders as a diamond (♦), 0x7B (left brace) renders as a spade (♠), 0x7D (right brace) is the clear-screen control code, and 0x7E (tilde) functions as backspace. This converter preserves the byte values but flags these divergences in the output annotation so you can verify intended behavior.
The converter normalizes all line ending variants before mapping. A CRLF pair (0x0D 0x0A) is collapsed into a single ATASCII EOL (0x9B). A standalone CR or standalone LF each produce one 0x9B. This prevents double-spaced output on Atari screen editors, which interpret each 0x9B as a complete logical line termination.