ATARI DOS 2.x unter MAC OS X…..

….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:

  • fgetstart
    Liefer den Startsektor eines Files zurück
  • fgetnext
    Liefert die Nummer des nächsten Sektors in der File- Sektor- Kette zurück
  • fgetstat
    Liefert den Status eines Files zurück
  • fgetscnt
    Liefer die Anzahl der Sektoren die durch das File belegt werden zurück
  • fgetfno
    Liefert den Index des Files entsprechend seines Auftretens im Directory zurück

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:

  1. Rufe „fgetstart“ -> Der Startsektor der Datei ist nun bekannt. Falls die Datei nicht existiert, wir Null  zurückgegeben.
  2. Lese 125* Datenbytes ab dem ermittelten ersten Sektors in den Buffer.
  3. Rufe „fgetnext“ -> der nächste Sektor ist nun bekannt. Wird Null zurückgegeben, dann war das der letzte Datensektor der Datei.
  4. Lese 125* Datenbytes ab dem ermittelten Sektor und fahre ab Schritt 3 fort.

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.

Ausgabe der VTOC einer DOS 2.x formatierten Diskette

Ausgabe der VTOC einer DOS 2.x formatierten Diskette.

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.

Werbung

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s

%d Bloggern gefällt das: