Sound Blaster: The French Connection

Ever been wondering why there are chips labeled MHS on many Sound Blaster cards, and why there usually was some chip with a © Intel marking? For example this one, on a Sound Blaster 1.5 (1991):

DSP 2.00

Or this one, on a Sound Blaster Pro 2 (1994):

DSP 3.02

I was wondering the same… Continue reading

Posted in Intel, PC hardware, Sound Blaster | 16 Comments

Sound Blaster DIAGNOSE and Disabled MPU-401

Today I finally solved a nagging problem that always seemed like it had to have some sort of reasonable solution. Creative’s DIAGNOSE.EXE utility is quite useful when working with any Sound Blaster 16 derivatives (Sound Blaster 16, AWE32, Sound Blaster 32, AWE64). But there’s an annoying oddity related to the fact that many SB16-based cards have an MPUEN jumper which can disable the MPU-401 interface, typically accessible at port 330h. This jumper is very useful when a SB16 is combined with something like a Roland SCC-1 or a Turtle Beach Maui.

When the MPUEN jumper is set to disable the Sound Blaster’s MPU-401 interface, DIAGNOSE stops working:

DIAGNOSE MPU-401 Error This seems very unsatisfactory; the MPUEN jumper is well documented, so why would DIAGNOSE refuse working when the default setting is changed? After all, a user might not care for MPU-401 compatibility at all, or might have a system where ports 300h and 330h are already occupied by other hardware (SCSI HBAs, network cards) and needed to force the SB16’s MPU-401 to be disabled. Well, there is a solution… Continue reading

Posted in Creative Labs, Sound, Sound Blaster, Undocumented | 3 Comments

sips To the Rescue

A few days ago I scanned a document and unwisely used MS Paint on Windows 7 to touch up a small selection of the scanned pages. Once the dozen or so files were re-touched, I combined them into a PDF together with the untouched originals. Today I tried OCRing the resulting PDF in Acrobat Pro, only to be greeted with an error message complaining that “this page” cannot be processed because it’s larger than 45 x 45 inches.

By now I’m used to the fact that Acrobat Pro oscillates between really wonderful and amazingly shoddy, so I wasn’t surprised that there was not the slightest hint which of the 302 pages might be causing trouble.

After pinning down the troublemaking manually, it of course turned out to be one of the edited ones… and the problem was that MS Paint somehow butchered the DPI values stored in the file. Oops… Continue reading

Posted in Graphics, OS X | Leave a comment

OS/2 on ThinkPad T23 and T30

Recently I had a need to install IBM’s OS/2 on real hardware rather than in a VM, and for various reasons I wanted “genuine” IBM OS/2 and not eComStation. One of IBM’s older ThinkPads was a logical choice. A T42p would have been nice, but mine is currently out of action, awaiting EEPROM hacking. The next choice was a T30 and then a T23. The T30 and T23 ThinkPads are notable for being among the last machines on which OS/2 was officially supported by IBM.

The operating system was the refreshed MCP2 (Merlin Convenience Pack 2) from early 2002. Installing the OS itself was relatively easy, but there were some interesting challenges along the way.

It appears that the refreshed MCP2 is a must, since previous versions reportedly fail on Pentium 4 systems with more than 512MB RAM. But I didn’t try those. Continue reading

Posted in OS/2, ThinkPad | 11 Comments

SC-8820 Gripes

After a long while, I dusted off my Roland SC-8820 sound module which I bought used about 10 years ago. The goal was to drive it from an older PC via MIDI. This turned out to be a lot harder than expected, all because of a power supply.

SC-8820

The last time I used the SC-8820 was at least two moves ago and either I never had the matching power supply or I had lost it. But the SC-8820 can operate on USB power, so a missing power supply is not a problem, right? Wrong… Continue reading

Posted in MIDI, Roland, Sound | 12 Comments

IBM XENIX: One Step Forward, One Step Back

A while ago I wrote about why IBM PC XENIX 1.0 can’t work on any CPU other than a 286. But not content to leave well enough alone, I attempted to patch this version of XENIX so that it would run on a post-286 processor.

While doing that, I had to change my original assessment of the problem. IBM PC XENIX does not put garbage into the reserved word of a descriptor table entry, it actually stores data there! That makes the behavior much harder to excuse, and also much harder to fix.

