What were XMS, EMS and Conventional memory and why did the PC have them?

Ғылым және технология

What was all that talk of memory managers and AUTOEXEC.BAT boot menus about? How would an 8MB 486 fail to run a game which worked fine on a 1MB 286? Why was EMM386.EXE definitely not on Ultima 7's Christmas card list? And why does your friend have digitised sound on that game when you do not, even though you both have the same soundcard?
It's #doscember , and so time to delve into one of those questions of DOS that I never quite understood: what were EMS and XMS, and how could I have the wrong sort of memory?
The DOS/Dos joke was done better (and earlier) here: • A Bad Education Review... . Maybe it'll become a tradition or something.
Memory map:
0:00 A premise of sorts
0:52 5150
2:16 Pinhead
3:46 That segment thing
5:18 Where 640K came from
8:35 The 80286 arrives
10:05 Popcorn
11:00 Where EMS came from
11:43 Bank switching
13:57 Where XMS came from
15:23 Emulation
16:13 Precious conventional memory
17:50 HMA and the A20 gate
18:55 DOS wars
21:22 Better DOS and making memory
22:54 Boot disks and menus
23:32 DOS/4GW and that
Media credits:
Installation floppy disks (3.5-inch) for Microsoft MS-DOS 6.22 image by Blake Patterson from Alexandria, VA, USA, CC-BY 2.0
Raystown Lake, Huntington and Lititz trip image by Bob, CC-BY 2.0
Some CC-0 sounds used from Freesound
Some CC-0 and public domain images used from Wikimedia Commons
Stock footage from Pexels
Some stock imagery from Pixabay
CC-BY 2.0: creativecommons.org/licenses/...
Bonus fact: that 286 shown inexplicably on the floor of a very, very messy room was also later a 486/100, then eventually a K6/200 until lack of availability of AT motherboards supporting modern sockets forced me to finally buy a new case. I also did, eventually, tidy my room.
#doscember #⁠doscember2023

