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.