2003 — Health Study Database
HealthTronics Surgical Services, Inc. Given the task to modify an
existing Microsoft Access database application, which allowed the user to enter
data from forms gathered from a clinical study. The application needed to be
modified to reflect the new forms of the upcoming study, and required changes to
the forms, and the underlying VBA code. The project was canceled about half-way
through the implementation, due to an overall business decision by the client.
1997 — QPSK Modulator
Scientific-Atlanta, Inc. Designed and implemented front panel, power/timing calibration, and other
functions in a digital cable TV system that implemented the DAVIC
specification for the broadband division. Code was written in C++ for an
embedded PowerPC (‘603) processor.
1994 — UltraFAX
ZSoft Corporation. Fixed several bugs in the UltraFAX Windows
product.
1993 — Setup Script
Floyd Design. Created a setup script for an MS-DOS CDROM-based
application.
1993 — (Unix C Application, C-Kermit Script)
Medical Data Processing, Inc. Designed and wrote a communications script in C-Kermit to conduct batch electronic forms transfers to and from a host system.
This script was designed to be “crash proof” in that it will
recover from any conceivable error condition.
Also designed and wrote a program in Unix C that compressed the data files using compress, called the C-Kermit script to
transfer the files, and uncompressed the files that came back from the host
system.
1992 — (Hayes Smartcom Exec SCOPE Scripts)
Designed, implemented, and documented four large scripts written in
the Hayes Smartcom SCOPE
programming language as entries in the Hayes international SCOPE
programming contest. The
scripts won the overall grand prize -- a trip for four to Disney World, and
three of the four top category prizes -- totaling $8,000 cash.
1992 — Driver Development System
ZSoft Corporation. Created an environment for the development of ZSoft scanner drivers using Microsoft C.
Previously, these drivers were written in Microsoft MASM.
The trick was to use #pragmas and compiler options to link
all the pieces together and still have the initialization code discarded
after the driver loaded. Included an
extensive WinHelp
online reference modeled after the Windows 3.1 SDK Help.
Microsoft C/C++ 7.0, Masm 6.0b, Link, and Lib were used.
1992 — Crosstalk Session Converter
Digital Communication Associates, Inc. Working as a subcontractor, wrote a DLL that allowed
the user to open a Procomm
dialing directory from the Crosstalk for Windows 2.0 Open dialog.
Required
reverse engineering the three versions of the Procomm dialing directory.
Wrote a standalone Microsoft Windows application in Microsoft C for converting Procomm dialing directory entries to Crosstalk for Windows
2.0 session files.
1992 — Scanner Subsystem
ZSoft Corporation.
Wrote ZSCAN.DLL
that provides the entire scanning subsystem to a Windows application.
A second DLL was designed to provide a user interface for the custom
scanner features. ZSCAN.DLL was
featured in the ZSoft UltraFAX product.
1991 — Order Processing Application
Weatherford Enterprises
(A Robert E. Weatherford D/B/A). Using
Microsoft Excel for Windows, wrote an order entry application for associates of a well known network
marketing corporation. Designed
the order forms, summary forms, as well as over 1500 lines of macros and
dialogs to glue it together.
1988 — OrCAD Printer Driver
Created
two OrCAD printer driver
programs for the “generic” Okidata Microline 92 printer, with 72 DPI and
144 DPI resolution respectively. Written
in Microsoft MASM.
1987 — BBS Subsystem
An extension to the Fido BBS software, this application effectively replaced the File section with an
identical look and feel but enhanced with more file transfer protocols and
options. Written in Microsoft C.
1986 — Printer Setup Program
For the Okidata Microline 92 printer, allowed the user to set up all
parameters of the printer, while observing the resulting parameters such as
lines per page, characters per line, etc. Written in Turbo Pascal for
MS-DOS.
1986 — 16 Color CGA Graphics Driver
Wrote a MS-DOS TSR
program that added support for 16 color, 160x100 pixel resolution graphics
on the IBM CGA display adapter. Driver
written in Microsoft MASM, demo program written in Turbo Pascal.
1986 — 132 Column Display
Proved that a 132x24 display was possible on a IBM CGA display, by
designing the VT100 font and a simple TTY program.
Written in Turbo Pascal.
1986 — Drawing Program
Defined
a graphics object definition language for defining drawings in text form,
wrote a compiler in Microsoft BASIC-80, and the dot matrix driver in 8080 assembler.
1985 — CP/M-86 Video Driver
Ported the VIO driver for CP/M 3.0 to CP/M-86.
Written in DRI 8086 assembler.
1984 — UTL.UTL
A supplemental utility for SID (Symbolic Instruction Debugger) that
added I/O, block search, output redirection and directory maintenance
capability. Written in 8080
RMAC.
1984 — 8085.UTL
A supplemental utility for SID (Symbolic Instruction Debugger) that
added support for the undocumented Intel 8085 instructions.
Written in 8085 RMAC.
1984 — WordStar Print Formatter
Prints WordStar 3.3 documents on an Okidata microline 92 printer.
All dot commands were supported, including microspace justification,
variable line height and character spacing, superscript and subscript.
Written in compiled Microsoft BASIC-80.
1984 — CP/M 3.0 Bank Switched BIOS
Fully supported CP/M 3.0, including 1Mbyte address
space, disk caching, real time clock, multiple format 8” floppy disk
drives, video driver with TTY, VT100, VT52, ADM-3A, and IBM-PC ANSI.SYS
emulation. Ran on IMSAI 8085 machine, modified to run at 5MHz.
Written
in 8085 RMAC.
1984 — CP/M 3.0 Utility Set
OS level programs to support the CP/M 3.0 system: FORMAT multiple format 8” diskette format/verify, COPYSYS copies
the CP/M 3.0 system image to/from boot diskettes, PATH a RSX program that
allows definition of a search path even for data files, and SWAP that swaps
two logical drive letter assignments. All written in 8080 RMAC.
1984 — RAM Card Upgrade/Retrofit
A modification to the IMSAI RAM III card that increased the memory
capacity from 65,536 bytes to 1,048,576 bytes using 256k DRAM chips.
Supported the new S-100 bus definition (IEEE 696) for extended addressing.
1982 — Point Of Sale Terminal
For MEPCOM International, Inc. Designed the 8085 firmware for a small point of sale terminal,
including the 128 character font. Display based on the Intel 8275.
1982 — Menu Driven Firmware Generator
MEPCOM International, Inc. An application written to simplify the task of generating custom
printer firmwares by selecting features and options from a series of menus.
After all menu selections were completed, the firmware generator
wrote the configuration file and ran the firmware generation procedure.
Written in Microsoft BASIC-80
for CP/M.
1982-1983 — EZ-Print
MEPCOM International, Inc. Using the existing hardware of a 2.5MHz Z80, CTC and PIO, implemented a firmware for the 40 column dot
matrix printer that could receive data at 9600bps without an SIO,
manage a 32k receive buffer, and print simultaneously.
Written in Z80 Microsoft M80 macro assembler.
The firmware
was of modular design, and allowed for easy customization.
Options included bitmapped graphics, parallel interface, custom
fonts, protocols, printer emulation, and logos.
1981 — Major Hardware Bug Fix
VMX, Inc. ECS Telecommunications, as they were called then, sold the first
voice mail systems, and had about a dozen units in the field.
They were all plagued with semi weekly crashes, and ECS’s inability
to solve the design problem had reached a critical point with existing and
prospective customers. Acting
on instinct, I formed the hypothesis that it was a synchronization problem
between asynchronous subsystems, producing a lethal metastable condition.
It took only 30 minutes with the schematics to find the suspect 7474
flip flop. I set up a logic
analyzer
and actually got photos of the metastable glitches.
I then came up with a fix that required only one part change and no
wiring changes. After a few
plane trips by a technician to the installation sites, the plague was
eradicated.
1981 — RAM Card Tester
VMX, Inc. Designed a special test rig for the Intel Multibus® 64k and 128k RAM cards, using bank switching to allow the test system access
to more than 32k. Wrote an
acceptance test suite that ran a 64k card in under 2 minutes using highly
optimized 8085 assembler.
1979 — PDS-II Test Rig
IMSAI Manufacturing Corporation. A system built
around the IMSAI PIO dual parallel I/O card designed to test and align the
PDS-II, an analog floppy disk data separator.
The accompanying software program displayed instructions for the test
technician, ran the tests, and provided interactive troubleshooting hints in
cases of test failure.
1976 — 8080 Development System
Written in HP-2000E BASIC, provided an Intel MDS-style line editor and 8080 assembler with Intel hex object output and list
output with symbol table. Used to develop the FM-1 firmware.
1976 — Multiplication Table Teacher
Prototype for a handheld unit that teaches multiplication tables.
Hardware was designed with LSI fabrication in
mind, and prototyped in 7400 series TTL.
1975 — TV Typewriter Enhancements
Added a 300 baud capability, UART, TTY emulator hardware, and a
modem, all of my design, to the original Don Lancaster’s TV Typewriter.
Turned it into a terminal used to dial-up access a remote computer
system.
|