###   Projekte und Informationen rund um den KC85   ### 

Das neue Betriebssystem "ML-DOS" für den KC85 - Teil 5

von Mario Leubner

Zum Schluß dieser Beitragsreihe möchte ich als Alternative eine Möglichkeit vorstellen, wie das KC-System von der Festplatte gebootet werden kann. Außerdem wurde MODF um eine Datendatei MODF.DAT erweitert und DEP um Aufrufvarianten ergänzt.

Booten von Festplatte
(SYSGEN10.COM, EPROMF8.KCC)

Um dem PC nicht nachzustehen, kann jetzt auch direkt von der Festplatte gebootet werden. Damit wandelt sich der Status der Diskette vom Bootmedium zum reinen Datenträger. Natürlich ist es jedem selbst überlassen, ob dies erforderlich ist, denn der normale Bootvorgang von Diskette ist funktionell gleichwertig. Man muß dann nur beim Einschalten des Rechners immer die entsprechende Startdiskette im Laufwerk B: haben.

Zunächst ein paar allgemeine Erläuterungen zum Bootvorgang am KC: Mit dem CAOS-Befehl "JUMP FC" wird der EPROM im D004-BASIS angesprungen. In diesem EPROM befindet sich ein Urlader, der in den Koppel-RAM kopiert wird. Nachdem der Prozessor im D004 freigegeben wird, arbeitet er das Programm im Koppel-RAM ab. Aufgabe des Urladers ist es, die ersten 512 Byte der Systemspuren der in Laufwerk B: befindlichen Diskette zu lesen.

Der Urlader testet noch, ob die gelesenen Daten ein gültiges System enthalten könnten und startet diesen Programmteil, den man Bootlader nennt. Der Bootlader lädt nun den Rest der Systemspuren und kopiert die Systembestandteile einschließlich der Treiber für das Grundgerät in die entsprechenden Speicherbereiche.

Mit dieser Konfiguration ist es nicht möglich, von der Festplatte zu booten. Es muß ein neuer Urlader her, der einen gleichwertigen Ladevorgang von der Festplatte ausführt. Da zum Zeitpunkt des Bootvorgangs noch keine Programme geladen werden können, muß sich dieser Urlader wieder in einem EPROM-Bereich befinden. Dazu gibt es prinzipiell verschiedene Möglichkeiten:

  1. Stecken eines EPROM-Moduls (z.B. M025) und JUMP nn
  2. EPROM-Modul mit Strukturbyte 01 auf Steckplatz 8
  3. Zusatz-EPROM mit der Moduladresse F8 im D004

Zum Testen des EPROM-Inhaltes ist die erste Version am besten geeignet. Die 2. Version hat den Vorteil, daß das Modul automatisch gestartet wird. Es ist dafür jedoch ein 16K-Modul nötig, obwohl 8K für den EPROM-Inhalt ausreichen würden. Diese Lösung hat aber auch einen Nachteil: Nach jedem RESET wird das Modul angesprungen und man kommt nicht mehr ins CAOS zurück. Am sinnvollsten erscheint mir die 3. Version, die von Uwe Felgentreu in den KC-News 2/95 auf Seite 12 bereits vorgestellt wurde. Dazu ist jedoch ein weiterer Hardware-Eingriff im D004 erforderlich.

An dieser Stelle ein paar ausführlichere Hinweise zum Einbau des zweiten EPROM mit der Adresse F8H (die Angaben in KC-News 2/95 sind nur schwer nachvollziehbar und nicht ganz korrekt):

Zunächst ist die Modulsteuerung für die zwei "Steckplätze" F8H und FCH freizugeben. Dazu ist das Signal A10 vom Pin 1 des DL011 (D309) abzutrennen und das Pin 1 auf High-Pegel zu legen. Nach diesem Arbeitsschritt sollte ein Modulcheck im KC bereits die Module F8 und FC anzeigen, beide mit dem Strukturbyte A7. Ohne weitere Änderungen kann man jetzt wahlweise mit "JUMP F8" oder "JUMP FC" starten.

