9 ms·
I had absolutely no idea that the original SoundBlaster had embedded firmware running on an 8051. It never occurred to me that our PCs were loosely-coupled pile
by EvanAnderson 8y ago
I had absolutely no idea that the original SoundBlaster had embedded firmware running on an 8051. It never occurred to me that our PCs were loosely-coupled piles of microcomputers all the way back then. (Now I'm off to go learn what that firmware was doing...)
Some background I dug up quickly:
Snark Barker creator's blog: http://tubetime.us/index.php/2019/01/19/sound-blaster-1-0-principles-of-operation/ http://tubetime.us/index.php/2019/01/19/sound-blaster-1-0-pr...
http://www.os2museum.com/wp/sound-blaster-the-french-connection/ http://www.os2museum.com/wp/sound-blaster-the-french-connect...
- JohnBooty 8y agoYeah that's incredible. I'd no idea. I'd assumed that the chips on devices like this were essentially dumb "slaves" controlled by the CPU. I had some vague idea that the chips had some autonomy (ie, when playing digital sound, they knew enough to request/fetch more data via interrupts, DMA, etc) but I'd never spent the time to really learn what was going on there.
- segfaultbuserr 8y agoActually, having computer boards with their own CPUs was NOT a modern phenomenon due to excessive computing power. They have always been made, as early as in 1980 (without the s), and for good reasons. Some were even a bit unimaginable today: for example, we had Z-80 Softcard (https://en.wikipedia.org/wiki/Z-80_SoftCard https://en.wikipedia.org/wiki/Z-80_SoftCard), a Z80 expansion card made (by Microsoft!) for computers with 6502 CPUs (Apple ][) to run existing business applications written for CP/M, like WordStar. It can also be connected with a modem to utilize its additional processing power to run a BBS server. There were also cards that packed multiple CPUs to implement a poorman (home computer) version of parallel processing. The simplicity of single-task operating systems and hardware architectures of that time allowed multiple independent computers to shift control of a physical computer back and forth. Today it's - pretty much - impossible, but nobody needs it either, you can just run everything simultaneously.
- detaro 8y agoAnd depending how exactly you want to define it, in large computers this happened even earlier, e.g. the CPC 6600 had independent systems for IO handling: https://en.wikipedia.org/wiki/CDC_6600#Peripheral_Processors_(PPs) https://en.wikipedia.org/wiki/CDC_6600#Peripheral_Processors...
- leoc 8y agoIndeed many 6502 systems had support for an optional Z80 (or indeed a built-in Z80, as on the Commodore 128) to run CP/M. Later there were one or two x86 boards for pre-Intel Macs. The Amiga platform's upgrade path made some later Amigas a tangled mess of different CPUs.
- IWeldMelons 8y agoThere was a Soviet PC for high schools, semi-clone of PDP-11 which had 2 cpus clocked at 6 and 8 MHz respectively. It was called UKNC. Look it up, it is an interesting device.
- classichasclass 8y agoNot new at all. Remember that Commodore disk drives had their own 6502s in them, for example (some of the big PET drives had two). A joke at CBM was that the 1541 was the best computer they ever made.
- segfaultbuserr 8y agoIronically, in the early 80s, we did it mainly because of the shortage of computing power, so we needed lots of co-processors. And now we are still doing it, but mainly due to our excessive computing power. Want to blink an LED? Let's put Linux, Apache and Ethernet in the circuit. ;-) Well, on the other hand, it's unfair to say it's an abuse of computing power, since if you do have the power, making autonomous devices does make a system much more elegant and manageable, and not even talking about the advantages of general processor over specialized chips. Take another look, it also tells us something about early home computer designs - the actual CPUs were usually irrelevant, there were no technical difficulties on the CPUs themselves and you could easily put TWO CPUs in a hard drive. And unlike modern computers, it was not even the most expensive part and the choice was limited, a cheap "trainer" computer with only hexadecimal keyboard, and an expensive home computer with a color CRT often shared a single CPU. The vast majority of the cost and troubles was system design, or putting these parts into a usable computer, with your own solution of input, storage, interface, graphics, software, or a chassis. The standardized IBM PC hasn't came yet, and one needed to create a solution of every subsystem. Every computer was a unique design, often with custom-made ASIC chips for peripherals.
- pjmlp 8y agoTo be fair something like an ESP32 runs circles around the PCW1512, which we had on the school computer club, where we spent countless hours playing Defender of the Crown. So we don't have to necessarily constrain ourselves to Assembly and C on those tiny devices. Naturally it depends on the use case.
- segfaultbuserr 8y ago> So we don't have to necessarily constrain ourselves to Assembly and C on those tiny devices. Good point. > something like an ESP32 runs circles around the PCW1512, which we had on the school computer club I think as long as people are having fun with them, the hardware already served a good purpose. Even if the LED blinking is implemented by running Linux. But in my opinion, people who are interested in these popular embedded boards should also learn about the basis of electronics, or just be aware of its existence, and understand the things one could do without buying a premade "board", and that it's possible to blink an LED with a few transistors. Well, I think most will find out by themselves, it's just a matter of time and guidance.
- jmount 8y agoIt comes full circle: computers used to be the size of a building, and now what we call data centers are again the sizes of buildings (and in many cases can be considered a large distributed computer). I've always enjoyed this article on the topic: Myer, Sutherland "On the Design of Display Processors" http://cva.stanford.edu/classes/cs99s/papers/myer-sutherland-design-of-display-processors.pdf http://cva.stanford.edu/classes/cs99s/papers/myer-sutherland...
- jordache 8y agopoor analogy IMO. the old building sized computer was only adequate for a single tenant's use. Nowadays the large data centers facilities hundreds of thousands of organizations' infrastructures
- Retric 8y agoOld building sized computers often supported multiple organizations via time sharing etc. The NSA, Google, and many other who have reached a point here single buildings are not enough computing power. If anything the number of orgs with building sized computers is probably similar. Which feels strange but it’s more about budgets than anything else.
- jordache 8y agonot simultanesouly they did not.
- deleted 8y ago[deleted]
- Stratoscope 8y ago> not [simultaneously] they did not. Are you referring to this part of the parent comment? "Old building sized computers often supported multiple organizations via time sharing etc." I worked at Tymshare in the early 1970s, and I can assure you that we supported many simultaneous users and organizations who dialed into our Tymnet nodes with their Teletypes and other terminals to connect to our building sized computers. That was the whole point of the company, and the very thing it was named after. https://en.wikipedia.org/wiki/Tymshare https://en.wikipedia.org/wiki/Tymshare https://en.wikipedia.org/wiki/Time-sharing https://en.wikipedia.org/wiki/Time-sharing
- jepler 8y agoI looked around and wasn't able to find whether this firmware has been reverse engineered (surely it has been) -- the snark barker just has a .hex file checked into their git.
- tubetime 8y agothe firmware is not the official one, it's actually from a Chinese clone. works fine with all the software i tested it with.
- rasz 8y agoDo you know the model? I know ATI Stereo F/X was a sb 1.0 clone with external eprom. Going up the model range Reply SB Vibra 16 clone http://ohlandl.ipv7.net/sound/reply.html http://ohlandl.ipv7.net/sound/reply.html had some external eproms too.
- tubetime 8y agoit's not the Stereo F/X, it's a generic clone of a SB 2.0 sold under a dozen different brand names.
- blihp 8y agoEven your keyboard has a microcontroller in it. The subsystems in a PC used to be far more independent of the CPU: sound cards had features like wave table synthesis which could offload playback work from the CPU, SCSI disk controllers could do transfers between disks (after being initiated by the CPU), network adapters could do some basic packet inspection to see if your computer needed to bother processing an incoming packet etc. Moore's law, the drive for ever cheaper computers and some strategic moves on Intel's part eliminated most of that on the majority of PCs in the late 90's when we started seeing things like Winmodems, Winprinters (i.e. devices that couldn't function without a Windows driver on the PC doing most of the work turning the peripheral into a dumb I/O device) and USB. There are still many microcontrollers in a modern PC but they're buried at lower levels (instead of being in the hard drive controller they're now in the storage device itself, for example) and for different tasks.
- pishpash 8y agoYes, it started with Winmodems, which people used to mock a lot. There used to be a fancy type of hardware modems called voice modems which even had sound card capabilities, and in turn sound cards had game ports that came standard.
- lscotte 8y agoMicrocontroller is even a bit overstated or fuzzy these days. My keyboard and mouse each have ARM SOCs.
- blihp 8y agoHow so? I would classify the ARM M0 (most likely what's in those devices) as a microcontroller-class device. Yes, it's a SOC... but so is the Atmel AVR and almost every other microcontroller these days. I tend to classify devices based on their use cases rather than specific hardware limits since it's a sliding scale over time. (i.e. today's 8-bit microcontrollers exceed what we had with 1980's-era 8-bit PCs on pretty much every front other than RAM... but they generally aren't considered anything more than microcontrollers today)
- tripzilch 8y agoI used to have a SoundBlaster Advance (IIRC), so a bit newer one. At some point I was running a (Windows) tool/driver called "kX Project" so I could more easily route separate signals to the headphone and line out jack. At some point while playing around with the program I discovered I could also load simple DSP effects onto the signal chain (EQ, pitch shifter, even echo delay I think). It took me a little while to realize that these DSP effects were in fact not running anywhere on my CPU, but instead were running on some kind of DSP chip on the soundcard itself!
- DiabloD3 8y agokX Project is an alternate driver for Emu10k-based Soundcards (such as various members of the Audigy and X-Fi series and some Emu cards). The Emu10k2 is a surprisingly overweight audio DSP that was being included for... unfortunately, no good reason, as Creative Labs sold these to gamers, and games just didn't use it outside of what could be exported via DirectSound (pre-Windows 10 sound mixing, EAX extensions (which they, themselves, are often a source of constant game crashes and/or BSoDs)) or the non-adopted Creative variant of OpenAL. This is what you ended up discovering. I, too, had one, but never really found a use for it, as the audio quality was pretty poor due to being just a generic DAC and a generic opamp on a generic PCI card. Better than onboard sound, but not as good as inexpensive external solutions.