GEMDOS

Das GEMDOS ist, abgesehen von den hardware-abhängigen ▌BIOS▌..\BIOS\BIOS.HLP▌ und ▌XBIOS▌..\XBIOS\XBIOS.HLP▌,
das eigentliche ▌Betriebssystem▌..\TOS▌ des Atari. Seine Funktionen werden über
den 680X0-Trap #1 aufgerufen.
Die Betriebssystemfunktionen lassen sich sehr leicht aufgrund des
ersten Buchstabens des Funktionsnamen in die Kategorien

	▌Zeichenweise Ein-/Ausgabe▌CINCOUT\CINCOUT.HLP▌  (C...),
	▌Programmausführung▌PEXEC\PEXEC.HLP▌         (P...),
	▌Dateifunktionen▌FILE\FILE.HLP▌            (F...),
	▌Verzeichnisfunktionen▌DIR\DIR.HLP▌      (D...),
	▌Speicherbereichsverwaltung▌MEM\MEM.HLP▌ (M...),
	▌Datum und Uhrzeit▌TIME\TIME.HLP▌          (T...),
und	▌Systemfunktionen▌SYS\SYS.HLP▌           (S...)

einteilen.

Wenn man einmal die unter GEMDOS vorhandenen Funktionen betrachtet,
so wird man eventuell feststellen, da₧ das Ganze gar nicht einmal
so neu ist. Alle Funktionen des GEMDOS sind Funktionen des
Betriebssystems MS-DOS sehr ähnlich. Auch und gerade die verwende-
ten Funktionsnummern entsprechen denen des MS-DOS. Allerdings sind
nicht alle MS-DOS-Funktionen im GEMDOS implementiert. Besonders im
Bereich der Dateiverwaltung wurden im GEMDOS nur die UNIX-kompati-
blen Funktionen eingebaut. Die 'alten' blockorientierten Zugriffs-
möglichkeiten, die im MS-DOS wohl aus Kompatibilitätsgründen zu
CP/M vorhanden waren, fehlen unter GEMDOS. Aber auch spezielle, in
der Hardware der MS-DOS-Rechner (Intel-80x86 Prozessoren) begrün-
dete Funktionen fehlen hier natürlich.

Ein weiterer wesentlicher Unterschied zu MS-DOS ist die Tatsache,
da₧ bei GEMDOS-Aufrufen wie auch bei BIOS und XBIOS die Funktions-
nummer, also die Nummer der gewünschten GEMDOS-Routine und eventu-
elle Parameter auf dem Stack und nicht in Registern übergeben wer-
den. Für diese Art der Parameterübergabe bietet sich der 68000 ge-
radezu an. Nach dem Aufbau der Parameterliste wird mittels Trap #1
das GEMDOS aufgerufen und die Funktion ausgeführt. Nach dem Aufruf
mu₧ der Programmierer den Stack selber wieder in Ordnung bringen,
also den durch die Parameter belegten Speicher räumen.
Der grundsätzliche Aufruf der GEMDOS-Funktionen unterscheidet sich
von den Aufrufen des BIOS und XBIOS also nur durch die Trapnummer.

Zu allen GEMDOS-Aufrufen mu₧ beachtet werden, da₧ die Register D0
und A0 in allen Fällen verändert sind. Im Register D0 wird ein
eventueller Rückgabewert oder eine Fehlernummer übergeben, A0
zeigt nach dem Aufruf (meistens) auf die Stack-Adresse, in der die
Funktionsnummer steht. Eventuell noch benötigte Registerwerte in
D0 oder A0 müssen Sie also vor einem Aufruf des GEMDOS in Deckung
bringen.
