The
munch
program preforms the munching squares hack until killed. It picks square
size, position, and gravity randomly; configurable options are listed
below.
The munching squares hack cosists of drawing Y = X XOR T for a range of X
and T over and over until all the possible combinations of X and T have
come up. It was reportedly discovered by Jackson Wright in 1962 and took 5
instructions of PDP-6 code.
OPTIONS
munch
accepts the following options:
-window
Draw on a newly-created window. This is the default.
-root
Draw on the root window.
-mono
If on a color display, pretend we're on a monochrome display.
-install
Install a private colormap for the window.
-visual visual
Specify which visual to use. Legal values are the name of a visual class,
or the id number (decimal or hex) of a specific visual.
-delay seconds
How long to wait before starting over. Default 5 seconds.
-xor
Use the XOR drawing function. (Default.)
-no-xor
Don't use the XOR drawing function.
-shift
Start drawing the square at weird starting points. (Default.)
-no-shift
Don't shift and start drawing the square at weird starting points.
-logminwidth minimum-width
The logarithm (base 2) of the minimum with of a square (must be a power of
2, or some parts of the square aren't.)
ENVIRONMENT
DISPLAY
to get the default host and display number.
XENVIRONMENT
to get the name of a resource file that overrides the global resources
stored in the RESOURCE_MANAGER property.
Quoted from HAKMEM, for historical interest. As that document says, "Unless
otherwise stated, all computer programs are in PDP-6/10 assembly language."
ITEM 146: MUNCHING SQUARES
Another simple display program. It is thought that this was discovered by
Jackson Wright on the RLE PDP-1 circa 1962.
DATAI 2
ADDB 1,2
ROTC 2,-22
XOR 1,2
JRST .-4
2=X, 3=Y. Try things like 1001002 in data switches. This also does
interesting things with operations other than XOR, and rotations other
than -22. (Try IOR; AND; TSC; FADR; FDV(!); ROT -14, -9, -20, ...)
ITEM 147 (Schroeppel):
Munching squares is just views of the graph Y = X XOR T for consecutive
values of T = time.
ITEM 148 (Cohen, Beeler):
A modification to munching squares which reveals them in frozen states
through opening and closing curtains: insert FADR 2,1 before the XOR. Try
data switches =
4000,,4 1000,,2002 2000,,4 0,,1002
(Notation: <left half>,,<right half>)
Also try the FADR after the XOR, switches = 1001,,1.