+------------------------------------------------------------------+ | Notice: This program is released as Freeware. A revocable | | license is hereby issued for use of this software product in | | exchange for an unconditional waver of liability. | +------------------------------------------------------------------+ What is Tetris3: ---------------- Tetris3 is a freeware version of the classic Atari arcade & video game of nearly the same name ("Tetris"). For those unfamiliar with the arcade game (where were you- Mars?) a summary of Tetris(3) follows. If you are already familiar with the game Tetris you may feel free to skip over the following paragraph. In Tetris(3) you are presented with a rectangular game board. One of five possible game pieces are randomly selected and appear on the top of the game board. Immediately after appearing, the game piece begins to descend, its decent being at a constant velocity. You may alter the downward course or hasten the speed of descent but you can not slow the decent. Playing and Scoring: -------------------- The object of the game is to land each game piece so that it combines with its predecessors to form continuous horizontal rows. The com- pletion of a row causes the row to disappear which, in turn, earns you points. Should you arrange for a single piece to complete more than one row, the value of each immediately subsequent row increases. That is: One Row Two Rows Three Rows Four Rows 1: $100 1: $100 1: $100 1: $100 2: $200 2: $200 2: $200 3: $300 3: $300 4: $400 -------- -------- -------- -------- Total: $100 $300 $600 $1,000 (New for version 1.2) When the required number of rows are completed, the number of clear rows-- i.e. rows without any part of a game piece on them-- are count- ed from the top of the screen downward. Bonus points are awarded for each clear row. This replicates the same challenge presented by Atari's Tetris. Leaving a Playing Field in Tetris3: ----------------------------------- Game play continues until: a. You complete the required number of rows (as indicated on screen). At this point you move on to the next, more difficult, level. b. You fail to complete rows in a timely manner, thereby allowing them to pile up until they obstruct the appearance of a new game piece. Once a new game piece cannot be placed on the game board without its contacting an existing game piece you current 'life' is lost. Unlike the original Tetris, which gave you only one life, Tetris3 gives you three. Spend them carefully! Hardware Requirement: --------------------- Tetris3 was especially written for maximum compatibility with existing-- especially older-- computer hardware. Tetris3 requires only Operating System level compatibility (i.e. hard- ware differences are of no importance) EXCEPT as follows: (see version 1.2 note for an important update!) You IBM compatible computer must support (as virtually if not absolutely all do) BIOS interrupt 1Ch ('System Timer Tick'). Also, if the DOS version of this program is used, an ANSI driver MUST be installed (via a CONFIG.SYS statement of the form: DEVICE=[Drive]:[path]\ANSI.SYS (or whatever). IMPORTANT!!! If you run Tetris3 on a IBM PC-DOS computer WITHOUT an ANSI driver your screen will fill with garbage (actually screen control codes). If this occurs, press the [Esc] key several times until you return to the DOS prompt, then edit your CONFIG.SYS file accordingly. Note that changes to the CONFIG.SYS file will not take effect until the computer is rebooted. Though not fully tested, the PC-DOS version of this program should be compatible with all versions of DOS including the earliest. The CP/M-86 version requires CP/M-86 (NOT PLAIN CP/M which supports an entirely different MPU) for the IBM PC. (New for version 1.2) Starting with version 1.2, versions of Tetris3 are available for operation on MS-DOS, CP/M-86 & 8088-equipped DEC Rainbow PC's. Be absolutely sure to use the version of Tetris3 for your computer & operating system! Differences between Tetris3 & other Tetrises: --------------------------------------------- This version differs from the handful of other Tetris Clones in that: -Tetris3 was especially written to be (elderly) computer friendly. No SVGA? No Pentium? No problem! A 8mhz Turbo XT is fine. (Note that while play will be smoother-- especially at higher levels-- Tetris3 won't speed up on fast computers like many older computer games. It's very computer compatible.) -A text only video card is all that is required. -Tetris3 is available in a CP/M-86 version (most software isn't). -Tetris3 is bug free (???). -Tetris3 isn't clever. No attempt has been made to expand/improve upon the Atari classic. If you played the original, you pretty much know how to play Tetris3. - (New for version 1.2) Support for DEC Rainbow computers has been added. Starting Tetris: ---------------- To start the CP/M-86 version on a IBM computer running CP/M-86 enter: tetris3 Make sure that you're logged on to the proper drive, and that your USER number is correct. Playing Tetris3: ---------------- The following keys perform the following functions while Tetris3 is running. Note that they don't perform their specified functions at a "press any key" prompt-- only while the game is in play. Key|Description [2] Greatly increases the speed of the descending game piece. Repeatedly pressing this key will continue to increase the speed of the current game piece (but not those which follow it). Caution: Once sped up, the current game piece can't be slowed down! * [6] Move current game piece right if path is unobstructed. * [4] Move current game piece left if path is unobstructed. * [5] Rotate current game piece clockwise if its path is unobstructed. * [S] Toggles sound (beep upon completing a row) on & off. Default is Off. [Esc] Quit game, return to Operating System. This key, like all the other keys, will only work while the game is in play (i.e. while a game piece is descending on screen). PC-DOS users: In a hurry? You can always hit the [Cntrl][Break] key. [R] Redraw screen. Note that the effect of the redraw function is purely cosmetic. Any stray text on the screen will not effect the operation of the game-- just your ability to see the game in operation! [+] Advance to next level (i.e. cheat). Caution play becomes more difficult at higher levels. [T] Toggle Status Line display on/off (CP/M-86 ONLY). Turning the status line off may help increase game performance at higher levels played on underpowered machines. NOTE: The Toggle Status Line Display command has been eliminated in version's of Tetris3 beyond 1.0. For an explaination see the section entitled "Changes for version 1.2" (below). * = Those commands marked by an asterisks are probably most easily utilized by activating the [Num Lock] key then using the numeric key pad. Source Code: ------------ Tetris3 was written in 8086 Assembly language for assembly by either ASM86 (the assembler included with CP/M-86) or RASM86 (The PC-DOS assembler released by Digital Research Inc. as part of their program- mers package circa 1982). The full & complete source code to Tetris3 is (or at least should be) included & called TETRIS3.A86. You may fairly easily modify the source code for assembly under any MASM/TASM compatible assembler-- sug- gestions are included in the source code file. Alternately you can also purchase a new, legal, unsupported, and extremely expensive copies of either CP/M-86 or RASM86 from: Discus Distributing Services 408-663-6966 They are, as far as I am aware, the official source of ALL old DRI products and have been mentioned here for that reason. Alternately, you might find disused or surplus copies of either (or other) products at: Elliam Associates 805-466-8440 The quasi-official source of all old CP/M (and, to a limited degree DOS) stuff. Notice: It should be clearly understood that the above references to established business are for information purposes only. I have no finical interest in either company listed above (or anywhere else in this document). Bugs & Butterflies; Known problems & solutions: ----------------------------------------------- Actual Bugs: ------------ -The method used for timing the movement game pieces will momentarily miscalculate its timings at midnight. This is not really a bug but rather a result of the method I chose to implement for game timing. ===This 'feature' has been eliminated in version(s) beyond 1.0=== -For unexplained reason(s) a character will sometimes appear on the command line after terminating Tetris3 (CP/M-86, IBM PC). This occurs even though Tetris3 clears the keyboard buffer before returning. Suggestions? Quirks: ------- -Very slow operation on XT computers running PC-DOS. This is caused by the slowness of the ANSI.SYS driver which is re- quired when running TETRIS3 under PC-DOS as well as the slowness of the PC-DOS screen write interrupts. Tetris3 runs faster under CP/M-86. -Cursor darts annoyingly around the active game piece when running Tetris3 under PC-DOS on slower (XT) computers. Unfortunately I can find no ANSI driver command to turn the cursor off. There are CP/M-86 console driver commands to turn the cursor on & off, hence this problem does not occur under CP/M-86. Should anyone know of ANSI commands to control the cursor, do feel free to write! -Screen is filled with strange characters including '['-- no game appears! This is NOT a bug-- You haven't installed the ANSI console driver (ANSI.SYS (included with DOS) or one of its replacements). Installation is done via your CONFIG.SYS file. ANSI.SYS (or its replacement) MUST BE INSTALLED for TETRIS3 to run properly. Changes for version 1.2: ------------------------- +Changed from 80x25 character video mode to 40x25 character video mode. +Changed game board dimensions for more Tetris like dimensions. +Added bonus points for free rows. +Substantially changed timer procedures: -Added procedures: install_isrs: Install & initialize ISR's. Must be called before timer procedures are used. remove_isrs:Remove installed ISR's and reinstall original ones. new_1c_isr: New timer tick interrupt vector. Used for timer proc's & maintains random number. new_23_isr: Restore original 1Ch isr vector upon ^C press. (DOS ONLY!) +Added support for DEC RAINBOW running DOS or CP/M-86. (Pending beta testing) +Corrected Sound (beep) on completed line code. +Removed code to toggle CP/M-86 status line display (since Tetris3 now uses 40x25 character video mode in which the status line does not appear). Credits: -------- All trademarks are the property of their owners. This document was written primarily using WordStar 3.3. Additional editing & spellchecking was done using Wordstar 4.0, Epsilon 5.03 & Websters Spell Checker by Korenthal Associates. Tetris3 was primarily written using the very highly recommended Epsilon EMAC's style text editor by the similarly highly recommended Lugaru Software. It was compiled with DRI's RASM86 (DOS) & ASM86 (CP/M-86) assemblers and debuged using DRI's SID86 Symbolic Debugger and Borland Int.'s Turbo Debugger v. 1.0. Also of considerable assis- tance was HelpPC by Dave Jurgen. I am most pleased with all the software listed in this section and would recommend them-- particularly Epsilon, HelpPC, & Korenthal's Spell Checker-- without hesitation. Conclusion: ----------- Please play and enjoy! The author (me) would be most pleased to receive (but less pleased to respond) to any comments you might be kind enough to make. Please feel free to send your comments to me at Compuserve User ID 72371,111. Please indicate whether you require a reply and do accept my thanks in advance! Cordially, Richard Kanarek CIS 72371,111 May 2 1996 June 24 1996 file: tetris.doc