↑ Home ↑


Putting Pen to Paper
Fingers to the Keyboard

Magazine Articles
Code 521



Forget Crazy Earth, Look to the Future: Voyager and Fortran 5 (2024)
Were the Voyager spacecraft which flew by Jupiter, Saturn, Neptune, and Uranus programmed in Fortran 5? No.

In Defense of MP3 ID3 Tags (2024)
ID3 Version 2 tags are not as complex as you think.

Primality Testing (2018)
A lengthy discussion of how I independently "discovered" a long- and widely known optimization when determining if a number is prime. I should get out more, figuratively speaking.

Fast Integer Square Roots (2018)
Another lengthy discussion, this time about how I implemented a borrowed algorithm for quickly computing the integer square root of an integer, along with performance comparisons with other algorithms. I needed this fast square root function for the "Primality Testing" software I developed.

Integer/Prime Factorization (2021)
I happened to come across in Wikipedia a C++ program for reducing an integer into the product of its prime factors, a process called integer factorization. I wondered if the C++ program was subject to overflow errors and, lo and behold, it was. I pored over the program trying to figure out how it worked and then I began developing a slightly different algorithm that would eliminate any overflows.

TPOCC and Object-Oriented Programming: A Tutorial/Proposal (1991)
This lengthy, unfinished document started out as a proposal to use Eiffel on our satellite control system, but ended up being an organized memory dump of what I knew (at the time) about object-oriented programming.

Magazine Articles

These are articles that I submitted or had planned to submit to magazines. The text of the articles is as-submitted, not as-published; a couple of them were edited by the magazines, much to my distress!

"Farmer Brown on a 6800", incomplete and unpublished. (c. 1978)
An article I wrote about KIM-1-like subroutines for keyboard input and LED display output on a Motorola MEK6800D2 Evaluation Kit—512 bytes of memory! I had planned on submitting the article to one of the early microprocessor magazines: Byte, Kilobaud, who knows ...

"Permutations on a TI-58 Programmable Calculator", nonexistent and unpublished. (c. 1978)
An article I wrote about a recursive, alphanumeric permutation generator—for a TI-58 programmable calculator with printer! I had planned to submit it to Byte, back when Byte might have published an article like that. Although I don't know what I did with the article, I still have the program itself.

"You've Got a Tin Ear!", incomplete and unpublished. (1985)
Playing the blues on a Commodore VIC 20!

"Faster than Run-Time: An Optimized ASCII-to-Binary Floating Point Conversion Routine", The DEC Professional, March 1985.
A VAX assembly language function that reduced the daily CPU time required by one of our programs from 2 hours to 20 minutes.

"F$USEFUL: A Look at Some Mundane VMS Utilities", VAX Professional, April 1988.
FORTRAN implementations of the VMS lexical functions, F$PARSE() and F$SEARCH().

"Put the Power of DCL into Your Programs", VAX Professional, August 1989.
Spawning a CLI subprocess and feeding it commands.

"Turning a Tree Upside Down: Automatic Structure Chart Generation", unpublished.
Generating cflow(1)-like structure charts from VMS object modules.

"Enhanced Command Line Processing", The C Users Journal, June 1991.
Enhancing the getopt(3) function.

"C Packages", The C Users Journal, June 1992.
Implementing Ada-style packages in C. (Based on a memo I wrote.)


On this year-long project, 1984-1985, we built racks of equipment to automatically test Milstar satellite (Wikipedia) components. I wrote the systems firmware that ran on the embedded 80286 single-board computers; i.e., the core firmware used by the application-specific tasks to communicate with each other and the outside, off-rack world. This project was FUN!

Universal Firmware Design
Universal Firmware User's Manual


Jumping on the UNIX workstation bandwagon early, we developed a generic, satellite control center for NASA called TPOCC (Transportable Payload Operations Control Center). I wrote numerous how-to memos, a sampling of which follow. These were informal, internal memos that left our second manager aghast at my lack of professionalism.

Networking for Netwits! (1989?)
Written when I was much younger than today; read with a grain of salt.
TSTOL Issues and Answers (02/08/1990)
Fending off attacks on my ego!
Hashing Out XDR and Miscellaneous Other Topics (04/02/1990)
A look at XDR on the network.
Naming Conventions (02/05/1991)
Fending off attacks on our code by folks not knowledgeable about C!
Second-Hand RPC Timeout Code Considered Harmful (07/26/1991)
The "not-invented-here" syndrome has some advantages!
TPOCC Configuration Monitor Design (1991)
Object-based design in C.
Non-Blocking I/O, One Way or Another (10/28/1991)
VMS-like queued I/O under UNIX.

I also wrote:

TSTOL Reference Manual (1993, includes X-SAR additions)
The reference manual for TSTOL, the TPOCC version of NASA's Systems Test and Operations Language (STOL).


A joint venture of the United States and European space agencies, the Spaceborne Imaging Radar-C/X-Band Synthetic Aperture Radar (SIR-C/X-SAR) was flown on two shuttle missions in 1994. We built the "one-shot" (or two-shot) operations control center based on TPOCC (see above). We ported the TPOCC Unix/C software to VAX/VMS and developed our own GUIs. The port went smoothly, in large part due to VMS's relatively complete implementation of the C Library and the BSD socket library—and in small part due to my in-depth knowledge of TPOCC and my extensive experience with VMS! Let me take a bow! Despite the project being on a very tight schedule (which we met), it was a lot of fun and I got to work with a great group of people. A few employees had travelled to Italy to work out the requirements with our Italian customer (Agenzia Spaziale Italiana) and, when they returned, they established a daily "brewing of the espresso" ritual every afternoon!

XSAR and the TPOCC Display Subystem (05/21/1992)
A proposal to use Tcl/Tk as the basis for the XSAR GUI.
A Prototype XSAR Menuing System (07/07/1992)
Tcl in action: a rapidly prototyped, scripted, Motif menuing system.
An XSAR Forms Library (07/10/1992)
A Forms Management System for X Windows?
Static X/Y Plot Hardcopies and PRINT Buttons (09/04/1992)
Generating screen dumps from within an X application.
Solving the History Replay Problem (1992)
A generic telemetry decommutation library?

Code 521

Extensible I/O (03/14/1994)
A proposal for an extensible I/O package that dynamically loads application-specific, user-level device drivers.
Generic Card Debugger
Proposes a script-programmable card debugger designed to exercise and monitor in-house-designed VLSI ASICs mounted on VME cards; see gentle.
C'est Moi! (02/16/1995)
Shows how an early version of gentle was coupled with a Tk-based GUI, moi, for the purpose of monitoring and controlling our VxWorks systems. I subsequently developed a Motif equivalent to moi, called plum, which resulted in a reworking of the display classes so that the same status page definitions could be used by both the Tk and Motif versions of the GUI.
SCTGEN Scripting Language (02/23/1995)
The advantages of using Tcl scripts in place of application-specific configuration files.
You're an 8-Track Kind of Guy (03/15/1995)
A proposed, Tcl-based design for the ETS Tape Recording Subsystem software.


The TPOCC, X-SAR, and Code 521 memoranda above were printed and distributed in hard-copy form to the intended audiences. In late 1996, I began working in an environment in which E-mail was widely available and heavily used. Consequently, self-contained writings like those above were replaced by the back and forth of E-mail discussions.

GLoC's DECnet Interface to EPOCH (09/30/1997)
Proposes and evaluates three methods of linking a customer's legacy application (DECnet, VMS) with EPOCH (TCP/IP, UNIX).

Alex Measday  /  E-mail