Kleiner Erfolg. Alle „Kernel- Routinen“ laufen. Die erste höher Funktion ist auf dem Weg: „rfile“, wir können nun eine Datei lesen. Das tracen funktioniert, nur das Kopieren der Daten in den Buffer muss noch richtig programmiert werden.
Kleiner Erfolg. Alle „Kernel- Routinen“ laufen. Die erste höher Funktion ist auf dem Weg: „rfile“, wir können nun eine Datei lesen. Das tracen funktioniert, nur das Kopieren der Daten in den Buffer muss noch richtig programmiert werden.
….derzeit eine Sammlung grundlegender Funktionen in „C“. Nicht mehr.
Mit grundlegend bezeichne ich derzeit zwei Hauptgruppen von C- Subroutinen die ich zur Zeit entwickele. Die eine möchte ich gerne als „Kernel- Funktionssatz“ benennen. Das sind solche Programmteile die als Bausteine der zweiten Funktionsgruppe dienen, die wiederum komplexere Aufgaben übernehmen und sich aus Funktionen der ersteren zusammensetzen.
Zur Gruppe der „Kernel- Funktionen“ gehören beispielsweise:
Die Zweite Funktionsgruppe „Komplexe Funktionen:
Als Beispiel dazu der Funktionsteil „readfile“.
Der Funktion „readfile“ übergeben wir den Dateinamen und den Speicherbereich in dem wir die gelesenen Daten ablegen möchten. Die Funktion tut nun das Folgende:
Das War’s DOS 2.x macht es nicht anders……
DOS= Disk Operating System:
Das DOS – oder genauer: Das (F)ile (M)anagement (S)ystem des Atari DOS – hat die Aufgabe die Sektoren einer Diskette geordnet nach Datei- Namen zu verwalten. Dazu legt das DOS drei wesentliche Datenstrukturen an. Die erste ist das schon erwähnte „Directory“. Die zweite Struktur ist die „Volume Table of Contents“ die VTOC und die Dritte der Datensektor selbst.
Das Directory identifiziert die Dateien eindeutig, enthält den Status einer Datei, den Starsektor und die Anzahl der Sektoren die die Datei auf der Diskette belegt. Die VTOC gibt Auskunft über die Anzahl der verfügbaren Sektoren, der belegten Sektoren und zeigt für jeden Sektor auf der Diskette ob er belegt oder frei ist. Der Datensektor selbst enthält die Daten der Datei und Informationen darüber, wieviele Bytes des Sektors für Daten genutzt werden, die Nummer der Datei zu dem die Daten gehören und schließlich den Zeiger auf den nächsten Datensektor der zur Datei gehört (Steuerbytes. In diesem Fall 3=3 x 8 Bit=24 BIT). Enthält der Zeiger auf den nächsten Sektor eine „0“, handelt es sich um den letzten Sektor der Datei.
Die VTOC besteht im wesentlichen aus 90 Bytes. Jedes Bit repräsentiert einen Sektor (90 x 8=720 mögliche Sektoren). Bit gesetzt bedeutet: Sektor frei.
Eine Kleine Einschränkung: Einen DOS 2.x Emulator kann und will sich die angestrebte Funktionssammlung für die Programmiersprache „C“ nicht nennen . Das DOS welches auf der original Hardware eines Atari Computers läuft, ist wesentlich umfangreicher und komplexer. So kann das original DOS bis zu 8 Laufwerke und in der Summe max. 8 geöffnete Dateien verwalten. Weder das letztere noch die damit zusammenhängende Verwaltung des RAM- Speichers leistet die beschriebene Funktionssammlung. Ziel des Projektes ist es lediglich die wichtigsten Teile des DOS 2.x in C abzubilden um Disk Image- Files auf MAC OS oder, einer beliebig anderen Platform , ohne den „Umweg“ über einen Emulator bearbeitbar zu machen.
Tiefer Einblicke zum original DOS gewährt das (Standard?)Werk: „Inside Atari DOS“ .
*Jeder Sektor einer im single density Format formatierten Diskette kann mit 128 Bytes beschrieben werden, Jeder Sektor einer im double density Format formatierten Diskette kann mit 256 Bytes beschrieben werden. Nach Abzug der 3 Steuer- Bytes bleiben jew. 125/ 253 Datenbytes übrig.