Mail Archives: djgpp/1999/06/15/16:16:16
Eli Zaretskii wrote:
>
> On Tue, 15 Jun 1999, Clemens Valens wrote:
>
> > * Force a jump to fff0:f000, the PC reset vector.
>
> Recall that in DJGPP you are in protected mode, where return addresses
> are interpreted differently (as offsets from the CS segment base, not as
> seg:off pointers). That's why the converted code GPFaults.
>
> > So my question is: how can I do this in DJGPP, if at all?
>
> Invoke Int 19h. I don't remember whether you need to emit a literal
> instruction "INT 19h" or call via __dpmi_int, but one of these ways
> should work. (The other one is deliberately blocked by CWSDPMI, for
> some obscure reason.)
Or (untested):
__dpmi_regs r;
r.x.cs = 0xfff0;
r.x.ip = 0xf000
r.x.ss = r.x.sp = r.x.flags = 0;
__dpmi_simulate_real_mode_procedure_retf(&r);
--
Nate Eldredge
nate AT cartsys DOT com
- Raw text -