Jump to content
IGNORED

ATASCII "international character set"


Recommended Posts

The other day, while working on my game Invenies Verba, I was searching the web for info on the so-called "international character set" that Atari 8-bits include, starting with the 1200XL.  As a 1200XL owner, I might have been more aware of it than other XL/XE owners, because you could just hit Control+F4 to toggle between standard ATASCII, with graphical control characters, and the international alternative, with some Latin characters with diacritics, like ü & ñ.

 

I noticed the "ATASCII" article over at Wikipedia was lacking any mention of this feature of the XL & XE series, so took it upon myself to add some info. The page already included a big chart, describing each ATASCII character (and showing modern Unicode representations, when possible). This is, in fact, very much like the articles on Commodore's PETSCII, and plain ASCII.  However, within like 24 hours, not only were my changes reverted, but a ton of pre-existing info & charts, were removed.  Despite these other articles being a-okay, I guess ATASCII isn't notable enough, and the content was too much like a "technical manual."  This is what I get for trying to help by editing a Wikipedia article -- a few hours of my life wasted. ?

 

Well, for posterity, here's a cut-n-paste snapshot of the "ATASCII" article before the hatchet was taken to the poor thing.

 

(Text is available under the Creative Commons Attribution-ShareAlike License, edit history, while the page still exists at all, can be found here: https://en.wikipedia.org/w/index.php?title=ATASCII&action=history)

 

___

 

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 are 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 is the Atari XEGS which was released in 1987 and discontinued in 1992. The Atari ST family of computers use 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 main 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).

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.

Character set

Graphic characters

The following table shows the ATASCII character set. Each character is shown with a potential Unicode equivalent if available. Space and control characters are represented by the abbreviations for their names.

ATASCII[1]
  _0 _1 _2 _3 _4 _5 _6 _7 _8 _9 _A _B _C _D _E _F
0_
2665

251C
?
1FB87

2518

2524

2510

2571

2572

25E2

2597

25E3

259D

2598
?
1FB82

2582

2596
1_
2663

250C

2500

253C

2022

2584

258E

252C

2534

258C

2514
/ESC[a]
241B/001B
[a]
2191
[a]
2193
[a]
2190
[a]
2192
2_ SP
0020
!
0021
"
0022
#
0023
$
0024
%
0025
&
0026
'
0027
(
0028
)
0029
*
002A
+
002B
,
002C
-
002D
.
002E
/
002F
3_ 0
0030
1
0031
2
0032
3
0033
4
0034
5
0035
6
0036
7
0037
8
0038
9
0039
:
003A
;
003B
<
003C
=
003D
>
003E
?
003F
4_ @
0040
A
0041
B
0042
C
0043
D
0044
E
0045
F
0046
G
0047
H
0048
I
0049
J
004A
K
004B
L
004C
M
004D
N
004E
O
004F
5_ P
0050
Q
0051
R
0052
S
0053
T
0054
U
0055
V
0056
W
0057
X
0058
Y
0059
Z
005A
[
005B
\
005C
]
005D
^
005E
_
005F
6_
2666
a
0061
b
0062
c
0063
d
0064
e
0065
f
0066
g
0067
h
0068
i
0069
j
006A
k
006B
l
006C
m
006D
n
006E
o
006F
7_ p
0070
q
0071
r
0072
s
0073
t
0074
u
0075
v
0076
w
0077
x
0078
y
0079
z
007A

2660
|
007C
?[a]
1F8B0
/BS[a]
25C0/0008
/HT[a]
25B6/0009
8_
 

 

258A

 

 

 

 

 

25E4

259B

25E5

2599

259F

2586

 

259C
9_
 

 

 

 

25D8

2580

 

 

 

2590

 
NBSP/LF
00A0/000D

 

 

 

 
A_
2588
!
 
"
 
#
 
$
 
%
 
&
 
'
 
(
 
)
 
*
 
+
 
,
 
-
 
.
 
/
 
B_ 0
 
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
:
 
;
 
<
 
=
 
>
 
?
 
C_ @
 
A
 
B
 
C
 
D
 
E
 
F
 
G
 
H
 
I
 
J
 
K
 
L
 
M
 
N
 
O
 
D_ P
 
Q
 
R
 
S
 
T
 
U
 
V
 
W
 
X
 
Y
 
Z
 
[
 
\
 
]
 
^
 
_
 
E_
 
a
 
b
 
c
 
d
 
e
 
f
 
g
 
h
 
i
 
j
 
k
 
l
 
m
 
n
 
o
 
F_ p
 
q
 
r
 
s
 
t
 
u
 
v
 
w
 
x
 
y
 
z
 

 
-
 
?/BEL
    /0007
/DEL
    /007F

 

  Letter  Number  Punctuation  Symbol  Other  Undefined

  1. ^ Jump up to:a b c d e f g h Characters 1B-1F and 7D-7F had a dual use as graphics characters and control characters.

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.

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.

