32.bit com
From: rjb (nonesuch_at_here.com)
Date: 05/19/04
- Next message: rjb: "Re: 32.bit com"
- Previous message: assemblyperson: "Re: Assemblyperson's Competitor Support"
- Next in thread: rjb: "Re: 32.bit com"
- Reply: rjb: "Re: 32.bit com"
- Reply: BSpider: "Re: 32.bit com"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Tue, 18 May 2004 22:00:19 +0000 (UTC)
I've downloaded a package called 32bit.com by Maxwell Sayles, which is a
startup program for running code under DPMI. Here are the first few
instructions:-
; resize our segment
mov ah,4Ah
mov bx,1687h ; number of para
int 21h
; test for DPMI
xchg ax,bx
int 2Fh
sub ax,bx ; performs installation check and test for 32-bit host
jnb ErrorExit
; push DPMI mode-switch entry address for call
push es
push di
; set DPMI data switch area to immediately after our 64kb
mov ax,ds
add ax,1000h
mov es,ax
; request 32-bit protected mode
xchg ax,bx ; AX = 0x0001
call d [esp] ; call DPMI mode-switch entry point
I understand the first three instructions. Bx will return with the size of
free memory available. At the start of the second sequence AX takes that
value and hands its own value (which is 4A08 when I stepped it in Debug) to
BX. Now I've looked up int 2F in Ralf Brown's list to see where this program
is going to jump to, and I'm absolutely lost. The several pages of
possibilities for int 2F gives me no clue where this program is going. Why
should AX be holding a block-size on entry to an interrupt, and how does
that qualify as an "installation check"? Can anyone help?
rjb
- Next message: rjb: "Re: 32.bit com"
- Previous message: assemblyperson: "Re: Assemblyperson's Competitor Support"
- Next in thread: rjb: "Re: 32.bit com"
- Reply: rjb: "Re: 32.bit com"
- Reply: BSpider: "Re: 32.bit com"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|