Comments

You must log in or register to comment.

garlopf t1_ja2q28d wrote

It stopped being a problem when Microsoft introduced plug and play in windows 95. This was a hardware standard and software stack that would identify each hardware device automatically, then load the necessary drivers and assign the IRQ and DMA numbers automatically.

In the beginning few devices supported the standard and so the auto detection was kind of hard and also very flakey. We all have vivid memories of how this would fail with blue screen of death and systems hanging. It even got the nick name "plug and pray". But as time went on hardware support improved, and so did the software, and now we take it for granted that hardware detection "just works".

26

GalFisk t1_ja2s3kp wrote

So your new games could be programmed to speak to the windows audio subsystem, which would speak to the sound card using drivers made by the sound card manufacturer, and these systems would keep track of the IRQs and DMAs and everything. Before that, the DOS games had to know how to speak directly to every sound card they wanted to support. There were a few standards, and not that many sound cards overall, but PnP eventually enabled a very wide range of devices that all mostly just worked.

9

JetScootr t1_ja2x7gr wrote

>mostly just worked

2

GalFisk t1_ja2y1bs wrote

Yeah, I lived through the early "plug and pray" days.

And for some damn reason, printers seem to still be stuck in that age. My most upvoted post on ELI5 yet was me expounding upon the sorry state of the printing subsystem in Windows.

10

JetScootr t1_ja2yclp wrote

Odd, when you consider other (ie, mainframe) OSes had no problems with printers. Printer tech was already marching forward even before the PC revolution started because of the massive use mainframes made of printers.

3

Rampage_Rick t1_ja4m1wn wrote

Remember when USB started rolling out around the time of Win95 OSR2.1?

1

GalFisk t1_ja4rtxc wrote

Ha ha, I'd rather not.

I remember at my first job, the network stack of Win95 rev A would sometimes crap itself, permanently. We had to reinstall Windows on a few computers.

USB printing is still a mess. Windows still defaults to the ancient LPT1 port when it doesn't know what to do, and the USB "port" for printing is a hack.

And don't get me started on network "WSD" ports.

And everything is totally opaque, so when something goes wrong, you can't inspect, troubleshoot or fix the actual issue. Remove, reinstall, pray...

1

Dysan27 t1_ja70v3b wrote

>There were a few standards

There were, but the only ones that I remember were "Soundblaster" "Soundblaster 16" and "Soundblaster 32" that were only standards because those cards were very popular so most games would support them. So competitors made their cards compatible with that interface.

1

GalFisk t1_ja79a55 wrote

I recall also often being able to choose between Ad Lib, Gravis Ultrasound, Roland MT-32, Tandy, and sometimes PC Speaker.

1

frustrated_staff t1_ja2vg85 wrote

Just to clarify: not only did MS make the OS handle a bunch of the stuff, but hardware manufacturers also settled on a (semi) standard method of communication

2

speculatrix t1_ja2rhuw wrote

DOS was barely an operating system, in the true sense.

If you look at the windows kernel and the core system libraries and tools, they provide key features such as device drivers, process separation, memory management, storage and file systems. The device drivers allow different devices from different manufacturers to be controlled in a common way at the application layer. So to some extent it doesn't matter which sound card you have. Obviously, some have more features, but the base level of functionality is the same: make stereo sound.

DOS didn't do much of that, except the filing system, keyboard and character console. Each application had to have its own drivers for sound, hi-res graphics and even a mouse! Some hardware became a standard due to popularity, and were supported by many applications.

7

JetScootr t1_ja2xpob wrote

>DOS was barely an operating system, in the true sense

Everything you said is correct, but perhaps you're underplaying just how limited the hardware was in the DOS days. DOS, and its forerunner CPM, were squeezed down into (sometimes) as little as 4 or 8 thousand bytes of RAM, plus about that much ROM (not kilobytes. ANd what's a megabyte?).

PS before I start a flame war: CPM was the conceptual forerunner of QDos, which was the actual code forerunner of MS Dos.

PPS before my PS starts a flame war:QDOS

6

speculatrix t1_ja2y85t wrote

Yes, I know. I lived through that.

At one time I was writing assembler for four bit microcontrollers.

My first computer had 4K of RAM, and 8K of ROM and cassette tape storage.

My smart watch has millions of times more flash/rom.

3

sterlingphoenix t1_ja2vuck wrote

> DOS was barely an operating system, in the true sense.

I mean you may be OK saying "compared to modern operating systems", but it was a perfectly adequate OS for the time. Windows wasn't an actual OS until Windows 98...

4

speculatrix t1_ja2xp3z wrote

Unix and other real operating systems existed at the time.

DOS was basically just a fancy bootloader, a thin layer above the bios, with very basic filing system (early versions of DOS/FAT didn't even support directories!)

No processes or threads, no memory management, no separation of OS vs user space, almost no device drivers, no semaphores or locking, no network, no logging.

Just a single character based console.

8

sterlingphoenix t1_ja3867y wrote

DOS did everything you'd expect an OS to do in the consumer space. It wasn't supposed to compete with the commercial space.

If you want to go full UNIX, I definitely don't think you can call Windows a "real" OS, either. And I mean until the late 2000s.

3

white_nerdy t1_ja40mv0 wrote

Each sound card speaks a different "language." In the days of MS-DOS your program had to talk directly to the sound card, so you had to add the "language" of the specific sound cards you wanted users of your program to be able to use.

With more complicated OS's (Windows, Linux, OS/2), the OS speaks a single "language" to programs, and under the hood there's a "translator" (device driver) that works for each sound card.

Basically it stopped being a problem when PC's started using OS's that would "do more" for programs, including talking to the sound card. In turn this new kind of OS was enabled by other underlying trends:

  • Computers gained more memory, more disk space, and more processing power, there's enough spare performance to add extra layers/complexity to the OS and software
  • PC CPU's gained the ability for an OS to run in a "privileged" mode and "be in control" of the computer, isolating programs from each other and the hardware
  • Larger floppy disks (1.44 MB) and CD-ROM's made it easier to distribute large pieces of software
  • Microsoft made deals with PC makers for Windows 95 to come standard with new PC's
  • A larger market [1] means it becomes financially feasible for a company to pay higher dev costs to create more complicated software, as they can predict they will sell enough to recover the dev costs and make a profit.

[1] Before 1995-ish, PC users were kind of like MMO players or VTuber watchers today, a large community but a bit niche / nerdy and not quite mainstream. From 1995-2005 PC's became more like smartphones today, considered essential devices for the vast majority of the population (at least in the US and other advanced countries).

2

kanakamaoli t1_ja42clj wrote

Pretty much ended in windows 95 when Microsoft introduced "plug and pray". Plug and play allowed the os to set things like comm ports and irqs automatically instead of the users having to set the jumpers manually.

1

Prinzka t1_ja5uv76 wrote

>not-interchangeable audio cards

Having used sound blasters back when this was still a new thing, I don't know what a non interchangeable audio card is.

1