mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-01 14:10:57 +01:00
* Added WritePort[B|W|L] for single data access
* Added ReadPort[B|W|L] functions
This commit is contained in:
parent
92eee6e7f2
commit
28a36c68a4
@ -697,12 +697,18 @@ Function IOperm (From,Num : Cardinal; Value : Longint) : boolean;
|
||||
Procedure WritePort (Port : Longint; Value : Byte);
|
||||
Procedure WritePort (Port : Longint; Value : Word);
|
||||
Procedure WritePort (Port : Longint; Value : Longint);
|
||||
Procedure WritePortl (Port : Longint; Var Buf; Count: longint);
|
||||
Procedure WritePortB (Port : Longint; Value : Byte);
|
||||
Procedure WritePortW (Port : Longint; Value : Word);
|
||||
Procedure WritePortL (Port : Longint; Value : Longint);
|
||||
Procedure WritePortL (Port : Longint; Var Buf; Count: longint);
|
||||
Procedure WritePortW (Port : Longint; Var Buf; Count: longint);
|
||||
Procedure WritePortB (Port : Longint; Var Buf; Count: longint);
|
||||
Procedure ReadPort (Port : Longint; Var Value : Byte);
|
||||
Procedure ReadPort (Port : Longint; Var Value : Word);
|
||||
Procedure ReadPort (Port : Longint; Var Value : Longint);
|
||||
function ReadPortB (Port : Longint): Byte;
|
||||
function ReadPortW (Port : Longint): Word;
|
||||
function ReadPortL (Port : Longint): LongInt;
|
||||
Procedure ReadPortL (Port : Longint; Var Buf; Count: longint);
|
||||
Procedure ReadPortW (Port : Longint; Var Buf; Count: longint);
|
||||
Procedure ReadPortB (Port : Longint; Var Buf; Count: longint);
|
||||
@ -3686,6 +3692,47 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
Procedure WritePortB (Port : Longint; Value : Byte);
|
||||
{
|
||||
Writes 'Value' to port 'Port'
|
||||
}
|
||||
begin
|
||||
asm
|
||||
movl 8(%ebp),%edx
|
||||
movb 12(%ebp),%al
|
||||
outb %al,%dx
|
||||
end ['EAX','EDX'];
|
||||
end;
|
||||
|
||||
Procedure WritePortW (Port : Longint; Value : Word);
|
||||
{
|
||||
Writes 'Value' to port 'Port'
|
||||
}
|
||||
|
||||
begin
|
||||
asm
|
||||
movl 8(%ebp),%edx
|
||||
movw 12(%ebp),%ax
|
||||
outw %ax,%dx
|
||||
end ['EAX','EDX'];
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Procedure WritePortL (Port : Longint; Value : Longint);
|
||||
{
|
||||
Writes 'Value' to port 'Port'
|
||||
}
|
||||
|
||||
begin
|
||||
asm
|
||||
movl 8(%ebp),%edx
|
||||
movl 12(%ebp),%eax
|
||||
outl %eax,%dx
|
||||
end ['EAX','EDX'];
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Procedure WritePortl (Port : Longint; Var Buf; Count: longint);
|
||||
{
|
||||
@ -3781,6 +3828,48 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
|
||||
function ReadPortB (Port : Longint): Byte;
|
||||
{
|
||||
Reads a byte from port 'Port'
|
||||
}
|
||||
begin
|
||||
asm
|
||||
movl 8(%ebp),%edx
|
||||
inb %dx,%al
|
||||
andl $255,%eax
|
||||
end ['EAX','EDX'];
|
||||
end;
|
||||
|
||||
|
||||
|
||||
function ReadPortW (Port : Longint): Word;
|
||||
{
|
||||
Reads a word from port 'Port'
|
||||
}
|
||||
begin
|
||||
asm
|
||||
movl 8(%ebp),%edx
|
||||
inw %dx,%ax
|
||||
andl $65535,%eax
|
||||
end ['EAX','EDX'];
|
||||
end;
|
||||
|
||||
|
||||
|
||||
function ReadPortL (Port : Longint): LongInt;
|
||||
{
|
||||
Reads a LongInt from port 'Port'
|
||||
}
|
||||
begin
|
||||
asm
|
||||
movl 8(%ebp),%edx
|
||||
inl %dx,%eax
|
||||
end ['EAX','EDX'];
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Procedure ReadPortL (Port : Longint; Var Buf; Count: longint);
|
||||
{
|
||||
Reads 'Count' longints from port 'Port' to 'Buf'.
|
||||
@ -3842,7 +3931,11 @@ End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.63 2000-02-23 17:19:06 peter
|
||||
Revision 1.64 2000-03-17 13:27:00 sg
|
||||
* Added WritePort[B|W|L] for single data access
|
||||
* Added ReadPort[B|W|L] functions
|
||||
|
||||
Revision 1.63 2000/02/23 17:19:06 peter
|
||||
+ readded getepochtime which simply calls gettimeofday
|
||||
|
||||
Revision 1.62 2000/02/09 23:09:13 peter
|
||||
|
||||
Loading…
Reference in New Issue
Block a user