Classic Computer Magazine Archive ANTIC VOL. 2, NO. 2 / MAY 1983

Not Just A Pretty Face

by David Duberman

Traditionally, program listings in computer magazines have frustrated readers because of poor-quality reproduction. Listings are usually photocopies of dot-matrix printouts. Legibility generally is not high to begin with, and deteriorates further on reproduction.

A look at the program listings in this month's ANTIC will reveal that our new typeset listings are remarkably easier to read than the dot-matrix type. Also note that programs containing special ATASCII graphics characters now show them as they appear on the monitor screen. A customized typesetting font was designed for us to reproduce special characters accurately and unambiguously (see Fig. 1).

We now prepare our listings on diskette, and transmit them to the typesetter via the phone lines. Equipment used in this operation include an ATARI 800 computer with 48K RAM, a PERCOM Disk Drive, the ATARI 850 Interface Module, and the Hayes Smartmodem 1200. Datasoft's Tele-Talk terminal program for the ATARI performs admirably as our communication software.

The process begins at the ANTIC office with a program which has been accepted for publication. Usually we've received a version of the program on disk, or converted it from cassette. A few codes are added to the beginning and end of the program to identify it to the computer at the typesetter's end. The program is then LlSTed to disk, so it will be represented as a string of ATASCII symbols.

Once the program has been prepared, it is ready to be transmitted. One of the Smartmodem's advantages is that it can dial a phone number and automatically establish a link with the receiving computer. Once contact has been made, we simply transfer the program from disk to the ATARI, and subsequently from the ATARI to the computer on the other end of the link.

The first step is accomplished with a few keystrokes, as Tele-Talk is menu-driven. To transmit text files, Tele-Talk has a special spooling feature. Normally, this option is used for storing received (downloaded) data to a disk file, so at this point a prompt for a disk filename appears (i.e. "D1:"). To send the text to the other computer, it must be spooled through the RS-232 interface. Therefore, simply use the screen editor to change "D1:" to "R1:" and press RETURN. The text will be transmitted, though not displayed on the screen.

The typesetter's computer receives a stream of numbers from 0 to 255, each of which represents an ATASCII character. Most of these characters (i.e. Ietters, nurrtbers, and punctuation) furfill a direct correspondence with the ASCII character set, and therefore don't need translation by the typesetter. That is, the typesetter knows which characters are represented by the corresponding decimal value for the standard ASCII character set and doesn't need any special instructions to set those characters.

However, ATARI BASIC contains many special characters which have no representation in the normal ASCII character set. These include graphics characters (obtained by pressing CONTROL and certain keys in combination), control characters (cursor movement symbols and the clear screen symbol), and inverse video characters, all of which are used frequently in ATARI BASIC programs. Each of these is represented by a specific decimal value from 0 to 255. Therefore, the typesetter needs merely to know the list of special characters and their corresponding decimal value, and he can substitute accordingly.

Of course, the set of special characters must be defined by the typesetter so that his machine will know what to print when it encounters certain decimal codes during the translation process. He does this by combining rules (short thin lines) to form the character within the character space. Once it has been defined, the special character can be reused indefinitely, just like any other character used in typesetting.

The upshot of all this is that most program listings published in ANTIC from now on will be easier to read and to type in than any listings from any source you've previously encountered. When a programmer uses a special character, it will appear in the printed listing exactly as it does on the monitor screen.

One drawback of the typesetting system we are using is that spaces cannot be represented as characters of fixed length. So, program lines will not have the same length relationships in a published listing as they do on the screen. We considered using monospacing and a 40-column format, but decided that the legibility of our system is preferable. Therefore, if there is any doubt concerning the number of spaces to type in a given program line, we will insert a REM (remark) statement immediately before the line to indicate how many spaces are present in the dubious area.

Table Information

Our custom font listings represent eact ATASCII character as it appears on the video screen. You generate some characters by a single keystroke, for example, the regular alphabet. Others require a combination or sequence of keystrokes. In this table, ESC means press and release the escape key before pressing another key. CTRL or SHIFT means press and hold the control or shift key while simultaneously pressing the following key.

The Atari logo key "toggles" inverse video for all alphanumeric and punctuation characters. Press the logo key once to turn it on; press again to turn it off. On the 1200XL there is no logo key; inverse video is controlled by a key on the function row. Decimal values are given as reference, and correspond to the CHR$ values often used in BASIC listings.

Normal Video

For this.........Type this...Decimal Value
CTRL , 0 CTRL A 1 CTRL B 2 CTRL C 3 CTRL D 4 CTRL E 5 CTRL F 6 CTRL G 7 CTRL H 8 CTRL I 9 CTRL J 10 CTRL K 11 CTRL L 12 CTRL M 13 CTRL N 14 CTRL O 15 CTRL P 16 CTRL Q 17 CTRL R 18 CTRL S 19 CTRL T 20 CTRL U 21 CTRL V 22 CTRL W 23 CTRL X 24 CTRL Y 25 CTRL Z 26 ESC ESC 27 ESC CTRL - 28 ESC CTRL = 29 ESC CTRL + 30 ESC CTRL * 31 CTRL . 96 CTRL ; 123 CTRL = 124 ESC SHIFT CLEAR 125 ESC DELETE 126 ESC TAB 127

Inverse Video

ATARI CTRL ,             128
ATARI CTRL A             129
ATARI CTRL B             130
ATARI CTRL C             131
ATARI CTRL D             132
ATARI CTRL E             133
ATARI CTRL F             134
ATARI CTRL G             135
ATARI CTRL H             136
ATARI CTRL I             137
ATARI CTRL J             138
ATARI CTRL K             139
ATARI CTRL L             140
ATARI CTRL M             141
ATARI CTRL N             142
ATARI CTRL O             143
ATARI CTRL P             144
ATARI CTRL Q             145
ATARI CTRL R             146
ATARI CTRL S             147
ATARI CTRL T             148
ATARI CTRL U             149
ATARI CTRL V             150
ATARI CTRL W             151
ATARI CTRL X             152
ATARI CTRL Y             153
ATARI CTRL Z             154
ESC SHIFT DELETE         156
ESC SHIFT INSERT         157
ESC CTRL TAB             158
ESC SHIFT TAB            159
ATARI CTRL .             224
ATARI CTRL ;             251
ATARI SHIFT =            252
ESC CTRL 2               253
ESC CTRL DELETE          254
ESC CTRL INSERT          255