munch(6) XScreenSaver manual munch(6)
NAME
munch - munching squares
SYNOPSIS
munch [--display
host:display.screen] [--foreground
color]
[--background
color] [--window] [--root] [--window-id
number][--mono]
[--install] [--visual
visual] [--delay
usecs] [--xor] [--noxor]
[--clear
number] [--simul
number] [--classic | --mismunch | --random]
[--fps]
DESCRIPTION
The
munch program performs the munching squares hack. It picks
square size, position, and gravity randomly. It also displays a
creatively broken misimplementation of the classic algorithm.
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.
OPTIONS
munch accepts the following options:
--window Draw on a newly-created window. This is the default.
--root Draw on the root window.
--window-id number Draw on the specified 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 usecs The delay between steps of the animation, in microseconds.
Default: 2500.
--xor Use the XOR drawing function. This is the default.
--no-xor Don't use the XOR drawing function.
--clear number Number of squares to misdraw before clearing the display.
Default: 65.
--simul number Number of squares to misdraw simultaneously. Default: 5.
--classic Draw classic munching squares only.
--mismunch Draw "mismunch" only.
--random Do one or the other.
--fps Display the current frame rate and CPU load.
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.
XSCREENSAVER_WINDOW The window ID to use with
--root.
HISTORY
HAKMEM: MIT AI Memo 239, Feb. 29, 1972. Beeler, M., Gosper, R.W.,
and Schroeppel, R.
"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.
SEE ALSO
X(1),
xscreensaver(1),
https://www.inwap.com/pdp10/hbaker/hakmem/hakmem.html
COPYRIGHT
Copyright (C) 1997 Tim Show alter.
Copyright (C) 2004 Steven Hazel.
Copyright (C) 1992-2008 Jamie Zawinski.
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.
X Version 11 6.09 (07-Jun-2024) munch(6)