Oldskooler Ramblings

the unlikely child born of the home computer wars

8088 Corruption

Posted by Trixter on January 13, 2006

I just put up a web page on 8088 Corruption, my program that plays video synced with audio on an original IBM PC.  What’s significant about the page is that I include a video file you can play if you don’t have an original IBM to run it on.

28 Responses to “8088 Corruption”

  1. Greetings. Love your site, very informative and fun. I’m rather guilty of living in the past, and make up excuses like “I have so much software for the Commodore VIC-20, that’s why I keep the TWO I have”. I LOVE old comps & video games, I have an Atari 800XL that’s seen better days, but worked the last time I powered it up. I also have the C64, a floppy drive (the ‘ol 1541) for it, as well as a couple of those wonderful “datasette” data cassette recorders for the Commodores. But I’m getting away from my reason for contacting you. My main machine here is a Dell Dimension 2300 with a 1.75 gig Celeron running Windows XP for the home. It is in turn connected into a late-80s vintage 300 watt Fisher audio system via a SoundBlaster 24 bit card for extreme enjoyment of music. Now, I love system event sound bytes, in fact must have them. But lately I have chosen “no sounds” in the sound scheme simply because they’re annoying in hi fidelity! So, about a year ago I downloaded this alarm clock program that had some interesting features. One of them is to play an audio file for your alarm event, and a further parameter was to choose a couple of different melodies that just said “speaker”. When I tried these particular choices, of course, sounds came directly out of my computer. It nearly knocked me out of my chair the first time I heard it! I had heard of the old “dos boxes” emitting a beep or two from an internal speaker in the cpu itself of course, but I didn’t know they still put them in computers today! So, ever since I’ve been obsessed with trying to find a way to utilize that little speaker, to hopefully even come up with a different “file” for different sound events that I could use in place of the audio files in my os. I was terribly disappointed when I Googled stuff like “pc internal speaker” to find little to nothing about it. But, I DID find you, and your two basic programs that are posted on your “IBM PC Sound Ramblings” page. However, I’m still stumped. I downloaded a free BASIC language assembler that claimed universal basic compatibility, but it doesn’t run the two examples posted on your page. Could you help me? I’d like to make extensive use of that tiny little lo-fi oscillator and speaker in my computer, in fact I’d like to work it like a dog. Sorry about this long ramble, but your personal email address didn’t work. Thanks for any help you can provide.

  2. Trixter said

    I have seen literally thousands of programs that use the PC speaker, mostly in BASIC but a good number in pascal, C, and assembler. There are programs that mix together synthesized waveforms to make music (Music Construction Set), or simple apeggios like the two BASIC programs you found on my site, or even play digitized sound through very fast pulse width modulation. And you can still run these, but not within WinXP. WinXP abstracts hardware to DOS code such that most timing-sensitive techniques don’t work.

    Here’s a few suggestions:

    First, make a bootable DOS diskette (WinXP can do this, it’s a special format option) and copy any programs you want to run onto it. Then boot the disk. This will ensure 100% access to the speaker.

    Browse around simtel; there’s a directory “sound” I think that has tons of PC speaker sound programs.

    Browse cd.textfiles.com for shareware CD files (you can download from there) that support PC speaker

    google for “retrograde station” and download the cracked DOS-converted copy of Music Construction Set for the best music a PC Speaker has to offer

    Don’t use a basic compiler, try running your BASIC programs in “qbasic” or “gwbasic” — don’t have a download location but if you don’t already have it, check google. The DOS 6.22 boot disks at http://www.bootdisk.com should have qbasic at least, I think.

    Good luck, and I hope this helps.

  3. aetsch said

    Trixter, I’ve been reading oldskool.org (on and off, of course, and quite infrequently at times) since it was launched, and I’m glad to see that people are still doing this kind of thing. 8088 Corruption is awesome and you are hardcore.

  4. Trixter said

    Not a problem, I work on oldskool.org on and off, quite infrequently :-) Thanks for the kind words!

  5. pecus said

    8088 corruption is becoming an instant classic here at the agency where i work. lots of old skoolers…
    i am amazed at your work trixter. more so, if i dare say, at the names of your children: sam & max (of lucasarts fame?)…

  6. Trixter said

    pecus: Thanks, I’m flattered :-)

    Sam & Max – NOT intentional, but I’m glad it worked out that way :-) They’re almost at the age where they can play it… can’t wait!

  7. Brolin Empey said

    As an addition to comment #2, certain DOS trackers, such as FastTracker II, can play mods on the PC speaker. Certain tracks sound really great with FT2’s PC speaker output, while others sound less great.

    I tried ImpulseTracker’s PC speaker driver, but could not find any way to raise the volume to an audible level, as I can do with FT2. I have not tested ScreamTracker III or any other DOS trackers. There are also lots of DOS mod players with PC speaker support, but none of the ones I tried sounded as good to me as FT2.

  8. Trixter said

    FT2 requires a 386 — if you want to really blow your mind, try to find Triton’s original FastTracker. It requires only a 286, and has both a 6-bit PC speaker driver (soft, clear) and a 1-bit driver (loud, fuzzy).

  9. Brolin Empey said

    I tried FT v1.01. I was not impressed. The PC speaker driver sounds *worse* than FT2, and it would not play some chiptunes which FT2 plays with no problem. The UI is also quite ugly compared to FT2.

    I also tested the PC speaker drivers of a few other DOS trackers, none of which were anywhere close to the quality of FT2.

    ScreamTracker v2.24: too quiet
    Galliasoft VGA GUI Mod Editor (MED135.ZIP): has problem with paths section in .ini file; was not motivated to troubleshoot problem
    ModEdit v3.01:
    – too quiet
    – annoying, high-pitch ringing
    – noise from PC speaker when pressing keys = annoying

    ScreamTracker v3.21: no PC speaker driver

    The bottom line: Nothing compares to FT2’s PC speaker driver.

    I also tried the patched/cracked DOS version of Music Construction Set from the Retrograde Station Web site that you mentioned. I was not too impressed. It hangs when loading some songs, and the songs that do play do not sound so great. I guess I am probably just expecting too much. :) The version of “The Entertainer” that worked was not too bad, though.

  10. Trixter said

    In FT 1.01, the speaker driver has two modes. One is 1-bit and LOUD, the other is 6-bit and soft. If you didn’t try them both, try again. As for play accuracy, I made no claims to its accuracy :-) (in fact, its lack of compatibility is why you can’t play the Crystal Dream mods in normal players without goofy portamentos)

    It may interest you to know that the FT2 speaker driver gets its “loudness” by mixing with a logarithmic table skewed toward higher volumes. What you’re hearing is not technically the exact linear output of the tracker. But then again it was never meant to be the final output device :-)

    As for Music Construction Set, what machine and environment are you trying to run it on? Also, the default volume settings for the demo tunes are for Tandy/PCjr, you have to reduce the “Vo” sliders 3 or 4 notches or you get overmodulation. And keep in mind it’s synthetic music, not samples. For volume, it is the loudest, highest-quality multi-voice synthetic PC speaker music I’ve ever heard (emphasis on synthetic, not sampled).

  11. Brolin Empey said

    It *is* possible that I only tried one of FT1’s speaker driver’s modes. I did not feel like reading the documentation, so I just used the “chn mode” (I think) button. The only visible change I remember seeing in the configuration screen was the mixing rate, so it is possible that I never actually switched modes. I suppose I should read the documentation (on-line help) and try again.

    I am running MCS under FreeDOS on my modern machine (ATX Socket A board w/ Athlon Thunderbird. See http://www.msi.com.tw/program/products/mainboard/mbd/pro_mbd_detail.php?UID=320 for the manufacturer’s specs). MCS takes a few minutes to adjust to my machine’s speed, but seems to work fine other than locking up when loading certain songs.

    I will try MCS on my older Socket 7 system. I should have been using this second machine for testing anyway, since I run Linux on my Athlon and it is a hassle to have to keep rebooting between Linux and FreeDOS.

  12. Trixter said

    FT1, you can toggle one of the center column buttons (it’s been a while, forgive me if I get the details wrong) to toggle between modes.

    MCS was written in 1984 — you should be thankful it runs AT ALL on your Thunderbird :-) Try the Socket 7 system (at the very least it will start up faster).

  13. Trixter said

    BTW, where did you find ftracker.zip? I’m looking all over for it and can’t find it…?

  14. Brolin Empey said

    “you can toggle one of the center column buttons”
    Sounds like the “chn mode” button that I already tried. ;)

    I got FT1 from http://cd.textfiles.com/megamodmadness/PLAYERS/FTRACKER/ . It is only the executable, not the original archive. :/

  15. Brolin Empey said

    There is another copy of FT1 at http://cvsup.de.openbsd.org/historic/comp/os/dos/sound/tracker/, which I found by searching Google for “intitle:index-of ftracker.zip”. I downloaded this second copy, but the size of the executable is the same as the copy I already got from the link in my last post. It seems strange to me that the archive contains only the executable and a configuration file, without any documentation or even a FILE_ID.DIZ or other cataloging-related file. Then again, though, FT1 has on-line help, just like FT2, so maybe that *is* how it was originally distributed.

  16. Trixter said

    Found it! The *actual* release (as far as I can tell) was actually “fasttrak.lzh”. I got mine from http://sunsite.lanet.lv/ftp/mirror/x2ftp/msdos/programming/mxutil/fasttrak.lzh — see if that matches yours.

  17. Trixter said

    I just ran FT 1.0 and 1.01 and I have to agree, both of them sound quite terrible through the speaker… very strange. I must be mis-remembering something. I hooked a Covox Speech Thing (LPT DAC) up to it and it played fine so I guess the PC speaker driver is screwed up :-)

    Wait.. let me run Crystal Dream… Okay, I remember now, they only supported 1-bit through the PC Speaker until FT2. Sorry for the wild goose chase!

  18. Brolin Empey said

    The copy from http://cd.textfiles.com/megamodmadness/PLAYERS/FTRACKER/ is v1.01, while the .lzh archive contains v1.0. I tried v1.01 on my Socket 7 machine. It works, except that I cannot have FT use my SB AWE64 because the mouse and keyboard lock up after selecting IRQ 3 for the SoundBlaster card in the configuration screen. This would not be a problem if I could lower the IRQ, but FT only allows me to cycle upwards through a set of IRQs. It starts at IRQ 10, so I can’t cycle to loop around to IRQ 5 because I have to go past 3, which locks up the mouse + keyboard. Anyway, I read (well, skimmed) all of the on-line help this time, but did not see anything about changing the PC speaker driver’s mode. All I can find that seems plausible is the “Chn mode” button. The only visible effect of pressing this button is that the mixing speed is changed.

    I tried MCS on the Socket 7 system. It still takes a few minutes to start with a K6-2 at 350 MHz. It works, but does not sound any better than on my Thunderbird. I think I am expecting too much from MCS. :p

  19. Brolin Empey said

    By the way, does MCS have actual mouse support? I am thinking that it was written to talk to e.g. a bus mouse or whichever mouse standard was most common in 1984. I am using a PS/2 mouse, if it matters. This is yet another reason why self-booting applications are a bad idea: they can only support whichever peripherals were used when the application was written. Contrast this to writing an application that talks to a mouse driver using a standard interface, which allows the application to work decades later with new hardware that the new mouse driver supports but that was not even available when the application was written. Well, this is actually more a problem of writing applications that access the hardware directly instead of using hardware abstraction layers (i.e. drivers). Still, it would be hard to have your self-booting application communicate with the user’s DOS mouse driver. :P Anyway, enough rambling.

  20. Brolin Empey said

    “I am using a PS/2 mouse, if it matters.” The “if it matters” was unnecessary. I *do* realise that the PS/2 was not released until after MCS was released. :P

  21. Trixter said

    MCS does not support a mouse, only joystick. You might get much more pleasing results if you run it in DOSBOX, since the PC speaker output will be amplified so you can really hear it.

    One thing that may not be readily apparant is that PC speakers have changed over the years. The original speaker was a 2.5″ open model and was quite loud. The speakers in most machines made past 1994 are these little piezo peepers, which not only have different characteristics but are also MUCH quieter. So what sounded good for MCS may not sound as good for your speaker. More info here: http://en.wikipedia.org/wiki/PC_speaker

    Self-booting apps had their own set of advantages: No DOS to worry about; more RAM available; faster access to peripherals. There *were* self-booting apps that supported a serial microsoft mouse (Tass Times in Tonetown comes to mind) but back then there were no standards. Microsoft eventually won the mouse war, but I remember Mouse Systems mice being as equally supported for years.

    As for not being impressed by MCS, remember that it runs on the earliest PC and produces 4-voice music on a machine which has no sound chip (the tones are produced by mixing square waveforms which are used to drive speaker pulses) — very impressive for the time, and very loud too (most similar techniques are very quiet). It’s clever enough that I haven’t quite reverse-engineered what exact method MCS uses.

  22. Brolin Empey said

    I tried MCS in DOSbox. It works with the PC speaker emulation if I lower the number of emulated CPU instructions enough, but then the keyboard input buffer “lags” so that if I hold down a cursor key, for example, the pointer in MCS will keep moving for a few seconds after I release the key. :) The Tandy emulation sounds *great* though. :)

    Regarding the different types of PC speakers, it would help if I could see some photos of the different types so I knew which type I have. The speaker in both my Thunderbird and K6-2 systems are 2 inches in diameter (well, I only measured the one in the K6-2 case since it is easy to remove from the case) and have a paper cone, so I don’t think they are the piezo type that you mention.

  23. Trixter said

    If they have a paper cone, you are one of the fortunate ones! Piezo squawkers look like little cylinders the diameter of a dime, about 6 dimes high, with a little hole at the top of them.

  24. Brolin Empey said

    MCS sounds much better on a Compaq Portable II luggable PC. :)

  25. Trixter said

    :-) Might have something to do with the speaker.

    And now it’s time for me to eat crow; I tried MCS, NBARON, POLYMUSI, POLYPHON, and even that arpeggio-from-hell PIANOMAN on my true IBM PC/XT and found that MCS was only decent if you seriously turned down the volume sliders to halfway (and it helped to turn the treble clef down lower than the bass clef). NBARON put out very good sound, as did POLYPHON. So I guess my ears were biased. MCS is still great (and easily has the best interface of all of them combined ;-) but it isn’t quite the killer I remember it as.

  26. Brolin Empey said

    I just remembered that my MS-6380 Socket A motherboard has its own PC speaker. It appears to be the piezo type you describe. I can’t remember the details now, but I know I was able to switch between using the onboard speaker and my “external” speaker with the paper cone. :)

  27. vintaque said

    Here’s a very strange beeping soft:


  28. nora said

    i bought a triton notebook speaker whose driver & manual are on a 2″ disc. It won’t work in my mac powerbk G4. How can i download the driver?

Leave a Reply to Brolin Empey Cancel reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: