This page describes, in Unix manual page style, a C program available for downloading from this site which allows you to generate Sixties-style banners of a clenched fist with a slogan of your choice at the bottom. Unlike poseur programs, this one actually traces its lineage directly back to September 1969, and has survived migration from mainframes to personal computers, across a variety of programming languages, and from punched card six bit character sets all the way to ASCII.


fist - emphatic message generator


fist [ -c -fpat -l -mtext -n -sfactor -u ]


fist prints an image of a clenched fist (unless suppressed by the -c option), followed by a slogan in block letters, limited to 16 characters per line (“Television is to news as bumper stickers are to philosophy.”—Richard M. Nixon).   Options permit you to scale the fist commensurate to the iniquities of the Oppressor (or your printer's paper size, whichever is smaller), select right- or left-handed blows against the Empire, and various other gimmicks which popped into the mind of this humble programmer while watching Ice Station Zebra over and over again and watching his fingernails grow. Oh, wait…wrong megalomaniac. Anyway, here's the latest incarnation of the fist program. May your banners ever espouse worthy causes, and may those truly worthy be achieved.


Chill out: no fist is generated, only the message text.
Fill the fist with the text pattern pat, which may be any string of ASCII/ISO characters. If the pattern contains blanks or characters interpreted by the shell, it should be quoted or escaped appropriately.
The fist will be left handed.
Supply a line of the text to be printed below the fist on the command line. If the text contains blank or shell metacharacters it should be quoted or escaped. Only the first 16 characters of the text will be printed. You may supply multiple -m options for multi-line text. Note that you must also specify the -n option if you don't want fist to read additional lines of text from standard input after printing lines supplied by the -m option.
Do not read text to be printed below the fist from standard input. Unless you've specified text with one or more -m options, no text at all will be printed, just the fist. If you specify only the -c and -n options, the only consequence of running fist will be the passage of time.
Scale the fist by the given percentage factor between 25 and 100.
Print how to call information.


Lines of text (limited to 16 characters) are read from standard input unless suppressed by the -n option; these lines are printed in block letters below the fist. Input from standard input is terminated by an end of file. Output is written to standard output. Input and output are processed strictly sequentially and hence fist may be used in pipelines.


The block character font is a limited subset of ASCII containing only upper case letters, numbers, and punctuation with character codes between hexadecimal 20 and 5F. The font was originally created in the late 1960's in UNIVAC 1108 six bit FIELDATA code, and re-shuffled into ASCII order when the first port was made to an ASCII machine in 1981. If you'd like to add lower case letters, ISO codes, or full Unicode, go right ahead.

fist will not work on machines which do not use the ASCII character code (for example EBCDIC machines). You'll need to shuffle the font table or translate character codes to ASCII before you index it. I don't have such a machine, so I'm not going to include code I can't test.

Scale factors smaller than about 60 on the -s option produce infelicitous results: the fist looks like it's wearing a mitten.

You can't aggregate options, separate options from their arguments with a blank, or other cool getopt features because the program doesn't use getopt in order to preserve its retro look.

Over the last thirty years numerous people have suggested the program might be enhanced by adding options to raise two fingers (“peace”) or only one finger (well, you know). Please send me the code if you make this decades-long dream a reality.


Evil Empires


*   fist C source code: fist-4.1.tar.gz
*   Read fist source code (requires PDF reader application)
*   Source code repository at GitHub


A year or two after emigrating, she happened to be in Paris on the anniversary of the Russian invasion of her country (Czechoslovakia). A protest march had been scheduled, and she felt driven to take part. Fists raised high, the young Frenchmen shouted out slogans condemning Soviet imperialism. She liked the slogans, but to her surprise she found herself unable to shout along with them. She lasted only a few minutes in the parade.

When she told her French friends about it, they were amazed. “You mean you don't want to fight the occupation of your country?” She would have liked to tell them that behind Communism, Fascism, behind all occupations and invasions lurks a more basic, pervasive evil and that the image of that evil was a parade of people marching with raised fists and shouting identical syllables in unison. But she knew she would never be able to make them understand. Embarrassed, she changed the subject.

— Milan Kundera, The Unbearable Lightness of Being

This software is in the public domain. Permission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, without any conditions or restrictions. This software is provided “as is” without express or implied warranty.

Fourmilab Home Page