VOGONS


Reply 40 of 110, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
mkarcher wrote on 2023-10-05, 23:01:
Robbbert wrote on 2023-10-05, 22:25:

After all, the slots wouldn't be there if they didn't do anything.

"Creating demand for RAM modules" is also "doing something" 😉

Would 286 board vendors have had OS/2 in mind when deciding how many memory expansion to put on their boards?

Reply 41 of 110, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Well when 286 boards first got SIMM or SIPP, the "normal" size was probably the 256kB and the special order "Holy heck are you running a shuttle mission" 1MBs maybe just existed for near the price of the whole system unit. So boards may have got 8 slots with the idea they could be filled eventually with a whopping 2MB. Though most are probably wired to take at least 1MB SIMM. But anyway, huge amount of slots was initially expecting user to buy the affordable smaller SIMM most likely. But what the heck, 1MBs haven't gone to stupid pricing so fill 'em if all if you like. 9 chip modules are probably "safest" for 286 and older 386, may only need 100 or 8ons, but if you buy 70, they at least won't slow your 486 to a crawl if you wanna use them elsewhere later.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 42 of 110, by digger

User metadata
Rank Oldbie
Rank
Oldbie

Dune II requires at least 2MB of memory (conventional memory + XMS, not EMS) for PCM audio playback. When only conventional memory (or not enough extended mory) is available, only music and non-digitally-sampled sound effects can be heard in the game. The installer will warn the user about this when no extended memory is detected.

It's a real mode game, so it runs on a 286. So that's at least one game that you can only play in its full glory on a 286 when you have at least 2MB of RAM installed. 🙂

Reply 43 of 110, by douglar

User metadata
Rank Oldbie
Rank
Oldbie
jakethompson1 wrote on 2023-10-05, 23:10:

Would 286 board vendors have had OS/2 in mind when deciding how many memory expansion to put on their boards?

Maybe. However you would have to use OS/2 1.3, which was, uhh, spartan to say the least on a 286 unless you had 16 bit OS/2 apps. With no virtual 8086 support, it was not a better DOS than DOS. I remember getting lemmings to run in its single tasking DOS compatibility session once upon a time, but it wasn’t really stable.

But if you want to put 8mb in your 286, I say do it, as long as you dont mind the longer mem check post time. It is pretty much a free upgrade compared to how much it would have cost in 1988, so have at it. Maybe it makes windows 3.1 better.

Is it possible to use the extra ram for smart drive without XMS?

Reply 44 of 110, by Jo22

User metadata
Rank l33t++
Rank
l33t++

