mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-07 22:59:36 +01:00
* stdcall fixes
This commit is contained in:
parent
178372c982
commit
8457961ba6
@ -454,6 +454,8 @@ end;
|
||||
|
||||
procedure initdelay;assembler;
|
||||
asm
|
||||
pushl %ebx
|
||||
pushl %edi
|
||||
{ for some reason, using int $31/ax=$901 doesn't work here }
|
||||
{ and interrupts are always disabled at this point when }
|
||||
{ running a program inside gdb(pas). Web bug 1345 (JM) }
|
||||
@ -473,11 +475,15 @@ asm
|
||||
movl $55,%ecx
|
||||
divl %ecx
|
||||
movl %eax,DelayCnt
|
||||
popl %edi
|
||||
popl %ebx
|
||||
end;
|
||||
|
||||
|
||||
procedure Delay(MS: Word);assembler;
|
||||
asm
|
||||
pushl %ebx
|
||||
pushl %edi
|
||||
movzwl MS,%ecx
|
||||
jecxz .LDelay2
|
||||
movl $0x400,%edi
|
||||
@ -488,6 +494,8 @@ asm
|
||||
call DelayLoop
|
||||
loop .LDelay1
|
||||
.LDelay2:
|
||||
popl %edi
|
||||
popl %ebx
|
||||
end;
|
||||
|
||||
|
||||
@ -834,7 +842,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.9 2003-03-17 18:13:13 peter
|
||||
Revision 1.10 2003-10-03 21:56:36 peter
|
||||
* stdcall fixes
|
||||
|
||||
Revision 1.9 2003/03/17 18:13:13 peter
|
||||
* exported ScreenHeight, ScreenWidth
|
||||
|
||||
Revision 1.8 2002/12/15 20:22:24 peter
|
||||
|
||||
@ -444,6 +444,8 @@ end;
|
||||
|
||||
procedure initdelay;assembler;
|
||||
asm
|
||||
pushl %ebx
|
||||
pushl %edi
|
||||
{ for some reason, using int $31/ax=$901 doesn't work here }
|
||||
{ and interrupts are always disabled at this point when }
|
||||
{ running a program inside gdb(pas). Web bug 1345 (JM) }
|
||||
@ -463,11 +465,15 @@ asm
|
||||
movl $55,%ecx
|
||||
divl %ecx
|
||||
movl %eax,DelayCnt
|
||||
popl %edi
|
||||
popl %ebx
|
||||
end;
|
||||
|
||||
|
||||
procedure Delay(MS: Word);assembler;
|
||||
asm
|
||||
pushl %ebx
|
||||
pushl %edi
|
||||
movzwl MS,%ecx
|
||||
jecxz .LDelay2
|
||||
movl $0x400,%edi
|
||||
@ -478,6 +484,8 @@ asm
|
||||
call DelayLoop
|
||||
loop .LDelay1
|
||||
.LDelay2:
|
||||
popl %edi
|
||||
popl %ebx
|
||||
end;
|
||||
|
||||
|
||||
@ -821,7 +829,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 2003-09-07 22:29:26 hajny
|
||||
Revision 1.3 2003-10-03 21:59:28 peter
|
||||
* stdcall fixes
|
||||
|
||||
Revision 1.2 2003/09/07 22:29:26 hajny
|
||||
* syswat renamed to system, CVS log added
|
||||
|
||||
|
||||
|
||||
@ -143,8 +143,6 @@ implementation
|
||||
uses
|
||||
strings;
|
||||
|
||||
{$ASMMODE ATT}
|
||||
|
||||
{******************************************************************************
|
||||
--- Dos Interrupt ---
|
||||
******************************************************************************}
|
||||
@ -1050,7 +1048,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 2003-09-07 22:29:26 hajny
|
||||
Revision 1.3 2003-10-03 21:59:28 peter
|
||||
* stdcall fixes
|
||||
|
||||
Revision 1.2 2003/09/07 22:29:26 hajny
|
||||
* syswat renamed to system, CVS log added
|
||||
|
||||
Revision 1.1 2003/09/05 18:09:35 florian
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
$Id$
|
||||
This file is part of the Free Pascal run time library.
|
||||
Copyright (c) 1999-2000 by the Free Pascal development team.
|
||||
|
||||
|
||||
Watcom
|
||||
|
||||
See the file COPYING.FPC, included in this distribution,
|
||||
@ -99,7 +99,7 @@ Const
|
||||
tb_segment:word;
|
||||
|
||||
const tb_offset=0;
|
||||
tb_size=8192;
|
||||
tb_size=8192;
|
||||
|
||||
IMPLEMENTATION
|
||||
|
||||
@ -163,6 +163,7 @@ end;
|
||||
procedure alloc_tb; assembler;
|
||||
{ allocate 8kB real mode transfer buffer }
|
||||
asm
|
||||
pushl %ebx
|
||||
movw $0x100,%ax
|
||||
movw $512,%bx
|
||||
int $0x31
|
||||
@ -170,6 +171,7 @@ asm
|
||||
shll $16,%eax
|
||||
shrl $12,%eax
|
||||
movl %eax,tb
|
||||
popl %ebx
|
||||
end;
|
||||
|
||||
procedure sysseg_move(sseg : word;source : longint;dseg : word;dest : longint;count : longint);
|
||||
@ -178,6 +180,8 @@ begin
|
||||
exit;
|
||||
if (sseg<>dseg) or ((sseg=dseg) and (source>dest)) then
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
pushw %es
|
||||
pushw %ds
|
||||
cld
|
||||
@ -198,10 +202,14 @@ begin
|
||||
movsb
|
||||
popw %ds
|
||||
popw %es
|
||||
end ['ESI','EDI','ECX','EAX']
|
||||
popl %edi
|
||||
popl %esi
|
||||
end
|
||||
else if (source<dest) then
|
||||
{ copy backward for overlapping }
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
pushw %es
|
||||
pushw %ds
|
||||
std
|
||||
@ -236,7 +244,9 @@ begin
|
||||
cld
|
||||
popw %ds
|
||||
popw %es
|
||||
end ['ESI','EDI','ECX'];
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
@ -250,9 +260,10 @@ end;
|
||||
|
||||
|
||||
|
||||
function strcopy(dest,source : pchar) : pchar;
|
||||
begin
|
||||
asm
|
||||
function strcopy(dest,source : pchar) : pchar;assembler;
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
cld
|
||||
movl 12(%ebp),%edi
|
||||
movl $0xffffffff,%ecx
|
||||
@ -271,9 +282,8 @@ begin
|
||||
rep
|
||||
movsb
|
||||
movl 8(%ebp),%eax
|
||||
leave
|
||||
ret $8
|
||||
end;
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
|
||||
|
||||
@ -303,6 +313,8 @@ begin
|
||||
regs.realsp:=0;
|
||||
regs.realss:=0;
|
||||
asm
|
||||
pushl %edi
|
||||
pushl %ebx
|
||||
pushw %fs
|
||||
movw intnr,%bx
|
||||
xorl %ecx,%ecx
|
||||
@ -310,6 +322,8 @@ begin
|
||||
movw $0x300,%ax
|
||||
int $0x31
|
||||
popw %fs
|
||||
popl %ebx
|
||||
popl %edi
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -317,12 +331,14 @@ end;
|
||||
procedure set_pm_interrupt(vector : byte;const intaddr : tseginfo);
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl intaddr,%eax
|
||||
movl (%eax),%edx
|
||||
movw 4(%eax),%cx
|
||||
movl $0x205,%eax
|
||||
movb vector,%bl
|
||||
int $0x31
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -330,12 +346,14 @@ end;
|
||||
procedure get_pm_interrupt(vector : byte;var intaddr : tseginfo);
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movb vector,%bl
|
||||
movl $0x204,%eax
|
||||
int $0x31
|
||||
movl intaddr,%eax
|
||||
movl %edx,(%eax)
|
||||
movw %cx,4(%eax)
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1121,7 +1139,10 @@ END.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.4 2003-09-29 18:52:36 hajny
|
||||
Revision 1.5 2003-10-03 21:59:28 peter
|
||||
* stdcall fixes
|
||||
|
||||
Revision 1.4 2003/09/29 18:52:36 hajny
|
||||
* append fix applied to Amiga, Atari, EMX, GO32v2, OS/2 and Watcom
|
||||
|
||||
Revision 1.3 2003/09/27 11:52:36 peter
|
||||
|
||||
@ -232,6 +232,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl bytes,%ebx
|
||||
addl $0xf,%ebx // round up
|
||||
shrl $0x4,%ebx // convert to Paragraphs
|
||||
@ -246,6 +247,7 @@ interface
|
||||
movw %dx,%ax // return Selector in lo(Result)
|
||||
.LDos_end:
|
||||
movl %eax,__result
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -267,6 +269,8 @@ interface
|
||||
regs.realsp:=0;
|
||||
regs.realss:=0;
|
||||
asm
|
||||
pushl %ebx
|
||||
pushl %edi
|
||||
{ save all used registers to avoid crash under NTVDM }
|
||||
{ when spawning a 32-bit DPMI application }
|
||||
pushw %fs
|
||||
@ -279,6 +283,8 @@ interface
|
||||
popw %fs
|
||||
setnc %al
|
||||
movb %al,__RESULT
|
||||
popl %edi
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -286,6 +292,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %edi
|
||||
movl ofs,%edi
|
||||
movl count,%ecx
|
||||
movb c,%dl
|
||||
@ -309,13 +316,15 @@ interface
|
||||
rep
|
||||
stosb
|
||||
popw %es
|
||||
end ['EAX','ECX','EDX','EDI'];
|
||||
popl %edi
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure seg_fillword(seg : word;ofs : longint;count : longint;w : word);
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %edi
|
||||
movl ofs,%edi
|
||||
movl count,%ecx
|
||||
movw w,%dx
|
||||
@ -337,7 +346,8 @@ interface
|
||||
rep
|
||||
stosw
|
||||
popw %es
|
||||
end ['EAX','ECX','EDX','EDI'];
|
||||
popl %edi
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure seg_move(sseg : word;source : longint;dseg : word;dest : longint;count : longint);
|
||||
@ -347,6 +357,8 @@ interface
|
||||
exit;
|
||||
if (sseg<>dseg) or ((sseg=dseg) and (source>dest)) then
|
||||
asm
|
||||
pushl %edi
|
||||
pushl %esi
|
||||
pushw %es
|
||||
pushw %ds
|
||||
cld
|
||||
@ -367,10 +379,14 @@ interface
|
||||
movsb
|
||||
popw %ds
|
||||
popw %es
|
||||
end ['ESI','EDI','ECX','EAX']
|
||||
popl %esi
|
||||
popl %edi
|
||||
end
|
||||
else if (source<dest) then
|
||||
{ copy backward for overlapping }
|
||||
asm
|
||||
pushl %edi
|
||||
pushl %esi
|
||||
pushw %es
|
||||
pushw %ds
|
||||
std
|
||||
@ -405,7 +421,9 @@ interface
|
||||
cld
|
||||
popw %ds
|
||||
popw %es
|
||||
end ['ESI','EDI','ECX'];
|
||||
popl %esi
|
||||
popl %edi
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure outportb(port : word;data : byte);
|
||||
@ -492,6 +510,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl intaddr,%eax
|
||||
movl (%eax),%edx
|
||||
movw 4(%eax),%cx
|
||||
@ -501,6 +520,7 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -508,6 +528,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl intaddr,%eax
|
||||
movw (%eax),%dx
|
||||
movw 4(%eax),%cx
|
||||
@ -517,6 +538,7 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -524,6 +546,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl intaddr,%eax
|
||||
movl (%eax),%edx
|
||||
movw 4(%eax),%cx
|
||||
@ -533,6 +556,7 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -540,6 +564,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl intaddr,%eax
|
||||
movl (%eax),%edx
|
||||
movw 4(%eax),%cx
|
||||
@ -549,6 +574,7 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -556,6 +582,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl $0x210,%eax
|
||||
movb e,%bl
|
||||
int $0x31
|
||||
@ -565,6 +592,7 @@ interface
|
||||
movl intaddr,%eax
|
||||
movl %edx,(%eax)
|
||||
movw %cx,4(%eax)
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -572,6 +600,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl $0x202,%eax
|
||||
movb e,%bl
|
||||
int $0x31
|
||||
@ -581,6 +610,7 @@ interface
|
||||
movl intaddr,%eax
|
||||
movl %edx,(%eax)
|
||||
movw %cx,4(%eax)
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -588,6 +618,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movb vector,%bl
|
||||
movl $0x204,%eax
|
||||
int $0x31
|
||||
@ -597,6 +628,7 @@ interface
|
||||
movl intaddr,%eax
|
||||
movl %edx,(%eax)
|
||||
movw %cx,4(%eax)
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -604,6 +636,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movb vector,%bl
|
||||
movl $0x200,%eax
|
||||
int $0x31
|
||||
@ -614,6 +647,7 @@ interface
|
||||
movzwl %dx,%edx
|
||||
movl %edx,(%eax)
|
||||
movw %cx,4(%eax)
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -637,11 +671,13 @@ interface
|
||||
|
||||
//!!!! var
|
||||
//!!!! ___v2prt0_ds_alias : word; external name '___v2prt0_ds_alias';
|
||||
var ___v2prt0_ds_alias : word;
|
||||
var ___v2prt0_ds_alias : word;
|
||||
|
||||
function get_rm_callback(pm_func : pointer;const reg : trealregs;var rmcb : tseginfo) : boolean;
|
||||
begin
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl pm_func,%esi
|
||||
movl reg,%edi
|
||||
pushw %es
|
||||
@ -661,6 +697,8 @@ interface
|
||||
movzwl %dx,%edx
|
||||
movl %edx,(%eax)
|
||||
movw %cx,4(%eax)
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -679,12 +717,14 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movw d,%bx
|
||||
movl $1,%eax
|
||||
int $0x31
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -692,10 +732,12 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movw seg,%bx
|
||||
movl $2,%eax
|
||||
int $0x31
|
||||
movw %ax,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -713,6 +755,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movw d,%bx
|
||||
movl $6,%eax
|
||||
int $0x31
|
||||
@ -721,17 +764,20 @@ interface
|
||||
shll $16,%ecx
|
||||
orl %ecx,%eax
|
||||
movl %eax,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
function get_page_size:longint;
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movl $0x604,%eax
|
||||
int $0x31
|
||||
shll $16,%ebx
|
||||
movw %cx,%bx
|
||||
movl %ebx,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -745,6 +791,8 @@ interface
|
||||
linearaddr:=linearaddr-pageofs;
|
||||
size:=size+pageofs;
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %ebx
|
||||
movl $0x504,%eax
|
||||
movl linearaddr,%ebx
|
||||
movl size,%ecx
|
||||
@ -757,6 +805,8 @@ interface
|
||||
movl blockhandle,%eax
|
||||
movl %esi,(%eax)
|
||||
movl %ebx,pageofs
|
||||
popl %ebx
|
||||
popl %esi
|
||||
end;
|
||||
if pageofs<>linearaddr then
|
||||
request_linear_region:=false;
|
||||
@ -765,6 +815,9 @@ interface
|
||||
function allocate_memory_block(size:longint):longint;
|
||||
begin
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
pushl %ebx
|
||||
movl $0x501,%eax
|
||||
movl size,%ecx
|
||||
movl %ecx,%ebx
|
||||
@ -780,12 +833,17 @@ interface
|
||||
shll $16,%esi
|
||||
movw %di,%si
|
||||
movl %ebx,__RESULT
|
||||
popl %ebx
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
end;
|
||||
|
||||
function free_memory_block(blockhandle : longint) : boolean;
|
||||
begin
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
movl blockhandle,%esi
|
||||
movl %esi,%edi
|
||||
shll $16,%esi
|
||||
@ -794,6 +852,8 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -801,6 +861,9 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
pushl %ebx
|
||||
movl $0x600,%eax
|
||||
movl linearaddr,%ecx
|
||||
movl %ecx,%ebx
|
||||
@ -812,6 +875,9 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -843,6 +909,9 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
pushl %ebx
|
||||
movl $0x601,%eax
|
||||
movl linearaddr,%ecx
|
||||
movl %ecx,%ebx
|
||||
@ -854,6 +923,9 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -883,6 +955,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movw d,%bx
|
||||
leal s,%eax
|
||||
movw (%eax),%dx
|
||||
@ -892,6 +965,7 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -899,6 +973,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movw d,%bx
|
||||
movw w,%cx
|
||||
movl $9,%eax
|
||||
@ -906,6 +981,7 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movw %ax,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -913,6 +989,7 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movw d,%bx
|
||||
leal s,%eax
|
||||
movw (%eax),%dx
|
||||
@ -922,6 +999,7 @@ interface
|
||||
pushf
|
||||
call test_int31
|
||||
movb %al,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -954,12 +1032,14 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %ebx
|
||||
movw seg,%bx
|
||||
movl $0xa,%eax
|
||||
int $0x31
|
||||
pushf
|
||||
call test_int31
|
||||
movw %ax,__RESULT
|
||||
popl %ebx
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -967,12 +1047,14 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %edi
|
||||
movl meminfo,%edi
|
||||
movl $0x500,%eax
|
||||
int $0x31
|
||||
pushf
|
||||
movb %al,__RESULT
|
||||
call test_int31
|
||||
popl %edi
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -980,6 +1062,9 @@ interface
|
||||
|
||||
begin
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
pushl %ebx
|
||||
movl phys_addr,%ebx
|
||||
movl %ebx,%ecx
|
||||
shrl $16,%ebx
|
||||
@ -993,6 +1078,9 @@ interface
|
||||
shll $16,%ebx
|
||||
movw %cx,%bx
|
||||
movl %ebx,__RESULT
|
||||
popl %ebx
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1022,6 +1110,9 @@ interface
|
||||
function map_device_in_memory_block(handle,offset,pagecount,device:longint):boolean;
|
||||
begin
|
||||
asm
|
||||
pushl %esi
|
||||
pushl %edi
|
||||
pushl %ebx
|
||||
movl device,%edx
|
||||
movl handle,%esi
|
||||
movl offset,%ebx
|
||||
@ -1032,6 +1123,9 @@ interface
|
||||
setnc %al
|
||||
movb %al,__RESULT
|
||||
call test_int31
|
||||
popl %ebx
|
||||
popl %edi
|
||||
popl %esi
|
||||
end;
|
||||
end;
|
||||
|
||||
@ -1062,7 +1156,10 @@ end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 2003-09-07 22:29:26 hajny
|
||||
Revision 1.3 2003-10-03 21:59:28 peter
|
||||
* stdcall fixes
|
||||
|
||||
Revision 1.2 2003/09/07 22:29:26 hajny
|
||||
* syswat renamed to system, CVS log added
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user