Author: Mill (ppp-28-57.20-151.libero.it)
Date: 11-02-2001 01:39
Hi.
I remember that in GFA Basic v2.02 there was a statement named "CALL" which enabled you to load and start an assembly routine. Anyway, in GFA Basic 3.00 it looks like following:
CALL adr(x,y, ...)
adr : avar (mindestens 32 bit, besser adr%)
x,y : iexp
mit Hilfe des Befehls CALL konnen ebenfalls Assembler oder C Unterprogramme aufgerufen werden. Datei ist 'adr' die Adresse, ab der das Assemblerprogramm im Speicher liegt. Es besteht die Moglichkeit eine Parameterliste zu ubergeben. Nach dem Aufruf von CALL befindet sich die Rucksprungadresse auf dem Stack (die Assembler routine musz mit RTS enden). Dahinter folgt die Anzahl der ubergebenen Parameter als 16 bit Wert und schlieszlich die Adresse, ab der die Parameter im Speicher liegen, als 32 bit Wert. Alle Parameter werden als Langworte (32 bit) interpretiert.
Es besteht hier die Moglichkeit, auch Strings als Parameter zu ubergeben. In diesem Fall ist der Ubergabewert die Anfangadresse des Strings.
Stackaufbau
(sp) -> Rucksprungadresse
4(sp) -> Anzahl der Parameter (16 bit)
6(sp) -> Adresse des Parameterfeldes (32 bit)
Please do not reply me in German (I understand only a few words of it); and please visit www.geocities.com/lovpopa (it may be useful).
HTH
Mill
|