Computie 68k

A series of single board computers using 68010 and 68030 processors, along with Gloworm, a Unix-like OS, that runs on them.

Molten

A type-inferred language and compiler, written in Rust, based on ML, Rust, and Python, and using LLVM as the backend. It can compile to LLVM IR bitcode, which can be further compiled to a native binary.

Moa Emulator

An emulator for 68000 and Z80 processors written in Rust. It can emulate the Computie hardware, as well as the Sega Genesis and the TRS-80. I've also been working on support for the Macintosh 512k.

Ruxpin OS

An Operating System written in Rust for a Raspberry Pi 3 (Aarch64), which also runs in Qemu. For the moment, it's a simple monolithic OS with a Unix-like API. It can run user processes in their own virtual memory address space, loaded from an elf binary compiled by Cargo, which is in turn loaded from the microSD card. It also has a virtual file system with support for reading and writing ext2 partitions.

Fidget - The FPGA Widget

An iCE40 FPGA Development board with the Computie bus, to act as a generic peripheral device for Computie, or possibly an in-circuit debugger or logic analyzer.

Z280 Computer

A prototype for bootstrapping development with the Z280, a 16-bit extension of the Z80 CPU. It has some onboard memory, and space for a CompactFlash card slot, and ATF1504AS CPLD to extend the onboard logic.

Gloworm OS

A Unix-like Operating System written in C for Computie (68k). It supports the Minix file system, along with a simple procfs, devfs, and memory-backed file system. Through the second serial port on Computie, it can operate SLIP (Serial Line IP), with a rudimentary UDP and TCP implementation, which when bridged to the internet using another computer, can run NTP to update its system clock, and host a proof-of-concept HTTP server.

Nerve Control Network

A server program written in python3 that controls and coordinates devices in the home. This project ties together the Android Remote, RGB Nodes, and Desk Clock projects, along with various other control and data sources, such as VLC, XMMS2, IR-controllable equipment, and MySensors wireless nodes. A built-in web server is used as the primary user interface.

DeskClock 2

A desktop companion with an LCD screen, buttons, and a temperature sensor, using an Adafruit Feather STM32F405. It displays the current time, current artist and song playing on the desktop, and the indoor and outdoor temperatures. The buttons control the music, sort/shuffle the playlist, and turn on lighting in my room. The desktop side of the control uses Nerve.

RGB Node

An Arduino-based controller for RGB LED strip lighting. The controller has an IR receiver programmed to read the codes from a repurposed TV remote, as well as to receive commands through USB from a computer. Multiple controllers are able to work in unison via a MIDI-based communications bus. The controller also has a generic IR transmitter which can be used to control audio/visual equipment (a TV and stereo in the current setup).

RGB Node, but with Rust on an STM32

A port of RGBNode to Rust using an STM32F103 Bluepill board. It uses the usbd-serial crate to communicate with a computer, and uses the infrared crate to receive IR commands from the same repurposed TV remote. Currently it's only built as a prototype on a breadboard, and doesn't include the daisy-chained MIDI-based bus for controlling multiple units

WebMUSH

A web-based multi-user shared hallucination, in the spirit of the MUDs, MUSHes, and MOOs of the 80's and 90's.

Conlog

A simple prolog interpreter with no external depedencies, written in Rust.

Falling Rust

A falling sand game written in Rust and compiled to Web Assembly. A demo is available at here

A Bug's Life Simulator

An artificial life simulator written in Rust and using the Piston game engine. Circular creatures move around in search of food on the tiled ground with an effect that looks like bugs.

A Caml's Life Simulator

A clone of the "A Bug's Life" simulator, but written in Ocaml.

Synthetik

An arduino shield with Yamaha FM synthesizer chips, and MIDI input, to be used as an audio synthesizer (work in progress).

Meteor Games Website

A website written using the Meteor node.js framework, for playing some card games and tile rummy. Play in real time against other human players. This project was not fully completed and has a lot of rough edges. A demo site may be available at http://games.jabberwocky.ca/

Logarithm

An IRC bot that primarily logs the chat to text files and makes them available via the web. Logarithm also provides some helpful features such as trivia, a decision maker, a calculator, and a system of polling/voting among channel users. It was in use 24/7 from 2002 until 2021.

Super Duper Moo

A MOO, inspired by LambdaMOO, that allows users to connect with an IRC client (originally intended to have support for multiple protocols). Written in C++, it contains it's own Scheme-like scripting language and stores the object database in XML.

SDRL

An obtuse and needlessly tedious interpreted language in which almost everything is a function. The interpreter is written in pure C and the language itself is vaugely Scheme-like with no specific definition. The interpreter itself can be configured for a number of different language features (different parsers, different scope rules, etc.).

Stutter IRC Client

A text-based IRC client written in C and designed for portability. The client is/was usable and was my main IRC client for a few years, before neglect and a lack of features drove me to use other programs.

Posts