Magic48ges presents: ##### ##### ##### #### ### ### ### # # # # # # # # # # # # # # # # # # # #### # #### # ### ## # # # # # # # # # # # # # # # # # # ##### # # # ### ### ##### AN EXCITING GAME FOR THE HP48 Version 2.23 Pre-release (c) 1996 by ********************************************** Original Concept, Design and Program by Alexey Pazhitnov CONTENTS ======== 1. Introduction 1.1 Copyrights & Acknowledgements 1.2 TETRIS 1.3 Requirements & Installation Instructions 1.4 Starting The Game 2. TETRIS' Interface 2.1 The Main Screen 2.2 The Key Setup Screen 2.3 The Game Screen 3. Hints & Information 3.1 General Notes 3.2 2-Player Game Notes 1. Introduction =============== 1.1 Copyrights & Acknowledgements --------------------------------- All files in the TETRIS2 kit are copyrighted (c) by ****************** ******************************, 1996 -- unless otherwise noted. The TETRIS2 kit is distributed in the hope that it will be fun, but TETRIS2 is provided `as is,' and is subject to change without notice. D. Mueller and R. Hellstern make no warranty of any kind with regard to the software or documentation, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose. D. Mueller and R. Hellstern shall not be liable for any error or for incidental or consequential damages in connection with the furnishing, performance, or use of this software and documentation. This version of TETRIS2 is a GiftWare release. You may use it as long as you like without registration. Permission to copy the whole, unmodified TETRIS2 package is granted provided that the copies are not made or distributed for resale (excepting nominal copying fees). It _should_ be impossible to crash your '48 by using TETRIS2, but be warned: no software is bug free! If you encounter a bug, please report it to detlef@dmhh.hanse.de Credits go to * HP Corvallis for the HP48 * A. Pazhitnov and V. Gerasimov for inventing TETRIS * Bullet-Proof Software for their HP48SX & GameBoy TETRIS versions * J.K.Horn for alpha testing * Jack Levy for alpha & beta testing * Will Laughlin for alpha & beta testing * Doug Cannon for proof-reading this document * Jim Donnelly for 'An Introduction to...',it pointed me to a neat trick to turn on/off the menubar I didn't recognized before... * ... 1.2 TETRIS ---------- TETRIS is an arcade-type game developed ~1987 in the USSR by Alexey Pazhitnov and V. Gerasimov. The game rules are simple: blocks of seven possible shapes drop into the game area and fall to the bottom. You must try to prevent the block pile from reaching the top of the area. While a block is falling down, you can move it left / right and turn it. If you fill a line it disappears and you gain points. The game ends when the block pile reaches the top of the play area. TETRIS is derived from the russian word for `four': `tetra'. Each of the seven different block shapes are made with different arrangements of four squares. TETRIS became very popular because the game was ported to nearly any machine containing a CPU, some RAM, keys and a display -- even for HPs HP48 calculator many versions do exist. TETRIS2 is one of the most advanced TETRIS for the '48 series, featuring: * small size (<6.5kb), though a very good size/performance ratio * high speed (completely written in sysRPL/assembler) * '48 type and ROM revision independency * very close to the original TETRIS gameplay * customizable control keys * storing of the current game in progress * a highscore table * configuration of the gameplay: - next block preview on/off - initial level - initial fill level - turbo on/off * three game modes: - normal - randomly prefilled area - end after n lines * all of the above in 2-Player games via serial I/O (IR or wire) 1.3 Requirements & Installation Instructions -------------------------------------------- TETRIS2 works on _every_ HP48 (S or G, X or not, any revision) - it's tested on ROM revisions A, E, L, M and R by the authors; it's reported to run also on ROM revisions D, J and K '48s. To install the game download the library file (TETRIS2.LIB) to your '48, recall it to the stack and purge the variable containing the downloaded library. Enter the port number (0, 1, .. -- on a GX'48 port 0 or 1 is strongly recommended ! ) where you want to store it, then press STO. Power-cycle your '48. TETRIS2 will now be installed. Note that the game maintains a variable named `T2par' in the current directory to store setup and game information. It will be created if it doesn't exist when starting the game and its size is normally ~73 bytes, when storing a game ~435 bytes. TETRIS2 uses USERFLAGS 1, 2 and 3. They are set to 0 upon game exit. To get rid of the game, execute the following commands (if TETRIS2 is stored in a port > 0, make sure the corresponding card is set to R/W): HOME @ switch to the home directory 268 DETACH @ release library :&:268 PURGE @ search and purge it TETRIS2 library information: ID : 268 size : 6545 bytes checksum : #C6C8h 1.4 Starting the game --------------------- After installation, switch to the TETRIS library menu and hit the menu button labeled `TETRIS'. 2. TETRIS' Interface ==================== 2.1 The Main Screen ------------------- When starting TETRIS, its main screen comes up: +----------------------------+ |Top 5 Game Setup | | 30000+ LEVEL: 0| | 10000 FILL: 0| | 5000 NEXT PIECE: ON| | 3000 END AFTER: OFF| | 1000 TURBO: OFF| |Current score: 0 | |### ### ### ### ### ###| +----------------------------+ | | | | | | Main Setup | | | | | | ---- ----- | | | | | +--- QUIT MAIN | | | | +-------- SETUP TURBO | | | +------------- KEYS END | | +------------------ 2PLAY NEXT | +----------------------- CONT FILL +---------------------------- PLAY LEVEL From here you can press to ----- -- [PLAY] start a game (see 2.3, 3.1) [CONT] if available, continue a stored game (see 2.3, 3.1) [2PLAY] start a 2-Player game (see 2.3, 3.1, 3.2) [KEYS] enter the key setup screen (see 2.2) [SETUP] enter the setup menu (see below) [QUIT] exit TETRIS [LEVEL] change the initial game speed level (0-9) [FILL] change the amount of randomly prefilled lines (0-15) [NEXT] toggle next block preview on/off [END] change the number of lines to clear 'til game ends (0-9999) [TURBO] toggle turbo mode on/off [MAIN] enter the main menu (see above) [ENTER] start a game (see 2.3, 3.1) [ON] exit TETRIS [OFF] turn the '48 off. [ON] will return to the main screen Notes: The highscore table and the game setup information are displayed using the very small font. Highscores followed by a `+' where done in turbo mode. While entering a number ([END], [FILL] or [LEVEL]) the following keys are active: [0]-[9] add digit [<-] remove rightmost digit [ENTER] accept number and return to previous screen [ON] abort entering, restore old value and return to the previous screen Upon exit, TETRIS will restore the LastMenu, ie. it simulates pressing right-shift NXT. This is intended to be some sort of 'Boss'-functionality... 2.2 The Key Setup Screen ------------------------ After hitting [KEYS] from the main menu, the keys setup screen comes up: +----------------------------+ |To reassign an +---+| \ |action, press the | || | |menu key for the +---+| | |action, then the |###|| +- A small graphical representation of |new key. |###|| | the '48 showing the current key setup | |###|| | | +---+| / |### ### ### ### ### ###| +----------------------------+ | | | | | | | | | | | +--- EXIT | | | | +-------- DR - drop | | | +------------- TR - turn right | | +------------------ TL - turn left | +----------------------- MR - move right +---------------------------- ML - move left From here you can press to ----- -- [ML] reassign the move left key [MR] reassign the move right key [TL] reassign the turn right key [TR] reassign the turn left key [DR] reassign the drop key [EXIT] return to the main screen (see 2.1) [ENTER] return to the main screen (see 2.1) [ON] return to the main screen (see 2.1) [OFF] turn the '48 off. [ON] will return to the setup keys screen 2.3 The Game Screen ------------------- When starting a game, the TETRIS screen comes up: +----------------------------+ +- |# | ## | Score:0 | -- Current score | | | ## | | | | | | Level:0 | -- Current level | | | | | | | | | Lines:0 | -- Number of lines filled or left to fill | | | # | | | | | ### | 2Play:Wire | -- Only in 2-Player mode: IR or Wire | | +-----+ | | +----------------------------+ | | \--+--/ | | | +------------------------ TETRIS game area +--------------------------------- Preview field From here you can press to ----- -- [DR] drop the current block [TR] turn the current block right [TL] turn the current block left [MR] move the current block right (repeats if held down) [ML] move the current block left (repeats if held down) [NXT] toggle block preview on/off (delayed 'til block's down) [STO] store the current game and return to the main screen [ON] abort the current game and return to the main screen (score will be recognized) 3. Hints & Information ====================== 3.1 General Notes ----------------- There are seven different shaped 4-square blocks in TETRIS: # # # # ## ## # # # ## # # ## ## ### ## #### How to play: sort the blocks to create horizontal lines without gaps, every filled line disapears and the remaining blocks above are moved down. The speed at which the blocks fall depends on the level; the higher the level, the faster the blocks fall. The level will increase automatically during game play from time to time... Points are scored each time a block is placed or a line is filled. The amount of points scored is increased on * higher levels * early drops * filling 1, 2, 3 or 4 lines per drop * no preview active Eg. filling one line on level 0 can give 40 points, filling four lines on level 9 can give 12000+ points. The game ends when * the game area is filled to the top with blocks * the amount of lines defined with [END] (>0) are cleared * one of the above happens to your opponent in a 2-Player game How to deal with hangovers ? To solve this situation: +-------+ | # | | # | | ## | | # | | ## | | # | +-------+ move the downcoming block one to the left, wait until it reaches the bottom line and then quickly move it to the left again. +-------+ +-------+ | | | | | | | | | | v | | | | # # | | ## | | ## # | | ### | | # ## | | ###<- | +-------+ +-------+ 3.2 2-Player Game Notes ----------------------- TETRIS2 provides a 2-Player mode, ie. two people owning '48s can play against each other. To start a 2-Player game first install TETRIS2 on both '48s and set their IO modes to this (suggested) values: IR/wire: IR (should be Wire if you have a NULL- '48 cable) ASCII/binary: binary baud: 9600 parity: none 0 cksum: 1 translate: 3 If you are linking up the '48s using IR, be sure that the '48s IR I/O diodes are facing each other and that the distance between the '48s doesn't exceed ~10cm during game play. To start the action, press [2PLAY] from the main screens on both '48s at about the same time. If you clear two or more lines with one block drop, one or more lines are added to the bottom of your opponents game area when her / his current block stops falling: you clear your opponent will get -------- ---------------------- 2 lines 1 line 3 lines 2 lines 4 lines 4 lines The game ends when one game area is filled to the top with blocks. Different playing skills can be compensated by tuning the [LEVEL], [FILL] and [NEXT] entries in the setup menu on each '48 individually. Detlef has worked a lot on the 2 player mode to provide an excellent gameplay -- it is worth the effort to find an opponent and discover its subtile rules... :-) --