Full Width [alt+shift+f] Shortcuts [alt+shift+k]
Sign Up [alt+shift+s] Log In [alt+shift+l]
1

A Dick Smith VZ200 without the Dick Smith (but with a serial port)

from Old Vintage Computing Research [alt+shift+b] in technology

Australians! They walk among us! Do not be deceived by those charming faces! precious bodily fluids, we must remove the scurrilous larrikin influence of Australia upon our American home computers, and I know exactly where to start! Why allow Dick Smith's name (even though he'd already sold Dick Smith Electronics' controlling interest to Woolies by then but stop ruining my intro) to corrupt this, um, rubber-keyed diminutive beige home computer when we can return it to its prior, pristine, plasticky state as it once rolled out from a glorious Asian factory? Then, to avoid wrecking it with a botched logic board repair, we'll bolt on a USB serial port using the very latest peripherals from down under, write cycle-counted Z80 assembly language to blast data to it at 57.6kbps, and hack a few games. Because only this will make the VZ200 great again! TI vs. Everybody"), was a seismic event in computing. Hong Kong entrepreneurs Allan Wong and Stephen Leung were two of many to realize that the microchip would trigger a revolution in consumer electronics, and over several years accumulated sufficient funding to establish Video Technology Ltd in 1976. Their first factory operated from the Freder Centre in Ma Tau Kok, a semi-industrial area on the west side of Kowloon Bay. Initially VTech, as it became known, concentrated on video games, primarily as an OEM for the more profitable North American and European markets. Their first products were Pong clones, released in the United Kingdom as the Grandstand Adman T.V. Game 2000 (black and white) and Adman T.V. Game 3000 (colour) in 1977, both based on the Texas Instruments TMS1965N, TI's clone of the well-known General Instrument AY-3-8500 Pong-on-a-chip (compare with the rather more complex MOS 7601). Grandstand was a brand name of Adam Imports, then a substantial toy and games importer to the UK and for a period of time New Zealand, and had other Asian contacts, notably Tomy. If the picture on VTech's history page is to...
4 weeks ago

Stay updated

Get a weekly newsletter with the top 5 articles worth reading every week.

More from Old Vintage Computing Research

MkLinux and the pimped-out Apple Workgroup Server 9150

