• Please review our updated Terms and Rules here

IBM PC/AT Memory Allocation Question

I don't know what Trixter's experience was

8x6 photo scanned with a logitech hand scan 256 set to 200 DPI (in two passes and stitched), which produced a (pulls out a calculator) ~2MB file. 10MHz 286 ran Windows 3.0 and had 640K + 2MB extended. Word for Windows was not happy. Had to split the resulting files onto floppies using a DOS utility and transfer to a 386-16 with 4MB RAM where I was able to print it.

286 protected mode did not magically grant better memory handling; total addressable increased to 16MB of RAM, but segment size was still 64K.

Was it memory exhaustion? Too slow a clock speed? Can't go back in time to find out, but I feel the answer is moot, because it was not the first time it had happened. Windows 3.1 had multimedia support that effectively required 386+ MHz speeds (20MHz and higher), so I still feel that 3.1 was really not the best choice for 286 systems.
 
8x6 photo scanned with a logitech hand scan 256 set to 200 DPI (in two passes and stitched), which produced a (pulls out a calculator) ~2MB file. 10MHz 286 ran Windows 3.0 and had 640K + 2MB extended. Word for Windows was not happy. Had to split the resulting files onto floppies using a DOS utility and transfer to a 386-16 with 4MB RAM where I was able to print it.

286 protected mode did not magically grant better memory handling; total addressable increased to 16MB of RAM, but segment size was still 64K.

Was it memory exhaustion? Too slow a clock speed? Can't go back in time to find out, but I feel the answer is moot, because it was not the first time it had happened. Windows 3.1 had multimedia support that effectively required 386+ MHz speeds (20MHz and higher), so I still feel that 3.1 was really not the best choice for 286 systems.
It appears your issue was lack of memory. The image file alone consumed 2MB of your 2.6MB. With 4MB I don't expect your 286 to match the speed of a 386 but I would expect it to have been usable.
 
286 protected mode did not magically grant better memory handling; total addressable increased to 16MB of RAM, but segment size was still 64K.

FWIW, running Windows 3.x on a 386 didn't really do much to fix that problem. My vague understanding is that Windows 3.x has some *very* limited mechanisms for allocating "huge" data objects for programs specifically compiled to access them, but outside of that all "Native" Windows support is still entirely 16 bit and code segments are still 64K.(*) 386 support was mostly useful for providing *much* better DOS support/multitasking, and enabling the use of more physical memory than 16MB in 3.1. (Even though the 286 only has a 24 bit address bus the protected mode segment structure allows a "virtual addressing" space of 1GB, so even in Standard mode 3.1 can break the 16MB barrier. Not that a lot of people had more than 16MB when Windows 3.x was relevant.)

(*)Win32s programs and 32 bit VxDs are a whole other can of worms; yes, technically using them you can write programs that run under Windows 3.x using the 386 "flat" memory model internally, but so far as I'm aware very few mainstream applications were ever written using Win32s that could actually run under 3.1. Digging around it looks like Photoshop 3.0/4.0 might be about it.

Anyway, considering Virtual Memory wasn't a thing in Standard mode I think it's fair to guess that asking a computer with just 2.625MB of RAM to behave gracefully with a 2MB image file in MS Word was probably pushing it.
 
Windows 3 would lock multiple data segments making a huge data structure possible. The huge data works similarly to the huge model under OS/2 1.x. It is a bit slow doing the jump between segments. This will not work well with Windows 2 because there will not very little free conventional memory around the huge data structure and basically nothing else can be in memory.

A monochrome image of 8" x 6" at 200 DPI would only need 240K and would be workable with Winword 1 under Windows 2 but easy under Windows 3.
 
FWIW, running Windows 3.x on a 386 didn't really do much to fix that problem. My vague understanding is that Windows 3.x has some *very* limited mechanisms for allocating "huge" data objects for programs specifically compiled to access them, but outside of that all "Native" Windows support is still entirely 16 bit and code segments are still 64K.(*) 386 support was mostly useful for providing *much* better DOS support/multitasking, and enabling the use of more physical memory than 16MB in 3.1. (Even though the 286 only has a 24 bit address bus the protected mode segment structure allows a "virtual addressing" space of 1GB, so even in Standard mode 3.1 can break the 16MB barrier. Not that a lot of people had more than 16MB when Windows 3.x was relevant.)

