Tuesday, April 4, 2023

Crypto Ancienne 2.2: now supported on AmigaOS and classic MacOS/MPW

As threatened we're up to the next checkpoint with Crypto Ancienne, the TLS 1.2/1.3 library we maintain for pre-C99 vintage compilers and architectures, so here's version 2.2, or "Crypto Ancienne Meets the Hooded Fang" (read about previous releases).

New checkpoints are always an opportunity for new ports. Why am I showing you a picture of my Amiga Technologies A4000T? Because AmigaOS 3.9 is one of them!

Friday, March 31, 2023

Refurb weekend: DEC AlphaPC 164LX

It's time for another Crypto Ancienne checkpoint, which will be a post Real Soon Now(tm), including some new operating system frontiers. But part of the work for Cryanc is all the build regression testing on the supported platforms: each of the platforms I vouch for has to be able to compile the updated source code and use carl, its built-in mini-curl clone (officially the "useful" demonstration application), to successfully and completely download from a selection of real websites. One of these is harlan (named for Harlan Anderson, co-founder of Digital Equipment Corporation), my one and only DEC Alpha-based machine, a DEC AlphaPC 164LX running Digital UNIX Tru64.

The DEC Alpha is a good test for Crypto Ancienne because it's a fast (for the time) and finicky (for all time) RISC architecture, with notoriously strict alignment requirements and an extremely loose memory model. Early Alpha CPUs in fact entirely lacked instructions for direct short or byte access — 32-bit, 64-bit or bust. Unfortunately the Ethernet card blew while I was testing Cryanc 2.0 and I couldn't validate that version, so I just pushed that checkpoint out the door. Well, we can't do that two releases in a row, darn it. I have a replacement NIC and a mission. It's time for a Refurb Weekend.

Tuesday, March 21, 2023

Printing real headline news on the Commodore 64 with The Newsroom's Wire Service

Besides other things I've written or supervised, so far in my time I've also edited three periodicals, and Springboard Software's The Newsroom is a big reason why. In today's article we'll not only look at the guts of this pioneering 1984 software package, but also solve a childhood mystery I've wondered about since the very first day I touched the program by MITMing an RS-232 connection to snoop on serial data — and then print out a brand new 2023 newspaper with 2023 headlines to prove we cracked the case. (Scroll to the end if you just want to see the finished product.)

Saturday, March 4, 2023

Refurb weekend: Cobalt RaQ 2

In the post on our recently resurrected fork of Dreamcast Linux, I mentioned the NetBSD NFS server providing basically all of its persistent storage. A few days into the development work I started hearing a weird whine coming from the server room and sure enough the NFS server had a bad fan — in fact, the only fan cooling the entire 1U system. That means it's time ... for another Refurb Weekend!

Sunday, February 19, 2023

Dusting off Dreamcast Linux

Yes, here at Old VCR we live in the past, when RISC Unix workstations still ruled the earth like large boxy tentaculous Cthulhus. Oh, sure, if you wanted a modern equivalent you could just buy a Raptor POWER9 like the one I'm typing on now. But around here even PowerPC is too pedestrian of an architecture. We need something unique.
That's more like it! A keyboard, mouse, a NIC, VGA output, 16MB of RAM and a whole gig (you wish) of read-only optical drive space with a 200MHz Hitachi SuperH SH-4 CPU faulting its paltry 8K of I-cache and 16K of D-cache non-stop. Now freshly refurbished, its cooling fan runs louder than my Power Mac Quad G5 at idle and the drive makes more disk seeking noise than when I can't find a lost floppy. And since the buzzword with Linux distros today is immutability, what could be more immutable than an ephemeral, desperately undersized RAM disk overlaid on a live CD?

Tuesday, February 7, 2023

xa 2.3.14, the 6502/65816 cross-assembler

xa (xa65) 2.3, the current minor release of this long-lived 6502 and 65816 cross-assembler, gets one more stay of execution to 2.3.14 in order to fix a segfault for recursive macros with smaller arities and a regression from 2.3.13 with nested comments (though André and I may consider whether we will still support this in 2.4). The testsuite is naturally expanded and tuned up a little bit, too, and as always run to completion on the multiple current and geriatric systems here at Floodgap. I know I'm sounding like a broken record but 2.4 is coming and we will be breaking some edge-case compatibility and cutting out some long-deprecated corners of the code, so it was important to ensure 2.3.x was tuned up as much as possible before putting it out to pasture. There is no corresponding new release for dxa, the companion disassembler; work is still being done there.

The new release and archived old versions are updated on xa's home page. Both xa and dxa are available under the GNU Public License v2.

Sunday, February 5, 2023

Instruction fusion and a real serial port for your virtual KIM-1: The Incredible KIMplement 0.3

Everyone should have the retrocomputing experience of a 1976 1MHz MOS 6502 single-board computer with 1K of memory, six hex digit LEDs and a keypad. One of the earliest such systems and one of the least expensive, you program the KIM-1 in 6502 assembly language right on the keypad in hexadecimal and it's amazing what you could do with a system that little. You could even hook up a cassette deck and an external terminal and have a full system for just a few hundred dollars; MOS Technology (and later Commodore) consequently sold a ton of them. We first experienced the KIM-1 in high school and having grown up with Commodore 64s and 128s it was like meeting their long-lost little brother. We spent the whole weekend typing in hex opcodes and learned how to bang on the hardware and make it do surprising things in a space that small. That's the very unit in the picture, still in my possession, and over four and a half decades old it still works.

While I now personally own four KIMs (an MOS Revision A, plus a Commodore Revision D, a Commodore Revision G and this Commodore Revision F, my first), it's naturally more convenient to develop on an emulator and then test on the real thing. The KIM is such an easy system to understand that there are other KIM-1 emulators like it, but this one is mine. And the Incredible KIMplement runs on a Commodore 64, so anyone can run it on just about anything that can emulate a Commodore 64, or even a real Commodore 64.

However, I also think the KIMplement is a darn handy emulator if I do say so my darn self. It naturally supports the keypad and hex LEDs, and loads and saves memory like every other basic KIM-1 emulator, but it also supports a virtual teletype on the Commodore 64's console (the MAME driver still can't do that) and implements a true KIM-4 expander with 16K of total addressing space.

But new in this version, and the only emulator that currently supports it so far, is you can now redirect the virtual KIM's TTY to the Commodore 64 user port as a real physical serial connection: a physical serial port for your virtual KIM-1. The picture shows a real Commodore 128D running the emulator, connected to minicom on my Linux workstation over USB serial from the 128's userport at 300 baud. From the Linux machine's perspective it's practically indistinguishable from my real Revision F unit, and on Commodore 64 emulators that support it (like VICE), you can tunnel the emulated 64's user port over a TCP socket to give your virtual KIM an Internet connection — we'll demonstrate that below. Plus, this means your virtual KIM can now call out to the real world as well as in! (What can you do with that? Stay tuned for a future entry!)