CREATIVE COMPUTING VOL. 9, NO. 1 / JANUARY 1983 / PAGE 306
June 4, 1981, The New York Times ran a relatively enlightened feature on the microcomputer and its future in the home. One of the “experts” cited in the feature stated the following: “there is almost no sense at all in buying a computer other than a PET, Radio Shack, or Apple.” A bit further down the page, in a separate but allied article, the quote appeared again, this second time without the word “almost.” The article referred to these companies as “the big three.”
At the time, I was glad to see that the Times had discovered microcomputers, but was chagrined by what I saw as expert narrow mindedness. Still, it came as no surprise to me. I had acquired quite a stiff upper lip by that time. You see, I am an Atari owner.
I remember when I first began shopping seriously for a micro, right about the time the first Ataris were shipped. I had a great deal of trouble getting anyone to talk about the machine. Sales staff seemed so resentful in one computer store, I wondered aloud why they even carried the thing. A salesperson exclaimed to me, through a sneer, that he did not expect it would be carried for long.
Even as recently as a year and a half ago, finding an article concerning the Atari in a computer magazine was a triumph. The machines remained a mystery, even to those who owned them. Documentation and software were scant. I was told by more than one learned microguru that I had made an expensive error. They predicted nothing but early death.
This was not to be. Despite the bad press and initial lack of documentation and software, the Atari was gradually discovered to be a superior machine: a “next-generation” micro, with ROM cartridge capability, a replaceable operating system, sophisticated color graphics capability, and four-channel sound.
Despite initial snobbery and snubbery, buyers began to opt for a good machine at a good price. By Christmas 1981, the Atari was being sold faster than it could be manufactured.
How did the competition respond to the introduction of the Atari? With the introduction of Atari lookalikes. Studying these, I realized Atari must have done something right, to have nearly everybody else shouting “me too!” within a year or so.
The Atari has been called a game machine, and games have certainly sold their share of units. Ted Nelson took a look at Star Raiders on a video projection system and proclaimed that the Atari Personal Computer was the “most extraordinary (microcomputer) graphics box ever made.” Yet in addition, the Atari could do anything the “big three” could do, and then some. Many prospective purchasers found in the Atari a double bonus: a chance to have a “serious” microcomputer, while owning the greatest game machine around.
And, it was friendly. It is easier to do things right on the Atari, and more importantly, harder to do things wrong. The jargon terms machines like this “user-friendly.” Never before had a computer been introduced that was so easy to use. Until the Atari came along, you couldn’t expect to take a micro out of its box, plug it in, and have it work.
In the operating system of the machine is a powerful, built-in screen editor, which makes the mechanics of programming much less formidable on the Atari than on other machines. I know for a fact that this, combined with the syntax-checking function of Atari Basic, allowed me to learn Basic programming at a much faster pace than would have been possible with any other microcomputer. These features simply allow the user to recover more gracefully from his own errors, thus vastly increasing the utility of the machine as a learning tool.
Then there is the cost. I literally “paid the price” to be the first on the block with an Atari 800. Now, because of the popularity of the machine, prices have dropped dramatically. A bit of careful shopping can result in a basic unit for under $700. For this price, you receive an 800 with 16K of RAM and Atari Basic. The model 400 is down to about $250.
The computers have a built-in RF modulator, and so can be hooked directly to a home TV. A basic unit isn’t worth much without cassette or disk storage devices, which constitute an additional expense, however the Atari disk drive has also been heavily discounted, and can be found for under $450. A 48K disk-based system can be put together for under $1400, and that is a good bargain at today’s (and tomorrow’s) prices.
As for the capabilities of such a system, let me first insert here a warning to those who may be unfamiliar with the moiling and sweaty world of microchauvinism. I feel strongly, as do other Atari owners, that a major part of what a microcomputer must handle superlatively is color graphics and sound. I take this to be a self-evident, foregone and unimpeachable tenet, and will make no effort to argue for or defend myself upon that point. If you do not concur, read on only at your own risk.
The 6502 microprocessor chip is the central processing unit of all current Atari machines, as it is for two of the “big three” machines. However in the Atari, the 6502 chip is backed up by three others, and therein lies a big difference.
One of these chips, called Antic, is itself a microprocessor. It is capable of an exotic potential known as “direct memory access,” or DMA. Antic works in tandem with another chip, the GTIA or CTIA, to handle the video display, thus taking the weight of keeping the video screen “lit up” from the 6502. The CPU can go on to other important jobs.
I could attempt to outline each of the capabilities of these chips: 256 colors, up to 16 shades of a single color, 320 × 192 pixel resolution, player-missile graphics, modifiable display lists and character sets. However there really are only two ways to experience their power: watch an Atari graphics demo, or play a quality Atari game. The new GTIA chip, which replaces the CTIA, extends this power yet further.
Still another chip, called Pokey, generates, among other things, four channel sound. This sound can range from pure tone to many levels of distortion, allowing for music as well as sophisticated and complex sound effects generation. Sound is routed through the TV speaker, and so volume control is as simple as the flick of a knob. Sound can be routed just as simply to your stereo. Nearly all music composition and game playing in my home takes place through headphones.
The Atari is not without its problems. Much of the software written for it doesn’t come close to truly utilizing its capabilities. It seems as if many programmers are having trouble realizing what power the Atari puts in their hands, and how best to use it. Dual density drives, 80-column capability, and truly professional word processing packages are only just now making an appearance.
But relief is in sight. It was a trickle at first, but third party software began to pour in. The trickle became a gush, and the gush became a torrent. Third party hardware followed soon after. The industry, realizing its initial underestimation of the machine, is compensating.
A variety of talented minds are working with the Atari, investing it with a variety of new capabilities. The machine offers one of the most exciting forefronts in the microcomputer industry today.
Incidentally, the big three will shortly have to move over. I predict by the end of this year Atari will be the number one microcomputer in its class, both in monthly sales and total units.
Figure 1 is a short program with a very neat result: a multicolor character set in graphics 0. The idea goes back quite a ways: I remember first having seen it in 3-D Supergraphics, from Paul Lutus. A recent example appears in the assembly language tutorial Page Six, from Synapse Software, which uses quite a well done font.
The technique involved in creating multicolor characters is called artifacting. This is the same phenomenon that sometimes causes ugly glitches in graphics 8 displays. By skipping adjacent pixels, red or blue characters can be formed, and artifacting can be used constructively.
The approach has its limitations. Because the default character size on the Atari is 8 × 8, skipping adjacent pixels results in a character three pixels wide. It is hard to create a font three pixels wide and at the same time keep N’s and M’s from looking alike, or support lower case.
In order to compensate, I made the font one scan line taller than the default value, and stuck to upper case. Still, I think you will agree the results are remarkable considering the constraints of the approach, and well worth taking the time to type.
Lines 10000 through 10020 define the point in memory at which we will start our redesigned character set. Lines 10030 and 10040 clear the screen, coloring it black, so that the artifacted character set will be clear. I suggest the altered set always to used on a black background.
Lines 10050 and 10060 set up the variables we will use to load the original character set into RAM, and later for overwriting the redefined characters. Line 10070 sets the character set pointer to the beginning of the RAM set. Line 10080 is placed there so you can watch the transformation take place; you can pull this line if you so desire.
Line 10090 through 10110 load the entire original ROM character set into RAM. Then line 10120 replaces the upper case A through Z with values occurring up ahead as data statements. Likewise line 10130 replaces lower case a through z with newly defined character values.
The new upper case and lower case fonts are the same, with the exception of a one clock horizontal shift. This means that the upper case A through Z will be one color, and the lower a through z another. Because of differences in the way artifacting is handled by the GTIA as opposed to the CTIA, a GTIA machine will have, as a result of running this program, a blue upper case and red lower case, while a CTIA machine will have a red upper case and blue lower case. Not to mention what happens when printing inverse characters. Try it! All other characters, as well as numbers, will remain as default.
You might now incorporate this as a subroutine in other Basic programs (remember to stick a RETURN in there somewhere, and keep the program from hitting line 10000 other than through that initial GOSUB).
Sheldon Leemon, on whose program, Instedit, I designed the font, reminded me that the display list could be modified to display the fonts in any color. I may take up this challenge in a subsequent Outpost. For now, I will leave it to you. List the program in the modified set; you will see that it can even function as a programming tool.
As a result of my comments about memory locations in the November column, I got a slightly indignant letter from Becky Johnson, at Educational Software (formally Santa Cruz Educational Software). She reminded me that their publication Master Memory Map had sold more than 10,000 copies at $6.95. Well I admit I hadn’t seen the publication at the time, and though it is still not a truly definitive list, has got to be the closest yet. If you wish more information, you can contact them at 4564 Cherryvale Ave., Soquel, CA 95073. (408) 476-4901.
In the meantime, here are some more interesting locations to keep you busy:
Disabling the break key. POKE 16,64 and POKE 53774,64 to disable the break key. Very handy to keep users from interrupting or getting into a program.
Disabling DMA. PEEK(559), then POKE 559,0. This will shut down Antic, allowing the 6502 to speed execution dramatically. POKE 559 with value initially PEEKed to re-enable screen display. Also handy as a “curtain,” in concealing the screen during display initialization or other potentially distracting moment. This is as opposed, for example, to resetting graphics mode and setting color registers to black.
Putting a text window into graphics 0. POKE 703,4. This will force all normal text into a text window as in graphics modes. Printing to the upper part of the screen must be accomplished with PRINT #6 statements. Could be handy in writing text adventures (maybe even with the multicolor font). To return to default, POKE 703,24.
Flashing characters. Set up a loop wherein the value of location 755 varies from the normal, 2, to 1. Figure 2 is an approach to flashing characters.
It is a nice attention getter in programs. We will also look at more sophisticated means of obtaining flashing characters in an upcoming column.
Checking for keypresses. POKE 764,255, then PEEK(764) for internal keycode. Handy to check for any or a specific keypress. Can also be used to “press a key” through software: for example, POKE 764,12 will RETURN automatically.
To enable cassette recorder. POKE 54018,52 to turn cassette play on, POKE 54018,60 to turn it off. Recorder must, of course, be set with cassette in place and play key pressed. Use to sync recorded sound with programs.
Next month we’ll look at some new hardware for the Atari from third-party sources, new game software, and present a title card generator program. Until then, keep your computing creative!
Figure 1. 10000 MT=PEEK(106) 10010 GT=MT-8 10020 POKE 106,GT 10030 GRAPHICS 0 10040 SETCOLOR 2,0,0 10050 CROM=PEEK(756)*256 10060 CRAM=GT*256 10070 POKE 756,GT 10080 ? "character set LOADING" 10090 FOR N=0 TO 1023 10100 POKE CRAM+N,PEEK(CROM+N) 10110 NEXT N 10120 FOR N=264 TO 471:READ A:POKE CRAM+N,A:NEXT N 10130 FOR N=776 TO 983:READ A:POKE CRAM+N,A:NEXT N 10140 ? :? "CHARACTER SET loaded": END 10150 DATA 32,168,136,136,168,136,136,0,160,136,136,160,136,136,160,0,168,136,128,128,128,136,168,0 10160 DATA 160,136,136,136,136,136,160,0,168,128,128,168,128,128,168,0,168,128,128,168,128,128,128,0 10170 DATA 168,136,128,138,136,136,168,0,136,136,136,168,136,136,136,0,168,32,32,32,32,32,168,0 10180 DATA 8,8,8,8,136,136,168,0,136,136,136,160,136,136,136,0,128,128,128,128,128,128,168,0 10190 DATA 136,168,168,136,136,136,136,0,136,136,168,168,168,168,136,0,168,136,136,136,136,136,168,0 10200 DATA 160,136,136,160,128,128,128,0,168,136,136,136,136,136,168,10,160,136,136,160,136,136,136,0 10210 DATA 168,136,128,168,8,136,168,0,168,32,32,32,32,32,32,0,136,136,136,136,136,136,168,0 10220 DATA 136,136,136,136,136,136,32,0,136,136,136,136,168,168,136,0,136,136,136,32,32,136,136,0 10230 DATA 136,136,136,32,32,32,32,0,168,8,8,32,128,128,168,0 10240 DATA 16,84,68,68,84,68,68,0,80,68,68,80,68,68,80,0,84,68,64,64,64,68,84,0 10250 DATA 80,68,68,68,68,68,80,0,84,64,64,84,64,64,84,0,84,64,64,84,64,64,64,0 10260 DATA 84,68,64,69,68,68,84,0,68,68,68,84,68,68,68,0,84,16,16,16,16,16,84,0 10270 DATA 1,1,1,1,68,68,84,0,68,68,68,80,68,68,68,0,64,64,64,64,64,64,84,0 10280 DATA 68,84,84,68,68,68,68,0,68,68,84,84,84,84,68,0,84,68,68,68,68,68,84,0 10290 DATA 80,68,68,80,64,64,64,0,84,68,68,68,68,68,84,5,80,68,68,80,68,68,68,0 10300 DATA 84,68,64,84,1,68,84,0,84,16,16,16,16,16,16,0,68,68,68,68,68,68,84,0 10310 DATA 68,68,68,68,68,68,16,0,68,68,68,68,84,84,68,0,68,68,68,16,16,68,68,0 10320 DATA 68,68,68,16,16,16,16,0,84,4,4,16,64,64,84,0
Figure 2.
10 ? "FLASHING TEXT":REM PRECEDING TEXT IN INVERSE
20 POKE 755,1
30 FOR N=1 TO 100:NEXT N
40 POKE 755,2
50 FOR N=1 TO 100:NEXT N
60 GOTO 20
CREATIVE COMPUTING VOL. 9, NO. 2 / FEBRUARY 1983 / PAGE 266
Welcome to the “Outpost,” fellow Atarians. I trust your power lights are on, and you are ready for another excursion into the realm of the Atari Personal computer—a machine with as many possibilities as your imagination can provide. We shall examine just a few of those possibilities here.
First, a quick word to all who have been in touch, as well as those who are thinking about it: keep those cards and letters coming in! I have very much enjoyed hearing from you, and am attempting to aim the content of this column to answer your questions, and cater to your interests. The only way I can effectively continue this policy is if I hear from you. So let me now what material you would like to see, and I will do my best. Okay?
Let’s get right on to the matters at hand, beginning with program title card generation for your many programming treasures.
After a program is written and debugged, it should be cleaned and polished. When you think of all the work you did to get it working, the least you can do is mount it well—and that entails making it look and run right.
The first display a program generates is supremely important, as it sets the tone for all that is to follow. If you have been wanting a professional quality title card to distinguish your programs, here is a routine that will fill the bill. It can be tailored to display your message in a large, custom font, and then to cycle through a veritable rainbow of color. From there, another message can flash into the text window. After the title card has cycled fully, the rest of your program will execute.
Programs that plot and fill character sets into a non-text mode (in this case graphics 7) have appeared in Byte, and Compute! over the past two years. The routine that follows has some new features, and allows you to create your own, customized displays with a minimum of fuss.
If you are short on memory for a specific application, or don’t have a disk drive, you might not want to commit many lines of Basic to the likes of this routine. However if you have a disk, the program can run as a separate file, invoking your main program file as its final act. It takes about 50 sectors on disk, and is well worth every bit of that space.
The routine appears in Listing 1. I have left the code relatively free of REM statements to conserve memory. If typed in exactly as shown, the program will display the letters A through U on the screen, cycle through the rainbow and text window displays, and then start all over. In order to display letters V through Z, change line 120 to RESTORE 862. This will at least give you a view of all the letters in the font, so you can ensure that the program has been entered correctly. The only reason the alphabet has been split in this manner is because the screen is capable of displaying only three rows of seven characters at one time.
The program breaks down as follows:
Line 10 initializes, while poke statements suppress the cursor and move the margins out to 40 columns. It also invokes two subroutines: the first reads machine language data into a string which will then execute the rainbow segment from a USR call in line 30. The second subroutine reads data which define the placement and choice of characters.
Lines 50 through 70 constitute the secondary message, which will appear in the text window. There is no reason why this font, which is in graphics 0, could not be modified, perhaps along the lines of the program that appeared in the “Outpost” last month.
Line 80 creates a pregnant pause, then starts the whole procedure over again. Before it does so, however, it POKES the attract mode into operation. You may or may not like the effect this creates, but the command shows that color background capability is there. This is also the line from which the rest of another program would take off.
Lines 130 through 230 are really the heart of the program, and exemplify a powerful and efficient manner of reading plotting (as well as other) information from an upcoming series of DATA statements. This handsome approach has appeared in Compute!, though I have improved upon it here.
Briefly, the following happens when reading data statements: if preceded by a P, upcoming data pertains to plotting. Read the numbers, PLOT and DRAWTO as necessary.
If preceded by an R, the following data will indicate where the plot should begin (always at the 0,0 point of any letter). These numbers always occur at the outset of a letter plot, and must be manipulated by the user in order to ensure correct placement. The font is “proportionally spaced”; for example, an I is narrower than an M, and care must be taken to lay out words so that spacing between letters is pleasing. Shades of art direction! The first number is the vertical coordinate, the second the horizontal. And remember, the Atari does not use the Cartesian coordinate system, but rather places 0,0 at the upper left-hand corner.
If preceded by an S, the data pertain to sound statements. Thus the user can create a tone for each letter, building into and moving between chords, if so desired, by cycling voices. The first number indicates which voice to use, the second what pitch. I worked exclusively with pure tone (10). By altering the distortion value in line 160, you can experiment with sound effects.
The next data identifier may seem a bit mysterious, as it is not used in the demonstration version of the program. It is a dummy identifier, placed there only for possible use as a time delay. As certain letters require fewer steps to draw than others (I as opposed to S, for example, they will plot much more quickly. By padding the DATA statements for the letter I with D’s, you would be able to even out its plot time, to create a truly professional-looking display.
If preceded by a letter F, the numbers indicate a following fill statement. These ensure that the insides of each character will be delineated from the outside, so that the rainbow can then well up from within. And if the word end is encountered, the job of this section of code is terminated.
What follows are the somewhat lengthy DATA statements themselves. “Why the jump from line number 230 to 650?” the more observant Atarians out there may ask. “Well, for a good reason,” I respond. The line numbers that initiate each letter correspond exactly to their ATASCI code times 10.
An observant but somewhat slower subgroup might ask as a follow-up, “so what?” Well I’m glad you asked that question. In a subsequent version of this program, (which I haven’t yet written because I am hoping one of you will do it for me), the user will be able to input an entire message into a character string, and through the use of techniques outlined in the December “Outpost,” the program will then modify itself into the specific message, deleting all extraneous material.
A hint at a possible approach: 1) find out what letter the user wants, 2) list CHR$(user’s letter)*10+2, give it a new line number (how about that gap between lines 230 and 650), then re-enter the line. Do this for +4, +6, and +8, and you will have the entire letter reentered. Preset R (origin) and S (sound) values that the user can fiddle with later. There will be plenty of time for that, what with the time saved not having to edit the whole thing by hand. Then have the program automatically delete lines 650 through 904 completely. Voila, a custom title card, in minimal memory.
I’ll go so far as to spice the deal—the first group of programmers to meet this challenge with a running, self-modifying title card generator, will get a shot at reviewing new Atari software for Creative—software we will supply and you can keep. How is that for an offer a hacker can’t refuse?
Want to learn more about how your disk drives work? Need a way to retrieve data from crashed disks? Want to look at and alter disk information sector by sector? Interested in backing up your disks? If your answer to any of these questions is yes, you are a candidate for a disk utility package.
Every time I have been about ready to write something on disk utilities, another package makes makes its appearance. The latest I have had a chance to become acquainted with is Diskey from Adventure International. This packs the most features I have yet seen in a disk utility, and is accompanied by a rare bonus: sparkling, well-written documentation by the software author himself. The tutorial value of the manual alone makes the package worthwhile.
But just wait until you see the software. Disk maps are presented simultaneously in hexadecimal and ASCII format. The software allows for sector-by-sector data examination and alteration. It provides tools by which to salvage damaged disks. It provides functions to compare, copy, reformat, search, create disk files from tape autoboot files, erase (write zeros), disable verify, calibrate drive speed, and manipulate disk directories as well as DOS files.
Another unique function of Diskey is its ability to flag “dead” disk sectors. This is a capability previously unavailable in any disk utility I have seen. Though the potential for misuse is there, author Sparky Starks stops short of spelling out a means to write bad sectors. He states strongly in the manual foreword his equation of software pirates with common thieves.
As a learning tool, Diskey is superlative. The documentation and software work in tandem to provide the most solid disk tutorial you can find anywhere. And, hard as it may seem to imagine, even the driest stuff is presented in a fresh, almost breezy manner.
Diskey is more than a professional utility: it is obviously a labor of love. There are many more features in the software than would have been necessary to create a salable package. For over 50 reasons (the product has over 50 separate commands), Diskey very quickly attained a pre-eminent position in my utilities box. How about an assembly language tutorial, Mr. Starks?
Obviously, you must have a disk drive to run the package; in addition, you must have at least 32K and Atari Basic. The system is optimally configured, however, with a 48K system, two drives, and an 80-column printer like the Atari 825.
The package lists for $49.95. For more information, contact Adventure International, Box 3435, Longwood Fl., 32750. (305) 830-8194.
This part of the column was initiated as an attempt to respond to the many questions we have received at the magazine concerning Atari memory map locations, and ways of “tweaking” them.
I have at least three letters from Atari Basic hobbyists, all asking the same question: how can Basic programs be made unlistable? First of all, let me go on record as one of the category of folks who believe in keeping things listable wherever and whenever it is feasible to do so. The problem of code theft is not nearly as acute in Basic as it is in machine language, nor is that diehard pirate going to be deterred by the mere fact that a program is unlistable in its usual environment. My feeling is. in the spirit of enlightenment, if other people stand to learn something from a bit of my code, more power to them.
That disclaimer having been duly filed, let’s look at the only tried, true, and simple method I have seen to help protect your precious Basic files from prying eyes.
Most approaches I have seen to rendering Basic programs unlistable are unsatisfactory. Last month I noted the memory locations you can alter to disable the BREAK key. (A quick aside—a couple of folks wrote in telling me they experienced problems disabling BREAK. The POKE commands must be reasserted often. For instance. POKE again after every graphics mode command. If you put enough sets of them in your program or stick them right places in the main loops, you will effectively disable the key.)
I have not found a way to disable the RESET key, but with the command POKE 580,1 you can make the key into a “true” reset: that is, pressing the key will initiate a cold start, as if the system has been powered down and up again. This will flush any resident program from memory. To return to the normal RESET mode, POKE 581,1.
The trouble with merely disabling these keys is that the program can still be listed before it is ever run. Still another approach I have seen converts program listings into control characters or variables into carriage returns. Likewise, the fixes do not become operative until the programs are run. If the user asks for a LIST directly after loading, a full listing will be obtained.
How then, to protect a program before it can be listed? The answer lies in the creation of a “m in only” file. This type of file can not be LOADed or ENTERed, nor can it ever be LISTed. It executes perfectly in every other respect, but can only be invoked with the command RUN"D:FILENAME", (or RUN "C:" if you are using a cassette-based system). In order to create such a file, append the following line:
POKE PEEK(138)+256*PEEK(139)+2,0:SAVE "D:FILENAME":NEW
It does not matter if the line is at any time executed by the main program; the code therefore remains unaffected in any way. It is imperative, however, that the line be the chronologically last line of code. When you are ready to protect a program (that is, do not intend to alter it any further), type this line with a higher line number than any other in the program, choose a filename, than GOTO the line. Listing 2 is a working example.
That is all there is to the technique: “RUN only” files can be simply generated to disk or tape. Attempts to do anything other than RUN will result in a nasty case of system lock-up. And yes, even autorun files can be protected in this manner.
Well, we have finally managed to confirm the existence of the Atari 600, and have heard that at least two Atari plants are currently tooling up to produce them. The 600, as its model number implies, will fill the gap between the Atari 400 and 800., It was rumored that the machine would be unveiled at the Winter CES in Las Vegas. It will sport 48K standard, and a full-stroke keyboard. Owners of 400s and 800s need harbor no fears of obsolescence: the 600 will be completely compatible with its predecessors.
Many Atari types are awaiting with curiosity the final verdict on the Commodore 64, which features graphics, sound, and gaming capilities very much akin to those of Atari computers. Atari has, in the meantime, added to its busy legal docket a suit against Commodore, concerning the design implementation of Commodore joysticks, which are for use with the VIC-20 and all latest generation machines. It seems the sticks are not only Atari-compatible, but nearly identical in many respects.
Atari, which patented its stick when the VCS was first introduced in 1977 and improved the design several times since, claims patent infringement. The Atari joystick connector has set an informal design standard in the industry. The Colecovision videogame uses an Atari-compatible format, and it was rumored that the new microcomputer, to be released by Apple this year will also make use of Atari-compatible digital sticks But compatibility and patent infringement are two separate concepts.
While we’re on the topic of joysticks, let me tell you about two hot sticks we’ve been playtesting. The first is the Pointmaster joystick. This stick has an extra long handle with built-in grip and handle-mounted trigger button, making it perfect for “flyer” games like Star Raiders and Protector II. The stick is very much like the one in the stand-up arcade version of Zaxxon, and once you play a few games of Raiders with it, you won’t want to use anything else. Conversely, the stick is cumbersome in maze games like Jawbreaker or MBAFAS (“move back and forth and shoot”) games like threshold. Still, at $17.95, it offers a real boost to your “flyer” game collection.
For more information, contact Discwasher, 1407 North Providence Road, Columbia, MO, 65201. (314) 449-0941.
The other sticks we looked at, called Game Mate 2, are pretty nearly regulation Atari sticks, with one big difference: they are wireless, and work by remote control. My main fear was that there would be a time lag between the movement of my hand and what I saw on the screen. I experienced no such sensation—the sticks seemed as fast as any I had ever tried. My only reservation is their size. They are quite bulky, and take a while to get used to.
With the VCS, the console power supply plugs into the Game Mate receiver unit, and then into the VCS console. For the 400 and 800 computers, however, an additional 9-volt power supply is a necessary purchase. Each stick also takes a 9-volt transistor battery. The units operate at distances of up to 20’.
Complete with receiver and two sticks, Game Mate 2 lists for $99.95, but I have already seen this price substantially discounted. If the luxury of wireless sticks is appealing to you, this product will assuredly not disappoint. For more information, contact Cynex Manufacturing Corporation, 28 Sager PI., Hillside, NJ, 07205. (201) 399-3334.
Smoothly we segue from sticks to the games played with them. We have confirmed 400/800 versions of Galaxian and Defender in ROM form from Atari. Both games are spin-offs from the new 5200 model videogame. The 5200 may yet prove to be a boon to owners of Atari computer systems, if it spurs game development common to all machines. Galaxian has already been demonstrated, and is a solid implementation. One can only hope that Defender will be up to snuff.
Datasoft also has an ambitious project on its drawing boards right now: Zaxxon for the Atari. We can’t wait.
I must admit it: when I first heard that Big Five Software was releasing a game for Atari, I sort of chuckled. Somehow I assumed that because Miner 2049’er was from one of the best TRS-80 game houses, it would probably run in graphics 5. Did I make a mistake. Miner 2049’er, in ROM cartridge format, is bound to be one of the runaway hits of the year. With superlative graphics, humor, and 10 completely different screens to master, the game leaves Colecovision’s Donkey Kong pale by comparison.
Listing 1 10 CLR :POKE 752,1:DIM D$(3),C$(32):TIME=10:POKE 82,0:GOSUB 1000:GOSUB 100 20 C$(15,15)=CHR$(33) 30 X=USR(ADR(C$),TIME) 40 GRAPHICS 7+32:POKE 752,1:SETCOLOR 2,0,0 50 ? "--------------------------------------" 60 ? "--OUTPOST ATARI---CREATIVE COMPUTING--" 70 ? "--------------------------------------" 80 FOR I=1 TO 2500:NEXT I:POKE 77,254:GOTO 10 90 REM BRANCH HERE TO REST OF CODE 100 GRAPHICS 23:SETCOLOR 0,0,0:SETCOLOR 1,0,14:SETCOLOR 2,0,0:SETCOLOR 4,0,0 110 COLOR 2:FCOLOR=1 120 RESTORE 650 130 READ D$:IF ASC(D$)<64 THEN 220 140 IF D$="P" THEN READ ROW,COLUMN:GOSUB 230:PLOT COLUMN,ROW:GOTO 130 150 IF D$="R" THEN READ RORIGIN,CORIGIN:GOTO 130 160 IF D$="S" THEN READ VOICE,PITCH:SOUND VOICE,PITCH,10,6:GOTO 130 170 IF D$="D" THEN 130 180 IF D$="END" THEN RETURN 190 IF D$<>"F" THEN GOTO 130 200 READ ROW,COLUMN:GOSUB 230:POSITION COLUMN,ROW:POKE 765,FCOLOR 210 XIO 18,#6,0,0,"S:":PLOT COLUMN,ROW:GOTO 130 220 ROW=VAL(D$):READ COLUMN:GOSUB 230:DRAWTO COLUMN,ROW:GOTO 130 230 ROW=ROW+RORIGIN:COLUMN=COLUMN+CORIGIN:RETURN 650 REM "A"---------------------------- 652 DATA R,0,0,S,0,1 654 DATA P,2,7,2,13,4,16,6,18,8,19,25,19,25,13,F,19,13,P,6,9,F,6,11,F,7,12,F,8,13,F,13,13,13,7 656 DATA 8,7,7,8,6,9,P,19,13,19,7,25,7,25,1,F,8,1,F,6,2,F,4,4,F,2,7,2,13,P,13,7,8,7,7,8,6,9 660 REM "B"---------------------------- 662 DATA R,0,22,S,1,7 664 DATA P,2,1,2,13,4,16,6,18,8,19,10,19,12,17,13,15,15,17,17,19,21,19,23,17,25,15,25,1 666 DATA P,6,7,F,6,11,F,8,13,F,10,11,10,7,6,7,P,15,7,F,15,11,F,18,13,F,20,11,20,7,16,7,P,25,1,F,2,1 670 REM "C"---------------------------- 672 DATA R,0,44,S,2,11 674 DATA P,2,7,2,13,4,16,6,18,8,19,8,13,F,6,11,F,6,9,8,7,19,7,21,9,P,19,19,21,19,23,16,25,13 676 DATA P,21,9,F,21,11,F,19,13,19,19,P,25,13,25,7,F,23,4,F,21,2,F,19,1,F,8,1,F,6,2,F,4,4,F,2,7 680 REM "D"---------------------------- 682 DATA R,0,66,S,3,13 684 DATA P,2,1,2,13,4,16,6,18,8,19,17,19,21,19,23,17,25,15,25,1,P,6,7,F,6,11,F,8,13,F,18,13,F,20,11,20,7,6,7 686 DATA P,25,1,F,2,1 690 REM "E"---------------------------- 692 DATA R,0,88,S,0,15 694 DATA P,2,1,2,19,8,19,8,7,11,7,11,15,16,15,16,7,19,7,19,19,25,19,25,1,F,2,1 700 REM "F"---------------------------- 702 DATA R,0,110,S,1,18 704 DATA P,2,1,2,19,8,19,8,7,11,7,11,15,16,15,16,7,25,7,25,1,F,2,1 710 REM "G"---------------------------- 712 DATA R,0,132,S,2,23 714 DATA P,2,7,2,13,4,16,6,18,8,19,8,13,F,6,11,F,6,9,8,7,19,7,21,9,P,19,19,21,19,23,16,25,13 716 DATA P,18,19,14,19,14,11,F,18,11,F,18,13,F,19,13,F,21,11,21,9 718 DATA P,25,13,25,7,F,23,4,F,21,2,F,19,1,F,8,1,F,6,2,F,4,4,F,2,7 720 REM "H"---------------------------- 722 DATA R,25,0,S,3,28 724 DATA P,2,13,2,19,25,19,25,13,F,16,13,P,2,7,11,7,F,11,13,F,2,13,P,16,13,16,7,25,7,25,1,F,2,1,2,7 730 REM "I"---------------------------- 732 DATA R,25,28,S,0,31 734 DATA P,2,1,2,7,25,7,25,1,F,2,1 740 REM "J"---------------------------- 742 DATA R,25,44,S,1,38 744 DATA P,2,13,2,19,20,19,21,18,23,16,25,13,25,7,P,2,13,F,18,13,F,20,12,F,21,9,19,7,F 746 DATA 19,1,F,20,1,F,22,2,F,23,4,F,25,7 750 REM "K"---------------------------- 752 DATA R,25,66,S,2,42 754 DATA P,2,1,2,7,11,7,P,19,19,13,14,8,19,2,19,2,13,F,8,13,F,11,7,P,19,19,25,19,25,13,F,19,13,F,16,7,25,7 756 DATA 25,1,F,2,1 760 REM "L"---------------------------- 762 DATA R,25,88,S,3,47 764 DATA P,2,1,2,7,19,7,19,19,25,19,25,1,F,2,1 770 REM "M"---------------------------- 772 DATA R,25,110,S,0,57 774 DATA P,2,1,2,7,5,10,2,13,2,19,25,19,25,13,F,10,13,13,10,F,10,7,25,7,25,1,F,2,1,2,7,6,10,F,4,11,F,3,12,F,2,13 780 REM "M"---------------------------- 782 DATA R,25,132,S,1,63 784 DATA P,2,1,2,7,8,13,2,13,2,19,25,19,25,13,F,19,13,F,13,7,25,7,F,25,1,F,2,1,2,7,9,13,F,2,13 790 REM "O"---------------------------- 792 DATA R,50,0,S,2,76 794 DATA P,2,7,2,13,4,16,6,18,8,19,19,19,21,18,23,16,25,13,P,8,7,6,9,F,6,11,F,8,13,F,19,13,F,21,11,21,9,19,7,8,7 796 DATA P,25,13,25,7,F,23,4,F,21,2,F,19,1,F,8,1,F,6,2,F,4,4,F,2,7 800 REM "P"---------------------------- 802 DATA R,50,22,S,3,86 804 DATA P,2,1,2,13,4,16,6,18,8,19,13,19,15,18,17,16,19,13,P,6,9,F,6,11,F,7,12,F,8,13,F,13,13,13,7 806 DATA 8,7,7,8,6,9,P,19,13,19,7,25,7,25,1,F,2,1 810 REM "Q"---------------------------- 812 DATA R,50,44,S,0,96 814 DATA P,2,7,2,13,4,16,6,18,8,19,19,19,21,18,23,16,P,8,7,6,9,F,6,11,F,8,13,F,19,13,F,21,11,21,9,19,7,8,7 816 DATA P,23,16,27,19,29,16,F,25,13,F,25,7,F,23,4,F,21,2,F,19,1,F,8,1,F,6,2,F,4,4,F,2,7 820 REM "R"---------------------------- 822 DATA R,50,66,S,1,103 824 DATA P,2,1,2,13,4,16,6,18,8,19,10,19,12,17,13,15,15,17,17,19,25,19,25,13 826 DATA P,6,7,F,6,11,F,8,13,F,10,11,F,10,7,6,7 828 DATA P,25,13,F,22,13,F,19,12,F,18,9,18,7,25,7,25,1,F,2,1 830 REM "S"---------------------------- 832 DATA R,50,88,S,2,115 834 DATA P,2,7,2,13,4,16,6,18,8,19,8,13,F,6,11,6,9,8,7,10,9,10,13,12,16,14,18,16,19 836 DATA 19,19,21,18,23,16,25,13,25,7,P,17,7,19,9,F,19,11,F,17,13,F,15,11,F,15,9 838 DATA P,25,13,F,25,7,F,23,4,F,21,2,F,19,1,F,17,1,17,7,P,15,9,F,14,7,F,12,4,F,10,2,F,8,1,F,6,2,F,4,4,F,2,7 840 REM "T"---------------------------- 842 DATA R,50,110,S,3,128 844 DATA P,2,1,2,19,8,19,8,13,25,13,25,7,F,8,7,8,1,F,2,1 850 REM "U"---------------------------- 852 DATA R,50,132,S,0,146 854 DATA P,2,13,2,19,19,19,21,18,23,16,25,13,25,7 856 DATA P,2,19,2,13,19,13,F,21,11,21,9,19,7,2,7,2,1,P,25,7,F,23,4,F,21,2,F,19,1,F,2,1 858 DATA P,20,13,F,2,13 859 END 860 REM "V"---------------------------- 862 DATA R,35,25,S,0,153 864 DATA P,2,1,2,7,14,7,16,9,16,11,14,13,2,13,2,19,17,19,25,11,F,25,9,F,17,1,F,2,1 866 DATA P,16,9,F,16,11,F,14,13,F,2,13 870 REM "W"---------------------------- 872 DATA R,35,47,S,1,172 874 DATA P,2,1,2,7,19,7,16,10,19,13,2,13,2,19,25,19,25,13,F,22,10,25,7,25,1,F,2,1 876 DATA P,16,10,F,19,7,P,2,13,F,19,13 880 REM "X"---------------------------- 882 DATA R,35,69,S,2,191 884 DATA P,2,1,2,7,9,10,2,13,2,19,8,19,13,15,19,19,25,19,25,13,F,18,10,25,7,25,1,F,18,1,F,13,5,F,8,1,F,2,1 886 DATA P,10,10,F,2,13 890 REM "Y"---------------------------- 892 DATA R,35,91,S,3,205 894 DATA P,2,1,2,7,9,10,2,13,2,19,8,19,13,15,16,13,25,13,25,7,F,16,7,F,13,5,F,8,1,F,2,1 896 DATA P,10,10,F,2,13 900 REM "Z"---------------------------- 902 DATA R,35,113,S,0,255 904 DATA P,2,1,2,19,8,19,19,10,19,19,25,19,25,1,F,19,1,F,8,10,8,1,F,2,1 1000 DATA END 1010 RESTORE 1040 1020 FOR I=1 TO 32:READ C:C$(I)=CHR$(C):NEXT I 1030 RETURN 1040 DATA 104,104,104,72,162,57,160,0,173,0,210,101,20,141,22,208,141,10,212,136,208,242,202,208,237,104 1050 DATA 56,233,1,208,228,96
Listing 2 10 ? "THIS PROGRAM IS UNLISTABLE" 20 ? "EVEN THOUGH THE RESET AND" 30 ? "BREAK KEYS REMAIN ENABLED." 40 ? 50 ? "TRY IT!" 60 FOR X=1 TO 1000:NEXT X 70 GRAPHICS 0:GOT0 10 80 REM REMEMBER TO "GOTO 10000" 90 REM TO SAVE THE UNLISTABLE FILE! 10000 POKE PEEK(138)*256*PEEK(139)+2,0:SAVE "D:OUTPOST":NEW
CREATIVE COMPUTING VOL. 9, NO. 3 / MARCH 1983 / PAGE 276
We will take a bit of a diversion in this edition of the Outpost, to take stock of a promising, yet somehow neglected input device for the Atari computer: the light pen. We will look at the capabilities of such a device, and review a pen available for the Atari as well as other machines. We shall go on to outline steps involved in the construction of an inexpensive but fully functional pen, using readily available parts.
If light pens don’t sound to you like a topic that should necessarily elicit heated controversy or a complex and somewhat absurd tale, you are justified, but incorrect. Remember, you own an Atari, so anything is possible. Read on.
In the atmosphere of inspiration that couched the design of the Atari 400/800 computer, foresighted engineers built a great many capabilities directly into the hardware of the machine. Among these was the capability to support a light pen without the need for any additional controller boards. Even today, not too many other machines can make this claim. A light pen can be quite simply plugged into controller port 0, as if it were a paddle or joystick. It can be read straightforwardly with the statements PEEK(564) and PEEK(565). And that is all there is to it. That is, from an engineering point of view, you understand.
Those with machines of recent acquisition may not be aware that at one time Atari itself slated a light pen for production. It was to cost less than $100. In the second quarter of 1981, a products brochure that showed the device in use was released. It was a stubby, fat hunk of plastic with a tip switch on it. And what pretty multicolor pictures it supposedly drew.
Mail-order houses, as they are wont to do, accepted back orders on the Atari pen for some time. Though the decision to kill it was made over a year ago, the product was listed in a few retail rosters until only a few months ago.
At some point during its short development, a decision was made to pull the pen. The reasons for this remain somewhat vague. Some have suggested that the tip switch was flaky, making the device unreliable.
Another explanation I have heard from more than one reliable source goes like this: The Atari is designed as the machine for everybody, including novices and kids. Marketing was skitterish about the idea of a tiny kid fooling around a TV tube with a big pointy stick. One false move and gazonga: Mommy finds Billy on the living room floor, a victim of implosion! “Think of the lawsuits,” said the legal department. “Pull the pen,” said marketing.
Stop laughing. This may or may not have been the last straw concerning the Atari light pen. Whether it was or not, the pen was pulled from production very swiftly, and it is unlikely the decision will ever be reversed. A few did manage to get off the assembly line, however, and the few people who own them quite properly regard them as collector’s items.
Hobbyists like myself, who have read about the capabilities of light pens and know also of the built-in pen capabilities of Atari machines, awaited the appearance of Atari-compatible light pens from other sources. Surprisingly, at least to me, no cheap pen has become available in the ensuing time. It is too bad, really. The peripherals can do a lot to make a microcomputer friendlier.
Just how can they do this? Kind of you to ask. First, let’s find out what they do.
A light pen, when touched to or aimed closely at a connected monitor or TV screen, will allow the computer to determine where on that screen the pen is aimed. The driver program may subsequently take that information and do various things with it, but the job of the pen itself is quite simply to make a time measurement, which will be translated into x and y coordinates representative of a position on the CRT.
The capability may seem remarkable, and it is, though a simple explanation of how it works may dispel some of the awe. You may be aware that a TV or raster monitor typically refreshes at a rate of 60 frames per second. That is to say the electron gun or guns draw 60 pictures on the screen in one second. But it is impossible to draw an entire picture at once. Rather, the picture is drawn by the scan line, starting in the upper lefthand corner, moving to the right. When a line is completed, work begins on the next line. The Atari standard is 192 scan lines per frame. (An excellent explanation of this mechanism was provided by David Small in the June and July 1981 issues of Creative.)
Now let’s imagine we have a special kind of transistor: one that is sensitive to light. We have hooked this transistor to our Atari, and aimed it at a point on the screen. By noting when a scan goes by and measuring the interval between scan lines or entire screen refreshes, we can get a good idea where the phototransistor is pointed on the video screen.
The pen then allows us, through software, to generate x and y vectors corresponding to a point on the screen, which we may then use to draw pictures, make a choice from a menu of alternatives, or answer questions put to us by a program. Figure 1 is a simplified diagram of the process.
As opposed to input via the keyboard or even a paddle or joystick, a light pen can be a dramatically friendly peripheral. Imagine needing merely to point the device at your choice on the screen, in order to make that choice. Or to draw a picture on your CRT as straight-forwardly as you might use a crayon on a piece of paper. These are the kinds of possibilities a light pen affords.
By the way, you would have to work extremely hard to push a light pen through a CRT. It just isn’t something you could do without extreme effort, assuming you could do it at all.
Soon after the Atari pen bit the dust, a third-party pen for the Atari appeared from Symtec Corporation. This pen is about the most professional you can find for any machine. It is, in fact, an adaptation of the same model used in professional mini and mainframe operations. Its barrel is of heavy, extruded aluminum, with a coiled telephone handset wire leading to an Amphenol connector. It includes a sensitivity trimmer adjustment. Everything about the Symtec pen is top of the line, including the $150 price tag.
Figure 2 provides an example of the drawing capabilities of the Symtec pen. The software driver I used to create the caricature (portrait) of our fearless leader, Mr. Ahl, appears as Figure 3. In ten lines, the code evidences how elementary a driver can be. This is an obvious benefit of the fact that so much of the work is already done in hardware.
If you wish to endow your Atari with professional light pen capability, the Symtec pen is literally without rival on the market. The pen is also available for the Apple, IBM PC, and VIC-20 machines. For more information, contact Symtec, 15933 West 8 Mile, Detroit, MI 48235. (313) 272-2952.
Of course, many Atari hobbyists will be unable to budget that kind of money for a light pen purchase. I believe the market exists for an inexpensive pen, but no company has yet stepped forward with such a product. Other inexpensive pens, for machines such as the Apple and TRS-80, can be modified for use with the Atari. I reasoned, however, that it wouldn’t entail very much more work to start from scratch. It would also be much cheaper.
The result: for a couple of hours work and about $10 worth of hardware, you can put a homemade Atari light pen to work with your system. While it will have neither the accuracy nor the feel of the Symtec pen, it will be prefectly serviceable for many applications, and loads of fun to play with. It is also easy to make. So let’s make one!
First, you’ve got to stock some parts. Get down to the nearest Radio Shack, and pick up the following: one phototransistor, model number 276-130, 89 cents: ½ watt 100K ohm resistor, model number 271-045, 19 cents for two: penlight, model number 61-2626, $1.99.
You will also need a few other pieces of paraphernalia. These include: DE-9 connector plug for the controller port on the Atari, and five-conductor shielded cable (you cannot use an existing Atari joystick, as it lacks necessary pin-outs); a couple of feet of insulated bell or stranded wire; and the plastic top to a Bic pen. You may also want a grommet or strain relief for the pen top.
For tools, you’ll need this array: low wattage soldering iron and solder; wire cutters (needlenose pliers are handy too); X-acto or razor knife; scissors or reamer; small flat blade and Philips screwdrivers; long stick pin or safety pin; and insulating electrical tape.
Got these things together? Let’s get going. First, unscrew the cap on the penlight, and disassemble the light bulb and bayonet assembly from the white plastic pen tip. Next, gently press the switch assembly down through the barrel of the pen with the Philips screwdriver. We don’t want a penlight anymore, and we need all the real estate inside it in order to convert.
The cable we connect will feed through the hole where the on/off switch used to reside. You will pop the switch out through the open side of the barrel, along with two springs and a black plastic retaining collar. When these things have been pushed out, the barrel will be empty, and that’s the way we want it.
Using a closed pair of scissors or a reamer, enlarge the switch hole on the metal barrel top until it accommodates the wire, grommet, or strain relief on the connector wire you have chosen. When this is accomplished, push the pen barrel onto the wire (it would be embarrassing to construct the entire pen, then discover you left the barrel aside, and have to disassemble all your work to fit it on).
Take the phototransistor, and hold it so that the bottom is facing you. Turn it until it is oriented along the lines of the diagram presented as Figure 4. This will indicate the positions of collector, base, and emitter leads of the component. You can clip the base lead short, as we will not be making use of it.
Solder directly to the collector lead one 100K resistor, along with a plain lead about four or five inches long, as indicated in Figure 4. Solder another lead of about the same length to the emitter lead, also as indicated. Don’t use a high wattage iron or apply heat for too long, as you run the risk of blowing the transistor.
Using the X-acto knife, cut all the way around the plastic tip of the pen light, at a distance of about ⅛ of an inch up from the threaded side, as indicated in Figure 5. Run the blade around the plastic tip repeatedly, until a rudimentary trench begins to appear. Once it does, use the flat blade screwdriver to widen and deepen the groove. This groove will hold the touch ring, which we shall use as the switch on our pen, in place.
Next, using the stick pin or an open safety pin, you will put a hole in the groove. Place the end of the pin in the groove, then put the tip of the soldering iron on the pin. Grasp the pin with the pliers or far enough back to avoid burning yourself. The plastic will melt only around the pin, and you’ll have a clean hole through the pen cap. Work the hole out to about the diameter of a pencil lead. The touch ring wire will have to fit out and back into the pen through this hole. Figure 6 will help you gain a clear idea of what you’re trying to do.
Figure 7 indicates the manner of construction of the touch ring. Strip a five inch or so length of wire entirely. If it is stranded as opposed to solid wire, make sure that you have twisted it together thoroughly, or it will unravel while you are threading it into the pen tip. The wire will loop all the way around the pen tip, into the groove hole, and should be tightly twisted to itself on the inside.
We are now ready to wire up the pen. Figure 8 provides a wiring diagram for connection to controller port 0. We shall be using the analog reading of PADDLE(0) to tell us whether the touch ring is open or closed. The ground, pin 8, and the PADDLE(0) hot lead, pin 9, form the touch ring circuit. As it turns out, this is an extremely convenient manner in which to activate and deactivate the pen. The resistor is connected between the collector and +5 volts, which is pin 7. The collector is also connected directly to pin 6, which is the hot pen lead. The emitter attaches to ground, which as stated, is pin 8 on the controller plug.
After the connectors have been soldered together with their respective leads, a test of the pen is in order, to make sure everything will be working when it is assembled. Plug the pen in, boot Atari Basic, and type the following:
10 SETCOLOR 2,0,14:SETCOLOR 1,0,0:? PEEK(564),PEEK(565),PADDLE(0):GOTO 10
Upon running the program, hold the phototransistor up to different points on the screen, and ascertain that you are getting different readings for each position. Don’t worry yet whether the readings are perfectly reasonable. Just make sure they change when the pen position changes. If they don’t, you probably made a wiring mistake somewhere.
When you touch the leads coming from pins 8 and 9 together, the last value printed in the program loop should move well down from its default, 228. If you are getting different PEEK values and paddle values, all is well, and you are in the home stretch.
Using the insulating tape, wrap up the pen wiring assembly so that nothing will short out when it is squeezed into the pen barrel. There is plenty of room in the pen for the assembly, so you shouldn’t have to force anything.
Next solder two four- or five-inch insulated leads to connectors 8 and 9, which will detect our touch ring. One of these leads will connect directly to the tail of the touch ring, and the other will ground to the exterior barrel of the pen. This is easily effected by wrapping a generous length of stripped lead through the square hole in the plastic tip, as indicated in Figure 9. Then, when the plastic tip is screwed on, a good ground connection will be made via friction fit.
It is imperative that the connection to the touch ring itself be well insulated—your electrical tape will come in handy again here. Make sure no bare wire is left to accidentally short the switch. That way it will only close when your finger shorts it.
We’re almost done. Bet you have been wondering what our Bic pen top is for. Well, now we need it. Cut off the tip and the bottom with the X-acto knife, as shown in Figure 10, so just about a half inch from near the top is left. This remaining collar will act as a guide for the phototransistor in the pen tip. Press it into the plastic tip, tapered side first, as shown.
After making a final inspection to ensure all bare wire has been insulated, push the wiring assembly into the barrel of the pen, leaving just the phototransistor peeking out about a half inch, and of course the switch leads and tip. Carefully screw on the tip, making sure that the phototransistor is seated well in the pen collar, and that a satisfactory ground connection is being made between the lead looped outside the plastic cap and the barrel of the pen. And that’s it.
Conduct another test, identical to the earlier one. If results are unsatisfactory, you’ll have to undo things and find out where you went wrong. If you are having trouble activating the touch ring, try wetting your finger before you dismantle anything. Because we are reading the resistance between the ring and the barrel of the pen, a dry finger can sometimes be the culprit.
You should now have a relatively neat looking as well as functional light pen, that passes the one-line software test with flying colors. The time has come to begin refining that software dramatically.
I will provide two starting points. Figure 11 is a drawing program, which will give you an idea of how good (or bad) the pen is at locating itself. I built three pens, and the calibration seemed pretty consistent among them. Of course your monitor will have much to do with pen calibration.
The first place to look is line 70. Values in this line should be altered until the plot occurs right underneath the pen tip. If the left side of the screen reads okay but the right half is out, you may have to fiddle with the value in line 50. Don’t get nervous. For most folks, the values shown in the program will be pretty close to perfect.
You will quickly see that the pen is much more accurate at vertical measurement than at horizontal. This is probably its biggest shortcoming, though it has others. For one, the screen must be extremely bright to get a good reading. For this reason I have included an option to reverse color, which is chosen by pointing the pen to the text window and touching the ring. To erase, move the pen below the bottom edge of the text window.
Figure 12 is a simple menu selection program to give you an idea of the convenience of a light pen for varied information input. The pen you have built is more than accurate enough to support a function such as this. The squares in the listing are obtained by pressing the Atari key, followed by a space.
Needless to say, these examples are presented just to get you started. Your imagination can take it from here. So there you have it. You need never be stymied again when people ask you about the light pen capabilities of the Atari machine. In fact, they may be sorry they asked!
Photo: Figure 1.
Photo: Figure 2.
Figure 3. 10 GRAPHICS 7+16 20 SETCOLOR 4,0,14:COLOR 3 30 X=PEEK(564) 40 IF X<70 THEN X=X+230 50 Y=PEEK(565) 60 IF Y<17 OR Y>112 THEN 50 70 X=X-75:Y=Y-14 80 IF X<0 OR X>159 THEN 30 90 TRAP 30:IF STICK(0)=15 THEN PLOT X,Y 100 GOTO 30
Photo: Syntec Light Pen.
Photo: Home Brew Light Pen.
Photo: Figure 4.
Photo: Figure 5.
Photo: Figure 6.
Photo: Figure 7.
Photo: Figure 8.
Photo: Figure 9.
Photo: Figure 10.
Figure 11. 10 GRAPHICS 7:SETCOLOR 1,0,0:SETCOLOR 2,12,14:SETCOLOR 4,0,14:COLOR 1 20 POKE 752,1:? "TO DRAW, TOUCH THE PEN TO THE SCREEN" 30 ? "THEN TOUCH AN RELEASE THE RING" 40 IF PADDLE(0)=228 THEN 40 50 X=PEEK(564):IF X<50 THEN X=X+230 60 Y=PEEK(565) 70 X=(X-95):Y=(Y-14) 80 TRAP 50:IF PADDLE(0)<228 THEN PLOT X,Y 90 IF PADDLE(0)<228 THEN 90 100 ? :? :? "TOUCH THIS BAR TO REVERSE COLOR, AND" 110 ? "BELOW THIS BAR TO ERASE" 120 X=PEEK(564):IF X<50 THEN X=X+230 130 Y=PEEK(565) 140 X=(X-95):Y=(Y-14) 141 IF Y>96 THEN 10 142 IF Y>83 AND Y<96 THEN 300 150 TRAP 120:IF PADDLE(0)<228 THEN DRAWTO X,Y 160 IF PADDLE(0)<228 THEN 160 170 GOTO 120 300 Y=0:SETCOLOR 4,0,0:? :? :? "TOUCH THE RING TO CONTINUE..." 310 IF PADDLE(0)=228 THEN 310 320 X=51:Y=0:SETCOLOR 4,0,15:GOTO 20
Photo: Figure 12.
CREATIVE COMPUTING VOL. 9, NO. 4 / APRIL 1983 / PAGE 260
Well you may or may not have heard the news, but the Atari 1200 has arrived. Here is a first look at the 1200 XL, and the new wave of peripherals designed to work with it.
The Atari 1200 XL was unveiled on the East Coast at a press conference at the Plaza Hotel in New York City. At least a dozen working units were on display there for us computer types to play with, and that’s exactly what we did, at great length. The unit should become available within a few months.
With 64K RAM standard, the 1200 XL also offers 12 user programmable function keys, international character set, and built-in diagnostics. Since it is designed to be entirely compatible with the models 400 and 800, owners of the Atari 1200 XL need not wait for software to be developed to run on their machines. Although no true innovations are present in the 1200, Atari apparently thinks that competitive pricing will make it a major contender in the home computer market this year. Though a list price of $899 was announced, this will probably drop soon after the unit becomes available.
Other features of the Atari 1200 XL are the following: keyboard disable function; auto-screen shut-off when untended; help key; LED power, keyboard lock, and character set indicators; and one-touch cursor control.
The single ROM cartridge slot and two controller jacks have been moved to the side of the machine. The determination was made that the extra slot and controller jacks on the 800 were superfluous, and would add unnecessary expense to the new machine. The keyboard, in contrast, is of higher quality than its counterpart on the model 800.
Three new peripherals were announced along with the 1200 XL. The 1010 program recorder will allow inexpensive storage and retrieval of data using audio cassettes. The unit features data and audio channels, as did its predecessor, the model 410. It will list for $100.
The model 1025 80-column printer will list for $550. It is a customized Okidata Microline 80, and will run in serial at a claimed speed of 40 cps. The dot matrix print is clear and crisp, though definitely far from letter quality.
The unique 40-column color printer and plotter, dubbed the model 1020, will offer text and graphics in four colors at a list price of $300. It will be capable of changing the size and style of its character sets, and 16 pen colors will be available.
The only disk drives I saw in my extensive snooping about were the old model 810 clunkers, which are compatible with the model 1200, but certainly look out of place next to it. I expect we will be seeing a new, slimline drive from Atari within the next half year—with improved storage in a more streamlined package.
Conclusions concerning the hardware? Well, I think it is a bit early to say yet. I’m going to withhold judgment on the machine for at least one issue, until I can actually procure one for investigation. The unit has already attracted criticism, with detractors pointing to the lack of innovation in its design. True enough, the substantial technological lead the 400 and 800 achieved in 1979 has now been largely lost. More than one manufacturer used these models as reference points in designing their own “next-generation” machines. A sincere form of flattery, to be sure, but also a growing threat.
Another lament comes disguised as a blessing: the fact that parallel port and RS-232 access will be phased out along with the 850 interface module. The Atari 1200 XL can drive a serial printer without resort to ancillary hardware, and this saves money as well as space. At the same time, interfacing will be restricted to serial communication on a non-standard bus, or connection through the joystick ports. That is not exactly my definition of hardware flexibility. Third-party hardware makers are especially wary of this design decision. Without any doubt, Atari marketing has evidenced interest in limiting hacker access to its brain-children, to the extent of omitting standard interface capability. It gives one pause...
I have some more tidbits to share with you this month, but first I want to turn the soapbox over to a good friend from MACE in Michigan, Marshall Dubin. He will present a guest tutorial on the topic of PIA interfacing. With the information presented here, you can actually get your Atari to make the proverbial coffee in the morning.
If you would like to correspond directly with Mr. Dubin, he can be reached at 2639 Hempstead, Auburn Heights, MI 48057. The floor is yours, Marshall.
Looking for some “off the beaten path” type of excitement? Tired of blasting aliens, running through mazes, and balancing your checkbook? Are you the adventuresome type? Well, this could be the project for you. With a few parts and a little time in the workshop, you can have your Atari lighting lights, dialing phones, reading and regulating thermostats, and generally communicating with the outside world.
Through the front controller ports of the Atari computer, there are available for your use 16 programmable input/output pins, eight analog-to-digital inputs, and four input only pins. These controller ports can be used with interface circuitry to monitor devices such as thermostats or light sensors, or to activate relays, motors, and lights.
We’ll discuss various ways of using the front controller ports to communicate with the outside world. For the braver of you, we will be building an I/O interface, so that you may sense signals, and turn on small relays. This will plug into the front port of your computer and allow you to connect various real world devices. (Vic owners should note that the joystick ports on your machine are identical to the Atari ports. With the exception of any software drivers, the electrical connections should be the same.)
Please note that this kind of interfacing may void your warranty. If you are not sure, check with your dealer or factory representative. Also note that accidents do happen. It is possible (although unlikely if you are careful) to do some drastic damage to your computer. If you are not sure how to do something, don’t do it. Also keep in mind that although the power required for digital work is usually between 5 and 12 volts, a relatively safe level, the primaries of these power supplies are usually 110 volts. Follow these few common sense rules:
Now let’s do some interfacing.
As you can see from the pin diagram in Figure 1, each joystick port has several potential input sources available. For example, two of the pins are intended for use with the paddle controllers. These are called the analog pins. They take an analog source such as variable resistance and convert it into a digital signal.
This is how the paddles function. They provide a resistance via a potentiometer within the paddle unit, between the analog input pins and +5 volts DC. The computer interprets the variable voltage as a digital number between 0 and 228. This is called “on board” analog-to-digital conversion. Units performing a similar function may be purchased at a hefty price, but Atari owners have the use of eight of these units built right in.
For now, let’s concentrate on pins 1-4 on the joystick ports. These are the pins of the Peripheral Interface Adapter chip, more commonly referred to as the PIA. Basically the PIA provides a means of connecting your computer to In this peripherals. The PIA chip can be programmed for either input or output. There are two PIA ports of eight bits each available for your use.
Joystick ports 1 and 2 compose PIA port A, while joystick ports 3 and 4 compose PIA port B. Each port is one byte (eight bits), and they may be used together or individually to provide input and output functions. Some of these functions may be used to drive a printer or other accessory, or even a series of power relays which can control alarms, lights, appliances, motors or other devices.
The snag involved in controlling larger interface devices is basically a problem of taking a small amount of power and amplifying it. The ports on your computer are not made to power anything more than another chip. The manual recommends a maximum load of 1 TTL (about one chip) at 50 ma. To do anything really useful, we must be able to power at least 12 to 24 volts. This higher voltage can drive a wide variety of relays and interfaces.
There are several ways to accomplish this task. The most common arrange ment is the transistor driver. arrangement the computer provides a very small voltage which turns on the transistors which in turn switch the load. A second way is through the use of opto-isolators. The computer provides 5 volts which switches the LED (light emitting diode) of the isolator on. When the diode is lit, a photo sensitive transis tor, which is connected to a larger load or a relay, is triggered.
A third way, and the one we shall use, is to employ an integrated circuit interface chip. The chip we will be using is the SN7407 made by Texas Instruments. The 7407 allows switching of up to 30 volts from the 5 volt TTL level of the Atari, with enough current to handle a small relay. Using this one chip, we can drive up to six relays from the Atari front ports.
The SN7407, as shown in Figure 2, is an open collector device. To use it properly you must connect a 2.2K ohm resistor from each output to + 5 volts. This is called a “pull up” resistor. When an output of the 7407 is on it is actually open—so the resistor supplies power to the device you are driving. You can drive up to 30 volts at the outputs (but you may have to tamper with the value of the resistor somewhat).
When an output is off, it is shorted to ground, and your device sees 0 volts (ground actually). The resistor limits this current to a fairly low value so you don’t blow the power supply or worse, the chip. Now this is the sequence of events:
Atari: HIGH (logic 1)
7407: OFF — Device is OFF.
Atari: LOW (logic 0)
7407: ON — Device is ON.
Since the resistor can’t supply much current, the resistor/7407 combination is seen as the “ground side” of the circuit. That is, to drive a relay, we connect power to one side of the relay, and the other side to the output of the 7407. Then when we turn the relay on, current will flow through the relay, and then through the 7407 to ground.
You can easily drive LEDs (such as test lights) this way too, as well as a variety of small relays or solid state switches. Just make sure you sink the current—that is, one end of your driven device goes to +5 (through a resistor!) and the other end to the 7407. Sending a 0 (logic level low) to the PIA turns the device on, and a 1 (logic level high) turns it off. If you want to do it the other way around, use the inverting 7406 chip, which will turn your device on with a high logic level and off with a low level.
Recognize that the default state of the PIA when the computer is powered up is all bits high. If you are using an inverting 7406, your devices will come alive when you turn on the Atari. This is why 1 prefer to use the 7407, since I can power up and then have my software drive the devices by writing a 0 to the bit from which I want to power a device.
Speaking of bits, a few words are in order about the structure of the ports before you run off to warm up your soldering iron. The PIA as I mentioned earlier consists of two ports, port A and port B (or PORTA and PORTB for you mnemonic freaks). These are controlled through the use of the control registers for each port, PACTL and PBCTL. You may have heard of the PACTL because it is the one you POKE to turn on the cassette player. The addresses are as follows:
PORTA 54016/SD300 — Port A address
PORTB 54017/SD301 — Port B address
PACTL 54018/SD302 — Port A control
PBCLT 54019/SD303 — Port B control
When you turn the computer on, the ports are initialized to $FFFF or all bits high. To use a port for input, just pull the bit of your choice low by connecting it to ground. To use the port for output, it first must be formatted for output. The procedure is not complex:
Essentially you have a total of 16 bits with which to play. Just remember that two joystick ports make up one PIA port. Sticks 0 and 1 are the A side and sticks 2 and 3 are side B. Each joystick port is four bits or one nybble. Each side of the PIA is eight bits or one byte. When programming for output, you must remember that a specific bit is driving a device. Therefore one joystick port can drive four devices (one for each bit). An entire PIA side will handle eight devices, and if you use both A and B sides you can trigger 16 individual devices at once or in any combination.
You must POKE into that port a decimal number whose binary representation will switch on a certain bit or series of bits. For example, if I POKEd a 255 into port A, all bits would be on. If I POKEd a 12 into port A, bits 3 and 4 only would be on, since the binary of 12 is 1100. The individual joystick ports may be read using the shadow registers as follows:
Jack 1 (STICK 0) 632/$278 hex
Jack 2 (STICK 1) 633/$279 hex
Jack 3 (STICK 2) 634/$27A hex
Jack 4 (STICK 3) 635/$27B hex
Each port will return a number between 0 and 15. You also can use the Basic keyword STICK to access these ports, e.g., X = STICK(0).
Generally, all of the circuits we will describe can be breadboarded in any way convenient for you. For those of you just starting out, and who want to do some experimenting, I recommend the following workbench supplies:
• A solderless breadboard or wire wrapping setup for prototyping your circuitry. (These are made by Vector, Tandy, and others.)
• A variety of IC and transistor sockets.
• An anti-static mat or spray.
In addition, for this project, you will need at least one DE9S connector to match the front joystick port, and some multi-conductor wire.
Now let’s get started by building another useful tool for you to use: a logic probe. Figure 3 shows the construction diagram of a two-transistor logic probe. You can “steal” the necessary 5 volts from the computer on board power supply. When the LED is on, this indicates a logic 1 or high condition. No LED indicates a 0 or low condition. (Actually that is not exactly true. This logic probe cannot detect the actual 0 state. There are more sophisticated probes able to differentiate high, low, and high impedance logic states, but what do you want for less than a buck?)
One way to mount the probe is to build the unit on a small (1″ by 2″) perfboard, and then slide the completed assembly into a large cigar tube. A small probe tip can then be soldered to the front of the cigar tube, and wires for the required 5 volts and ground can come out the back end and terminate in small alligator clips.
Figure 4 is a schematic diagram of an output interface board which is connected to the front ports of the computer.
The heart of the circuit is the 7407 chip. As you can see, the input channels of the 7407 are connected to the front port by way of the 2.2K pull-up resistor. Even though the port initializes to FFFF (or all ones), it maintains a high state until we do otherwise.
The output of the 7407 provides the ground side of a relay circuit. The relay coil is connected to the 5 volt supply (not the one on the computer port). When the 7407 is activated by having one of the front port pins pulled low, it provides the relay coil with a path to ground, and the coil energizes. The relay controlled by the coil can be used to switch on just about anything, including other relays to drive larger loads.
During construction be careful that all the pins of the 7407 and the components are wired correctly. Do not forget the pull-up resistors or the small capacitors. These help prevent power supply interference. If you wish, you can substitute small LEDs or 5 volt pilot lamps for the relays. This will allow you to see the ports in action.
Be sure to use an external power supply or 5 volt source. The ground of your source should be connected to the ground pin on the computer. You will not need the 5 volt pin. Incidentally, you can use the external supply to power your logic probe, and still read the computer logic signals at the ports.
Listing 1 will provide you with a demonstration on how the ports are programmed. The program First allows you to select a port, and program it for either input or output. Then you can write data to the port and the computer will PEEK the port and verify the data you wrote. You can also do this by using the logic probe. You will get a logic 1 for every active bit in the port.
* * *
In the February edition of this column, I posed a challenge to all Atari hackers for vast improvements upon my “super text mode” program. The First response I received was from Mike Portuesi, a 16-year-old Atari devotee from Mount Clemens, MI.
Mike succeeded in the task with satisfyingly little code. His version of the program accepts a user message as a string, modifies itself to include only the letters needed for that speciFic message, then deletes all extraneous lines. The user need only reposition those letters on the screen, which is a very simple process. Tinkering with sound values and plotting speed will result in a polished title card. Creating multiple cards is made dramatically less time-consuming.
The additions appear as Listing 2 (these lines must be added to the program appearing in the February Outpost).
For a bit of background and a walk through the modifications, I now turn things over to Mr. Portuesi:
Operation of the program is simple. Simply run it, and the program will ask you to input your message. Use no blanks, please. There is a 21-character limit, because I figure that 21 is the maximum number of characters you can fit on the screen at once (3 × 7), but if you are using lots of skinny letters (like I), simply change the DIM statement at line 5. When it finishes running, you are left with a customized program.
The main challenge I faced in the modification was renumbering the data statements to fill the gap between line numbers 230 and 650. I couldn’t live with repositioning the cursor and printing new line numbers. I would have gone insane trying to come up with a routine to account for missing lines and different line lengths. My program uses a different method, as follows:
The forced-read mode is used not only to modify the program, but also to enter program lines into a string. The following is a line-by-line explanation of the added lines:
5 DIM strings, GOTO 2000.
2000-2010 Get message from user.
2020 Loop for each character in the string.
2040-2050 List all lines relating to a specific letter.
2060 Enter these lines into A$, B$, C$, and D$, with forced read mode (using INPUT, not STOPping the program).
2070-2100 Put these lines back out on the screen.
2110-2120 Put these lines back out on the screen.
2150-2190 Delete lines 650 through 904, 20 lines at a time.
2220 Delete lines 5 and 859, change line 120 to RESTORE pointer.
2240 Delete first half of modification routine.
2250-2260 Delete rest of modification routine, stop program for user.
3000-3030 Modification subroutine.
A really big problem I had in development of the program is the infamous keyboard lock-up that occurs with repeated and heavy editing. This, coupled with the fact that I have only a cassette recorder, led to heartaches and frustration. I wish somebody would do something about that. For all the user-friendliness of Atari Basic, that bug almost makes me want to take the Basic cartridge, squirt it with lighter fluid, and take a match to it.
* * *
I know how you feel, Mike, and all I can say is I’m glad you stuck it out. Your approach to the problems I posed was unique and inspired. Good job, fella. You’ll be receiving some review software from us very soon.
If you have no access to a February issue, dear reader, do not despair. Within the next couple of columns, we’ll run a listing of the deluxe version of this program in its entirety. We will incorporate as many features as we can cull from our many entries. My thanks to all who participated.
One quick word of warning: remember to SAVE Mike’s additions to the program before ever RUNning the modified program. As soon as it runs, it deletes the powerful parts of itself. Skip any testing until you put a file on disk. Otherwise, you too may be looking for the lighter fluid.
Listing 1. 10 REM * PROGRAM TO FORMAT PIA PORTS 20 REM 30 GRAPHICS 0 : POSITION 10,2 40 DIM IO$(10),DATA$(3) 50 PRINT "PIA PORT DEMO" 60 REM 70 REM PORT ADDRESS 80 REM 90 PORTA=54016:PORTB=54017 100 REM 110 REM * ROUTINE TO CONFIGURE PORT 120 REM 130 TRAP 130: PRINT : PRINT "Configure which port (1-4) " 140 INPUT PORT: IF PORT<1 OR PGRT>4 THEN 130 150 REM 160 REM SELECT PORT CONTROL REGISTER 170 REM ADDRESS (PACTL,PBCTL) 180 REM 190 IF PORT<3 THEN PCTL=54018:PORT=PORTA 200 IF PORT>2 THEN PCTL=54019:PORT=PORTB 210 PRINT : PRINT 220 REM 230 REM SELECT INPUT OR OUTPUT 240 REM 250 PRINT "Input or Output "; 260 TRAP 250: INPUT IO$ 270 IF IO$(1,1)="1" THEN F=0:GOTO 340 280 IF IO$(1,1)="0" THEN F=255:GOTO 340 290 GOTO 250 300 PRINT 310 REM 320 REM CONFIGURE THE PORT 330 REM 340 POKE PCTL,56 350 POKE PORT,F 360 POKE PCTL,60 370 PRINT :PRINT 380 REM 390 REM ENTER YOUR DATA 400 REM 410 IF IO$(1,1)="1" THEN PRINT "PORT IS FORMATTED FOR INPUT":PRINT :GOTO 130 420 PRINT "NON ENTER YOUR DATA" 430 PRINT "(ENTER A RETURN TO DO ANOTHER PORT)" 440 INPUT DATA$:IF DATA$=" " THEN PRINT CHR$(125):GOTO 130 450 TRAP 530 460 REM 470 REM POKE DATA TO PORT/VERIFY IT 480 REM 490 POKE PORT,VAL(DATA$) 500 PRINT "VERIFY ";PEEK(PORT) 510 GOTO 440 520 END 530 TRAP 40000:PRINT "INPUT ERROR, RE-ENTER ";:GOTO 440 Listing 2. 5 DIM STRING$(21),A$(120),B$(120),C$(120),D$(120):GOTO 2000 2000 ? CHR$(125):? "PLEASE ENTER YOUR STRING":? "(LESS THAN 21 CHARACTERS, PLEASE!)" 2010 INPUT STRING$:LINENO=232 2020 FOR I=1 TO LEN(STRING$) 2030 ? CHRS(125):POSITION 2,2 2040 FOR J=ASC(STRING$(I,I))*10+2 TO ASC(STRING$(I,I))*10+8 STEP 2 2050 LIST J: PRINT "":NEXT J:POSITION 2,3 2060 POKE 842,13: INPUT A$,B$,C$,D$:POKE 842,12 2070 A$(l,3)=STRS(LINENO):LINENO=LINENO+2 2080 B$(1,3)=STRS(LINENO):LINENO=LINENO+2 2090 C$(1,3)=STR$(LINENO):LINENO=LINENO+2 2100 D$(1,3)=STRS(LINENO):LINENO=LINENO+2 2110 ? CHRS( 125): POSITION 2,2 2120 ? A$:? B$:? C$:? D$ 2130 GOSUB 3000 2140 NEXT I 2150 PNTR=1:? CHRS(125):POSITION 2,2 2160 FOR I=650 TO 904 STEP 2 2170 ? I 2180 PNTR=PNTR+1:IF PNTR=20 THEN PNTR=1:GOSUB 3000:? CHR$(125):POSITION 2,2 2190 NEXT I 2200 GOSUB 3000 2210 ? CHRS( 125): POSITION 2,2 2220 ? 5:? "120 RES. 232":? 859:GOSUB 3000 2230 ? CHR$(125): POSITION 2,2 2240 FOR I=2000 TO 2180 STEP 10:? I:NEXT I:GOSUB 3000 2250 ? CHR$(125) : POSITION 2,2 : FOR I=2190 TO 2260 STEP 10:? I:NEXT I 2260 FOR I=3000 TO 3030 STEP 10:? I:NEXT I:? "POKE 842, 12: ?CHR$(125) ":GOTO 3000 3000 ? "CONT":POSITION 0,0 3010 POKE 842,13:STOP 3020 POKE 842, 12 3030 RETURN
CREATIVE COMPUTING VOL. 9, NO. 5 / MAY 1983 / PAGE 272
Is it possible that there is a touch of spring in the air? Could it be that those are buds on the trees? Can the sun be turning warm and rich with promise? Is it time for a young man’s fancy to turn to thoughts of—yes—the viability of Atari marketing?
Maybe you are the kind of devout Atari follower who is offended by any critical comment aimed at the makers of your impressive array of hardware. I’ll bet the last place you would want to encounter these is in the Outpost. If so, please skip ahead to our next topic.
“What’s good for General Motors,” they used to say, “is good for the USA.” Well that may or may not have ever been true, but it seems now that a good part of the USA is worried about Atari. From the Wall Street Journal to Rolling Stone magazine and ABC news, word has it that Atari is “demoralized,” due in large part to the plummeting of Warner Communications stock in early 1983. It has lost 1.3 billion (yes folks, that’s billion) dollars in share value since the end of last year, and when pressed for a reason, Warner points a shaky finger at Atari. It is only fair: when Warner was making more profits from Atari than all of its other subsidiaries combined, that was Atari’s doing, too. They can now at least take the heat.
The thing that has Wall Street really skitterish is the fear that Atari will suck other video game interests down the drain with it if it goes the way of the Titanic. Companies such as Mattel are already hurting through no fault of their own. The key word is “saturation.” Has the video games market reached “saturation?” If so, it is time to sell out and head for the lifeboats. Unsinkable Atari may have struck an iceberg, and America’s economic waters are frigid. Backers and brokers first!
While remaining one of its most loyal fans, I have been a follower and sometimes vocal critic of Atari for some years now, observing its occasionally erratic market behavior. It is amazing to me, first of all, that Atari has survived its own remarkable rate of expansion. It is a credit to the company that it has held together through periods of growth so rapid that a more rigid organization might have shattered. And Atari did more than that—it continued developing quality products.
But the company has made some wrong turns lately. One of the least productive and most destructive affairs to befall Atari recently is the vituperative feuding between its Home Computer Division and Consumer Electronics (home video game) Division. This rift has compromised the effectiveness of each, and the proof is in the latest products.
At a time when categories of home computers and home entertainment machines are meshing, Atari has introduced the 5200 Supersystem, which is a somewhat redesigned Atari 400, undercutting and completely incompatible with it or any other Atari computer. This was a serious marketing error, especially coming from a company that prides itself on marketing savvy.
The reason? Well the only one that I can posit is fear on the part of the powerful Consumer Electronics Division that it would be made obsolete or absorbed by the Home Computer Division, if the 400/800 became the games “heir apparent” to the ubiquitous VCS model 2600. Witness the introduction of a keyboard peripheral for the VCS that will be upwardly incompatible with any other Atari product. It just doesn’t make sense.
Although the Supersystem is selling, it is up against some very stiff competition, and its poorly designed controllers detract seriously from game playability (they are even slower than those on the Bally Astrocade). I would much rather play the 400/800/1200 versions of its game cartridges to avoid the sluggish 5200 joysticks, which make Pac-Man play like he’s stuck in quicksand. Whatever was on the design team’s mind (I suspect the design of a single controller to act as paddle and joystick, and opening up the possibility of an analog trackball), they went wrong here.
Then there is the model 1200 XL computer, the Home Computer Division’s “next generation.” If it had been announced at $499 instead of $899, it would have been a welcome addition to the Atari computer line. As it stands, it is strike two for Atari. The 1200 has met with nearly universal insouciance in the microcomputer community, and for good reason. It has an extra 16K in a designer case, without a right cartridge slot, expansion slots, or a third and fourth controller jack. It has no standard parallel or RS-232 ports. Only substantive price cuts will help its image in any tangible way.
And what of the Atari 600? Well, it seems we may never see such a product, because word has it the Atari 600 has been postponed indefinitely. The reason? Nowhere to fit it into the product line. With the 800 now discounted to as low as $450, the 600 can’t fit between the 400 and the 800 in pricing.
Even more damaging to the Atari Home Computer Division is the downright hostility that it has displayed to third-party support. It seems that marketing resents, and seeks to eliminate or absorb, those who develop third-party hardware. Interfacing is kept intentionally nonstandard, expension slots are phased out, and potential interfacing controller jacks are removed. One of the more enlightened sales points of the original 800 was its modularity—it would never be obsolete, said Atari, because the operating system was on a plug-in board, as was RAM memory, and all could be replaced in a matter of seconds.
Well the new 800s are not modular. In fact, the memory slot area on the new 800 machines is no longer accessible! This means a new 64K OS for the 800 is not on the docket from Atari, and operating systems from other sources will be discouraged.
These moves constitute a very serious underestimation by Atari concerning the attitude of the home computer consumer. While the home user is in most cases not a computer “hacker,” he should not be patronized, either. He might want modularity, 80 column capability, or bank-selectable RAM. He may see uses for the machine that nobody has yet dreamed, and should have every opportunity to realize those applications.
This is the kind of open-ended flexibility that made the Apple the most popular microcomputer of its day. It is the kind of attitude that Commodore is taking to get the model 64 off to a strong start. It is an attitude that Atari has continually misunderstood, discouraged, and somehow confused with piracy—“it’s our machine,” I imagine them saying, “We’ll design the peripherals.” They should really rethink that outlook, and quickly.
For if Atari misses with its next swing, reports of its death may not be so exaggerated. This is a fickle business, and the early lead of the VCS, as well as the inspiration that bred the magnificent 400 and 800, has now been spent. Atari must play it smart now. It can do so only by responding to the needs and desires of an increasingly discriminating and well-versed buyer.
Well enough of that. It is well known that the Atari is my favorite microcomputer, and it is time to underscore the positive side of that opinion.
Though it was years ago, I can still vividly remember my frustration. I was new to the Atari, and starved for programming applications to help me get the most from, and learn the most about, my machine. And there I was, having typed in a program from a magazine four hours on end, to discover not only that it didn’t run, but that it couldn’t run as it was printed. Sometimes I would be able to institute my own fix, and other times I couldn’t. Sometimes the magazine would acknowledge the problem in a subsequent issue, and print a fix. Sometimes the flaw would never be addressed.
As a lasting result of these trials, I try very hard to make sure that everything that makes it into this column is correct when it gets here. It is hard for me to prove that assertion right this minute, however, because of a reversed figure, dropped program line, and lack of attention to the unique features of the Atari 400 in the March home-brew light pen column. This has caused a lot of consternation. All I can do is tender my sincere apologies, and set out the corrections.
The first person to bring these problems to my attention was my friend Greg Leslie, sysop of the GREKELCOM Atari BBS in Oklahoma City (give them a call 24 hours a day at (405) 722-5056). The patches for the 800 are as simple as a pair of switched wires and a missing program line, but that’s quite enough to cause aggravating foulups for many readers. The touch ring on a pen constructed as originally indicated will not work, returning a PADDLE(0) value of 228 no matter what.
The touch switch is actually part of a circuit that feeds a small voltage from the wire loop, through the user, and into the body of the pen. The voltage feeds into pin 9 on port 1 of the computer, causing the PADDLE(0) value to dip below 228. With the pen body grounded, no voltage can flow. The following swap is needed:
Inside the pen, disconnect the loop wire from the wire that leads to pin 9. Then solder the loop wire to the end of the resistor that is not connected to the phototransistor. There should be another wire soldered there which goes to pin 7 on the DE-9 plug.
The wire that is friction-fit against the metal pen body needs to be disconnected from the emitter of the phototransistor and soldered to the wire that leads to pin 9 (the disconnected lead described above).
Now, if all is well, the wire loop will be connected to +5V (pin 7), the pen body will be connected to the paddle input (pin 9), and the switch should work as advertised. A revised Figure 8 appears here as Figure 1.
As I first mentioned, it may be necessary to dampen your finger for best results. Pen sensitivity may also be improved by increasing the brightness control on your TV or monitor.
That’s not all. Line 130 is missing from Figure 12, and should be exactly the same as line 130 in Figure 11: 130 Y = PEEK(565).
In addition, there are some hardware differences between the Atari 400 and 800 models which cause the light pen to be read from port 4 on the 400. If you have a 400, plug the pen into port 4 and substitute PADDLE(6) for all references to PADDLE(0) in the demo programs. From there everything should be peachy.
Jeepers. I’m sorry about that. I hope it didn’t cause too many readers to throw their light pens in the trash. It really can be done, and with impressive results. Greg told me he was quite happy with his pen once he had worked out the gremlins, and that it compared favorably to some commercial models.
And I promise I’ll check possible patches for the 400 on all hardware projects to come! I’ve had a lesson on those differences here, as well as the need for triple-checking of figures and listings.
Have you ever wished you had a program editor for developing Atari Basic or assembler code? The Atari Program-Text Editor, available from APX, has long been the only sophisticated tool available in this category. Now a new and powerful entry, ERedit brings over 25 separate editing commands to the disposal of the Atari programmer.
Among its standard features are commands to search for strings, search and replace strings, move, copy, insert, and delete portions of the files; full cursor control; file comparison; formating of disks; locking and unlocking, as well as renaming of files, and renumbering.
In addition, the editor provides indepth help functions for each of its commands, and best of all English error messages when the master disk is accessible in drive 1.
The program supports multiple drive systems as well as printers.
Once you use an editor such as ERedit to aid program development, you’ll never want to work “raw” again. The tedious and sometimes dangerous editing processes (beware the infamous keyboard lock-up syndrome) are made fussless and trouble free.
ERedit is a new product, and its retail price was not fixed at press time. It requires a 24K system with at least one disk drive. For more information contact EHR3 Inc., 174 Summit Ave., Summit, NJ 07901. (201) 277-6785.
Another product that can be of massive help during programming is Basic Commander, from MMG Micro Software. It contains a mini-DOS, allowing the user to list, save, enter, load, run, delete, lock, unlock, and format disks, without needing to invoke the main DOS program. “But many mini-DOS programs are on the market with similar features,” you may say. Well, Basic Commander also features automatic line numbering, block delete, and transparency during use. “All well and good,” state the skeptics, “but ERedit and Monkey Wrench do those things just fine.” Yeah, but do they allow three user-programmable function keys for simultaneous macro definition? This program does, and it is a very convenient potential.
For example, you might assign the keystrokes CONTROL-L to the string “LOAD D1:”, CONTROL-S to the string “SAVE D1:”, and CONTROL-R to the string “RUN D1:”. Cursor placement can then be determined within the macro so that the user need only type the file name and RETURN to execute the desired command. Or the string can just as easily be embedded within a bit of code. Who says the IBM can do things that the Atari can’t?
This is another of the category of features that a programmer learns to lean on during program development, and would from that moment on miss dearly were they not available.
Basic Commander lists for $34.95. For more information, contact MMG Micro Software, P.O. Box 131, Marlboro, NJ 07746.
Valpar International has added yet another package to its growing ValForth series, which is without a doubt the foremost Forth implementation available for the Atari computer. This new package is ValDOS, which allows access to conventional DOS files from the Forth environment. Think of it: no more incompatibility between Forth screens and DOS files.
The ValDOS package is documented in the same professional manner as previous ValForth packages, and retails for $45. This includes a file editor that allows Forth code to be saved in DOS format.
For more information, contact Valpar International, 3801 E. 34th St., Tucson, AZ 85713. (602) 790-7141.
In the December 1982 Outpost, we took a look at reference books for the Atari computer owner. These ranged from books for the child or beginner to advanced technical notes for machine language programmers. Let’s add to that list the following new titles:
Atari Programming With 55 Programs, by Linda M. Schreiber. 244 pp. TAB Books, Blue Ridge Summit, PA 17214. This crisply organized introduction to programming uses generic information alongside an Atari-specific manual to approach the fundamentals of Basic. Programs are neat and really to work. There are nicely presented techniques to dispel the fears of flowcharting so common in beginners (and not-so-beginners) and the best description of error-trapping I’ve seen in an Atari work. The book offers quick immersion into assembler and then sets you back out again before shock can set in. It would be even nicer if it came with a disk.
Inside Atari Basic, by Bill Carris. 181 pp. Reston Publishing, Reston, VA 22090. Word has it that this book will replace Atari Basic in the carton accompanying Atari computers, and it is an improvement over that beginner’s text (though not of the caliber of Your Atari Computer). Carris touches on basic points with humor and common sense. The book is quite short, and therefore necessarily rather shallow most of the time, but of great help to the beginner. It is not for the intermediate or advanced programmer.
And heaven save me from the inveterate programming punster. Ever take note of how often “programming-made-painless” texts inflict sadistic puns at every turn? Best (worst) one in this book: “Hip Hip Array.” As my buddy Arlan says, somebody please gag that man with a spoon.
Understanding Atari Graphics, by Michael Boom. 49 pp. Alfred Publishing, Sherman Oaks, CA 91403. Though really not much more than a tall pamphlet, this work contains a great deal of valuable reference material pertaining to Atari graphics, including a keypress to ATASCII character chart, which can be found in no other reference I have seen, and a color chart showing the hues available with SETCOLOR commands. It also contains interesting material pertaining to the GTIA chip. I just wish there were more than 49 pages available to the author, so he might have taken up a meaty subject or two, like player-missile graphics or display list manipulation.
The Visicalc Book, Atari Edition, by Donald H. Beil. 298 pp. Reston Publishing, Reston, VA 22090. The best Visicalc reference around is now in an edition to complement Atari Visicalc. This primer on accessing the real power of the program, and the creation of templates to best serve user’s needs, is available in hard and softcover editions.
There are at least a couple of other new publications on the Atari now appearing, and I hope to get a look at them soon. I will report my book findings again shortly.
I created a monster. When I posed a challenge to readers of the February column to send in a self-modifying version of the title card generator I had written, I little expected to be buried in a blizzard of entries (we’ve had enough blizzards out this way for one year, thank you). I wish I could reply to everybody personally, but that just isn’t possible. If you receive mystery software in the mail, it is probably from me. And my thanks to you for participating, and for the many words of encouragement you sent. As many of you have suggested, I hope to pose another challenge in an upcoming column.
As promised, in a month or so you will see an entire self-modifying supertext program, encompassing the best of the many techniques we have seen for accomplishing it. In the meantime, I’d like to single out a few contestants for programs that showed, for one reason or another, what I thought was exceptional originality, elegance, or cleverness.
The names of these people appear as Figure 2. The order of the names does not represent any sort of ranking, but merely the order in which they were received. I salute these folks, whose programming savvy in many cases far exceeds mine, and wish them the best in their further efforts on the Atari, as well as in all of their endeavors.
While we’re revisiting so many things, I shall take an opportunity to answer a few of the many questions that have come my way. Yes, there will be a Logo for the Atari, and we should see it some time soon. It will be on a 16K ROM cartridge. Yes, there will be a 16K Microsoft Basic ROM cartridge as well, but no, Microsoft is not built into the 1200 XL. Nice thought, though. Nor do I know much about the rumored new graphics modes of that machine, as we still have not received one at the lab.
In answer to a common query, I unfortunately know of no way to toggle off the internal speaker through software. I attached a toggle switch to the underside of my original 800, and pulled the speakers entirely from two other units I use regularly. A description of the speaker switch project will appear in next month’s Outpost. The 1200, by the way, has no internal speaker at all, and routes its beeps, glurps, and gurgles to the TV or monitor speaker. Apparently I was not the only Atari user being driven slowly looney by keyclick and razzes.
Until next time, do try to keep your Computing Creative . . .
Contest Entries Of Special Merit
Kaiwing Kenner, Great Falls, VA
Mark Warner, Milwaukee, WI
Fred Tedsen, Sonoma, CA
Page Starr, Philadelphia, PA
Dave Adair, Cuyahoga Falls, Ohio
Sol Guber, Saint Louis, MO
Alan Belke, Belvidere, IL
Eric Vaterlaus, Beaverton, OR
Harold Watson, Dayton, OH
Rod Smoliak, New Hope, MN
Scott Zimmerman, Salt Lake City, UT
David Thigpen, Killen, AL
Adam Kao, Walnut Creek, CA
Jim Lauman, Oregon City, OR
Larry West, Burlington, Ontario
Jeffrey Olkin, North Miami Beach, FL
James Brezden, Northglenn, CO
Debby Keen, Raccoon, K.Y
Richard Cole, Mobile, AL
Brian Fitzpatrick and Gary Herzenstiel, Lansing, MI
David Brandman, Manchester, MO
Richard Kulas, Winona, MN
John Davis, Lubbock, TX
Alfred Arnold, Mountain Home, ID
Jorge Villasenor, Mexico City, Mexico
Brian Biggs, Falls Church, VA
Eldon Black, Colorado City, AZ
Timothy Connor, Saint Petersburg, FL
Philip Kreiker, Loveland, CO
Alfred Louie, Flushing, NY
Allen Warren, Tyler, TX
Alan Stockbridge, Grand Ledge, MI
Gordon Oppenheimer, Milford, CT
Gordon Burnham. Orlando, FL
Dick Peterson, Lansing, MI
Mark Odendahl, Bloomington, MN
Paul Richard, Maurepas, LA
Figure 2. The honor roll.
Photo: The infamous 5200 controller, with the slowest action in the West, East, or in between. It is also next to impossible to get one back together once it’s apart.
Photo: Figure 1. This supercedes Figure 8 in the March Outpost.
CREATIVE COMPUTING VOL. 9, NO. 6 / JUNE 1983 / PAGE 284
Among the hot topics in this month’s edition of the Outpost, we will address two of the most frequently-asked questions about the Atari—one concerning hardware and the other concerning software. I’ll show and tell you a bit about my recent trip west, and we’ll talk a little politics as we did last month. We’ll do a little dreaming, too. That’s a busy docket, so let’s get going. First the softer and fuzzier issues.
Last month I frankly shared with you my disappointment with some of the attitudes and decisions that have recently emanated from Atari. Some of my complaints had to do with the issue of compatibility: I felt Atari had blown it by not making its next-generation games machine compatible with its computers, as the categories are in fact beginning to merge, and in their hearts the 400 and 5200 are the very same machine. I suggested that Atari then compounded the error by creating a new computer that isn’t very compatible with its own predecessors. I went on to criticize Atari’s apparent hostility to third-party hardware and software development for its machines.
Last week, in a very soggy Sunnyvale, I aired these grievances to various folks at Atari. They listened politely, disagreed often, but did respond with one bit of good news—the Atari 1200 XL is going to undergo an overhaul. Just how extensive a redesign is to be inferred here in not clear yet, but the intention is to start listening, and that is a good intention indeed. Atari does not wish to be perceived as insensitive to the voice of its customers. It could certainly stand to prick up its ears a bit in the Home Computer Division, and now appears to be doing so.
Exactly what would we like to see in the way of an Atari 1200 XLE (E for enhanced)? Well, Atari, we’re sure glad you asked, and we hope you’re listening hard. We think you have the makings of a good machine in the 1200, but that somewhere along the line you lost the core philosophy that made the 400 and 800 the machines they are. And you need to take steps that will move the 1200 up not only into that core category, but beyond it. Don’t sweat it—we can tell you exactly how:
The 1200 has a superlative keyboard, and that extra 16K is sure handy. It was nice of you to boost the chroma, but don’t forget that many of your customers will be using the monitor output, and the current chroma level is ruinous to closed circuit reception. You went too far in reworking the operating system, as not even the Atari Word Processor will boot on the bowdlerized OS as it now stands. You must make a U-turn on this score. All, as opposed to hardly any, of the software we now run on our 400s or 800s, should run on our 1200s. Why the heck shouldn’t it? The machines are just too darned similar to justify incompatibitity! This syndrome is beginning to seem chronic.
While you are at it, bring back controller jacks 3 and 4 (you can put them on the righthand side). We have games such as Asteroids from Atari itself, that call for the extra ports, and we can drive parallel printers from them. The monetary savings from dropping them were mere pennies, anyhow. Then redesign that ROM cartridge jack so our third-party cartridges will fit. Did you really do that on purpose?
Now you’re back on the right track. Let’s take a look at the connectors that should be available on the back panel of the new 1200 XLE. For starters, let’s stick on a bus slot that corresponds to RAM slot 3 on the modular Atari 800, so we can plug in expansion boards, or maybe even an expansion chassis, for multiple boards. That way we can gain easy 80-column capability, bank-selectable RAM, and other capabilities yet undreamed of. Here is a novel thought: let’s actually encourage outside hardware development. Remember, that’s a big part of what made those fruity fellows down the street from you so popular.
Next to the expansion bus, we should find the parallel port. A Centronics style connector would be really civilized. Let’s face it, guys. We loyal fans might just want something a little hotter than an Okidata Microline 80 hanging off the side of our 1200 XLEs. This is not meant as a slight to Oki—but how about a 92 as opposed to an 80? Or something like the Mannesmann Tally MT 160L—the difference between 40 and 160 cps.
It should not matter to you guys what printers we want to hook up—just give us a standard parallel port, and we’ll take it from there.
Oh, and the sight of an RS-232 serial port would bring tears to our eyes. But no, we shouldn’t even suggest it to you. It would be too good—too generous—too thoughtful. Why, if you did that, we could attach the modem of our choice to our 1200 XLEs, in much the way we hooked up our parallel printers . . .
Hey, you know what would be savvy? If you built Microsoft Basic into the unit. That way the Atari Basic cartridge would remain standard, while at the same time Microsoft software would finally become economically viable on an Atari machine, as every owner of a 1200 XLE would have Microsoft Basic. And how about an RCA phono jack for audio output? Many of us would like to hook our 1200s up simultaneously to monitors and external amplifiers—something which is now tricky to effect from one DIN.
Unreasonable demands that would make the cost of the 1200 skyrocket beyond all market limits? Absolutely not.
They could be addressed for a reasonable additional cost. Unreasonable demands that could not realistically be crammed onboard the 1200? Absolutely not. We have snooped around the 1200 board, and believe that these features could be fit into the sexy 1200 XLE case. Unreasonable demands that would at the very least dictate a total redesign of the Atari 1200? Probably. But fellas—if you had only done things right the first time…
Fellow Atarian, I urge you to write Atari now and let them know how you feel—they claim to be all ears. Attach a copy of “The Thinking Man’s Atari” portion of this column to your letter if you want. Maybe, just maybe, Atari will come around. Their address is P.O. Box 427, Sunnyvale, CA 94086.
It is commonly known that in addition to the capability of driving sound through a television or monitor speaker, the Atari has an on-board speaker, similar to the Apple. This speaker serves nearly without exception to flag admonitions of one sort or another, such as a record or playback state on cassette, or an illegal entry in a word processing or similar program. It also provides the chirp of “keyclick” on the Atari keyboard.
The only problem with the on-board speaker is that it drives you crazy. Some programs exploit the speaker so sadistically it makes you wonder whether the programmer was hard of hearing. I even find keyclick distracting—perhaps it is necessary on the 400, but not the 800. The Atari 1200 XL has no internal speaker, by the way, and pipes keyclick out to the TV, where a volume control beckons. One of the commonly asked questions I get at the Outpost is how to shut the darned thing off. As I mentioned last month, I know of no way to do it through software. One answer is to drop the speaker right out of the unit, which is a relatively simple task. But it does have an air of permanence about it.
What could be simpler than the installation of a single pole, single throw switch to cut out the speaker when desired? The snag: the thought of snipping wires or drilling holes in my pristine Atari 800 made the hair on the back of my neck stand on end. Also, though the warranty on my machine had long since expired, I wasn’t happy with the idea of doing anything that couldn’t be undone. Service people can be put off quickly when they see user modifications. I determined, rather wistfully, that I would live without a speaker.
Then, while engaged in the hobby of staring at all the little packages on the wall of the nearby Radio Shack, I made a fascinating discovery. I saw a product called “two prong connectors,” catalog number 274-342, $2.49 for a package of six. I noticed that the fit would be quite close to the connector used on the Atari speaker. And wow, you sure can obtain really tiny toggle switches nowadays. “SPST micro miniature toggle switch,” catalog number 275-624, $1.59. So small, it can mount between the vent slots on the bottom of the 800. I could then envision a switch modification that was utterly reversible. If ever I need to bring my Atari in for service, the modification can be slipped out in under five minutes.
If you wish to modify your Atari 800, you will need in addition to the products listed above, about two feet of bell or other light wire, a flat blade and Philips screwdriver, soldering iron and solder, and a bit of electrical tape.
Snip the wire into two 10″ lengths. Then, take one of the wires and snip it into two 5″ lengths. Strip 1/4″ of insulation off the ends of all leads. Twist the shorter wires onto the longer wire as indicated in Figure 1. This will make the modification easier to slip in and out later. Next, solder two connectors and the switch to the wires as indicated in the diagram. Unscrew all collars around the neck of the switch. Notice you are using only the socket connectors, not the plug connectors. Leftovers can be saved for another project.
Now you are ready to begin the operation. Disconnect your Atari, and flip it over onto something soft, like a pillow. Unscrew the five screws that hold the bottom panel, and lift it toward you. Notice that the controller ports must be cleared to remove the panel.
Can you believe how small that speaker is? Thank goodness you don’t depend on that measly thing for all your sound effects. To disconnect the speaker, pull gently on the connector. Once the speaker is disconnected, remove it from the machine.
Orient the connector so that it matches the view in Figure 2. Using a screwdriver or a toothpick, press down on the silver tongue on top of the plastic connector, as you gently pull the wire from the side. Don’t force anything! When you have pressed the tongue down far enough, the contact will slide right out. Pull both contacts out of the plastic container.
Next, take the bottom panel you earlier removed and hold it so that the vents are at the bottom, as shown in Figure 3. You will mount the switch in the lefthand vent, where there is room to spare, and nothing nearby to short accidentally. Insert the flat blade screw-driver in the slot where the switch will be mounted (it’s a good idea to stay over toward the left—this will make the switch easier to reach). Gently twist the screwdriver to spread open the slot, then press the neck of the switch through. The plastic will have to bend a bit to accommodate the switch. Put on a washer, then screw on the switch lock nut to fasten it in place.
Final installation will be facilitated by repositioning the back panel so that the computer looks like an open valise. This way, the wire between switch and speaker will not be stretched. First, press the speaker contacts into the middle connector, as indicated in Figure 4. The speaker can now be repositioned in its spot. Gently connect the far socket to the speaker leads from which you removed the original plastic connector. Spreading them a bit will insure a tight fit. Finally, tuck the wire away under the keyboard post and away from boards and the speaker itself. There is more than enough room on that side of the computer to keep the modification from interfering with any other components.
It is a good idea to tape the original connector to the modification wire itself. Then, should you wish to put things back the way they were, the original connector won’t be lost in a drawer somewhere.
Screw the back panel on, plug things back in, and run a test by typing CONTROL-2, which rings the bell, with the toggle toggled. The chirp of keyclick will also be gone—if and when you want it to be so.
Listen: the sound of silence.
One of the most frequently asked software questions we get is how to make Basic files autorun. You won’t find it in the DOS manual, so don’t waste your time looking as I have. But thanks to John Humble of Mercer Island, WA, creation of autorun files is now made delectably easy.
Listing 1 will take just a few minutes to type in, and makes any Basic program into an AUTORUN.SYS file. First it asks for the name of the file you want to make bootable. Then it checks to see whether an autorun file already exists on the disk in question. If it does, the program asks whether you wish to overwrite that file. Then it finds the program you indicated, and makes it into the AUTORUN.SYS file, using our old friend, the dynamic keyboard method.
John also sent us Listing 2, which is a very short and sweet menu program. Put this program onto a disk full of other programs, then use the program in Listing 1 to make it autorun. The program will read the directory from the disk, and store each title in a string. The titles are then printed on the screen with a letter in front of each one; running them is as simple as pressing the letter of your choice. Good job, John, and thanks.
Next month: compacting data into graphics characters, and the complete program listing of a deluxe self-modifying title card generator from our January competition. Catch you then!
Listing 1. 5 DIM A$(12),B$(1),FN$(14) 10 PRINT CHR$(125):PRINT "THIS IS A PROGRAM THAT YOU CAN USE TO MAKE A BASIC"; 15 PRINT " PROGRAM BOOTABLE":PRINT 20 PRINT "PLEASE ENTER THE NAME OF THE BASIC PROGRAM THAT YOU WANT TO MAKE "; 25 PRINT " BOOTABLE";:INPUT A$:PRINT 30 PRINT "PUT THE DISK IN THE DRIVE THAT HAS":PRINT A$;" AND DOS 2.0 ON IT" 40 PRINT "THEN HIT RETURN" 50 INPUT B$:TRAP 80:OPEN #1,4,0,"D:AUTORUN.SYS" 55 PRINT "THERE IS ALREADV AN AUTORUN.SYS FILE ON THIS DISK" 60 PRINT "DO YOU WANT TO WRITE OVER IT?":? " TYPE YES OR NO":INPUT B$ 65 IF B$="Y" THEN 80 70 END 80 TRAP 40000:TRAP 90:FN$(1,2)="D:":FN$(3)=A$:CLOSE #1:OPEN #1,4,0,FN$:CLOSE #1 85 GOTO 100 90 PRINT "PROGRAM ";A$;" IS NOT ON THIS DISK":TRAP 40000:GOTO 20 100 FN$="D:AUTORUN.SYS":OPEN #1,8,0,FN$ 110 FOR X=1 TO 6:READ A:PUT #1,A:NEXT X 120 FOR X=1 TO 74:READ A:PUT #1,A:NEXT X 130 FOR X=1 TO LEN(A$):A=ASC(A$(X,X)):PUT #1,A:NEXT X 140 PUT #1,34:PUT #1,155 141 FOR X=1 TO 20-LEN(A$):PUT #1,0:NEXT X 142 FOR X=1 TO 6:READ A:PUT #1,A:NEXT X 150 CLOSE #1 160 PRINT "PROGRAM COMPLETED" 170 DATA 255,255,0,6,95,6 180 DATA 169,2,133,85,169,0,133,86 190 DATA 169,2,133,84,162,0,169,9 200 DATA 157,66,3,169,55,157,68,3 210 DATA 169,6,157,69,3,169,255 220 DATA 157,72,3,157,73,3,32,86,228 230 DATA 152,169,0,133,85,133,86,133,84 240 DATA 169,11,141,74,3,96,80,79,75 250 DATA 69,32,56,52,50,44,49,50,58,82 260 DATA 85,78,32,34,68,58 270 DATA 224,2,225,2,0,6
Listing 2. 10 GRAPHICS 0:OPEN #2,4,0,"K" 20 DIM FILENAME$(64*17),FILE$(17),F$(20) 25 POKE 82,1:PRINT :PRINT 30 OPEN #1,6,0,"D:*.*" 40 TRAP 900 45 FOR X=1 TO 63 50 INPUT #1,FILE$ 55 IF FILE$(5,16)="FREE SECTORS" THEN 70 56 IF FILE$(11,13)="SYS" THEN X=X-1:GOTO 65 57 IF X/2=INT(X/2) THEN POKE 85,20:PRINT " "; 60 PRINT CHR$(64+X);" ";FILE$;:FILENAME$((X-1)*16+1,(X-1)*16+16)=FILE$ 65 NEXT X:GOTO 45 70 PRINT :? :? :PRINT "TYPE LETTER OF PROGRAM TO RUN" 75 GET #2,A:A=A-64:PRINT CHR$(64+A) 77 FILE*=FILENAME*((A-1)*16+3,(A-1)*16+13) 80 F$="D:" 81 FOR X=1 TO 8 82 IF FILE$(X,X)=" " THEN 85 83 F$(LEN(F$)+1)=FILE$(X,X) 84 NEXT X 85 F$(LEN(F$)+1)="." 90 F$(LEN(F$)+1)=FILE$(9,11) 100 RUN F$ 900 END
Photo: In the display room at Atari’s Sunnyvale headquartets. All of Atari’s new machines, coin-op, home video, and computers can be seen here.
Photo: The computer demonstration center features an interactive videodisc to guide a new user through a tour of the 800. Coupling of the Atari with a laserdisc is now being offered to the outside world, as well.
Photo: A cart chock full of 1200s waiting to move next door for final assembly.
Photo: Components that can be stored on rolls are “stapled” right on to the boards using machines like this one.
Photo: John Loveless, of Synapse, where a lot of exciting things are planned for the Atari. They are the folks to beat.
Photo: Figure 1.
Photo: Figure 2.
Photo: Figure 3.
Photo: Figure 4.
CREATIVE COMPUTING VOL. 9, NO. 7 / JULY 1983 / PAGE 260
One of the cardinal rules I set for myself when I started writing the Outpost was never ever to report unconfirmed rumors. I am now going to enthusiastically break that rule, for the following reasons. First of all, the news is from an extremely reliable source: probably the best source I have. Unimpeachable, you might say. Second, the news is good. The news is really very good. It has got to be the best bit of Atari news I’ve heard in—jeepers—quite a while.
If you have been following this column for the last three months or so, you know of my deep disappointment with the new 1200 machine. I, and many other Atari computer loyalists along with me, have felt that the 1200 XL was not only lackluster, but actually served to point the Atari Home Computer Division in a weak and uncompetitive direction. During my somewhat petulant visit to Sunnyvale some months ago, Atari voiced a commitment to at least listen to user suggestions concerning a redesign. I then made an effort to get everyone in the world who cares to help set Atari straight.
Well Atari has not only listened, but actually seems to have come around. It seems that the model 1200 redesign will be as extensive as we all hoped. Among other reforms, there will be a return to the compatible operating system of the 400 and 800; also, and brace yourself, an expansion chassis feature will be available. Seems almost too good to be true.
All I can say is yippee, yahoo, and thank the Lord above. I hope to export some very good news in next month’s Outpost, detailing the enlightened features to be included in the redesign of the Atari 1200. I hope also to report on a batch of new, compatible Atari computers. If you are among the concerned Atarians that have made your feelings known to Atari, there is real cause to rejoice—you got through. My great thanks to all of you.
The last two columns of the Outpost have generated lots of mail, so I shall try to steer clear of further controversy this time around. We’ll meet a real up-and-comer in the Atari software market, and also examine the full listing of a remarkable self-modifying title card generator, sent to us as an entry in our program contest.
A couple of quick comments about the mail before we get started. I cannot possibly answer all your letters individually. If you must have a personal response, please enclose a self-addressed, stamped envelope with your letter. That is about the only way you will hear from me. I still encourage you to keep the cards and letters coming in, especially those concerned with the future of Atari microcomputers.
I do hope you are letting Atari know your feelings too, though, and not just me. Let then know you are out there, and that you care enough to have gotten in touch.
I have visited quite a few fledgling software concerns in my time and met some interesting people. Many of them talk a literally “good game”; fewer can then back up their talk with original, high quality software. And in the area of educational packages, well, I don’t have to remind you how many just plain lousy programs there are to be found hiding under a hat of high mindedness. Some established and well-advertised third-party education stuff for the Atari ranks among the most amateurish swill on the market today.
Coming to microcomputing from the field of education, as I do, that fact is especially lamentable to me. It makes it much harder to convince people of the power of computer graphics and sound as educational entertainment tools. As a result, the division between educational and entertainment software is strengthened in many minds. That’s too bad, since to my mind there should be no such division.
When the rare somebody comes around who is really on the beam, therefore, it is especially exciting to me.
Trip Hawkins of Electronic Arts in San Mateo, CA, is one of these rare souls. He expounds the virtues of microcomputer games in education in much the way that I do, even to the point of invoking the name of John Dewey in the process. And any friend of John Dewey is a friend of mine.
If you ever get the chance to discover the writings of John Dewey, I wholeheartedly encourage you to do so. His thinking has done much for the philosophy of education in this country. Within his many sensible and sensitive writings, he repeatedly expressed the belief that the best kind of learning involves the learner as active participant—that it is much more potent to experience as opposed to merely hear about a subject. If Dewey had lived into the microcomputer age, I am sure he would have advocated the use of the personal computer as a perfect tool to advance this kind of learning.
The vital difference between Trip Hawkins and many others who share Dewey’s viewpoint is that Mr. Hawkins is actively pursuing the goal and amassing products consistent with it to inaugurate his software label. Make note of that name, Electronic Arts. It may well set the standard for sophisticated entertainment software in the 80’s.
Hawkins, who applied his estimable intellect for two years to the development of the Lisa machine at Apple, clearly and unequivocally sees the microcomputer as a new artistic medium. The computer offers the potential for incredibly complex forms of entertainment that are at the same time extremely simple to play. “Hidden scaffolding” is the term Hawkins uses to describe the means by which a computer program can encompass more depth and realism than anything yet seen in the genre.
He sees it as the job of a software house such as his own to find, manage, and support software artists, in much the same way that a good film studio or record label would handle its performers. In fact, he intends to use some of the artists who do record album covers to aid in the packaging of Electronic Arts software.
Trip sees the contemporary microcomputer software business in a situation similar to the situation the film industry experienced back in the 1900’s—at the very outset of its development. A great deal of software has derived appeal from sheer novelty, rather than content, and hundreds of folks from every walk of life are feverishly churning the stuff out; most of it is mediocre. But this is changing fast. The sophistication of the software buyer grows daily.
Carrying forth that analogy, Hawkins sees as his task the creation of an environment wherein a “software Charlie Chaplin” can arise. This means support in terms of development, marketing, and public relations. Hawkins believes that software artists well deserve celebrity, and will soon be as famous as artists in any other medium. Sounds good to me, and certainly on the right track.
Terrific talk, granted. But what about the products? Well here are some of the top-quality Atari titles to look for from Electronic Arts:
Archon, a fantasy “board” game combines strategic elements of chess with adventure fantasy. Quality microcomputer games offering competition between two human players are few and far between. Archon involves competition for power points on a board where the color of the squares can change, depending on strategic factors. Conflict zooms to a close-up on the confrontation square, where players pit various joystick-controlled creatures against each other. This is the kind of game I have been waiting to see for the Atari, and even if you haven’t, you are bound to fall for it. Imagine a chess game in which you can cast spells…
M.U.L.E. stands for “multiple-use labor element,” and it is the basic play component in the game of the same name, which is somewhat like the board games Diplomacy or Monopoly. In it, up to four players find themselves competing for financial advantage on a foreign planet. While shrewd bargaining and dexterous joystick competition are called for, players must also cooperate to survive various crises. The graphics, sound, and humor in this game are superlative, and though the kids won’t suspect it in the least, they’ll be learning laws of economics as they play. It is a multiplayer game that even adults will want to come back to—and handicaps are available to even out the abilities of adults and children. After a few dozen games even adults will turn to the manual accompanying M.U.L.E. to get some background on the laws of supply and demand. And the animated characters in the game are thorougly adorable.
Worms? is one of those games like Conway’s game of Life, that in execution of colorful animated graphics, gives the player an intuitive feeling for hitherto unseen mathematical relationships. One round of the game, which embodies some of the best graphics and sound to be seen on Atari, will have you thinking of the mother shop in Close Encouters.
Players “train” streaks of light to move in patterns from one dot to another in a black background matrix. Every player has his own color, and every direction has its own musical tone. To score points, complete all the possible junctions on a node. Soon the screen is alight with tuneful worms marching by “decision points” to the beat of their respective drummers. The game holds a lasting and nearly hypnotic fascination. Winning worm patterns can be made to compete against new computer- or human-generated opponents. There is a deep satisfaction to be gleaned from Worms?, in seeing and hearing the harmonies of pattern. Dewey would have loved playing this one.
Pinball Construction Set is a tour de force by Bill Budge, who is quite arguably the Charlie Chaplin of microcomputing. Originally designed and marketed for the Apple computer, the Atari version includes several improvements not present in the original game. In the latest issue of Video and Arcade Games, I reviewed the Apple version, stating that the only thing conceivably more enjoyable than playing Budge’s micro-pinball is creating your own micro-pinball machines. Pinball Construction Set makes doing so a joy, and to that end uses an icon-based menu system quite similar to the Apple Lisa’s “mouse”. Want to add a bumper or flipper? Use the joystick-controlled pointer to “pick it up” from the icon chart, and place it anywhere you please in your creation to disk as a fully functional, stand-alone microcomputer pinball game. If you don’t quite buy the versatility of mouse-based systems, this program is required booting for you. Bill Budge is an example of the caliber of software artist Electronic Arts seeks to solicit.
Watch your local software store, or contract Electronic Arts, 2755 Campus Dr., San Mateo, CA 94403. And other software houses, make note, take heed, watch out.
Ever since the first entries came in, I have been collecting features to include in a deluxe version of the Title Card Generator contest program begun early this year. My original plan was to combine as many features as possible into one big program, to be printed in its entire this month. Then Kelly Phillips came along.
What Kelly did was to submit a program that took my original ideas and moved them in an entirely new direction, adding features that I hadn’t believed possible, and saving screens in an entirely new manner. So instead of printing a mishmash of routine from many different programs, it is my pleasure to present in its entirety his superlative version of a self-modifying title generator program.
Mr. Phillips trades off some of the features I considered neat about my approach, such as sound, and the ability to watch each letter plot itself on the screen one at a time. But the rewards he reaps are fantastic. The most impressive is the scaling feature—the point size of the font is made user-programmable. This idea, had in fact, crossed my mind during a stray moment in first developing the super character set, but I had jettisoned it immediately, thinking the allied problems would be insurmountable. For me, I’m sure they would have been.
If you type in the original program, you owe it to youself to make Kelly Phillips’s additions. If you never typed the original, an entire listing is presented here, and I guarantee that once you see the kinds of things you can do with it, you will want to use it to generate titles for all your own programs.
And so I shall hand the reins over so Kelly can take you through the program. If you wish to communicate directly with him, he can be reached at 346 West 400 North, Logan, UT 84321.
This version of John Anderson’s “Self-Modifying Title Card Generator” is an expanded version of the one that appeared in the February 1983 issue of Creative Computing. It provides all of the features of the original program (except sound), and adds many more advanced and useful functions such as scaling and freehand joystick control. With the additional features of this version of the title card generator, you can easily make your own screen creations much more colorful and professional looking. In reading the following documentation, I suggest that you refer to Mr. Anderson’s original article as well as the headings that follow Cursor Movement Controls and Control Commands that follow.
The title card generator is numbered in increments of ten for ease of entry. It was also designed to be added to the original version with minimal modification. If you already have the original program, load it and make the following changes: delete lines 160-230 and line 859. Change the DATA in line 1000 from END to R. Type in the NEW sections of the program (lines 0-150 and lines 2000-3040 of Listing 1). Do not change the line numbering in any way, and be especially careful when typing lines 3120-3340. This is crucial to the proper operation of the program. At this point, you should save the program on cassette or disk before running it. When the program is run, it will delete major portions of itself, so you will need to have that complete copy saved prior to any program run.
If you do not have a copy of the original program, a full listing of my modifications appears here as Listing 1.
The title card generator is a program that is used to enable the computer to actually “write” another shorter program which will be used for your title card display from that time on. It consists of two major phases: 1) the editing phase, in which you create the screen that you wish to have the computer incorporate into the program it will write, and 2) the program creation phase, in which the computer saves your screen along with some Basic commands for your title program to use later on.
These Basic commands will also be chosen by you—based on your answers to a few simple questions during this phase. At that time, the company will also delete the actual title card creation portion from memory, since it will not be needed in the display program that the computer writes.
The “cursor” in the title card generator is a multi-colored flashing square which appears in the center of the screen. Unlike the original version of the title card generator, the cursor is by no means bound to three rows of seven columns each. You have complete control to put the letters anywhere on the screen, and then mix them up with borders, designs, or anything else you can dream up. In addition, the letters may be of almost any size you choose. For more information on the commands which change the cursor position, see the heading entitled Cursor Movement Controls up ahead.
To draw a letter on the screen, simply press the letter you wish to draw. Letters are always drawn with their top left edge at the current cursor position. The cursor will then automatically be moved to the next letter position, just like a super large text typing mode. If there is not sufficient room to draw a letter at the position at which you attempt to do so, you will hear a buzzer and the command will be ignored. You will also hear the buzzer if you issue a command that the title generator does not understand. Faulty commands will also be ignored.
In addition to automatically drawing letters on the screen and using the 12 control commands, you may use the joystick to drawn any free-hand design you wish. To draw with the joystick, hold the red button down while moving the stick in the desired direction. If the joystick is moved without the red button depressed, the cursor will move, but nothing will be drawn. The joystick should be plugged into port number one, and may be used at any time during your screen editing (except when a control command is in progress).
Pressing CONTROL-Q allows you to save your screen with a smaller title card display program that the computer will actually write to your specifications, based on your answers to a few questions. This process requires quite abit of time, because the computer goes through many steps to write the display program.
The computer can create this program on cassette or disk, but keep in mind that you must have sufficient room to do so. For a disk, you will beed at least 250 free sectors, and for cassette at least a 60-minute tape. This is your responsibility as the program does not check for sufficient room before starting the saving process. Following is a short explanation of the questions the computer asks before the saving gets under way, and what it expects for an answer.
WOULD YOU LIKE TO SAVE THIS SCREEN? This is to verify that you meant to press CTRL-Q. If you answer Y, the following additional questions will be asked. If you answer N, you will be returned to your screen just where you left off.
SAVE TO (1) CASSETTE OR (2) DISKETTE? This allows you to save the display program to either cassette or disk. Press 1 for cassette or 2 for disk.
TEXT WINDOW SECONDARY MESSAGE? You will be asked this question only if you have enabled the text window display with CTRL-T. If you have, you should now type in up to four lines of text that you want to appear in the text window of your display program, each line may consist of no more than 38 characters.
SPECIAL EFFECTS? Here your may choose whcih type of special effect you wish to have in your display program. Effect #1 is the rainbow effect, as it was used in Mr. Anderson’s original program. This effect causes all portions of your picture which are colored with pen #1 to cycle through the 128 Atari color variations.
Effect #2 is the flast effect which will cause all portions of your picture colored with pen #1 to flash on and off in your display program. Effect #3 is the random effect. This effect will cause all the colors on your picture to change randomly in your display program. To select a special effect, type the number corresponding to it. If you do not wish to have any special effects, simply press RETURN.
WHAT TYPE OF PLOTTING WOULD YOU LIKE? Pressing a 1 here will create your program in such a way that the screen will be invisible until it is drawn. Then the whole screen design will be turned on at once. Pressing a 2 allows the picture to be seen the whole time it is being drawn.
CHAIN TO ANOTHER PROGRAM? If you are saving to cassette, you will not be asked this question. For disk users, this will allow you to have your title card display the title of a program, and then subsequently run that program automatically.
ENTER A FILE NAME FOR THIS PROGRAM? If you are saving to cassette, you will not be asked this question either. This is because the cassette does not recognize file names when saving programs. For disk users, this is where you will type the name you wish to use for your display program. Note that this is different from the previous question in that it names the display program itself, whereas the previous question provided a name that the display program could chain to if desired.
At this point, you insert the desired cassette or disk, and the computer creation process begins. Several functions are performed here. First, the screen data are saved in the form of Basic DATA statements. On disk, the file name is SCREEN.DAT. When complete, the screen data are re-entered into memory and many of the original program lines are deleted. Then portions of the display program are generated, based on your answers to the previous questions. When all these functions are complete, the program saves your new display program, returns to Graphics 0, and ends. You may now run your title display program and see how it looks. (During the saving process, cassette users should pay attention to the screen to see when to rewind the tape and when to press RETURN to save and re-enter portions of the program as needed.)
From time to time, my Atari has had the problem of “keyboard lockup” during the computer creation phase. This is apparently due to the fact that many program lines are deleted, added, and edited. For some reason, the Atari may lock up, with no recourse except to turn off the computer. The title card generator was programmed with this problem in mind. Delays were strategically placed wherever a screen full of line numbers is to be deleted. This is to give the Atari time to re-arrange its memory fully before more deletions come.
But, should your computer lock up, fear not, your screen is still intact and safely saved in the file on disk or cassette. To retrieve it, turn off the computer for a while, then turn it back on and LOAD the title generator. Next, type: ENTER "D:SCREEN.DAT" (or ENTER "C:" for cassette). This will re-enter your screen data. Then type: 2025 GOSUB 100. You may now run the program, and you will be in the editor, ready to attempt the SAVE process again.
You may begin at that point and nothing will be lost. This may be repeated as many times as the problem persists, and no harm will be done to your masterpiece. The program does not delete the screen data from cassette at all and only deletes it from disk when all other functions are complete and successful.
Another problem was the speed at which Atari Basic could analyze and save the exact data currently on the screen. The screen saving routine was placed at the beginning to the program (lines 2-8), which approximately doubls the speed of this lenthy process.
To keep the program as short as possible, the REMARK statements were left out in the final version of the title card generator. Figure 1 is a line by line description which may be used to follow the flow and design of the program.
Figure 2 lists 11 special cursor movement keys that are available in the title generator. They allow you to move very small distances for greater accuracy or very large distances for greater speed.
There are 12 control commands available in the title generator. These commands allow you to manipulate the screen in several ways. The commands are invoked by holding down the CONTROL key while pressing the desired command letter. The only exception is the screen clear command, which is invoked with the SHIFT key instead. Following is a description of the intended use for each of the control commands and program “default” conditions where applicable.
SHIFT-CLEAR: Clears the screen and resets all parameters to their default settings.
CONTROL-B: Draws a border from the current cursor position and centers it on the screen based on the cursor coordinates.
CONTROL-C: Sets the colors for each of the four “pens” available in the title generator. Equivalent to the Atari Basic SETCOLOR statement. Default setting is the same as the standard Atari default colors.
CONTROL-D: Direct cursor positioning. Places the cursor at the exact X and Y coordinates specified by the user. Equivalent to the Atari Basic POSITION statement.
CONTROL-E: Erases a letter-sized block. The cursor is placed at the top left of the letter to be erased, then CONTROL-E is pressed, erasing the letter (and everything else in its path, so be careful).
CONTROL-F: Fill toggle. Toggles the letter fill feature from on to off and vice versa. When the fill command is enabled, letters are filled with the color of pen #1. Default=fill on.
CONTROL-P: Selects the pen to draw with. There are three colored pens (1-3) and one “erase” or background colored pen (pen 0). Equivalent to the Atari Basic COLOR statement. Default pen=2.
CONTROL-Q: Quits and saves the screen. Ends the editing phase and prepares for creating the title display program.
CONTROL-S: Sets the scaling factor with which the letters will be drawn. The factor must be no less than 0.25 and no more than 3.5. Some scaling factors may cause the fill feature to be inaccurate. Default scale=1.
CONTROL-T: Text window toggle (on/off). Enables (Graphics 7) or disables (Graphics 7 and 16) the four-line text window at the bottom of the graphics screen. Default= text window off.
CONTROL-V: View the current X and Y coordinates. The column (X) and row (Y) coordinates are shown in the text window. Pressing any key returns to normal editing.
CONTROL-Z: Ends the program with no save. Ends the program completely, returns to Graphics 0, and does not invoke the screen saving routine.
Also note that control commands C, D, P, Q, S, V, and Z set the colors to the Atari default conditions while in progress. This is to ensure that all of the text prompts used in these commands will be visible in the text window, regardless of the actual colors selected for the screen display. At the conclusion of these commands, the colors will be set back to those specified by the user.
So there you have it. One addition you might want to make to Kelly’s program is a fix to clip screen edge parameters. As it now stands, cursor movement off the usable screen will result in an error, blowing up whatever you are working on. I made a quick fix when first alerted to the problem by adding a TRAP and some clippers as shown in Figure 3. Because line 2100 is already at the maximum program line lenght, you’ll need to split it, creating line 2105 in the process. As I say, this was a quick fix, I’m sure you can do better.
I know I had promised more for this month, but space considerations preclude anything else this time around. Next month, I promise we will address new software and hardware topics, as well as compacting data into graphics characters. Until then, keep up your computing.
CREATIVE COMPUTING VOL. 9, NO. 8 / AUGUST 1983 / PAGE 220
The baseball season is in full swing, so to speak, and no one here is surprised about the Mets, but I wish the Yankees would get their act together. It is not so much the pennant hopes going up in smoke, as the thought of seeing Martin leave in tears yet again. It makes me sick to my stomach. I expect next season Steinbrenner will bat clean-up.
Last time around I intimated that this month’s column would bear some very good news for Atari computer fans. These loyalists, I dare say, have been somewhat comparable lately to baseball fans in Muddville. That means keeping up the enthusiasm despite the nasty strikeouts.
If you have been poised on the edge of your seat, racked with concern, anxious, sweaty palmed, waiting for a homer in home computers from Atari, you won’t be disappointed. Yessir, folks, there will be a new beginning, and at least some of the facts are in.
The Atari 1200 has been benched. Riddled with compatibility problems, beset by severe video signal woes, a gaggle of petty compromises, and generally reviled by the community of Atari users, production of the 1200 XL machine was suspended some time ago pending a “policy reexamination.” Happily, that reexamination resulted in Atari pulling the 1200 XL off the market entirely and permanently. The last of the machines are now on the shelves.
In showing the courage to admit their sizable and costly error and to choose a new lineup, Atari has shown some class ane the first signs of intelligent life we have seen in some time. Let’s hope they keep it up.
In the interest of good will, I won’t rehash my beefs about the 1200. It is gone; it is of the past. Let’s put it behind us.
And let’s take a fresh look at the future. After a rather humorous, albeit bizarre detour, Atari home computers are moving in the right direction once again. That is moving ahead, especially in terms of competitive pricing, while wisely leaving some proven formulas untampered with. Bravo, boys. Here is the roster, as of press time:
● The Atari 600 XL. Yes, you read it right. The Atari 600 lives. And it is looking very good. With 16K expandable to 64K, a full stroke keyboard, and built-in Atari Basic, the machine has a promising future. Especially because it will use the original operating system that made its predecessors famous—that means it will boot all existing Atari software within existing memory constraints. And I assume it will put out the same clear, clean video that the 400 and 800 machines have always delivered to any TV or monitor. Then do a double take at the price: $199 list.
● The Atari 800 XL. This machine will have 64K standard, and also use the old OS, as do all the new machines from Atari. And, using its expansion port, memory can be expanded to a whopping 192K. Not too many details have been made available concerning the expansion capability, but already there is talk of an expansion chassis to hold 80-column cards and the like. And jumping jiminy, the list price is only $299.
● The Atari 1400 XL. This is the replacement machine for the ill-fated 1200 with most of the grievances redressed. The compatible operating system will be there, along with hardware expansion capability, and even (hold on to your hats) a built-in modem! It must sound as if I am making this up, but it is the truth; there will even be an onboard speech synthesis chip. Jeepers. For a list price of $499, I would have settled for a measly parallel port.
● The Atari 1450 XLD. Nothing more than a 1400 XL for your $799 list, except for the built-in low-profile 5¼″ disk drive. Atari Home Computer Division may have been down, but is not out of the game yet. Not by a long shot. Okay, it is quite conceivably the bottom of the ninth, with two out. But Casey is on base and the tying run is at the plate.
● The Atari 1050 Disk Drive. This is the stand-alone version of the drive built into the 1450 XLD. It is a half-height drive. Using the new DOS 3.0, it is capable of more than 1 50K of storage on a single disk. At the same time, it remains completely compatible with all existing 2.0 disk software. Pricing not available at press time.
● The Atari 1027 Printer. Not much more to say about this now other than that it is a letter quality printer for $399.
Now don’t you agree that news like this is good news indeed?
Oh yes, and just a little bit more to brighten your day—your third-party cartridges will fit in these new machines. It just might be that Atari has come around.
We will soon find out.
Our guest tutorial this month is from Fred Pinho, author of the game program “Medieval Combat,” which appeared in the May 1983 issue of Creative. Fred is very knowledgable about Atari memory conservation, among other Atari topics. In the balance of this installment of the Outpost, he will provide insight into a very powerful technique for compacting data and saving a great deal of annoying load time.
Before I surrender the rostrum, I must thank Alfred Publishing, and specifically Joseph Cellini, for allowing us to reproduce Appendix B from the booklet “Understanding Atari Graphics.” This is the only reference I have seen that provides a keypress to ATASCII chart, which is necessary to take advantage of Fred’s data technique.
And so here is Fred. If you wish to correspond directly with him, his address is 676 Rollingwood Way, Valley Cottage, New York 10989.
* * *
One straightforward way to load numerical data into a computer is to READ the data value and POKE it into the desired memory location. An example of this method is shown in Listing 1. Though easy to program, it is memory inefficient and runs relatively slowly. This method requires anywhere from three to five bytes for each data number stored. Why? Each number given in the program requires one to three integers plus a comma in the DATA statement. This, and the memory location used for final storage, add to three to five bytes.
If you run the program in Listing 1, you will see how slow this procedure can be (87 seconds to load 6000 bytes). The same thing is accomplished by Listing 2 in only two seconds! I once wrote a program that required about 9400 numbers to be loaded for use in a graphics routine. This took forever to perform (about five minutes). If also consumed excessive amounts of precious memory (even 32K can be used up quickly). I was able to keep memory usage to this level only because some of the data were repeated and thus did not have to be listed in DATA statements. By contrast, the method shown in Listing 2 cut the loading time to 25 seconds and saved roughly 8K bytes of memory.
The method shown in Listing 2 depends on two techniques. First, represent equivalent rather than by the actual numerals. This reduces memory use by eliminating the comma in the DATA statement and cutting the bytes used to represent the number in the DATA statement to one. It also allows you to pack more data into each program line. This saves additional memory by eliminating additional line numbers and DATA statements.
Entering the graphics symbols is more time-consuming than typing the number. However, it is not too difficult if you use the tables shown here. In these tables, each key stroke required to generate the appropriate symbol is detailed. Be careful to observe the following notes otherwise you will find errors in your data.
There is one limitation to this method; you can’t use it directly for the values of 34 and 155. These ATASCII values are the codes for quotation marks and for the RETURN function. You can’t type these directly into a string because the Atari will treat them as string and line terminators. The easiest way to get around this problem is to load a space from a DATA statement into the desired string location. Once the string has been accepted by Basic, the string can be modified via the CHR$ function to add the desired value. As long as you don’t PRINT the modified string, all is well. For example:
1000 DIM A$(10) 1010 READ A$ 1020 A$(6,6)=CHR$(34) 1030 DATA AXY*+ DC/P
The second technique, which speeds up program execution, is simply the reading of a whole string of characters at once rather than byte by byte using READ and POKE commands.
After you have loaded your data as strings, there are many things you can do that are not immediately obvious. Strings are a very economical form of data storage. Consider that each value in an array or matrix consumes six bytes of memory while string storage takes one byte. If you are working with large amounts of data, the savings can be considerable. For example, a 20X20 matrix would normally require 2646 bytes for data storage. Remember that Atari Basic always assigns a zero element to an array or matrix so that 20X20 is really 21X21. The same amount of data could be stored in a string in 441 bytes. Of course, the saving in memory is not quite that good since the string technique requires more complex code than direct use of matrices. You will come out way ahead, however.
As it stands, this technique can only handle data in the range of 0-255. This is not a severe limitation since these values are the ones required for graphics work. With a little further programming effort, two byte string values can be stored. These would provide a data-value range of zero to 65,535.
How does one access a string as if it were a matrix? It isn’t too diffcult. Assume an R by C matrix (R=rows; C=columns). Remember that we actually have R+1 rows and C+1 columns due to the zero elements of the matrix. What string position corresponds to the matrix element (X, Y)?
String Position = X{C+1)+Y+1 Note that the above is for single-byte numbers. A similar analysis can be developed for double-byte numbers. The data value stored in the string can then be recovered via the ASC function. As an example, for a 2 × 2 matrix where the (1,2) element is desired:
1000 DIM MATRX$(9) 1010 MATRX$="5A6D*+7Z$":C=2 1020 X=1:Y=2:S=X$(C+1)+Y+1 1030 MATRX=ASC(MATRX$(S,S))
A very powerful technique, using “data strings,” involves forcing the computer to place the desired string data into a location specified by the programmer rather than by the computer. This is not an easy task, but it can be done. To accomplish it requires a knowledge of how the Basic system keeps track of strings. Basic sets aside two tables (among others) in memory called the Variable Value Table (VVT) and the String/Array Table (SAT). The location of the VVT is stored in memory locations 134 and 135 and is found by the following: 256*PEEK(135) + PEEK(134). Eight bytes are reserved for each variable declared in the program (variables include scalar, array and string variables). For a string variable, the bytes are assigned as shown in Table 1.
The String/Array Table is an area in memory reserved by the computer to accommodate string and array data. The size of this table is determined by the programmer through his dimension statements. This table normally resides in memory above the Basic program.
With the above information in mind, we can proceed to bend the computer to our way of thinking. Listing 3 gives a simple program that stores data in six strings and then locates another set of strings in the screen display data area. Then, by use of the Basic string manipulation commands, data are scrolled horizontally across the screen. The data movement is jerky by machine language standards but still impressive and useful when compared to the other techniques available in Basic.
Of course, you can go to the “player-missile” system to get easily programmed horizontal scrolling. But note that the player width is only one byte. Even if you link the four players together, the maximum width is only four bytes. With the string techniques, however, the horizontal “width” of your graphics data is limited only by the memory capacity of the Atari.
This string-modification technique can also be used to provide rapid vertical motion for a “player” in the player-missile graphics system. To move a player vertically, the player data must be continuously relocated within the player memory area. Using PEEK and POKE is excruciatingly slow. The use of strings, however, provides the capability of rapid movement. See George Blank’s “Outpost: Atari” in the April 1981 issue of Creative (pp. 194-196) for a full explanation of this technique.
If you try to print your graphically loaded strings to the screen to check the results, you will get an unpleasant surprise. Your graphics symbols will probably include some editing characters. These will perform their function when printed to the screen, causing your string to perform strange gyrations. The result will be an incorrectly printed string.
The best solution to this problem that I have found is to convert the graphics symbols back into ATASCII data and print them. An example for a 360 character string is given below.
1000 OPEN #3,8,0,"P:" 1010 FOR X=1 TO 360 1020 ST=ASC(Z$(X,X)) 1030 ? #3;ST;","; 1040 NEXT X 1050 CLOSE #3
This will print out your original numerical data for checking. If you wish to print to the screen rather than to the printer, simply replace P: in line 100 with S:.
Listing 1. Loading time about 87 seconds. 1000 POKE 106,PEEK(106)-24:GRAPHIC 0:D=PEEK(106)*256 1010 FOR X=1 TO 6000 STEP 100:RESTORE 1920 FOR Y=0 TO 99:READ Z:POKE D+X+Y,Z:NEXT Y 1030 NEXT X 1040 DATA 65,66,65,66,65,66,65,66,63,66, 65,66,65,66,65,66,65,66,65,66,65,66,65,6 6,65,66,63,66,65,66,65,66,65,66 1050 DATA 65,66,65,66,65,66,65,66,65,66, 65,66,65,66,65,66,65,66,65,66,65,68,65,6 6,65,66,65,66,65,66,65,66,65,66 1060 DATA 65,66,65,66,65,66,65,66,65,66, 65,66,65,66,65,66,65,66,65,66,65,66,65,6 6,65,66,65,66,65,66,65,66
Listing 2. Loading time about 2 seconds. Listing Loading 1000 DIM A$(6000),B$(100) 1010 GRAPHICS 0:FOR X=1 TO 6000 STEP 100:RESTORE 1020 READ B$:A$(X,X+99)=B$ 1030 NEXT X 1040 DATA ABABABABABABABABABABABABABABAB ABABABABABABABABABABABABABABABABABABABAB ABABABABABABABABABABABABABABAB
Table: Keypress to ATASCII chart. {omitted}
Table: Byte Contents 1 Contains the number 129 which specifies that the variable is a string. 2 Variable Number (0 to 127). These numbers are assigned in sequence as the variables are declared in the program. 3,4 These bytes give the offset from the beginning of the string/array table to the first memory location of the string variable. The bytes are stored with the least significant byte first (as are the following pairs). Thus to obtain the offset, multiply the contents of location 4 by 256 and add the contents of location 3. 5,6 Contains the number of the last string location that has had data actually written to it. 7,8 Contains the maximum length of the string as given in your DIM statements.
Table: Program Details.
Listing 3. 10 DIM AA$(1),BB$(1),CC$(1),DD$(1),EE$(1 ),FF$(1) 20 DIM A$(100),B$(100),C$(100),D$(100),E $(100),F$(100) 30 GRAPHICS 4:VVT=PEEK(134)+256*PEEK(135 ):SAT=PEEK(140)+256*PEEK(141) 40 ST=PEEK(560)+256*PEEK(561)+4:DDA=PEEK (ST)+256*PEEK(ST+1) 50 FOR T=0 TO 5:OFS=DDA+90+(T*10)-SAT:V3 =INT(OFS/256):V2=OFS-256*V3 60 POKE VVT+(8*T)+2,V2:POKE VVT+(8*T)+3, V3:POKE VVT+(8*T)+4,10:POKE VVT+(8*T)+6, 10:NEXT T 70 DIM SM$(10),HG$(100) 80 GOTO 180 90 READ SM$:HG$(LH,LH+4)=SM$:LH=LH-5:RET URN 100 A$=HG$:RETURN 110 B$=HG$:RETURN 120 C$=HG$:RETURN 130 D$=HS$:RETURN 140 E$=HG$:RETURN 150 F$=HG$:RETURN 160 AA$=A$(I,I+9):BB$=B$(I,I+9):CC$=C$(I ,I+9):DD$=D$(I,I+9):EE$=E$(I,I+9):FF$=F$ (I,I+9):RETURN 170 FOR T=1 TO 30:NEXT T:RETURN 180 FOR X=0 TO 5:LH=1:FOR Y=1 TO 28:REST ORE 230+(X*10):GOSUB 30:NEXT Y:GOSUB 100 +(X*10):NEXT X 190 I=1:GOSUB 160:GOSUB 170:FOR I=2 TO 9 1:GOSUB 160:GOSUB 170:SETCOLOR 0,INT(RND (0)*14)+1,INT(RND(0)*9)+4:NEXT I 200 FOR X=1 TO 10:GOSUB 170:NEXT X 210 FOR I=91 TO 1 STEP -1:GOSUB 160:GOSU B 170:SETCOLOR 0,INT(RND(0)*14)+1,INT(RN D(0)*9)+4:NEXT I 220 ? "}":END 225 REM TYPE DATA AS GIVEN IN REM STATEM ENTS AFTER EACH LINE. DO NOT TYPE COMMAS BETWEEN SYMBOLS. 230 DATA > :REM CNTRL COMMA,CNTRL X,> ,CNTRL X,CNTRL COMMA 240 DATA |$T$ :REM SHIFT =,SHIFT 4,T,SHI FT 4,CNTRL COMMA 250 DATA VZ~B :REM INVERSE V,Z,ESCAPE CN TRL BACK S,B,CNTRL COMMA 260 DATA VZ~ :REM INVERSE V,Z,ESCAPE CN TRL BACK S,ESCAPE CNTRL >,CNTRL COMMA 270 DATA |$T :REM SHIFT =,SHIFT 4,T,INV ERSE CNTRL Y,CNTRL COMMA 280 DATA > :REM CNTRL COMMA,CNTRL X,> ,ESCAPE CNTRL >,CNTRL COMMA
CREATIVE COMPUTING VOL. 9, NO. 9 / SEPTEMBER 1983 / PAGE 278
Well summer is almost over, and though I well know how quickly summers tend to pass, I’m beginning to get worried. Each succeeding summer seems half as long as the summer preceding it. And it is small solace to consider that at a halving rate summer will never disappear entirely (remember that paradox from school days)? I’m afraid that by the time it feels like only a week or so between April and October, my morale will be severely eroded.
Enough. I have a lot to say this month and not much space in which to say it. Indulge me if the segues are a bit rough this time around, and the tone more one of a stream of consciousness. I have too many varied topics to tie together, and no device to smooth things over. So you are warned; on to business.
If you have not yet seen the Atari sidebar in the CES coverage up ahead in this issue, place a bookmark here and please go check it out. You are excused. It is simply the nicest news from Atari since its introduction of the 400 and 800 machines in 1979. Atari is not merely in the micro business to stay, or even a mere tough comeback competitor. To use the colloquial, Atari is positioning itself to “blow away” the rest of the field if it does things right. Doing things right in this case consists of getting the products to market fast and keeping the products to market fast and keeping prices down. Ignore what you read in The Wall Street Journal and listen to me: Atari computers will yet wrest a major share of the consumer computer market.
What about the Coleco Adam? Well, it is a nice machine. But I’m wondering just how real it is at this point. And I am concerned that this “integration” forces me into buying a printer whether I want to or not. think about it. What machines give the Adam a real run for the money? Only Atari.
Of course Atari could have staked out the field two years ago. There has been a dangerous delay. It has not been fatal—just nearly fatal. Now Atari computers are here for keeps.
The most obvious symbolic evidence of this at the present time is a famous person: Alan Alda. He will be helping Atari sell computers for the next five years. And they couldn’t have picked a better, or nicer guy.
When Mr. Alda was first unveiled at an Atari CES party in Chicago, excitement ran very high. The man fairly exudes intelligence, sensitivity, and charm. Even if he hadn’t opened his mouth, the crowd would have loved him. And when he did open his mouth, the crowd learned of his sincere interest in the power of the home computer. He spoke of its growing popularity as an entertainment medium. He spoke of its growing power as an educational tool. And while he admitted that he was not any sort of expert on microcomputers, he voiced a commitment to learn, and with a smile, invited the world to learn along with him.
He will be learning, by the way, on Atari computers. Why? For the money? “Because Atari computers are the best,” that’s why. Who can argue with that?
You get the feeling that this is a man who will be an alert and active spokes-person as opposed to a celebrity for sale. You get the feeling that this is a man who will not be selling pudding on TV anytime soon.
How can I back this up? Well take the question he was asked right at the podium that night in Chicago, his first night as Atari user number one. How, he was asked, did he feel about the fact that Atari, in its corporate wisdom, did not credit its software authors? He paused. His poise crackled for 0.02 nanoseconds. He smiled. “Well,” he said, “I guess they are entertainers just like I am. They probably should get credit for that. My first suggestion, then, to Atari is that they think about ways to give individual credit to those who deserve it.” Tumultuous and sustained applause. This man is my kind of spokesperson.
There is further evidence that Atari has gotten its act together. Take, for example, the merger of the old Consumer Electronics Division, which used to handle the dedicated home video games, and the old Home Computer Division, which was the ostracized and unprofitable division that just happened to market the best consumer microcomputers in the world. How utterly reasonable. Now they can quit competing with each other and start competing with the competition.
Let’s talk about games for a minute. I have been hard in past columns on the Atari 5200, the supposed “Supergame” successor to the VCS. It is widely known that the 5200 is an Atari computer in drag, with the compatibility built out. If Atari had introduced a computer-compatible supergame last year, ColecoVision would not have such a large consumer base now.
Anyway. Back when I was soliciting suggestions for improvements on the now-defunct model 1200, a few people said “let it run 5200 games.” I didn’t report the suggestion at the time, and I’ll tell you why. In Sunnyvale I had just seen the then-new Kangaroo for the 5200, and been shocked at its low quality. Atari software had up until that time been synonymous in my mind with top quality. Kangaroo made the 5200 look like a VCS in a slick box. I couldn’t believe they had accepted it. It was appalling. Why shoot for compatibility with that thing, I reasoned? Forget about it.
Since that time, I admit that some very nice games have come out for the 5200. The versions of Centipede and Qix for the 5200 are much snazzier than the same Atari computer carts. I still strongly object to the pot controllers and triggers on the 5200 machine, which are incredibly slow and have stick boots that wear out in weeks. And why buy one if you already have an Atari computer? Such a duplication of machinery!
So what is the solution? Well, some hackers seem to think the answer is dumping and customizing the front end of 5200 cartridge programs to run as disks on Atari computers. Atari, are you listening? Bet that rankles. There is an easy answer, though.
It is time to develop a games expansion box, which allows 5200 carts to be played on the new computers. Compatibility, fellas. that word you learned recently. Think of the time, manpower, and money you could save by making the dedicated game machines and computers cartridge-compatible—even at this late date. In Valspeak: Like wow man. What a concept.
To wrap up this mini-games section of the Outpost, some not-so-mini tid-bits:
* One thing that sort of shook me at the CES was the sight of Apple, TI, IBM, TRS-80, and Commodore software from Atari. I guess it was provincialism on my part that made me wince so, and I later convinced myself it was okay. The stuff looked pretty good, and that is the important thing—quality. No more 5200 Kangaroos, please, for anyone’s machine. And it certainly makes sense for Atari to get full mileage out of the titles it acquires, rather than letting other companies get the jump.
Besides, software is just like records, and Warner Communications already knows how to sell those. It’s a natural—selling what you are most comfortable selling.
* Nolan Bushnell is back on the Atari payroll. Everyone looked to Nolan to utterly waste Atari Coin-op come October, when his restraint contract expires. Atari must have been scared of a possible grudge too, since it spared no expense to buy the rights to Nolan’s new and as yet unseen Pizza-Time coin-op video games. The deal came as the kicker to the settlement of some longstanding legal hassles between Bushnell and Atari, the company he started in his garage. It really was something of a surprise, even to supposed “insiders.” If trickle-down applies, Nolan’s new contributions will probably stand to benefit the Atari computer owner somewhere down the line. Though it may be quite a way down the line.
* Atari has acquired all home rights to Nintendo’s Mario Brothers arcade game. This is the latest coin-op addiction among associate editors Linzmayer, Arrants, and Anderson, and boy won’t our change pockets be glad when a home version becomes available. Nintendo had a Mario Brothers game on free play at the CES and Owen and I were lucky to have seen anything else during the course of the show. The game is terrific.
Of course, it depends on the highest quality graphics and sound for its appeal. The Atari computer is capable of providing same, but only in the hands of a competent programmer. Let us pray.
* I saw the upcoming version of Joust at the show, which was the most recent editors’ craze before the crushing on-slaught of Mario Brothers, and am happy to report that it looks and plays quite well. One can only hope that high standards of quality will continue to be upheld. Any other behavior can only constitute suicide, with Coleco breathing down Atari’s neck.
And now for something completely different.
I had the opportunity last week to speak at a meeting of the Jersey Atari Computer Group, most commonly known as JAGG. They meet at Bell Labs in Murray Hill, NJ, and have got to be among the largest Atari user’s groups on the East Coast. I attended a meeting on a hot, sunny summer’s Saturday, and was amazed to see a turnout of over 400 people.
The group is extremely fortunate to have the use of Bell’s Murray Hill auditorium, complete with sound system, overhead projectors, and projection TV. The club officers are getting a bit concerned, however, as attendance is climbing to a point where it will soon outgrow even the Bell facility.
It nevertheless warmed my heart to sit in the company of so many other Atari computer enthusiasts. Art Leyenberger demonstrated some Atari games. Art, who edits the fine JACG newsletter, has contributed some Atari reviews to this issue, and is a reviewer you will be seeing more of in future pages of Creative. Dick Kushner, president of the group, reported on his visit to CES, and the new Atari product line.
Significantly, Atari paid for Dick and other user’s group presidents to attend the CES—recognizing the importance of user group support in the introduction of its new products. I was also impressed that a video crew from Atari was taping the meeting I attended.
In my own impromptu remarks, I tried to underscore the importance of healthy and active user’s groups in the future of Atari computers. It has taken Atari a while to realize that user’s group support is more than just professional public relations or the APX program. It now knows that its user’s groups are probably the best, and only real friends it has. Let’s hope it stays that way.
The JACG now has a 24-hour bulletin board; the number is (201) 549-7591. Give them a call if you like. Or write them care of Dick Kushner at 58 Dewey Ave., High Bridge, NJ 08829.
And you other user’s groups, keep up the good work. Remember, it is the informed user that can best keep Atari on the right track, now that it has found the track.
What with all the new product announcements from Atari, it is easy to forget our old buddies, the third-party developers. They, it should be duly noted, have developed much of the hardware that Atari will market under its own name. The remote control joysticks, new light pen, CP/M module, graphics tablet, and other new products were developed by independent outside concerns, then sold or licensed for use by Atari.
There are new products directly from third-party sources as well. Here is a report on just a few that caught my eye and my fancy:
* By the time you read this, Atari-compatible disk drives from Rana Systems should be on the shelves. A double density model with 180K of storage will be available, which in single density mode will be completely compatible with the current format.
The unit features an LED display (see photo) which indicates drive number, density setting, and error status. It will be priced under $500. For more information contact Rana Systems, 20620 South Leapwood Ave., Carson, CA 90746. (213)538-2353.
* Microbits Peripheral Products is producing a $100 parallel printer interface. This Centronics parallel interface plugs into controller jack 3 on 400 and 800 machines. It also includes a replacement chip to be installed on the operating system board.
The company has also announced a direct-connect modem that attaches to controller jack 4 for $200 and includes smart terminal software and cabling.
If you wish to save money, are having trouble finding an 850 module (a friend from Canada reports that they are over $250 there, if you can find one), or just don’t like the idea of buying one, these products from Microbits can get you around the need for an 850. For more information, contact Microbits Peripheral Products, 434 West First St., Albany, OR 97321. (503)967-9075.
* The most interesting third-party peripheral at the summer CES was the Oscar Bar Code Reader from Databar Corporation. This low-cost optical scanner will interface to the Atari computer, allowing the user to enter programs by scanning zebra-stripe code similar to that appearing on our front cover.
I have been interested in the use of bar code with home computers for some time, and foresee a day when magazines such as ours will include bar-coded listings. Bar code is the only print medium with anything approaching a respectable baud rate.
The Oscar unit will retail for $79.95. Databar intends to produce a monthly magazine of bar coded programs, available by subscription. Databar Corporation, 10202 Crosstown Circle, Eden Prairie, MN 55344. (612)994-5700.
Another speaker at last week’s JACG meeting was Ernie Rice, of ERedit fame. He now has three other Atari packages, DiskFix, Dial, and a disassembler. But it is ERedit that really takes the prize. Try finding another disk-based “archiving editor,” that allows you to restore killed files. Ernie’s utilities are the finest I have seen for the Atari.
Well. I mentioned to Ernie a while back that a short program line to render code utterly unlistable had appeared in the February 1983 Outpost. He found that to be a challenge, and from the start said the method could be cracked. Then I got a few letters from unfortunate souls who had made their programs unlistable, only to realize they had no listable versions left for improvement or modification. They asked how to undo the process. I asked Ernie to help.
He came through. Listing 1 shows the initial modification, to be appended to a program as the last line of code. To make a program into a “RUN only file,” add the line, then goto it in the direct mode. Listing 2 is Ernie’s method for undoing the process. He sure knows his Atari OS.
Good work, Ernie. He can be reached, by the way, at EHR3, 174 Summit Ave., Summit, NJ 07901. (201)277-6785.
I got a nice suggestion from reader David Stambaugh, of Washington, IL, on how to make tedious entry of data statements a bit easier if you have a speech synthesizer—get it to read the numbers back to you. If you have SAM from Don’t Ask Software, the program in Listing 3 is for you. Using Reciter on the SAM disk, the program reads your numerical data back to you as single digits.
If there is a problem differentiating the breaks between numbers, increase the delay loop in line 2. This program will also attempt to read clusters of characters as words. To read single alphabetic characters, try the program in Listing 4. Remember that SAM cannot pronounce graphics characters, or differentiate between upper- and lower-case or inverse video. It is most helpful for checking strings of numeric data.
If you don’t have a copy of SAM, get one. I reviewed it in December of 1982, and at $60, called it “one of the best buys available for the Atari computer.” For more information, contact Don’t Ask Software, 2265 Westwood Blvd., Suite B-150, Los Angeles, CA 90064.
In the May 1983 Outpost, I stated that I knew of no way to silence the inboard Atari speaker through software. In the June column, I outlined a means of installing a removable hard switch in the Atari to get around the problem.
Then along came Steven Otto of Madison, NJ. He provided a program that disables the bell and click under most normal conditions. Another impossibility realized. Good job, Steve.
The program in Listing 5 runs as an AUTORUN.SYS file. It will run on any Atari machine, but blows up if the Disk Utilities Package is loaded.
The program is reset-proof and reinitializes whenever SYSTEM RESET is pressed. It uses the memory from $1D00 through $1F7F, resetting the memlo pointer to five bytes above program space.
Table 1 shows the most powerful aspect of the program—that the NOCLICK routine can be enabled or disabled from the screen editor or keyboard handler with just a couple of pokes. You can also enable or disable the bell routine, but you cannot disable the bell while either of the other varieties of clicking is enabled.
Perhaps it is still not a means of silencing the Atari Word Processor or the Wizard and the Princess through software, but it is a working software silencing method.
And so until next time, farewell from the Outpost. Talk to you again soon.
CREATIVE COMPUTING VOL. 9, NO. 10 / OCTOBER 1983 / PAGE 292
Hey there folks, and welcome to the Outpost. The talk here concerns Atari, and we’re pretty serious about the hobby. We have no qualms with the statement that the Atari microcomputer is absolutely the best machine in its class. So rather than spend a lot of time welcoming you here or beating around the bush, let’s get right down to business.
First off, you’ll notice that the machine at the top of our masthead has been changed. It is no longer our trusty Atari 800, but the flagship of the brand new Atari line, the 1450 XLD.
You know it has never escaped us that many of the real contributions to the Outpost, and to all Atari-specific publications everywhere, come from you, the “everyday” Atari user. Your interest, individually and through user’s groups, sustains columns like this one. A good example will follow shortly.
In that spirit it is our pleasure to reissue a call for manuscripts. We have begun work on The Creative Atari II, and are actively soliciting new material to appear within its pages. If you have an application for your Atari that other Atari owners should know about, for goodness sake, send it in. Make sure it is typed and double-spaced. If you are including a program listing, send a cassette or disk (disks preferred) along too.
Just imagine: to be immortalized within the pages of The Creative Atari II. What glory! What privilege! And we’ll pay you, too.
And if your application is truly outstanding, you might see it right here in the Outpost as well.
So get to work. Our address is 39 East Hanover Ave., Morris Plains, NJ 07950. Send your material to The Creative Atari, and if you wish it returned, enclose a correctly sized, self-addressed, stamped envelope.
The Creative Atari Vol. I, by the way, has been on the stands for a few months now. Along with all the Atari material that has appeared in Creative Computing up through March 1983, it includes new material, never seen before. It is definitely worth checking out.
I Speak Basic to My Atari, by Aubrey Jones, Jr. 229 pp., teacher’s edition, 244 pp., Hayden Books, Rochelle Park, N.J. A computer literacy course focusing on the Atari computer. Good Basic tutorial for kids seventh grade and above, including sections on the disk drive and how to do simple graphics. Chock full of exercises and quizzes. I can see this text becoming a favorite at Atari computer camps. The teacher’s manual provides many valuable ideas and is accompanied by exam masters that you can reproduce.
Programming Your Atari Computer, by Mark Thompson, 272 pp., TAB Books, Blue Ridge Summit, PA 17214. One of those tailored how-to type manuals like Chilton’s auto guides, using generalized information for early chapters, then moving to machine-specific information. Doesn’t get to the meaty Atari information until chapter six. Still, you might want to have it as a back-up reference. And in all fairness, early chapters on binary numbers, computing principles, and Boolean algebra are worthwhile, though not Atari-specific.
User’s Handbook to the Atari 400/800 Computers, by Jeffrey Weber and Stephen Szczecinski. 319 pp., Weber Systems Inc., 8437 Mayfield Rd., Cleveland, OH 44026. Takes you all the way from installation of the machine through graphics and sound. Nice coverage on some of the ins and outs of Atari Basic. Includes chapters detailing use of the 410 cassette recorder, 810 disk drive, and first generation Atari printers. Some worthwhile programs. Numerous appendices.
For more Atari reference sources, see the May 1983 and December 1982 Outpost columns.
While we are on the topic of books, allow me to redress a faux pas (the first of two to be set right this month). In the August column, I cited the Alfred book Understanding Atari Graphics without crediting its author, Michael Boom. Whoops—sorry, Michael. Merely an oversight on my part. It is a fine effort.
Before we switch topics—a periodical index for the Atari computer has been published. Called Soft finder 1.1, it comprises a two-year composite index of Atari-related articles in Creative Computing, Analog, Antic, Compute, and the Eugene ORACE Newsletter. Plans are to release new issues quarterly. Cost is $6 an issue. For more information, contact Valley Soft, 2660 S.W. DeArmond, Corvallis, OR 97333.
Also, note that the correct address for ordering back issues of Creative is the New Jersey address listed above, not Boulder, CO, as stated in Soft Finder.
We shall very shortly see the first products resulting from the formation of Ataritel. If you have not heard that name before, suffice it to say that it shall constitute Atari’s foray into the telecommunications market. Atari hopes to ease the way for the consumer by marketing inexpensive and easy-to-use telecommunications products.
For a quite a while now Atari has refused to disclose a thing about any Ataritel products on the drawing board. One can only hope that the products will be something more than an autodial phone or modem unit in the shape of E.T.
What kinds of products might they truly offer?
Well. Imagine for a moment a machine along the following line. When the phone rings, it automatically picks up (it has a telephone built-in). It determines whether the incoming call is from a human or another computer, by listening for a carrier tone. If the call is from a human, the Votrax chip within the unit asks the caller to hold on, while it summons you. If you are not available, it says so, and offers to store a message. If the call is from another computer (requires a telecommunications connection), the unit automatically provides its own carrier, and hooks to its terminal program (it has a computer built-in, too).
This same computer can place telecommunications calls for you at pre-selected times you specify. Hooked to your home television, it provides interactive videotex. Through this system you can access an almost unlimited quantity of information. It can, of course, dial into Compuserve, The Source, campus mainframes, or individual bulleting board services. It will autodial all of your normal voice connection calls as well.
It may also be tied into your home security system, monitoring the place, and automatically dialing the police if it finds anything too strange going on.
Is something like this superphone one of the products upcoming from Ataritel? Only time will tell.
Right now the Atari 400 is just about the best buy in microcomputers: I saw a price of $70 (after rebate) the other day. Of course the reason prices are this low now is to make room for the new models.
The Atari 400 and 800 are now a part of history. But they are a memorable part. So long fellas; we’ll remember you. I’m sure that tens of thousands of you will still be computing ten years from now. If you still don’t have an Atari, and you have $70, and you can find one, my advice is to shell out for an Atari 400 without delay. How can you resist? And you may get the very last one!
Third-Party Thingies
Have you heard about XBasic, from Superware? It is a 2K machine language program that adds several interesting features to Atari Basic. Among them is the capability to construct string arrays, just as in Microsoft Basic. Using a USR call you may define up to eight simulatenous string arrays. Other commands simplify sound and graphics commands, along with a few other neat capabilities.
As opposed to some other enhancements to Atari Basic, Superware allows XBasic to be freely included in user-developed software for sale, as long as the XBasic program source code is inserted along with a credit screen. For more information contact Superware, 2028 Kingshouse Rd., Silver spring, MD 20904.
Adventure International has released a package called Ultra Disassembler, which makes a good go at reconstructing Atari source code from machine language. Not only can you read code from memory, but you can disassemble DOS files, even specific disk sectors, without regard to pointers or file structure. Disassembled code can be reasssembled with any Atari assembler.
For more information contact Adventure International, Box 3435, Longwood, FL 32750.
If you have a CP/M system at home as well as an Atari, you may be interested in the Critical Connection, a hardware/software interface that allows your Atari to use the keyboard, drives, and printer of any CP/M computer with a 19,200 baud serial port. The original interface product has been improved to make installation to popular CP/M machines more simple. For information contact USS Enterprises, 6708 Landerwood Lane, San Jose, CA 95120.
Looking for a 3-D scrolling game with some real staying power? Try Blue Max from Synapse on for size. In it you are a World War I flying ace on a mission deep in enemy territory. The graphics are superlative, and the game is very hard to master.
As you fly northeast, the terrain scrolls by below you. Your job is to knock out selected bridges, ammo dumps, and enemy enclaves. You will be under constant attack, however, by enemy planes and ac-ac guns.
It takes a while to learn to pilot your biplane, and you will get used to crashing really quickly. You only get one plane per game, so stay near the START key.
After a few hours of practice, you may begin to get the hang of steering, bombing, strafing, refueling, and dodging enemy fire. If arcade-style shoot-’em-ups are your thing, Blue Max is a must.
With products like Blue Max, Synapse remains among the pre-eminent action game houses for the Atari. Their latest release, Dimension X, features an absolutely mind-boggling effect called “altered perspective scrolling.” As your craft moves low over surface terrain, the ground scrolls by in perspective. It is simply the most impressive three-dimensional graphics effect since Star Raiders.
Because it was demonstrated for some time before release at CES and other shows, some critics have labeled it “an effect in search of a game,” and admittedly the action itself is very reminiscent of Raiders. But the effect is smashing. If anybody works up a snippet of code, in assembly or Basic, that approximates the scrolling effect, we will print it here.
There I go about graphics again—I had better watch myself. You can’t be a serious educator and be simultaneously serious about quality microcomputer graphics, you know. Or so some people might have you think. Take a quick look at the I/O section of this issue for an example. The charges upset me.
Regular readers of this column will know that I abhore “fluffware” as much as the next person. It’s just that I abhore swillware more. That is all I meant to say in the July column (and that is all I did say). I did not indict software minus graphics—some of my favorite programs are all text. I did not try to present Trip Hawkins as a role-model for all educational software makers—just as an original and pace-setting figure in the industry.
Faux Pas Numero Deux
Told you I’d be apologizing again. A.J. Sekel of Atari called the other day to set me straight on a claim I had made in the August Outpost and in the latest installment of the Buyer’s Guide. My statement was that the new crop of Atari computers had returned to the old operating system of the 400 and 800. What I should have said was that they returned to a compatible operating system with the old machines.
According to Mr. Sekel, the new machines incorporate a redesign of the model 1200 OS, which was originally incompatible with much 400 and 800 software. Such is no longer the case. Certainly I did not mean to imply that the new 64K machines employed a 48K operating system: that would be quite tough. The wording was wrong. My booboo. Sorry, guys. When you’re right, you’re right, and I’ll say so.
Stonewall Bartlett
Of course when you’re wrong, you’re wrong. This one made me chuckle. James Rose, of Long Beach, CA, is one of the faithful Atari fans that took mighty pen in hand in the letter-writing campaign to help kill the 1200. He got a delayed but interesting response, and took the time to share it with me. It is signed by a Mr. William Bartlett, Manager, Product Support. In part it read:
“The article you refer to from Creative Computing was misleading in several ways. The 1200XL will not be redesigned. There will not be a return to the 400/800 operating system. There will not be an expansion chassis feature available. The 1200 will continue to be sold in its original configuration.”
Ooh, shame shame, Mr. Bartlett. I may have made a misstatement, but you are the one who was misleading. Don’t beleive a work of it, Mr. Rose. Fact is if you and other Atari loyalists had not made the effort, there would have been no return to compatibility or expansion capability in the new machines, and Mr. Bartlett’s statement would be true. The Atari 1200 would not have been discontinued. And Atari computers would probably have disappeared entirely by now.
I had a nice talk with Charles Zubieta yesterday, who is a 16-year-old Atari tyro from La Jolla, CA. Using his 16K 400 with cassette drive, he has managed to turn out two really nice scrolling demos. Nice enough to give him the guest tutorial spot this month.
Ever since the days when the legendary George Blank was manning the Outpost, the technique of storing graphics data in strings has been discussed. George showed how players could be saved as strings, and then changed on the fly. The method is simple and fast.
Well young Mr Zubieta has taken things a bit further, and gotten some good results in just a few program lines (and that’s the way I like to see, and type, listings).
The best thing I can do at this point is turn over the proceedings and let Charles take it from here. If you have questions, please correspond directly with him. He can be reached at 6477 Caminito Baltusral, La Jolla, CA 92037.
Take it away, Charles.
Being a programmer can be a very frustrating experience, especially if you only know Basic. More than once I have started a game program, then had to abandon it simply because it was too slow. I have tried all the tricks. Very few of them had a significant effect on the speed of my program—until now.
One dull evening I was experimenting with player missile graphics using strings. By making the operating system treat the player missile area as a string, it is possible to achieve high speed animation and vertical movement.
Taking it further, instead of making the operating system think the player missile area was a string, I made it think that the screen RAM was a string. Little did I know what I had stumbled upon. I had gained the ability to control every single byte of screen memory at machine language speed, without all the hassle.
As I continued to experiment, some possibilities began to come to mind. By the time the sun was coming up, I had tested most of them. Here is a list of some of the possibilities:
I couldn’t believe it. I was able to do all these things in Basic, without any machine language subroutines. This list by no means exhausts the possibilities of the technique. I am sure as you get used to it you will think up more incredible things that can be done.
Now let’s get down to the nitty gritty of precisely how all this is done. Before I go too far, I think I should warn you that when working with text, the ATASCII values of the characters in your string will be converted to the internal character set. This is a small problem that is easily overcome. As a matter of fact, this little problem can even be turned into a plus when used the right way, but I’ll save that for another article.
The first thing you have to do is decide what you want to effect and how much string space you are willing to sacrifice. With this done you can design your string.
Just to simplify things, from here on the string used as an example will be A$. The first thing you want to do is make sure that A$ is the first variable you dimension in your program. This is very important. With this done, the variable table must be located. The pointers for the variable table are memory locations 134 and 135. So VTABLE = PEEK(134) + 256*PEEK(135). None of this does us any good unless we know where to put A$.
Since we want A$ to occupy screen memory, we need to know exactly where the screen memory is. Once again we need to use pointers. Memory locations 88 and 89 are the screen memory pointers. Therefore SCREENRAM = PEEK(88) + 256*PEEK(89). With this done, we need to figure out the offset of the screen RAM in relation to the present address of A$. This simply means how many bytes difference there is between the two memory locations. The offset formula is OFFSET = SCREENRAM-ADR(A$).
Now that we know the offset and we know where the variable table is. we must alter that variable table so it will move A$. The pointers that locate A$ are at locations VTABLE + 2 and VTABLE + 3. You will notice that I don’t give you specific locations because they vary depending upon the size of your program. We will call these locations V2 and V3. First we assign V3 with the formula V3-INT(OFFSET/256). Then we assign V2 with the formula V2-OFFSET -256*V3. Now we have the variables to assign our pointers, so all that is left is to POKE VTABLE+2,V2 and POKE VTABLE+3,V3.
Abracadabra, your screen is now a string or your string is now a screen. However you want to look at it, it means speed. To make things simple, here is a list of the things to do. As long as you follow them in the exact order you shouldn’t have any problems.
With all these steps completed, all you need to do is assign A$. The purpose of the list is to provide a reference while you are programming.
You are probably thinking that all of this is fine and dandy, but how to use it to do all those wonderful tricks promised? Well, to those experienced in using the Atari string operands the answers should be obvious. By adding and subtracting the right number of bytes, vertical scrolling can be achieved. For example, by adding and subtracting 40 bytes to A$ in graphic mode you can have vertical scrolling. Making a high speed screen saver and multiple playfields is pretty easy. All you need to do is create a large string (not A$) and assign portions of it to A$. By changing the part of the large string assigned to A$, you can design just about anything that needs multiple screens.
A good example of this would be a graphic adventure. If you assign only parts of A$ with several different strings, you can have mixed scrolling. Again this can come in very handy, especially for games. A good example of multiple scrolling would be the arcade game Frogger. Animation is easily done by creating a large string and then having A$ cycle through it to create the illusion of movement. Since this is all done at machine language speed, there is no need to worry about how many objects you want to animate. The only thing you should be concerned about is memory.
You may now be wondering what advantage this technique has over conventional page flipping and scrolling on the Atari. First of all it allows you to change as little or as much of the screen RAM as you want. There is no reason you should have to start your string with the first byte of screen memory: If you want to, you can start your string in the middle of the screen.
The second advantage is that it is totally compatible with the screen editor. This means that you can still print on the screen in Basic just as you did before. This is not possible when the location of screen RAM is changed.
The third and most significant advantage is speed. With this technique you can alter all or part of the screen at machine language speed.
So that is how it is done. It is really very easy once you get the hang of it. If you still are a little confused, then study the sample programs I have provided.
When you combine this technique with a redefined character set, player missile graphics, a modified display list, and a good imagination, you will be able to write a programs that you didn’t think were possible.
After some experimenting, you will notice that like anything else, the technique has some limitations. For one thing, it is only possible to have coarse scrolling. Second, the internal character set is a problem. Don’t despair: There is a way around both of these problems. As I stated earlier, the internal character set may be a blessing in disguise.
* * *
And so that is about the size of it. I am hoping we shall see more on the topic from Charles soon. As he says, the possibilities are interesting. We shall follow up, rest assured.
This is the one-year anniversary of my manning the Outpost—column 12. To celebrate, I shall continue to edit the column, but will take a bit of a vacation from writing it. Next month. Art Leyenberger will discuss the ramifications of saving graphics files from Paint and MicroPainter to Basic, and pick up the philosophical discussions with some viewpoints of his own.
Until then, keep on Atari-ing. See you next month.
CREATIVE COMPUTING VOL. 9, NO. 11 / NOVEMBER 1983 / PAGE 296
I am honored to be sitting in the same editorial seat that has been occupied by the likes of David and Sandy Small and John Anderson. Over the last two years this column has brought you (and me) an abundance of information. The charter was to be an oasis of Atari-related information, which at times, seemed to wander away from the easily obtained “tips and techniques” type of material into the more philosophical and esoteric. However, I believe these journeys have been worthwhile and in keeping with the concept and spirit of an outpost.
I plan to continue in the same tradition. My goal is to present at least one hardware and one software review each month, and to use this column as a clearinghouse for ideas, news and trends relating to the Atari computer. I hope that those of you who are old-timers will benefit from my experiences and continue to think of this column as yours. To the newcomers to the world of Atari computing, welcome aboard and be assured that I will not leave you behind.
Many people have asked me which computer to buy. The next few questions follow quite logically: how much memory do I need, what are the best programs, and the inevitable: should I wait until the prices come down some more.
When asked why they want to buy a computer, some respond with specific applications or a plan of action (like involving the whole family in computing, or automating their coin collection information). A majority of people either don’t know what they would do with a computer or have general ideas of “learning about computers.”
The point is, if you want to get involved with computing, the time to buy a computer is now. If you wait six months, you may still not buy a computer. If you do, you will be six months behind in the learning process, when you could have been a veteran by now. Atari computers are excellent entry level machines that you will not outgrow as you progress from being a neophyte to an advanced user. The learning process continues. Atari computing remains challenging and fun.
Recently, I looked back at a 1976 issue of Creative Computing. On the back cover was an advertisement for the Altair 680 computer from MITS. For only $420 you could have a 1K (RAM) machine with RS-232 interface and provision for 1K ROM. There were no word processors available, no Basic language and definitely no Pac-Man. The darn thing was programmed in assembler from toggle switches on the front panel. I’ll bet people were asking each other back then, “should I buy one now, or wait until the price drops a little?”
Computers are funny things. They have a strange habit of being used for all kinds of applications once they find a home. Typically, the owner has no idea about real uses prior to getting a computer. I strongly believe that it is fine to want to “get into computing.” Continue to read Creative. Read some books and talk to people. Then go out and buy a computer and start to use it.
Attention Teachers
More and more, computers are becoming a regular part of the educational scene. Computers are showing up in the classroom faster than New Jersey mosquitos at a Creative Computing staff picnic. One of the problems that teachers face is the continuing struggle to choose good educational software from the vast assortment of generally mediocre courseware. Rather than have educators re-invent the wheel by evaluating the same Atari software in every school in the land, a new group called the Atari Teachers’ Network is forming. It will provide a medium of communication between Atari users and the educational community. The network is headed by Nancy Austin Schuller and Curt Springstead.
The low entry price and superior sound and graphics of the Atari make it promising for use in educational settings. It is in this spirit that the group has formed and committed to sharing Atari-related information—and acting as an educational resource. The group publishes a quarterly newsletter containing reports, questions and answers, an exchange of software written by teachers, and discussions about computers in the classroom, and Atari in particular.
The newsletter also contains information from insiders at Atari on the company’s current projects. For more information on the network and the newsletter, contact the Atari Teachers’ Network, P.O. Box 1176, Orange, NJ 07051. A one year membership is $4.
Add Music to Your Basic Programs
How many times have you wished that you could add a little music to your Basic programs? Maybe a little Bach while the title screen to your latest adventure game is being displayed. Or perhaps the theme from Star Trek melodically enveloping you as the Enterprise warps out of orbit. Well, now there is a utility, programmed by Jerry White, that allows you to do all of this and much more. The Music Box from Program Design Inc. (PDI) allows you to play Atari Music Composer files (after conversion) during the vertical blank interrupt routine from Basic.
The music runs independently of Basic. You can display graphics on the screen or do calculations while the tune continues. You can even stop the program, list it and do some editing with the music going. However, once any I/O operation is performed, the music is interrupted.
There are actually five separate Basic programs and a menu driver that make up The Music Box utility. The CONVERT program converts Atari Music Composer (AMC) data files into Music Box (MB) files that can be used with the COLORGAN and PLAYTEST programs. This program runs slowly but is not objectionable. After an AMC file has been converted to MB format, the PLAYTEST program is used to play it using a machine language routine.
Normally the program prompts for the program to be played, loads it from disk and begins playing it immediately. However, by deleting a section of code (lines 350 to 500) your own Basic program can be entered between lines 350 and 7998. Even after the removal of these lines, there is still some prompting for a file name from the program. Table 1 contains a list of the overhead code that should be removed for incorporating the PLAYTEST program with your own program.
Another program, COLORGAN, contains a machine language routine that interprets the frequency and volume of MB data files and displays a psychedelic, graphics mode 19 image on the screen. These colorful, pulsating images will bring back memories for all who survived the late sixties.
The MUSICBOX program is designed to help you understand how to enter sheet music into Music Composer. It uses player/missile graphics to display notes, sharps, flats, and the treble and bass clefs. The joystick is used to manipulate the notes on the screen, and as the display changes, the appropriate sound is heard. The pitch number and Music Composer interpretation of each note is displayed at the bottom of the screen.
The final program, TRANSLAT, is used to dump AMC data files to either the screen or a printer. This is handy for debugging your song files and making a permanent record of them.
As an example of combining sound and graphics, I used the flag program from the Atari Basic Reference Manual (Appendix H-9) and inserted it within my stripped down MUSICBOX program. I then included a converted Music Composer file of the Stars and Stripes Forever on the same disk. When the program is run, the Stars and Stripes plays as the American Flag is drawn on the screen. Let it never be said that the Atari computer is not patriotic.
The Music Box is a very useful music utility if you wish to play Atari Music Composer files from a Basic program. The manual is well written and the disk contains eleven converted Music Composer files. It requires 32K RAM and costs $29.95.
Good, Clean Fun
Detractors of video games say that among other things, these electronic menaces are responsible for the break up of the American family. I would have to agree to some extent with this comment. Consider the facts. Most video games are of the shoot-’em-up variety and are generally played by one person. I mean, how much fun can people over 30 really have with twitch games, anyway?
When I was growing up, I used to enjoy family time when we would all play such games as Monopoly, Scrabble, and Tripoli. In fact, I still enjoy an occasional game of Scrabble as long as professional Scrabble players like my wife’s mother, Phyllis, are not around. In any case, there are very few games for the Atari computer that the whole family can enjoy. Matchboxes from Broderbund is different. Programmed by Al Cheser, it is not only fun for the whole family but is also wholesome and well done.
Matchboxes is really several variations of the old standby game Concentration. In this game, a 6 × 6 matrix is displayed on the screen and the object is to pick two squares that match. Hiding behind each square is an animated monster, shape, or object that has its own unique tune. The tunes are all familiar—Clementine, Pop Goes the Weasel, I’ve Been Working on the Railroad—and are usually associated with the particular graphic.
In the simplest game, you play against an opponent or the computer and the player with the most matches at the end of the game is the winner. There are some tricky matches where the object may be the same but in two different colors. Occasionally, wild cards turn up which will match anything.
There are three other variations of the game that can be played either alone or with someone else. One game permits each opponent to select a word which is hidden behind the puzzle. As pictures are matched, parts of the word are exposed, and the first one to guess the word is the winner. Another version of the game has the hidden words spelled backwards. I played this version several times and kept losing until I realized that the words were backwards (next time I will read the instructions first). The final variation has the hidden words scrambled. I am terrible at this particular variation.
Matchboxes is available on disk or cassette, requires 32K, and costs $29.95. This really is a fun game and one that the whole family can enjoy together. There ought to be more such games.
Atari User Groups
Some of you might know me as the editor of the Jersey Atari Computer Group (JACG) Newsletter. I have spoken to others of you and have accessed your bulletin boards. Having been associated with the JACG and its 500 members for over a year, I now realize many things about the world of Atari and specifically the Atari computer user. I can easily say, without fear of being struck by lightning, that Atari users are generally the most energetic, interested, loyal, and diverse group of people I have ever met. If you don’t belong to a user group, call Atari’s toll-free number to find the one nearest you. Then join and participate in computing.
In the past, Atari has been unwilling to realize (or take advantage of) the fact that their users are their best salespeople. The future may bring some changes, but we’ll have to wait and see. My crystal ball is a little cloudy right now. There are over 50,000 members of Atari user groups in the United States alone, and that number is increasing steadily.
I mention this as a prelude to a request that all Atari user groups send me their newsletters. I want to stay in touch with what is really happening in Ataridom and I feel that this is the best way to do it. I also welcome suggestions and comments from users on what type of material you would like to see covered in this column. I cannot answer every letter, but I assure you I will read every one. If you would like a reply, please enclose a self-addressed stamped envelope. Send input to me, in care of Creative Computing, 39 East Hanover Ave., Morris Plains, NJ 07950.
General Purpose Screen Save/Load Utility
Often, when creating graphic screens in Basic it is useful to save the screen for future use. Similarly, when writing a program that requires multiple screens throughout its operation, it would be handy to be able to load graphic screens from disk. Well, Tom Pazel of Dover, NJ has written a couple of very useful utilities to do just that. What’s more, graphics mode 8 (and higher) screens are fully compatible with Datasoft’s Graphic Master program. Let’s take a closer look at Tom’s programs.
Listing 1 is the Load routine. It is really quite simple to use. The following two lines of code must be typed in: 10 DIM FILE$(20):FILE$="D:Anyname.ext" 20 Graphics n
“Anyname.ext” is the name of the disk file that contains the screen image. On line 20, n refers to the graphics mode of the screen image. Next, the Load routine, which has previously been listed to the disk, is merged with the above two lines using the ENTER command. Type RUN, and the screen file is loaded and displayed.
The Save routine (Listing 2) works in a similar way. Your Basic program should not have any line numbers higher than 31999. Also, a line similar to line 10 above should be included somewhere near the top of the program. Then ENTER the Save routine (which has been written previously to the disk in LIST format). “Anyname.ext” is the filespec of what you want to call the save screen.
Now, merely run your program. Your program will draw its pretty picture and, after a slight pause, the disk drive will become active, the screen being saved as a disk file under the name you specified. Be sure that when run, your program currently in RAM will execute the Save routine as the last thing it does. In other words, don’t use line numbers higher than 31999 and avoid lines such as: 300 GOTO 300
Listing 3 is a sample graphics program that can be used to test the Load and Save routines. Notice that line 80 is a no-no when using the Save utility. It must be deleted before running the program.
These utilities work with all 12 Basic graphics modes. What can you do with these utilities? Well I can think of a few uses. Graphics modes 1 and 2 title screens can be saved for future use and loaded as needed. As mentioned before, screens using graphics modes 8 and above can be created, saved, and then brought into a program like Graphics Master to put on the finishing touches. Then, after the screen is once more saved to disk, it is ready for use any Basic program. Thanks Tom, for a fine job on these useful routines.
I hear the music playing in the background, meaning it is time to fold up our tents for this edition of the Outpost. Christmas is not too far away, so next month I will have my Christmas list of Atari products. Both existing products and dream products from my wish list will be mentioned.
Firms Mentioned In This Column
Broderbund Software, Inc.
1938 Fourth St.
San Rafael, CA 94901
(415) 456-6424
Program Design, Inc.
95 East Putnam Ave.
Greenwich, CT 06830
CREATIVE COMPUTING VOL. 9, NO. 12 / DECEMBER 1983 / PAGE 319
Welcome back to the Outpost. It doesn’t seem like too long since we last talked. There is a great deal to cover this month and, since it is the holiday season, I will offer a few gift ideas for your consideration. But first, bear with me while I attempt to clear the air.
Most Atari computer owners already know that their machines are competitive in features and capability with just about any other “home” micro. We know that the Atari is a serious machine disguised in game clothing. There are over ten programming languages (not counting dialects) that may run on an Atari. The sound and graphics are superior to machines costing thousands more. The machines are very friendly: sound and graphics do not require POKE statements; full screen editing makes learning Basic hassle-free; and such features as AUTORUN files and instant Basic syntax error-checking make life easier all around.
The problem is that most non-Atari users are unaware of these facts. When I demonstrate word processing, spreadsheet, database and other application software to the uninitiated, I see their reactions. The most common expression I hear is, “You mean the Atari can do all that? And play games too? Wow!”
Ignorance of the capabilities of the Atari is not limited to consumers. Much of the popular press perpetuates the idea that the Atari can only play games, and should not be considered for much else. I was recently very disappointed to see Consumer Reports, of all publications, perpetuating this myth in their long awaited September 1983 special home computer issue.
In their discussion of the Atari 800 computer, one of the drawbacks mentioned was Atari’s version Basic. They said it is “less desirable than the versions used in most other computers.” No mention was made of the instant syntax checking or the full screen editing capability of the Atari. These two features are a boon to the novice programmer. They speed the learning process and make programming much easier.
Next, the documentation is degraded. Consumers says the Basic manuals are only fair. Fair at what? The Basic manual is a reference manual, not a tutorial. When I teach Atari Basic programming, the first thing I tell my students is to go out and buy the Osborne/McGraw-Hill book, Your Atari Computer by Lon Poole, et. al. This is an excellent Atari reference book—the best. Still, a good text, and probably a good teacher, is required to learn to program.
Finally, Consumers says that the Atari cannot be used as an inexpensive word processor. They mention the disk-based Bank Street Writer which requires a disk drive. Then they say you also have to buy a printer, as if you can do word processing on other computers without a printer. Let’s leave the printer out of it for now. The cartridge-based Atariwriter word processor has been out for six months, is as easy to use as the Bank Street Writer, and allows data to be saved on a cassette recorder. It brings word processing to the masses.
I have always respected the judgment of Consumer Reports. I would not think of taking one small consumer step toward purchasing any product without first consulting them. But the problem here is indicative of a much larger issue. That is, treating computers as appliances or any other consumer product. Sure, the machines are sold as consumer products, but the amount of effort required to operate a computer and use application software is far greater than that required to use a toaster or an automobile.
I can understand how a Consumer Reports staff reviewed might have taken an Atari computer home, much as he would a hair dryer, and used it for a period of time to write a review. And if it was during one of Atari’s misleading advertising campaigns on TV, stressing only game playing, then all the worse.
But Consumers is not the only party at fault. The entire home computer industry is to blame for continuing to sell, support, and advertise computers as either toys or simple-to-use devices. There is no way the sales staff of a chain discount store can understand the machines they sell and provide assistance to a naive consumer.
It is time for the entire industry to grow up. That includes the computer press, the popular press, manufacturers, and retailers. Okay, I will get off the soap box and press on.
In addition to inheriting the Outpost legacy from John Anderson, I have also inherited whatever program bugs and faux pas may have occurred in previous columns. One such as yet unexplained bug appeared in the September 1983 Outpost.
Listing 1 was a modification to a Basic program that will make it a RUN-only program. That is, it will be unlistable by the author or anyone else. Listing 2 was a method to undo the process. Very useful for those forgetful souls who don’t believe in making a backup (listable) copy of their programs. Now we come to the bug. As presented, Listing 1 will make your code unlistable but the routine in Listing 2 will not work. Only when Listing 1 is changed a follows, will it be relistable with the undo routine.
10000 POKE (PEEK(138)+256*PEEK(139)+2,0):SAVE "D:FILENAME":NEW
I have added parentheses around and including the first PEEK instruction. My thanks to Dick Kushner for mentioning this bug. If anyone can explain why the procedure works with the added parentheses and not in the original form, let me know and I will publish the information.
The Atari 400 is all but gone from your dealer’s shelves. In the last few months quite a few have been purchased for less than $100. Many people bought them as second computers. Others bought them, installed a keyboard and a 48K memory card, and had the near equivalent of an Atari 800 computer. The 400 is essentially the same machine under the hood as the 800, save for the video monitor output that the 800 provides.
Now there is a modification you can make to your Atari 400 computer which will give you a monitor output. The mod is called the Xtravideo I and requires no soldering or other special skills to install. The module replaces the CD4050 integrated circuit and provides a composite video signal via a cable terminated in an RCA phono connector.
Installation is straightforward, following the simple instructions provided. The monitor output does not affect the normal RF TV output. The Xtravideo I comes with a lifetime warranty and is available from Hardsell. The cost is $39.95, which is not very much considering the added function you get.
In my review of the Atariwriter word processor in the October 1983 issue of Creative Computing I said, “this may be Atari’s best product in a long time.” I also said that the word processor was one of the best for the Atari computer, but lacked any easy method for passing control codes to a non-Atari printer. I concluded that it was up to Atari to produce the printer drivers that were needed to make the Atariwriter the word processor of choice for the Atari computers.
I am happy to report that Atari has done just that. Printer drivers are now available at a nominal cost to turn Atariwriter into the easiest to use Atari word processor with the best value. The following printers are now supported: Atari 1020 and 1027; C. Itoh Prowriter 8510; Epson MX-80, MX-80 with Graftrax, MX-100, MX-100 with Graftrax, MX-80FT III, MX-100FT III, and FX-80; Gemini 10; and NEC 8023.
These 12 printer driver files are binary load files, and come on the one APX printer driver disk. You use DOS to copy the driver fild for your particular printer onto your Atariwriter text disks as AUTORUN.SYS. Then, when you boot up the Atariwriter cartridge with your disk inserted in the drive, the driver loads into memory and you are all set.
During your word processing session you may use all of the Atariwriter builtin commands directly, without having to worry about compatibility with your printer. On my Epson FX-80 printer, I can use proportional printing and print in double columns directly from Atariwriter. The results are excellent. The NEC and C. Itoh printers also allow proportional printing.
The Atariwriter printer drivers were written by Gary Furr, cost $17, and can be obtained from the Atari Program Exchange as product number APX-20223. Atariwriter and the drivers make this the finest word processor for the Atari computer
The Atari Disk Operating System (DOS) is criticized for being slow in execution and not as feature-laden as possible. These facts are apparent when you try to do something as trivial as making a duplicate copy of a disk. Using the J option of the DOS menu (Duplicate Disk) requires three passes regardless of the amount of data contained on the disk. By the time the destination disk is formatted and the copy complete, over five minutes have elapsed—and your patience has worn thin.
Thanks to a program called SCopy 810, written by Craig Chamberlain, an entire disk may be duplicated in only two passes. Craig has written a sector copying program that will work in as little as 8K of RAM memory. The menu is continuously visible on the screen as are the data that are being copied (see photo).
This program is not intended to copy protected software, and there is no provision for copying or creating bad sectors. However, as an easy method for backing up text or data disks, it can’t be beat. An application that has saved me countless hours is to use the SCopy 810 to format the text disk and duplicate the printer driver for the Letter Perfect word processing program. Rather than sequence through the arduous driver creation utility, I do it once, then use SCopy to duplicate as many text disks as I need. Since SCopy also formats a disk, even more time is saved.
Although the program was originally distributed by user groups under license from Alliance Software, it is now available directly from Alliance Software. The cost is $10 and includes a 17-page user guide and free postage. This is one of the most useful DOS utilities I have ever seen for the Atari computer.
Another useful DOS utility I use, and one that I would recommend to anyone who does a great deal of file manipulation, is DOS-Mod from Eclipse software. DOS-Mod is completely compatible with your existing Atari DOS 2.0S and contains several enhancements.
How would you like to be able to use full screen editing when using DOS, just as you do when using Atari Basic? You got it. How about being able to see more of what you are doing on the screen? No problem. DOS-Mod gives you more than half the screen, since its compressed menu takes up less room. Another aid to let you know what is going on is the minimum of screen clearing that occurs.
If this was all DOS-Mod allowed me to do I would say, “Okay, but so what?” There is more. Commands that used to take several lines and require answering prompts can now all be put on one line. The wildcard operators now work (as they should) with COPY, DELETE, and RENAME. And get this: DOS-Mod lets you create command files which may contain a sequence of commands that will be executed in one operation.
Still not convinced? Then, throw in an excellent set of on-line tutorials that, when copied to a printer using C D1:*.*,P:, yield 48 pages of documentation. Finally, DOS-Mod fixes many of the bugs in Atari DOS—such as the RS-232 handler being destroyed on RESET and typical MEM.SAV problems.
DOS-Mod is an excellent product that greatly simplifies and expands the Atari DOS into a powerful operating system. It costs $35 and comes with a 30-day money back guarantee. The double density version costs $50.
It is the holiday season, and Atari folks look forward to checking the stocking on that special day for computer goodies. In keeping with this spirit, and perhaps leaving a few hints as to my own desires, I present my unscientific, seat-of-the-pants wish list of Atari-related goodies. The list is presented in no special order and reflects my own prejudices and biases—although I have used/played/tested all of the products and like them all for one reason or another. There is no way I can give any more than brief descriptions in the remaining space, but here goes.
A cute little stocking stuffer is the “The Secret of Perfect Memory” by Elephant Memory Systems. It only costs a buck and is packed with all sorts of disk-related information. It includes a glossary, disk and drive nomenclature, and pretty pictures, and may be found at stores selling Elephant Disks.
Another neat stocking stuffer is the Videomax Game Glove from Nancy and Company. For $6.95 plus $.50 postage you get a cure for the dreaded stick burn. Blisters are eliminated by this glove (mens, womens, and youth sizes, righty or lefty) made of calfskin with a velcro fastener in back. Quite comfortable to wear and sure to make you the talk of the arcade.
Are you a shoot-’em-up fan? Can’t seem to get more than just a couple of megapoints each round of Defender, Fort Apocalypse, or Zaxxon? Then you need the Blaster from Questar Controls. For about $8 you dial up to 20 shots per second with just one joystick button press. Your joystick plugs into the Blaster which plugs into the joystick port.
I have small hands, and although I own and admire the Wico Command joystick, it just is too big for my paws. More and more I find myself using the Suncom Starfighter Joystick from Suncom. It costs about $12 and fits nicely into my palm. The stick is short and has a short throw which makes the action quite snappy.
Although I find it hard to use the Wico joysticks, I think they are probably the most rugged, professional sticks to be found anywhere. One Wico product I use constantly is the Arcade Trackball. Selling for about $40, this gadget is really sexy. Precision movement, a solid feel, and quality construction make you feel as if the arcade is in your living room. Try Missile Command, Centipede, or Pole Position with this beauty and you will never go back to a stick.
So far I have talked about stocking stuffers only. Let’s talk a little about gifts. Topping the list, of course, would be a subscription to Creative Computing. You will be seeing more Atari coverage in future months. Next, how about Atari itself? For the best in word processing, consider Atariwriter. It would be especially useful for writing all of those thank you notes for Atari goodies you receive. If you want to have a youngster learn a computer language or become more comfortable with computers, Atari Logo is an excellent choice. I will be devoting an entire column to Logo in the near future. Both of these Atari products list for $99.95. Then, of course, there are those classic Atari games that you have been wanting.
If you have been waiting for a professional quality, easy to use plotting, graphics, and data analysis package for the Atari, you may want to consider the B/Graph package from Income Software. It lists for $99.95 and allows you to make bar, line, and pie charts, and perform regression analysis, exponential smoothing, and statistical analyses on either you screen or a printer. Most of the major printers are supported, and the program is very easy to use.
With all of these programs and disks you will be receiving, you will need some place to store them. Ring King Visibles has the most complete line of disk and cartridge holders I have seen. The disk holders range from a convenient three disk holder to a disk wallet, binder, and tray. They also make an inexpensive cartridge storage album.
I would be remiss if I did not mention at least a few games to include on your Christmas list. Any of the games from Electronic Arts would be a welcome addition to your game library. My favorites are Archon and Pinball Construction Set.
Another company that ranks high on my list of quality game producers is Odesta Software. They make the definitive board game translations of Chess, Checkers and Othello (Odin). Any one of these fine products is sure to please.
For you hackers, and occasional programmers too, a very useful product is the Monkey Wrench II, from Eastern House Software. This programmer’s aid is a $59.95 cartridge that plugs into the right slot on the Atari 800. Its features include: automatic program line numbering, re-numbering; block copy, move, and deletions; and access to DOS functions directly from Basic. Additional features are too numerous to mention. A very handy tool for the Atari Basic programmer.
If you don’t see any gift ideas here, then check out the last year’s crop of Outposts. You will surely find something that it worthy of mention in your letter to Santa.
All of the products I have mentioned do exist, by the way. You can to into a store, shell out the cash, and walk away with the merchandise. I have a couple of items on my own wish list that don’t exist at all. Perhaps an open letter to Santa or Atari or whomever will do the trick.
First on my list is an Atari computer that will run all of the existing software plus contain the new operating system that gives the extra graphic modes and help functions. I said all, which means that there would have to be two operating systems in the machine. A simple switch, both hardware and software controlled would configure the machine as I desire. And why not throw in a parallel and a serial port while you are at it. Memory of 64K is fine, but by all means, sell the computer at a competitive price.
My second wish is for an Atari compatible (and other machine compatible) portable computer, along the lines of the Radio Shack Model 100. There is no reason the machine could not have 64K, disk drive, and video ports plus all of the goodies on the Model 100 and sell for under $500. If it existed, I would buy two of them right now.
My next wish is not for a product, but rather a policy. A sane software pricing policy. Over $40 for a cartridge game, over $30 for a disk game, and $100 for application software is too expensive. It limits the accessibility of computing to an affluent few, fosters software piracy, and breeds contempt for software manufacturers. Fortunately, Atari software is not as high-priced as other software.
Finally, my last wish is that you have a very happy holiday. Be of good cheer, and remember that there is more to life than the latest video game or Basic utility. Take time to enjoy your family and friends because they are most important of all.
See you next time.
Firms Mentioned In This Column
Alliance Software
17094 Dunblaine
Birmingham, MI 48009.
Eastern House Software
3239 Linda Dr.
Winston-Salem, NC 27106.
Eclipse Software
1058-J Marigold Ct.
Sunnyvale, CA 94086.
Electronic Arts
2755 Campus Dr.
San Mateo, CA 94403.
Hardsell P.O. Box 565
Metuchen, NJ 08840.
Inhome Software
2485 Dunwin Dr. Unit 8
Mississauga, Ontario
Canada LS1 1T1.
Nancy and Co.
22594 Mission Blvd. Suite 302
Hayward, CA 94541.
Odesta Software
930 Pitnes
Evanston, IL 60202.
Questar Controls
670 N.W. Pennsylvania Ave.
Chehahlis, WA 98532.
Ring King Visibles
215 W. Second St.
Muscatine, IA 52761.
Suncom
650 Anthony Trail Suite E
Northbrook, IL 60062.
Wico Consumer Division
6400 W. Gross Point Rd.
Niles, IL 60648.
Photo: Xtravideo I.
Photo: SCopy 810.
Photo: DOS-Mod.