As is typical here in the Floodgap lab, it all started so innocently: rebuilding a flaky Apple Workgroup Server 9150, the odd duck of the Workgroup Server line and older cousin to our beloved Apple Network Server. And then I just had to pimp it out for MkLinux. sui generis IBM AIX-based Apple Network Server, one of our favourite machines here at Floodgap, there were the WGSes, the Workgroup Servers, Apple's well-intentioned but conflictingly received line of Macintosh rebadges hopped up with high-spec options and special server software. While certain users had long repurposed desktop Macs as ad-hoc servers, these computers were the first Apple systems explicitly positioned and sold as such, and the first generation was even advertised with A/UX, Apple's own hybrid System V UNIX implementation. Rebuilding the Green Giant Before we get into that, however, I've previously talked at length about Apple's early 1990s server strategy as it pertained to how the Apple Network Server ended up running IBM AIX, though not much about why CEO John Sculley's Apple embarked on a server line in the first place. Likewise, we've said very little about the parallel evolution of the Workgroup Servers and their relationship to the core Macintosh product line. Let's consider those topics now. As an upstart in the age of microcomputers, Apple never had a history of making big iron, and the emergence of its server line can actually be traced back almost directly to the failed Macintosh Office concept. In January 1985, Apple's infamous "Lemmings" ad led its new hardware and peripherals announcement, including the AppleTalk Personal Network (what we now call LocalTalk) to set up multidrop serial links between computers and networked devices, the new LaserWriter printer, and a revamped Lisa 2/10 with more RAM and hard disk space newly subsumed into the Mac fold as the Macintosh XL. For a not completely eye-watering amount of money, Macintoshes could talk amongst themselves and send jobs to a high-quality shared printer, with network file storage on the XL's 10MB "Widget" hard disk to come shortly and support for suitably equipped PCs to follow. Steve Jobs, then both chairman of the board and veep of the Macintosh division, confidently predicted 10,000 Macintosh Office networks by the end of the year. While the LaserWriter started at $6995 [$21,750 in 2026 dollars], the refreshed Lisa, er, Macintosh XL now started at a surprisingly competitive $3995 [$12,450], some $6000 less. However, the dirty little secret was that the Macintosh XL was only supposed to be a stopgap, a way to both slowly wind down the hardware and also buy time pending the real Macintosh Office centrepiece: Jobs' new leap forward, the "Big Mac." Big Mac had many vague ideas associated with it, though most of them converged on it being a file server or high-end workstation running some sort of Unix, possibly with the Macintosh interface layered on top. As such, being the most powerful machine in the constellation, it couldn't help but be fated for a central role in the new Macintosh Office. Later in design it was also internally known as the "3M" project, because it would generate at least a megapixel display (its most famous surviving mockup even put it in portrait orientation), provide at least a megabyte of memory, and run at least a million instructions per second on the new 68020. Unfortunately for John Sculley, the company grossly underestimated the XL's appeal at its new lower price. What Apple expected to sell in eighteen months sold in three, emptying the parts inventory so rapidly that Sculley was forced to end its availability in April with Big Mac and its software still stuck in development. ("Apple's strategy may have been too good," mused InfoWorld.) Neither could Apple keep up with demand for the LaserWriter, becoming deeply backordered from manufacturing delays and only shipping 2,500 printers by June. Third-party products ended up filling the gaps, including networking hardware from 3Com and the Centram TOPS file sharing suite. Meanwhile, the Apple board, increasingly concerned about Jobs' excesses in his dual role, ordered Sculley to contain him, after which Jobs was cashiered in May and departed in September. Now in practical ruins, even though Apple promised all shipping products would remain available, the Macintosh Office initiative was officially shut down the same month. sensu stricto was so identified with Jobs internally that it became a political liability in the wake of his precipitous exit. For his part, new Mac product manager Jean-Louis Gassée considered it a "toy" and wasted little time officially canning it, instead promoting the Milwaukee project which had been quietly launched without Jobs' knowledge to create the future Macintosh II. Consequently, Apple's image began to suffer with corporate consumers as they lost confidence in the company's suitability for large office deployments. Sculley addressed this perception head-on at the 1986 introduction of the Macintosh Plus, telling attendees, "I know the real commitment from business customers must be earned by meeting customer needs, by living up to expectations and by keeping promises. We intend to do all of that." The legacy of Big Mac nevertheless persisted in the Macintosh II's development, which at one point was even codenamed "Little Big Mac," and AppleShare's tardy arrival in January 1987 finally made a basic server platform possible. At launch AppleShare was targeted at any Macintosh Plus with sufficient external storage, though in initial versions a machine chosen for server duty had to be all but completely dedicated to the task. Introduced in March, the Mac II, compatible with the new AppleShare as well, would subsequently go on to largely achieve the 3M project's aims. System 7's impending development continued in the background, Apple added X11 support as an option in part to address these and other deficiencies in the graphical interface. "Our first goal was to do a solid Unix," argued Michael J. Homer, technical markets director. A/UX 2.0, introduced in 1990 before System 7's rollout, made good on the majority of Apple's promises: most 32-bit clean applications could now run under a new compatibility layer, MultiFinder was supported, and Macintosh, command line and X11 applications were finally able to coexist on one screen. It was exceptionally well-received by reviewers and users alike, with MacUser approvingly calling it "the most interesting and impressive software to have come out of Apple since HyperCard." Subsequently in July 1991, after System 7's May launch, Apple and IBM announced their new partnership around the PowerPC and a future AIX incorporating the Mac Toolbox. In November this idea was broadened into the future A/UX 4.0, with Apple introducing the System 7-based A/UX 3.0 at the same time. (Another, less-well-known alternative also emerged around this period, but we'll talk about that later when we discuss the history of MkLinux.) hardware, and Macs pressed into server duty in those days were otherwise just Macs. One I particularly remember as an undergraduate at the University of California San Diego was an SE/30 (userserve.ucsd.edu) down in the AP&M B337 lab, running AppleShare version something-or-other and an unknown Gopher server that we all accessed for software resources. I was fortunately able to save its contents before it was decommissioned, since it could still be accessed off-campus at the time. As such, Apple management concluded their persistent lack of a turnkey server configuration was harming additional institutional uptake. At Mactivity '92, the Enterprise Services Division (what would become Apple's Server Group) quizzed attendees for desired features; respondents nearly unanimously favoured high-end hardware on a Unix platform. Fortunately, Apple now credibly had one. In March 1993 the company announced the first Macintoshes to officially be called servers: the Workgroup Server 60, Workgroup Server 80 (collectively codenamed "Blugu") and Workgroup Server 95 ("Chinook"). came with A/UX 3.0.1, a requirement of the included high-performance PDS SCSI and L2 cache (128K to 512K) card, plus an optional 200-seat AppleShare Pro license for file and print services (a separate configuration targeted databases, with Oracle 7 specifically mentioned). In fact, when the demo machine reportedly got stolen shortly before Mactivity93, product manager Marv Su had to "make one" out of a Quadra 950 and a spare card to show to attendees. An optional tray could carry up to five internal hard disks, sitting on top of the system's drive shelf. While the AWS 95 could still run System 7, the PDS SCSI/L2 card was only fully supported in A/UX, and blocked one of the five NuBus slots when installed. The other two systems came with a 50-seat AppleShare 4.0 license and System 7.1, and both the AWS 95 and the AWS 80 had optional built-in DDS (DAT) tape backup. The 60 and 80 launched two months after the 95 in June; Apple started the three systems at $3079, $6399 and $7589 [$7150, $14,850 and $17,600] respectively. The most expensive AWS 95 loadout had 48MB of RAM, a 230MB and a 1GB disk drive, DDS-1 tape and 512K of L2 cache, and sold for $12,929 [$30,000]. itself was the operating system. This port was variously codenamed "Wormhole" and/or "Deep Space Nine," borrowing code from the existing IBM AIX port of Portable NetWare — AIX was PowerOpen too, after all — but modified to run via System 7; Wormhole would then run on the new high-end server, codenamed "Green Giant," using the fastest PowerPC 601 then available in a Quadra 950-style case. Novell NetWare was, of course, the premier network operating system of the early 1990s, but many believed it was already on a slow decline, and the overwhelmingly negative reaction Wormhole provoked from testers who still preferred Unix caught the Enterprise Services Division off guard. Spindler remained doggedly convinced NetWare was the way forward, but as it was imperative the PowerPC server reach market with or shortly after the desktop Power Macintosh, at least initially Green Giant would have to be System 7 — any other options could come later. (As we'll discuss.) 2GB drives and 24MB of RAM. You could also get a 9150 logic board to install in a Quadra 900 or Quadra 950 or, for that matter, an AWS 95, and it would fit your physical case if not your use case (if you were using A/UX). The rebuild came when it started getting flaky last year and intermittently crashing, but the RAM tested good and replacing the boot disk didn't make it better. Since these early 601s can run a little warm, I next redid the heat grease with proper modern compound to see if that would help, and it didn't. While my personal experience has been that these systems don't universally have the bad capacitors that '030 Macintoshes and their contemporaries (e.g., the Macintosh Portable) do, others have reported bad caps on their own early Power Macs, so that was the last thing to try. I sent the board off to Garrett Bunge for a professional recap, who reported there might have been a tiny bit of leakage, but either way it came back looking great. We'll come back to the history when we get to our choices of operating system. Let's first get it back together, starting with the bare case. the PowerBook 1400. this post explains how Apple's serial numbers worked at the time). additional 50-pin header at J9 with no markings. This port is yet another holdover from the Quadra 900, the first Macintosh to implement a separate internal SCSI bus, and later duplicated on the Q950 and AWS 95. On these machines the internal SCSI is a separate second bus from the external SCSI, but there are internal headers for both busses so that internal devices can be on either bus. The 9150 still has this feature and thus still has a port in the same place to handle upgrading machine configurations that need it, but it was officially undocumented and its use otherwise discouraged, and any internal devices connected to J9 will be on the slower CURIO. We won't be using it here. some sort of upgrade pathway, either through their CPU slot or (in this case) as a PDS card, with the notorious exception of the Power Macintosh 7200, 8200 and Workgroup Server 7250 for which Sonnet eventually produced a PCI card to carry a G3. with nothing installed at all. In fact, according to Apple's own tech note, the PDS terminator was only ever intended and shipped with the WGS 8150 and 9150, and it cautions these systems will not work without one if the Processor Direct Slot is empty. the musical sting! (These Power Macs do not make a Mac "bong.") I then got out my customized Mac OS 8.6 boot CD — I prefer 8.6 on Macs on beige pre-G3 Macs without an upgrade card — and put it in the optical drive, and got a Happy Mac! But was it stable? Let's burn it in before we go further with this process. Power Mac 6500 has a 1MB cache, I left it there because that machine is intended primarily as a BeOS box and BeOS doesn't support L2 G3 upgrades, whereas we might be able to dual boot with a G3 in this one even if MkLinux won't support it. (Note from the future: this can work.) not to mess around with the NuBus, PDS or cache slots without unplugging the machine, even if the key is turned to off — there's apparently some trickle power even in the fully-off key position. With the plug out I switched (with difficulty) the ROM into the top slot and put one of the 256K cache sticks in the bottom one. For storage, next we'll prep the ZuluSCSI. I got out a new SD card and created three disk images: a 4GB disk image exclusively for Mac OS (as HFS+), a 4GB disk image for MkLinux (as ext2), and a 1GB image to be partitioned into MkLinux swap and an HFS (not HFS+) exchange partition, since the HFS toolkit included with MkLinux only understands original HFS. We'll need this exchange partition for building custom kernels, since the kernel is booted from the Mac OS side. I chose to make smaller individual devices rather than carving up a larger disk into LUNs simply for ease of organization; the SCSI emulator doesn't really care one way or the other, and I can also separately back the image files up. MkLinux, or, Linux at Mach 3 At this point we'll configure the machine to dual-boot MkLinux, so let's talk some more backstory before we do. the NuBus-compatible version has survived. Because of the age of its System file, the 9150 ironically can't boot from this only known build. (Photo credit, Joe Pugliese, Associated Press.) arresting crimson prototype board complete with populated debug header, additional test points and a silkscreened train logo.) All three PowerPC Workgroup Servers now came with 16MB of base RAM plus System 7.5 and AppleShare 4.1, the 6150 and 8150 got smaller speed bumps of their own to 66MHz and 110MHz, and Apple's software RAID remained supported. software strategy was becoming. PowerOpen-A/UX 4-AIX and Taligent-Pink were still shambling around Cupertino development hell, causing Apple in May 1994 to embark upon an alternative stepwise approach in the form of Copland. Meanwhile, despite claims of Cyberpunk's continued progress, at the April 1995 refresh Spindler had little other choice than to double down on then-current Mac OS with the Apple Internet Server Solution. AISS had the distinct stench of a product assembled under duress, nothing more than a cobbled-together bundle of largely pre-existing software shipped with your choice of Workgroup Server, though the software would of course run on any Power Mac. Other than MacDNS, which wasn't even finished when AISS was launched, plus AppleSearch and "player" versions of HyperCard and FileMaker Pro, everything else was third-party: WebSTAR for server software, Bare Bones' BBEdit as an HTML editor, Adobe Acrobat Pro as, uh, Adobe Acrobat, Netscape Navigator and Everywhere Butler SQL. Apple threw in CGI support for AppleSearch and templates for web pages to be customized. AISS' spec sheet promised even the wimpiest 6150 could handle 3,000 to 5,000 connections per hour (how cute!) and more still was possible by using MacDNS for round-robin load balancing against multiple redundant Workgroup Servers. However, there was one Workgroup Server that couldn't run AISS: the AWS 95. Even as Shiner was supposed to be Apple's next big Unix box, the company seemed to outright repudiate its previous Unix efforts, explicitly claiming that "you don't need to be a Unix nerd" to use a Mac server. The AWS 95 was quietly cancelled in October 1995 at nearly the same time as the collapse of Cyberpunk, marking the end of Apple's inexplicable flirtation with NetWare. With the recognition that A/UX 4 might never ship, Shiner was retrofitted to run standard AIX 4.1 with Apple's extensions, yielding our beloved Apple Network Server in January 1996. Unfortunately for Spindler, Apple's finances were thoroughly in the weeds by then, and his announcement of further staff and model cuts was too much for shareholders who hastily replaced him with Gil Amelio in February. However, the Network Server, defiantly no Macintosh, turned out to be not the only Unixy thing at Apple then either. In 1989 Apple bought out Coral Software in Cambridge, MA (not Corel), developer of Allegro Common Lisp for the Mac, as part of an initiative for new programming paradigms on the Macintosh but also the Newton PDA. The deal involved Coral's team joining Apple's Advanced Technology Group at a new ATG lab to be established there, and Ike Nassi, a veteran engineer and scientist at DEC and part of the initial team at Encore Computer Corporation, was recruited to Apple by then-Newton chief Larry Tesler to run it. Initially Nassi managed the Dylan programming language (at the time written in Macintosh Common Lisp and originally intended for, but never used by, the Newton) and Sculley's Knowledge Navigator passion project before Apple software VP Dave Nagel asked him to move west in 1993 to assist with the software division. Nassi started as VP of development tools, his portfolio notably containing MacApp and the Macintosh Programmers' Workshop, but less than a year later was asked to take over the operating system group. As the PowerPC transition progressed, Nassi became concerned by efforts to build the Common Hardware Reference Platform, believing it would stunt the growth of the Power Macintosh, and positively alarmed by the growing debacle around Copland's infamous NuKernel core, which he said later to the Computer History Museum "was just not going to fly." pairs of National Semiconductor NS32032-family processors. (At my first job out of college, the HP 9000-K250 I was hired to work on had recently replaced what I think was a Multimax.) In fact, Apple already had experience with the Mach microkernel in the form of MacMach, a 1991 CMU research prototoype which ran 68K System 7 as a virtualized task under Mach parallel with its 4.3BSD-derived operating system core — not unlike Classic under Mac OS X many years later, and not to be confused with MachTen, a separate commercial effort from Tenon Intersystems developed independently from CMU or Apple, which runs Mach as a task under Mac OS. MacMach was the product of a joint effort to allow programs from CMU's Andrew Project distributed environment to run directly on the Macintosh II, and Apple provided both financial support and source code from System 7 to aid in development. Notwithstanding the impressive technology, however, MacMach's potential was unavoidably limited. Its reliance on the 4.3BSD codebase incurred the strict requirement that users hold a valid AT&T Unix source code license, all but ensuring it could never be a plausible alternative, let alone threat, to A/UX; and like A/UX, it was never directly ported to PowerPC, condemning it to obsolescence. In the time since, Nagel had moved to VP of engineering; Nassi, who succeeded him as head of the software division, convinced Nagel in August 1995 that resurrecting the concept might pay off. The idea was controversial within Apple, especially with Macintosh division head Howard Lee, who believed it would maroon the Macintosh if IBM considered Mach's highly portable nature as evidence Apple wasn't committed to PowerPC. Lee's fear was not without reason: Spindler previously had to cancel the System 7 port to Intel (i.e., the Star Trek project, instigated by Novell) as a potential threat to the alliance, and of course Project Marklar much later directly led to Apple indeed leaving PowerPC in 2006. Becaue of the internal political ramifications, the PowerPC Mach group initially had few staff resources and operated in near-secrecy for many months. Brett Halle, then manager of the kernel team, suggested to Nassi that a Linux port, modifying the Linux kernel to run as a task under Mach, could demonstrate the microkernel's viability. It even had an obvious name: MkLinux. With Nassi's blessing, Halle quietly sponsored a small team from the Open Software Foundation's Grenoble, France office to begin both the Mach port work and the Linux kernel conversion to run under it. OSF had extensive experience with Mach dating back to their 1989 use of Mach 2.5 as the basis of OSF/1 ("osfmk," intended also as part of the foundation of A/UX 4.0) but this team operated separately, later with a single part-time Apple engineer. The host machines used for initial development were both x86 PCs running regular Linux and HP 9000/700 PA-RISC workstations with OSF/1, with the x86 hosts migrated to an MkLinux port of their own as a self-hosting alpha test. PowerPC objects were cross-compiled using gcc 2.7.1, with cross-platform debugging with gdb over a serial port. For simplicity of development, the Linux task ran under OSF MK as a single monolithic server, though the developers admitted this wouldn't be an ideal system design for a Mach-based platform. The group's rapid progress impressed Nassi, and shortly before the first Developer Release in May 1996 he made the effort official as Apple's "Leveraged Technologies Group." Using the new kernels with tools and pieces previously ported by Thomas and others on top of a modified Red Hat distro, MkLinux DR1 CDs were finished, pressed and handed out, complete with source code, to WWDC attendees that year. The LTG represented Apple's first official attempt to support an open-source software project, and within six months had increased to seven members, five at Apple and two at OSF. An important consequence of its isolated development, however, was its limited hardware support. Apple had since moved from NuBus to PCI with the introduction of the Power Macintosh 9500 in June 1995, and the Workgroup Server line subsequently followed suit. In February 1996 Apple introduced the Workgroup Server 7250 (derived from the Power Macintosh 7200), using the same 120MHz 601+ as the 9150/120, and the first Workgroup Server to use a 604, the 132MHz Workgroup Server 8550 (from the Power Macintosh 8500), along with an updated AISS 2.0 — at which point the 6150, 8150 and 9150 were all discontinued, though the new AISS would still run on them. But, because the LTG had only developed on NuBus Macs, DR1 only officially ran on the 6100, 7100, and 8100 (plus Power Computing's clone Power 100 family), all of which had also been discontinued by the time DR1 emerged. Not even the NuBus PowerPC Workgroup Servers officially appeared in the support list, though of course it would run on them too. As the distribution files were large downloads for the era, partner Prime Time Freeware produced pressed CD-ROMs for a nominal cost. replaced by DR2 in September 1996, primarily a bug-fix and performance release, which in turn was used to supplement an early direct port of the Linux kernel (then called linux-pmac) to PCI Power Macs. For his part, Nassi was pleased with MkLinux's promising launch. However, without a compatibility pathway it could not be an obvious successor to Mac OS, and while Nassi had plans for running the Mac OS under this "PowerPC MacMach" as 68K MacMach did, that goal was never achieved. Nassi quietly disagreed with Gil Amelio's pursuit of Jean-Louis Gassée's BeOS, believing Mach to be the superior platform, and left Apple in November 1996 before Apple's acquisition of Steve Jobs' NeXT — itself of course powered by a Mach-based OS, as is its descendant, modern macOS. MkLinux nevertheless progressed further at Apple after his departure. DR2.1 was announced in March 1997 as the first release to itself run on both NuBus and PCI systems, supporting the 601 and 604 CPUs in the Power Macintosh 6100, 7100, 8100 and 7200, 7500, 7600, 8200, 8500, and 9500. Prime Time duly released CDs of these as well and Apple dubbed 2.1 the "Reference Release," sponsoring Prime Time and editor Rich Morin to release a book-and-CD kit with the tree from January 1997, just before the official announcement. The x86 and PA-RISC ports were also made available (since they already existed), though of course OSF MK could run on many more architectures than that. On the other hand, the Apple Network Server, at the time Apple's only true-Unix machines, never ran it. Cyberdog and OpenDoc and terminate further development of the Network Server, and MkLinux was just as vulnerable because in Jobs' mind it had already achieved its maximal corporate utility: OSF and the LTG had done most of the work porting the microkernel, and with NeXTSTEP's ready BSD foundation Apple had no further need of Linux. Apple disbanded the LTG and transferred control to the community MkLinux Developers Association in 1998 for the release of DR3 in July, by which point MkLinux could run on nearly every four-digit Power Macintosh (now explicitly including the Workgroup Servers) and even early beige G3 models, plus the PowerBook 3400 and the Kanga PowerBook G3. (Apple had since abandoned the 620, which had become hot, expensive, and increasingly surpassed by the cheaper 604 family. Notably, although the 750/G3 completely outclassed it as well, the G3 did so with some features introduced in the 620 like backside L2 cache.) In those days the website was reportedly even hosted on an 80MHz 7100 for some period of time, and allegedly other PowerBooks like the 5300 could boot it also. Mac-specific device support lagged, however, and the project's lack of resources combined with the continual need for Mach-specific changes to the Linux kernel slowed progress further during Apple's transition to the New World Mac. R1 was released in December 1999 and the final release, "pre-R2" (but basically R2 and that's what I'm going to call it), was closed out in August 2002. Although the MkLinux website remains up and accessible today, no new official work on it was subsequently done, and the direct LinuxPPC port replaced it as the de facto Linux basis for Power Macintoshes and the Network Server. Given that complicated tale you might well wonder why we're even bothering with MkLinux at all, especially since non-Mach Linux also eventually supported NuBus Power Macs, including the 9150. The reason is simply historicity: it was the only official "Apple Linux," the only Linux distribution Apple had a direct hand in developing, the only Unixy thing of any kind Apple even vaguely supported on any PowerPC Workgroup Server, and for years was the only Linux that could run on the NuBus ones. With the weight of that behind it and me being a history nerd first and foremost, I never considered running anything else. Before Brinton's freakout and rebuild, I had MkLinux "pre-R2" on it, so now that we're starting fresh we'll hopefully learn from those mistakes I made the first time (at least, if I can remember them). /home and one for everything else in /. Since we want to do this precisely, we'll click Custom. from the Internet Archive or a Garden of other Macintosh sites. The R2RC5 CD also contains components for the contemporary release of LinuxPPC, but it doesn't run on the 9150, so we will not discuss it further in this article. MkLinux-install folder are multiple pieces to copy to your main Mac OS volume's system folder (to the Control Panels, Extensions and Preferences folders). A booter extension (named, oddly enough, MkLinux Booter) is used to launch the Mach kernel portion before the rest of Mac OS loads. This kernel is stored on the Mac filesystem, not the Linux one. The MkLinux control panel is used to pick the boot default, either Linux or Mac OS. The MkLinux Booter extension understands LILO configuration files and one is provided. Open lilo.conf from your Preferences folder after you've copied it. Alternatively, you can click the Custom... button in the MkLinux CDEV. rootdev=/dev/scd0 line is uncommented, and no other rootdev= lines are specified. If you have multiple possible CD-ROM drives or emulated CDs available, you may need to change this number. The other important part of this file is the mach_options= line, down at the bottom. These are the command line arguments passed to Mach. Despite the -v option shown there prominently, which would be expected to trigger a verbose boot, pretty much any boot is verbose in MkLinux. We'll have another use for this field when we get to our upgrades. scri (technically a WorldScript extension, but otherwise loadable as a "regular" extension), not INIT, which causes it to load before other INITs and CDEVs without resorting to trickery like putting a whole lot of spaces before the name. BootX uses the same method. The window here is as close to an About box as you'll get for MkLinux. The staff list appears to date from just before the disbanding of the LTG: from Apple, Brett Halle, Michael Burg, Vicki Brown, Gilbert Coville and Eryk Vershen, and from OSF Research Institute, Nick Stephen, F. Barbou des Places, Éamonn McManus and Gary Thomas. Notice that in this screen booting MkLinux is the default. The default choice is set in the MkLinux control panel. Regardless of what the default actually is, press RETURN to accept it, and ESC to accept the other option. COLOR line when specifying the video console, and compare it with this: COLOR line appears, with the same colours in the same order, and almost certainly descends from the same block of code. Apple implied as much in the December 2000 Kernel Environment documentation, saying, "Other parts of the system software, such as Mach, are based on technology previously used in Apple’s MkLinux project, in Mac OS X Server, and in technology acquired from NeXT." This particular message disappeared in 10.3 as there was no need to specifically call out the console as colour by then. default_pager), the virtual memory manager, is started next. The bootstrap loads the Linux kernel as the next task, which should start from its initrd and finally enter the installer. Unfortunately, at this point we got no more messages from the MkLinux Mach kernel and the 9150 completely ground to a halt. A brief moment of panic ensued because MkLinux used to work. Was the machine shot after all? After I got the conniption out of my system, I thought a little more carefully and realized that this new 9150 configuration was not the same as the old 9150 configuration: we have a ZuluSCSI, and we have approximately double the RAM. I could believe the ZuluSCSI was at fault if we were booting from it, but we were booting from the same CD-ROM I installed MkLinux from before, so that possibility seemed unlikely. That left pulling out half the RAM SIMMs. can do that much without having to disassemble the machine again to get the power supply out. It's putting the SIMMs back in that's the fun part, but right now we just have to make sure this can work. larger fifth free region. gcc 2.95.2 (I don't know where the line noise came from there, and I don't know why it says "hello"). The initrd then transfers control to the Red Hat installer, without using systemd, which we shall consider a feature. I ignored them, anyway. mac-us-std suffices. second volume on /dev/sdb. The two 2GB partitions we created are /dev/sdb3 and /dev/sdb4, which the MkLinux installer has treated as "Linux native." We move to /dev/sdb3 and select Edit. /dev/sdb3 will be /, so we provide that path and select OK. /dev/sdb4 will be /home. / and /home formatted, but we needn't check for bad blocks on them either, and select OK once again. / and /home are created, the packages are scanned ... glibc provided is 2.1.3. dreadfully slow, and the weak onboard video does it absolutely no favours. I recall finding AfterStep (ah, the irony), also included, more tolerable. Admittedly, Apple didn't really intend the 9150 to be a workstation and as such we're not going to struggle with it this time around, but we may possibly do so in a future article. brinton.floodgap.com. lilo.conf in the Mac side's Preferences folder to now point to the new root on /dev/sdb3. I have never tried this with an HFS file system, but it cannot mount (let alone write to) an HFS+ file system, so we'll need to do that on the 8.6 side afterwards. lilo.conf as instructed (from Preferences, or by clicking Custom...), and then restart the Mac. fsck since for some reason the installer did not cleanly unmount the root filesystem. Apple's Linux, after all, even though it was recently removed from the modern Linux kernel — and SMB services. If you had period clients, this could definitely have been your file server, and that would have been an absolutely appropriate purpose for the 9150. brinton:/home/spectre/% uname -a Linux brinton.floodgap.com 2.0.38-osfmach3 GENERIC_09 #9 Tue Mar 7 10:51:13 PST 2000 ppc unknown brinton:/home/spectre/% gcc -v Reading specs from /usr/lib/gcc-lib/ppc-yellowdog-linux/2.95.4/specs gcc version 2.95.4 20010319 (prerelease/franzo/20011204) brinton:/home/spectre/% ls -l /mach_servers total 3615 -rwxr-xr-x 1 root root 1349896 Jan 7 2001 Mach_Kernel -rw-r--r-- 1 root root 119033 Jan 7 2001 Mach_Kernel.map -rwxr-xr-x 1 root root 131314 Apr 19 2000 System.map -r--r--r-- 1 root root 123 Feb 22 1998 bootstrap.conf -rwxr-xr-x 1 root root 205690 Jan 7 2001 default_pager -r-xr-xr-x 1 root root 257371 Feb 22 1998 mach_init -rwxr-xr-x 1 root root 1614475 Apr 19 2000 vmlinux Sing it with me: Startup, shutdown, startup, shutdown, swiftly fly the rc files ...) Pimp My Green Giant Ride We have now returned to the functionality of our prior configuration: we can dual-boot MacOS and Linux. However, with motherboard video, the baseline CPU, half its maximum RAM, and half the L2 cache it originally shipped with, right now it's not a particularly strong performer in either operating system. Of course, the set of what upgrades are supported in Mac OS 8.6 is rather larger than the set of what upgrades are supported in MkLinux R2. For example, while G3 upgrades are available for the PDS connector in NuBus Power Macs and generally work well in Mac OS, most of them don't work in MkLinux, and MkLinux doesn't support NuBus video cards either. There is also the matter of that 128MB of RAM we had to remove that we would like back. Ideally, with these plastics continuing to crumble, we would like to find a maximal configuration suitable for both operating systems that can be changed through software as needed, rather than having to keep opening it up. MkLinux FAQ-O-Matic has somewhat conflicting information about which CPU upgrade cards work where and how, though the various reports do seem to agree that Sonnet cards won't work at all. On the other hand, while one reporter indicated success with a Newer Technology MAXpowr G3, I'm not entirely confident in his recollection because despite being a PDS card he said it displaced the L2 cache. The MAXpowr G3 PDS also lists the 6150 and 8150 but not the 9150 as compatible, even though the PDS connectors are the same; there may be a form factor limitation. But the 9150 is specifically listed as compatible for the Sonnet G3, and Sonnets are much more common. As long as the Sonnet extension loads after the MkLinux Booter extension, the upgrade card should remain inactive, and MkLinux can run unmolested on the 601 (we can leave the L2 cache stick in, even). For the Mac OS, we can use the G3 there. As it happens, I have a couple spare G3 cards in the stock closet and this seems like the perfect time to put one in service. the Power Mac car crash sound (further yelling censored). After unplugging it, pulling the G3 completely and putting the PDS terminator back in, I got the normal startup chime and a normal boot, so I put the G3 back in. This time it booted as well. (It also appears that the PDS terminator is not needed in this card; it seems to terminate the bus just fine by itself.) actual system bus is not doubled, which is to say that any bus access these CPUs make could stall depending on whether it corresponds to the real bus clock. These cards therefore must have a crapload of cache to smooth such gaps out, and indeed both of these fastest cards have a full 1MB of backside L2. The backside cache bus runs at double the system bus speed, but the cache is on the doubled "local" bus, so the cache speed is effectively 4x the system bus. The 9150/80 here is a 40MHz bus system, meaning the G3 card's local bus runs at 80MHz, the backside cache at 160MHz, and the CPU at a 5x multiplier for the full 400MHz. Even if I hunted down a 500MHz G3, and while I'm crazy I'm not made of money here, I would only see 480MHz on this system (6x multiplier). Sonnet's Metronome faithfully reports all these numbers, but Apple System Profiler doesn't know about the doubled "local" bus, so it erroneously thinks the CPU is only 200MHz. scri, then inserting spaces and/or changing its filename to sort above it. INIT to load it later. That way we can continue to boot MkLinux normally on the 601 (with the motherboard L2 cache, which we never removed), yet still enjoy the benefits of the G3 — and it is much snappier — in Mac OS 8.6. an -m option that caps the amount of RAM Mach will use. You pass it on the mach_options= line in lilo.conf, e.g., mach_options=-m136. To test this, we'll need to install the full 264MB. With some difficulty you can worm the SIMMs back in without removing the power supply. However, that also knocked the board back into the interrupt and reset switches again, and the second time around was not much more reassuring. Too much memory was apparently a significant problem in some configurations of MkLinux, and values that work for booting the installer for testing purposes may not necessarily work for an installation (for example, I tried -m200, and while this worked for the installer it could not start the kernel installed on the ZuluSCSI image). A cursory look at the Mach kernel source suggests that there is a hard upper limit on the number of VM hash buckets and when this overflows, the kernel goes into never-never land. -m191 seemed to be the highest value that would work either way, but I left it at -m136 since that was the RAM amount that we started with and that I knew was reliable. I was now pretty thoroughly irked by the problem with the front switches and decided I needed to do something about that. carefully at low speed. mostly stable. will use the Velcro straps to neaten everything up. I put the SCSI cable's excess length into the bottom compartment of the hard disk tray. much they wouldn't work. In my parts bin is a Radius PrecisionColor Pro 24XK. The reason I marked the name on it is that the 24X, 24XK and 24XP are closely related and can be hard to distinguish visually. From my experience the highest-end 24X has all 12 RAM chips along the top instead of the 11-1 arrangement here on the 24XK and 24XP. Another difference appears to be the speed of the Brooktree Bt473 RAMDAC, which is the silkscreened number at the end of the chip identifier (the 24X is 110MHz, this 24XK is 80MHz and the 24XP is 66MHz). Kan's page claims it does, so I just have to push it. This card has both composite video in and out as well as a conventional Mac DA-15 video port. Although the card is slower than the HPV card, it has 2MB of VRAM and correspondingly more colour depth and resolutions, so it's worth giving a shot. as directed and installed it that direction in the middle NuBus slot. It still needed some squeezing to make it and may have nailed the frame around the NuBus slots, but it fits. a future article and see if any hacks in the kernel are possible to improve the situation. If not, at least we'll have fun exploring the infrastructure. The Workgroup Servers did not survive the axe of Jobs either: after the 7250 and 8250, the last Macintosh systems to bear the Workgroup Server name were the Workgroup Server 7350 and Workgroup Server 9650 in April 1997, which were cancelled less than a year later in March 1998. With the introduction of the beige G3, the "Workgroup Server" brand was retired for the "Macintosh Server G3," which encompassed both the beige mini-tower in March 1998 and later the "Yosemite" Blue and White G3 in January 1999. Apple did not reintroduce bespoke server hardware to their product line until the rackmount Xserve G4 in 2002, which survived in G5 and Intel-based incarnations until 2011 when they were cancelled — per Jobs — "because hardly anyone was buying them"; a 2009 server version of the Intel Mac mini, in some ways a spiritual descendant of the Workgroup Servers, was itself cancelled in 2014. Even though there are still lots of Macs in offices, to date no official server hardware has ever returned to Apple's product line-up since.

2nd Aug 2026 • 1 votes
John C. Dvorak has died

Reports coming in of the death of John C. Dvorak, apparently passed away on Monday (July 20th) from complications of heart bypass surgery. Dvorak started in wine and moved to silicon as an early columnist at InfoWorld, one of the pillar references for this particular blog because of its studious regular reporting, and most notably for PC Magazine where he had no less than two columns since at least 1986. In addition to this and other tech journalism credits, he was on the flagship CNET Central cable TV program in the mid 1990's with his "Buy It, Try It, Skip It" reviews, plus other shows hosted on NPR and then-ZDTV. He was also a regular guest on Leo LaPorte's syndicated radio program and podcasts, and joined former MTV veejay Adam Curry (well known to us in Gopherspace for MTV Networks v. Curry, and an early user of TTYtter before Twitter started to suck) in 2007 as co-host of the No Agenda podcast, a role he maintained until his death. Dvorak hailed from a different generation of tech journalists, far more personal and yet far more technical, and even his detractors (given his political views, which we won't talk about here, there are many) would admit he was at least entertaining. He was 80. Rest in peace.

23rd Jul 2026 • 1 votes
Building an serial and VGA "everything console"

Some of our recent (and some upcoming) projects are oriented to systems with serial consoles, but it's been getting pretty old dragging around old CRT terminals or tying up Mac laptops with a serial port. I'd like something that's self-contained, a little more portable and a bit less heavy. I'm sure there's any number of all-in-one setups you can buy to do this, but I'm cheap, so I'm going to DIY it. from 2004 to 2014, so it's almost on-topic for this blog, even. I chose it because it was a little banged up and the LCD had some areas of damage (probably improperly closed on something), and the seller had priced it accordingly, but the screen was still sufficiently legible and the keyboard looked fine. Naturally you can do mostly what we're doing here with any of the similar Dell or HP or etc. units that can also be easily found. an UltraNav, the fact it gives you a choice of pointing device is rather nice: if you like TrackPoints (I don't hate them), you can use that, or if you prefer trackpads (I don't hate them either but I'd rather use the TrackPoint), you can use that. The keyboard and UltraNav are implemented as HIDs on a single hub which also offers two more USB ports. fine." Like I say, there was some damage, probably because it got closed improperly on something and messed up the display, but it's sufficient as a simple terminal or here connected to the M1 MacBook Air with a USB-C dongle. you need to do is pick what is the most convenient for you and has the right features. There are slightly more such devices which use a PS/2 port, but I decided to stick with USB since it would be more flexible and if I really needed something else, I could use an active converter like a ps2x2pico for PS/2 or a Wombat for Macs with ADB. I eventually selected this one from Tattler Solutions (not affiliated) because it ships from the United States (damn you UPS, you still owe me $600 on that tariff you stiffed me on), comes in a nice self-contained case and can be USB-powered, runs up to 115200bps, and has demonstrably good VT100 terminal support. All up it cost me $86 shipped. However, it also has a big drawback: its USB controller does not support combo devices like our IBM keyboard, which he does warn you about, and believe me, I tried really hard to get that to work because I really like the keyboard. Unfortunately, it truly is (and in fairness, as described) a fundamental hardware limitation that can't be programmed around, so that means we can't use our nice UltraNav. days. The first time I tried it, I tested it out after 24 hours as suggested and while the excess silane glue exposed directly to air had cured, the silane between the metal had only partially done so and the whole thing peeled right off. The second time I let it sit for a week. That seemed stable. Raptor Blackbird, using a VGA-to-HDMI dongle on the Blackbird side. Folded up more flat this time, ready for the next project. A latch and a handle would also help to make this more portable, though I suspect some drilling may be required for that. I'll look at some options. For now, this suffices.

14th Jun 2026 • 1 votes
Testing MacOS on the Apple Network Server 2.0 ROMs

It's time for another save point in the continuing saga of the various ROMs for the Apple Network Server, Apple's first through-and-through Unix server (previously, previously). The Apple Network Server was only ever officially able to boot AIX, IBM's proprietary Power ISA-specific Unix, though it was originally intended to run Novell NetWare and was demonstrated booting Mac OS with early pre-production ROMs. However, much to industry surprise, late in its life cycle then-CTO Ellen Hancock announced that the ANS would be able to boot Mac OS and even Windows NT as well using ROM upgrades. Neither ROM was officially released before Steve Jobs convinced Gil Amelio to cancel the line, and for many years they were believed to be vapourware. But they've started to surface, first with an ex-Apple employee who had both the preproduction ROM and the Mac OS ROM on a flash ROM SIMM, and later another employee turned up with the NT ROM, though sadly more is needed to make it actually run NT. It turned out that I also had the preproduction ROM in a box gathering dust, and a couple months ago we put both the preproduction ROMs and NT ROMs through their paces. holmstock, our hard-working Apple Network Server 700 test rig (stockholm, my original ANS 500, is still officially a production unit). And there are some interesting things to report, especially when we pit the preproduction ROMs and this set head-to-head in MacBench, and even try booting Rhapsody on it. When we last left the 700, it still had the preproduction 1.1.20.1 ROM installed, which can be used to boot either MacOS or AIX and makes it look to MacOS like a Power Macintosh 9500, the ANS's closest relative. However, the ANS has unique hardware: two Symbios Logic 53C825A SCSI-2 Fast and Wide controllers (20MB/s) for the internal SCSI bays and on-board Cirrus Logic 54M30 graphics used in no other Apple product. MacOS never supported these and the preproduction ROM does not contain support for them, so to boot Mac OS you have to use the external 5MB/s CURIO SCSI (the ANS doesn't have the typical Power Macintosh MESH controller) and a Mac-compatible PCI video card. I selected a IMS TwinTurbo, the same card shipped with the Power Macintosh 9500, and booted it off an external BlueSCSI, both of which work well for this purpose. Once you get everything set up, versions up to at least Mac OS 9.1 are compatible, though with various annoying glitches you have to work around because it's not really a 9500. very quickly to the patterned Toolbox background. We have nothing installed it can boot from, so it almost immediately displays a gimme-disk animation, just like a regular Mac. But unlike most other Old World Macs (and the preproduction ROMs), the icon is in colour, because this is Open Firmware 2.0. bye and boot words, there is an io word to redirect output for you. If you type ttya io at the console, it immediately switches to serial on rear port 2 at 38400bps by default. We want to see if it does anything interesting when we start it, so we'll setenv input-device ttya:57600, setenv output-device ttya:57600 and reset-all to default it to serial startup, but we still have to hold down Cmd-Opt-O-F or it snaps back into the Toolbox ROM. Let's dump the device tree. printenv VARIABLE CURRENT DEFAULT little-endian? false false real-mode? false false auto-boot? true true diag-switch? false false fcode-debug? false false oem-banner? false false oem-logo? false false use-nvramrc? false false real-base -1 -1 real-size 100000 100000 virt-base -1 -1 virt-size 100000 100000 load-base 4000 4000 pci-probe-list -1 -1 screen-#columns 64 64 screen-#rows 28 28 selftest-#megs 0 0 boot-device /AAPL,ROM /AAPL,ROM boot-file diag-device fd:\diags fd:\diags diag-file input-device ttya:57600 kbd output-device ttya:57600 screen oem-banner oem-logo nvramrc boot-command boot boot ok 0 > dev / ok 0 > ls Children of the node: FF82A4C8: / [AAPL,9500 MacRISC] Node Adr Node Name Compatible FF82B8B8: /cpus@0 FF82B9D0: /PowerPC,604@0 FF82BDE8: /l2-cache@0,0 FF82C528: /chosen@0 FF82C658: /memory@0 FF82C7A0: /openprom@0 FF82C860: /AAPL,ROM@FFC00000 FF82CA78: /options@0 FF82CF28: /aliases@0 FF82D168: /packages@0 FF82D1F0: /deblocker@0,0 FF82D9C8: /disk-label@0,0 FF82E4B8: /obp-tftp@0,0 FF830710: /mac-files@0,0 FF832508: /mac-parts@0,0 FF8336F0: /aix-boot@0,0 FF833B40: /fat-files@0,0 FF835158: /iso-9660-files@0,0 FF835AC0: /xcoff-loader@0,0 FF836388: /terminal-emulator@0,0 FF836420: /bandit@F2000000 FF837848: /gc@10 FF837C80: /53c94@10000 FF839490: /sd@0,0 [sd] FF83A1E0: /st@0,0 [st] FF83AE80: /mace@11000 FF83BD10: /escc@13000 FF83BE68: /ch-a@13020 FF83C4C0: /ch-b@13000 FF83CB18: /awacs@14000 FF83CC00: /swim3@15000 FF83E050: /via-cuda@16000 FF83EF00: /adb@0,0 FF83EFF0: /keyboard@0,0 FF83F910: /mouse@1,0 FF83F9C0: /pram@0,0 FF83FA70: /rtc@0,0 FF83FF10: /power-mgt@0,0 FF83FFD0: /lcd@1C000 FF840908: /nvram@1D000 FF8426D0: /pci106b,1@B FF8428A8: /54m30@F [pci1013,a0] FF8445F8: /apple53C8xx@11 [53c825] FF8471E0: /sd@0,0 FF8480D8: /apple53C8xx@12 [53c825] FF84ACC0: /sd@0,0 FF840AA0: /bandit@F4000000 FF84BD60: /pci106b,1@B FF841F30: /hammerhead@F8000000 ok 0 > devalias vci0 /chaos@F0000000 pci1 /bandit@F2000000 pci2 /bandit@F4000000 fd /bandit/gc/swim3 kbd /bandit/gc/via-cuda/adb/keyboard ttya /bandit/gc/escc/ch-a ttyb /bandit/gc/escc/ch-b enet /bandit/gc/mace scsi /bandit/gc/53c94 scsi-int /bandit/gc/mesh screen /bandit@F2000000/54m30@F scsi-int would point to the internal SCSI, and a path like /bandit/gc/mesh (GC in this case is Grand Central) would do so on a regular Power Mac, but the ANS doesn't have a MESH. That means trying to list the contents of a CD-ROM in the internal optical drive, ordinarily SCSI 0 on an ANS ... dir scsi-int/sd@0,0:,\ unable to open the DIR device ok 0 > dir /bandit/apple53C8xx@11/sd@0,0:,\ . 00000010 000023 000002048 000 000 .. 00000010 000023 000002048 000 000 DIAGS. 00000000 000024 000189345 000 000 NWSTART. 00000000 000117 003603460 000 000 OFWBOOT. 00000000 001877 000349998 000 000 TRANS.TBL 00000000 002048 000000655 000 000 ok 0 > boot /bandit/apple53C8xx@11/sd@0,0:aix loader: unrecognized client program format state not valid disk2:aix Device isn't there! can't OPEN: /bandit/53c825@11/sd@2,0:aixOpenFirmware1.1.20 To continue booting the MacOS type: BYE<return> To continue booting from the default boot device type: BOOT<return> ok 0 > devalias vci0 /chaos@F0000000 pci1 /bandit@F2000000 pci2 /bandit@F4000000 fd /bandit/gc/swim3 kbd /bandit/gc/via-cuda/adb/keyboard ttya /bandit/gc/escc/ch-a ttyb /bandit/gc/escc/ch-b enet /bandit/gc/mace scsi /bandit/gc/53c94 scsi-int /bandit/53c825@11 lcd /bandit/gc/lcd screen /bandit/54m30@F scsi-int2 /bandit/53c825@12 disk0 /bandit/53c825@11/sd@0,0 disk1 /bandit/53c825@11/sd@1,0 disk2 /bandit/53c825@11/sd@2,0 disk3 /bandit/53c825@11/sd@3,0 disk4 /bandit/53c825@12/sd@4,0 disk5 /bandit/53c825@12/sd@5,0 disk6 /bandit/53c825@12/sd@6,0 ok 0 > boot disk0:aix or boot /bandit/53c825@11/sd@0,0:aix will boot AIX from the internal CD-ROM. improves performance. It's not clear what this ROM does in that instance, and in any case there are bigger problems such as the absolutely preposterous processor speed (this is a 150MHz PowerPC 604e). The L2 cache, at least, is correctly detected as the standard 700 1MB. We'll come back to this too. knew it hadn't been that bad. It also reported a bogus amount of L2 cache (2MB) despite the figure in the NSDU. But both Gauge PRO and TattleTech said there was no cache. eighty-nine percent of the reference G3 — 48% faster! My suspicion is this can be chalked up largely to the complete fail on the L2 cache and possibly also to the RAM speed, but either way, it was shocking how badly the 2.0 ROMs performed. boot scsi/sd@2,0:0 scsi/sd@2,0:8,mach_kernel (using a "partition zero" loader to chain into the actual Rhapsody kernel). On the preproduction ROMs, we got a CLAIM failed from Open Firmware no matter what settings I tried. waitForInterrupt bombed out, possibly because of the different interrupt setup on the ANS compared to the 9500. is correctly detected. these 2.0 ROMs, or more elemental issues like the L2 cache support would have gotten fixed. It certainly does smooth out certain rough spots, it supports all the ANS hardware as advertised, and it was more reliable with reboots, but the speed penalty you'll take running it just doesn't seem worth it. I could only see myself running this version if I had to have the biggest, baddest, meanest AppleShare server with tons of SCSI drives in Mac OS. Is there a later version out there yet to be found that does deal with those problems? Meanwhile, I'm going to work on a patched version of Mac OS for this machine to fix the reboot problems in 1.1.20, which I believe should be solveable with some resource hacking. That said, I'm not done with these ROMs just yet: I think Rhapsody, at least, can be made to work but it clearly needs a kernel patch, and I suspect the former Apple employee who got it working on the 2.0 ROMs did just that. Performance might still be hideously bad, but it's nevertheless another solid Un*xy option for Apple's best beige Unix box, and it even has historical value. To be continued if I can get my hands on some Rhapsody source code. Anybody feel leaky?

