Jump to content

ATASCII

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 97.85.178.47 (talk) at 20:03, 29 April 2016 (→‎ATASCII in action). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

The entire visible ATASCII character set, both normal and inverse glyphs, upscaled to 2x to better show details

The ATASCII character set, from ATARI Standard Code for Information Interchange, alternatively ATARI ASCII, is the variation on ASCII used in the Atari 8-bit family of home computers. The first of this family were the Atari 400 and 800, released in 1979, and later models were released throughout the 1980s. The last computer to use the ATASCII character set was the Atari XEGS which was released in 1987. The Atari ST family of computers used the different Atari ST character set.

Like most other non-standard ASCIIs, ATASCII has its own special block graphics symbols (arrows, blocks, circles, line segments, playing card suits, etc.) corresponding to the control character locations of the standard ASCII table (characters 0–31), and a few other character locations.

Control characters

The most notable difference between standard ASCII and ATASCII is the use of control characters. In standard ASCII, a character in the range 0 to 31 is construed as a command, which might move the cursor, clear the screen, end a line, and so on. Some of these were designed for use on printers and teletypes rather than on screen (to advance the paper, overtype, and so on). In ATASCII most of the ASCII control character values produce a graphics glyph instead. ATASCII uses character values different from ASCII for cursor control.

ATASCII has a character set of only 128 characters. If the high-order bit is set on a character (i.e., if the byte value of the character is between 128 and 255) the character is generally rendered in the reverse video (also called "inverse video") of its counterpart between 0 and 127, using a bitwise negation of the character's glyph. This is done by the ANTIC chip. The two exceptions to this rule are that an "escape" character (ATASCII and ASCII 27) with its high order bit set becomes an "EOL" or "End Of Line" character (ATASCII 155; ASCII 13), and a "clear screen" character (ATASCII 125) with its high order bit set becomes a "bell" or "buzzer" character (ATASCII 253; ASCII 7). No Atari printers actually have a bell, but the computer will sound if it is written to the screen device.

The ATASCII control characters used by the screen editor for cursor control (arrow keys) and text editing (tab, insert, delete, backspace, etc.) have associated graphic symbols that can be displayed by preceding them by the "escape" character (ATASCII 27). For example, a right arrow can be displayed on a screen or printer by preceding it with the escape character followed by the "cursor right" character itself (ATASCII 31).

The Atari screen editor implements the text cursor by simply inverting the character at the cursor position (by XOR with $80). It does not flash.

Interoperation

The differences between character representation can cause problems during modem communication between Ataris and other computers. Cursor movement commands (and even carriage returns and line feeds) 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 (ASCII CR), then standard ASCII would be used. If it got 155 (ATASCII CR) it would switch to ATASCII, allowing full use of the ATASCII graphic set. Some Atari BBSs would also block features (or even block access completely) for non-Atari users.[citation needed]

ATASCII animations

The control codes in ATASCII are transmissible to other computers such as BBS's, 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 its heyday.

Because cursor control operations are represented with a single character (as opposed to multi-byte 'escape' sequences that were common in other schemes, like ANSI or VT100), 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 (a computer version of correction fluid).

Codepage table

Graphic characters

The following table shows the glyphs for ATASCII characters and the corresponding Unicode glyph. Characters without a corresponding Unicode glyph are represented by abbreviations for their names.

