munchSection: XScreenSaver manual (6)
Updated: 5.04 (13-Nov-2007)
Index Return to Main Contents
NAMEmunch - munching squares screen hack
SYNOPSISmunch [-display host:display.screen] [-foreground color] [-background color] [-window] [-root] [-mono] [-install] [-visual visual] [-delay microseconds] [-xor] [-noxor] [-shift] [-noshift] [-logminwidth minimum width]
DESCRIPTIONThe munch program performs the munching squares hack until killed. It picks square size, position, and gravity randomly; configurable options are listed below.
The munching squares hack consists 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.
OPTIONSmunch accepts the following options:
- Draw on a newly-created window. This is the default.
- Draw on the root window.
- If on a color display, pretend we're on a monochrome display.
- 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 microseconds
- How long to wait before starting over. Default 5000.
- Use the XOR drawing function. (Default.)
- Don't use the XOR drawing function.
- Start drawing the square at weird starting points. (Default.)
- 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.)
- to get the default host and display number.
- to get the name of a resource file that overrides the global resources stored in the RESOURCE_MANAGER property.
SEE ALSOX(1), xscreensaver(1), http://www.inwap.com/pdp10/hbaker/hakmem/hakmem.html, http://www.comedia.com/Hot/jargon_3.0/JARGON_M/MUNCHSQR.HTML
HISTORYQuoted 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.
- (Notation: <left half>,,<right half>)
COPYRIGHTCopyright © 1997 by Tim Showalter. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.
AUTHORTim Showalter <email@example.com>, 17-Jun-97, based on what's in the Jargon File and stealing stuff from existing xscreensaver modules.