3rd May 2026 • 1 votes

More in technology

Inside a 1980s filter chip that uses switched capacitors

Sometimes it's easier to identify an IC with a microscope. While sorting a box of old ICs, CuriousMarc came across some Harris ICs labeled "F1-10-5", a mysterious part number that didn't show up in any databooks. Since unidentifiable ICs are useless, he gave me one to analyze. Conveniently, it was in a ceramic package, so I could open it up with a quick tap from a chisel. Under the microscope, the chip's most striking feature was a grid of square capacitors. With all those capacitors, I guessed that it was a switched-capacitor filter. The die provided another clue: the part number HF-10. With this information, we quickly found that the chip was Harris's version of the standard MF10 switched-capacitor filter chip.1 The Harris integrated circuit, labeled F1-10-5 (or maybe FI-10-5), with a 1985 date code. Photo courtesy of CuriousMarc. Switched-capacitor filters were a popular way to implement analog filters in the 1980s. Rapidly switching capacitors in and out of a circuit enabled the construction of single-chip filters that were easy to use and performed well. The MF10, introduced by National Semiconductor in 1981, provides two flexible filters on a chip; each filter acts as a low-pass filter, band-pass filter, or a high-pass filter. The filter's characteristics are simple to control with a few external resistors. The Harris HF-10 die under the microscope with the main functional blocks labeled. (Click for a larger image.) Since I had the chip under the microscope, I took the opportunity to analyze it more closely. The white lines are the metal wiring that connects the chip's circuitry. Under the metal layer are two layers of polysilicon (reddish) and the underlying silicon (gray). The top and bottom halves of the chip are mostly mirror images, corresponding to the chip's two filters. The distinctive reddish squares in the middle of the chip are 72 tiny capacitors, constructed from polysilicon. Above the capacitors, CMOS switches turn on and off at the clock frequency, switching capacitors in and out of the circuit. Each filter uses three operational amplifiers (op amps), outlined in red. At the right are the three outputs from the three op amps: high pass, band pass, and low pass. The control circuitry is on the left: clock level shifting, clock shaping, frequency ratio handling, startup circuitry, and current sinks to provide fixed currents to other parts of the chip. Around the edges of the silicon die, 20 hair-thin bond wires connect the die to its 20 external pins. The die has some interesting chip art: a Harris logo and an outline of Florida; Harris was headquartered in Melbourne, Florida. The initials on the die are presumably the engineers who designed the chip. Some interesting images from the die. Switched capacitor circuits The filter is based on switched-capacitor circuits. A switched capacitor can replace a resistor in certain circuits, as shown below. The switches are controlled by a clock signal; the switches alternately close in clock phase 1 and phase 2 (ϕ1 and ϕ2). In phase 1, the capacitor is charged to the input voltage. In phase 2, the capacitor passes charge to the output. By rapidly toggling the switches, charge is (almost) steadily passed to the output. The larger the capacitance, the more charge that is passed through. Likewise, a higher frequency passes more charge. It can be shown that the circuit matches a resistor with resistance of 1/(fC): a higher capacitance and frequency correspond to lower resistance. A switched capacitor can replace a resistor. Why would you replace a simple resistor with this complicated switching circuit? In an integrated circuit, resistors are inaccurate and inconveniently large, especially high-value resistors. Replacing a large resistor with a small capacitor saves space on the die. Moreover, it is easy to generate an extremely accurate clock frequency with an inexpensive quartz crystal, making the filter's frequency highly accurate. Finally, the equivalent resistance can be changed simply by changing the clock frequency, making it easy to tune or sweep the filter. On-chip capacitors are fairly inaccurate, with the capacitance typically varying by 20% from chip to chip due to variations in manufacturing conditions. However, this isn't a problem in the MF10 because the circuitry was designed to depend on the ratio between capacitances, which is stable. Specifically, the MF10 uses 72 identical square capacitors, which will have almost identical capacitances. Careful examination shows that some of the capacitors are separate, while others are connected in groups of 8 to form larger capacitors.2 This yields a highly accurate ratio of 8:1 between the grouped capacitors and the individual capacitors, even though the absolute capacitance will vary from chip to chip. Each capacitor is constructed from two layers of polysilicon,3 forming the plates of the capacitor, separated by a thin layer of insulating oxide that acts as the dielectric. I estimate that each capacitor square is 5 picofarads. The grid of capacitors in the MF10. I've added yellow lines to show how the capacitors are grouped. The switches are above and below the capacitors. This chip uses one more trick with switched capacitors: it inverts the voltage while acting as a resistor. In the switched-capacitor circuit below, there are four switches. The capacitor charges to the input voltage during phase 1, the same as before. But duing phase 2, note that the top plate of the capacitor is grounded, while the output comes from the bottom plate. If the capacitor was charged to, say, 1 volt, the top plate is 1 volt above the bottom plate. So if the top plate is grounded, then the bottom plate must be at -1 V. (This is the same idea as a charge pump.) This circuit turns out to yield a more accurate filter because some parasitic capacitances cancel out. By using four switches, the switched capacitor can invert the voltage. The op-amp integrator The heart of most analog circuits is the operational amplifier, or op-amp. An op-amp takes two inputs and amplifies the difference by many orders of magnitude. Normally, an op-amp is configured with negative feedback, which forces the two inputs to be essentially the same. Op-amps are useful not only for amplification, but for filtering, buffering, summing, and other tasks. A basic op-amp integrator. The filter chip uses op-amps as integrators, to integrate an input voltage over time. The circuit above shows a simple op-amp integrator. The input voltage produces a current that flows through the resistor and charges the capacitor, so the capacitor holds the integral of the input voltage over time. You might expect that the left side of the capacitor would become positive as it charges. However, the op-amp's feedback forces both inputs to ground, so instead the right side of the capacitor becomes negative. Thus, the output is the negative integral.4 The MF10 chip uses the circuit above, except the resistor is replaced with a switched capacitor. The capacitor across the op-amp is not switched, but consists of either 8 or 16 capacitors from the capacitor grid. The CMOS switches The CMOS switch is the technology that makes the switched-capacitor filter possible. A CMOS switch has a fairly low resistance (maybe tens of ohms) when closed and an enormously high resistance (hundreds of megohms) when open. This high resistance ensures that the charge doesn't leak out of the capacitors. A CMOS switch is constructed by combining an NMOS transistor and a PMOS transistor. The NMOS transistor and PMOS transistor are opposites. An NMOS transistor is good at pulling the output low, while a PMOS transistor is good at pulling the output high, so in combination they provide an effective switch. An NMOS transistor is turned on by a high voltage on the gate, while a PMOS transistor is turned on by a low voltage on the gate. Thus, a CMOS switch requires two control signals of opposite polarity, which is a minor inconvenience. A CMOS switch. The diagram above shows how a switch is implemented with an NMOS transistor and a PMOS transistor in parallel. When the control line is high, and the inverted control line is low, both transistors turn on, providing a path through the switch circuit. When the control line is low (and the inverted line high), the transistors turn off, opening the switch. The chip uses CMOS switches in pairs, with one switch on and the other off. This forms the equivalent of a toggle switch that connects either A or B to the output. This circuit is simply two CMOS switches, with separate control lines for each switch, as shown below. In the MF10, the switch toggles at the clock frequency. During one clock phase, the switch is connected to A, while the switch is connected to B during the other clock phase. The schematic on the right, below, is the same circuit, but reorganized to match the layout on the die. A double-throw CMOS switch. The photo below shows a CMOS switch on the die, constructed from two PMOS transistors and two NMOS transistors. The four control lines run horizontally in polysilicon, forming a transistor gate where they cross doped silicon. The upper PMOS and NMOS transistors are driven by the clock phase 1 (Φ1) signals, while the lower transistors are driven by the phase 2 signals. CMOS switches on the die. The metal layer was removed to show the transistors. One problem with switched-capacitor filters is that the clock can generate switching noise that appears in the chip's outputs. The MF10 uses several techniques to reduce clock noise. Each set of transistors is surrounded by two isolation rings: one positive and one negative. These block noise from traveling through the silicon substrate. Note that the rings have opposite polarity for the NMOS transistors and the PMOS transistors. The light tan region in the photo above is a second layer of polysilicon. This polysilicon is connected to ground, providing a shield layer over the switching circuits. For the photo above, I removed the metal layer with acid5 to make the transistors more visible. The photo below shows the original die, with the metal layer connecting the transistors. The small black circles are connections between the metal layer and silicon or polysilicon. The same CMOS switches, showing the metal layer. Putting it together: the state variable filter There are many ways of creating a filter. The MF10 chip uses a technique called the state variable filter, invented in 1967. This circuit acts as three filters, with high-pass, band-pass, and low-pass outputs. Moreover, the circuit is flexible since the frequency, the gain, and the filter quality (Q) can be varied independently. It uses three op-amps: one to sum signals and two for integration. By changing how the values are summed, the characteristics of the filters can be changed. The diagram below shows a simplified representation of a state variable filter. The mathematics behind a state variable filter is complicated, so I won't get into it. In short, the signal, the integral, and the double integral form the three state variables that define the state of the system. Simplified diagram of a state variable filter, with two integrators. Inspired by North Coast Synthesis. The block diagram below shows how the filter is represented in the MF10 datasheet.6 The diagram is similar to the diagram above, with three op-amps. However, the summing circuitry has been separated out. Moreover, the feedback paths are not shown explictly. Instead, resistors are connected between the chip's external pins (squares) to configure the filter as desired. The mode switch at the top allows the low-pass feedback to be controlled by an external pin (SA/B). Block diagram of one of the filter sections. Adapted from the datasheet. The schematic below is my reverse-engineered schematic of the filter, as implemented on the chip. It closely matches the block diagram, but fills in the details. In the block diagram, the summing circuit (circle) adds one signal and subtracts two signals. This summing circuit is implemented with the three switched capacitors on the left, which act as summing resistors. Note that one switch is grounded during phase 1, while the others are grounded during phase 2; switching the polarity implements addition versus subtraction. The top sum input is either feedback from the low-pass output or ground, selected by an input pin. A CMOS switch is used here, but the switch is static, not clocked, so it doesn't use protection rings and shielding like the other switches. My reverse-engineered schematic of one of the filters. Click this image (or any other) for a larger version. The integrators have switched capacitors on the inputs, acting as resistors. The integration capacitor is either 8 or 16 "squares" of capacitance, selected by a ratio selection pin. This controls the ratio between the clock frequency and the filter frequency, either 50:1 or 100:1.7 Although the integration capacitors are attached to a CMOS switch, the switch is static, so the capacitors act as regular capacitors, not switched capacitors. The op-amps The op-amps are fairly standard CMOS op-amps, built from about 35 transistors. (You might get a lower count if you try counting the transistors below, since some of the blocks are multiple transistors.) The op-amp transistors are much larger than the CMOS switch transistors (very bottom, center). On the die, each op-amp is split into two parts: the differential amplifier on the left and an additional amplification stage on the right. A large capacitor (pinkish) sits between the halves. My first thought was that this was the integration capacitor, but it is just a frequency compensation capacitor, common in many op-amps to stabilize the output. The op-amps also have large transistors next to the output pins; these transistors are functionally part of the op-amps, but located next to the pins to minimize resistance. One of the chip's op-amps. I removed the metal layer to make the transistors visible. One unusual feature of the op-amps is a low-power mode. Pulling a particular IC pin low causes the chip to stop filtering and enter a low-power mode, reducing power consumption by 70%. This is implemented by shutting down the "current mirror" circuits that provide fixed currents to the op-amps and other parts of the chip. The non-overlapping clock generator The MF10 chip is driven by external clock signals, one for each filter, with the frequency of the filter proportional to the clock frequency. The photo of the CMOS switches earlier showed that the clock drives four control lines for the switches. You might think that two control lines would be sufficient: the clock and the inverted clock. The problem is that it is very important to avoid having both switches closed at the same time, even for a moment, as that will short the inputs and corrupt the signals. Instead, the two switches have separate control lines that enforce a small gap between when one switch opens and the other one closes. This is implemented with the circuit below that takes an input clock signal and produces the four outputs that drive the switches. The circuit to generate non-overlapping clock signals. There is a delay between when gate A or B turns on and when the corresponding output changes. The idea behind the circuit is that a phase is blocked from going high until after the other phase goes low, with a pair of inverters providing additional delay. In more detail, suppose the input clock drops from high to low. Gate A will turn off, causing the phase 1 output (ϕ1) to drop after a few gate delays (A delay). Gate B can't turn on until ϕ1 goes low. After additional gate delays, ϕ2 goes high. The behavior is similar when the input clock goes high. Gate B turns off, causing ϕ2 to go low after a delay. This allows gate A to turn on, turning on ϕ1 after more delay. To summarize, after a phase is turned off, there is a delay before the other phase turns on, so the two phases never overlap. The clock-shaping circuitry is implemented with CMOS logic gates. The photo above shows this circuitry under the microscope, with the metal layer removed. The rectangular blocks are doped silicon that forms transistors. The darker regions on the left are NMOS transistors and the lighter regions on the right are PMOS transistors. A CMOS gate consists of NMOS and PMOS transistors working together. The PMOS transistors are larger because PMOS transistors are slightly less efficient than NMOS transistors. The dark circles are contacts between the silicon and the metal layer on top. The copper-colored lines are not metal but a special type of silicon called polysilicon. When a polysilicon line crosses doped silicon, it forms the gate of a transistor. The pinks and greens are due to thin-film interference from a thin layer of oxide that didn't completely dissolve; the silicon is actually gray. The ternary input A weird feature of the chip is the input pin that selects the ratio between the input clock and the filter frequency. In effect, this is a digital input with three values. Tying the pin to the high supply voltage selects a 50:1 ratio. Tying the pin to the midpoint between the supply voltages selects a 100:1 ratio. Pulling the pin to the low supply voltage stops the filter and puts the chip into a low-power mode.8 To handle the three-level input, the input goes through two separate buffers, one that transitions at a lower voltage and one that transitions at a higher voltage. Thus, the two buffers separate the middle signal level. Each buffer consists of a special inverter feeding into a regular inverter. Before explaining the special inverters, I'll review how a regular CMOS inverter works. A CMOS inverter is constructed from a PMOS transistor and an NMOS transistor. When the input is high, the NMOS transistor turns on and pulls the output to ground. When the input is low, the PMOS transistor turns on and pulls the output high. Thus, the input signal is inverted. A CMOS inverter is constructed from a PMOS transistor and an NMOS transistor. In the die photo, you can see the four PMOS transistors (light gray) and four NMOS transistors (darker), forming four inverters. When a polysilicon line (copper-colored) crosses a doped silicon region, it forms the gate of a transistor. For this picture, I dissolved the metal layer in acid so the transistors are visible. The metal layer connected the transistors to complete the wiring of the inverters: it connects the two "out1" contacts to "in2" and connects the two "out2" contacts to the rest of the chip. For the second buffer, "out3" connects to "in4" and so forth. The four inverters that handle the ternary input. I flipped the image to make the orientation better. In this circuit, the length of the transistor gates is varied to make the inverters activate at different voltage levels. Six of the transistor gates are normal (orange arrows); the PMOS gates are wider (in the vertical direction) than the NMOS gates because PMOS transistors are inherently weaker. However, two of the transistor gates are unusually long (horizontal direction, red), making the transistors weak since the current must travel a longer distance. The inverter on the left has a weak PMOS transistor. If the input is high or low, the inverter will operate normally. But if the input is in the middle, both transistors will partially turn on. Since the PMOS transistor is very weak, the NMOS transistor will "win", pulling the output low. Thus, the leftmost inverter treats a medium-level input as a 1, outputting a 0. The third inverter is the opposite; the NMOS transistor has a long, winding gate, so it is weak. In this case, a medium-level input will partially turn on both transistors, but the PMOS transistor will "win", pulling the output high. To summarize, the two inverters have opposite behavior for a middle-level signal, allowing the three input levels to be distinguished. Since the output from a special inverter may be weak, the output goes to a normal inverter to amplify the signal. Conclusions Like most semiconductor companies, Harris has a complicated history. Harris started way back in 1895 as a printing press company. Harris moved into high technology in the 1950s and 1960s, acquiring various radio and electronics companies. In particular, Harris entered the IC business in 1967, when it acquired Radiation, Inc., renaming it Harris Semiconductor a few years later. (We've encountered some Radiation modules in Apollo systems, but I haven't written about them yet.) Harris got out of the semiconductor business in 1999, spinning off Intersil, which was later acquired by the Japanese semiconductor firm Renesas. In 2019, Harris merged with L3 Technologies to become L3Harris, the eighth-largest defense contractor in the US. As for switched-capacitor filters, they have lost popularity as filtering is now more easily done in the digital domain. Texas Instruments acquired National Semiconductor (and the MF10) in 2011; TI's website shows the MF10 as active but expensive and out of stock, so it's probably no longer being manufactured. State variable filters are still used in the synthesizer world both because of their flexibility and because they provide low-pass, band-pass, and high-pass filters in one unit. For more, follow me on Bluesky (@righto.com), Mastodon (@[email protected]), or RSS. Thanks to CuriousMarc for providing the IC. AI statement: Despite the presence of the em dash, no AI was used in the writing of this article (details). Notes and references Once we found the "HF-10" part number, a search turned up a National Semiconductor databook that confirmed that the Harris HF-10 was a direct replacement for the National Semiconductor MF10. It remains a mystery why the Harris chip is externally labeled "F1-10-5" rather than "HF-10". This format doesn't resemble other Harris part numbers. I would suspect a military part number, but it is completely different from the military formats that I've seen on other chips, such as JM38510 numbers or NSN numbers. ↩ You might wonder why the larger capacitors are formed by connecting eight smaller capacitor squares, rather than making one capacitor that is eight times as big. The reason is to get better matching between the two capacitor sizes. A capacitor that is eight times as large won't have exactly eight times the capacitance due to factors such as the behavior of the electric field around the edge of the capacitor, inaccuracies that may make the capacitor slightly larger or smaller than desired, or etching variability around the edges. By building larger capacitors out of identical smaller capacitors, the values can match very well, up to ±0.01% according to The Art of Analog Layout. (With laser trimming, matching of ±0.001% is possible, but that is much more accuracy than the MF10 required.) ↩ Most chips from this era have a single layer of polysilicon, so I was surprised to find two layers in this chip. I've seen two layers of polysilicon before, in the MK4116 DRAM chip and AMD's LANCE Ethernet chip. In both cases, the second layer of polysilicon was used for storage devices. ↩ A standard op-amp integrator is an inverting integrator, and the output is negative. However, the MF10 uses the four-switch switched capacitor that inverts the input voltage. The two negatives cancel out, so the MF-10's integrator is a non-inverting integrator. See Introducing the MF10: A Versatile Monolithic Active Filter Building Block for details. ↩ To remove the metal layer, I used Whink rust stain remover (1.5-3.5% HF) to remove the oxide layer and hydrochloric acid to dissolve the metal. I applied Whink for 20 minutes and HCl for 16 minutes in total. I alternated each chemical for about 3 minutes each, applying a few drops at a time. I examined the die under the microscope after each application to gauge the progress. I stopped at this point since the metal was removed and the underlying transistors were visible. Moreover, the silicon became differentially stained, with NMOS transistors significantly darker than PMOS transistors. Some more Whink would probably improve the appearance of the die, but the risk is that the polysilicon might get removed, which would be bad for reverse engineering. In other words, I'd rather stop too early than destroy the features that I want to see. ↩ For reference, the full block diagram of the chip is below, from the datasheet. Block diagram of the MF10 from the Texas Instruments datasheet.  ↩ The filter frequency of the MF10 can be set to either the clock frequency divided by 50 or divided by 100. You might wonder where these ratios come from, since the capacitors on the chip are in 8:1 or 16:1 ratios, not 50:1 or 100:1. The formula for a switched-capacitor integrator is that the filter frequency is the clock frequency divided by 2π times the capacitor ratio. (This can be derived from the op-amp integrator formula and the equivalent resistance of a switched capacitor.) It turns out 2π×8 is 50.27 and 2π×16 is 100.5, providing the 50 and 100 values. Note that these values aren't exactly 50 and 100; they are off by 0.5%. Curiously, the datasheet specifies that the typical frequency error is ±0.2%, significantly smaller. I suspect that the explanation is that the capacitor ratio is not precisely 16:1, due to stray capacitance in the wiring and other factors, and the designers ensured that these factors tweaked the ratio in the desired direction. ↩ I suspect that the ternary input pin was used because the chip didn't have enough physical pins for all the functions they wanted. Note that the two filters are entirely independent, even with separate clocks, except for the 50/100 ratio control and the A/B mode control. I'm sure that these two functions would have independent control pins if the chip had pins available. They could have used a standard 24-pin package for the chip rather than the somewhat unusual 20-pin package, but maybe they had a motivation for avoiding a much larger 24-pin package. ↩

