requirements specification Photo of LD series console Chances are, you know your needs. But can you state them clearly and completely? Teatronics Inc. gave us a general description for a high-end stage lighting control system. We turned this into a detailed specification of the LD series of lighting control consoles. Eighteen months later, the finished product matched our original spec.
Partial schematic from SM-IIEmbedded systems are a synergistic blend of hardware and software. That's why the hardware designer should appreciate the problems of the software designer. And that's why Starr Labs asked us to specify, and then design, their D5 processor board.

For Teatronics Inc., we've designed a highly integrated processor for the Producer II+, the Comstar/MD288 control processors, and a scalable multiprocessor system for the LD series control consoles.

hardware design
PCB layout Photo of D5 and D4 CPU boardsSure, there are outfits that specialize in PCB layout. But an intelligent layout requires hardware knowledge... and an optimal layout may require hardware design skills as well. That's why Starr Labs chose us to lay out their D5 processor board to their exacting specifications.

The board on the right is Starr Labs' original board.  Our "D5" design, on the left, has four times the memory, four times the I/O capacity, and is 40% smaller.

We've also designed PCBs for Teatronics' LD series and Producer II+, for the McMaster Tandem Accelerator, and for our own SM-II multiprocessor.

Photo of Tandem Accelerator controllerWe're not afraid to get our hands dirty.  We've fabricated and built prototypes of many of our hardware projects, including our own SM-II multiprocessor trainer.

To automate the McMaster Tandem Accelerator, we built a complete prototype of a multiprocessor control system, using off-the-shelf SBCs and our own interface boards.

Shown here is the three-processor control nucleus, installed in the equipment rack of the Tandem Accelerator.

prototype fabrication
software design partial flowchart of software UART"A better algorithm beats an optimizing compiler." Likewise, a better design is often cheaper than a megabyte of RAM and a gigaHertz CPU. That's how the Teatronics LD series lighting controller was able, with cheap 8-bit microcontrollers, to equal the performance of the competitors' 32-bit CPUs and DSP coprocessors. That's how the Teatronics MD288 phase-controlled 96 Triacs with one microprocessor and one timer.  And that's how we made Forth Inc.'s PAMELA simulator run faster on an IBM PC/XT than its predecessor ran on a VAX.

For Altech Controls, we designed a distributed object-oriented language for their BACnet(tm)-capable industrial controller.

SWITCH: mov r2,dph      ; stash new task adrs
        mov r3,dpl
        mov dph,UP      ; save me at UAREA-100h
        dec dph
        mov dpl,#h'0
        mov dr1,r0      ; save my Pstack pointer
; This loop copies internal RAM, from location
; (SP) down to 01, to external RAM.  6+7n cycles.
; The length is saved as the first byte.
        mov a,sp        ; sp=high address,
        movx @dptr,a    ;   =length.
        inc dptr
        mov r0,a        ; 00 won't be moved
saveregs: mov a,@r0      ; 1 cycle
        movx @dptr,a     ; 2 cycles
        inc dptr         ; 2 cycles
        djnz r0,saveregs ; 2 cycles

        mov dph,r2      ; now get new task
        mov dpl,r3
; This loop copies external RAM to internal RAM,
; and restores SP accordingly.  6+7n cycles.
        movx a,@dptr    ; get high address
        inc dptr
        mov sp,a        ; restore Rstack pointer
        mov r0,a
getregs: movx a,@dptr
        inc dptr
        mov @r0,a
        djnz r0,getregs
We don't just design; we implement as well. We wrote the complete operating software for the Teatronics Comstar/MD288 and the AI-based McMaster Tandem Accelerator.

We also programmed major portions of the Teatronics LD series (system executive and user interface) and Quantum consoles, the Starr Labs EventStation MIDI controller, and Altech Controls' ANGL distributed control software.

And of course, our own CamelForth programming environment is finding wide use in the embedded programming community.

documentation partial memory map of 68HC12 boardWhoever said "programmers don't like to document" never met us. We've written users' manuals for the MicroProcessor Engineering Ltd. Z8/Super8 and 68HC16 Forth compilers, and for New Micros Inc.'s Small C compiler for the 8051.

Some of our documentation is so good, it gets published. Look at the eight-part series on our CamelForth system, which appeared in The Computer Journal. And our three-part Forth Dimensions series describing the Chromium compiler has become one of the standard references on Forth metacompilers.

"It's a dirty job, but someone has to do it." Perhaps you've been left with some "legacy" code, and the original author is no longer available. Forth Inc. contracted us to maintain and update their BMDSIM simulator package for just this reason.

Or perhaps your technical staff is swamped with work.  Teatronics Inc. hired us to convert their Producer II software to a new CPU, and later to adapt and extend this software to produce the Producer II+ and Quantum lighting control consoles.  And we've developed point-of-sale terminal kernels to support Forth Inc.'s Open Terminal Architecture project.

photo of Starr Labs MicroZoneWe currently maintain the operating software for Starr Labs' EventStation and MicroZone MIDI control products.  (MicroZone photo courtesy of Starr Labs.)


...what can we do for you?