(*)Win32s programs and 32 bit VxDs are a whole other can of worms; yes, technically using them you can write programs that run under Windows 3.x using the 386 "flat" memory model internally, but so far as I'm aware very few mainstream applications were ever written using Win32s that could actually run under 3.1. Digging around it looks like Photoshop 3.0/4.0 might be about it.

Anyway, considering Virtual Memory wasn't a thing in Standard mode I think it's fair to guess that asking a computer with just 2.625MB of RAM to behave gracefully with a 2MB image file in MS Word was probably pushing it.
I'm not sure if this is the same issue you're discussing but I recall Windows 3.x having a 64KB heap to track memory usage. Due to the 64KB size of this heap it wasn't uncommon for Windows to "run out of memory" despite there being sufficient free RAM.
 
It was indeed an 8-bit grayscale image, not a 1-bit monochrome image. 2MB. (Unless you meant that krebizfan needed to clarify something)

Nah, the “clarification“ was just you confirming that’s what it was, for sure.

My first scanner was some rotgut Marstek thing that on the box claimed to do grayscale but it in fact only did single bit monochrome and the software could “blur” the dithering into grayscale after the fact. It was so bad at it that after I upgraded from a 286 (with DOS software) to a 486 I used to just use the “raw” mode at 400 DPI and do the fake grayscale conversion myself in Corel Photo-Paint. Under the right conditions you could end up with a surprisingly adequate result but the effective resolution was only around ”VGA”. (I’ll be generous and call it something around 72-100 dpi.)

The 400 DPI blur step gave a 33mhz 486 a pretty good workout. I can’t imagine shoving around 2MB bitmaps on a 286 being any fun at all. (My 286 only had 1MB so I was pretty much stuck with either doing postage-stamp size scans with the fake grayscale or sticking to scanning mono line art.)
 
So I take it that the task at hand would not have worked well on this machine at all. Not sure why this makes Windows 3.1 a particularly bad choice, then.

No task exceeding a machine's capabilities will work well on that machine.
 
I think my point was that modern hobbyists install impractical software on their machines because people tend to disassociate software from hardware when they try to remember back 30+ years. They remember doing real productive work on Windows 3.1, but they don't always remember or consider the machine they ran it on. Windows 3.1 was released in 1992, so most people who have fond memories of it working nicely were likely running it on 386+ systems.

You can TECHNICALLY install it on an 8MHz IBM AT, as the OP was attempting to do, sure. But it's not a good experience for doing real work, no matter how much RAM you put in it. 8 MHz is 8 MHz, and a typical 286 even with sufficient RAM will be slow in other ways (like an MFM hard disk) and it's just not going to be pleasant.

