On 1/11/07, Daniël Mantione <[EMAIL PROTECTED]> wrote:


This the situation:
* The Dos port is without a maintainer.
* We are still providing it because many people have need for a Dos
version
* Bugs in the Dos port are not being fixed so it is of poor quality.


well, if so i'm a volunteer to mantain the DOS port...

Yes, it is a protected mode app, using the go32v2 extender. You need a
dpmi service on your system. Normally on real Dos you use cwsdpmi, but any
DPMI will do. However, WinNT/2000/XP is troublesome because their DPMI
support
is buggy.


i was not trying to use it in win nt/xp/2000...its freedos inside a MS
Virtual PC....since i don't have a pentium 100 or a 486 i cannot test this
on a real machine...


go32v2 is the extender, cwsdpmi the dpmi host that comes with it. So you
have used go32v2 before, and the procedure is the same with FPC programs.


ok...when exactly the go32v2 gets linked with my code? is this done
automatically by the compiler???

The code you should contains 16 bit assembler. FPC is a 32 bit
application. So the assembler needs to be rewritten in 32-bit assembler.
Other than that, FPC is compatible with TP. So, just put the compiler in
TP mode an compile.


thanks

can this be compiled directly in a 32bit assembler like nasm (or directly
assembled by the fpc internal assembler using directives to use asm inside
pascal source)????

i was also looking for a way to rewrite this in clean Pascal language...is
this possible in pmode using fpc (note the code contains an interrupt call
for a low level operation)???

here is the small assembly source that generates the code i posted:

------------------code start-----------------------------

       {diskwrite}
       asm
               push    bp
               mov     bp, sp
               add     bp, 8
               push    ds
               mov     bx, [bp]
               mov     ax, [bp+2]
               mov     ds, ax
               mov     cx, [bp+4]
               mov     dx, [bp+6]
               mov     al, [bp+8]
               push    bp
               int     26h
               jnc     ok
               popf
               pop     bp
               mov     [bp+10], ax
               jmp     cont
       ok:     popf
               pop     bp
               xor     ax, ax
               mov     [bp+10], ax
       cont:   pop     ds
               pop     bp
               mov     ax, 13h
               int     21h
               ret
------------------code end-----------------------------



Local labels need to start with a @. Please read the manuals, this is well
documented.


sorry...my bad about this...reading the manuals right now, while writing
this


Daniël


Daniel
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to