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.

I should say as further preamble that one of my collector hobbies is picking up non-x86 laptops. Obviously the biggest absolute number of these are Apple devices, because PowerBooks came in 68K and PowerPC flavours (along with iBooks), and Mac laptops are now ARM, I mean, Apple silicon. However, there were a fair number of SPARC laptops primarily from Tadpole-RDI but also some smaller companies, and even a handful of PA-RISC laptops (and if you happen to have an ALPHAbook you're not using, I'm willing to deal — seriously). You can read about a few of them.

In fact, the z50 isn't the first RISC ThinkPad or even ThinkPad-adjacent device. IBM themselves made a line of PowerPC ThinkPads that were actually branded as ThinkPads (they officially ran AIX, Solaris and Windows NT, and there was briefly a really rough OS/2 port), although they did the same thing with the top-of-the-line 860 as they did with the WorkPad, which was sold as and by the RS/6000 division as "not a ThinkPad" even though it's basically a ThinkPad. That's my own 860 in the Wikipedia picture running AIX 4 with an off-the-shelf NTSC camera connected to the onboard video capture port, taken by an attendee at the Vintage Computer Festival pre-COVID. I also have an "800" Type 6020 that opened its SCSI controller fuse after a mishap with a defective SCSI2SD.

Of the major RISC architectures, though, classic MIPS (as opposed to the modern undead zombie MIPS uncomfortably market-sandwiched between ARM and RISC-V) had relatively poor penetration in the portable and low-power market. Various later Chinese rejiggerings under the Loongson/Godson names are better known to modern audiences, and Richard Stallman famously used such a laptop, but comparatively few portable MIPS platforms existed back in the day; the famous SGI Indy laptops in Congo and Twister were actually Silicon Graphics-built mockups with an offscreen Indy controlling an Indy Presenter as the display. (The slightly later Alchemy MIPS architecture will be the subject of a future entry when we talk more about portable SunRays.) That doesn't mean there weren't attempts, of course, and probably the first was the R4200.

MIPS Technologies developed the R4200 in 1993 as a low-wattage evolution of the R4000, intended primarily for PCs running Windows NT and promising 1.5W at 80MHz by slashing transistor count and die size. It was licensed by NEC, who fabricated it with 1.3 million transistors at 0.6μm as the VR4200. Despite lofty performance/watt aspirations against the Intel Pentium it proved to be a modest competitor at best and never actually saw any use in any system as such; instead, its descendants ended up more successful. Perhaps the most successful descendant was the NUS-CPU in the Nintendo 64, by way of the 1995 R4300i and NEC's VR4300 licensed implementation, and VR4300s were used in N64 development hardware.

NEC continued development with its license and pushed the R4200 architecture into the embedded space. The first of these was the VR4100 core and its first implementation in the VR4101, a 33MHz part with no FPU and small 2KB instruction and 1KB data L1 caches, but those privations also allowed it to get by on just 250mW of juice. NEC sold it as a "64/32" chip with 64-bit features and 32-bit compatibility, but it also featured on-chip support for keyboard, digitizer, serial, audio and IR, and came with interface chips to drive an LCD and PCMCIA slots. The VR4101 was developed during Microsoft's Pegasus project to meet its strict power and portability requirements, Pegasus ultimately giving birth to Windows CE 1.0 in 1996 and the new "Handheld PC" (H/PC) form factor. NEC used the chip in its own hardware, the MobilePro 200, 400 and 450 series, which were thrifty enough to be powered with AA batteries, but had no other OEM interest. This was at least in part due to competition from other MIPS licensees, most notably Philips' higher performing 37MHz PR31500 (based on the Toshiba R3900), but mostly because of Hitachi's SuperH; the majority of WinCE 1.0 devices were actually SH-3 systems powered by the more powerful Hitachi SH7708 at 40MHz. These included devices from Hewlett-Packard, Casio, Compaq and Hitachi themselves, among which were the first devices to market. (Parenthetically, a PowerPC port of Windows CE 1.0 did exist, running on the 603-derived Motorola MPC821 and MPC823 SoCs, but it never made it to any shipping hardware.) In 1997, Microsoft updated Windows CE to 2.0 and added support for the ARM architecture. NEC made two 2.0 devices, the MobilePro 700 and 750c, with the slightly-upgraded VR4102 and VR4111 CPUs. The devices sold poorly and OEMs were similarly uninterested in the processor.

