80-Bus Journal

  

November 1983 · Ausgabe 10/11

EMDOS-Anpassung

von Helmut Emmelmann

Anpassung von EMDOS an das jeweilige Floppysystem

Folgende Aenderungen sind notwendig:

– relokieren des DOS (dazu liegen 2 Versionen des DOS mit verschiedenen Startadressen vor)

– schreiben bzw. anpassen des Moduls PHEAS. Es liegt am Ende des DOS und kann so einfach ersetzt werden.

– schreiben eines Bootstrap-Loaders, der das DOS und Nassys in den Speicher laedt.

– schreiben eines Formatierungsprogramms zum Initialisieren der Disketten

– evt. aendern einiger Anwendugsprogramme zum direkten Aufruf des DOS. (z.B. BASIC, ZEAP, Nassys, Pascal …)

Relokieren des DOS:

Das DOS liegt in Versionen fuer D000-E000 und A000-B000 vor. Es kann durch Vergleich der beiden Versionen an jeden 4k-Block gelegt werden.

Modul PHEAS:

Das Modul PHEAS uebernimmt die Funktionen des Sektorschreibens- und lesens.

Diskettenformat:n Sektoren je 256 Bytes
n/4 Groups je 4 Sektoren=1k

Ein Sektor wird durch eine fortlaufend vergebene Sektornummer identifiziert. PHEAS muss daraus Spur- und Sektornummer innerhalb der Spur berechnen. Achtung !!! bei CP/M-kompatiblen Formaten muss der Skew-Faktor beruecksichtigt werden (=versetzte Sektornummern auf der Spur).

Die ersten m Sektoren einer Diskette sind fuer das System reserviert und werden nur beim Booten verwendet. Die folgenden Groups enthalten das Inhaltsverzeichnis. Das DOS verwendet oft Sektornummern relativ zum 1. Directory- Sektor. Diese Sektornummern sind durch ein gesetztes BIT 15 gekennzeichnet.

Pheas hat nur einen Einsprungpunkt; die jeweilige Funktion wird durch eine Nummer im Akku angegeben.

Pheas-Aufrufe :

A=0   Initialisiere Pheas, beim Systemstart aufgerufen

A=1   Schalte Motoren und evt. Interrupt aus (DOS verlassen)

A=2   Select Drive (C= Drivenumber 0h, 1h … ergibt –> HL Adresse DSB Disk- Steuer -Block s.u.)

A=3   Lese Sektor (DE Adresse; HL Sektornummer (Bit 7 des H-Registers zeigt relative Sektornummer an))

A=4   Schreibe Sektor (DE Adresse; HL Sektornummer sh. oben)

Aufbau des DSB (fuer jeden Laufwerkstyp einen)

1. Byte Sektornummer des 1. Sektors des Directories

2. Byte Laenge des Inhaltsverzeichnisses in Sektoren

3. Byte Nummer der letzten Group auf der Diskette

1. Group enthaelt den Beginn des Directories und hat die Nummer 0. Weitere Informationen ueber Pheas sh. Pheas-Geruest.

Fehlerbehandlung :

Im ganzen DOS, so auch im Pheas, werden auftretende Fehler folgendermassen

Seite 19 von 52