Пікірлер: 33

  • @TheSwillMan
    @TheSwillMan4 ай бұрын

    wow. this might be the most detailed KZread video about DOS memory management that currently exists, not that there's much competition. what an absolute mess.

  • @Soundole
    @Soundole5 ай бұрын

    A lot of the gaming experiences of my youth make much more sense now, thank you! I remember receiving an Ultima Collection for Christmas one year (when we were running Windows 98), and getting VII to run was practically impossible! What a fascinating era of tech history!

  • @mogwaay
    @mogwaay6 ай бұрын

    Wonderful! And the first time I've heard a decent explanation of DOS=HIGH,UMB kinda means, splendid!

  • @TheRasteri
    @TheRasteri6 ай бұрын

    "segmented addressing just isn't complicated enough, what if we made it even worse?"

  • @maxmuster7003

    @maxmuster7003

    6 ай бұрын

    In the 16 bit BIG Real Mode we can set the DS segment register pointing to our data segment (nothing special), but together with using a 32 bit offset register in combination we can address every memory location in the 4 gb address space from the 16 bit BIG Real Mode.

  • @leonardocastro742
    @leonardocastro7426 ай бұрын

    Really good video made laugh several times. With really good information for those of us trying to understand how was in the good old days.

  • @zzco
    @zzco27 күн бұрын

    Originally it was a "barrier", but later on it became more of a "rail". Basically don't whizz on the third rail. You could use everything ABOVE 1MB just fine, but between 640K and 1MB was "reserved for future expansion".

  • @vfigplays
    @vfigplays6 ай бұрын

    “then we replaced it with getting your svga card to work.” ouch! timberwolf, you are too good at digging up all the suppressed trauma! although i lived through the config.sys-fiddling, bootdisk-juggling glory days between dos 3.3 and 6.22, i never understood any of the differences between high memory, upper memory, expanded memory, extended memory, or springy stretchy memory. so in my own programming, 640kB +video ram simply had to be enough. thanks for the explainer! i am still confused by it all, but i think thats now just because it is all needlessly complicated and thankfully past!

  • @TimberwolfK

    @TimberwolfK

    6 ай бұрын

    One of the saving graces having a Trident 8900 was it being so common everything I played in the day detected it just fine. Painfully slow once it was detected, mind, but at least it worked...

  • @armorgeddon
    @armorgeddon6 ай бұрын

    Awesome video! Even three of my favorite games are shown in it :-) Since my IT education in school only started in mid-1995 I had no clue about the possiblity of creating a boot menu, so I ended up with 5 boot disks to make all my games run on my 486. Well not *all* of my games since one of my favorites, conincidently Digger (still awesome!), would run way to fast to play on even my dad's 12 MHz 386 NEC laptop. When I tried that it was the first time in my life that I realized backward compatibility was an issue even on PC. One of the reasons I kept one of the 8088 systems from our broader family in my possession until today (Atari PC3) like every other PC I owned afterwards. I knew your channel before, but I've now subscribed, since your content is high quality stuff! Thanks very much!

  • @ekho_viktor
    @ekho_viktor6 ай бұрын

    Really interesting! I'm too young to have experienced the DOS days so this is all very curious to me... Glad things are simpler now! 😅 Also smooth transition from the NFS Pioneer logo back to you; that was clever

  • @RetroTinkerer
    @RetroTinkerer5 ай бұрын

    Good times indeed... I can't hardly remember how I got around the first time a DOS game asked for certain version of VESA video. I cheated a lot using QEMM386 before memmaker was bundled with MS-DOS so I never got around understanding what the hell were any of this memory stuff. So thanks for sharing this video!

  • @TimberwolfK

    @TimberwolfK

    5 ай бұрын

    QEMM was one of thoe things I missed out on - I never had a computer powerful enough to take advantage of it until long after MS-DOS 6.22 was ubiquitous.

  • @tmuiuocrndqs
    @tmuiuocrndqs6 ай бұрын

    Said Timberwolf, as he was floating under a balloon near the memory tree: “I think that the memory suspects something!” “What sort of thing?” “I don’t know. But something tells me that it’s suspicious!” “Perhaps it thinks that your game doesn’t use it.” ... “I have just been thinking, and I have come to a very important decision. This is the wrong sort of memory.” “Is it?” “Quite the wrong sort. So I should think it wouldn’t work, shouldn’t you?” “Should I?” “Yes. So I think I shall come down.”

  • @maxmuster7003
    @maxmuster70036 ай бұрын

    On 80386+ (32 bit CPU) the only one difference between the 32 bit mode and the 16 bit mode is the usage of instructions with or without an operand size (66h) and with or without an address size (67h) prefix. In the 16 bit mode we have to use these prefixes for 32 bit and in the 32 bit mode for 16 bit instructions. That means in the 16 bit protected mode we have larger segment sizes in the global descriptor table of an 80386+, so we can address 4 gb memory in 16 bit protected mode too. In the 16 bit Real Address Mode of MS DOS we can use 32 bit operands/register with instructions and a operand size prefix(66h).

  • @RegularOldDan
    @RegularOldDan6 ай бұрын

    Oh. I had completely forgotten I used to deal with all of this. So glad I don't need to think about this any more.

  • @TimberwolfK

    @TimberwolfK

    6 ай бұрын

    I must admit, it's a lot less of a bother with modern emulation, where throwing in an extra 4MB or upgrading to a more capable BIOS is only a few clicks away rather than six months of solid saving paper round money...

  • @stevec00ps
    @stevec00ps6 ай бұрын

    Great video! :) Although I can still create customised boot menus to do all this, I forget what it was all doing behind the scenes!

  • @evilmiera
    @evilmiera6 ай бұрын

    Oh man, conventional memory and the like, I remember having to ask my uncle who built my first PC how to set that up so I could run Cannon Fodder.

  • @Yesterzine
    @Yesterzine6 ай бұрын

    Recognised Need for Speed instantly Crew represent.

  • @TimberwolfK

    @TimberwolfK

    6 ай бұрын

    It's the little-known EA/Pioneer title, The New Fish Simulator actually.

  • @khajrane
    @khajrane6 ай бұрын

    As a die hard motorola 68k enjoyer that was thoroughly entertaining and educating video. Ao THAT is why the 640k...

  • @TimberwolfK

    @TimberwolfK

    6 ай бұрын

    I remember messing about a bit with them at University and they had such a nice assembler - all those logical registers! Although even there, you had the "nobody will ever use the top 8 bits of the address register, right?" issue ..

  • @watchm4ker

    @watchm4ker

    4 ай бұрын

    The 68K had its own share of Bus Errors. That seriously hamstrung it, and by the time it was fixed, the x86 was already established.

  • @Momentvm
    @Momentvm6 ай бұрын

    Now that's a great video. These days programming is relatively easy. Guys and gals who programmed DOS era PCs were just built different to deal with this segmented nonsense and zero process isolation and protection features.

  • @1981patx
    @1981patx6 ай бұрын

    Nice one, thanks :)

  • @SianaGearz
    @SianaGearz5 ай бұрын

    I used QEMM back in the day a fair bit, it seemed to work a little better than Memmaker. Why actually, what was special about it?

  • @TimberwolfK

    @TimberwolfK

    5 ай бұрын

    Interesting question. I noticed while playing around with Memmaker that it struggled on the most aggressive settings to produce a stable configuration, which limited me to around 610-620K (which I think is about where my 486 with CD-ROM and soundcard also topped out in the day). Possibly Quarterdeck did more testing and had some smarter approaches at the limit to move the last few reluctant things into UMBs.

  • @supercellex4D
    @supercellex4D14 күн бұрын

    Good video except for one problem XENIX IS NOT LINUX. Xenix is a sublicensed version of AT&T Unix because AT&T was under antitrust limitations. Linux is a kernel licensed under GPLv2. actually i think it was pronounciation, he did say Xenix it just sounded like Linux

  • @TimberwolfK

    @TimberwolfK

    14 күн бұрын

    I thought I clearly pronounced Unix at 10:01 and the subtitles also show "Unix variant", where did you get Linux from?

  • @supercellex4D

    @supercellex4D

    14 күн бұрын

    @@TimberwolfK "A version of Microsoft's own Unix variant, Linux" Microsoft never touched the Linux kernel in the 80s, that's because it didn't exist. MS only got involved in Linux today with Azure, WSL and various projects within FreeDesktop.

  • @TimberwolfK

    @TimberwolfK

    14 күн бұрын

    Hmm, I definitely hear that as "Xenix" (and it's in the subtitles). ETA: ah, I see you've noticed the same. Unfortunate with all those OS names not a million miles from each other!

Келесі