Zur Sicherheit kann man an dieser Stelle den KC wieder zusammenbauen und den ersten Arbeitsschritt kontrollieren. Nun wollen wir aber einmal vom Original-EPROM und zum anderen vom neuen EPROM booten. Auf den Original-EPROM muß eine Fassung huckepack aufgelötet werden, bei der bis auf das Pin 20 alle Anschlüsse verbunden werden. Das Pin 20 des Original-EPROM liegt auf Masse und ist ebenfalls abzutrennen. Die jetzt offene Leitung mit dem Signal A10 unterscheidet die beiden Adressen F8 und FC.

Um zwei EPROMs ansprechen zu können, muß die benutzte Adresse gespeichert werden, wozu sich das freie Latch im DL175 (D307) anbietet. Der Eingang D3 liegt an Pin 13 auf Masse und muß aufgetrennt werden um A10 anschließen zu können. Die freien Ausgänge Q3 und /Q3 führen jeweils zueinander negierte Signale und werden zur Auswahl des gewünschten EPROMs an deren Pin 20 geführt. Damit der Original-EPROM wieder die Adresse FC bekommt, muß das negierte Signal (Pin 14) an diesen EPROM geführt werden und das nicht negierte Signal (Pin 15) an die Fassung.

Übrigens bringt ein Vertauschen der EPROM-Adressen den KC dazu, sofort vom neuen EPROM und damit von der Festplatte zu booten (allerdings nur mit CAOS 4.3). In einer zukünftigen CAOS-Version könnte nach einem nicht erfolgreichem JUMP FC automatisch noch ein JUMP F8 folgen. Dann ergibt sich die Möglichkeit von Diskette zu booten. Wenn keine Diskette in Laufwerk B: liegt, wird von Festplatte gebootet.

Bezüglich der SWITCH-Steuerung im KC ist die Lösung nicht ganz sauber, denn beide EPROMs werden über dasselbe Latch gesteuert. In dem Latch werden gleichzeitig Daten- und Adreß-Signale gespeichert. Für die Anwendung mit JUMP hat dies keinen Einfluß. Aufpassen muß man nur mit SWITCH:

%SWITCH F8 C3
schaltet die Fassung auf Adresse C000H

%SWITCH FC 0
schaltet um auf den Original-EPROM, und deaktiviert damit gleichzeitig den ROM-F8

Wären es zwei unabhängige Module, dann würde der SWITCH-Befehl im höheren Modul auf das niedrigere Modul ohne Einfluß bleiben. Die Lösung hat aber auch einen Vorteil, denn beide JUMP-Befehle aktivieren so automatisch die Koppel-Schnittstelle.

Nun aber zum Inhalt des neuen EPROMs: Enthalten ist nur der Urlader für die Festplatte und ein aktueller ZAS-Terminaltreiber. Gestartet wird mit JUMP F8. Damit wird der Urlader in den Koppel-RAM gebracht, welcher die ersten 512 Byte von der Festplatte liest. Ist dies möglich und enthält dieser Bereich einen gültigen Festplattenbootlader, dann wird er gestartet, ansonsten erscheinen die üblichen Fehlermeldungen.

War der Ladevorgang erfolgreich, dann wird ZAS vom EPROM in den RAM kopiert. Drucker- und Koppeltreiber sind nicht vorhanden. Der weitere Bootvorgang wird nun vom D004 aus gesteuert, im Grundgerät läuft inzwischen die ZAS-Steuerschleife und wartet auf weitere Kommandos vom D004.

