Tuesday, May 30, 2023

Refurb weekend: Commodore 128DCR

No question: the Commodore 128D is the finest Commodore 8-bit ever made. On this I tolerate no dissent, and that's not just because I sometimes hang out with Bil Herd. It's a 128, so it's got VDC graphics, 128K and 2MHz operation, but because it's a 128 it's also a 64. It's also an upgraded 128 with the fixed ROMs, (in this North American 128DCR) 8568 VDC and 64K of VDC memory, it's got a built-in 1571 (Commodore's finest 5.25" disk drive), and it doesn't have an external power brick. Plus, even though it has the desktop footprint of a 128, the detachable keyboard means you can just put a monitor on top of it (and the steel-cased North American 128DCR handles that very well) just like you can't with a flat 128, and you either get an actual cooling fan with the plastic 128D or the solder points to put one in a steel 128DCR. My only complaint is that the consolidated DCR motherboard is nearly devoid of socketed ICs, making it a little tough to do component level repair on. I like spares, so I have four DCRs, all of which completely or mostly work (and two spare keyboards, one rather yellow but fully functional and one even more yellow and useful just for parts).

This particular 128DCR has been a constant presence on my desk since the mid-1990s when I first got it as an upgrade from my ailing flat 128. But it has one flaw: it doesn't have a working CIA Time-of-Day clock, which isn't used much by software, so I never bothered to do anything about it. This was tricky when developing TOTP-C64, since the 30 second timer between emitting TOTP codes uses the TOD clock for maximum interval accuracy (the 50/60Hz Timer A interrupt that drives the TI/TI$ jiffy clock can be stalled and lose time, whereas the TOD clock is based on the AC mains frequency and thus is as accurate as your plugged-in wall clock); one of my portable SX-64 systems, my second favourite Commodore 8-bit, handled that portion of testing instead.

Well, now that I've got a new Ultimate II+L cartridge in fire-engine red with its own real-time clock (among other great features), I'd like to update TOTP-C64 to support it and I'd rather do it on the 128DCR. That means we should fix the TOD clock. And that means ... a Refurb Weekend!

Friday, May 19, 2023

The KIM-1 that sounds like Stephen Hawking (or: "jitbanging" DECtalk)

My 1976 briefcase Commodore/MOS KIM-1, a 1 MHz single-board computer with a 6502 CPU and 1K of RAM, has learned to talk — with a familiar-sounding voice.

The KIM-1's serial lines are connected to the last and smallest member of Digital Equipment Corporation's true DECtalk hardware speech synthesizers, the 1994 DECtalk Express. The DECtalk's classic default voice heard in this video is Perfect Paul, which (with adjustments) was the voice of Dr Stephen Hawking as produced with the 1988 Speech Plus CallText 5010.

The 15 keys we can read off the KIM's hexadecimal keypad are polled by a "talker" program that sends the DECtalk Express words and phrases to speak. However, although the KIM-1 has 20mA current loop output you can turn into RS-232 serial, its built-in ROM routines can't reliably communicate at the 9600 baud rate the DECtalk Express demands.

So, in today's entry, we have a veritable smorgasboard of geriatric geekery: using our KIM-1 serial uploader to push a program for execution, let's write a bitbanged 9600 baud serial transmitter routine in 6502 assembly and let the KIM-1 have its say — and crack the DECtalk Express open and look at the insides while we're at it. (Teaser: you'll find its CPU very familiar.)