Retro Computing · Binary Systems

Nothing beats old code.Old code: tested, hardened, and efficient.

The code that runs the world’s plants and switches wasn’t written last quarter. It was written carefully, tested in the field for decades, and asked to fit in a few kilobytes. We keep it running. Open source, on modern hardware, under modern discipline.

mimic09 0.9 · Mimic SuperMon

01 · The case for old code

New isn’t a virtue. Working is.

Every rewrite throws away years of bug reports nobody remembers filing. We take the other road: keep the proven code, move it onto hardware you can buy today, and put it under the same controls as anything we ship.

OPEN SOURCE

Read every line.

PROTEL 2026 is free under GPLv3. Mimic is too. VoxBox is built on Asterisk and published on GitHub. Heritage you can’t read is heritage you can’t keep.

VIRTUALIZATION

Same code. New iron.

Mimic emulates the Motorola 6809 and Hitachi 6309 on macOS and UNIX/Linux. VoxBox ships as a small Debian-based virtual machine and runs on bare metal or under Harvester.

DEVSECOPS

Old code, new controls.

Version control, reproducible builds checked against archived images, automated tests and a hardened install. The discipline is modern even when the opcodes aren’t.

EFFICIENCY

Kilobytes, not gigabytes.

Our process-control firmware was built to fit an 8 KB PROM window. The emulator that runs it today is a single native binary of about 172 KB.

02 · Example one

Mimic. The 6809, on modern iron.

Mimic is our 6809 and Hitachi 6309 toolchain and emulator for macOS and UNIX. It is open source under the GNU GPL version 3, and it’s on GitHub now.

  • mimic09, the CPU emulator, with Mimic SuperMon, a machine language monitor in the Commodore 64 style: registers, memory, assemble, disassemble, single step, breakpoints, hunt, fill, compare, and load or save in S-record, Intel hex or binary.
  • New: a full-screen editor. On a terminal, the arrow keys move through the memory, register and disassembly lines the monitor has drawn. Type over a byte or a register and it’s written; edit a disassembly line and Return assembles it. It speaks the escape codes shared by macOS Terminal, xterm, a VT100 and a DEC VK100 GIGI.
  • New: Hitachi 6309 assembly and disassembly in the monitor, and a native 6309 mode that shows the E, F, V and MD registers.
  • Emulated 6850 ACIA and 6821 PIA. The ACIA can be wired to your terminal or to UNIX pipes, so 1980s serial I/O meets a modern shell.
  • cc09, a recreation of the Wintek 6809 assembler (a9), relocatable linker (xld), K&R C compiler (xc9) and PROM filter (hex). a9 reads Wintek and EXORciser / MDOS source, accepts 6800 spellings such as LDAA, and writes relocatable S-records that xld links into an absolute image.
  • An instruction-set suite pokes opcodes in by hand through the monitor, single-steps them and checks every register against the Motorola and Hitachi references.
Terminal window running mimic09 with Mimic SuperMon. Five 6809 instructions are assembled at address 1000: LDA #$2A, STA $2000, LDX #$2000, INC ,X and LDB ,X. PC is set to 1000 and the monitor steps five instructions, printing each with its cycle count. The register line then shows A=2A, B=2B and X=2000, and a memory dump at 2000 shows the stored byte incremented to 2B.
Mimic SuperMon, real session. mimic09 0.9 built from the GitHub source on Linux x86-64, October 27, 2026.
$ ./tests/run-instr-suite.sh
...
Passed: 47
Failed: 0
Total : 47
All tests PASSED!

$ mimic09/bin/mimic09 -l tmp/acia-hello.mik --acia 0xF940 -g
Loaded 42 bytes from tmp/acia-hello.mik
PC set from reset vector to 0100
Running. Press Ctrl-C to return.
HI!

The instruction suite, then a program assembled by a9 and linked by xld from tests/asm/acia-hello.asm, printing through the emulated 6850 ACIA. Output trimmed.

03 · Example two

PROTEL 2026. Back on the line.

