Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PM to RM

22 views
Skip to first unread message

Paul Edwards

unread,
Dec 29, 2023, 1:13:48 AM12/29/23
to
I recently "found out" (ie is it true?) that
there is apparently a BIOS call to go from
PM16 to RM16 on an 80286.

It originally did that via the convoluted
and slow keyboard thing. In principle I have
no problem with that, and I also have no
problem with replacing the BIOS ROM with an
updated version that uses a more efficient
(and documented in section 9.6.2 of the
"80286 and 80287 Programmer's Reference Manual")
triple fault mechanism:

https://bitsavers.org/components/intel/80286/210498-005_80286_and_80287_Programmers_Reference_Manual_1987.pdf

I also don't mind the BIOS ROM being updated
with the LOADALL instruction which has been
belatedly documented (I believe that's the
fastest solution).

So speed doesn't bother me.

But it occurs to me. If there is a BIOS interrupt
to go from PM16 to RM16, why not have one to go
from PM32 to RM16 too? As that is what I need in
PDOS/386. I rolled my own. I wasn't aware that
there might be a BIOS function to do that.

So maybe in PDOS/286 at least I can use the
official BIOS routines, assuming they exist
and I can find them and I'm not misunderstanding
something.

BFN. Paul.

wolfgang kern

unread,
Dec 29, 2023, 2:32:06 AM12/29/23
to
On 29/12/2023 07:13, Paul Edwards wrote:
> I recently "found out" (ie is it true?) that
> there is apparently a BIOS call to go from
> PM16 to RM16 on an 80286.
>
> It originally did that via the convoluted
> and slow keyboard thing. In principle I have
> no problem with that, and I also have no
> problem with replacing the BIOS ROM with an
> updated version that uses a more efficient
> (and documented in section 9.6.2 of the
> "80286 and 80287 Programmer's Reference Manual")
> triple fault mechanism:
>
> https://bitsavers.org/components/intel/80286/210498-005_80286_and_80287_Programmers_Reference_Manual_1987.pdf
>
> I also don't mind the BIOS ROM being updated
> with the LOADALL instruction which has been
> belatedly documented (I believe that's the
> fastest solution).

I'd forget about LOADALL it's opcode has a new meaning now.
and return from protected mode needed a forced crash on 286.

> So speed doesn't bother me.
>
> But it occurs to me. If there is a BIOS interrupt
> to go from PM16 to RM16, why not have one to go
> from PM32 to RM16 too? As that is what I need in
> PDOS/386. I rolled my own. I wasn't aware that
> there might be a BIOS function to do that.
>
> So maybe in PDOS/286 at least I can use the
> official BIOS routines, assuming they exist
> and I can find them and I'm not misunderstanding
> something.

why bother with BIOS calls (which may not be present at all)?
my "all-mode switches"
[from any to any of RM16,PM16,PM32,LM64,CM16,CM32]
are just a few bytes large and share only one system-stack,
all whats required is proper setup of GDT and IDT entries up front.
__
wolfgang

Paul Edwards

unread,
Dec 29, 2023, 5:50:35 AM12/29/23
to
On 29/12/23 15:32, wolfgang kern wrote:

> I'd forget about LOADALL it's opcode has a new meaning now.
> and return from protected mode needed a forced crash on 286.

Sure. All to be hidden behind a BIOS call.
And on a non-286 it can be done in a more
elegant way.

> why bother with BIOS calls (which may not be present at all)?
> my "all-mode switches"
> [from any to any of RM16,PM16,PM32,LM64,CM16,CM32]
> are just a few bytes large and share only one system-stack,
> all whats required is proper setup of GDT and IDT entries up front.

That's a good idea actually.

BFN. Paul.

0 new messages