Hello.

Bart Oldeman wrote:
IIRC himem uses Big Real Mode for the 386, LOADALL for the 286
Yes, but 286 is a bit out of
the scope:)

and int15
if (BRM/LOADALL) fails.
It checks the PE bit of cr0 before
trying BRM, and if it is set, it
does int15/ah=0x87:
---
smsw    ax
shr     ax, 1                           ; Protected mode?
jc      MEM3_MoveBlock                  ; if so, use int 15h
---

However int15/87h executes in protected
mode and requires a pointer to GDT as
a parameter, so again, I have a very big
doubts it can work in v86:
---
; MEM3_MoveBlock
;       Set up GDT and call int 15h Move Block
[]
mov     ah, 87h         ; Block Move - Assumes protect
int     15h             ; mode code will allow interrupts
---
So again, whoever hooks int15, must either
have a ring0 access to set up the GDTR for
that GDT or, probably, it is also possible
to just evaluate the necessary addresses
from that GDT and do the transfer from
within the ring3 (taking into an account
also bases, access rights and all the other
info from that GDT) but then who told that
this can't work under cpu-emu?:)

-
To unsubscribe from this list: send the line "unsubscribe linux-msdos" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to