SNPCAL
"Taped to the wall is a line-printer Snoopy calender for the year 1969."
- Ed Post, Real Programmers Don't Use PASCAL, 1983 [1]
Line printer Snoopy calendar
November 2021
Making a version of the Snoopy line printer calendar was a short creative coding and code conservation project. As a starting point, I used a FORTRAN program snpcal.for
that appears in the DECUS Software Library.
C SNOOPY CALENDAR PROGRAM FOR PDP-11 FORTRAN C TAKEN FROM (NON-WORKING) IBM FORTRAN+BAL VERSION C MODIFICATIONS BY T. M. KENNEDY 29-DEC-84
The program generates (up to) a thirteen month calendar, each with an ASCII art Peanuts picture. The program can be compiled with GNU Fortran using the fdec
DEC compatibility mode flag:
f77 -fdec snpcal.for snppic.for
where snppic.for
is the routine that generates the images. Only the OPEN
statements need to be modified and one line in the snppic.for
routine needs to be commented out. The executable program reads data from snpcal.dat
, a file representation of a punch card deck that contains runtime input (month range and year) as well as the encoded images and "large" text. The program output is written to snpcal.out
in a Fortran format that can be processed by asa
. There are 13 unique pictures that fill a glorious 132 lines of printed output:
Several of the images use type overstriking, which is clearly superior to other forms of ASCII art.
Year calendar
I wrote a short script to generate a year calendar using the commands cal
and figlet
and one of the SNPCAL
images. In a shortsighted development, modern distributions of cal
only generate 80-column output, so I reformatted the text for a wider 132-column structure with a few bash
script gymnastics.
Here's a printed calendar; worthy, I think, of a Real Programmer's wall.
The calendar is printed with a daisywheel printer (Qume Sprint 11/55) to mimic the impact printers used in computer centers in the 60's and 70's, such as the IBM 1403. Impact printers enable overstriking – printing glyphs on top of each other by issuing a carriage return without a line feed. The paper is green-bar Universal UNV15852 Computer Paper, 20lb, 14-7/8” x 11”, perforated, using the blank side, similar to surviving examples from the 1970's. And, in a fit of late-night artisanal ASCII art crafting by hand, I produced this realization of the historical calendar, "Curse you, Red Baron 2021."
Computer crime
James Ryan, proprietor of Aleator Press, writes that the (unauthorized) use of line printers and their associated computer equipment to generate ASCII art (such as calendars) was cited as a "canonical example" of "computer crime." In the late 1970's, proposed legislation in Congress would have made printing such calendars a federal felony punishable by 15 years in prison or a fine of two and one-half times the amount stolen, or both. (The bill limited the judge's sentencing discretion to a formula of plus or minus twenty-five percent. A Real Programmer's sentence would have to be between eleven years and nineteen years for the crime of printing a Snoopy calendar.)
As Ryan points out, John K. Taber wrote a fascinating and detailed critique of the Senate bill [John K. Taber, On Computer Crime (Senate Bill S. 240), 1 Computer L.J. 517 (1978), link] that includes Congressional testimony with the then junior Senator from Delaware, Joseph R. Biden.
Links and media
- Aleator Press - Snoopy calendars as the "canonical example of `computer crime',” James Ryan, 2021.
- Adafruit Industries Blog - 2022 Line-Printer Snoopy Calendar #Art #VintageComputing @aleatorpress @ef1j95, Anne Barela, December 9, 2021.
References
- Ed Post, Real Programmers Don't Use PASCAL, Datamation, July, 263 (1983). achive.org link
Program files
Compile with f77 -fdec snpcal.for snppic.for -o snpcal
using GNU fortran. The source has instructions for editing snpcal.dat
to change the range of months or the year. The DECUS Fortran file refers to a "non-working IBM Fortran + BAL version." BAL is the IBM Basic Assembler Language.
File | Type | Size | Description |
---|---|---|---|
snpcal.for | TXT | 14K | Snoopy calendar FORTRAN code |
snppic.for | TXT | 1K | Snoopy calendar picture generator |
snpcal.dat | TXT | 37K | Snoopy calendar data file |
genpic.f | TXT | 3.4K | Hack to generate pictures from data file |
curb.txt | TXT | 12K | Curse you, Red Baron! |
Inspired by SNPCAL
August 2022
Oliver Wendell Jones was a Real Programmer.
Courier 10 typeface rendered on a wide format Qume Sprint 11/55 daisywheel printer on green-bar Universal UNV15852 Computer Paper, 20lb, 14-7/8” x 11”, perforated, using the blank side.
Bill the Cat and Opus are left as an exercise for the reader.
2023 calendars
Text file downloads to share on your favorite BBS.
File | Type | Size | Description |
---|---|---|---|
OWJ03cal2023.txt | TXT | 39K | Oliver Wendell Jones 2023 |
CURB2023.txt | TXT | 16K | Real Programmer 2023 |