VOGONS


First post, by tyuper

User metadata
Rank Newbie
Rank
Newbie

I would like to know if there's anyone who encountered the problem that manifests with full system lockup after entering command to start a game / an application when XMGR or HIMEMX are in use and MS-DOS is in HMA. At least that is happening on my two PC Chips A101's, one being in my possession for a long time and second I got recently in pristine condition.

With XMGR the only parameters that aren't causing aforementioned issue are /B (boot mode) and /N24 (number of XMS handles) and increasing /Nxx to anything above or just leaving without this parameter is a certain freeze. HIMEMX is out of question, no parameters that this manager has can dodge the issue. With one difference - while XMGR gives absolutely no hint, HIMEMX informs about "A20 hardware error". So I went with multimeter to explore motherboard's traces and discovered that A20 pin from HT6542B (keyboard controller) goes high after DOS boot-up and it goes low few moments later when ENTER is pressed to run a program. That doesn't happen with HIMEM, which BTW works perfectly. So I started to dug deeper and put this onto schematic:
file.php?id=131114
I wonder if that SMIACT is the culprit, because on multimeter (cheap thing without True RMS) it shows ~3.5V, so it's surely enabling and disabling OR gate. Also couldn't find any schematics for Socket 7 motherboard, so no knowledge about how this A20 circuit is implemented on other motherboards. Even Intel datasheets don't tell much and starting with PIIX4 the logic is much simpler (there's A20GATE input from keyboard controller and A20M# output to CPU).

If anyone has PC Chips Socket 7 mobo with Intel chipset, then please let me know if those XMS managers work on your setup! Thanks!

Attachments

  • Filename
    A20 logic.png
    File size
    10.98 KiB
    Downloads
    No downloads
    File license
    Public domain

Reply 1 of 4, by jskyboo

User metadata
Rank Newbie
Rank
Newbie

Can you post your config.sys? When using XMGR with /B are you remembering to load XMGR twice? One before and one after loading EMM386(or alternative). Example from the readme:

DOS=HIGH,UMB
DEVICE=C:\BIN\XMGR.SYS /B /N24 ;24 Handle XMGR "boot"
DEVICE=C:\BIN\JEMM386.EXE I=B000-B7FF ...
DEVICEHIGH=C:\BIN\XMGR.SYS ;Loads the runtime XMGR

Reply 2 of 4, by tyuper

User metadata
Rank Newbie
Rank
Newbie
jskyboo wrote on 2022-02-22, 21:40:
Can you post your config.sys? When using XMGR with /B are you remembering to load XMGR twice? One before and one after loading E […]
Show full quote

Can you post your config.sys? When using XMGR with /B are you remembering to load XMGR twice? One before and one after loading EMM386(or alternative). Example from the readme:

DOS=HIGH,UMB
DEVICE=C:\BIN\XMGR.SYS /B /N24 ;24 Handle XMGR "boot"
DEVICE=C:\BIN\JEMM386.EXE I=B000-B7FF ...
DEVICEHIGH=C:\BIN\XMGR.SYS ;Loads the runtime XMGR

Yes, with EMM386 and XMGR's in this configuration there is no signs of issue, but drawback is the CPU goes into protected mode. So only XMGR loaded twice, together with EMM386 or single XMGR /B /N24 are working correctly when DOS is in HMA.

Reply 3 of 4, by jskyboo

User metadata
Rank Newbie
Rank
Newbie
tyuper wrote on 2022-02-23, 17:24:

Yes, with EMM386 and XMGR's in this configuration there is no signs of issue, but drawback is the CPU goes into protected mode. So only XMGR loaded twice, together with EMM386 or single XMGR /B /N24 are working correctly when DOS is in HMA.

Yeah if you want to stay in real mode I'm not sure you want to use "/B /N24". Have you tried using /PN or /PA? I haven't had to mess with that but it might help.

      /PA    Specifies use or non-use of PS/2 Port 92h logic to handle the
/PN "A20" line. /PA means "Always" use Port 92h logic. /PN
means "Never" use it and handle "A20" via normal keyboard-
port logic. Without /P, XMGR "asks the BIOS" if Port 92h
hardware is present. Keyboard-port logic is used if not.
If "A20" is found "on" as XMGR loads, XMGR does not handle
it at all.

Reply 4 of 4, by tyuper

User metadata
Rank Newbie
Rank
Newbie

So the only reasonable alternative is to use HIMEM and boot mode of XMGR uses twice as much memory as HIMEM, if it's loaded once and without EMM386.
The /PN is always used, because motherboard doesn't have port 92h implemented (odd for motherboard from 1996 not having that one feature derived from IBM PS/2). Using /PA results in an error and XMGR refusing to load.