In 1998 Microsoft announced the Jupiter project, officially "Microsoft Windows CE Handheld PC Professional Edition," the label for which the Register puckishly alleged "will be bigger than the machines." Jupiter aimed to add larger screen sizes, alternative pointing devices and remote access to Windows CE, sort of creating a junior-grade PC, or even a quasi-"netbook" of sorts before the term was commonplace. Jupiter hit the market as Windows CE 2.11 (which was also sold by some vendors as "3.0," despite the core OS being 2.11, not to be confused with CE 3.0 in 2000), and CE 1.0 and 2.0 were retrospectively given the same name without the "Professional" part. The new release got off to a very slow start and initially only Sharp sold Jupiter devices, their own Mobilon Pro and the impressively convertible TriPad (developed by Vadem as the Clio). While the Mobilon Pro was still an R3900 system, NEC finally got their first outside design win in the TriPad/Clio, which had an 80MHz VR4111.

The next generation of NEC's VR4200 was the VR4120 core, which was first introduced to market in the VR4121 in September of that year. That brings us to the CPU here. The VR4120 expanded modestly on the VR4100 with 16K instruction and 8K data L1 caches and even lower power usage on a 0.25μm process, offering the first-cut VR4121 at 131MHz and 168MHz speeds on a 33MHz bus. NEC introduced the first VR4121 device in February 1999 with the MobilePro 770, using its VRC4171 LCD-PCMCIA controller. It used the lower-speed, lower-power 131MHz part in the then-typical H/PC clamshell form factor with a half-VGA (640x240) screen and a built-in 33.6Kbps softmodem. Eventually a number of Jupiter devices finally made retail.

Like the other MobilePros, the 770 was really a reference design lurking as a consumer product. NEC had already licensed the system design to IBM in late 1998, who was looking for a way into the H/PC market but didn't want to cannibalize their existing PC laptop line. IBM already rebadged various Palm OS PDAs as WorkPads (the Model 8602-10U WorkPad in 1997 was a Palm Pilot Professional; the WorkPad 20X in 1998 was a Palm III), so it made market sense to use all the trappings of a ThinkPad to distinguish it as a premium product but badge it as a WorkPad to make it clear it was intended as a companion device. That meant a larger screen, a nearly full keyboard, a proper mouse stick and a solid collection of ports — but not the ThinkPad name. And that's what rolled out of a Taiwan factory in March 1999.

