Topic : TOS - das Betriebssystem Author : Version : tos.hyp (5. März 2013) Subject : Programmieren/Atari Nodes : 3001 Index Size : 93602 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Titel @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File10.1 Drei wichtige Programmierregeln TOS 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.