Friday, December 30, 2022

Another weird MOS Pong console: 1976 Allied Leisure Name of the Game II

If you've ever wanted to play Pong on a miniature Babylonian ziggurat, have I got the machine for you.
However, what particularly interested me about this Pong machine is not just the fact it's another MOS 7600-series console (from the makers of the MOS 6502 CPU), but also that this unit has the oldest 7600 I've seen so far and worth comparing to other consoles we looked at previously — even those using chips that are labeled the same. I'm not just talking about the wacky styling and the golden labels, either.

Sunday, December 25, 2022

Merry Old VCR Christmas with Dick Smith and his VZ200

Signs you've continued to marry well: this year for Christmas, your wife finds you a Dick Smith VZ200 Personal Colour Computer Technical Reference Manual.
Like the Dick Smith Type-right, the 1983 VZ200 is another Laser rebadge, this time of the Z80 and 6847 VDG-based VTech VZ200. This computer was widely distributed, available in at least the United States and Canada (in two versions), the UK, Hungary, Finland, and offered by Dick Smith in Australia and New Zealand. Dick Smith offered the VZ200 with 8K of RAM (2K video, 6K for BASIC) and an optional 16K expansion cartridge, cassette deck, printer and various software programs. While it sold poorly in its other markets largely due to competition from the dominant Commodore 64 and ZX Spectrum, it did well enough in Australia to justify rebadging the followup VTech Laser 310 as the upwardly compatible Dick Smith VZ300 in 1985.

