
       
                  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).


























