Tracking shortcuts and the early history of multiple monitors


Commenter Roni put two suggestions in the suggestion box in the same entry, which is a problem for me because I feel like I'm forced to answer both of them or neither.

The first question suggestion has to do with how shortcuts can find their targets even if they've been renamed. This is something I had covered nearly a year before the question was asked, so the reason I'm not answering that question isn't that I'm ignoring the question. It's that I already answered it.

While I'm at it, here are other questions that I've already answered:

The other question was a series of questions about the history of multiple monitor support in Windows.

Actually, I think I've already discussed all of the parts of this question suggestion, so today's entry is more like a clip show. "Remember the first time I talked about multiple monitors?"

Windows 98 was the first version of Windows to support multiple monitors. (Code to support multiple monitors started being written shortly after Windows 95 was out the door, so my guess is that the preliminary design work overlapped the end of the Windows 95 project.) To facilitate development of code that takes advantage of multiple monitors, the multimon.h header file was introduced so you could code as if multiple monitor support was present in the operating system, and it would emulate the multimon APIs (with a single monitor) if running on Windows 95.

In Windows 98, the maximum number of monitors was nine. There was no restriction on color depth or resolution, because the most common configuration involved one powerful graphics card combined with one really lame one.

When support for multiple monitors was ported to Windows NT, the Windows NT folks figured they could one-up the Windows 98 team. Literally. The maximum number of monitors was increased from nine to ten. Who knows, maybe someday it will go to eleven.

