how can I call int 10 from Pmode?





include '%include%\win32ax.inc'
struc dpmi {
._edi dd 0
._esi dd 0
._ebp dd 0
.none1 dd 0
._ebx dd 0
._edx dd 0
._ecx dd 0
._eax dd 0
._flag dw 0
._es dw 0
._ds dw 0
._fs dw 0
._gs dw 0
.none2 dw 0
.none3 dw 0
._sp dw 0
._ss dw 0
}
;--------------------------------
.data
zxc dpmi ;malloc dpmi stucture as zxc
;--------------------------------
.code

start:

mov eax , 13h ;graph mode
mov [zxc._edi], eax ;put into structure
mov eax , 0300h ;to call RM INT
mov ebx , 10h ;int number
int 31h ;call dpmi
loops:
jmp loops



I tried do it by this above but without any success...
Is it possible to do that things?
Posted on 2003-10-15 01:42:07 by HarryTuttle
mmm,
if i remember well you have to switch thunking down to a 16 bit dll to call dpmi int 31h...

take a look to this tutorial i've written some time ago, it could help.
Posted on 2003-10-15 01:53:26 by Bit7
and what about run 32bit PE to shellexecute 16bit mz which change to graph-mode VESA 640x480x32bit colour.
and find out in LDT the describtor which is responsible for handling 0A0000 to address the region....
is it possible?
Posted on 2003-10-15 09:23:54 by HarryTuttle
if you want VESA and 32 bit PM your app has to be executed as DPMI client. executing a 16-bit MZ which will switch to VESA will work, but your win32 PE executable cannot access screen of that app.
Posted on 2003-10-15 09:40:18 by japheth
OK GUYS THX a LOT:tongue:
Posted on 2003-10-15 09:52:42 by HarryTuttle