VOGONS


First post, by boggit

User metadata
Rank Newbie
Rank
Newbie

Hi all!

  • Today, I set up my new system: An Acer 386SX-33mhz using [this motherboard] with 8 mb RAM (two 4 mb SIMM cards).
  • I am using a 128 mb compact flash card for hard drive, installing PC DOS 7.01 (aka PC DOS 2000) to use for operating system.
  • I intend to use this system for playing some late '80s/early '90s games, and I thus need to get beyond the 640k barrier. However, what I knew about memory management back when I was a wee youngster in the mid-'90s, I have long since forgotten, and I am grasping to comprehend terms like UMB, high memory, XMS and EMS.
  • I ran into my first problem almost right away, when running PC DOS 7.01's RAMSETUP.EXE, having it put himem.sys and ems386 into my config.sys. On startup, HIMEM.SYS reports an error:

Unable to control A20 line! XMS Driver not available.

  • I googled around a bit in search for a solution, but didn't really stumble upon many other users (here on Vogons or elsewhere) with a similar enough context (or relevant enough solutions) for me.
  • CheckIt Pro confirms that I am in Real mode, with A20 off:

LApJcAm.jpg

  • I've fiddled around a bit in CMOS Setup, but cannot find any option explicitly dealing with access to the A20 gate:

Basic CMOS setup:
IBIyjD2.jpg
Advanced CMOS setup:
PM4ge2s.jpg

This is what my SIMM memory cards look like:

4mH9cW6.jpg

Some memory-related screens from Norton System Information:

gHUim7j.jpg

tqArAK3.jpg

So, what should I do to get high memory/XMS working? Or is that even the right thing to pursue? Are there better ways for me to make use of my 8 mb of RAM?

Reply 2 of 52, by boggit

User metadata
Rank Newbie
Rank
Newbie
jakethompson1 wrote on 2024-03-05, 22:57:

You may need to supply a /machine: switch to himem.sys
/machine:2 is a PS/2
/machine:6 is an Acer 1100

Yeah, I've tried machine 1, 2, 3, 4 and 6. Most of them resulted in me achieving A20 control, but after a message to that effect, the computer hanged on startup, and I had to power cycle and run a boot floppy to get around the fauly config.sys.

But yeah, maybe it's just a matter of trying enough different "machine:N" settings, one by one, until I find one that works and doesn't make the computer hang?

Reply 5 of 52, by boggit

User metadata
Rank Newbie
Rank
Newbie

Correction: I *am* able to run himem.sys, seemingly with many handlers (defaulting to 1) with the A20 gate, which gives me XMS.

  • What seems to make the computer hang is rather emm386.exe. How big of a problem is this?
  • Furthermore, DOS reports that HMA is not accessible and that DOS is read into the low memory area.
  • Also, CheckIt Pro still reports "A20 Off".
kingcake wrote on 2024-03-06, 00:44:

Does the board have battery damage around the keyboard controller?

Nope!

Reply 6 of 52, by mkarcher

User metadata
Rank l33t
Rank
l33t
boggit wrote on 2024-03-06, 09:32:
Correction: I *am* able to run himem.sys, seemingly with many handlers (defaulting to 1) with the A20 gate, which gives me XMS. […]
Show full quote

Correction: I *am* able to run himem.sys, seemingly with many handlers (defaulting to 1) with the A20 gate, which gives me XMS.

  1. What seems to make the computer hang is rather emm386.exe. How big of a problem is this?
  2. Furthermore, DOS reports that HMA is not accessible and that DOS is read into the low memory area.
  3. Also, CheckIt Pro still reports "A20 Off".

Regarding your first item: I don't think EMM386 is the root cause of your problem. Instead, EMM386 is the first program that actually relies on working A20 control. If A20 control does not work, EMM386 is going to crash your system.

Regarding the second points: It seems that DOS notices that the A20 control provided by HIMEM is not actually working, and skips loading DOS into the HMA (which only works if A20 control is working). This prevents a system crash caused by DOS trying to put stuff into the HMA that would end up overwriting interrupt handler and BIOS variables. It seems the "DOS=HIGH" functionality does a sanity check while EMM386 just relies on working A20 control.

Regarding the third observaton: A20 Off is normal as long as the HMA is not in use and no EMM386-type virtualization manager is running, so this is a consequence of your second observation.

Reply 7 of 52, by boggit

User metadata
Rank Newbie
Rank
Newbie
mkarcher wrote on 2024-03-06, 09:44:
Regarding your first item: I don't think EMM386 is the root cause of your problem. Instead, EMM386 is the first program that act […]
Show full quote
boggit wrote on 2024-03-06, 09:32:
Correction: I *am* able to run himem.sys, seemingly with many handlers (defaulting to 1) with the A20 gate, which gives me XMS. […]
Show full quote

Correction: I *am* able to run himem.sys, seemingly with many handlers (defaulting to 1) with the A20 gate, which gives me XMS.

  1. What seems to make the computer hang is rather emm386.exe. How big of a problem is this?
  2. Furthermore, DOS reports that HMA is not accessible and that DOS is read into the low memory area.
  3. Also, CheckIt Pro still reports "A20 Off".