I know it's a bit annoying, but.. I've did some testing 286 vs OS/2 1.x over here.
(^We weren't always dead serious in that thread, btw. A bit of poking fun at each others..)

The OS/2 compatibility box is quite limiting, but it has good technical reasons here for.
The whole first 640KB (default setting) are essentially being exclusive for the synthetic DOS.

That's why 640KB are being "lost" for OS/2 and OS/2 needs more memory than DOS without any further doing.
In addition, a small HDD cache is being running, too.

If OS/2 is running, it can use its own drivers for networking and filesystem (in theory).
It's not needed to load any DOS drivers for this into first 640KB.
So ideally, those 640KB in the DOS "penalty box" are usually free to DOS applications.

On a contemporary 286 PC running PC-DOS 3.30, even less memory would be available.

On the other hand, the latest 16-Bit OS/2 (v1. 3) was around when MS-DOS 5/6 and memory managers like QEMM/EMM386 were available.
And they could "out source" parts of DOS and applications beyond 640KB, liquidishing the need for 16-Bit OS/2 here.

But then, there's the filesystem. The latest 16-Bit OS/2 supported HPFS, which had advantages over FAT.
And like with Windows NT, OS/2 could run DOS applications on a foreign filesystem.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 45 of 110, by alvaro84

User metadata
Rank Member
Rank
Member
digger wrote on 2023-10-05, 23:33:

It's a real mode game, so it runs on a 286. So that's at least one game that you can only play in its full glory on a 286 when you have at least 2MB of RAM installed. 🙂

Let's split this statement into two. It's a real mode game and it runs on a 286. The new 32-bit EUs and GPRs of the 386 do work just fine in real mode, for DOS demos it's a very common mode of operation. Scene archives are full of real mode 386-dependent demos - they can use 32-bit math and transfers combined with real mode addressing which can be quite inconvenient once you need structures bigger than 64k, but oh well. Quite often you don't need them that much. One of the biggest classics, Second Reality, is a prime example here. That definitely won't work on a 286.

But now you made me want to try Dune 2 on my 5-M 20-MHZ 286 which is on the test bed now. I know it'll be slow but I know it works. And it'll certainly have the memory for all the sounds.

Shame on us, doomed from the start
May God have mercy on our dirty little hearts

Reply 46 of 110, by digger

User metadata
Rank Oldbie
Rank
Oldbie
alvaro84 wrote on 2023-10-06, 14:02:

Let's split this statement into two. It's a real mode game and it runs on a 286. The new 32-bit EUs and GPRs of the 386 do work just fine in real mode, for DOS demos it's a very common mode of operation. Scene archives are full of real mode 386-dependent demos - they can use 32-bit math and transfers combined with real mode addressing which can be quite inconvenient once you need structures bigger than 64k, but oh well. Quite often you don't need them that much. One of the biggest classics, Second Reality, is a prime example here. That definitely won't work on a 286.

You're right. Just because software runs in real mode doesn't mean it doesn't use any 386+ instructions. I should have clarified that. But if I'm not mistaken, a 286 is listed as a supported CPU in the game's official requirements.

But now you made me want to try Dune 2 on my 5-M 20-MHZ 286 which is on the test bed now. I know it'll be slow but I know it works. And it'll certainly have the memory for all the sounds.

Let us know how well it runs! I remember recently reading somewhere that at the same clock speed, 286 CPUs were actually faster than 386sx CPUs. 🙂

Reply 47 of 110, by mac57mac57

User metadata
Rank Newbie
Rank
Newbie

I may have missed it but the original poster (OP) mentioned UMB as well. There is no restriction around the 286 and UMB. This is purely a software matter. I am running 128 KB of UMB on a PC XT, powered by an 8088! UMBs came into formal existence with MS-DOS 5.0. There may have been other DOS variants that did it sooner, but with MS-DOS 5.0, I have a healthy set of UMBs running on both of my PC XTs, one of which is an enhanced clone with an 8086 @ 8 MHz vs. the usual PC XT 8088 @ 4.77 MHz.

So while this isn't a reason to go beyond the 1MB limit, it IS something else you can do with extra RAM in an up to 286 PC.

I agree with all the other posters: Windows, either 3.0 or 3.1, is a compelling reason to add extra eXtended Memory to a 286. The 286 can address up to 16 MB, so there is no issue there AND you get the use of the High Memory Area (HMA), the first 64KB above 1 MB, which, due to a quirk in the way the x86 architecture addresses RAM, becomes available and is addressable in a 286 architecture.

Quite aside from eXtended Memory (XMS) however, Expanded Memory (EMS) can also be very useful. All the major disk cache programs of the day support placing the cache into EMS, and I can tell you from real experience that it makes a perceptible speed difference. Almost all the major RAMDisk programs of the day support EMS-based RAM disks, and that too can be used to achieve a substantial speed up of your 286 machine, by placing all your most commonly used programs into an EMS-based RAM disk and then making the drive letter for that disk the first element on your PATH statement.

Reply 48 of 110, by alvaro84

User metadata
Rank Member
Rank
Member
digger wrote on 2023-10-06, 14:29:

Let us know how well it runs! I remember recently reading somewhere that at the same clock speed, 286 CPUs were actually faster than 386sx CPUs. 🙂

I tried and it kinda crawled. It worked but, especially with a dozen units on screen, the controls had inconveniently big delay, the frame rate was horrible (not that important here) and even time slowed down.

I have a 386sx-25 in stock that I can compare it to. Which seems to run at 1WS at that so Landmark shows it slower than this 286-20. Wolfenstein didn't agree that much but IIRC it was very similar clock-for-clock. So, this will by me next experiment.

Shame on us, doomed from the start
May God have mercy on our dirty little hearts

Reply 49 of 110, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

I'd probably have to plow through the (thick) manuals to be sure, but I was thinking some simulation type games like Moonbase (1990) and SimEarth for DOS might use EMS or XMS if available, even though 640kB is minimum... Think it's typically when you want higher res or bigger map or something.

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 50 of 110, by rmay635703

User metadata
Rank Oldbie
Rank
Oldbie
BitWrangler wrote on 2023-10-06, 16:51:

I'd probably have to plow through the (thick) manuals to be sure, but I was thinking some simulation type games like Moonbase (1990) and SimEarth for DOS might use EMS or XMS if available, even though 640kB is minimum... Think it's typically when you want higher res or bigger map or something.

I think many early 90’s games would detect and use extra memory if available .

More of a gain more features rather than needed to play.

Reply 51 of 110, by Jo22

User metadata
Rank l33t++
Rank
l33t++

EMU386 emulates a few 386 specific real-mode instructions, btw..
That way, some newer DOS applications can run on an 286 PC.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 52 of 110, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

25Mhz Harris o/c 33Mhz, 16MB 0ws RAM EMU386, EMU387 and half a frame per second on Quake with 4 levels of screen reduction 🤣

(Still probably more FPS than OG 6mhz 286 IBM AT on MS Flight Simulator 🤣 🤣 )

Unicorn herding operations are proceeding, but all the totes of hens teeth and barrels of rocking horse poop give them plenty of hiding spots.

Reply 53 of 110, by alvaro84

User metadata
Rank Member
Rank
Member

Well, this is what I found comparing the VLSI 286-20 and the Opti 283 386sx-25 system. RAM is the same 5MB, in similar composition, if we can call 8x44256 chips equivalent of 8x256k SIMM. The 4PCs of 1M modules are just 4x1M modules, both 30.... pin. Pad. Whatever. VGA was the same WD90C31 which yielded 4.5MB/s in the 286 system and 4.1MB/s in the 8.3MHz ISA setting of the 386sx and 4.9 in its 12.5MHz ISA mode. And the performance is definitely lacking compared to my more refined 386sx boards that can do some interleave trick when get 2 matching pairs of SIMM - those get 1.25-1.3 landmarks per MHz or so, while this one gets <1.0. Which may not reflect real world performance either, whatever.

So Landmark 2.0 shows this 386sx in a very bad light, it gives it 24 CPU points while the 0WS 286 gets 26, similar to memory interleaved 386sx system, assuming the same clock frequency. Yet it's not that bad, under more realistic loads the 386sx-25 seems somewhat faster.

3DBench: 7.0 vs 8.3/8.4 (ISA settings)
Wolfenstein: 12.3 vs 14.4/14.9

When I make the ISA transfers faster it's still not exactly at 0WS-286-level but not very far off and definitely not slower at 25MHz than that 286-20 like Landmark suggests. Dune 2 itself is a bit snappier too, it need a step "hairier" situations to slow down to the same crawl and nicer, more fluent when things calm down. I'd call it a bit better experience overall, maybe like what you'd expect going from 20 to 25MHz.

Not that it was a perfect apples-to-apples comparison.

Shame on us, doomed from the start
May God have mercy on our dirty little hearts

Reply 54 of 110, by mkarcher

User metadata
Rank l33t
Rank
l33t
mac57mac57 wrote on 2023-10-06, 14:40:

I may have missed it but the original poster (OP) mentioned UMB as well. There is no restriction around the 286 and UMB. This is purely a software matter. I am running 128 KB of UMB on a PC XT, powered by an 8088!

Well, there is a reason to connect to think of UMBs being a 386 thing, which is a hardware matter. While you are completely correct that there is no hardware reason not to use UMBs on any kind of PC compatible computer, you need hardware to provide these UMBs on 8088/8086 and 80286 PC-compatible machines (which might me built into the main board chipset)

On the other hand, with the 386 processor, you got hardware-independent UMBs for everyone using the 8086 virtualization feature of the 386 processor, which allows a tool like EMM386 to provide UMBs without hardware support or chipset specific drivers. EMM386 proved as a one-stop solution for most DOS memory management needs: It provides UMBs in the first MB address space (emulating an "UMB card"), it provides EMS page mapping (emulating an EMS card), it makes the UMBs known to DOS (comparable to USE!UMBS or some driver like that) and it provides an EMS 4.0 driver to let DOS applications access the emulated EMS memory, and this works without any specific memory management support by the chipset on any 386 or later. On the other hand, there are downsides of using EMM386: The "virtual 8086 environment" provided by EMM386 is slightly slower than running the 386 in real mode, and EMM386 itself uses around 150 to 200KB of extended memory which is not available to 32-bit applications or Windows. Especially on 2MB systems, just loading EMM386 may reduce the total amount of available memory in a way that some applications refuse to start or that Windows gets significantly slower due to lack of available physical memory.

Reply 56 of 110, by AlexZ

User metadata
Rank Member
Rank
Member

EMS or XMS for games? is relevant for this discussion.

Install more than 1MB RAM if your board allows it and you can get it cheap. Finding applications that utilize that memory will be another matter. Since memory was very expensive in 286 era, very few applications made use of it. Certainly not games as those were targeting home users.

Since ISA bus is quite slow and usually not overclockable in BIOS on 286 (unlike 386), using EMS cards would be a bad idea. EMS boards may be ok for a 12Mhz 286. Originally their purpose was expanding memory on 8086/8088 which could only address 1MB RAM.

286 is capable of running in unreal mode and modern himem.sys takes advantage of that. This means no switching to protected mode is necessary. On 386 the application could in theory just switch to unreal mode and directly access the whole extended memory without relying on XMS driver and without having to switch to protected mode. That is not the case on 286 though. XMS is a copying API unfortunately. The original spec can be found here https://www.phatcode.net/res/219/files/xms20.txt. The key API function is Bh) Move Extended Memory Block. XMS driver basically uses extended memory as a form of in memory swap file that is not meant to be directly accessed by the application. EMS vs XMS differences are also well explained here http://computer-programming-forum.com/46-asm/ … 0a3b819222f.htm . Emulated EMS on 286 isn't a great idea as it will consume 64kb of memory (for the window) and it will do copying just like XMS driver thus being inferior solution. With XMS driver the application decided how many windows it needs and they could take up more than 64kb. Emulated EMS on 386 isn't bad at all as memory is remapped rather than copied, the main downside is just 64kb window limit and slower V86 mode. Typically useful for applications that need a moving window - e.g. audio playback or spreadsheet window but you wouldn't store there data that is accessed frequently and randomly. In general you should avoid EMS unless you need it and run emm in NOEMS mode.

You typically need config.sys with multiple boot options depending on what application requirements.

Last edited by AlexZ on 2023-10-07, 19:18. Edited 1 time in total.

Pentium III 900E, ECS P6BXT-A+, 384MB RAM, NVIDIA GeForce FX 5600 128MB, Voodoo 2 12MB, 80GB HDD, Yamaha SM718 ISA, 19" AOC 9GlrA
Athlon 64 3400+, MSI K8T Neo V, 1GB RAM, NVIDIA GeForce 7600GT 512MB, 250GB HDD, Sound Blaster Audigy 2 ZS

Reply 57 of 110, by jakethompson1

User metadata
Rank Oldbie
Rank
Oldbie
mkarcher wrote on 2023-10-07, 09:47:

On the other hand, with the 386 processor, you got hardware-independent UMBs for everyone using the 8086 virtualization feature of the 386 processor, which allows a tool like EMM386 to provide UMBs without hardware support or chipset specific drivers. EMM386 proved as a one-stop solution for most DOS memory management needs: It provides UMBs in the first MB address space (emulating an "UMB card"), it provides EMS page mapping (emulating an EMS card), it makes the UMBs known to DOS (comparable to USE!UMBS or some driver like that) and it provides an EMS 4.0 driver to let DOS applications access the emulated EMS memory, and this works without any specific memory management support by the chipset on any 386 or later. On the other hand, there are downsides of using EMM386: The "virtual 8086 environment" provided by EMM386 is slightly slower than running the 386 in real mode, and EMM386 itself uses around 150 to 200KB of extended memory which is not available to 32-bit applications or Windows. Especially on 2MB systems, just loading EMM386 may reduce the total amount of available memory in a way that some applications refuse to start or that Windows gets significantly slower due to lack of available physical memory.

I may have picked it up wrong even at the time but I remember For Dummies books and the like portraying Compaq as coming with a clever hack with CEMM to provide EMS on the Deskpro 386, followed by the various EMM programs that followed.

But in fact, EMS wasn't standardized until the 80386 was almost ready for release, so do you think EMM programs were anticipated the whole time and it's no accident that it's straightforward to implement in V86+paging mode?

Reply 58 of 110, by mkarcher

User metadata
Rank l33t
Rank
l33t
jakethompson1 wrote on 2023-10-07, 19:18:

I may have picked it up wrong even at the time but I remember For Dummies books and the like portraying Compaq as coming with a clever hack with CEMM to provide EMS on the Deskpro 386, followed by the various EMM programs that followed.

That's the same story I heard, and I think it's plausible. CEMM was shipped on release of the Compaq Deskpro 386 as part of Compaq DOS 3.10(!), so this is clearly before DOS included EMM386.EXE.

jakethompson1 wrote on 2023-10-07, 19:18:

But in fact, EMS wasn't standardized until the 80386 was almost ready for release, so do you think EMM programs were anticipated the whole time and it's no accident that it's straightforward to implement in V86+paging mode?

I'd guess it's just coincidence. Both the bank-switching based EMS and the page-based MMU of the 80386 were standard technology at that time.

The virtual-8086 mode was introduced to allow DOS multitasking (something that's also helped by EEMS or EMS 4.0, but not by EMS 3.2). While the EMS specification is explicitly crafted in a way that allows copy-based implementations (like EMM286), I don't think Lotus/Intel/Microsoft were actually expecting DOS to be the primary operating system on 386-class computers that time and purposefully designed it in a way that allows programs like CEMM or EMM386.

Reply 59 of 110, by Jo22

User metadata
Rank l33t++
Rank
l33t++

Btw, because of 286/EGA earlier on.: I just remenbered - At least here in Europe, an 8 MHz 8086 PC was a popular EGA machine, too - the Amstrad/Schneider PC1640.
Performance wise, it was roughly like a 6 MHz PC/AT, maybe (the original EGA baseline configuration). Thanks to the 16-Bit 8086 (or V30 if upgraded)..
So I mean, 286+EGA wasn't an exlusive comination per se. There were 8086 PCs with EGA and 286 PCs with VGA, for example.
And users of Hercules cards on all different kind of PCs (8088 to 486), as well. My dad had one in a 286 PC, for best MDA/business app compatibility.
Edited.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//