More Wobbles

This is a follow-up to a previous post. I’ve had a chance to spend more time recovering the two dead PS/2 Model 80s. The first step was replacing the CMOS batteries because without a functioning backup battery, a PS/2 is more or less a brick (a 40-pound brick no less).

Although the Model 80 uses very unusual (for desktop computers) batteries, sourcing them is luckily no problem in 2016. For reference, the original batteries IBM used— Panasonic BR-P2 in my case—lasted upwards of 20 years.

New (left) and old (right) IBM PS/2 Model 80 CMOS backup batteries.

New (left) and old (right) IBM PS/2 Model 80 CMOS backup batteries.

The next problem was recreating the system configuration, which requires a reference diskette. Finding a reference diskette image and additional adapter descriptor files (ADF) is not hard. Using them with a half-dead floppy drive is. Continue reading

Posted in Floppies, IBM, PS/2 | 1 Comment

Synology DSM 6 and Vintage Clients

I’ve been a Synology DiskStation NAS user for four years now and used them as a SMB file server which is, among other things, accessed from various vintage clients (OS/2, DOS, Windows 9x, etc.). After upgrading to DSM 6, I found that these clients no longer work. That is to say, any attempt to connect fails because the credentials are rejected.

The problem is that DSM 6 (essentially customized Linux + Samba) by default no longer accepts old-style LAN Manager passwords. Fortunately it is not difficult to fix, but it is a multi-step process.

  • If not already enabled, enable SSH access on the DiskStation and log in via your favorite SSH client.
  • Edit /etc/samba/smb.conf with sufficient privileges (with sudo vi, for example). In the [global] section, add a new line which says lanman auth = yes
  • Make sure the updated configuration is loaded (e.g. sudo smbcontrol smbd reload-config or rebooting the DiskStation).
  • Recreate password hashes.

The final step is not very obvious. One reason why servers do not like old-style LAN Manager authentication is that the server needs to store a cryptographically weak password hash. Okay, you don’t care about that. But if old-style authentication is enabled, the password hashes need to be re-created because they won’t exist.

It may be enough to re-set the password in the DSM user interface. If it is not, run sudo smbpasswd -L -U <username> on the DiskStation. To check if passwords have LAN Manager hashes or not, you can run sudo cat /etc/samba/private/smbpasswd on the DiskStation. If the third colon-separated field has lots of XXXs there is no LANMan hash.

Note that this problem applies to fresh DSM 6 installations as well as DiskStations upgraded from DSM 5. With upgraded systems, there is a possibility that existing LANMan hashes might survive in the Samba password file; on new installs the hashes definitely have to be re-created.

Posted in Networking, Software Hacks, Storage | Leave a comment

Windows 3.1 Standard Mode Crash with APM

On some systems, Windows 3.1 and 3.11 in Standard mode crashes when it is configured to use APM, i.e. POWER.DRV is loaded. The crash only happens in Standard mode, not the typical default 386 Enhanced mode.

Windows 3.1 APM Crash

Windows 3.1 APM Crash

Since POWER.DRV is involved (“MS-DOS System with APM” vs. “MS-DOS System” in Windows setup), it’s obvious that power management/APM is somehow significant, but how, and why is only Standard mode affected? The explanation is a bit complicated. Continue reading

Posted in Bugs, Windows | 16 Comments

Wobbly Floppy Drive?

Over the weekend I tried to revive a PS/2 Model 80 whose CMOS battery died (after 25 years!). Finding a replacement battery fortunately isn’t difficult (6V lithium “photo” battery), but recreating the configuration information of course requires a reference floppy and the .ADF files for any non-IBM adapters installed in the system.

The early PS/2 implementation of Plug and Play leaves something to be desired. Keeping a reference diskette with a system for many years turns out to be difficult in practice. Newer PS/2 systems with a reference partition do not suffer from this problem but still need floppies if the hard disk dies.

Finding a Model 80 reference floppy image or the ADFs is not difficult, but the system just kept refusing to boot from my floppy. The diskette was readable in other systems and I tried several of them, both original IBM floppies and self-made copies. None of them worked. The drive was spinning, did a few seeks, and then the system showed an error. Continue reading

Posted in Floppies, IBM, Plug and Play, PS/2 | 28 Comments

Intel OverDrive Part II: Pentium OverDrive

The Pentium OverDrive is notable for supporting three physically different sockets (that’s not counting the Pentium II OverDrive). The Pentium OverDrive product was sold in variants suitable for Socket 2/3 (486 systems), Socket 4 (early Pentium systems), and Socket 5/7 (second generation Pentium systems).

Pentium OverDrive for 486 Systems

Perhaps the best known member of the OverDrive family is the original Pentium OverDrive, also known as P24T. It could upgrade most newer 486 systems with Socket 2 or Socket 3.

