(Comp.sources.hp48) Item: 18 by detlef at mwhh.hanse.de Author: [Detlef Mueller] Subj: GARBAGE - Sokoban V1.3 Date: Tue Nov 12 1991 [Note: Although this game looks almost exactly like MOVE on Goodies Disk #3, it runs much faster. The frustrating pauses are now gone. Try it! -jkh-] Hi, world. GARBAGE - yet another SOKOBAN for the HP48. This should be the last update for some time B-). The aim of the game is to solve puzzles of increasing complexity. Features: - implemented as library (no. 1111, 7602 bytes, checksum #F5FB) - includes *50* levels - high speed - key repeat (to prevent key damage :-) - undo last step - save/restore capability - select a level - go to next/prev level Changes vs. version 1.2: - add level select - the context data is stored in normal user RAM - remove PGDT - document go to next/prev level - fix level 16 and 36 Installation: To install the game, a) download the library and recall it into the stack. Enter the port number (0,1,2) where you want to store it and press STO. Then key 'GARBAGE.LIB' PURGE. Switch the HP48 off, then on again. GARBAGE will now be installed as a library named GARBAGE (id no. 1111). Deinstallation: To get rid of the game execute the following commands (if GARBAGE is stored in port 1 or 2, make sure the card switch is set to R/W): HOME @ switch to the home directory 1111 DETACH @ release GARBAGE library :&:1111 PURGE @ search and purge GARBAGE Run: To play it, enter the LIBRARY GARBAGE menu and press the softkey named GARB or just type GARB[ENTER] at the command line. The game starts immediately, coming up with the following screen: +---------------------------------+ | ################## GARBAGE | | # # ********* | | # # * * | | # # * x * | | # # * * | | # # ********* | | ################## VERSION | +---------------------------------+ Symbol Means ***** A little logo with the actual level number displayed in * x * the center of it (x). ***** ##### The game area (see below). # # ##### Keys: Key Action Left arrow Move actor one step left. Repeats if held down. Right arrow Move actor one step right. Repeats if held down. Up arrow Move actor one step up. Repeats if held down. Down arrow Move actor one step down. Repeats if held down. +/- Toggle sound on/off STO Make a snapshot of the game <- Restore game from last snapshot DEL Set actual level to initial state (don't affect saved game) ENTER Undo last step Blueshift ON Turn calculator off without leaving GARBAGE Blueshift + Go to next level Blueshift - Go to prev. level ON Leave GARBAGE (Boss key .. :-) Description (by Gilles Kohl): In GARBAGE, you're in charge of garbage collection inside your HP48. The 'garbage collector' is shown by a cross-shaped symbol. Your task is to collect lost objects and move them onto free storage locations. The characters in GARBAGE are: (all shapes 4x4 size, '.' = off, '#' = on) .#.. ###. your 'collector' or mover. .#.. Control using [left], [right], [up] and [down] arrows .... (appears a little differently on storage locations, see below) ###. #.#. a moveable object. Push them to their storage locations. ###. you may only push objects (no pulling them) and only one .... object at a time. .... .#.. an empty storage location. Push moveable objects upon them. .... .... ###. ###. successfully filled-up storage location. ###. (you may still move the object away again, if necessary) .... #.#. .#.# an unmoveable object. No way to move it - just stands in #.#. your way. .#.# .#.. #.#. the 'mover' above an empty storage location. .#.. (there is no special meaning to this, except to indicate .... that you're above a storage location) The aim of the game is filling up all storage locations by moving all (moveable) objects to them. This successfully completes a garbage collection task, and you're promptly assigned the next one. (Unless you've solved them all). Things to notice: - On entering a new level (or when you make a snapshot with STO) the game stores information about the context into a variable named 'gc.data' (670 bytes in size). If this variable already exists in the path, it will be overwritten. Otherwise GARBAGE generates this variable in the actual directory. The game will always come up with this data (if it is found), so you can inter- rupt your task at every point by pressing STO, then leaving with ON. - It is also possible to select a level. Just store a real number in the range 1 - 50 into 'gc.data' and GARBAGE will come up with the associated level. - If the data stored in 'gc.data' is invalid, the game starts at level 1. - The sound toggle (+/-) modifies flag -56 permanently. - GARBAGE doesn't destroy your PICT. - If you get a 'Collection Failed' from the game, please mail me a description of the circumstances and the contents of the stack. GARBAGE traps any error, prints an error message and DOESN'T clean up the stack. Use the interactive stack to view the stack, then execute CLEAR ! - I will maintain this program, so feel free to mail me ideas for improvements or notes of appreciation :-). Hints: Save early, save often .. ;-) You can hold one context variable in every subdirectory, so more than one person can be playing the game at once. Credits: 1) Gilles Kohl - posted MOVE in Dec 90 (freeware) I used the algorithms, pictures and parts of the documentation. 2) Douglas R. Cannon - SKUNK 1.0 (freeware, great animations) I used his 'FANFARE' data 3) Yvonne - alpha tester 4) Raymond Hellstern - beta tester 5) Chris Spell - inserted the UUENCODE form of GARBAGE (thanks :-) 6) Markus Witt - reviewed this text 7) W. C. Wickes - \->ASC 8) HP Corvallis - RPL tools/HP48 9) Lutz Vieweg - asks for an undo feature 10) Robert Brunner - suggestions 11) Dan Ciarniello - reports the bug in level 36, suggestions Happy playing, 8-), Detlef. P.S. I don't take the blame for worn calculator keys :-). All songs of praise about the game design to: gilles@disys.dis.incom.de P.P.S. Any questions ? Feel free to mail me =-) ...