18 hours ago • 1 votes
Radxa's Q8B has 2x the performance and expansion of the Pi 5

There was a time I'd look at a board like the Radxa Dragon Q8B (at left, above) and be like, "there's no way I'd spend $209 on an SBC with 8 gigs of RAM". But we're in 2026, and seeing the 8 gig Raspberry Pi 5 going for almost the same amount, I figured I'd give it a shot. On paper, the Q8B beats the Pi 5 in pretty much every way. A lot of that is thanks to this Snapdragon 8cx Gen 3 chip, which is the same chip I tested on Microsoft's Windows Dev Kit 2023.

2 days ago • 1 votes
Three years later

Reflections on October 7th

3 days ago • 1 votes
The Sting

The Sting belongs in the pantheon of films I'm deeply embarrassed to have not watched earlier. Not just because it's a great film — and it is — but because it is so incredibly my shit that I feel retroactively spurned for not having watched it sooner.

3 days ago • 1 votes
It's a Gas!

If everything worked as well as the product called Evapo-Rust, the world would be a much better place. That’s just one of the many lessons learned during my recent — successful! — project to transform my old, nonfunctioning gasoline-powered generator into something much better.

4 days ago • 1 votes
📚 BoredReading

You seem to be enjoying this.

Join free to unlock everything.

Create free account

Already have an account? Sign in