diff options
author | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2018-07-04 16:05:58 +0000 |
---|---|---|
committer | nickysn <nickysn@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2018-07-04 16:05:58 +0000 |
commit | 4bfb8410508b166e03b07258b8246f2a1fa8cc6b (patch) | |
tree | 8619b7c6644ef0aa737843f4160dd6637bb03268 /rtl/go32v2 | |
parent | 9332d383e0d38bfdddc72ecfc6f66b06c3f0c064 (diff) | |
download | fpc-4bfb8410508b166e03b07258b8246f2a1fa8cc6b.tar.gz |
+ enabled the port intrinsics in the go32v2 unit ports as well
git-svn-id: https://svn.freepascal.org/svn/fpc/trunk@39387 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'rtl/go32v2')
-rw-r--r-- | rtl/go32v2/ports.pp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/rtl/go32v2/ports.pp b/rtl/go32v2/ports.pp index efa8fa75b9..8a2deeaee6 100644 --- a/rtl/go32v2/ports.pp +++ b/rtl/go32v2/ports.pp @@ -16,11 +16,16 @@ unit ports; +{$ifdef VER3_0} {$Calling StdCall} +{$endif VER3_0} + +{$inline ON} interface type +{$ifdef VER3_0} tport = object procedure writeport(p : word;data : byte); function readport(p : word) : byte; @@ -38,6 +43,25 @@ type function readport(p : word) : longint; property pp[w : word] : longint read readport write writeport;default; end; +{$else VER3_0} + tport = object + procedure writeport(p : word;data : byte);inline; + function readport(p : word) : byte;inline; + property pp[w : word] : byte read readport write writeport;default; + end; + + tportw = object + procedure writeport(p : word;data : word);inline; + function readport(p : word) : word;inline; + property pp[w : word] : word read readport write writeport;default; + end; + + tportl = object + procedure writeport(p : word;data : longint);inline; + function readport(p : word) : longint;inline; + property pp[w : word] : longint read readport write writeport;default; + end; +{$endif VER3_0} var { we don't need to initialize port, because neither member variables nor virtual methods are accessed } @@ -52,6 +76,7 @@ var { to give easy port access like tp with port[] } +{$ifdef VER3_0} procedure tport.writeport(p : word;data : byte);assembler; asm movw p,%dx @@ -95,5 +120,41 @@ asm movw p,%dx inl %dx,%eax end; +{$else VER3_0} +procedure tport.writeport(p : word;data : byte);inline; +begin + fpc_x86_outportb(p,data); +end; + + +function tport.readport(p : word) : byte;inline; +begin + readport:=fpc_x86_inportb(p); +end; + + +procedure tportw.writeport(p : word;data : word);inline; +begin + fpc_x86_outportw(p,data); +end; + + +function tportw.readport(p : word) : word;inline; +begin + readport:=fpc_x86_inportw(p); +end; + + +procedure tportl.writeport(p : word;data : longint);inline; +begin + fpc_x86_outportl(p,data); +end; + + +function tportl.readport(p : word) : longint;inline; +begin + readport:=fpc_x86_inportl(p); +end; +{$endif VER3_0} end. |