Discussion:
A20 always on
(too old to reply)
T. Ment
2019-06-26 15:52:36 UTC
Permalink
Jack's XMGR.SYS works on some of my computers, but one has a BIOS that
sets A20 on, and XMGR complains. There is no BIOS option to change A20.
It's a K7S5A motherboard with the 030811 BIOS.

I suppose I could write a device driver to turn A20 off, before XMGR
sees it. But I wonder if that might harm anything else, since BIOS has
it on, for some unknown reason.

The BIOS has an option for DOS flat mode, which presumably requires A20
on, but it's disabled. Seems like that option would control A20, but it
makes no difference, disabled or not, A20 is always on.

MS-DOS himem.sys works with A20 always on, and I think himemx.exe can
work with that too. Only XMGR has the problem. But XMGR claims to work
around UMBPCI bus master DMA problems, so that's a reason to try XMGR.
Rod Pemberton
2019-06-27 07:58:05 UTC
Permalink
On Wed, 26 Jun 2019 15:52:36 +0000
Post by T. Ment
Jack's XMGR.SYS works on some of my computers, but one has a BIOS that
sets A20 on, and XMGR complains. There is no BIOS option to change
A20. It's a K7S5A motherboard with the 030811 BIOS.
I suppose I could write a device driver to turn A20 off, before XMGR
sees it. But I wonder if that might harm anything else, since BIOS has
it on, for some unknown reason.
The BIOS has an option for DOS flat mode, which presumably requires
A20 on, but it's disabled. Seems like that option would control A20,
but it makes no difference, disabled or not, A20 is always on.
MS-DOS himem.sys works with A20 always on, and I think himemx.exe can
work with that too. Only XMGR has the problem. But XMGR claims to work
around UMBPCI bus master DMA problems, so that's a reason to try XMGR.
Yes, disabling DOS flat mode in your BIOS should turn A20 off.

HIMEM.SYS makes it appear that A20 is always on.

Are you loading HIMEM.SYS and XMGR.SYS separately or together?

How are you verifying that A20 is enabled?

I.e., you must unload all XMS managers to check A20. Then, you must
check both the keyboard port and PS/2 port for A20 being enabled, as
each A20 method operates independently. Technically, IIRC, there are
about 17 different A20 enable methods, including a BIOS call and
keyboard command, but those two are the most common. You can search
for past posts on this topic on alt.os.development.

So, what code or app are you using to verify A20 is enabled? I.e., your
own? XMGR? ...

I've only used HIMEM.SYS and HIMEMX. HIMEMX works great here with a
post '96 BIOS that has E820h.


Rod Pemberton
--
Once upon a time, many decades ago in a place far away, humble people
sought their freedom, and lost. "Ideas are bulletproof."
T. Ment
2019-06-27 15:13:40 UTC
Permalink
Post by Rod Pemberton
Yes, disabling DOS flat mode in your BIOS should turn A20 off.
That's what I thought. But it does not. How do I know? Because XMGR.SYS
tells me so. Must be a BIOS bug. The K7S5A had many BIOS updates.

If it's a BIOS bug, seems like I could safely turn it off with my own
code before loading XMGR.SYS. But that's just my wild guess. Who knows
what might happen.
Post by Rod Pemberton
HIMEM.SYS makes it appear that A20 is always on.
Are you loading HIMEM.SYS and XMGR.SYS separately or together?
Totally different configs. I only use one or the other, never both.
Post by Rod Pemberton
How are you verifying that A20 is enabled?
I trust what Jack's XMGR.SYS tells me. He doesn't complain about my
other computers. Only the K7S5A.
Post by Rod Pemberton
I.e., you must unload all XMS managers to check A20. Then, you must
check both the keyboard port and PS/2 port for A20 being enabled, as
each A20 method operates independently. Technically, IIRC, there are
about 17 different A20 enable methods, including a BIOS call and
keyboard command, but those two are the most common. You can search
for past posts on this topic on alt.os.development.
So, what code or app are you using to verify A20 is enabled? I.e., your
own? XMGR? ...
As stated above, XMGR.
Post by Rod Pemberton
I've only used HIMEM.SYS and HIMEMX. HIMEMX works great here with a
post '96 BIOS that has E820h.
I tried HIMEMX, but could not get it working with Windows 3.1. Strange
that it does work with Windows 98 on a computer with 2GB ram, with the
ram limiting parameter:


