Metropoli BBS
VIEWER: garbage.doc MODE: TEXT (ASCII)
Garbage Documentation
---------------------

By Detlef Mueller

YAS - yet another SOKOBAN for the HP48: GARBAGE - update to version 1.3

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, download the file and recall it into the stack.
	Enter the port number (0,1,2) where you want to store it and press
	STO. 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 port is set to R/W):
	    HOME		@ switch to the home directory
	    1111 DETACH		@ release GARBAGE library
	    :&:1111 PURGE	@ search and purge GARBAGE

How to update:
	To update an older version of GARBAGE proceed as follows:
	    - deinstall the old GARBAGE version
	    - install this version
	    - generate an executable form of CNVTGD (included in this
	      posting), download, execute and purge it.
	For a description of CNVTGD see 'Things to notice'

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)  HP Corvallis - RPL tools/HP48
	8)  Lutz Vieweg - asks for an undo feature
	9)  Robert Brunner - suggestions
	10) Dan Ciarniello - reports the bug in level 36, suggestions

Happy playing, Detlef.
[ RETURN TO DIRECTORY ]