Putting Pen to Paper
and
Fingers to the Keyboard
Articles
Other
Milstar
TPOCC
X-SAR
Code 521
EPOCH
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.
- 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.
- 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.
- 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.)
Other
- TPOCC and Object-Oriented Programming:
A Tutorial/Proposal
- This 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.
- Primality Testing
- 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
- 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
- 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.
- Forget Crazy Earth, Look to the Future:
Voyager and Fortran 5
- Were the Voyager spacecraft which flew by Jupiter, Saturn, Neptune,
and Uranus programmed in Fortran 5? No.
Milstar
On this project, 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
TPOCC
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
- The reference manual for TSTOL, the TPOCC version of NASA's Systems
Test and Operations Language (STOL).
X-SAR
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
- 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.
EPOCH
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).