| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | A20, Pmode, etc. |
Hi..
BH> Hi, does anyone know how to safely enable the A20 (address line 20)?
BH> I can't find any dox on it. I have a little bit of code which does it
BH> which I got from somewhere but I don't wanna use it because I don't
BH> know exactly what it's doing. (Typical me :) So how does one enable
It's not so easy. Try the book "The Undoccumented PC" for more
info, but basicly you can do it the '286 way - issue commads to the
keyboard controller; the PS/2 way - Toggle a bit on port 92h (sometimes
called fastgate A20) or other proprietory means on specific chipsets.
Prgramming the keyboard controller isn't easy, nor is it 100% reliable, and
the fastgate method isn't implemented in every chipset... Some chipets also
fail to update both areas with the current data when one method is used..
nasty!
BH> If I just take out the mov ss,ax then my program still works fine
BH> (I can't use the stack of course), but weirdly and wackily Dos's
BH> Mem.Exe when I run it runs fine as well! So that one mov instruction
BH> is doing _SomeThing_ wacky that I don't know about.
Sounds like you are failing to properly setup the descriptors for the
segments before returning to realmode. The easiest method is to restore all
segment descriptors to base=0k, limit=64k, before exiting protected mode,
then to reload them with your realmode values. Leaving the descriptors set
"randomly" will cause all sorts of obscrure problems which
manifest themselves in unusual ways.
Craig
--- FMail/386 1.0g
* Origin: TCB +61.3.9585.1112, +61.3.9583.6119 (3:632/358)SEEN-BY: 633/267 270 @PATH: 632/533 107 360 50/99 635/728 633/267 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.