munch - Man Page

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

Info

6.06-1.fc38.1 (21-Jan-2023) X Version 11 XScreenSaver manual