After some quality time spent with a disassembler, greatly aided by the symbol table included in the xenix and xenix.fd kernel files, I established that XENIX stores the segment size in the reserved descriptor word (this is the size in the file which may differ from the segment limit). Unfortunately, all my attempts to patch the XENIX kernel failed and I could never get the installation floppy to boot.

Or so I thought. A few days ago, I more or less by accident booted the patched XENIX floppy, and lo and behold:

IBM XENIX MaintenanceIt actually worked! It turned out that in my previous attempts, I assigned 8MB RAM to the XENIX VM. That was a mistake, because IBM PC XENIX 1.0 crashes with more than 4MB RAM! Duh… such a common problem which in various incarnations plagues many, many old operating systems (for example OS/2 1.0 crashes with more than 8MB RAM). Continue reading

Posted in 286, 386, IBM, VirtualBox, Xenix | 5 Comments

The DOS 4.0 Shell Mouse Mystery

Several years ago, I noticed that in some virtual and physical environments, the DOS Shell in both IBM’s and Microsoft’s DOS 4.0x has a very odd glitch: the mouse pointer moves, but does not register any clicks… except on scroll bars, and even then only partially.

MS-DOS 4.01 Shell

On and off, I tried to find the source of the problem. I suspected the keyboard controller (with PS/2 mice), keyboard BIOS, PS/2 mouse BIOS… but never found any bug. Not long ago I finally found the cause of the problem, and it was not at all what I had expected. Continue reading

Posted in DOS, IBM, PC hardware, PC history | 28 Comments

Do You Know These Peripherals?

After a long pause, here’s another guessing game. Do you recognize the five peripherals below? This should be very easy since the manufacturers’ names are clearly visible, only the model numbers got “lost”.

Computer Peripherals

This is all 1980s-1990s hardware from (obviously) Roland and Yamaha. The oldest module was made in 1987 or so, the newest is 1999-ish.

At least three of these modules are explicitly supported by some/many DOS-based games from the late 1980s and early 1990s. The remaining two work more or less very well by virtue of backwards compatibility with one of the others.

Posted in MIDI, Roland, Sound, Yamaha | 10 Comments

What Is DXP44Q?

Today I came across a random 1996 vintage ISA sound card (no name, made in China). The only two chips worth noting on the board are an OPTi 82C930A chip and a mysterious DXP44Q—a square chip center left, to the right of the CD-ROM connector.

Sound Card with DXP44QIt’s clear enough what the OPTi chip does—it’s essentially a SB Pro + WSS clone with an integrated DAC/ADC and mixer. But what the heck is the DXP44Q chip? I had never come across it and I can’t find any documentation about it, not even who made the chip!

Unfortunately search results are completely poisoned because someone has DXP44Q on a list and now thousands of Chinese chip peddlers offer “DXP44Q” without having the slightest clue what it is or what it could possibly be good for.

There are a few photos of other sound cards with the same mysterious DXP44Q chip. Is it possible to at least determine what it does given the OPTi 82C930 datasheet? Let’s see… Continue reading

Posted in PC hardware, Sound | 12 Comments

Solaris 2.6, 7, and 8 Crashes on Pentium 4 and Later

A blog reader recently pointed to an interesting problem which affects older Solaris releases on certain systems. The symptoms (crash/reboot) may at first glance look like the previously described problem which affected Solaris 2.5.1 and 2.6, but both the cause and the set of affected systems are different.

Solaris 8 MCE TrapWhen systems based on the Pentium 4 started appearing in the early 2000s, users of several then-recent versions of Intel editions of Solaris discovered that Solaris could not be successfully booted (or installed) on Pentium 4 processors. The affected versions were Solaris 2.6 (1997), Solaris 7 (1998) and Solaris 8 (2000). On the other hand, Solaris 2.5.1 (1996) and older continued working; Solaris 9 (2003) was never affected.

The problem manifested itself as a “BAD TRAP” panic very early in the boot, often but not always accompanied by a triple fault/reboot. There was no easy way to avoid the problem, but there was a workaround which required a little bit of typing, and which was available thanks to the very helpful Solaris kernel debugger. Because the kernel debugger was available even on the installation media, it was entirely possible to engage the workaround, install the OS, and then patch the kernel.

The cause of the problem was somewhat careless coding on the part of Solaris kernel developers, combined with Intel’s ever-changing MSR (Model-Specific Register) implementation. Solaris 2.6 was the first to add support for Intel MCE, or Machine Check Exceptions. Continue reading

Posted in Bugs, Debugging, Intel, Solaris | 2 Comments