Let's say you went to CompUSA, or, I dunno, Fry's, or Circuit City, in mid-1999. Why, you might pick up an Ethernet hub and a BeOS advanced topics book, and marvel at this lithe little laptop IBM was selling for US$999 ($1780 in today's dollars) MSRP. It had all the ThinkPad design cues and a surprisingly luxurious 95% keyboard, plus that frisson-inducing bright red mouse stick. And you might say, I want this, and I'm going to take it home. (Or you might be buying all this on eBay in 2022 and they arrived at the same time. Stop ruining the story. I was going to say Incredible Universe or Computer City, in both of which I spent many happy hours of my early adulthood and even still have some of the free floppies around, but Tandy had already sold them off by the time the z50 hit the market.)
You might even buy a few options with it, like the 32MB RAM card, or the high-capacity battery that included a dry-cell pack you could put AAs in. While it came with a serial cable for syncing, you might have even bought the optional cradle (P/N 05K5980, officially the "Ultraport Port Replicator" in IBM's Personal Systems Reference) if someone had it for auction on eBay it was in stock at the store.
You could even have special-ordered the US$99 (today US$178) Port, Inc. two-piece leather portfolio and travel case. If you don't believe IBM was trying to have it both ways with the kinda-sorta-naah-maybe-ThinkPad marketing, notice the ThinkPad logo prominently at the bottom of the page and even "ThinkPad" embossed on the case's leather tag. The blurb on the back brags it lets you "[a]ccess your WorkPad z50 as easy as you access your email! [sic] ... Going on the road? Then slip the UltraSlim Portfolio into the UltraSlim Case. Not only is there room for your WorkPad z50 but it will also hold all your z50 extras — AC power adapter, CD-ROM drive or other storage drives or hard disk drives[.]" Other than the power adapter and a 340MB CompactFlash MicroDrive (P/N 00N8073), these were in fact not options IBM sold for the z50; the only other option IBM sold was a printer cable (P/N 33L4954). Yes, some vendors sold WinCE-compatible devices of those kinds, but not IBM, and I think the advertiser was simply thinking of ThinkPads too.
Let's break the IBM Quality seal, or pretend it's not broken already, and have a look!
Inside the box is a 16.65 watt battery pack (IBM claims 8 hours' duration, at least when new, and charges in 2.5 hours), backup batteries (AAA batteries, not coin cells, very convenient), 45W 19V charger and power cord, serial cable, phone cable and a set of pointer caps. It also includes a printed manual and various paraphernalia, strips for posting over the "quick launch" keys at the top, and a CD-ROM of Microsoft's Desktop Software for Windows CE, "designed for Windows NT and Windows 98" (but it also works on Windows 95). A second CD with an online manual also includes IBM's Global Network Dialer (to IBM's Global Network service, not a general PPP dialer) and Mobile Connect Client packages, neither of which serves any purpose today.
And, of course, the laptop itself. (I'll talk about what's sticking out of the back of it in a moment.) On this top view you can see the microphone on the left and the recorder buttons and notification LEDs on the right. Next to it is my long-suffering 11" MacBook Air. I used this as a size-comparison because I consider the 11" MBA to be a very portable device. The z50 obviously isn't nearly as thin but it's not very thick (a hair under an inch), and in terms of 2D rectangular area it's smaller too (10" x 7.75"). Without a battery it weighs just 1.1kg (2.4 pounds) and with one around 1.2kg (2.7 pounds). This is a highly totable machine, especially for 1999, and if it were a "real" ThinkPad it would be even smaller than the smallest ThinkPad 240 that followed it in June.
On one side, we have a VGA-out port (usually 640x480 but an 800x600 presentation mode is available), the Compact Flash slot (up to 8GB cards are supported; in the virgin unit there's a dummy card here), IrDA 1.1 infrared transceiver, and the serial port. VGA output is live even during POST, though you'll need to configure it later (kindly ignore the Mac's ADB keyboard):
The VGA and serial ports both have covers, which is a nice touch, assuming the used z50 you find wasn't too badly abused and they're still attached.
For some reason, though, the modem at the far left doesn't have a cover, presumably because I guess IBM thought you'd be using it a lot more. This is also a 33.6Kbps software modem. There are also headphone (left) and microphone (right) jacks, and a PCMCIA slot which I installed a NE2000-compatible Ethernet NIC into. (This one is a Sohoware ND5120 10Mbit card, but I've also used the Linksys EC2T successfully. You know, that I bought at CompUSA.) The PCMCIA slot accommodates up to a Type III if you remove the dummy spacer and flap.

There is an interesting blocked-off slot between the headphone/microphone jacks and the PCMCIA slot. It might have been intended for a smart card slot.

Looking at the underside, IBM calls this a Type 2608 (fully, the 2608-1AU). The linear port above the IBM logo actually has two sliding halves that open. This is the cradle dock. Although the cradle makes using the charger and serial port a little more convenient, you still use the same special serial cable and the same AC charger so it doesn't add any functionality, and it has one other disadvantage to be mentioned.

The backup battery is under the little door at the bottom. Thoughtfully, IBM used a large flathead screw you can open with a coin or even your fingernail, and regular AAA batteries will do. That said, since I use this machine only intermittently, I simply keep everything on the CF card and don't bother putting backup batteries in it.

The middle door covers the ROM and RAM slots. We'll come back to this.

On the top, the "hump" I mentioned a little while back, is the AA battery adapter (FRU P/N 02K6142).

IBM calls it the dry-cell battery pack. It comes as part of the high-capacity battery option (P/N 02K6567), which has an extended 33.3 watt Li-Ion battery (FRU 02K6575) that gives you up to a 16-hour runtime on a 5 hour recharge time, so it's worth looking for. I was fortunate enough to find this package NOS, so the battery is indeed new if I ever decide I need it.
For now, though, I can put AAs in. The carrier takes eight of them, but the manual flatly refuses to estimate the runtime and there is no charging circuit if you decide to use rechargeables. (Note that installing a PCMCIA card is likely to consume power more quickly too.) Also, the dry-cell pack cannot physically be used at the same time with the cradle dock, another reason the cradle doesn't serve much useful purpose.

If you don't have any battery at all, you can still run the z50 entirely without one from wall power. Just make sure the battery switch on the back is set to "locked" (yes, without a battery installed) or the machine will not turn on.

With the middle door off we see the ROM and RAM SO-DIMM slots. This particular system is maximally upgraded. There was only ever one version of the 20MB ROM in the United States, though Japanese models had 32MB, presumably for language features. Although theoretically you could install a new version of Windows CE by replacing the ROM card, IBM never issued any updates.
By default the machine comes with 16MB of RAM, plus 4MB of non-upgradable VRAM exclusive to the ITE8181 video chip on its own bus (the VRC4171A handles the LCD). IBM sold a 32MB 60ns 3.3V EDO DRAM SO-DIMM (FRU 20L0244, P/N 20L0243) that updates the machine to 48MB of RAM, its maximum supported size. This DIMM is installed, so the system has 48MB of memory total, not counting VRAM.
Let's fire it up. The ROM version is inevitably S3A61 (Feb 9, 1999), the only released version in the United States. The clock speed of the VR4121 is given as "131.1MHz."
After a brief pause, we enter the Setup screen, where you may be bombarded with requests to configure your network card if you installed one, or assaulted by complaints there's no backup battery. One nice thing about the z50 compared to Windows CE touchscreen devices is there's no need to calibrate the digitizer, so you can just hit Enter over and over to skip a lot of this.
We skipped a lot of this.
On to the desktop. The 8.2" screen is disappointingly mediocre, not least of which because of a non-trivial amount of ghosting and all the empty unused space between the screen and the edges. This is a dual-scan twisted nematic (DSTN) passive matrix LCD at 640x480 with 16-bit colour. By default the contrast is a little high, so I always reduce it a notch or two to get slightly better colour range, and every z50 I've seen has that weird dropoff in brightness at the edges. Although much better than the 256-colour half-VGA display of its earlier cousin the 770, it's still not as good as the "real" ThinkPad screens, and was no doubt selected because it was less expensive. Brightness (top two) and contrast (bottom two) are controlled with the clear buttons to the right.

Still, the 95% keyboard felt excellent, almost as good as the official ThinkPads I've typed on. Except that ... certain keys weren't working. What gives?

IBM has a built-in diagnostics program (I'll show it in a little bit) that I used to map where the dead keys on this keyboard were. If you're familiar with how most PC keyboard matrices are laid out, you can see this looks suspiciously like one of the keyboard lines is busted.

Pop quiz the second: study the screen and decide if we can use Alt keypresses to get all the characters we want. You have ten seconds. Go.

Pencils down. The answer is no. Not counting the up-arrow key, Windows CE 2.11 does support holding down Alt to enter character codes like regular Windows for special characters; you just use the number keys at the top instead of the numeric keypad. If you look at the keys that are missing and the characters they generate, we can enter almost every one of them with Alt and the ASCII code (like Alt-4-8 for "0", Alt-3-4 for quote, Alt-7-9 for capital letter O). However, the one we can't enter is capital letter P, because that's Alt-8-0 and the 0 key doesn't work. We're going to need a new keyboard.

Fortunately a couple weeks later a second unit turned up. It was in worse physical condition than the first one and its backlight was kind of dim, so I decided I would simply swap the keyboards and hope it wasn't actually the port that was broken. You remove the old keyboard by unscrewing five small Phillips head screws on the back (all but the one on the bottom near the backup batteries; you can leave the ROM/RAM door on) and gently pulling the keyboard up and removing it from the motherboard's connectors, and then install the replacement by reversing those steps.

Notice the logic board markings "CS1 M/B REV. G."

Successfully installed and working! Let's play around.

Windows CE 2.11 does not implement a screen capture hotkey, so we'll need a compatible screenshot tool if we want to make any grabs. The OS does not support fat binaries, and this makes sense because the default internal storage in RAM is very limited, but this also means you'll need to find a version of the desired software for your particular architecture. The Windows CE development tools create binaries for all the supported architectures. I picked ScrnGrab, since it's free, it had a MIPS version and it was compatible with CE 2.11; the following screenshots were taken with it and converted to PNG.

Here we are at the desktop and Start Menu on a fresh, new system (because every time I unplug it, it's fresh and new except what's on the CF card).

The desktop shortcuts are pre-populated in ROM along with a whole bunch of applications. The marquee set that came on H/PC Pro machines was Microsoft Pocket Office (Pocket Word, Pocket Excel, Pocket Access and Pocket PowerPoint), Pocket Outlook (Calendar, Contacts, Inbox and Tasks) and Pocket Internet Explorer, but Microsoft also included Calculator, InkWriter (not too useful on the z50 without a touch screen), Microsoft Voice Recorder, World Clock, ActiveSync (a la Palm HotSync), PC Link (direct connect, not networked), Remote Networking, Terminal (serial port and modem), Windows Explorer and, of course, Solitaire. IBM additionally licensed and included some of bSquare's software suite, including bFAX Pro for sending and receiving faxes with the softmodem, bPRINT for printing and bUSEFUL Backup Plus for system backups, along with a battery calibrator and a Rapid Access quick configuration tool. There is also a CMD.EXE command shell, though it too is smaller and less functional than its desktop counterpart.

If we right-click on My Handheld PC, we can open up the System Properties window:

The Device tab in the System Properties window identifies the unit as having a "MIPS 4000 Family" [sic] CPU, but only 49090KB of RAM (where's my other 62K?! :P). The CF slot is identified as Expansion Slot 1 and has a Sharp CF card in it; Expansion Slot 2 has the NIC. Another nice thing about NE2000 cards with this unit is the driver is built-in to ROM.
The System tab just makes the operating system version muddle worse. It says it's "Microsoft Windows CE, Handheld PC Edition 3.0" but then immediately gives the core OS as version 2.11 (which is right) on "Build 8262." The 3.0 seems to come from Pocket IE and Pocket Outlook, which are both version 3.0, as well as (under the Applications tab) all of the Pocket Office components, but the operating system itself decidedly is not.
The RAM expansion is mostly useful for running more applications at once. 2.11 is limited to 16MB of RAM-as-storage, so when you install the SO-DIMM, by default you get 16MB of internal RAM for storage and the other 32MB minus 62K you cheapskates goes to apps. You can adjust this up to take more RAM back for working memory, though the new setting will of course be forgotten if you restart after a power loss.
Windows Explorer is very much like the full desktop version. And as such, file management is much simpler dealing just with the CF card and ignoring the RAM-as-storage, which will go away when the power does anyhow. You can essentially treat the card as a removable disk and freely eject and reinsert it as long as nothing is running off it (though make sure you insert it fully or the system will rather alarmingly offer to format it for you), so rather than futz around with putting the sync service on some virtualized copy of Windows 98, I merely pull out the CF card and copy stuff to and from it directly. (There's also a nice little freeware FTP client.) Plus, if you double-click a .cab file, Windows CE will install it for you, including to the card. While some programs were shipped as PC Windows installers, all most of those do is just drop a .cab to be pushed to the device on the next sync, meaning you can just go grab that .cab and put it on the system yourself.
I'm not going to show off the bSquare suite because I don't have anything to fax or print, and I can just back up the CF card manually. However, Rapid Access is an essential application for configuring the z50 (not sure why there isn't a Control Panel applet or why IBM chose to do this as a standalone application). Besides battery state and sliders for volume, brightness and contrast, the buttons also "rapidly access" the settings for suspend, display backlight, system sounds, and dialing. You can also select the correct country to configure the softmodem and most importantly either use the LCD alone or mirror it to the VGA port ("CRT" — but for snickers I'm displaying it on a Samsung flat panel). Windows CE does not support multiple displays, so mirroring is your only option:
This is nice for demonstration purposes but doesn't really make it dockable because there's no supported way to connect an external keyboard and mouse, not even with the cradle. Oh well!

Let's look at the Pocket Office suite next. These seem more useful than they really are, not just because they're watered-down apps, but primarily because they don't default to the same file formats as Office 97 (its contemporary). When you sync, the "pocket" files are converted to regular Office format and vice versa — a great opportunity for data loss or feature mismatch if you do something on your desktop Windows PC with, say, Word that Pocket Word doesn't support. Only some of them actually support the "full" file formats, and even of those apps some have important limitations that verge on crippling.

Pocket Word is probably the best of the four and plays to the WorkPad z50's greatest strength in its keyboard. It defaults to "Pocket Word" (.pwd) format, but is also capable of reading and writing .rtf, .txt and .doc (Word 97), though with certain unsupported features: most but not all text formatting is compatible, but some effects like shadows are suppressed (though retained) in Pocket Word, tables don't always come through intact, and headers, footers, footnotes, columns and style sheets are all stripped.
Pocket Excel also defaults to its own Pocket Excel format, but can read and write .xls, again with specific limitations. Its biggest, almost fatal, omission is there are no charts.
The other two are even more explictly sidecars. Pocket Access even calls itself a "companion" application, and doesn't open Access .mdb files at all: only Pocket .cdb ones, which you can enter data into and sync with the desktop. The demonstration database shown here is built into ROM as an example. You can create and run SQL procedures, but you can't create or run forms, and while you can create and populate tables you're limited to 65,536 rows.
But Pocket PowerPoint doesn't even let you create presentations. You can edit a custom title slide, as a concession that you might be traveling between offices and wouldn't have access to your desktop PC, and you can sort the slides and change your notes, but that's it. Furthermore, it only opens its own .ppv presentation format (better hope ActiveSync converted it correctly!), and advancing slides isn't very quick even from in-memory presentations.

However, Pocket PowerPoint does have one feature specific to the WorkPad z50 that no other app has: it can display 800x600 through the VGA out while presenting (Tools > Set Up Show, View Show On). When this mode is enabled, the internal display turns off:

Interestingly, the presentation here (which is also in ROM as a demonstration) says you can install a VGA PCMCIA card to do high-resolution slide shows. Obviously IBM forgot to change that, because the feature is built-in to the z50.
Pocket Outlook's inbox. You can synchronise with both your desktop Outlook and directly send and receive mail with POP3 or IMAP4, but it doesn't seem like Pocket Outlook can directly talk to an Exchange server — only through the intermediary PC it syncs with, which seems a strange deficiency. (There is also the possibility of confusion if you try syncing with multiple PCs — which one decides inbox truth?) Additionally, there's no TLS or even SSL support for POP3 or IMAP4, and while you can save attachments to the CF card, your mail and contacts are only kept in RAM-as-storage. Oops, did your battery run out?

IBM's Mobile Connect client on the included CD provided an addon that lets you connect to Exchange and IBM (Lotus) Notes/Domino servers — but requires a IBM Mobile Connect server for full operation.

Finally, Pocket Internet Explorer. Pocket IE was notable for not being based on Spyglass Mosaic nor, at least initially, on Trident; instead, it was a completely unique layout engine designed for a resource-constrained environment. Not until 6.0 when it was rebadged as "Internet Explorer Mobile" did it start using the same MSHTML codebase.

I imagine there are some WinCE wireless cards that would work with the z50, but there are no internal drivers, so you'd have to install one and deal with that when the batteries run out (and there is definitely no WPA2 or later support). It should be possible to use a WiFi-Ethernet bridge box like you'd use for an older Mac or game console (the Vonets ones would do nicely), but I just use Internet Sharing from my MacBook over a USB Ethernet stick.

Web page rendering is not very quick on the z50 (more on this in a little bit), and despite having 16-bit colour, rendered images are rather obviously dithered and banded. At least one page recommends using Tascal RegEdit to set HKEY_CURRENT_USER\Software\Apps\PocketIE\Use16bppDIBs to DWORD:1 for upgraded colour, but it doesn't seem to have any effect on the z50's display. The softmodem likely would have made performance even worse by stealing CPU cycles to service the DSP.
Windows CE 2.11 comes with PIE 3.0, which introduced early support for JScript (Microsoft's embrace-and-extend JavaScript clone) and additional security protocols, none of which are relevant in modern times. One of these protocols is Microsoft Private Communications Technology (PCT), another salvo against Netscape in the browser wars by firing directly at flaws in SSLv2. No browser other than PIE and IE implemented it, and only IIS supported it (it doesn't look like it was ever implemented by SSLeay or OpenSSL, let alone in any Netscape server product). It was rendered obsolete quickly by SSLv3, disabled in IE5 and removed entirely in IE6. Unfortunately, PIE's proxy support is not obviously compatible or coercible with Crypto Ancienne to upgrade it to TLS, and it doesn't support Gopher either. A 128-bit cipher update for PIE 3 existed but it's still just SSLv3.
The other apps aren't on the desktop but are instead preinstalled in the Start menu. It's a regular Start menu of the era except you can't right click and edit it; you have to go to \Windows\Programs for that.
Internal diagnostics are not in the Start menu, though. IBM hides them in \windows\ibmdiag.exe, but you can get there from the Run dialogue, of course.
The reason is that IBM warns the diagnostics tests may cause data loss and recommends you do a hard reset after doing any diagnostic testing. I haven't experienced that, but back the system up anyway if you have anything in RAM-as-storage. It should be noted that none of the tests are automatic but they do at least verify basic functionality. The "Built-in Modem: Yes" alleges there must have been models planned without the softmodem, though I've never seen one.
One of the first things I do when I "colonize" a new-to-me platform is either find a Gopher client or write one. PIE doesn't support Gopher, so as a personally useful programming exercise I decided to write one. Rather than install and muck about with a Microsoft compiler and SDK I looked for an on-device development system, and found Dialect Pro. Dialect is an interesting if badly-named language with clear influences from BASIC and Python. I'm not a big fan of Python personally, but it generates both Win32 and WinCE binaries and doesn't require cross-compilation, so you can write and test right on the z50 itself. It supports sockets, serial ports, files, registry access, DLLs, GUI elements, encryption, printing and ADO databases, and emits standalone pre-compiled executables. Originally a commercial product called Aristar Dialect Pro, developed initially as an in-house language for their medical application product line, the authors generously made it Apache-style open source in 2003 and distributed earlier CE 2.0/2.11 versions as freeware. Needless to say it will generate code for all supported platforms, including ARM, MIPS and SH3.

The downloadable installers are for Win32 and are the "drop-a-.cab-and-sync" sort. You can just grab the resulting archive from the install location, put it on a CF card and install it directly on the z50 by double-clicking it. I fired up Virtual PC on my Power Mac G4 to nab it and copy it over, and installed Dialect Pro to the CF card itself. It comes with a number of informative example scripts and has a downloadable reference guide as a Word document. I'll say this for Pocket Word: it did open it (eventually) and much of the formatting survived, but it took it over a minute to paginate and the tables are just rendered out as flat text. When it's connected to the MacBook I just have it open in NeoOffice on the Mac instead.

The language works pretty well, actually. The client uses a native Dialect scrolling text control to render Gopher menus and documents; with a little hack I was able to make the text control clickable and get the line the user clicked on for navigation. Already networking and simple browsing works, so look for OverbiteCE (OverbiCE?) to join Overbite Palm in a future blog entry. The same source will work on any supported architecture.
And what of those separate architectures? It so happens I have another Jupiter device I got a few years back as the SuperH representative for my portables collection, an HP Jornada 690. The J690 came out at nearly the same time as the z50 which makes it a particularly good comparison point. Unlike the z50 — and like most other Jupiter devices — it is a clamshell portable with a shrunken 76% keyboard (though this figure seems a little overoptimistic) and a half-VGA stylus touchscreen, just also with 16-bit colour.
HP immediately gets brownie points because the J690 had a system update option available that the z50 never did: a user-installable ROM replacement would update on-board applications to version 3.01 and the entire system to "Build 9018," part of a full upgrade package HP offered that also increased RAM from 16MB to 32MB at the same time. It comes with the same set of Microsoft core applications plus OmniSolve, HP's own apps and a couple bSquare ones, as well as a serial connector and I actually do have the cradle for it. It basically does everything that the z50 does except for VGA out, but in a smaller package without the mouse stick.
It also does all those things faster. The J690's SH-3 CPU is a 133MHz Hitachi SH7709A, based on the same SH7700 core in earlier H/PCs and compliant to the same Pegasus power and peripheral requirements, with a 16K unified I/D L1 cache and fabricated on a 0.25μm process.

And frankly, even at nearly exactly the same clock speed, the SH7709A just crushes the VR4121. Don't just take my word for it: look at this Pen Computing table of Jupiter device benchmarks. The J680, the immediately preceding model with the same 133MHz SH7709A processor, gets an average score of 30.86 (not sure why they didn't report the VAX-MIPS but you can extrapolate a score of 88.87 from the 66.82 showing of the LG Phenom Express with a lower-clocked 100MHz SH7709A), while the z50 is in the junior varsity tier with an average score of 25.75 and a VAX-MIPS of 72.36. Even its ancestor the MobilePro 770 with exactly the same CPU got a slightly better average benchmark at 28.19, and the earlier Sharp Mobilon Pro's R3900-cored TX3922 CPU at 128MHz had an average of 41.38 and a VAX-MIPS of 84.37, almost 17% faster than the z50 that came after it. While the VR4121 could compete with the later SH-4s that dominated the standings, it had to crank itself up to 168MHz to do what they comfortably did at 128MHz.

In real world use, it showed. As a relatively unscientific test I started both of them up cold and visited Floodgap in PIE 3 over unencrypted HTTP, hardly a difficult task for even ancient browsers to render (I try to keep it compatible to around Netscape Navigator 3.0 level, since there are many old systems that visit). From pressing ENTER in the URL box to the throbber stopping, the J690 handled it in an average of just under 20 seconds. The z50? 43 seconds, over twice as long. You might attribute a little of that to the updated PIE 3.01 on the J690, but I don't think you can attribute the vast majority of it. The z50 is just plain slower.

Again, don't just take my word as gospel: contemporary reviews seemed to largely agree. The keyboard, memory capacity and battery life were generally considered high points, but the mouse stick was conflictingly received in a world of styluses, the display was judged as merely adequate, and performance wasn't impressive. I rather like the mouse stick but I can see where it would have been problematic with titles expecting a touch screen, and I'm 100% in agreement with everything else. The price wasn't too bad compared to larger laptops, but it wasn't exactly an impulse buy either, and it did a lot less.

As a result the WorkPad z50 ended up not setting the market on fire and while IBM continued to rebadge Palm devices for the WorkPad line until around 2001, there was never another WorkPad laptop: IBM withdrew it from the market in February 2000 after less than a year. This unit here was actually one of those February closeouts, bought from CDW on February 7, 2000 by someone in North Carolina for just US$270.25 ($429.70 in 2020 dollars), a whopping 73% discount off the original MSRP. The bill of sale is still in the box to prove it. (This poor guy bought one at full price just six months previously and bemoaned blowout prices as low as $189.)

Despite this, I still like it. Linux 6.0 will finally drop support for the VR4100 series, but you can still run NetBSD, and it's fully supported. However, I'm planning to keep it running primarily Windows CE, not only for historical preservation but because I think it's a decent CE machine and its portability and power savings are probably best realized with its native OS. The J690 is faster but I don't like its keyboard and I don't like the stylus, so I've used it more as a microserver for road shows (of course it runs NetBSD) and accessed it accordingly from a larger system. The J690's RAM ceiling is lower than the z50, but NetBSD gets all of it, and it runs entirely from the CF card. Meanwhile, even though Microsoft was itself trying to have it both ways with Jupiter devices (it's like a PC except when it's not), it's still impressive what you can do with a whisper-quiet almost full sized laptop that will run on AAs.

And hey: I've finally got a classic MIPS entry in my weirdo laptops collection. No matter what IBM says, it'll always be a ThinkPad to me.

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.
For many others, though, they have an internal battery pack that will require you to crack the case and disconnect it. Even though some of these PDAs are decades old, there is still a healthy parts market for them, and happily they generally use standard LiPo or Li-Ion cells in standard sizes. These eBay specials here even came with screwdrivers and spudgers. If you can't find an exact replacement, be sure to keep the connector from the old one so you can attach it.

A few Palm devices are relatively hostile to repair; for example, my T|X's battery is soldered in. This was also the highest priority replacement since the old battery was swelling and starting to distort the rear case. I forgot to get pictures of it but wary of my soldering skills with a small circuit board, I clipped the leads of the old pack and just twisted the wires on from the new one with strategically applied Kapton tape to keep everything apart.

That left the Zire 72, which wasn't holding a charge for long, and the m505, which wasn't holding a charge at all.

Unfortunately, the Zire 72 is another repair-hostile device. Getting the back off requires not only removing the obvious screws in the lower corners, but then peeling back the label (!) to expose another screw on the bottom tab of the camera grille. Alternatively, just cut a little hole there in the label to get to it, since we're all way out of warranty anyway. With that screw removed, use a nylon spudger to pry off the grille without bending it (it's stuck on with adhesive strips) and remove two more screws at the top.
Use the spudger to undo the remaining clips around the unit and it comes apart in two halves. Be sure not to lose the pad with the front buttons, which aren't attached to anything; I managed to get them to flop into their apertures on the other side. Don't use a sharp metal object to separate the clips or you may nick the exposed clear cable to the digitizer, rendering your unit unusable. You can also see the camera connector, the front connector (which you can leave on, or gently remove with the spudger; just press it back on to reattach), and the ARM CPU (an Intel PXA270).
The Z72's battery isn't soldered in and has a connector you can gently pull free with needlenose pliers. Once the connector's off, however, you'll need to wedge it out from the glue holding it in (spudger encore). I replaced it with an 1100mAh 3.7V part sold specifically for it with the correct connector; it's keyed and you just push it on.
When putting it back together, make sure the light pipe for the power light is on its little pegs.
Also, while the front button pad needs to be watched and aligned back into its holes, mind the side button as well — as I didn't after closing it up.
By comparison the m505 was rather easier. This took a 1000mAh 3.7V lithium polymer battery, and was also sold specifically for it with the connector already wired up. Just remove the rear screws and work open the clips if needed. Do not work the spudger into the SD card slot; that stays attached to that particular side. This battery was unfortunately swelling a little also, so good thing we were in there, though it was also glued in and needed to be pried out too.

All the units recharged briskly and held a good charge for several rounds of Solitaire and surfing Gopherspace. More ideas coming for apps and they'll be ready to test them when I do.