A LENGTH DISCOURSE ON FALLING OBJECTS WITH TRANSLATIONAL AND ROTATIONAL MOTION I guess that when you read about a computer game in Newsweek, there must be something special about it; of course, I'm talking about that Soviet falling-objects-with-translational- and-rotational-motion game known as TETRIS. According to the opening screen of Spectrum HoloByte's implementation of the game for the Apple Macintosh family of personal computers, TETRIS was invented by a 30-year-old Soviet researcher named Alexey Pazhitnov who currently works at the Computer Centre (AcademySoft) of the USSR Academy of Sciences in Moscow. The original programmer was 18- year-old Vadim Gerasimov, a student studying Computer Informatics at Moscow University. Unfortunately (or fortunately, depending on your point of view) for me, I don't own a Macintosh, but rather, I own an IBM PC-AT compatible Toshiba Portable Personal Computer, so I sort of felt left out of the fun of being able to play TETRIS. Okay, before everyone starts trying to correct me, I knew full well at that time that there are several implementations of TETRIS around for the IBM Personal Computer family; one from Spectrum HoloByte (which looks, to be honest, absolutely hideous in its three color, low resolution display mode; I mean, I realize that it's not Spectrum HoloByte's fault, but rather the fault of the designers of the IBM Color Graphics Adapter), the Son of TETRIS Project (an obscure program which I no almost nothing about), and NYET, the public domain implementation by David B. Howorth. In the included documentation for NYET 1.2, Howorth professes: I claim no credit for inventing this game; that was apparently done by A. Pajitnov [sic] and V. Gerasimov in the Soviet Union. They called the game TETRIS. I wrote [NYET] ... mainly for the hell of it, but I improved on the original where I thought it needed it (NYET has the ability to run on monochrome screens, a running speed largely independent of processor speed, and a more responsive feel). So where does egaint into play? Well, this TETRIS thing all started for me when I was in the student union video arcade getting quarters so I could do my laundry with these coin- operated washers and dryers; while I was there I happened to see this video game with a dense pack of what appeared to be worshippers: it was the (yet another) arcade implementation of TETRIS. After staying for about five minutes to catch the basic gist of the game, I decided that it was probably a deceptively easy program to write, and that perhaps I should try when I have some free time. No, I didn't start developing my variation on TETRIS just yet: the above occurred around four months ago; TETRIS did not seem like such a big deal to me, so I soon forgot about it. However, my interest in TETRIS returned one night when, while perusing the wares of a Bay Area bulletin board system under a false identity, I came across NYET12.ARC and downloaded it (it must have been a while ago if they had not yet converted to the .ZIP format); later that night, getting into a discussion concerning TETRIS and NYET with my two roommates, I somehow weaseled my way into a challenge: implementing TETRIS in twelve hours. Well, in case you're interested, I lost the bet; it ended up taking me around four days (given that I also needed to attend classes--being that I'm in college--and also eat, sleep, work out, and just plain have a social life) and two languages (Microsoft C 5.1 at first and Turbo Pascal 4.0 later) to produce aint 0.0 (actually, it only took me around twenty-four contiguous hours, but who's counting?). aint is a recursive acronym for "aint is not TETRIS," and the program with that moniker was a text-only (like Son of TETRIS and NYET) implementation. After several bug fixes and rewrites, after getting comments from my friends and roommates, and after distributing it in a very exclusive fashion, I decided that a graphics implementation of aint was in order. Actually, I more than just a graphics implementation of aint in mind: rather, I had a truly portable version of aint, one which would compile, with minimal changes, on different machines with different display adapters in different graphics and text modes. Well, it wasn't too long before I dropped that crusade and settled in for something more at hand: a version specifically for what I had, that being a Toshiba T5100 with an Enhanced Graphics Adapter with 256K memory. Thus egaint ("enhanced graphics aint") was born, albeit slow, flickery, and in four shades of orange. And from this initial implementation, I have evolved to here (and let me tell you, that was some evolution).