Regarding your first item: I don't think EMM386 is the root cause of your problem. Instead, EMM386 is the first program that actually relies on working A20 control. If A20 control does not work, EMM386 is going to crash your system.

Regarding the second points: It seems that DOS notices that the A20 control provided by HIMEM is not actually working, and skips loading DOS into the HMA (which only works if A20 control is working). This prevents a system crash caused by DOS trying to put stuff into the HMA that would end up overwriting interrupt handler and BIOS variables. It seems the "DOS=HIGH" functionality does a sanity check while EMM386 just relies on working A20 control.

Regarding the third observaton: A20 Off is normal as long as the HMA is not in use and no EMM386-type virtualization manager is running, so this is a consequence of your second observation.

Interesting. Thanks for your input!

Any suggestions on what to do?

Reply 9 of 52, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

I am seeing internal cache disabled on the advanced screen, does that have the effect of locking it into 8088 mode basically?

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 10 of 52, by boggit

User metadata
Rank Newbie
Rank
Newbie
BitWrangler wrote on 2024-03-06, 14:31:

I am seeing internal cache disabled on the advanced screen, does that have the effect of locking it into 8088 mode basically?

Not sure, but it is not possible to configure it to anything other than "disabled".

Reply 11 of 52, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Yeah sorry, not needed for regular 386, my brain got stuck in 486 mode.

Sounds weird, but try a different keyboard if you've got one. The keyboard controller gets involved with the A20 line handling and if there's anything a bit wrong on the keyboard side, it might be tripping it up.

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 13 of 52, by boggit

User metadata
Rank Newbie
Rank
Newbie
BitWrangler wrote on 2024-03-06, 14:41:

Yeah sorry, not needed for regular 386, my brain got stuck in 486 mode.

Sounds weird, but try a different keyboard if you've got one. The keyboard controller gets involved with the A20 line handling and if there's anything a bit wrong on the keyboard side, it might be tripping it up.

Yeah, I was considering that. Unfortunately, I have no other keyboard with an AT connector lying around.

MikeSG wrote on 2024-03-06, 14:44:

You could try to run something that requires high memory as a test.

I did try FastDoom, which wouldn't start because of the A20 error.

MikeSG wrote on 2024-03-06, 14:44:

Also - In your BIOS settings, "Slow Refresh" actually adds another 5% performance if you use late model 2 or 3 chip DRAM

Ok! Not sure which models these SIMM cards are (maybe you can tell from the picture?), but I'll try that as well. I did turn on slow refresh to see if it made any difference regarding the A20 gate, but alas.

EDIT: Currently installing FreeDOS to see if that works better. Man, this is a lengthy installation process!

Reply 15 of 52, by boggit

User metadata
Rank Newbie
Rank
Newbie
MikeSG wrote on 2024-03-06, 15:16:

Your current RAM are 9 chip and they usually require fast refresh periods, but two or three chip RAM are fine with longer periods. So you can enable Slow Refresh on two/three chip DRAM.

Ok, so... I shouldn't enable Slow Refresh?

boggit wrote on 2024-03-06, 14:59:

Currently installing FreeDOS to see if that works better.

Alas:

IY2tSVV.jpg

Reply 16 of 52, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Hmmmm... wondering if it's a general memory problem...

So I went to the motherboard page you linked and noticed the memory banks are labelled in reverse order to what you expect, counting in 0, 1, 2, 3, from the edge of the board. Older boards are not so forgiving of the "stick the memory in anywhere" thing. Maybe move the 2 SIMM to the other two sockets and see if it behaves better.

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 17 of 52, by boggit

User metadata
Rank Newbie
Rank
Newbie
BitWrangler wrote on 2024-03-06, 15:42:

Hmmmm... wondering if it's a general memory problem...

So I went to the motherboard page you linked and noticed the memory banks are labelled in reverse order to what you expect, counting in 0, 1, 2, 3, from the edge of the board. Older boards are not so forgiving of the "stick the memory in anywhere" thing. Maybe move the 2 SIMM to the other two sockets and see if it behaves better.

Hmm, good point!

If that is indeed the issue, I'm surprised that the system boots up at all. I'll screw the thing open and poke around.

Reply 18 of 52, by boggit

User metadata
Rank Newbie
Rank
Newbie
BitWrangler wrote on 2024-03-06, 15:42:

Hmmmm... wondering if it's a general memory problem...

So I went to the motherboard page you linked and noticed the memory banks are labelled in reverse order to what you expect, counting in 0, 1, 2, 3, from the edge of the board. Older boards are not so forgiving of the "stick the memory in anywhere" thing. Maybe move the 2 SIMM to the other two sockets and see if it behaves better.

Nope, that was not it! Switched placed for the SIMM cards and got ominous beeps when trying (and failing) to start the system up.

Reply 19 of 52, by BitWrangler

User metadata
Rank l33t++
Rank
l33t++

Or it reveals something, having the SIMM in banks 2 and 3, does an end run around damaged memory addressing somehow that won't let EMM work. If info page is correct. Haven't got 2x256kB 30 pin around have you? might help bracket what lines to look at if they work in bank 0 and 1.

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