flat assembler
Message board for the users of flat assembler.

Index > Compiler Internals > DPMI bug

Author
Thread Post new topic Reply to topic
bttr



Joined: 21 Oct 2003
Posts: 16
Location: Berlin, Germany
bttr 22 Oct 2003, 08:56
fasm 1.49 doesn't work with DPMIONE. According to the author Bob Smith the problem is in "modes.inc". His explanation:

Quote:

I downloaded the DOS version of FASM and tried it with DPMIONE loaded.
Indeed FASM doesn't call the DPMI presence function because of a
misunderstanding in its code. As you can see from the following snippet
taken from one of its source files (MODES.INC)

smsw ax
test al,1
jnz dpmi

if the CPU does not have the PE bit set in CR0 (in this case that means
that the CPU is not in Virtual Mode), then FASM doesn't even look for
DPMI services.

When I forced the code to take the branch, indeed FASM found and used
DPMI services.

In other words, it's the case that 386MAX and other memory manager DPMI
hosts run the CPU in VM, but that's not necessary to provide DPMI
services as DPMIONE shows.
Post 22 Oct 2003, 08:56
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8353
Location: Kraków, Poland
Tomasz Grysztar 22 Oct 2003, 10:12
When processor is in real mode, fasm uses its unREAL engine to get into the fastest possible 32-bit environment. DPMI is used only when there's no way to use unREAL, that is when processor is in V86 mode (and under DPMI fasm is generally slower, though on modern computers it doesn't make any visible difference, but try it on some 386SX machine).
Post 22 Oct 2003, 10:12
View user's profile Send private message Visit poster's website Reply with quote
bttr



Joined: 21 Oct 2003
Posts: 16
Location: Berlin, Germany
bttr 22 Oct 2003, 10:38
But I need fasm using DPMI, because I'm running Soft-ICE 2.80 for DOS.
Post 22 Oct 2003, 10:38
View user's profile Send private message Visit poster's website Reply with quote
Tomasz Grysztar



Joined: 16 Jun 2003
Posts: 8353
Location: Kraków, Poland
Tomasz Grysztar 22 Oct 2003, 13:07
Can't you force it to turn DOS into V86 mode?
Post 22 Oct 2003, 13:07
View user's profile Send private message Visit poster's website Reply with quote
bttr



Joined: 21 Oct 2003
Posts: 16
Location: Berlin, Germany
bttr 22 Oct 2003, 13:16
Umm, maybe with the "/EMM" to enable VCPI. I'll try and tell you the result soon.
Post 22 Oct 2003, 13:16
View user's profile Send private message Visit poster's website Reply with quote
bttr



Joined: 21 Oct 2003
Posts: 16
Location: Berlin, Germany
bttr 23 Oct 2003, 16:42
I tried with and without "/EMM" which didn't change anything in fact. Crying or Very sad
Post 23 Oct 2003, 16:42
View user's profile Send private message Visit poster's website Reply with quote
Display posts from previous:
Post new topic Reply to topic

Jump to:  


< Last Thread | Next Thread >
Forum Rules:
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Copyright © 1999-2024, Tomasz Grysztar. Also on GitHub, YouTube.

Website powered by rwasa.