Da das Betriebssystem TOS relativ sauber in mehrere Schichten gegliedert ist, sollten alle Programmierer bei der Erstellung einer Applikation die folgenden drei Regeln im Hinterkopf behalten:
Niemals für eine Aufgabe Aufrufe verschiedener
Betriebssystemschichten vermischen. Beispiel: In GEM-Programmen werden
Maus und Tastatur per AES abgefragt, und nicht etwa über das BIOS.
Die Mißachtung dieser Regel kann zu Konflikten zwischen den
verschiedenen Schichten führen.
Niemals von irgendwelchen unsicheren Annahmen über
interne Zusammenhänge zwischen den einzelnen Schichten ausgehen.
Beispiel: Ein GEMDOS Laufwerk kann sowohl auf einem BIOS- als auch
auf einem MetaDOS Gerät liegen. Die Maus hängt normalerweise am
Tastaturchip, sie muss es aber nicht (neue Hardware,
Tastaturinterfaces etc.)
Immer nach Möglichkeit die höchste
Betriebssystemschicht für eine Aufgabe benutzen. Beispiel: Die zu
benutzende Sprache könnte zwar aus dem Betriebssystemheader ermittelt
werden, besser ist es jedoch, hierfür den _AKP-Cookie bzw. die
Funktion appl_getinfo zu benutzen.
Darüber hinaus existieren viele weitere Programmierregeln, die eigentlich bekannt sein sollten, aber leider immer noch nicht von allen Applikationen beachtet werden. Einige Beispiele:
Nur soviel Speicherplatz belegen wie unbedingt nötig ist,
damit in einer Multitasking-Umgebung auch noch andere Prozesse
gestartet werden bzw. sinnvoll arbeiten können.
Den Eintritt in den Supervisor-Modus so oft wie nur möglich
vermeiden, da er eigentlich nur für das Betriebssystem
gedacht ist, und in vielen Umgebungen kein Task-Switching
stattfindet, wenn sich ein Prozess in diesem Modus befindet.
Niemals direkt in den Bildschirmspeicher schreiben, sondern
stattdessen auf die jeweiligen GEM-Funktionen (AES, VDI)
zurückgreifen.
Niemals auf Speicher zugreifen der nicht dem eigenen Programm
gehört, oder für dieses zugänglich gemacht worden ist, da es in
Systemen mit Speicherschutz sonst zu einer Exception kommt. Ferner
sollte Speicher immer so alloziert werden, daß andere Prozesse
möglichst nicht auf diesen zugreifen können.