Browse Source

+ Initial implementation

michael 27 years ago
parent
commit
53d0f3d9af
1 changed files with 102 additions and 0 deletions
  1. 102 0
      rtl/linux/ports.pp

+ 102 - 0
rtl/linux/ports.pp

@@ -0,0 +1,102 @@
+{
+    $Id$
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 1998 by Michael Van Canneyt
+    member of the Free Pascal development team
+
+    See the file COPYING.FPC, included in this distribution,
+    for details about the copyright.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+ **********************************************************************}
+
+Unit ports;
+
+{ Implements the 
+     port[] portw[] and portl[] 
+  constructs using Delphi classes }
+
+Interface
+
+type
+   tport = class
+     protected
+       procedure writeport(p : longint;data : byte);
+       function  readport(p : longint) : byte;
+     public
+       property pp[w : longint] : byte read readport write writeport;default;
+   end;
+
+   tportw = class
+     protected
+       procedure writeport(p : longint;data : word);
+       function  readport(p : longint) : word;
+     public
+       property pp[w : longint] : word read readport write writeport;default;
+   end;
+
+   tportl = class
+     Protected
+       procedure writeport(p : longint;data : longint);
+       function  readport(p : longint) : longint;
+     Public
+      property pp[w : Longint] : longint read readport write writeport;default;
+   end;
+
+       
+    { Non-Instantiaded vars. As yet, they don't have to be instantiated, 
+      because there is no need for 'self' etc. }
+
+var
+   port,
+   portb : tport;
+   portw : tportw;
+   portl : tportl;
+
+
+implementation
+
+uses linux;
+
+{ to give easy port access like tp with port[] }
+
+procedure tport.writeport(p : Longint;data : byte);
+
+begin
+  linux.writeport (p,data)
+end;
+
+function tport.readport(p : Longint) : byte;
+
+begin
+  linux.readport (p,Result);
+end;
+
+procedure tportw.writeport(p : longint;data : word);
+
+begin
+  linux.writeport (p,data)
+end;
+
+function tportw.readport(p : longint) : word;
+
+begin
+  linux.Readport(P,Result);
+end;
+
+procedure tportl.writeport(p : longint;data : longint);
+
+begin
+  linux.writeport (p,data)
+end;
+
+function tportl.readport(p : longint) : longint;
+
+begin
+  Linux.readport(p,Result);
+end;
+
+end.