In the late 1970's, when the personal computer bug bit you the choice was simple: Apple II v. Atari 400/800 v. Commodore PET. In retrospect, the answer is obvious. But I guessed wrong: first Commodore (~1977- ~1982) and then Atari (~1982- ~1984). I was an impecunious grad student, and the Commodore PET ( = "Personal Electronic Transactor" — what a dorkismatic name!) at $800 was cheaper than the competition. It came with a massive 8kB of RAM, a built-in monitor, and a tape cassette drive for (slow) program storage and retrieval.
Once I got the PET I began to raise money for frills by writing magazine articles on hobby computing themes. The prose was pedestrian but the cash flow was good — something close to minimum-wage, if one counted all the software development time, but I didn't know any better. And I would have done the programming regardless, so any return was pure gravy. (I wasn't a vegetarian then.)
A recent dig in the ^z basement uncovered a small shelf of old magazines containing many of those long-forgotten articles. Lest they be (mercifully!) lost to posterity, here's a summary of what surfaced, plus some notes on a few gaps in my PET bibliography.
- BYTE paid the best, $50 per page, and thus became my prime target:
- "A Binary Guessing Game: Calculator Pattern Recognition" was co-authored with James Blodgett (Albany, New York). Technically this piece was written B.P., before the PET era, but it wasn't published until a couple of years after it was submitted. I don't remember how Jim & I found each other (early ARPAnet email? on-paper correspondence?) but though we never met in person we worked together to develop a little HP-25 calculator program which I then wrote up for joint publication. It played a brutally simplified variant of rock-paper-scissors — simplified down to heads-or-tails. (We only had 49 program steps to hack with.) The human picked 0 or 1 and the machine tried to guess in advance what the choice would be, based on nonrandom patterns in the user's prior moves. It was surprisingly tough to beat in the long run. (Vol. 4, No. 4, April 1979, pps. 236-237)
- "Simulating Physical Systems: the Two-Dimensional Ideal Gas" appeared in the same BYTE issue as the binary guessing game article, though it was written a year later. It showed how one might model a gas and study its properties on a small computer. The simulation began with 256 square "billiard balls" at rest, gave one of them a kick, and then watched for collisions on the 50x80 cells of the Commodore PET's maximum-resolution screen. With the hard inner code written in assembly language for speed, surrounded by a soft and fluffy BASIC shell, the article filled over half a dozen magazine pages (including listings and screen snapshots) — so selling that piece brought in a healthy chunk of change for a poor kid. (Vol. 4, No. 4, April 1979, pps. 26-41, but with many intervening ads)
- "Simulating Physical Systems: Solving Laplace and Poisson Equations" was a tutorial about how to model the static electric fields around an antenna or other arrangement of electrically charged objects. It described the use of simple "relaxation" methods on a grid, implemented in BASIC on the PET. (The title is approximate. I have not located a copy of this article; it probably appeared in mid-1979. If anyone can track it down, please contact me.)
- "FLOPTRAN-IV: a Tiny Compiler" presented the full source code for a system to take a subset of BASIC and turn it into 6502 machine language, making it run 10 to 100 times faster. (The name came from "FLOating Point TRANSlator" and was a weak play on FORTRAN.) Although the program itself is scarcely memorable, the method I used for generating the printouts is quite amusing. I was too cheap to buy a printer. But (necessity being the mother of invention) I realized that my computer's sound-generating chips could easily make modem-like noises — and that if I could record those chirps and then play them back into an acoustic coupler at school, I might be able to generate output on a standard teletype. Huummmiiiiooooowheeeeee! A correspondent, Charles McCarthy (St. Paul, Minnesota), implemented the idea in software he punnishly called "Cheep Print" — a splendid hack. (Vol. 5, No. 10, October 1980, pps. 196-228)
- "A Beginner's Guide to Spectral Analysis, Part 1: Tiny Timesharing Music" explained the ideas behind Fourier transforms and applied them to generate tones and then tone sequences. I wrote machine-language code to update melody notes in background 60 times every second (whenever the PET interrupted operations to paint the screen and check for keystrokes). The program generated and played eight harmonious intervals, inverted them each in turn, and then randomly varied them further. As for the quality of the "music" that resulted, it was at best mixed; in the article I only commented "...'interesting' is in the ear of the beholder...." Nowadays I would rate it somewhere near video-game accompaniment, i.e., rather abysmal. (Vol. 6, No. 2, February 1981, pps. 68-90)
- "A Beginner's Guide to Spectral Analysis, Part 2" moved on from one-dimensional (^_^) music to work with two-dimensional images. It showed how to take a picture on the computer's screen, do a Fourier transform, and make a simple hologram. The program that implemented this was quite slow: it required four minutes to compute a single image. But it illustrated the key features of the problem, and offered amateurs a chance to get some hands-on understanding of important concepts. (Vol. 6, No. 3, March 1981, pps. 166-198)
- Diane LeBold, the editor of Commodore Microcomputer magazine, saw some of the popular-science articles I composed using my PET. She invited me to write a column for her. I proposed a series called "Random Thoughts" focused on (what else?) random numbers and their applications. Commodore's house-organ magazine paid well at first, but as the company's fortunes waned the 'zine began to encounter troubles and eventually folded. (I may be missing an issue or two in the list below, or they may not have been published; please help me fill the gaps.)
- on random number generators and the concept of pseudorandomness (Vol. 4, No. 3, Issue 24, June/July 1983, pps. 48-51)
- on discrete random number distributions and how to build them (Vol. 4, No. 5, Issue 26, October/November 1983, pps. 84-86)
- on continuous random number distributions and their moments (Vol. 4, No. 6, Issue 27, December 1983, pps. 48-51)
- on Gaussian distributions (bell-shaped curves) and how to generate them (Vol. 5, No. 1, Issue 28, January/February 1984, pps. 76-79)
- on Poisson distributions and their applications to simulation and modeling (Vol. 5, No. 2, Issue 29, May/June 1984, pps. 73-75)
- on random walks and Brownian motion (Vol. 5, No. 3, Issue 30, July/August 1984, pps. ?-? — I'm missing this issue)
- on applications of randomness to computer games (Vol. 5, No. 4, Issue 31, September/October 1984, pps. 34,35,81)
- on generating "good" random numbers and tests for randomness (Vol. 6, No. 2, Issue 34, March/April 1985, pps. 62-64)
- on white, pink, and red noise — power spectra of random distributions (Vol. 6, No. 3, Issue 35, May/June 1985, pps. 56-58)
- on randomness in language, with applications to information theory, entropy, and cryptography (Vol. 6, No. 4, Issue 36, July/August 1985, pps. 62-64,124)
- In Creative Computing magazine I published an article documenting "BIGNUM" — a BASIC program to do 1000-digit integer arithmetic. BIGNUM emulated a programmable stack-oriented calculator, and included routines to add, subtract, multiply, divide, and raise numbers to powers modulo a chosen base. It wasn't very fast; two 100-digit numbers took about 20 seconds to multiply together and make a 200-digit product. But it did allow anybody to do experiments with public-key cryptosystems such as those described in Martin Gardner's Scientific American column in 1978. (ca. 1980; a copy of this 'zine was spotted around Chez ^z within the past year, but it apparently has been lost or destroyed in the course of youthful exuberance. Please tell me if you have seen it.)
- Personal Computing magazine was good-spirited but did not last long. I remember selling one article to it: a detailed discussion of random number generators with an analysis of flaws in the PET's built-in BASIC random number function. An anonymous Microsoft programmer who wrote the code tried to be extra-clever. He (I presume it was a "he" at that time!) mixed up the bytes in the course of a standard linear-congruential function. Of course, that made the generator break down and repeat every 10,000 or so steps; it doesn't pay to over-complexify! I noticed the problem when trying overnight Monte Carlo experiments because the statistics didn't improve with the square root of the number of trials. But it took a month of detective work to track down the problem. The article sold for $25 or so ... clearly a labor of love, not money. (~1978; I cannot locate a copy of the 'zine; possibly I have the name wrong. Please let me know if you can find it.)
The basement archæological dig also revealed a BYTE issue that contained an article by two good friends, Caltech astrophysics grad student comrades Doug Macdonald & Yekta Gürsel. They used my Commodore PET to develop the code for "Solving Soma Cube and Polyomino Puzzles Using a Microcomputer", a fascinating exercise in assembly-language programming and problem-solving heuristics. (Vol. 4, No. 11, November 1979)
These hobby-computing articles didn't change the face of human civilization, but they did trigger some interesting correspondence. Computer magazines at that time published the author's address, and I began to receive fan letters, including a couple from a mass murderer in California's Lompoc prison (the "trash bag killer"; he was interested in number theory).
I also got a series of long missives postmarked Mexico City, on onionskin paper, punched out in all-caps on a manual typewriter. Their author explained that Radio Shack was involved in a conspiracy against him, and that the gas ovens in WWII German death camps were teleportation/time-travel devices. He enclosed lists of license plates from cars that were following him. I did not write back.
Tuesday, May 23, 2000 at 05:55:43 (EDT) = 2000-05-23
(see PetBibli2)
TopicPersonalHistory - TopicProgramming - TopicWriting
(correlates: SeriousPerson, PetBibli2, ThanksAndAcknowledgements2, ...)