80-Bus Journal

  

November 1983 · Ausgabe 10/11

behandelt:

Carry = 1 wenn Fehler sonst 0

bei Fehler A=Fehlernummer (fuer Pheas stehen die Fehlernummern 10-1F zur Verfuegung).

Der Bootstap-Loader liest aus den ersten Sektoren der Diskette das DOS in den dafuer vorgesehenen Speicherbereich. Moeglicherweise wird auch Nassys mitgeladen (sh. beiliegenden Sourcecode).

Das Formatierungs-Programm

Die Diskette wird initialisiert, die Sektoren des Inhaltsverzeichnisses muessen mit 0E5H auf­ge­fuellt werden.

Anpassung BASIC :

Nach dem Initialisieren des Basic ist in die Adresse 1055h-56h anstelle von FF40h die Adresse BASCAL (sh. Maschinensprache-Schnittstelle) einzutragen. Vor der Initialisierung des Basics kann BASCAL auch an die Adresse E335 eingetragen werden (bei BASIC im RAM sinnvoll).

Anpassung anderer Software:

Die Moeglichkeiten, das DOS von Maschinensprache aus aufzurufen sind gesondert beschrieben.

Hardware Aenderungen:

Neben dem Anschluss des Controllers wird eine kleine Schaltung zur Ausblendung des Monitor-Roms benoetigt. (Über diese Möglichkeiten können Sie einiges in Heft 6 nachlesen) .

Fuer EMDOS :

Boot-Eprom –> Monitor Sockel

Ausblendung des Boot-Eproms und ersetzen durch RAM entweder statisch oder 4k Page der dynamischen RAM-Karte

Fuer CP/M :

Ersetzen der gesamten unteren 4k Page 0h- 1000h durch RAM

Bei Bildschirmzugriffen wird kurzzeitig zurueckgeschaltet.

EMDOS Speicherbelegung:

D000-D100   Puffer frei, solange DOS nicht aktiv

D100   Einsprungpunkt von Nassys aus

D103   Einsprungpunkt fuer DOS-Aufrufe (sh. EMDOS.MAC)

D106 Nassys-PHEAS-Aufrufe
E D109 A ; HL; DE Register entsprechend ARG2-ARG4 versorgen und Aufruf von PHEAS (zum Test von PHEAS und zum direkten Sektorzugriff.)

D109 BASCAL Einsprungpunkt von BASIC

D10C Sprung zu PHEAS


Pheas dient zum Lesen und Schreiben der einzelnen Sektoren

entsprechend Sektornummer. Die Diskette besteht aus vielen 256-Bytes langen logischen Sektoren. Die Gruppengroesse umfasst 4 Sektoren. Bei CP/M kompatieblen Diskettenformaten muss der Skew Faktor berueckschtigt werden !

PHEAS Aufrufe :

A= Aufrufsnummer

A=0   Init PHEAS (nach Laden aufgerufen)

A=1 Abort PHEAS (Interrupt loeschen, sodass PHEAS geloescht werden kann)

A=2   Select Disk (C=Diskno.; HL wird adresse DSB

A=3   Sektor Lesen; HL Sektornummer ;Bit 15 = 1 : Relativ DE Adresse Daten

A=4   Sektor Schreiben
HL Sektornummer
DE Speicheradresse

DSB   Disketten Steuer Block

Fuer jeden Laufwerkstyp einen, Format s.h. unten

Seite 20 von 52