next up previous
Nächste Seite: Hinweise zur Programmierung Aufwärts: Das Laufzeitsystem LArts Vorherige Seite: Arts-Prozeduren

Die Modul-Rümpfe

Der Hauptteil jedes Moduls wird von der Prozedur Arts.Startup aufgerufen. Dieser Aufruf geschieht im Forbid-Zustand, d.h. ein Taskwechsel ist hier unterbunden. Folglich haben die Prozeduren ,,sicheren`` Zugriff auf alle globalen Variablen. An dieser Stelle sollten die notwendigen Initialisierungen durchgeführt werden. Zum Beispiel kann man hier zum späteren, leichteren Zugriff auf die Basis einen Zeiger darauf in einer globalen Variablen ablegen. Dadurch hat man die Wahl, innerhalb der exportierten Prozeduren entweder das Register A6 oder diese globale Variable als Basis zu benutzen.

Falls in einer der Initialisierungs-Prozeduren ein Fehler auftritt, sollte diese Prozedur die Variable dosCmdLen auf 0 setzen. Startup prüft nach der Initialisierungsphase diese Variable und verzweigt im Fehlerfall direkt nach Terminate. Dadurch werden alle benötigten Objekte auch im Fehlerfall wieder sauber freigegeben.

Damit im eingetretenen Fehlerfall keine weiteren Initialisierungen erfolgen, sollte jeder Modulrumpf und jede CLOSE-Prozedur etwa so aussehen:

BEGIN
  IF dosCmdLen<>0 THEN
    ...
  END
END.



Claudio Nieder 2000-11-12