Date: Fri, 15-Feb-85 19:06:55 EST
Posted: Fri Feb 15 19:06:55 1985
Date-Received: Sat, 16-Feb-85 16:21:02 EST
[Phenylketonurics: contains phenylalanine]
A guy and I once had an argument about which was faster, an Atari 800 or an
IBM PC. We'd chosen a simple benchmark program for comparison, something like
"roll a pair of six-sided dice 50,000 times, then print a total count of the
number of 7's you got". Comparing the 808* to a 6502 is truly an unfair
comparison, but what the heck. When you're in love with a machine, you'll
make some pretty arrogant claims. This is how it went:
GUY: "We'll do it in BASIC, okay? You use the BASIC on your Atari and I'll use
BASIC on my PC."
ME: "That's not fair. Atari BASIC is the pits. But I am curious..."
GUY: "Well, what did you come up with?"
ME: "The Atari did it in 1 minute, 35 seconds."
GUY: (Laughs.) "The PC did it in 42 seconds."
ME: (Ponders a moment.) "Say, isn't PC BASIC a compiled BASIC? The Atari
BASIC is interpreted. We're comparing apples and oranges here."
GUY: "Yeah. That's true. Okay. Use a compiled language on your Atari."
ME: "Aha! 14 seconds!"
GUY: (Surprised.) "Er, what did you use for a compiler, or should I say,
ME: "I used ACTION!, the new language that looks like a cross between C and
Pascal but lets you get to the Atari O.S. functions the way BASIC does."
GUY: (Thinks a minute.) "Hmmm...I've got the Lattice C compiler for my PC."
GUY: (A little edgy.) "The best I could do in C was 16 seconds. Are you sure
you wrote the code right?"
ME: "Sure. Take a look at it."
GUY: (Scans listing.) "Wow. It sure looks like C code. But wait a minute.
What's this Rand() function here?"
ME: "Oops. I almost forgot. The Atari has a hardware random number
GUY: "What would you expect from a game machine? The PC is a business
computer. You want random numbers, you have to do them in software."
(Scribbles on a piece of paper.) "Here. Replace the Rand() call with
GUY: (Acting smug.) "How did it do?"
ME: "Ah. Not so good. Only 16.7 seconds with the software-generated random
numbers. But what can you expect? The Atari clock rate is only around
2 Meg, while the PC's clock rate must be at least 5 MHz."
GUY: (Grinning from ear to ear.)
ME: "By the way, how long did it take you to compile the benchmark on your
GUY: (Still grinning.) "About a minute and a half."
ME: "If I compiled mine from disk, it only took 25 seconds..."
GUY: (Grin fading.)
ME: "...but I didn't compile it from disk because it's too slow. So I
compiled the code directly from the editor buffer. That took about
GUY: (Beginning to look upset.)
ME: "...of course, ACTION! lets you turn off the video DMA during compilation,
so you gain another 33% or so."
GUY: (Looks angry. Threating.)
ME: "...I almost forgot--I could have turned off video DMA at run time, too.
Gee, that means that the Atari would have won in every category!"
GUY: (Grabs ME by the throat. Well, almost.)
ME: "Uh, how about a nice, relaxing game of Star Raiders?"
That story was based on true events. Obviously, the IBM PC will blow the
keycaps off the Atari in many cases, but I've got to say this: The ACTION!
development environment is the fastest, most efficient I've ever used. The
edit-compile-test cycle with this compiler/editor is less than 10 seconds.
The editor "page flips" the entire screen as fast as you can hit a keystroke
and, if that isn't fast enough, a stubby routine I wrote in ACTION! causes
the software auto-repeat key function to run at lightning speeds. The editor
contains a split window feature (like a scaled-down EMACS), plus a cut-and-
paste facility that is a marvel of cognitive engineering. So what if it has a
few bugs? It sure beats 6502 assembly language!
After fumbling along all day on a big, powerful VAX 780 and a 9600 baud
terminal, it is a pleasure to sit down at the end of the day to do some
hacking on a hobby computer with a "toy compiler".
-- Mike Gancarz
"These views are not those of my employer, etc., etc."