Video: C Programming on System 6 - Porting OpenBSD's diff(1)

posted on oct 28th, 2020 with tags mac, retrocomputing, and video
part of C Programming on System 6 series

I’ve wanted a simple revision control system on my Mac since starting development of my IMAP client. Porting a large system like Git or even CVS would be overkill (and very slow), but maybe something small like OpenBSD’s RCS implementation would suffice. For now, just having a diff utility would be helpful so in this video I port the guts of OpenBSD’s diff(1) and show it generating a unified diff between revisions of a C file.

Continue reading 236 words...

Video: C Programming on System 6 - Parsing RFC822 Dates

posted on oct 16th, 2020 with tags mac, retrocomputing, and video
part of C Programming on System 6 series

I wrote a utility function to parse RFC822 dates/times sent by the IMAP server, which then converts them to a UTC time. In this video, I hook it into the IMAP parser and add a resource string for the local timezone offset setting, so these UTC times can then be converted to a local time and displayed in the message list.

Continue reading 167 words...

Video: C Programming on System 6 - Intro

posted on oct 1st, 2020 with tags mac, retrocomputing, and video, and last updated on oct 20th, 2020
part of C Programming on System 6 series

I’ve been writing an IMAP client for and on my Mac 512Ke over the past many weeks. Taking inspiration from Andreas Kling’s excellent YouTube videos documenting his development of the Serenity operating system, I thought I’d start screencasting some of my work.

This video is the first of hopefully many and presents a quick introduction to System 6, HFS resource forks, THINK C 5.0, and a look at some of the progress of my IMAP client so far.

Continue reading 347 words...

OpenBSD on the Microsoft Surface Go 2

posted on may 15th, 2020 with tags laptops, and openbsd, and last updated on jul 31st, 2020

I used OpenBSD on the original Surface Go back in 2018 and many things worked with the big exception of the internal Atheros WiFi. This meant I had to keep it tethered to a USB-C dock for Ethernet or use a small USB-A WiFi dongle plugged into a less-than-small USB-A-to-USB-C adapter.

Microsoft has switched to Intel WiFi chips on their recent Surface devices, making the Surface Go 2 slightly more compatible with OpenBSD.

Continue reading 2,098 words...

A USB Loader for the Cidco MailStation

posted on mar 31st, 2020 with tags hardware, mailstation, and z80

Last year I wrote about the Cidco MailStation and how I was using it as a Z80 development platform. One of the biggest hurdles to running code on them is that it must be uploaded over the MailStation’s parallel port with a LapLink cable and some custom software (although it’s certainly easier than having to pull and flash a chip).

I recently created a USB data loader device that allows for easier development from a modern computer and implements the MailStation’s custom data encoding routines in its firmware.

Continue reading 926 words...

Arduino Development on OpenBSD

posted on dec 17th, 2019 with tags arduino, hardware, and openbsd

Back in 2017, I bought an Arduboy, a fun little Arduino development system which integrates an ATmega32U4 8-bit CPU, 32Kb of flash storage, 2Kb of RAM, a 128x64 pixel OLED display, some buttons, a speaker, and a battery in a Gameboy-like package.

OpenBSD had an old Arduino package available without the Arduino IDE, and it instead included a custom Makefile for end-users to build off of for compiling projects. But it was all pretty old and crufty and kind of sucked the fun out of tinkering with a new piece of hardware.

Continue reading 752 words...