PROTEL, the Procedure Oriented Type Enforcing Language, is the language used in the Nortel / BNR DMS switching systems. Bell-Northern Research designed it in 1975 for the DMS-100 and its Switching Operating System. Nortel teams wrote tens of millions of lines of it for production switches around the world.

  • Strict typing so mistakes surface at compile time, not when a call is on the line. Ranged subtypes, sets, tables, structures and descriptors come standard.
  • Described publicly in Protel: a high level language for telephony, IEEE COMPSAC 1979, and Experience With a Modular Typed Language: Protel, ICSE 1981.
  • PROTEL 2026 is a free, open GPLv3 toolchain for macOS and UNIX/Linux. Pc enforces the types and builds native code with GCC or clang++.
  • Legacy code welcome: --classical restores DMS case-insensitivity, and PLS edition suffixes from .AA01 to .ZZ99 are recognized.
  • Plays well with others through EXTERNAL and EXPORT: C, C++, Rust, Swift, Python and Java. Plus the Pb beautifier, the Pc! shebang runner, a GNU Emacs mode, man pages, and a 97-page Introductory Manual and 123-page Reference Manual.
  • The toolchain installs as part of VoxBox 2026.
examples/intro_1_3_factorial.P
SECTION factorial_demo;

TYPE integer {-32768 TO 32767};

DCL factorial PROC(n integer) RETURNS integer IS
BLOCK
   DCL result, i integer;
   n -> i -> result;
   WHILE (i - 1 -> i) > 1
   DO
      i * result -> result;
   ENDDO;
   RETURN result;
ENDBLOCK;
$ Pc examples/errors/err_constant_out_of_range.P
Pc: type error in '...err_constant_out_of_range.P':
value 300..300 is out of range for
{0 TO 255} in assignment statement

Left to right with ->, known as gazinta. The factorial is from the Introductory Manual; the error is Pc refusing a value that won’t fit its type. From the PROTEL 2026 page.

04 · DevSecOps, applied to old code

Treat heritage like production. Because it is.

Old code earns its keep when it’s under the same controls as new code. That’s how we run it.

Version control

Every project lives in git, on our own Gitea server and, for open source, on GitHub. Originals are archived beside the new work and never edited.

Reproducible builds

Mimic rebuilds archived firmware from its original sources and checks the result against the archived images, byte for byte. A build that can’t be reproduced isn’t trusted.

Testing

Instruction-by-instruction CPU validation against the manufacturers’ references, a scripted monitor session, and a pytest suite for PROTEL 2026.

Hardening

Types enforced at compile time in PROTEL. A firewall and port knocking set up by the VoxBox installer. Systems that run on hardware you control.

Traceability with V

V is our agentic Model Based Systems Engineering (MBSE) platform for the V-Model, the Scaled Agile Framework (SAFe) and DevSecOps. Mimic runs as a V program, with a requirements baseline and work planned in SAFe waves. The firmware archive has a V program of its own.

Experience on both sides

Binary Systems has the rare combination of experience in legacy TDM telephony and in VoIP. Knowing the old system is how you move it safely.

05 · From the archive

Decades of software. Still in the repos.

Our repositories hold work that predates the repositories. The dates below come from copyright headers and revision notes in the code, not from when it was checked in.

1977The original BSI, born outside New Orleans
35repositories on our own Gitea server
10primary languages, from 6809 assembly and C to C++, Python and Swift
4heritage projects open on GitHub: Mimic, PROTEL, VINNIX and VoxBox
  1. 1977

    Binary Systems is founded in Kenner, just outside New Orleans, building embedded control and communication systems for the petrochemical industry.

  2. 1985

    SCADA firmware for Motorola 6800-family controllers. The oldest dated revision note in our archive is from January 1985.

  3. 1988–1989

    VINNIX and VIOS. A cooperative-multitasking real time executive for the 6809 with tasks written in C, and interrupt-driven 6850 ACIA I/O. They were the basis of our digitized-voice annunciator and SCADA systems. Copyright 1988–2020 Binary Systems.

  4. 1994

    Mimic. The original Mimic 6809 emulator, created for internal use.

  5. 1996

    sX. The embeddable switch behind VoxBox sX, with copyright headers from 1996 forward. Its call model is VAIN, “Intelligent Interworking.”

  6. 2007

    VoxBox returns as an open, standard Asterisk PBX distribution. Copyright 2007–2026.

  7. 2020

    VINNIX goes public on GitHub under GPLv3, with the recovered 1989 sources added since.

  8. 2026

    PROTEL 2026, VoxBox 2026 and Mimic, all under GPLv3. A 1975 language back on the line, a PBX on your own server, and a toolchain that rebuilds our 1980s firmware on modern hardware.

“Nothing beats old code. Old code: tested, hardened, and efficient.”

Vincente D’Ingianni, Binary Systems, Inc.

07 · Bring us your old code

It’s worked for decades. Let’s keep it working.

Firmware with no toolchain left. A language with no vendor. A system nobody wants to touch. Tell us what you need to keep running, and the conversation stays confidential.