dos=high
device=c:\himemx.exe /max=1024000
device=d:\windows\setver.exe
device=d:\windows\command\ansi.sys
T. Ment
2019-06-27 15:19:39 UTC
Permalink
Post by Rod Pemberton
How are you verifying that A20 is enabled?
I.e., you must unload all XMS managers to check A20. Then, you must
check both the keyboard port and PS/2 port for A20 being enabled, as
each A20 method operates independently. Technically, IIRC, there are
about 17 different A20 enable methods, including a BIOS call and
keyboard command, but those two are the most common.
Sounds like a barrel of fun.
Post by Rod Pemberton
You can search for past posts on this topic on alt.os.development
I don't know if I'm ready for that yet. But thanks for the pointer.
wolfgang kern
2019-06-27 19:24:21 UTC
Permalink
Post by T. Ment
Jack's XMGR.SYS works on some of my computers, but one has a BIOS that
sets A20 on, and XMGR complains. There is no BIOS option to change A20.
It's a K7S5A motherboard with the 030811 BIOS.
I suppose I could write a device driver to turn A20 off, before XMGR
sees it. But I wonder if that might harm anything else, since BIOS has
it on, for some unknown reason.
The BIOS has an option for DOS flat mode, which presumably requires A20
on, but it's disabled. Seems like that option would control A20, but it
makes no difference, disabled or not, A20 is always on.
MS-DOS himem.sys works with A20 always on, and I think himemx.exe can
work with that too. Only XMGR has the problem. But XMGR claims to work
around UMBPCI bus master DMA problems, so that's a reason to try XMGR.
I don't know your motherboard but if it's not very old it could just be
like the ones I bought (from MSI) during the last few years:
there's no more hardware to disable A20 on this boards [always on].
__
wolfgang
T. Ment
2019-08-17 16:02:33 UTC
Permalink
Post by T. Ment
Jack's XMGR.SYS works on some of my computers, but one has a BIOS that
sets A20 on, and XMGR complains. There is no BIOS option to change A20.
It's a K7S5A motherboard with the 030811 BIOS.
MS-DOS himem.sys works with A20 always on, and I think himemx.exe can
work with that too. Only XMGR has the problem. But XMGR claims to work
around UMBPCI bus master DMA problems, so that's a reason to try XMGR.
I switched from XMGR to W98SE himem.sys. It can handle A20 already on,
takes control of it (by default).

The following config uses UMBPCI.SYS and Jack's UHDD.SYS for fast disk
UDMA. With the right magic in SYSTEM.INI, Windows 3.1 works too (up to
1GB ram). Busmaster disk and LAN seems to work, despite using UMBPCI.

It works on 4 computers I've tried, AMI BIOS and Award. Some needed
adjustment to the UMBPCI /I parameter, to omit areas where the UMBPCI
default was too aggressive,


---

dos=high,umb

device=c:\misc\bin\win9x\himem.sys /testmem:off /machine:at
device=c:\bin\umbpci\umbpci.sys

fcbs=16
files=50
buffers=15
stacks=9,256
lastdrive=z
break=on

device=c:\bin\helix\cloaking.exe
device=c:\bin\xmgr\open\uhdd.sys /b /h
device=c:\bin\xmgr\open\udvd2.sys /d:cd0 /h
device=c:\dos\ansi.sys

device=c:\lm\0\drivers\protman\protman.dos /i:c:\lm\0

shell=c:\command.com c:\ /e:752 /p

---

@echo off

path c:\dos;c:\windows;c:\bin;c:\

set temp=c:\tmp
set tmp=c:\tmp

mode con rate=20 delay=2

if exist c:\startnet.bat call c:\startnet.bat

c:\bin\helix\mouse.exe swap
echo.

c:\bin\helix\mscdex.exe /d:cd0 /l:e /s
echo.

ncache2 /ext=3660
echo.
r***@gmail.com
2020-03-03 01:16:32 UTC
Permalink
Hi again,
Post by T. Ment
fcbs=16
Do you really need FCBs? Probably not.
Post by T. Ment
files=50
Is this enough for most apps? Wouldn't 80 or 100 be better? (But hey, if it doesn't break anything, save your low RAM.)
Post by T. Ment
buffers=15
Unnecessary if you're already using a software cache. '4' is enough, then.
Post by T. Ment
stacks=9,256
Isn't this dangerous in some rare cases? Not recommended.
Post by T. Ment
lastdrive=z
Too many, unlikely you'll ever use 'em all, try 'g' or 'p' instead,
save some low RAM.
Post by T. Ment
device=c:\dos\ansi.sys
You can use NNANSI (TSR that unloads) instead, to save RAM.
Post by T. Ment
shell=c:\command.com c:\ /e:752 /p
I think I always use '1024' here (or multiple thereof).
Post by T. Ment
@echo off
set temp=c:\tmp
set tmp=c:\tmp
set tmp=%temp%
(avoids redundancy, only have to change one line instead of two)
Post by T. Ment
if exist c:\startnet.bat call c:\startnet.bat
"call c:\startnet.bat"