The front of a Pentium OverDrive box.

The front of a Pentium OverDrive box.

Two models were available, PODP5V63 and PODP5V83. The nomenclature indicates 5V Pentium OverDrive Processor running at 63 (really 62.5) or 83 (really 83.3) MHz. The processors utilize an unusual (for 486 boards) 2.5× frequency multiplier and are designed for 25 and 33 MHz bus, respectively. Continue reading

Posted in 486, Intel, PC history, Pentium | 19 Comments

Better Late Than Never

Better late than never, although in this instance, it’s really really late—about thirty years late. In the world of computing, that is eternity.

The talk is about the new CR4.UMIP control bit documented in the latest (revision 58) Intel SDM, and the corresponding CPUID feature bit. When set, the CR4.UMIP (User Mode Instruction Prevention) bit prevents the SGDT, SIDT, SLDT, SMSW, and STR instructions from being executed outside of the highest-privileged code (ring 0).

The question is of course why it was ever possible to execute these instructions from unprivileged code. Setting the critical registers (GDTR, IDTR, LDTR, MSW, TR) was never possible from user code, but they could be freely read. The excuse Intel had back in 1982 (when these instructions became part of the 80286) was that they didn’t know what they were doing. That was much less of an excuse with the 386 and by the early 1990, it was well known to be a problem. Continue reading

Posted in 286, Intel, x86 | 8 Comments

Updating Windows

Updating older (but still supported) Windows versions can be a tedious tasks. Not only for humans but also for computers. Searching for updates for half an hour every time with the CPU going at full tilt must be a not insignificant contribution to global warming.

As everyone knows by know, Microsoft recently released what amounts to Service Pack 2 for Windows 7. From personal experience I can say that it works very well, whatever it is called. The point of the patch is that it resets the baseline for Windows Update. Instead of searching for 5 years’ worth of updates since Windows 7 SP1, there are just a few. Microsoft also changed the release cycle to monthly updates, which further reduces the number of variables.

Of course the patch isn’t automatically delivered through Windows Update and the download process is designed to remind everyone why ActiveX was such a dumb idea. But it does do its job once applied and brings down the time to check for updates to something quite reasonable. Continue reading

Posted in Microsoft, Windows | 15 Comments

What’s the Point…

Somethings things just don’t make much sense. Like this, for example:

Double Dream

Double Dream?

What’s unusual about an ISA sound card with a wavetable daughterboard? Nothing. But experts will recognize that the host card is a Terratec Maestro 32/96, which already has a built in-synth.

There oddest things about this setup is that the host card’s synth is essentially a superset of the one on the daughterboard. For that reason, the daughterboard’s presence has very questionable utility. Continue reading

Posted in Sound | Leave a comment

Any Soundscape VIVO fans here?

While digging into the implementation of Sound Blaster compatibility on PCI cards, I found an unexpected gem. Ensoniq’s U.S. Patent 5,790,837 includes partial source code for the Sound Blaster emulation driver used with the Ensoniq Soundscape VIVO boards, SSINIT.COM.

Ensoniq SoundScape VIVO

Ensoniq Soundscape VIVO

The VIVO boards were Ensoniq’s last ISA-based product (introduced in 1995) and shared a common trait with the PCI-based ES1370 and later devices: There was no hardware Sound Blaster compatibility. Instead, Sound Blaster digital audio as well as AdLib FM synthesis were emulated.

Now the VIVO was a bit of a mixed bag. While the Sound Blaster compatibility wasn’t bad, it required EMM386 and a TSR and was therefore fundamentally incompatible with certain games. The AdLib emulation was not so much emulation as approximation, as it tried to replace a FM synth with wavetable synthesis, with mixed results. On the upside, the wavetable synth (1MB ROM) was not at all bad, and the cards were cheap (and therefore used in many OEM systems). Continue reading

Posted in Ensoniq, Sound, Sound Blaster, Source code | 4 Comments

The Wave Blaster II Does Talk!

As previously mentioned, the Wave Blaster II (aka WB2) documentation makes no mention of possible bidirectional MIDI communication. But while trying the Wave Blaster II control panel with various host cards out of desperation, an interesting thing happened: When attempting to go to the preset screen, I was informed that I couldn’t because “MIDI In is currently busy”.

Now that’s interesting because the MIDI implementation chart for WB2 makes absolutely no mention that the device might send anything. Then again the chart does not list system exclusive messages (SysEx) at all.

A quick look at WP2CPL.EXE with a disassembler confirmed that the control panel preset dialog only opens if the device responds to a SysEx. What does the SysEx do? Continue reading

Posted in Creative Labs, Wave Blaster | 15 Comments