Wie kommt nun das System in die Systemspur(en) der Festplatte? Zunächst ist die Festplatte mit der ersten Partition C: so zu installieren, daß eine Systemspur (mindestens 32KByte) vorhanden ist. In den Kommentaren der Datei OPTION.INC wurde dies ja bereits empfohlen. SYSGEN V1.0 enthält zwei Bootlader, je einen für Diskette und Festplatte. Das System wird nun wie gewohnt zusammengestellt. Werden Druckertreiber und/oder Koppeltreiber benötigt, sind diese stets zu installieren, da im EPROM F8 keine enthalten sind.

Wer mit dem ZAS vom EPROM arbeitet, kann den ZAS-Treiber im SYSGEN-Menü weglassen - dann geht der Ladevorgang etwas schneller. Schließlich wird mit Menüpunkt 7 alles auf Laufwerk C: abgespeichert und ein Versuch mit JUMP F8 kann erfolgen.

Der Bootlader für die Festplatte liest zunächst das ID-Feld der Festplatte und verwendet die dort gefundenen Daten (Sektoren, Köpfe, Spuren) für den weiteren Bootvorgang. Das ganze funktioniert also nur, wenn die Festplatte in dem Modus arbeitet, der vom ID-Feld gemeldet wird!

Noch ein Hinweis zum RAM-Floppy: Im ROM-F8 ist der gleiche Treiber zum Aufbau der Modultabelle wie in SYSGEN.COM enthalten. Die Installation der Module ist jedoch nur im Menü von SYSGEN möglich. Für den normalen Bootvorgang hat dies keine Bedeutung, da die in SYSGEN gewählte Belegung die Standardwerte überschreibt. Ein Warmstart, also "JUMP F8 0" ist möglich, erzeugt aber wieder die Originaltabelle. Wurden mit SYSGEN.COM Werte verändert, kann es beim Warmstart zu Fehlern im RAM-Floppy kommen. Das gleiche gilt übrigens auch für "JUMP FC 0", denn auch dabei wird die Modultabelle neu aufgebaut und alle nachträglichen Veränderungen gehen verloren.

Wechsel der Diskettenformate
(MODF13.COM, MODF.DAT)

MODF.COM wurde in der Version 1.3 so erweitert, daß Blockgröße und Anzahl der Verzeichniseinträge frei gewählt werden können. Damit ergibt sich eine noch größere Vielfalt an möglichen Fremdformaten. Als Folge ist die Definition eines neuen Formates jetzt aufwendiger geworden. Deshalb benutzt MODF eine Datei MODF.DAT, um alle erzeugten DPBs bereitzuhalten. 8 getestete Formate gebe ich vor, diese können beliebig geändert bzw. erweitert werden. Die Bedienung erfolgt menügesteuert und soll deshalb hier nicht erläutert werden.

DEP Version 3.03
(DEP3.COM, DEP3.HLP)

Es gibt jetzt weitere Möglichkeiten, CAOS-Programme direkt beim Aufruf von CP/M aus zu starten. Dazu ist einfach der Dateiname der CAOS-Datei als Parameter von DEP anzugeben, Beispiele:

  1. A0>DEP3 INITIAL.UUU
  2. A0>DEP3 UNIPIC.KCC
  3. A0>DEP3 OTHELLO.KCB
  4. A0>DEP3 BREAK.SSS

Die erste Version arbeitet wie gewohnt, indem der Inhalt der Datei als CAOS-Kommando aktiviert wird. Bei den nächsten beiden Angaben erzeugt DEP3 ein Kommando FLOAD mit dem Namen der Datei. Nur Typangaben *.KC? werden so interpretiert, damit werden die normalen KCC-Dateien und die BASIC-Speicherabzüge wie OTHELLO.KCB erfaßt. Außerdem bleibt noch etwas Spielraum für eigene Ideen.

Die letzte Version funktioniert nur unter CAOS 4.3, denn es wird der BASIC-Interpreter gestartet und CLOAD"BREAK" ausgeführt. Dazu muß allerdings der BASIC-Interpreter sofort auf Diskettenarbeit eingestellt sein. Bei CAOS 4.2 würde versucht, das BASIC-Programm von Kassette zu laden.