What’s up with the Beep driver in Windows 7? (2010)
blogs.msdn.com
blogs.msdn.com
The comedic value of the IBM PC architecture and its myriad of cautionary tales cannot be overemphasised. From the keyboard controller controlling a short to the A20 line to the rather questionable choice of using a programmable timer to generate audio (BTW, what was used in the cassette port?) and the 6845 sync frequencies that would ruin (if not set fire to) an MDA monitor, all the way to write-only EGA registers and the TSRs that were needed to keep track of which video mode the screen was on, the list and its hilarity, is enormous.
I assume the IBM engineers who came up with these ideas had a lot of fun.
IBM is incompatible with fun
It was about cost mainly and backwards compatibility
Maybe officially, but it's hard not to appreciate engineers getting away making the most idiotic, borderline surreal, technical decisions for multiple generations of a machine architecture. The PC must have been the most hated piece of hardware ever to be designed within IBM and the outlet of countless corporate-induced frustrations.
Making something correct with no regard for cost is relatively easy. Making something that works at all but costs less than $5 in bulk can be a lot more difficult.
I cannot well repeat how there I entered,
So full was I of slumber at the moment
In which I had abandoned the true way.
The Divine Comedy/Inferno/Canto I, by Dante Alighieri, Translated by Henry Wadsworth Longfellowhttp://genius.com/Dante-alighieri-inferno-canto-1-annotated/
My point is, it's easy to get into this kind of weird design world, if you just do the quickest thing at every step, with no ability to think about how the big picture is going to look.
I'm sure nobody wanted to make a weird architecture, because they're harder to extend and harder to write software for, but if you always have the deadlines breathing down your neck, don't be surprised if you end up in a scary forest indeed.
You set up uniquely pitched beeps for certain events, and then listen for the order in which the events occur. It worked because a call into Beep() halted the entire process and all of its threads for the duration of the beep. It prevents multiple threads from beeping at the same time, and it slowed everything down just enough so that you could pick up each individual event with your ear. It beat the hell out of staring at a massive log file.
But I didn't use it for user space debugging, but for kernel space debugging on windows.
Set a different set of beeps for different steps in the code, then listen for the beeps as things unfold.
- http://msdn.microsoft.com/en-us/library/system.console.beep%...
- http://msdn.microsoft.com/en-us/library/kz27k38z%28v=vs.90%2...
I finally ended up on Larry's blog and, as it seemed like he'd know how it all worked, asked him.
I was quite pleasantly surprised by his response, as I wasn't really expecting an answer, never mind such an in-depth blog post the next day.
"BEEEEEP...BEEEEEP...BEEEEEEP...beebeebeebeebeebeebeebeebeebeebeebeep"
and message processing throughput would return to normal. Operators in the field were trained to use the mouse for this purpose.Edited to add: the programmers were aware of the problem, but there was a system level requirement that alerts must be audible and that's how Trusted Solaris worked until well into version 8.
http://lxr.free-electrons.com/source/sound/drivers/pcsp/pcsp...
"Say N if you have a sound card. Say M if you don't. Say Y only if you really know what you do."
Still can't remember what the name of the game was and had been trying to track it down the last few years to see if it was as bad as I remembered.
I just remember high color (S?)VGA rendered/scanned in graphics, a man who was visiting alien planets and battling monsters. My 386 at the time was too underpowered to make the game remotely playable.
I played "Mean Streets" back in the day and was blown away by the sound.
I later saved up enough allowance/birthday money to buy a Sound Blaster Pro - several hundred dollars for a card that is probably < $10 today. Christ.
Ah, yes, the "Take off every Zig" option.