ATASCII
The ATASCII character set, from ATARI S'tandard Code for Information Interchange, alternatively ATARI ASCII', is a character encoding used in the Atari 8-bit computers. ATASCII is based on ASCII, but is not fully compatible with it. It was first used in the Atari 400 and 800 in 1979 and was kept in all subsequent models until the line was discontinued in 1992. The Atari ST family of computers use the different Atari ST character set.
Like most other variants of ASCII, ATASCII has its own distinct characters in place of the C0 control codes in ASCII, as well as replacing a few other ASCII code points.
Implementation
Atari 8-bit systems have three distinct sets of codes: interchange codes, internal codes, and keyboard codes.Keyboard codes represent the codes sent by the keyboard. Pressing one of the two modifier keys modifies the value input by pressing other keys. Due to there being two modifier keys, there are four distinct keyboard codes that can be sent by each character; however, several keys do not send a control code if they are pressed while holding both Shift and Control. When entering text, the Atari keyboard handler converts these signals into ATASCII.
ATASCII and internal codes contain the same character set, but indexed differently. ATASCII codes are used by Atari BASIC, while internal codes are used to look up how to render the character on-screen.
Atari 8-bit systems have several distinct graphics modes; these modes can be classified as pure text modes, pure graphics modes, or mixed modes. Modes 0, 1 and 2 represent pure text modes, while Modes 3 and above represent mixed or pure graphics modes. Mode 0 displays characters at the default size, Mode 1 displays them twice as wide, and Mode 2 displays them twice as wide and twice the height. Mode 0 is the default graphics mode and supports 128 unique characters in one of two colors ; Modes 1 and 2 only support 64 unique characters, but support four different colors. The 64 characters available in Modes 1 and 2 are the first 64 characters in the internal code, which correspond to ATASCII codes 32 to 95. This includes all uppercase letters and punctuation, but excludes lowercase letters and graphics characters.
The Atari screen editor implements the text cursor by simply inverting the character at the cursor position. It does not flash.
Inverse video
ATASCII only has 128 unique graphic characters, with the upper 128 graphic characters being inverse video variants of the lower 128 graphic characters. If the high-order bit is set on a character, the character is generally rendered as the inverse video variant of its counterpart between 0 and 127, using a bitwise negation of the character's glyph. This is done by the ANTIC chip.Due to this behavior, there is asymmetry in the selection of block-drawing characters. In normal video, there are lower triangles but no upper triangles, a left half block but no right half block, and a lower half block but no upper half block; these ostensibly missing characters can be displayed by using inverse video.
Alternate character sets
Atari 8-bit computers, via the ANTIC coprocessor, supported indirection of the character set graphics, allowing a program to redefine the graphical glyphs that appear for each ATASCII character. This can be used as a new font for text, to support an additional character set, or for tile graphics in a video game or other application. Cycling between multiple redefined character sets can be used to provide simple animation at very little CPU cost. Altering a character set in RAM can also be used for animation.In the XL and XE lines, the Atari OS ROM includes an "international character set" that replaces 29 of the graphical glyphs with Latin alphabetical characters containing diacritics, such as e-acute. The OS built into the Atari 1200XL, the only Atari 8-bit model with function keys, allowed users to switch between the standard and alternate character sets by pressing. Later XL and XE models required the user to update a register in RAM.
In some regions, a different character set was included instead of the default international character set, in order to better accommodate the target market, including Polish, Arabic, and Hebrew. Atari 192XT and 256XT systems distributed in Eastern Europe by P.Z.Karen had a Polish character set in place of the international character set. The Atari 65XE Najm, which was distributed in the Middle East, has an Arabic character encoding as its default encoding and displays text right-to-left, while the international character set was replaced by the standard ATASCII encoding. Hebrew versions of the Atari 600XL and 800XL were distributed in Israel, which had a Hebrew character set in place of the international character set. The Hebrew character set had Hebrew letters instead of lowercase Latin letters, but preserved the uppercase Latin letters. When typing in Hebrew mode, typing Latin letters advances the cursor to the right, while typing Hebrew letters advances the cursor to the left.
Character set
Default graphic characters
The following table shows the default ATASCII character set. Control characters with a graphic representation are displayed using that representation. Each character is shown with a Unicode equivalent.The box-drawing characters are arranged relative to their corresponding letter keys on the Atari keyboard, appearing 64 code points earlier than the corresponding uppercase letter. For example, ┌, ┬, and ┐ are the graphics characters found on the top left Q, W, and E keys, and appear 64 code points before those uppercase letters in ATASCII.
International character set
The following table shows the lower half of ATASCII international character set. The upper half are inverse video variants of the lower half, in exactly the same way as the standard ATASCII character set.Control characters
ATASCII has 16 control characters, defined in four separate ranges. This is a key difference between ASCII and ATASCII—in ASCII, there are 32 control characters, defined in the range 0 to 31.All ATASCII control characters except End of Line have a graphic representation, which can be produced by escaping that character by pressing the Escape key before inputting that control character. For example, typing "Escape" followed by "cursor right" will produce a right arrow. Uniquely, the End of Line control character always renders a newline, regardless of the presence of a preceding escape character.
| Hex | Decimal | Function | Keystroke |
| 1B | 27 | Escape key | |
| 1C | 28 | Cursor Up | |
| 1D | 29 | Cursor Down | |
| 1E | 30 | Cursor Left | |
| 1F | 31 | Cursor Right | |
| 7D | 125 | Clear Screen | or |
| 7E | 126 | Delete | |
| 7F | 127 | Tab | |
| 9B | 155 | End of line | |
| 9C | 156 | Delete Line | |
| 9D | 157 | Insert Line | |
| 9E | 158 | Clear Tab stop | |
| 9F | 159 | Set Tab stop | |
| FD | 253 | Buzzer | |
| FE | 254 | Delete Character | |
| FF | 255 | Insert Character |
Inter-operation
The differences between character representation can cause problems during modem communication between Ataris and other computers. Cursor movement commands from computers not using ATASCII will be nonsense on an Atari, and vice versa. Terminal programs need to translate between ATASCII and standard ASCII.Some Atari-based BBSs exploited this difference by asking the client to hit the "Return" key. If it got 13, then standard ASCII would be used. If it got 155 it would switch to ATASCII, allowing full use of the ATASCII graphic set. Some Atari BBSs would also block features for non-Atari users.
Text files encoded in ATASCII also need conversion to be viewed on modern PCs and vice versa—utilities are available to facilitate this.
ATASCII animations
The control codes in ATASCII are transmissible to other computers such as BBSs, and crude animations are possible. These animations, also known as "break movies", often take the form of short cartoons, and were a popular feature of Atari BBSs in their heyday.Because cursor control operations are represented with a single character, it is quite easy to make these animations. They can be created by a short BASIC program that captures keyboard commands, echoes them to the screen and saves them to a file. The Atari also allowed commands to be typed and captured as part of its operating system. Of course this required care to get it right, but after a few attempts it normally became quite easy. The simple capture programs didn't have editing features, so ATASCII movies frequently had errors that were corrected by repositioning the cursor and printing over the mistake.