• Please review our updated Terms and Rules here

IBM PC/AT Memory Allocation Question

SteveG

Experienced Member
Joined
Sep 30, 2020
Messages
151
Location
Millmeece Near Stafford UK
I am trying to load Windows 3.1 onto my IBM PC/AT.

I get error when I load the Windows 3.1 Setup Disk.

ERROR: no available extended memory was found .
XMS driver not installed.

I assume Windows 3.1 needs more than 640K of memory to load. Is that correct?

When I run check-it on the AT I get a memory map that indicates that some reserved memory is available (see photo).

Is it possible to re-allocate this reserved memory so that Windows 3.1 can load?


035994FF-3829-49C2-AB94-D082D7BE0074.jpeg
 
Last edited:
Extended memory exists beyond 1 MB and the screen shot show no extended memory. To run Windows 3.1 at anything resembling a decent speed, you would need an extended memory card with at least 2 MB added to the system.
 
You need to load himem.sys in your config.sys, if you haven't already. There is a version that comes with windows, and depending on your DOS version there is probably a version there too. I'd load whatever is newer, so if you are running DOS 6.22, use that version of himem.sys
 
What Version of Windows would be suitable to install on this AT?

I already have Windows 1.01 loaded onto a 5150 and a 5160.

I was hoping to install a Version of Windows that would typically be installed on an AT back in the day.
 
An AT came out in 1984. Windows wasn't around until 1985, and wasn't very popular until the version 3.x days, at which point it became mandatory, almost. Those version came out in the 1990s, and by that time an AT was kind of old. Widows 3.0 and 3.1 are better on 386 and newer. They will run on a 286, but they will be a little slow and some programs might need more memory than a typical 286 has.
 
You need to load himem.sys in your config.sys, if you haven't already. There is a version that comes with windows, and depending on your DOS version there is probably a version there too. I'd load whatever is newer, so if you are running DOS 6.22, use that version of himem.sys
I have version 3.03 of DOS loaded.

This has no HIMEM.SYS but it does have RAMDRIVE.SYS is this an equivalent?
 
Nope, they are different, himem is the XMS driver that windows is complaining about in that error message. RAMDRIVE is used for creating a virtual drive out of ram.

There is a version of himem bundled with windows. Use that one. Edit you config.sys and as the first line, put

DEVICE=C:\WINDOWS\HIMEM.SYS

Then reboot and see if there were any errors
 
I am trying to use a DEC Ethernet card in this 286.

Do you know what version of DOS will support this card.

I may end up having to install and dual boot something like SCO Unix to use this to load software quickly onto the hard drive.
 
Nope, they are different, himem is the XMS driver that windows is complaining about in that error message. RAMDRIVE is used for creating a virtual drive out of ram.

There is a version of himem bundled with windows. Use that one. Edit you config.sys and as the first line, put

DEVICE=C:\WINDOWS\HIMEM.SYS

Then reboot and see if there were any errors
Catch 22
I assume that I will need windows already installed to use this HIMEM.SYS
 
Oh I'm sorry I misunderstood the error. That message is windows TRYING to load the himem.sys, but it cannot because there is no XMS physically installed (or at least not configured) in your computer. Normally an AT has 512K on the motherboard, and a common config was 128K on an add-in board to get the full 640K. Sometimes this 128K would be back filled from a much larger memory board that can also do XMS or EMS, something like the Intel Above Board, IBM 512KB/2MB Memory Expansion Option, an AST RAMPage 286, or a DFI RAMBANK AT. Do you have any cards like that installed? If you do have such a board installed, it might need to be reconfigured for XMS, and the IBM Diagnostics Setup routine might need to be executed to let the system know how much XMS is configured. Unfortunately most of this is manual process of configuring dip switches on the card, but some later cards also have program you can run to configure them.

It’s mandatory for 3.1. Older versions might work with just 640K.

IMG_3629.jpeg
 
I am trying to use a DEC Ethernet card in this 286.

Do you know what version of DOS will support this card.

I may end up having to install and dual boot something like SCO Unix to use this to load software quickly onto the hard drive.
If there is a packet driver for your card, you should be able to use it with mTCP on DOS 2.1 and later: http://brutmanlabs.org/mTCP/
 
If I remember correctly Windows 3.1 removed the real mode feature of Windows 3.0. Its memory requirements are at least 1MB which it appears is unavailable in your system. You could run Windows 3.0 on it.

As for how well an AT class system runs Windows 3.x I ran it on my Packard Bell, 12MHz 80286 system with 3MB memory (2MB extended configuration) and I found its performance more than acceptable.
 
What Version of Windows would be suitable to install on this AT?
Likely candidates are Windows/286, possibly Windows 3.0 in Real Mode.

As said before, Windows 3.1 requires extended memory, which you don't have.

Widows 3.0 and 3.1 are better on 386 and newer. They will run on a 286, but they will be a little slow and some programs might need more memory than a typical 286 has.
On my 286/12 with 4 MB RAM performance is quite acceptable, but less so on a 5170 at 6 MHz. Memory size is important, as paging is not available on a 286.

Most Windows 3.x software, especially newer stuff, does not work in Standard Mode. For example, Microsoft Works 2.0 is fine, but Works 3.0 won't even start. I've also had some audio issues (system hangs) likely related to the system being barely fast enough.

I may end up having to install and dual boot something like SCO Unix to use this to load software quickly onto the hard drive.
SCO Unix requires a 386 at least. You can run the 286 versions of Xenix, but they don't support any networking beyond UUCP. The closest you get would be Minix 2.0, which only supports few network cards. To me, Minix is far more usable than Xenix, but I was impressed how well Xenix could handle high system load (simultaneously formatting a floppy, doing a serial kermit file transfer, running a snake screen-saver and a serial login session).
 
I have loaded Windows (286) v 2.11.

It runs fine and with the simple test I have done so far and is surprisingly fast.

It’s probably quicker than 3.1 on my PS2 🤭
 
This is an appropriate choice for an IBM AT 5170, I'm glad you got it working. Windows 3.x and higher were really intended for 386+ systems, and need them to provide acceptable results.
I have to take issue with the latter part of your statement. As already mentioned I ran Windows 3.0 and 3.1 (both in standard mode) on a 12MHz 826 with 3MB of RAM (1MB motherboard, 2MB extended RAM on an ISA card). I was more than happy with the performance with it.
 
I don't know what Trixter's experience was but the Windows 2.x scanners I used provided smaller default images than the Windows 3.x versions. Of course, it was possible do monochrome scans under Win 3 and alleviate the problem.

The benchmarks I remember was that once the system had enough memory not to require discarding code segments, Windows 3 was a few percent faster than Windows 2 on the same hardware. There was a range of memory that was too limited for Windows 3 but perfect for Windows 2 that led to Windows 2 being faster. Then there were the very memory limited conditions where it was just going to discard and reload continuously and the system would be unusable. In some respects, the 386 would have a marginal advantage in that it could retain just the pages needed while swapping out the rest of the segment using the RAM more efficiently. The 386's big advantage was being two or three times faster than the typical fast AT or clone but the very fast late 286s with large memory motherboards provided a great value for the year or so before Intel made the 386SC cheap.
 
Back
Top