From: Rod Pemberton on

"Rod Pemberton" <do_not_have(a)nohavenot.cmm> wrote in message
news:fhp44g$b83$1(a)aioe.org...
>
> "Mike Gonta" <mikegonta(a)gmail.com> wrote in message
> news:0f45c58b-7be9-499f-80c3-cb8310fdcb4a(a)n20g2000hsh.googlegroups.com...
> > On Nov 16, 7:26 pm, "Rod Pemberton" <do_not_h...(a)nohavenot.cmm> wrote:
> > Both the Fast port 92h and keyboard controller methods are tried. It's
> > possible that the Fast method may be causing problems with some PC's,
> > so
> > I've disabled it in the latest version. The source can be found in
> > "pm_int.asm".
> >
>
> Yup, thanks. The problem is the detect_a20 routine. I've confirmed the
> keyboard enable, in PM int 15h, ah=2401 works for both machines. And,
I've
> confirmed the PS2 enable works for the machine that supports it.
>
> It might be there, but I do _not_ see a coding error in detect_a20
routine.
<snip>

I wrapped a loop around the detect_a20 routine (with wbinvd in the middle)
to see what was the maximum value of edi that would still work. It was
1EFFFCh for 32-bits. This line can be changed from:

mov edi, 200000h-4

to this:

mov edi, 1EFFFFh-4

I haven't tested values below that. I will if you need or prefer some
specific value. The slow machine still needs a delay or it reboots once, of
course. The BIOS fast or normal A20 setting had no effect either. No
further info on what device or memory is there or what is going on.


Rod Pemberton


From: Rod Pemberton on

"Rod Pemberton" <do_not_have(a)nohavenot.cmm> wrote in message
news:fhrnb0$34r$1(a)aioe.org...
>
> "Rod Pemberton" <do_not_have(a)nohavenot.cmm> wrote in message
> news:fhp44g$b83$1(a)aioe.org...
> >
> > "Mike Gonta" <mikegonta(a)gmail.com> wrote in message
> >
news:0f45c58b-7be9-499f-80c3-cb8310fdcb4a(a)n20g2000hsh.googlegroups.com...
> > > On Nov 16, 7:26 pm, "Rod Pemberton" <do_not_h...(a)nohavenot.cmm> wrote:
> > > Both the Fast port 92h and keyboard controller methods are tried. It's
> > > possible that the Fast method may be causing problems with some PC's,
> > > so
> > > I've disabled it in the latest version. The source can be found in
> > > "pm_int.asm".
> > >
> >
> > Yup, thanks. The problem is the detect_a20 routine. I've confirmed the
> > keyboard enable, in PM int 15h, ah=2401 works for both machines. And,
> I've
> > confirmed the PS2 enable works for the machine that supports it.
> >
> > It might be there, but I do _not_ see a coding error in detect_a20
> routine.
> <snip>
>
> I wrapped a loop around the detect_a20 routine (with wbinvd in the middle)
> to see what was the maximum value of edi that would still work. It was
> 1EFFFCh for 32-bits. This line can be changed from:
>
> mov edi, 200000h-4
>
> to this:
>
> mov edi, 1EFFFFh-4
>
> I haven't tested values below that. I will if you need or prefer some
> specific value. The slow machine still needs a delay or it reboots once,
of
> course. The BIOS fast or normal A20 setting had no effect either. No
> further info on what device or memory is there or what is going on.
>

Figured I better mention this. It completely skips the BIOS ROM from
F0000-FFFFFh, drops into E0000-EFFFFh region (PNP) with A20 off... It looks
like caching, doesn't it?

RP