These are the thoughts behind my statement that Windows 3.1 is not really an appropriate choice for 286-class systems. Most people upgraded to a 386 or 486 when they had/wanted to run 3.1 (or, if they couldn't afford to, stuck with DOS).
 
These are the thoughts behind my statement that Windows 3.1 is not really an appropriate choice for 286-class systems. Most people upgraded to a 386 or 486 when they had/wanted to run 3.1 (or, if they couldn't afford to, stuck with DOS).

What blows my mind is how many people seem to want to run Windows 3.0 on XTs these days. I mean, I guess in theory people did *try* doing that back in the day, 1990 was kind of a weird time, things were moving so fast that could still technically go to at least some computer stores and come home with a brand new turbo XT and a copy of Windows 3.0 in the same bag, but anyone who did that would have been *brutally* disappointed by the results. Whether it was buying a new machine or running it on the one they already had I don't think anybody used Windows 3.0 on XT in real life for production work.

Anyway, yeah, I would make a wild guess that (insert "some very large percentage" here) of people running Windows 3.1 had it because it came bundled on their new computer, and by 1992 that computer would be, at minimum, a fast 386SX. (That was the bottom-feeder base-grade computer in 1992; you might find some mail order outfit willing to sell you a 286 motherboard but no "real" vendor had them anymore. They were *mostly* phased out by the time Windows 3.0 came out two years earlier, for that matter; the 286s were still there in the ad footnotes but the price difference from an SX was getting to sub-$200.) Heck, Microsoft started getting *really* aggressive with bundling even with Windows 3.0, so I have no idea how many copies of that were sold to use on pre-existing computers vs. just kind of organically showing up on people's hard drives; the articles out there say that Microsoft "sold" ten million licenses to Windows 3.0 in the two years it was out before 3.1 appeared, but I would genuinely like to know how many of those copies were sold over the counter.
 
What blows my mind is how many people seem to want to run Windows 3.0 on XTs these days.

Agreed. It's just not practical or useful on that platform. Maybe it's for odd bragging rights or something? The bigger brag IMO is GeoWorks Ensemble on an XT, because it's actually useful and technically more impressive.

Somewhat ironically, the only benefit I get out of Windows 3.0 on XTs is to demonstrate the differences between odd graphics cards (M24, M24+DEB, Plantronics, Quadcolor, Tandy TL, Hercules InColor, etc.) because drivers mostly exist for all of those uncommon cards, and the starting Program Manager screen (and Write's sample document) make for good test plates.
 
I think my point was that modern hobbyists install impractical software on their machines because people tend to disassociate software from hardware when they try to remember back 30+ years. They remember doing real productive work on Windows 3.1, but they don't always remember or consider the machine they ran it on. Windows 3.1 was released in 1992, so most people who have fond memories of it working nicely were likely running it on 386+ systems.
It gets slightly before my own time (486/WfW 3.11 era) but was not much of the impetus to move to Windows was not just the refined UI in Windows 3.0 but the ability to multitask windowed DOS applications?

That seems as much a limiting factor to running Windows 3.x on a 286 as speed. Even a fancy 286-16 or 286-20 with 4MB or more RAM can't get around it.

I get the impression that in the XT/AT, pre-Windows 3.0 era, any Windows software also had a DOS equivalent that was faster and required less memory. Maybe with a few exceptions like PageMaker?
 
I think my point was that modern hobbyists install impractical software on their machines because people tend to disassociate software from hardware when they try to remember back 30+ years. They remember doing real productive work on Windows 3.1, but they don't always remember or consider the machine they ran it on.
Which is fine, because we are modern hobbyists today and not 30 years ago, and we don't need to do the same tasks on the same machines as we did 30 years ago. You yourself have been involved in writing software for old machines which weren't imaginable when those machines were new.

What I see is that Windows 3.1 runs just fine on my 286/12 with 4 MB RAM. It is not unacceptably slow, and doesn't struggle too hard. Contrast that with OS/2 1.30, which feels much slower and is far less responsive. Sure, a 286 cannot compete with a 486/33, but it cannot that in DOS, either.

And if I think that something is too slow, I just use a faster machine. I am not chained to slow machines.

It gets slightly before my own time (486/WfW 3.11 era) but was not much of the impetus to move to Windows was not just the refined UI in Windows 3.0 but the ability to multitask windowed DOS applications?
Probably, although that requires a 386 on basically any platform. A 286 cannot really virtualize the video hardware, so DOS applications own the video hardware and run full screen. (Which is also true for OS/2.) I also believe that DOS background tasks are simply stopped in Standard Mode, but haven't verified.

I get the impression that in the XT/AT, pre-Windows 3.0 era, any Windows software also had a DOS equivalent that was faster and required less memory. Maybe with a few exceptions like PageMaker?
Most likely. I haven't tried Windows 3.0 on an XT, but it feels like there is very little Real Mode-compatible software for Windows which does not run in 2.x. So Windows 3.0 on an XT seems more like a tech demo to me.
 
I think my point was that modern hobbyists install impractical software on their machines because people tend to disassociate software from hardware when they try to remember back 30+ years. They remember doing real productive work on Windows 3.1, but they don't always remember or consider the machine they ran it on. Windows 3.1 was released in 1992, so most people who have fond memories of it working nicely were likely running it on 386+ systems.

You can TECHNICALLY install it on an 8MHz IBM AT, as the OP was attempting to do, sure. But it's not a good experience for doing real work, no matter how much RAM you put in it. 8 MHz is 8 MHz, and a typical 286 even with sufficient RAM will be slow in other ways (like an MFM hard disk) and it's just not going to be pleasant.

These are the thoughts behind my statement that Windows 3.1 is not really an appropriate choice for 286-class systems. Most people upgraded to a 386 or 486 when they had/wanted to run 3.1 (or, if they couldn't afford to, stuck with DOS).
Once again I will disagree. I did real work on my 286 based system. Granted it was 12MHz instead of 8MHz but it ran everything I needed it to just fine. Specifically it was this one:

PACKARD BELL LEGEND 1 286 DESKTOP COMPUTER MODEL PB686 40 GB HDD

Maybe it was a bit faster because it was a later design than the AT?
 
Back
Top