[fpc-pascal] FPC in DOS environment
Daniel Franzini
daniel.franzini at gmail.com
Thu Jan 11 17:17:46 CET 2007
On 1/11/07, Daniël Mantione <daniel.mantione at freepascal.org> 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20070111/37a76c30/attachment.html>
More information about the fpc-pascal
mailing list