Video Technology designed the VZ200 as their own version of the Tandy TRS-80 Model I, which Dick Smith sold as the System-80 via the EACA Video Genie. While the Video Genie was a more or less straightforward clone of the TRS-80 Model I, the VZ200 uses the basic architecture but with a different memory map, BASIC and video chip (same as the Tandy Color Computer and others). The Z80 runs at 3.58MHz (versus the Model I's 1.774MHz) and some of the BASIC differences were caused by VTech intentionally crippling the BASIC which some extended BASICs partially reversed. VTech also produced a Laser 100 and 110, differing from the 200 primarily in built-in RAM, but Dick Smith never sold those.

The Technical Reference Manual isn't as sophisticated or (at 21 pages) anywhere near as comprehensive as, say, the Commodore 64 Programmer's Reference Guide, but it gives you a simple memory map plus some documentation of the ROM routines, sound and available video modes. It complements the BASIC Reference Manual which the computer came with. The original price tag on the back says it was sold for A$9.50.
Even more usefully, however, it also comes with schematics. While the VZ200 is relatively simple hardware with off-the-shelf components, these systems don't come up very often and it would be great to know how to repair it if a partially working unit ends up surfacing. All three system boards are provided.

I have to say she outdid herself this year. More when we actually land one of these things. Merry Christmas and happy holidays.

Saturday, December 17, 2022

A minor memorial for Leo Laporte's terrestrial AM radio show

Yes, Leo Laporte will still be broadcasting, just not on terrestrial AM radio. But this is the last weekend of the Tech Guy Show on AM radio (the next couple weekends are reruns), something of an institution here in greater Los Angeles where he's been a Saturday morning fixture since 2004 on KFI, the 50,000-watt talk radio blowtorch of southern California (syndicated on Premiere Radio Networks from the iHeartMedia evil empire). After 1,954 episodes, the toll-free call-in number 1-88-88-ASK-LEO will be retired and it'll be back to podcasts.

Friday, December 16, 2022

The strange case of BeOS, SRS and the silent Power Mac 6500

Tonight's story time: the Power Macintosh that wouldn't make any sound in BeOS R5, how I figured out the problem, and how I hacked the sound driver to fix it. (Download link at the end.)

My favourite beige Power Mac is the Power Macintosh 7300 and its relatives. They're compact, capable, upgradable and easy to work on. For as much as people raved about the pull-down side door of the Yosemite G3 and the Power Mac G4, they owe their design to their fold-out Outrigger Power Mac ancestors which did it all and did it horizontally — and in some ways did it better.

However, when it came time to setting up a second PowerPC BeOS system to go with my 133MHz BeBox (the two run the same applications), although the Outriggers are well supported in BeOS 5 I decided to get a tower Mac for space reasons. Since NuBus, G3 and New World Macs were out (not compatible with BeOS) there's only a few choices, namely the 8500, 8600, 9500, 9600 and the 6400 and 6500. I despise the 8500 case (I only tolerate my clock-chipped Quadra 800 in the same style because it runs A/UX so well), the 8600 is bulky, and while all beige Power Macs have succumbed to the general price inflation that has afflicted every corner of vintage computing, the 9500 and 9600 6-slot Power Macs have really taken it on the chin (and the 9600 is bulky too).

That left the Insta-Towers, or what I like to call the Stormtrooper Macs:

Friday, December 2, 2022

Magic Cap, from the Magic Link to the DataRover and the stuff in-between

Hello, visitor to my house. Let me show you around my workspace.
On my desk is a phone, a Rolodex, a name card (my desk needs to know), a note pad, and a datebook, with a couple things like stationery and a calculator in the drawers. In the office there's also a clock, an inbox and outbox, and a filecabinet. The web browser hangs on the wall. Doesn't yours?

Sunday, November 27, 2022

Refurb weekend: Sega Dreamcast

Remember when consoles weren't glorified PCs? The 1999 Sega Dreamcast remembers. Sega's final console and introduced on "9/9/99 for $199" before the Sony PlayStation 2 hype machine overwhelmed it, it came on the heels of the Saturn, which had sophisticated hardware but was difficult to program and Sega lost millions on manufacturing them. In some ways the Dreamcast is the Saturn done right: the same SuperH architecture, just way faster (instead of dual SH-2s at 28.6MHz, one big SH-4 at 200MHz), a more conventional GPU (rather than the odd 3D VDP of the Saturn which used quads instead of triangles), and a straightforward uniprocessor design instead of the Saturn's sometimes rickety dual CPU bus. It was also much cheaper to manufacture even considering its use of the Yamaha GD-ROM format; nothing else supported it, but it stored up to a gigabyte and was backwards compatible with CDs.

However, the Dreamcast was also not very future-proofed as it was the only fifth-generation console not to use DVD format (even the "mini" discs of the GameCube stored more), and Sega's attempt to outrun Sony and Nintendo's new offerings with deep discounts only served to make the console unprofitable faster. Sega announced the discontinuation of the Dreamcast on March 31, 2001, and slashed the cost to $99. I'd heard good things about it, I'd played Crazy Taxi in the arcades, and there it was at Fry's (rest in peace) at a price I could afford as a starving student, so I picked one up. Games turned up in quantity at lower prices and I even managed to land a Broadband Adapter and a keyboard and a light gun and a mouse and the Seaman microphone and even the fishing reel controller. There's also an SD card reader plugged into the back expansion port I can play disk images off.

Although I've picked up a couple other Dreamcast and Dreamcast-adjacent systems since, I still have the original one in my office. Its internal battery used for storing settings had long since worn out, requiring me to enter the date and time every time I wanted to play a game, but then it wouldn't read any discs other than SoulCaliber. I mean, I like SoulCaliber, but this was ridiculous. No Crazy Taxi? It's time for ... a Refurb Weekend!

... after we play a game of SoulCaliber.

Saturday, November 12, 2022

Meet your new two-factor authenticator: your Commodore 64

Multi-factor authentication is ripe for disruption. SMS 2FA is inherently defective. Phone authenticators get stolen. Security tokens get lost.

But just try misplacing a Commodore SX-64. And any thief who tries to grab it and run gets a free hernia truss from the prison infirmary:

Plus, I've got a colour for every key!
And it actually works:
The terminal window is showing a generated time-based one-time password for a full key, and the emulated 64 is showing the correct key, at the correct time, which was known and tested to be valid. Yes, you really can use your Commodore 64 for multi-factor authentication to generate TOTP codes!

Sunday, November 6, 2022

Running a pinball game from a disk image doesn't make me a pirate

I like pinball; I have a Williams Star Trek: The Next Generation and a Stern Sopranos machine in my house. (As it happens, the Sopranos machine is consistently more popular with guests as the ST:TNG machine tends to be a drain monster.) But computer pinball games were usually iffy due to substandard physics until around the mid nineties. One of the finest of those early releases are the Pro Pinball games; they easily had the best gameplay and graphics, and despite being synthetic were nevertheless plausible machine designs instead of some of the fanciful crap you get nowadays. They were all ported to the classic Mac and I own the lot. Here are the first and last, Pro Pinball: The Web and Fantastic Journey.
I'm making a point of saying I own these and showing you I do, because none of the Pro Pinball titles will play without the CD mounted. For The Web, which I have here as part of the 10 Tons Of Fun compilation pack released by StarPlay, and Timeshock this makes sense because the music tracks are regular redbook audio and play directly from the CD. But this was not the case for Big Race USA nor my personal favourite Fantastic Journey: near as I could determine, the CD requirement was only to make sure you owned the disc. I could certainly dupe it and play from a burned copy, and that's what I did, but I ought to be able to install the game and not need the disc at all. As always copy protection only inconveniences legal owners and never deters the pirates.

In this case it didn't deter them either, because I became aware of a crack for Big Race USA that will happily play the game from a CD image. My "gaming" classic Mac is a Power Macintosh 7300 with a 800MHz Sonnet G4, an ATI Rage Orion (a Mac-specific 16MB Rage 128GL which has fewer compatibility problems with older games than the Radeons), a gig of RAM and two 18GB SCSI drives. That's more than enough space to save disk images for games and most of the games (that don't require redbook audio tracks) play from one, which is both faster and less wear on the optical drive. Big Race USA and Fantastic Journey both refuse to.

The Web runs a unique executable, but the others use a more or less common runtime. This gave me hope that Fantastic Journey could be broken in the same way that Big Race was. Let's have a look.

Saturday, November 5, 2022

Refurb weekend: Commodore SFD-1001

The Commodore SFD-1001 is an oddball and a rarity even among Commodore IEEE-488 5.25" floppy drives, which nowadays aren't particularly common either (though my preferred IEEE-488 device is the MSD Super Disk Drive SD-2, which also conveniently has IEC serial). The SFD "Super Floppy Drive"-1001 is a low-profile single drive version of the CBM 8250 dual drive and stores a whopping 1MB per disk, which when the series was introduced in 1980 was really quite something. Unfortunately it requires 96tpi double density "quad density" floppies to do it — not the 48tpi double density disks you'd feed a more typical 1541 or 1571, nor the 96tpi high density PC floppy drives use — so there wasn't a whole lot of megabytes to store into even when these drives were newer. I also have a CBM 8050 which is the single-sided (but still dual drive) version of the 8250; it can store roughly a cool meg too but you have to flip it over for the second half.

This SFD came to me from a seller who said while it powered on it also made a weird noise and he had trouble inserting disks. Nevertheless, it's still an odd enough duck it was worth buying to see if it was repairable. We have an extra hour this weekend from the daylight savings change, so let's crack this sucker open.

Sunday, October 30, 2022

If one GUI's not enough for your SPARC workstation, try four

Who needs a jack-o-lantern when you've got a bright orange gas plasma display?
This is a 1990 Solbourne Computer S3000 all-in-one workstation based around the 33MHz Panasonic MN10501, irreverently code-named the Kick-Ass Processor or KAP. It is slightly faster than, and the S3000 and the related S4000 and later S4000DX/S4100 directly competed with, the original gangsta 1989 Sun SPARCstation and SPARCstation 1+. Solbourne was an early SPARC innovator through majority owner Matsushita, who was a SPARC licensee in competition with Fujitsu, and actually were the first to introduce multiprocessing to the SPARC ecosystem years before Sun themselves did. To do this and maintain compatibility, Solbourne licensed SunOS 4.x from Sun and rebadged it as OS/MP with support for SMP as well as their custom MMU and fixes for various irregularities in KAP, which due to those bugs was effectively limited to uniprocessor implementations. Their larger SMP systems used Fujitsu (ironically), Weitek and Texas Instruments CPUs; I have a Series5 chassis and a whole bunch of KBus cards Al Kossow gave me that I've got to assemble into a working system one of these days.

This particular machine is a fairly upgraded unit thanks in large part to Stephen Dowdy, formerly of the Solbourne Shack and the University of Colorado, where he maintained them. In particular, besides tons of OS stuff and documentation, the SBus RAM expander card giving this machine a total of 56MB ECC RAM came from his old S3000, and it also has a SCSI2SD along with a 256K L2 cache CPU module stolen from an S4100. The 1152x900 monochrome display is compatible with the SBus bwtwo. Just like I retain a great fondness for PA-RISC because it was my first job out of college, I have similar affection for Solbournes because one of my first undergraduate Unix accounts was on a department Series6.

KAP was an interesting processor with a great name, but its sometimes serious issues more or less directly led to Solbourne's demise as a computer manufacturer because Matsushita wouldn't let them walk away from its sunk design costs. Still, it was good competition when it was new and OS/MP was nearly 100% compatible with SunOS 4.x (4.1C, the final release, is equivalent with SunOS 4.1.3), so what you're really looking at is a SPARCstation "clone" of sorts with the hottest display this side of a Al Gore climate chart.

And it turns out that particular computing environment was really the intersection point for a lot of early GUI efforts, which were built and run on Sun workstations and thus will also run on the Solbourne. With some thought, deft juggling of PATH and LD_LIBRARY_PATH and a little bit of shell scripting, it's possible to create a single system that can run a whole bunch of them. That's exactly what reykjavik, this S3000, will be doing.

Sunday, October 23, 2022

Battery Eliminator Bible: what's in that classic console AC adapter

This is hardly exhaustive, but I promised a list of amperage, voltage and polarity for the wallwarts with my classic game consoles here. I've included both the AC adapter's nominal rating and measured voltage with no load to give you an idea of tolerances, keeping in mind that electronics do age. However, please note that using this list is completely at your own risk: I take no responsibility for frying your machine if you wire it wrong or I measured it wrong. If the machine is highly valuable and it takes batteries, maybe you should just use batteries instead of taking a (small) chance on my competency. Last updated 22 January 2023

  • Allied Leisure Name of the Game (Electro-Mech Co. #1076): 5.5mm/2.1mm barrel jack, tip positive. This thing is a liar: the casing says 7.8V 30mA nominal, but I got a straight-up 6V on the multimeter. Works with both the Name of the Game I (A-100) and II (A-300).

  • Atari Pong Battery Eliminator (part# 4720/model# 4-0033-2): 1/8" TRS (3.5mm mono headphone) jack, tip positive, nominal 5.5V 100mA, measured 5.8V. However, 6V should be just fine, since it takes a total of 6 volts in batteries. Should work with all Atari Pong consoles (I use it with my Ultra Pong Doubles).

  • Atari VCS/Atari 2600 (part# C016353): 1/8" TRS (3.5mm mono headphone) jack, tip positive, nominal 9V 500mA, measured 14V. Advertised as compatible with Atari Video Pinball, Atari Stunt Cycle and Atari Tank II. Also works for the CX-2000 if you have one. ;)

  • Bally Astrocade. This is not detachable unless it was secondarily detached. Reading off my working wallwart, "blk-red grn-wht 85mA, 10.8VAC red-grn 1A, 7.5VAC." I'm not chopping it off to test it!

  • Coleco Telstar (model# 6041): 1/8" TRS (3.5mm mono headphone) jack, tip positive, nominal 9V 200mA, measured 10.6V. I use this very adapter with my Telstar Arcade and Telstar Gemini, but the box says it works for the entire Coleco Telstar range.

  • Commodore Type 708 AC Adaptor: 1/8" TRS (3.5mm mono headphone) jack, tip positive, nominal 6V 250mA, measured 6.7V. This was sold for the Commodore TV Game 3000H but should work with the TV Game 2000K.

  • Magnavox Odyssey 3000 (model# AH9026BK01): 2.5mm TRS (mono headphone) jack, tip positive, nominal 9V 100mA, measured 9.8V. I'm told this will work for most of the other Magnavox Odyssey series except the Odyssey2 and Odyssey 4000, and the Philips Odyssey 2001 and 2100 (and naturally any of the Videopacs).

  • Radofin SC8000 (model# 9100): 2.5mm TRS (mono headphone) jack, tip positive, nominal 9V 100mA, measured 10.1V. Likely works for other Radofin consoles like the SC4000.

Friday, October 21, 2022

Refurb weekend: PowerBook 1400

The PowerBook 1400 is, and remains, my favourite laptop. It was everything the PowerBook 5300 should have been and more. It was my first laptop, too, a hand-me-down from my sister's then-husband in 2001-ish who said if I could fix it, I could have it (a 1400cs/117 with a 117MHz PowerPC 603e). Only about four years old at that point, it turned out to need a new inverter board and a LCD, so I just bought it a new entire top half and installed it myself. I named it Benji. It ended up as my sole portable computer until I upgraded to a 12" 1.2GHz iBook G4 several years later.

It's that modularity (plus an exceptional keyboard) that makes the 1400 a particularly wonderful machine: over time I added a Sonnet 333MHz G3, extra RAM (the cs supports up to 60MB), a Apple 8-bit external video card and a 3Com EtherLink III PCMCIA NIC (which I hacked up a driver for), all on top of the 56K modem he installed and the floppy disk and CD-ROM drive bay modules it came with.

Plus, those delightful swappable covers!

Wednesday, October 19, 2022

One more MOS 7600 Pong: Coleco Telstar Gemini

Oh, c'mon now, you're not sick of MOS Pong machines yet, are you? Of course you're not! Everybody loves Pong from the company that brought you the world-famous 6502 CPU! So here's another.

Briefly in the last entry but mostly in the one previous I discussed the unusual 1978 Coleco Telstar Arcade console in its unique triangular form factor, which had one of four variants of the MOS 7600/1 "Pong-in-a-chip" CPU in each cartridge, the specific variant containing its own mask ROM and shape table data. To maximize its investment and possibly to compete with Atari's Video Pinball which came out in 1977, Coleco essentially took their cartridge #3 with the MOS 7600-004 pinball-and-skeet variant and turned it into a standalone console of its own, the Coleco Telstar Gemini, also in 1978. (Although easily confused by modern collectors with the Coleco Gemini — no "Telstar" — which was their 1983 Atari VCS clone, neither was a sales contemporary of the other.)

This unit was an eBay find that was advertised as not working and priced accordingly. As expected, it works just fine with a Telstar AC adapter which I happen to have (I'll do a followup with some of the console wallwarts in my collection since the polarities and voltages are not always listed).

Saturday, October 15, 2022

IR-controlling the new air conditioner in the vintage server room

Computers are hot. No, I mean, they're hot. They heat our house in the winter here in primarily sunny Southern California (not as much as my wife would like, but that's another story for another day).

Previously we talked about monitoring the portable air conditioning unit keeping the server room cool. The SMS gateway, basically an overgrown Raspberry Pi, uses a USB decibel meter to report ambient noise volume in the room, from which we can extrapolate the state of the air conditioner's compressor and fan. The Sawtooth Power Mac G4 file server (and radio station) logs the temperature and humidity with a USB sensor of its own. The portable A/C unit exhausts warm air through a duct to the roof so the room can remain secure, and a turbine spins the hot air away into the atmosphere.

Unfortunately, what all this monitoring showed was the A/C unit was crapping out. The house central A/C's compressor died abruptly this summer after over two decades, naturally during the hottest part of the year, and it took nearly a week and $14,000 to get it dealt with (it was an old R-22 system and thus everything had to be replaced). The portable A/C was itself almost 11 years old by this time, and after that bad week running nearly non-stop started making an ominous unbalanced low warble from its exhaust fan. This got to the point where it was unable to clear its own condensate and a couple days where I had to empty the drain pan about every 12 hours, versus never having to before (not a great deal of humidity here). I like old computers, but I try not to accumulate old broken computers, and that goes double for old broken air conditioners. It was time for a replacement.

Saturday, October 8, 2022

Going where BeOS NetPositive hasn't gone before: NetPositive+

BeOS browser:
TLS apocalypse
Won't keep it off line.

(How do you pronounce BeOS?)

This is a real 133MHz BeBox running otherwise stock BeOS R5, surfing Hacker News and using a modified, bug-fixed NetPositive wired to offload encryption to an onboard copy of Crypto Ancienne (see my notes on the BeOS port). NetPositive is the only known browser on the PowerPC ports of BeOS — it's probably possible to compile Lynx 2.8.x with BeOS CodeWarrior, but I've only seen it built for Intel, and Mozilla and Opera were definitely Intel/BONE-only. With hacks for self-hosted TLS bolted on, NetPositive's not fast but it works, and supports up to TLS 1.2 currently due to BeOS stack limitations.

Saturday, September 24, 2022

The MIPS ThinkPad, kind of

Pop quiz: what classic brand of laptop is this?

I'll give you another hint.

Bright-red TrackPoint and mouse button trim, classic keyboard font, IBM logo on the top. It's a ThinkPad ... right?

Well, obviously someone on IBM's design team wanted you to think so. But turn it on and it itself announces it's not a ThinkPad:

Say hello to the RISC ThinkPad that's not a ThinkPad, the IBM WorkPad z50.

Saturday, September 17, 2022

Refurb weekend: New batteries for the Palm Pilots

Everything portable has a battery, and every portable thing's battery dies. This is bad on earlier PalmOS devices that lack a non-volatile file system because they'll lose their data and you'll lose your mind. Fortunately many of my stable of Palm Pilots and other PalmOS devices use regular old batteries (like my original USRobotics Pilot 1000 and Handspring Visor Deluxe); of my rechargeable units, the AlphaSmart dana has a replaceable battery (I have multiple spares, or you can use regular batteries), and so does the Palm Centro, which has a non-volatile file system to boot. This is another reason why those two are my favourite Palm devices.

Thursday, September 15, 2022

Confirmed! the MOS 7600/7601 Pong chip is a true microcontroller

In a previous article I discussed the MOS 7600 and 7601 "Pong in a chip" ICs, manufactured by MOS Technology (of the famous 6502) and actually used in a number of late 1970s Pong clones, including two that eventual parent company Commodore Business Machines sold under their own name. Most notably they appeared in the Coleco Telstar Arcade console, an unusual "triangular" machine in which specific variants of the 7600 were used as its cartridges, but were also used in a number of other Pong clones through around 1978.

The question at the time was whether the 7600 actually had ROM in it (i.e., was a true microcontroller running a stored program), or whether it was simply playing games using discrete circuitry. The Telstar Arcade — and its relative, the confusingly named Telstar Gemini, not to be confused with the separate Coleco Gemini — demonstrated that other variants of the 7600 were capable of more sophisticated games than just ball-and-bat Pong variations, including primitive versions of pinball and road racing, even though most systems using the 7600 used it purely for Pong. On the other hand, no data sheets have survived to the present day and at the time my Google-fu uncovered no die photos to review, so I could find no substantiation for the occasional claims that it did.

Well, we now definitively know the answer and a bit more thanks to Sean Riddle, who actually did decap and photograph a 7600-002 die (the variant in Telstar cartridge #1, with racing, Pong and skeet shooting) and a 7600-001 (the most common three-Pong-and-skeet variant used in many machines, as well as in Telstar cartridge #2), and to Ken Shirriff, who made an extensive survey of the die, discussed with Sean and I attributes he noted, and posted a thread about it. Here's my own summary of the discussion plus a few other details I've run across since writing the original post.

Sunday, September 4, 2022

What the KIM-1 really needs is bubble memory (plus: 20mA current loop for fun and profit)

It seems like everything has flash. Flash mobs, flash photography, Flash Gordon, flash memory. (Other than the past couple years, of course, which haven't been very flash.) And, because solid-state-all-the-things, you can get flash storage devices for tons of classic computers where even the tiny microcontroller in the SD cards is probably more powerful than the systems they're being interfaced to. Why, you can even connect one to an MOS KIM-1, the famous mid-1970s MOS 6502 single-board computer. Now at last you don't need to rekey everything in or screw around with an audio recorder.

But, of course, if you've read this blog for any period of time you know I don't go in for that sort of new-fangled nonsense around here. I like my retrocomputing frivolities period-correct. What the KIM-1 really needs as a mass storage medium ... is bubble memory.

Saturday, August 20, 2022

Plua 2 continued: open source under GPL for your classic Palm

More good news for classic PalmOS development. In previous articles, I've introduced you to Plua, a PalmOS 3.5 native version of Lua 5.0.3. By generous permission of Marcio Migueletto de Andrade, its original developer, we already have a 64-bit fixed open source version of the "cross-compiler" plua2c, which we use to build Overbite Palm.

Well, Marcio has uploaded the source code for Plua 2.0 itself, which I have patched up to build on my Power Mac G5. This is really great to see because now the runtime can be updated with more features and for more devices, particularly the wide-screen AlphaSmart dana.

Sunday, August 14, 2022

The dark ages of history, circa 2030

I have no intention of explaining how the correspondence which I now offer to the public fell into my hands.

* * *

Friday, August 5, 2022

The Pong you could program, possibly: the MOS 7600/7601

UPDATE: It is a microcontroller! Read more.

When people think microprocessors that MOS Technology made, they think of the 6502 and its many derivatives, as one should (which are of course frequent topics on this blog too) — but there might have been another one.

In the nethermists of time when polyester ruled the earth, G-d (or at least Al Alcorn) created the Pong machines. These started out as discrete logic that was hard-wired to play the game, both in the original 1972 Pong cabinet and then miniaturized for the Atari 3659 Pong-in-a-chip that was in the first home Pong console (sold through Sears) in 1975. By greatly reducing the component count Atari's new chip made the console cheaper to produce and assemble, significantly aiding mass production. Here at Floodgap orbiting headquarters we have an original Atari Ultra Pong Doubles with the later C010765, referred to as the "ultimate" Pong with 32 game variations for up to four players, and the last and mightiest of the Atari first-party consoles circa 1977. Still, like the original 1972 Pong, it was nevertheless controlled by hardwired logic; ultimately it just played Pong, and that was it. But that's not what this entry is about.

The Pong console wasn't the first home console; that was of course the 1972 Magnavox Odyssey, developed by Ralph Baer as a side project for defense contractor Sanders Associates, and licensed to Magnavox for sale. (For that matter, it wasn't even the first home Pong console: that was arguably the Universal Research Labs Video Action II, which ran ads for Christmas 1974 in an attempt to sell unused inventory made for ailing Pong licensee Allied Leisure and beat most of the others to market in 1975 by a couple of months.) However, it was the first Pong-in-a-chip, something the other fledgling semiconductor companies had yet to duplicate. Texas Instruments was supposed to be developing a single chip implementation for Magnavox's sequel two-game Odyssey 100, but it wasn't ready until later that year for the Odyssey 200, and the 100 ended up with four chips instead despite its simplified games. But that's also not what this entry is about.

The other thing Magnavox had besides their early market advantage was Ralph Baer's patents, and a plausible legal case. Atari themselves capitulated in 1974, determining they lacked the resources to invalidate his patents, and paying a settlement and licensing them instead. Other vendors followed suit. One of these companies was General Instrument, who devised their own black-and-white Pong-in-a-chip called the AY-3-8500, also in 1975. Ralph Baer was aware of its development from the licensing process and had a previous informal relationship with toy company Coleco's president Arnold Greenberg. This exchange was all business: Baer's patents represented a significant source of income to himself and the company he worked for, and if GI could move a lot of chips there'd be a big piece of the action in it. Coleco became GI's first customer and built the AY-3-8500 into the 1976 Coleco Telstar, which went on to sell roughly a million units. The AY-3-8500 was thus firmly established in the market and even Magnavox used it for subsequent Odyssey consoles to the great chagrin of Texas Instruments, including the 1977 Odyssey 3000 which we also have at Floodgap Orbiting HQ. But that's not what this entry is about either.

The AY-3-8500 naturally had its competitors, and Magnavox-Sanders-et amis got a piece of them too, though the design was so cheap and easy to work with that General Instruments crowded most of them out of the market. Besides TI, National Semiconductor introduced the colour MM-57100N, but despite its capabilities was too expensive to dislodge the market leader (and even its graphics advantage was eroded by the AY-3-8515, which was a bolt-on colour encoder for the 8500 and incorporated into later chips). However, there was one company at that time that was very good at making cheap chips cheaply, and it needed money fast. That company was MOS Technology, and finally that's what this entry is about.

Friday, July 15, 2022

Crypto Ancienne 2.0 now brings TLS 1.3 to the Internet of Old Things (except BeOS)

Who says you can't teach an old box new tricks? We did it before and we're doing it again. Crypto Ancienne ("Cryanc") is a TLS implementation for pre-C99 beasts and monstrosities featuring carl, a simple curl-like utility that serves as a demonstration command line tool and even as an HTTPS-over-HTTP proxy for suitably configurable browsers. Many operating systems are supported and a number of compilers too (not only gcc going back to version 2.5 and the egcs days, but also clang, MIPSpro, Compaq C and even Metrowerks CodeWarrior). Now, after a lot of late night hacking, screaming and unspeakable acts of programming, tons of bugs are fixed (including a long-standing big-endian issue with ChaCha20Poly1305) and the core has been significantly upgraded such that almost all of the supported platforms now support TLS 1.3.

And what are those supported platforms? Why, here's some of them as they were being cruelly whipped to perform like beaten dogs for your entertainment:

Wednesday, July 13, 2022

CP/M is (more) officially open source

This is good news! Let's see more of these classic operating systems go open for a new retrocomputing generation. Specifically, from Bryan Sparks, the current owner of DRDOS and associated IP from Digital Research,
Let this paragraph represent a right to use, distribute, modify, enhance, and otherwise make available in a nonexclusive manner CP/M and its derivatives. This right comes from the company, DRDOS, Inc.'s purchase of Digital Research, the company and all assets, dating back to the mid-1990's. DRDOS, Inc. and I, Bryan Sparks, President of DRDOS, Inc. as its representative, is the owner of CP/M and the successor in interest of Digital Research assets.
This was to clear up an apparent earlier misunderstanding that Sparks' earlier open release of CP/M in 2001 was restricted to distribution via a particular site. Sparks clarified this was not his intent.

Overall, would I prefer a more conventional open-source license? Sure. But he didn't have to do this then, he didn't have to do this now, and he did. So, thanks, Bryan.

Saturday, July 2, 2022

A brief dive into Power Mac INITs and NVRAM scripts, or, teaching Mac OS 9 new device tricks

Although I'd much rather use a real Power Mac, and of emulators I tend to use my own bespoke hopped-up fork of SheepShaver for the POWER9 CPU with my daily driver, QEMU is still important for Mac OS 9 emulation because it handles the full system rather than the quasi-paravirtualization approach of SheepShaver. Indeed, certain classes of application can only run in that context.

However, because QEMU is a much lower-level emulator, that means that things like mice are also emulated, and that tends to chug a bit even with QEMU's JIT (currently KVM-PR, the virtualization system for Power ISA, does not work properly with Mac OS 9 in QEMU for reasons that have not yet been determined). If you use the default mouse support, the mouse is entirely maintained by the operating system and the polling frequency is just slow enough to be frustrating, and you have to grab and ungrab it all the time. The normal solution is to use an absolute pointing device like the QEMU tablet and solve all these problems at once, but the classic Mac OS doesn't support it and the existing Wacom driver doesn't work. (SheepSforza, on the other hand, hooks the system mouse and system mouse pointer into the guest OS, so it's much more responsive and transparent if I do say so myself.)

To support this and other QEMU virtual devices requires updating the guest Mac. And, happily, there are now two approaches at least for doing so for the QEMU tablet, which make an interesting comparison on how we could get other devices supported on the classic Mac OS.

Sunday, June 26, 2022

Overbite Palm 0.2

Overbite Palm 0.2, the Gopher client for classic Palm devices, is now available (see it running on real hardware). This update includes Shawn Mulligan's Sony Clié key patch (thanks!) plus more aggressive memory management and menu compression, which should not only increase the number and length of documents that 68K Palms with their pathetic dynamic heaps can view but also cut down on the fatal Plua-generated "out of memory" errors that our memory heuristics failed to anticipate. Additionally, all transfers are hard-capped to 32K raw data since this appears to be the empiric limit for the native scrolling text gadget. It was tested on my Palm Centro and AlphaSmart dana, as well as my emulated m515. You can get it from Github (plus Plua source, natch) and I will be making a place for it on the Floodgap gopher server as soon as I get a round tuit.

Saturday, June 11, 2022

prior-art-dept.: ProleText, encoding HTML before Markdown (and a modern reimplementation)

Steven P. Spackman allegedly once observed that "flat text is just never what you want." Which, I guess, is true: half the historical advances in computing have come from figuring out ways to tart up plain text, whether embedding control codes or out-of-band styling or in-band markup. However, with the exception of out-of-band styling (I always liked the Macintosh text file formats that kept the text in the data fork and the styling in a resource), you still needed to parse the file or at best you'd get blocks of text separated by gobbledygook. Enhanced text formats like Markdown were thus designed to make cognitive sense to human eyes without further parsing — but also encoding sufficient metadata to facilitate improved ways of rendering the document.

Markdown circa 2004 has displaced most of the others today, but it explicitly never claimed to be the first such human-readable format; indeed, AsciiDoc predates it by about two years, reStructuredText a year before that and MakeDoc about a year before that. For that matter, some of the concepts popularized in Markdown might not have existed at all were it not for earlier ancestors like 2002's Textile.

But a forgotten rich text language predates most of these, with the interesting property in that much of the markup is encoded using trailing whitespace, almost a fusion of in-band and out-of-band styling systems. If the whitespace is munged, it's largely just a text document (like those particular Mac files if you pass along only the data fork); but if it passes through intact, an intelligent converter can use attributes encoded in the whitespace to style it into HTML. That system is ProleText.

Monday, May 30, 2022

So long, home T1 line; hello, hacking the T1 router

Floodgap has had a T1 line since I moved into this house in 2011. I'm one of those weirdos who runs my own hardware and prefers to avoid co-lo so that I can access things whenever I want despite the additional logistical complexity, and also acts as useful immunity against acquiring other expensive hobbies. The area was boonies-ish when I moved here (big house, cheap price, bottom of the market after the housing crash), arguably still is, and for at least several years there was no DSL due to its distance from the central office (fiber? hahahaha). Cable was around, but the only cable provider at the time refused to pull a run or even quote me a price to do so despite sending contractors on three separate occasions to scope out the site. After several weeks of downtime culminating in me making a formal complaint to the Public Utilities Commission, they agreed to stop messing around and released me from the contract. Of course, by then I was down for nearly a month.

T1 lines have never been cheap, though back in the day they were prized because at 1.536 Mbit/s each way they were comparatively high capacity. At my first job out of college in 1997 the university had a T1 connected to an AdTran CSU/DSU, adding more T1 lines on and bonding them for additional bandwidth until they upgraded to optical fiber. A friend of mine in the very late 1990s had his own residential T1 (this was when consumer DSL was uncommon and 56K dialup was still frequent) that his employer paid the bill for, reportedly close to a cool grand a month in those days; he would never been able to afford it otherwise. On a cost basis alone (and certainly dollars per megabit) a T1 would have been far from my first choice, but I needed a reliable server-grade connection and I couldn't find any other alternatives at the time, so if I wanted to get my hardware back online from the house I was going to have to pay up and get one. Rather than use the actual telephone company I went with an overlay vendor and was quoted $295 a month on an annual contract for a 16-address netblock plus $199 installation. Now going into my fourth week of downtime, I signed immediately. They called the telco who came out the next week, installed the smartjack (we'll talk about what this is), took over both telephone wire pairs to the house and wired it into the pedestal — conveniently, the local telco pedestal is literally in my backyard. Good thing I'd already moved the house alarm modem to a wireless connection since I could no longer have a landline now. I then ran lines from the smartjack into the server room (thanks to the telephone guys I used to work next to when I was consulting I already had good experience with a punchdown tool), the vendor came out the week after that with the T1 router, and finally Floodgap was back up.

The original idea was to use the T1 until something less expensive came along, but the T1 just plain worked and was always highest priority on service calls, so inertia and inflation eventually turned the $295 a month into $399 and a 12-month contract into 48. Still, it was a tariffed line with a service-level agreement, I had plenty of addresses and my personal bandwidth requirements have always been modest — I don't cloud, I rarely stream and YouTube is worse than television — so I ended up just using the T1 as my personal ISP at the same time and avoiding a second bill. This worked out fine for awhile except, of course, for love. My wife needed her Netflix and her iCloud, and by then the previously intransigent cable provider had been bought by someone else (fiber? hahahaha) who didn't know any of the previous history; they came out and finally pulled an RG-6 cable run five years after the fact, and switched us on. I moved the Wi-Fi to the new cable net and her bandwidth needs were thus met in the manner to which she was accustomed. We joke about the his'n'hers networks: I still had my lab and servers on the T1, and everything else including her devices was on the cable.

Well, it was good we did that because I mentioned in January this year that the vendor (which had changed owners twice over the years) was abruptly getting out of the residential T1 business and I had a month before it was switched off. I may well have been their last customer in the region. So I'd like to publicly thank John who reached out and offered a no-strings VPN arrangement — which I'm routing over the cable — to keep Floodgap online while we consider our housing options in a market as bad as it was good when I first bought the place. We turned the VPN on and the vendor turned the T1 off. They never asked for the router back and the smartjack still sits in the back of the house.

Now it's Memorial Day in the United States and I suppose I'll have to do something about that now superfluous wiring run sometime soon. Before I do, though, let's document the T1 for a generation who may have never seen one ... and figure out something fun to do with the router they left behind other than, you know, routing stuff.

Like every computing story, this one begins with a box.

Wednesday, May 4, 2022

Gopher on the Palm Pilot and the pitfalls of PalmOS connectivity

To start, an apology for 18 years of tardiness.

In 2004 I was working on a gopher client for my Palm m505, written in Lua using the new hotness of Plua 1.x, which supported UI, graphics and networking built-in. I christened an early implementation as "Port-A-Goph" and it even got a mention in Wired. Due to socket bugs in that version that never got fixed, I deferred the release until I could rewrite Port-A-Goph for Plua 2. Over the next few years I worked on it intermittently but got distracted by other projects, and eventually after moved to iOS and then Android I stopped carrying a Palm around with me entirely. Since I have my own Gopher client on Android, the PalmOS version sat in suspended animation.

Well, it's time to dust off the resurrected Port-A-Goph, newly christened into the Overbite client family as Overbite Palm. Along the way we'll make sure it works on a selection of real hardware:

Sunday, April 10, 2022

Tonight we're gonna log on like it's 1979 (Telenet, Dialcom and The Source)

Teletypes may have killed a lot of forests by emitting every line to hard copy instead of a screen, but there's something to be said for the permanence of paper, especially when people hang onto it for some reason. While getting duff units to build a functional Silent 700 Model 765 ASR teletype, which will of course be a future article, one of them was more interesting for what else it came with: a set of teletype transcripts of several users logging onto The Source, one of the earliest online services, and a complete photocopy of the service's user manual. So get out your copy of Pink Floyd's The Wall, start blasting "In The Flesh," and let's head back to 1979 and 1980 when these transcripts were printed. We'll talk a little bit about the service generally and then log on exactly as these people did — because the Silent 700 transcripts indeed show exactly what transpired and how they used them.

Monday, March 28, 2022

prior-art-dept.: 5 letter words (Jim Butterfield's Jotto)

I mentioned the Wordle craze, including the extant ports to the Commodore 64, in our KIMdle sorta-Wordle for the KIM-1. But the Commodore 64, and I suspect this was actually a PET game originally, had a five-letter word game before that. Jim Butterfield's Jotto isn't Wordle — it tells you merely how many letters matched — but it's undeniably an ancestor concept. Jotto appears in the Commodore 64 user's guide on page 145 and is believed to be public domain. It is reproduced in its entirety in this scanned image.

Friday, March 25, 2022

xa 2.3.13 and dxa 0.1.5

I've updated xa, André Fachat's venerable 6502 cross-assembler, to version 2.3.13, but also dxa, its companion disassembler based on Marko Mäkelä's d65, to version 0.1.5. I keep promising version 2.4, but somehow for years we never noticed that // and /* */ in quoted strings get improperly treated as comments instead of part of the string, and that seemed a pretty important bug to fix. A test case is now part of xa's fairly extensive regression analysis suite. 2.3.13 also includes patches for segfaults with parameter handling (but never run xa as root, kids, it kills kittens) and a miscellaneous correctness fix with null file handling. Although its development home platform remains AIX (with gcc) because I'm one of those people, and portability mumble mumble weird operating systems mumble endian, it is also tested and validated on Linux/ppc64le (gcc and clang), NetBSD/macppc and NetBSD/mac68k (gcc), and Mac OS X macOS (gcc on PowerPC, and clang on x86_64 and Apple silicon). Seriously, this is the last 2.3 release, dammit. No fooling. I mean it.

dxa's development was a little more colourful. This started with a file that didn't disassemble correctly (Paradoxon BASIC from 64'er, as it happens) because apparently d65 was never able to handle files that stretched riiiiiiiiiiiight up to the very last addressible byte ($ffff), let alone files that overflowed the addressing space or were bigger than 64K. However, even with that problem fixed, this particular test file also caused dxa to emit completely nonsense branches with unpossible displacements and even jumps to non-existent labels. This violates its core guarantee that you should be able to take dxa's output, feed it back into xa and get the binary you started with. It turns out that this is due to some weird C casts used for interpreting relative branches, so I made them more explicit, plus changes in the C preprocessor that caused the macro to check if a label exists to evaluate to true in one place and false in another. I think this file made a great test vector, so now dxa has a test suite too (make test; xa is naturally required) using it and a DOS wedge routine, and I'll probably throw in more exemplar code in the future. This new test suite is already earning its keep: it found a new bug when dxa is compiled with clang, which required even more reworking of the same section and some nearby code. Interestingly, even though now the test suite passes on all the same platforms as xa, dxa-built-with-clang generates subtly different output than dxa-built-with-gcc despite the fact the assembly files they both generate will yield bitwise identical binaries. Most of this seems to circulate around detecting vectors; clang flavour finds this in some places that gcc doesn't and vice versa. It's deterministic and predictable, but I'm not sure which one of them is "doing it right," so for now it'll be a curiosity until I can dig more into the differences.

Both xa and dxa are available under the GNU Public License v2.

Wednesday, February 23, 2022

KIMdle: Sorta-Wordle for the KIM-1

UPDATE: I'm trying to solve a debouncing bug for someone who reported it, though I can't reproduce it. If you have a similar issue on real hardware, please try the version up now.

Wordle mania (trademark, probably, of the New York Times) continues. My wife and I, who bonded over word games and later got married because that's how you pick a good life partner, play daily on a private instance, except that she's 19 hours ahead so she has to be careful not to give out spoilers. Retro has gotten into the action. There are Wordle ports for Windows 3.1, Palm Pilots, Game Boys and at least three versions for the Commodore 64, such as this, this and this poop themed one called Turdle, ha ha ha.

Still, however, while these ports ditch dependence on JavaScript and HTML, they still rely on other modern conveniences such as, you know, a screen, a keyboard, and multiple kilobytes of RAM.

You see where I'm going with this.

Thursday, February 17, 2022

Refurb weekend: Texas Instruments Silent 700 Model 745 teletype

The first terminal I ever used was a teletype. Somehow my buddy when we were in high school got a hold of this weird "printer typewriter" which was none other than one of the famous Texas Instruments Silent 700 series.

Friday, February 4, 2022

Overbite Android 0.2.6

UPDATE: I've received a couple reports the .apk doesn't install. The actual reason is that the keys, and thus the author signature, have changed and Android doesn't let you replace an app with another app signed by "someone else." Delete the old version and install this one fresh rather than installing it over the old one. Sorry about the inconvenience.

Overbite Android 0.2.6 is available, the (persistently alpha-quality) native Gopher client for Android. This is merely a maintenance update for version 0.2.5 to fix visual issues with dark mode and Android 12, and a couple edge crashes. The screenshot is from my Pixel 6 Pro (the camera still crashes on it, Google, damn your eyes) running Android 12 but this release will still work with and is tested all the way back to 4.0.3 (Ice Cream Sandwich). After all, this is a retrocomputing blog! Source code for Android Studio (built with Bumblebee) is available under the BSD license.

Unfortunately, it is likely that 0.2.x will be the last release of Overbite Android to support OS versions prior to 9.0 (Pie). This is because right now I'm running Android Studio on an M1 Mac (hoping to get it working properly on my Talos II, but not there yet) and it is apparently not possible to run API 27 or earlier under the emulator. (I tried myself and it just dies immediately. There should be a way to make it run within a full system emulator, but it doesn't.) For testing purposes I dug out an Intel MacBook Air with a previous version of Android Studio, booted up a emulated Galaxy Nexus with 4.0.3 and checked the APK installs and runs, but this is rather inconvenient to test with for obvious reasons, and Google doesn't make it easy for you to keep working with old Android versions if you're trying to also support new ones. For the time being, though, I still think supporting a 10+ year old release of a mobile operating system is pretty darn good, and if I do any other 0.2.x bugfixes I will at least test them to the extent I can on Android 4 before release.

Yes, I know Overbite Android still doesn't do downloads yet. This is largely laziness on my part, since I'm only scratching the itches I personally have, and I haven't needed to download files via Gopher to any of my Android devices so far. But that's probably the major feature I plan to introduce in 0.3 when I get some time to sit down and actually write the support.

Old releases compatible back to Android 1.5 (Cupcake) are still available, including source code.

Saturday, January 15, 2022

prior-art-dept.: OWL Guide, early hypertext, and "replacing" the Web

I've been building up a few of these entries in my head as I run across things, so this will be the first of a recurring series of "prior art": technologies and ideas we use today that had earlier, different paths and implementations. For this inagural entry we'll be looking at OWL Guide, an early hypertext system for the Macintosh, and contrasting it with HTML and the modern Web.

Of course, hypertext didn't start with the microcomputer; one of the earliest document-oriented forms (as opposed to card- or frame-oriented like HyperCard or KMS, as well as other concepts) was the 1967 Hypertext Editing System, running on a partition on an IBM System/360 Model 50, contemporary with the baroque but much celebrated oN-Line System which formed the basis for the 1968 Mother of All Demos. However, the microcomputer was where it started to gain steam, with early text-only implementations like the DOS-based 1983 PhotoQuery, which became TIES in 1984. TIES' key innovation was advancing the convention that the text itself contained the links embedded within it, rather than navigating using external numbered menus, codes, icons or other gadgets. (TIES later evolved into HyperTIES, which in 1988 introduced early implementations of imagemaps and style sheets using its own "HTML" [HyperTIES Markup Language] for screen design, also based on SGML. HyperTIES was credited as the first instance where hyperlinks are blue.)

This was a natural fit for GUIs, and hypertext/hypermedia flourished on the early Macintosh. Naturally everyone remembers HyperCard and its various clones, the archetype (but not the prototype) of card-based hypermedia, but one of the earliest hypertext systems on any desktop computer was OWL Guide for the Mac, dating to 1986.