Comments (25)
  1. Anonymous Coward says:

    >from nine to ten

    What an interesting titbit. Thanks for sharing.

    I'm wondering why nine though – I'd have expected eight. Maybe they were imagining a 3×3 grid, although I not many people will such a luxurious setup.

    [Click the link for "In Windows 98, the maximum number of monitors was nine." -Raymond]
  2. Re: Dropping file to a taskbar button. This would have been an useful feature. It's a shame it was not implemented. Somebody at MS took time to implement (translate the text, etc) that stupid message box that appears instead.

  3. Joshua says:

    Well in this case you could have blown Roni off with use Goo^H^H^HBing.

  4. CPDaniel says:

    I remember using multi-monitor support in pre-windows 95 days, but it was provided entirely by the video card device drivers.  IIRC, the cards we used were from Matrox.  I was very happy to see OS-supported multi-mon support show up because the vendor-specific support was flakey.

  5. I'm not sure why there should be a "low" limit on the number of supported monitors. Internally, the OS could apply some artificially high limit without advertizing, to force the client apps to always allocate storage for an actual number of monitors present.

  6. dave says:

    The arrange-the-monitors UI needs to have a tolerably small limit (tens, not hundreds) so that the method of setting relative position by dragging screen images remains tenable.

  7. Muzer says:

    Still, things such as 3D monitors being two logical monitors adds issues, effectively making the limit 5 3D monitors.

  8. "And as far as I know, nobody has produced a real-world (non-theoretical) situation where they need it to go beyond 10."

    I just did:  two Eyefinity six-display cards would do the job; certainly three would.  The hardware is commercially available – I can order it from NewEgg right now if I felt like blowing close to $1000 just on video hardware.  Do I have to buy hardware that exceeds the limits in order for Microsoft to change the limits?  Would I call Microsoft Support to ask for an increase in the limit, and they would issue me a special hotfix? LOL, I doubt it.

    What I proposed is not some hypothetical discussion about hardware that isn't available, or is completely unrealistically priced.  All of it can be purchased at NewEgg for reasonable prices, and would ship tomorrow.

    This is a catch-22, or chicken-and-egg problem.  I, and many others, won't buy two Eyefinity cards until Windows supports it.  Windows won't support it until I (and perhaps many others) buy two Eyefinity cards?

    Realistically, while I haven't the budget or the space for a > 10 monitor setup either at home or at work, I can imagine many users might want to be able to do this – for example, to create a high resolution video wall, or running a bunch of monitors like you see at the airport, etc…

    [It is still a problem that exists only in your imagination ("I can imagine…"). Nobody has actually set it up and said, "Y'know, I've got 10 monitors, and I enjoy that arrangement, and it'd be great to add those extra two." I suspect that in practice, your brain can't keep track of 10 monitors, or you'll run into some other issue with 10 monitors (e.g. your machine runs slow because the video cards are sucking up all your I/O bandwidth). -Raymond]
  9. What would be awesome is a flight simulator with mutiple 3D monitors.

  10. almanac29 says:

    Well for people wondering why so low limit on monitor limits, I have a theory.

    The problem behind more-than-10-monitors situation is that it really have no practical value. Generally, one will not need more than 6 screens. I think you could imagine with six screens you will have more information on screen than your eyes allow you to see. Any number more than that is very likely using several monitors as a bigger monitor, for example a monitor wall. It will be much more convenient if you just take a special device to arrange all the many monitors, which is logically one monitor to the OS, perhaps with huge resolution. You could imagine how you are going to arrange six monitors. Switching two of them will definitely need some work. Setting different resolution or color depth for one of them will not be a practical thing since they are likely to be same type.

  11. What I would like to know is why 9 and 10 were picked as the limit instead of a more "binary" limit, such as something that is a power of 2.  I'm also curious why the limit is so low to begin with.  Why not a number like, say, 255?  Does the mere possibility of an additional monitor add significant overhead such that it is prohibitive to have more than a small handful of monitors?

    Also, a good question is why the limit isn't being increased with newer versions of Windows?  It might be understandable with Windows 2000, when computers simply didn't have the interface bandwidth to run a lot of displays ("640 KB is enough for everybody mentality").  That was not true when Windows Vista and certainly Windows 7 were released, as video adapters got more advanced, and I have heard of no such increase with Windows 8 either.

    Conceivably you could easily run up against the limit of 10:

    * Some motherboards have four PCI Express x16 slots, meaning you could run four video cards.  Also they support USB 3.0.

    * Expensive ATI Eyefinity cards support 6 displays per card.

    * One USB 3.0 controller could support several USB 2.0 video cards (let's say 10 as a perhaps overly-optimistic estimate, ignoring any USB overhead).

    Now you have a system with 34 displays connected to it… the only problem child left to address is Windows and its 10 monitor limit.  Even if there are some limits I haven't thought of (thermal, power, bus bandwidth), it seems reasonable to think that you could run at least two of those Eyefinity cards on a single Windows computer, which would be 12 displays and already exceeding the limit.

    Then again, given the big push for Metro in Windows 8 and the apparent emphasis on single-tasking, I shouldn't be surprised if nothing is being done here.

    [Conceivably hitting the limit is different from actually hitting it. And as far as I know, nobody has produced a real-world (non-theoretical) situation where they need it to go beyond 10. I guess there are other issues with connecting 34 monitors to a single system. -Raymond]
  12. Joshua says:

    [It is still a problem that exists only in your imagination ("I can imagine…"). -Raymond]

    Space shuttle simulator needs something like 12.

  13. hagenp says:

    There are "video wall" setups using (many) more monitors than ten.

    For the average user, this is irrelevant, of course.

  14. Charles says:

    "I'm also curious why the limit is so low to begin with.  Why not a number like, say, 255?"

    Surely MS will only implement features that they can support, which means features that they can test. If they support 255 monitors then they would have to test a setup with 1 monitor, and a setup with 2 monitors, and 3, all the way up to 255. What's the point when no one's going to use 255 monitors?

  15. John says:

    I think the questioning behind this seemingly arbitrary limitation is that it would be "trivial" to change it to something more well rounded.  I have no idea how this is actually implemented (famous last words), but I imagine there's a hard-coded constant somewhere in the source code: #define MAXIMUM_MONITORS 10.  Probably referenced in some for loops or data structures somewhere.

  16. Danny says:

    Buuuulshit Ray buuuuullllshhhhiiiittt, OK!

    There are plenty of security systems for closed video circuit who would LOVE to switch from their "high resolution cameras -> long cable with several signal repeaters to keep the signal power -> video monitors for each camera" to "high resolution camera -> internal network -> one freaking windows system with more then 10 monitors connected to it" setup. And I say they stick with this very expensive hardware setup because Windows has such a low limit. Increase the freaking limit and you'll suddenly sell millions (yes millions!!) of more licenses – there is your real life scenario and also the economics behind. Chop chop Ray!! go increase it now you got both scenario and clients motivations for Micro$oft to start implementing it in the next SP for W8 :D

  17. So how do you plug all these monitors to your PC? Imagine a PC with 200 DVI connectors on the back …

  18. Danny says:

    @Kai

    Usually in each shift is like 2 guys watching 2 matrixes of 4×5 monitors (40 points of interest) with ~30 degree between them so one can still have with his peripheral vision his partner matrix but his main vision onto his matrix. So I am talking about the real life scenarios that exists even before word "Windows" was referring to software. And how to connect 40 monitors to one PC? Well, above comments already made it clear. And why not imagine 200 monitors connected to the same PC? And who said DVI? Do you think current hardware implementation will last too long? A dozen years ago DVI didn't even exists on the market, they barely started to exists on drawing boards! So, by the time SP1 for W8 will get issued the hardware guys from industry will change it again :D

    [Those monitors aren't being used for displaying UI. They're just screens. (Unless you think you're going to take your mouse and go drag drag drag drag drag all the way to monitor number 35.) You probably don't want to be pumping pixels to all of them – just let them be screens hard-wired to the cameras. -Raymond]
  19. voo says:

    "I just did:  two Eyefinity six-display cards would do the job; certainly three would.  The hardware is commercially available – I can order it from NewEgg right now if I felt like blowing close to $1000 just on video hardware."

    And what the hell would you do with 18 monitors then? As soon as someone comes up with a real world example where they would really benefit from it and would want to run Windows on it, I assume MS would think over their limitations (and that then also means testing Windows with up to 18 instead of 9 monitors.. great) – but since that's quite unlikely, why bother?

    Another example: You can trivially buy thousands of CPUs per amazon, so by your logic MS should have to set the limit for their OSes to something like 100k CPUs – because hey, someone could want to buy all those CPUs. In practice nobody would and people with special needs that really need so many CPUs will run RHEL anyhow.

  20. Danny says:

    Those monitors aren't being used for displaying UI. They're just screens. (Unless you think you're going to take your mouse and go drag drag drag drag drag all the way to monitor number 35.) You probably don't want to be pumping pixels to all of them – just let them be screens hard-wired to the cameras. -Raymond

    You're missing the point here Ray, it's economics. Those venues that pays a LOT (as in tens of thousands) for that special hardware only to have those monitors directly connected to a high resolution camera could save a lot of money – and they KNOW it!! – only if Windows would raise the limit to at least 100 monitors. And did I mention it in the process of doing so they would buy Windows licences? Is a win-win situation for both those venues and Micro$oft. In today world of economics none cares if you would use the microscope as nut cracker? As long as the microscope is cheaper than the hammer everybody would buy a microscope to crack the nuts. So they would use a monitor ("15 are max $100) and a high video processing PC with a Windows (~$2500) is a lot cheaper then their current set-up which at minimum is $20,000.

    [You seem to think that increasing the number of monitors is as simple as changing a #define and recompiling. "It will just work! No need to test it or performance-tune it." Remember the twenty-foot-long computer. It was totally unusable because of the latency. -Raymond]
  21. 640k says:

    "10 monitors is enough for everyone."

  22. A. Skrobov says:

    Raymond, you're not reading carefully enough. The question you were actually asked by Comedy_Gaz is "Why can you not rename *in* Recycle Bin in Windows XP?" (Note the *in* there.)

    I also wonder why, actually.

  23. "And what the hell would you do with 18 monitors then? As soon as someone comes up with a real world example where they would really benefit from it and would want to run Windows on it, I assume MS would think over their limitations (and that then also means testing Windows with up to 18 instead of 9 monitors.. great) – but since that's quite unlikely, why bother?"

    Personally, I don't even have room for them.  But there are millions of Windows users out there, and I'm sure there are some more well-heeled customers who would take advantage of the increased limit – especially for more specialized applications.  So to summarize some ideas, both from me and also mentioned by others in this discussion:

    * Video wall for high resolution display

    * Monitoring lots of IP security cameras

    * Flight simulators, other simulators

    * Data monitoring (flight times at airports, financial information, etc.)

    Give people the tools, raise the limits, and they will come up with applications.  Microsoft, of all companies, should know this very well by now.  There's probably many more we haven't thought of.  (Unfortunately, I worry that Microsoft has lost sight of this with Windows 8 in the senseless chase for controlled, closed, limited software markets…  It's concerning to me to see key APIs for desktop Windows development being marked as "legacy", such as the GDI APIs.  How else are you supposed to respond to WM_PAINT to render your window?  One could reasonably conclude that desktop development is now considered obsolete, and we are supposed to rewrite everything in Metro, where a limit of two apps at a time on the screen is therefore supposedly an improvement over the desktop?)

    "Another example: You can trivially buy thousands of CPUs per amazon, so by your logic MS should have to set the limit for their OSes to something like 100k CPUs – because hey, someone could want to buy all those CPUs. In practice nobody would and people with special needs that really need so many CPUs will run RHEL anyhow."

    Except that there isn't a motherboard that will accept 100k CPUs.  My logic is assuming that you can hook all that up to a single PC, but you can't hook up so many CPUs.  You can reasonably hook up a dozen monitors, though.

    In the future, if my PC does have 100k CPUs (thousands of cores per CPU?), I will expect Windows to support that.  (Or should Microsoft recommend I just start using RHEL in my living room?)

    [As they say in the legal system, "Dismissed for lack of standing." Again, these are theoretical, not actual, scenarios. "Let's spend millions of dollars to raise a limit nobody has actually encountered." -Raymond]
  24. Gabe says:

    JamesJohnston: When you have large arrays of monitors, you probably configure your graphics cards to combine all outputs for a given card as a single "monitor". If you had enough slots and the drivers to support it, you could theoretically use 10 Eyefinity cards with 6 monitors each, for a total of 60 monitors on one computer!

    If I were making a large flight display at an airport, for example, I would use a 9×2 array of monitors in portrait format by using 3 Eyefinity cards. Each card would be configured to control one 3×2 segment of the displays as a single 3240×3840 "monitor".

    Since this is a custom app, I would just create a way to configure it to know where the physical monitors are located within the virtual monitors. Even if each physical monitor were individually selectable to change its resolution, color depth, and location, you wouldn't want to manage them that way. You'd probably be asking for a way to combine them to simplify configuration.

  25. Karan says:

    "Raymond, you're not reading carefully enough. The question you were actually asked by Comedy_Gaz is "Why can you not rename *in* Recycle Bin in Windows XP?" (Note the *in* there.)

    I also wonder why, actually."

    +1

Comments are closed.