The arrangement of glyphs seems to make little sense in ATASCII order, however the arrangement of many make sense when the QWERTY keyboard layout is taken into consideration -- for example, ┌, ┬, and ┐ are the control graphics characters found on the top left Q, W, and E keys.

Control characters

ATASCII control characters [2]
Hex Decimal Function Keystroke
1B 27  Escape key ESC
1C 28  Cursor Up CTRL+-
1D 29  Cursor Down CTRL+=
1E 30  Cursor Left CTRL++
1F 31  Cursor Right CTRL+*
7D 125  Clear Screen CTRL+< or ⇧ Shift+<
7E 126  Delete ← Backspace
7F 127  Tab Tab ↹
9B 155  End of line RETURN
9C 156  Delete Line ⇧ Shift+← Backspace
9D 157  Insert Line ⇧ Shift+>
9E 158  Clear Tab stop CTRL+Tab ↹
9F 159  Set Tab stop ⇧ Shift+Tab ↹
FD 253  Buzzer CTRL+2
FE 254  Delete Character CTRL+← Backspace
FF 255  Insert Character CTRL+>

International Character Set

Atari 8-bits, 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, and/or tile graphics in a video game or other application. Cycling between multiple redefined character sets can provide simple animation at very little CPU cost (in exchange for memory used to store the character set data). Altering a character set in RAM can also be used for animation.

Starting with the Atari 1200XL, the first in the XL line of computers that followed the original 400 and 800 models, the Atari OS ROM included a so-called "international" character set, that replaced 29 of the graphical glyphs with Latin alphabetical characters containing diacrtics, such as e-acute (é). The OS built into 1200XL, the one and only Atari 8-bit model with function keys, allowed users to switch between the standard and alternate character sets by pressing CTRL+F4. Later XL and XE models required the user to update a register in RAM (e.g., via a POKE command in BASIC).

Atascii-international.png

ATASCII international characters
Hex Decimal Symbol Keystroke
00 á CTRL+,
01 ù CTRL+A
02 Ñ CTRL+B
03 É CTRL+C
04 ç CTRL+D
05 ô CTRL+E
06 ò CTRL+F
07 ì CTRL+G
08 £ CTRL+H
09 ï CTRL+I
0A 10  ü CTRL+J
0B 11  ä CTRL+K
0C 12  Ö CTRL+L
0D 13  ú CTRL+M
0E 14  ó CTRL+N
0F 15  ö CTRL+O
10 16  Ü CTRL+P
11 17  â CTRL+Q
12 18  û CTRL+R
13 19  î CTRL+S
14 20  é CTRL+T
15 21  è CTRL+U
16 22  ñ CTRL+V
17 23  ê CTRL+W
18 24  å CTRL+X
19 25  à CTRL+Y
20 26  Å CTRL+Z
60 96  ¡ CTRL+.
7B 123  Ä CTRL+:

See also

References

  1. ^ "ATARI8IG.TXT" (PDF), L2/19-025: Proposal to add characters from legacy computers and teletext to the UCS, 2019-01-04
  2. ^ atariarchives.org - Mapping The Atari Appendix 10 - ATASCII And Internal Character Code Values

External links

  • Like 5
  • Thanks 3
Link to comment
Share on other sites

And before it gets deleted, too, here's a screenshot of all 128 ATASCII characters with the international character set enabled (aka "POKE 756,204").  Generated in Atari BASIC under "Atari800" emulator.  Margin registers (POKE 82 & POKE 83) are super handy, I tell ya! ;) 

 

 

atascii-international.png

  • Thanks 2
Link to comment
Share on other sites

Ironically, in the end, I'm not using any characters with diacritics in my game. I do plan to support the German eszett (ß), which I had to add to my game's font (in two different styles). I went from knowing zero about that character, to knowing... well, a tiny bit.  For example, it was only in very recent years that an uppercase version was added (ß)!  (See: https://typefacts.com/en/blog/the-german-capital-letter-eszett)

 

Here's my current font, since I bet someone's gonna ask:

image.png.6174a55fef4d8190d41882e5e508d31c.png

 

(Also, I put "ß" in place of the "<" symbol because it sounds like on German keyboards that character is usually immediately to the right of [0]; on the Atari, the key to the right of [0] is [<], as we all know!)

  • Like 2
Link to comment
Share on other sites

If editing the article then it probably makes sense to explain why the Atascii codes are often different to the screen code.

 

- space as 00 allows the same "clear screen" programming sequence in the OS to be used in all graphics modes.

- for the 20 column text modes using the top 2 bits for colour attribute, the "screen code" arrangement only allows 64 characters rather than 128.  By having the screen codes arranged as they are allows the mode to show the upper case and numerics which would otherwise have been seperated.

Edited by Rybags
  • Like 1
Link to comment
Share on other sites

There are more national character sets assembed in place of the international: http://atariki.krap.pl/index.php/ATASCII like arabian and polish. I'm not sure there wasn't czech or czechoslovak charset in the past assembled in models sold in Czech or Slovak countries.

 

Edit: CHBAS ($2F4) is exchanged with CHSPTR ($26B) in 1200 XL when CONTROL+F4 is depressed, so it's good custom to set both variables in games that redefine charsets and don't disable OS.

Edited by mono
Link to comment
Share on other sites

I'm not sure that second shadow is even used - from the OS images here I've checked, the values are actually hardcoded into the keyboard IRQ routine (ref the REV10.ROM for 1200XL as well as the lower numbered ones that came later)

 

Also, in their laziness they ported the whole mess into future OS versions.   So in theory if you hooked the F-keys up on a later machine you could screw things up since the code to operate the status LEDs is still present and they use the same PORTB bits that 130XE uses to select the extended bank number.

  • Haha 1
Link to comment
Share on other sites

This is the way of WIKIPEDIA these days... the CO-founder was on the news again recently saying it needs to go, and he's sorry for what it's become. It no longer contains cold hard fact and information. He basically states that it's a biased censored mess now, beyond repair. Sanger is sadly correct in his assessment.

 

Thank you for trying and then posting what you could here. I bet it'll shape up nicely with the help of the AA community giving some input as well.

Edited by _The Doctor__
  • Like 1
Link to comment
Share on other sites

Have you tried talking to this Smuckola dude(tte)? Seems they want to remove the page entirely(!). Perhaps point them to the PETSCII page, which has similar detailed information.

 

Or I could revert the reversions and start an edit war ;)

  • Haha 2
