memory. But how does one set aside space for these arrays? We can't put them just anywhere. They might be overwritten by this program or system. The trick is to use the DIM statement, something we were trying not to do. However, we are not defining these arrays as numerical arrays. We're going to set them up as strings! That's right, you heard me the first time. We are defining the arrays as strings, but we are surely not going to use them this way.

There is an interesting function available in ATARI BASIC. It returns the address of a string array. Does this give you any ideas? We dimension a string array, and use the ADR(A$) function to be able to PEEK and POKE into it. The starting addresses in the preceeding examples are replaced with ADR(string array). Then, X=PEEK(1536+N) becomes X=PEEK(ADR(A$)+N) AND POKE XYZ+1*6+J,X becomes POKE ADR (XYZ$) +1*6J,X. After the string is defined, we replace all references to the starting address with the ADR function and the string variable name.

You might be wondering why we don't assign a variable to the address of the string. To let XYZ=ADR(XYZ$) seems sensible. After all, it cuts down on calls to the ADR function. This line of thinking makes a lot of sense, but it can cause problems. This has to do with the fact that string variable addresses can change as a program is running. This seems to happen only when a new numeric variable is encountered in a program, and BASIC has to make room for it. This is accomplished by pushing all the string space farther up in memory. It is safer to have the computer constantly recompute the string addresses.

 

"MOIRE" GRAPHICS DEMO
Note: hit any key to stop

10 DEG
20 A=INT(1.9*160)
30 GRAPHICS 8+16
40 SETCOLOR 2,0,0
50 FOR I=O TO 160 STEP 5
60 B=INT(I/2)
70 COLOR 1
80 PLOT 0,B
90 DRAWTO 1,160
100 PLOT A,B
110 DRAWTO A-I, 160
120 PLOT 0,160-B
130 DRAWTO 1,0
140 PLOT A,160-B
150 DRAWTO A-I,O
160 NEXT I
170 IF PEEK(764)<>255 THEN END
180 GOTO 170

 

RUMORS...

Have You Heard The One About.
... rumors about a graphics chip for the ATARI 825 printer
... a multi-player Star Raiders with advanced capabilities: landing on asteroids to partially refuel and swooping down into planets atmospheres and bombing alien cities
... the release later this year of a voice synthesizer and voice recognition system by ATARI
... a new operating system: with a 96K addressable memory bank
... a screen dump cartridge for the 800's right hand slot; prints what's on the screen to hardcopy
... Telelink 11; "a smart terminal emulator" with graphics capability and upload/download abilities
... from Microtek: an EPROM burner (make your own cartridges), A/D & D/A converters (hook your ATARI up to outside sources - you can control things), BSR unit (have your ATARI turn lights in the house on and
Off, etc.)
... 80 column screen formatter!
... a word -processor on a ROM!
... Galaxian for the ATARI!
... an ATARI 400 with built-in modem - with no internal microprocessor (to be used as a dumbterminal)
... ATARI's are now being used in the CUBE system in Columbus Ohio. It is part of the two-way television communication system.
... And the ATARI Program Exchange: This department will handle the marketing of third party software and also sell software from ATARI under this name.

Programs to be released initially:

Adventure games
Avalanche
Baseball
Cross Referencer
Forth Language
Star Trek game
Sound Development System
Othello
Turtle Language ... and much more.