Selaa lähdekoodia

* a very early aboxlib implementation

git-svn-id: trunk@1819 -
Károly Balogh 19 vuotta sitten
vanhempi
commit
b881329fdc
3 muutettua tiedostoa jossa 57 lisäystä ja 1 poistoa
  1. 1 0
      .gitattributes
  2. 6 1
      rtl/morphos/Makefile.fpc
  3. 50 0
      rtl/morphos/aboxlib.pas

+ 1 - 0
.gitattributes

@@ -3758,6 +3758,7 @@ rtl/macos/systhrd.inc svneol=native#text/plain
 rtl/macos/sysutils.pp svneol=native#text/plain
 rtl/morphos/Makefile svneol=native#text/plain
 rtl/morphos/Makefile.fpc svneol=native#text/plain
+rtl/morphos/aboxlib.pas -text
 rtl/morphos/ahi.pas svneol=native#text/plain
 rtl/morphos/asl.pas svneol=native#text/plain
 rtl/morphos/classes.pp svneol=native#text/plain

+ 6 - 1
rtl/morphos/Makefile.fpc

@@ -13,7 +13,7 @@ units=$(SYSTEMUNIT) objpas macpas strings \
       charset ucomplex getopts matrix \
       variants types rtlconsts sysconst dateutil \
       exec timer doslib utility hardware inputevent graphics layers \
-      intuition clipboard datatypes asl ahi get9 \
+      intuition aboxlib clipboard datatypes asl ahi get9 \
       fpmkunit
 rsts=math rtlconsts varutils typinfo variants classes sysconst dateutil fpmkunit
 
@@ -194,8 +194,13 @@ layers$(PPUEXT)  : layers.pas exec$(PPUEXT) graphics$(PPUEXT) utility$(PPUEXT)
 intuition$(PPUEXT): intuition.pas exec$(PPUEXT) graphics$(PPUEXT) utility$(PPUEXT) \
                     inputevent$(PPUEXT) timer$(PPUEXT) layers$(PPUEXT)
 
+aboxlib$(PPUEXT): aboxlib.pas
+
 clipboard$(PPUEXT): clipboard.pas exec$(PPUEXT)
 
+datatype$(PPUEXT): datatypes.pas exec$(PPUEXT) doslib$(PPUEXT) intuition$(PPUEXT) \
+                   utility$(PPUEXT) graphics$(PPUEXT)
+
 asl$(PPUEXT): asl.pas exec$(PPUEXT) graphics$(PPUEXT) utility$(PPUEXT)
 
 ahi$(PPUEXT): ahi.pas exec$(PPUEXT) utility$(PPUEXT)

+ 50 - 0
rtl/morphos/aboxlib.pas

@@ -0,0 +1,50 @@
+{
+    This file is part of the Free Pascal run time library.
+    Copyright (c) 2005 Karoly Balogh
+
+    abox.lib implementation for MorphOS/PowerPC
+
+    MorphOS port was done on a free Pegasos II/G4 machine
+    provided by Genesi S.a.r.l. <www.genesi.lu>
+
+    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 aboxlib;
+
+interface
+
+function DoMethod(obj : longword; msg : array of LongWord): longword;
+function DoMethodA(obj : longword; msg1 : Pointer): longword; assembler;
+
+implementation
+
+function DoMethodA(obj : longword; msg1 : Pointer): longword; assembler;
+asm
+  mflr r31
+
+  lwz r9,-4(r3)
+  stw r9,32(r2)
+  stw r4,36(r2)
+  stw r3,40(r2)
+
+  lwz r11,104(r2)
+  lwz r3,8(r9)
+  mtlr r11
+  blrl
+
+  mtlr r31
+end ['R31'];
+
+function DoMethod(obj : longword; msg : array of LongWord): longword;
+begin
+  DoMethod:=DoMethodA(obj, @msg);
+end;
+
+end.