DPMI - how to chain user and original RM handler? (Developers)
> call es:[oldint15_handler] {DOES NOT WORK !!! (Crashes here)}
> {oldint15_handler is got from Get_rm_interrupt($15, oldint15_handler)}
You need to far call the downlink in Real/Virtual 86 Mode, not in PM. And you need a pushfw instruction before the far call.
> mov eax,ds:[esi+0] {restore return address
> (CS:IP)}
> mov es:[edi+2Ah],eax
>
> (*
> mov eax,ds:[esi+4] {do we have to do anything with flags?}
> mov es:[edi+20h],ax
> *)
>
> add word ptr es:[edi+2Eh],6 {updates SP}
> iret
> end;
You probably should restore the flags too.
---
l
Complete thread:
- DPMI - how to chain user and original RM handler? - Laaca, 29.04.2023, 00:41
- DPMI - how to chain user and original RM handler? - ecm, 29.04.2023, 08:43
- DPMI - how to chain user and original RM handler? - ecm, 29.04.2023, 08:45
- DPMI - how to chain user and original RM handler? - Laaca, 29.04.2023, 14:04
- DPMI - how to chain user and original RM handler? - ecm, 29.04.2023, 15:17
- DPMI - how to chain user and original RM handler? - Laaca, 29.04.2023, 14:04
- DPMI - how to chain user and original RM handler? - ecm, 29.04.2023, 08:45
- DPMI - how to chain user and original RM handler? - bretjohn, 04.05.2023, 04:03
- DPMI - how to chain user and original RM handler? - CandyMan, 05.05.2023, 12:36
- DPMI - how to chain user and original RM handler? - Laaca, 05.05.2023, 21:53
- DPMI - how to chain user and original RM handler? - Laaca, 12.06.2023, 23:39
- DPMI - how to chain user and original RM handler? - ecm, 29.04.2023, 08:43