Link to comment
Share on other sites

2 hours ago, _The Doctor__ said:

It no longer contains cold hard fact and information.

It never did.

 

You use it for exactly what it is, incomplete, often incorrect, and biased -- especially with historical / biographical / political (not that bias is particular to Wikipedia on those three subjects).

 

Edited by MrFish
  • Like 3
Link to comment
Share on other sites

I put the content back, it closely matches the content of the ASCII page but shows the differences between them. If that level of technical info is OK for ASCII, it should be OK for ATASCII too.

 

If it gets removed from the ATASCII page again I'll remove it from the ASCII page too. That should escalate the conversation.

 

  • Like 2
  • Thanks 3
  • Haha 3
Link to comment
Share on other sites

8 minutes ago, Spancho said:

Exactly. We can maintain our own repositories of computer information, without having to contend against Wikipedia's site politics.

 

The information about Atari 8-bit home computers resides with the world-wide community of enthusiasts and the materials that already exist. We can easily build something a million times better than whatever flimsy bits and pieces might be "accepted" by Wikipedia.

 

Edited by MrFish
  • Like 2
Link to comment
Share on other sites

Or we could try to get one of us to be the administrator of this page, or even all the pages that are Atari related. Then, you can even (partially) lock the page. Not sure about the process. I believe somebody has to be nominated somewhere on wikipedia.org and then voted in by, ehm, us ;)

 

Edited by ivop
  • Like 2
Link to comment
Share on other sites

9 hours ago, billkendrick said:

 This is what I get for trying to help by editing a Wikipedia article -- a few hours of my life wasted.

How strange I see your changes on Wikipedia. as I recall you have to wait for the editors to accept your changes.

 

I too recently ran into the same problem, but I added it to my atariware group wiki. but I missed placing the 1200XL info thanks.?

Link to comment
Share on other sites

36 minutes ago, ascrnet said:

How strange I see your changes on Wikipedia. as I recall you have to wait for the editors to accept your changes.

Hmm, have you read this thread? :)  It was @Mr Robot who reverted the reversion, hence you see @billkendrick's changes at this moment. Let's see what happens, if "Smuckola" is an agressive editor.

 

  • Like 1
Link to comment
Share on other sites

17 hours ago, mono said:

There are more national character sets assembed in place of the international: http://atariki.krap.pl/index.php/ATASCII like arabian and polish. I'm not sure there wasn't czech or czechoslovak charset in the past assembled in models sold in Czech or Slovak countries.

Excellent.

 

Sadly, one link at the bottom, "ATASCII Character Sets - comparison of ATASCII sets" (http://joyfulcoder.net/atari/atascii/) goes to domain name squatter looking site, now.  Here's an Internet Archive Wayback Machine snapshot. It's glorious! https://web.archive.org/web/20161025170529/http://joyfulcoder.net/atari/atascii/

 

  • Like 1
Link to comment
Share on other sites

13 hours ago, ivop said:

Have you tried talking to this Smuckola dude(tte)? Seems they want to remove the page entirely(!). Perhaps point them to the PETSCII page, which has similar detailed information.

 

Or I could revert the reversions and start an edit war ;)

The last thing I wanted to do, as an extremely rare editor of any content on Wikipedia, is end up in some argument with a know-it-all.

  • Haha 2
Link to comment
Share on other sites

Sometimes I'm envious of other communities like http://www.cpcwiki.eu or https://www.c64-wiki.com/

 

We need to promote more https://atariwiki.org , bring material from the forums to the wiki, and support librarians to keep feeding it. We cannot depend on a search engine and forums to find a solution or technical reference for our computers. A wiki is a perfect solution to keep our information organized.

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...