2002-
2003
|
IsoPod: Wrote the operating software for this family of single-board computers, named one of the "Top 100 Products of 2002" by EDN Magazine.
- Converted 68HC12 MaxForth language and 68HC11 IsoMax extensions to the Motorola DSP56F805 microprocessor
- Added fast object-oriented extensions
- Wrote I/O library for DSP56F80x peripherals, including PWM, ADC, timers, parallel, serial, and SPI
- Wrote motion control (trajectory) and PID control software
- Wrote internal and end-user documentation
- Continuing maintenance of software and documentation
This project was developed in C, Forth, and DSP5680x assembler, using Metrowerks CodeWarrior.
|
2002-
2003
|
ZPC: Created software for this MIDI
guitar controller by merging and unifying the EventStation percussion
software with the "Ztar" guitar software. The new instrument adds
all of the EventStation features to the guitar instrument, with more
memory, more I/O, and faster performance, on the same "D5"
hardware. New features include more flexible zone processing,
more flexible sensor processing, new chording and fingerboard modes,
and versatile dump and restore.
|
2002
|
Harmonic Analyzer: Developed DSP software for an industrial test fixture. This assembly-language software performs signal generation, measurement, and harmonic analysis at a 320 kHz cycle rate. Recommended a Motorola DSP56F803 single-board computer at one-twentieth the cost of comparable DSP boards!
|
2001
|
Invictus: Expanded and improved the
embedded control software for this industrial laser. New
functions include improved self-test and safety interlocks, interface
to Dallas "iButton" for timing and file storage, serial remote control,
and "in-place" reprogramming of the operating software in Flash
memory. This project used a 68HC11 processor programmed in Forth.
|
| 1999- 2000 |
EventStation: Expanded and improved this MIDI percussion
controller. Designed a "quasi logarithmic" preamplifier to improve dynamic
range and sensitivity for piezoelectric sensor inputs. Assumed maintenance
of prototype software, and produced final production software, including:
-
Faster and more flexible scan and event processing
-
MIDI receive processing, sequence recording and playback, and bulk dump
-
Absolute and variable time scheduling, and programmable metronome
-
Memory expansion through paged RAM management
-
"Menu engine" for simpler and more flexible user interface programming
-
Many new operating modes
This project was developed in Forth and Zilog Super8 assembler, using MPE
Ltd.'s Forth cross-compiler. |
| 1999 |
MicroZone: Adapted software from the "Ztar" MIDI
instrument to accept an 810-key microtonal keyboard and produce a multichannel
MIDI output. |
| 1998- 1999 |
ANGL: Developed a distributed object-oriented language
for an embedded industrial controller, to meet the requirements of the
BACnet(tm) specification for building automation and control networks.
Fully responsible for implementing:
-
Late-binding object-oriented extensions to Forth language
-
BACnet(tm) object model and message services
-
Predefined classes for control actions, including tokenized formula processing
-
Multi-drop RS-485 master-slave network using 8-bit UARTs: Data Link, Transport,
and Application layers
-
Modem & PC gateway for network
-
Thorough documentation
This project was developed in Forth and 68HC12 assembler, using Forth Inc.'s
SwiftX(tm) cross compiler. |
| 1998 |
PSC1000: Developed asynchronous serial drivers for
the I/O processor of the PSC1000 microprocessor. |
| 1997- 1998 |
D5 CPU: Designed a Zilog Super8 embedded processor
board for a MIDI musical instrument. The new board is 40% smaller yet has
four times the capacity of the previous processor, at comparable cost.
Software for the previous board was converted while retaining backward
compatibility; new features include aftertouch sensing and output, and
support for a microtonal keyboard. |
| 1996- 1997 |
OTA: Developed software for point-of-sale terminals
under the Open Terminal Architecture specification. Supported and extended
Forth kernels on 8051, 6303, and 68000 processors; wrote hardware I/O drivers
and OS interface routines; implemented extended precision math for security
algorithms; installed and validated application code. Developed a byte-code
Forth interpreter for an 8051-based "smart card" using less than 128 bytes
of RAM and 3.5K of ROM; this interpreter runs twelve times faster than
a competitive product. |
| 1993- 1996 |
Tandem Accelerator: Conceived and implemented a real-time,
distributed, inference-driven control system for a Tandem particle accelerator,
including:
-
fail-safe, retrofit interfaces to the vintage-1968 electronics
-
distributed, embedded expert system - over 3000 inferences/second
-
temporal algebra and temporal logic for process control
-
expandable token-ring network using asynchronous serial ports
This project employed a network of 68HC16s and IBM PCs, was written in
Forth, and has been accepted for a Ph.D. in Computer Engineering. |
| 1995 |
8051 Small C: Wrote and documented Small C for the
8051 microprocessor. |
| 1994 |
CamelForth: Developed CamelForth, a portable ANS
Forth compiler for Harvard and von Neumann processors, with implementations
for Z80, 8051, and 6809. |
| 1994 |
6809 SM-II: Designed and constructed an inexpensive
multiprocessor for education and research. Designed novel logic to use
common 8-bit processors, to reduce total system cost below $200 per CPU. |
| 1993 |
Chromium metacompiler: Developed Chromium, a interactive
Forth cross-compiler. |
| 1993 |
68HC16 MPE Forth: Wrote MPE Forth for the 68HC16,
including kernel, multitasker, and documentation. |
| 1991- 1992 |
Echelon: Conceived and developed the Echelon lighting
control system:
-
expandable multiprocessor hardware using Zilog Super8s
-
"P4 bus" for interprocessor direct memory transfers
-
"SP bus" master/slave network for remote, distributed CPUs
-
all processor and I/O hardware - CGA/EGA video, floppy disk, various serial
interfaces, analog multiplex I/O
-
fast multitasker with 13 microsecond context switch
-
executive and operator interface software
-
"tiered tandem" calculation routines for 300% faster operation
-
over 20,000 lines of code in Forth and Super8 assembler
Worked with team members and co-developers in California to complete in
1.5 man-years what took the competition five! |
| 1991 |
Z8 Max-Forth: Wrote Z8/Super8 Max-Forth, with adaptation
to Harvard architecture. |
| 1991 |
Z8 MPE Forth: Wrote MPE Forth for Z8/Super8, including
kernel, multitasker, and documentation. |
| 1989- 1990 |
Producer II+: Continued software development for
Producer II+ lighting console, including improved command processor, remote
terminal, video displays, printer and disk functions, in Super8 assembler. |
| 1989 |
Quantum: Supported software development for the Quantum
high performance entertainment lighting system, using the Producer II+
CPU board. |
| 1988 |
Producer CPU: Designed and constructed a Zilog Super8
single-board computer for retrofit into the Producer II lighting control
console. The new board doubles performance at lower cost, and adds interfaces
for floppy disk, printer, high- and low-speed serial, VFD/LCD, and an IBM
Color Graphics Adapter. Wrote all I/O drivers, a Z80-to-Super8 assembly
language translator, and full documentation. |
| 1988 |
BMDSIM: Helped convert a Ballistic Missile Defense
simulator from a Tektronix graphics workstation to an IBM PC-AT. Wrote
polyForth drivers for Tecmar Graphics Master boards, allowing four EGA-quality
graphics displays in a single IBM PC. Improved orbit and target simulations
and displays. |
| 1987 |
Comstar/MD288: Developed Comstar, a Zilog Super8-based
interface and control board for theatrical dimmers. In two months, designed,
prototyped, and tested hardware and assembly-language software for multi-protocol
data reception, and for real-time phase control of an array of power semiconductors.
Wrote full technical documentation, extensive diagnostics. |
| 1987 |
VectorForth: Developed software for a PC-based array
processing workstation. Wrote assembler and system interface for Vortex
and Point-I array coprocessor boards, polyForth language support, and 3-d
graphics. |
| 1987 |
AirHouse: Designed and wrote Z80 control software
for a networked HVAC control system. Implemented PID control algorithms,
fault response, and network communications code, using polyForth and clusterForth.
Wrote detailed customer documentation. |
| 1986 |
PAMELA: Developed IBM PC/XT simulation software for
an adaptive optics subsystem, including 3-d modelling, time simulation,
and graphic display. Extensive code optimization in polyForth and 8087
assembler achieved 20 times the speed of a VAX. |