ATASCII[1]
_0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
0_ Template:Chset-color-graph|
2665
0
Template:Chset-color-graph|
251C
1
Template:Chset-color-graph|(right ¼ block) Template:Chset-color-graph|
2518
3
Template:Chset-color-graph|
2524
4
Template:Chset-color-graph|
2510
5
Template:Chset-color-graph|
2571
6
Template:Chset-color-graph|
2572
7
Template:Chset-color-graph|
25E2
8
Template:Chset-color-graph|
2597
9
Template:Chset-color-graph|
25E3
10
Template:Chset-color-graph|
259D
11
Template:Chset-color-graph|
2598
12
Template:Chset-color-graph|(upper ¼ block) Template:Chset-color-graph|
2582
14
Template:Chset-color-graph|
2596
15
1_ Template:Chset-color-graph|
2663
16
Template:Chset-color-graph|
250C
17
Template:Chset-color-graph|
2500
18
Template:Chset-color-graph|
253C
19
Template:Chset-color-graph|
25CF
20
Template:Chset-color-graph|
2584
21
Template:Chset-color-graph|
258E
22
Template:Chset-color-graph|
252C
23
Template:Chset-color-graph|
2534
24
Template:Chset-color-graph|
258C
25
Template:Chset-color-graph|
2514
26
Template:Chset-color-ctrl|
241B
27
Template:Chset-color-ctrl|
2191
28
Template:Chset-color-ctrl|
2193
29
Template:Chset-color-ctrl|
2190
30
Template:Chset-color-ctrl|
2192
31
2_ Template:Chset-color-punct|SP
0020
32
Template:Chset-color-punct|!
0021
33
Template:Chset-color-punct|"
0022
34
Template:Chset-color-punct|#
0023
35
Template:Chset-color-punct|$
0024
36
Template:Chset-color-punct|%
0025
37
Template:Chset-color-punct|&
0026
38
Template:Chset-color-punct|'
0027
39
Template:Chset-color-punct|(
0028
40
Template:Chset-color-punct|)
0029
41
Template:Chset-color-punct|*
002A
42
Template:Chset-color-punct|+
002B
43
Template:Chset-color-punct|,
002C
44
Template:Chset-color-punct|-
002D
45
Template:Chset-color-punct|.
002E
46
Template:Chset-color-punct|/
002F
47
3_ Template:Chset-color-digit|0
0030
48
Template:Chset-color-digit|1
0031
49
Template:Chset-color-digit|2
0032
50
Template:Chset-color-digit|3
0033
51
Template:Chset-color-digit|4
0034
52
Template:Chset-color-digit|5
0035
53
Template:Chset-color-digit|6
0036
54
Template:Chset-color-digit|7
0037
55
Template:Chset-color-digit|8
0038
56
Template:Chset-color-digit|9
0039
57
Template:Chset-color-punct|:
003A
58
Template:Chset-color-punct|;
003B
59
Template:Chset-color-punct|<
003C
60
Template:Chset-color-punct|=
003D
61
Template:Chset-color-punct|>
003E
62
Template:Chset-color-punct|?
003F
63
4_ Template:Chset-color-punct|@
0040
64
Template:Chset-color-alpha|A
0041
65
Template:Chset-color-alpha|B
0042
66
Template:Chset-color-alpha|C
0043
67
Template:Chset-color-alpha|D
0044
68
Template:Chset-color-alpha|E
0045
69
Template:Chset-color-alpha|F
0046
70
Template:Chset-color-alpha|G
0047
71
Template:Chset-color-alpha|H
0048
72
Template:Chset-color-alpha|I
0049
73
Template:Chset-color-alpha|J
004A
74
Template:Chset-color-alpha|K
004B
75
Template:Chset-color-alpha|L
004C
76
Template:Chset-color-alpha|M
004D
77
Template:Chset-color-alpha|N
004E
78
Template:Chset-color-alpha|O
004F
79
5_ Template:Chset-color-alpha|P
0050
80
Template:Chset-color-alpha|Q
0051
81
Template:Chset-color-alpha|R
0052
82
Template:Chset-color-alpha|S
0053
83
Template:Chset-color-alpha|T
0054
84
Template:Chset-color-alpha|U
0055
85
Template:Chset-color-alpha|V
0056
86
Template:Chset-color-alpha|W
0057
87
Template:Chset-color-alpha|X
0058
88
Template:Chset-color-alpha|Y
0059
89
Template:Chset-color-alpha|Z
005A
90
Template:Chset-color-punct|[
005B
91
Template:Chset-color-punct|\
005C
92
Template:Chset-color-punct|]
005D
93
Template:Chset-color-punct|^
005E
94
Template:Chset-color-punct|_
005F
95
6_ Template:Chset-color-graph|
2666
96
Template:Chset-color-alpha|a
0061
97
Template:Chset-color-alpha|b
0062
98
Template:Chset-color-alpha|c
0063
99
Template:Chset-color-alpha|d
0064
100
Template:Chset-color-alpha|e
0065
101
Template:Chset-color-alpha|f
0066
102
Template:Chset-color-alpha|g
0067
103
Template:Chset-color-alpha|h
0068
104
Template:Chset-color-alpha|i
0069
105
Template:Chset-color-alpha|j
006A
106
Template:Chset-color-alpha|k
006B
107
Template:Chset-color-alpha|l
006C
108
Template:Chset-color-alpha|m
006D
109
Template:Chset-color-alpha|n
006E
110
Template:Chset-color-alpha|o
006F
111
7_ Template:Chset-color-alpha|p
0070
112
Template:Chset-color-alpha|q
0071
113
Template:Chset-color-alpha|r
0072
114
Template:Chset-color-alpha|s
0073
115
Template:Chset-color-alpha|t
0074
116
Template:Chset-color-alpha|u
0075
117
Template:Chset-color-alpha|v
0076
118
Template:Chset-color-alpha|w
0077
119
Template:Chset-color-alpha|x
0078
120
Template:Chset-color-alpha|y
0079
121
Template:Chset-color-alpha|z
007A
122
Template:Chset-color-graph|
2660
123
Template:Chset-color-punct||
007C
124
Template:Chset-color-ctrl|
21B0
125
Template:Chset-color-ctrl|
25C0
126
Template:Chset-color-ctrl|
25B6
127

Note the asymmetry in the selection of graphics characters: 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 missing characters could be displayed by using inverse video.

Characters 1B-1F and 7D-7F had a dual use as graphics characters and control characters.

The glyph representation in ROM used by ANTIC for display are assigned in different order from ASCII/ATASCII. For example, to display the characters "@ABC" on screen by writing directly to the screen memory, one would write the decimal values 32, 33, 34, and 35 rather than the ASCII/ATASCII values 64, 65, 66, and 67.

Control characters

[2]

ATASCII Function Keystroke
27  Escape key ESC
28  Cursor Up CTRL+-
29  Cursor Down CTRL+=
30  Cursor Left CTRL++
31  Cursor Right CTRL+*
125  Clear Screen CTRL+< or SHIFT+<
126  Delete BACK SPACE
127  Tab TAB
155  End of line RETURN
156  Delete Line SHIFT+BACK SPACE
157  Insert Line SHIFT+>
158  Clear Tab stop CTRL+TAB
159  Set Tab stop SHIFT+TAB
253  Buzzer CTRL+2
254  Delete Character CTRL+BACK SPACE
255  Insert Character CTRL+>

See also

References

ATASCII in action