(it will just politely warn if not found anyways,
probably not worth verbosity just to avoid that minor message)
Post by T. Ment
c:\bin\helix\mouse.exe swap
CuteMouse can unload.
Post by T. Ment
c:\bin\helix\mscdex.exe /d:cd0 /l:e /s
SHSUCDX can unload.
T. Ment
2020-03-03 18:09:24 UTC
Permalink
Post by r***@gmail.com
Post by T. Ment
fcbs=16
Do you really need FCBs?
Not yet, but 16 takes very little space. I may write FCB code someday.
Post by r***@gmail.com
Post by T. Ment
files=50
Is this enough for most apps? Wouldn't 80 or 100 be better?
I reduced it to 40. I've not had trouble yet.
Post by r***@gmail.com
Post by T. Ment
buffers=15
Unnecessary if you're already using a software cache. '4' is enough, then.
I've read similar advice, but I've had poor results below 12. I reduced
it to lucky 13 to save a little space when dos=low, but when dos=high.
it makes no difference. You won't fill the HMA with DOS unless buffers
are way up there, around 40 or so. There is an exact limit, but I don't
recall what it is.
Post by r***@gmail.com
Post by T. Ment
stacks=9,256
Isn't this dangerous in some rare cases? Not recommended.
Default is 9,128 as I recall. 256 recommended for Windows 3.1, which I
use, with MS-DOS 6.22.
Post by r***@gmail.com
Post by T. Ment
c:\bin\helix\mscdex.exe /d:cd0 /l:e /s
SHSUCDX can unload.
Tried it and had some problems. Don't recall the details. Won't waste
time trying it again, mscdex works for me.
r***@gmail.com
2020-03-21 22:03:14 UTC
Permalink
Hi,
(bunch of CONFIG.SYS optimizations)
BTW, do you use DOSKEY? Ever tried these alternatives?

* http://paulhoule.com/doskey/
* http://www.shoelesscomputers.com/software/source/

The latter is what I used to use under DR-DOS. (Yes, it
has its own limited cmdline history, not as good.)
These have .ASM sources available.

Toddy is quite good, and since I rarely used 4DOS, I liked
it as a way to have command completion and recallable
history. It also unloads (if you need the extra RAM).
Very configurable.

FreeDOS' FreeCOM has built-in (limited) DOSKEY, so I
can't override it, so no Toddy there. (You could
rebuild the shell without history, but I never did.)
There was a new pre-release a few months ago, but I
haven't tested it. (He has three builds from different
compilers. It's an admirable job but difficult to iron
out so many bugs and quirks.)

* https://sourceforge.net/p/freedos/news/2019/12/freecom-084pre7/
* https://github.com/FDOS/freecom/releases/tag/com084pre7

Just FYI.
T. Ment
2020-03-21 22:24:41 UTC
Permalink
Post by r***@gmail.com
do you use DOSKEY?
Yes, my fingers are lazy
Post by r***@gmail.com
Ever tried these alternatives?
Not yet.
Post by r***@gmail.com
* http://paulhoule.com/doskey/
* http://www.shoelesscomputers.com/software/source/
These have .ASM sources available.
Interesting. Maybe someday.

Right now I'm more interested in hearing from anyone who tries my A20
device driver. But it's hard to get people to test something they don't
have an immediate need for. Such is human nature.
r***@gmail.com
2020-04-09 01:16:11 UTC
Permalink
Hi again,
Post by T. Ment
Right now I'm more interested in hearing from anyone who tries my A20
device driver. But it's hard to get people to test something they don't
have an immediate need for. Such is human nature.
Have you seen older Simtel's /MEMUTIL/ subdir? Apparently it has
some A20 stuff! (No, I haven't tried it.)

* http://cd.textfiles.com/simtel/simtel20/MSDOS/MEMUTIL/.index.html
T. Ment
2020-04-09 03:07:25 UTC
Permalink
Post by r***@gmail.com
Have you seen older Simtel's /MEMUTIL/ subdir? Apparently it has
some A20 stuff! (No, I haven't tried it.)
http://cd.textfiles.com/simtel/simtel20/MSDOS/MEMUTIL/.index.html
I looked at a20test.zip.

Among other mistakes, he sends 0xFF to port 64. As Gilluwe says on page
312, that serves no useful purpose. Another yoyo who didn't know what he
was doing. Bogus code like that is how rumors like Rod's get started.
Loading...