Herunterladen Inhalt Inhalt Diese Seite drucken
Vorschau ausblenden Andere Handbücher für KC 85:
Inhaltsverzeichnis

Werbung

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für Kleincomputer KC 85

  • Seite 3: Inhaltsverzeichnis

    Handbuch für den Programmierer Gliederung Gliederung Inhalt Seite Präambel H A R D W A R E Erweiterungen im KC-System........ 6 1.1. Einführung..........6 1.2. ROM-Erweiterung........... 6 1.3. Koppel-RAM..........6 1.4. Koppel-Steuerung.......... 7 Prozessorsystem im D004 FLOPPY DISK BASIS....8 2.1.
  • Seite 4 Handbuch für den Programmierer Gliederung T E I L C A O S - B E T R I E B S A R T Systemstart..........64 Schnittstellenbeschreibung DEP......64 2.1. Belegung des Koppel-RAM........65 2.2. Funktionen der Bits im Steuerbyte......65 2.3. Fehlermeldungen...........67 Dateiaufbau..........68 3.1.
  • Seite 5: Präambel

    Handbuch für den Programmierer Präambel Präambel Erarbeiten von Anwenderprogrammen für ein KC-Floppy-System hat vor allem dann Bedeutung, wenn nicht auf Standardsoftware zurückgegriffen werden kann, die Standardsoftware zu modifizieren (installieren) ist oder Sonderprobleme zu lösen sind. Vorausset- zung für den Programmierer sind entsprechende Hardwarekenntnisse sowie Kenntnisse in der Assemblerprogrammierung /1/.
  • Seite 6: Hardware

    Hardware 1. Erweiterungen im KC-System HARDWARE Erweiterungen KC-System 1.1. Einführung Das KC-Floppy-System enthält mehrere Hardware-Komponenten, die der Erweiterung des KC-Grundgerätes entsprechend dem Modulkonzept des KC-Systems dienen. Die folgende Beschreibung ist eine Ergän- zung zum Abschnitt 2.1. des Manuals. Die Moduladresse der Erweiterung ist 0FCH. Beim SWITCH-Kommando gelten folgende Bitbedeutungen: SWITCH FC kk-------------------- ---------------------------------...
  • Seite 7: Koppel-Steuerung

    Hardware 1. Erweiterungen im KC-System 1.4. Koppel-Steuerung Zur Steuerung des Prozessorsystems im FLOPPY DISK BASIS durch den Prozessor im KC- Grungerät enthält das FLOPPY DISK BASIS eine spezielle Koppel-Steuerung, deren Zugriff über das gleiche Bit beim SWITCH- bzw. JUMP-Kommando Koppel-RAM gesteuert wird.
  • Seite 8: Prozessorsystem Im D004 Floppy Disk Basis

    Hardware 2. Prozessorsystem Prozessorsystem D004 FLOPPY DISK BASIS 2.1. Speicheraufteilung Der Speicherbereich des Prozessorsystems im FLOPPY DISK BASIS ist ausschließlich aus Schreib-Lese-Speichern aufgebaut. Der Bereich von 0 bis FC00H ist ein dynamisches RAM. Der Bereich von FC00H bis FFFFH ist ein statisches RAM, auf welchen beide Prozessoren zugreifen können.
  • Seite 9: Floppy-Disk-Interface

    Hardware 2. Prozessorsystem Die Adressen der Interruptserviceroutinen sind folgender Tabelle zu entnehmen: CTC-Kanal Adresse --------------------------- FBE0 FBE2 FBE4 FBE6 2.3. Floppy-Disk-Interface externe Anschluss für Diskettenlaufwerke mit der Bezeichnung "FD - INTERFACE" hat die in folgender Tafel aufgeführte Belegung. Anschluß Signal Bedeutung ------------------------------------------------------------------------------------------------------------------------ /FLT...
  • Seite 10 Hardware 2. Prozessorsystem Es erfolgt die Umcodierung in folgender Weise: Eingang Ausgang -------------------------- Damit ist der Anschluss von maximal vier Minifolienspeicherlauf- werken für MFM-Aufzeichnung unter Beachtung Anschlußbe- dingungen möglich.
  • Seite 11: Systemcheck

    Aufgabe dieses Programmaufrufes soll es sein, Programme von einem anderen Computer in den KC zu laden, ohne auf die Kassette oder Diskette zugreifen zu müssen. Beim KC 85/4 ist eine vergleichbare Funktion bereits Bestandteil des Betriebssystems. Die Laderoutine wird beim Aufruf auf den Bereich ab BC00H kopiert und der CAOS-ROM wird wieder zugeschaltet.
  • Seite 12: Software

    PC-Betriebsart 1. Einführung Software TEIL PC-BETRIEBSART Einführung Dieser Teil des Handbuchs beschreibt die Systemorganisation, die Speicherstruktur Eintrittspunkte Betriebssystems MicroDOS. Es werden die notwendigen Informationen gegeben, um Programme zu schreiben, welche unter MicroDOS laufen. MicroDOS ist logisch in drei Teile aufgeteilt, in das Basis- Ein/Ausgabe-System (BIOS), Basis-Platten-Betriebssystem...
  • Seite 13: Systemstart

    Quittung Programmfortsetzung und Entscheidung, ob PC- oder CAOS-Betriebsart vorliegt - Erzeugen einer Hilfsadresstabelle zur Bildschirmarbeit - Feststellung, ob KC 85/2 bzw. /3 oder KC 85/4 vorliegt - Aufbau der RAM-Floppy-Verwaltungstabelle - Umkopieren der Gerätetreiberprogrammschleife - Übergang in die Kommandoabarbeitung über den Koppel-RAM 2.2.
  • Seite 14: Systemdatenstrukturen

    PC-Betriebsart 3. Systemdatenstrukturen Systemdatenstrukturen folgenden werden einige grundlegende Datenstrukturen Betriebssystems erläutert. 3.1. Systemparameter den ersten 256 Bytes des Speichers befinden sich folgende vom System benutzte Datenfelder, welche nachfolgend beschrieben werden. Adresse Bedeutung ----------------------------------------- 0000H Sprung zum Warmstart WBOOT 0003H I/O-Byte 0004H aktuelles Laufwerk 0005H...
  • Seite 15 PC-Betriebsart 3. Systemdatenstrukturen Der Dateisteuerblock (FCB) besteht aus einem Feld von 33 Byte im Fall des sequentiellen Zugriffs und einer Folge von 36 Byte bei wahlfreiem Zugriff. Der Standard-FCB auf Adresse 005CH kann für wahlfreien Zugriff benutzt werden, wenn die drei Bytes ab 007DH für diesen Zweck zur Verfügung stehen.
  • Seite 16: Der Standardpuffer

    PC-Betriebsart 3. Systemdatenstrukturen 3.3. Der Standardpuffer Der Standardpuffer ab Adresse 80H wird vom System als Zwischen- speicher für Diskettenoperationen genutzt. Auch Anwenderprogramme können diesen Puffer verwenden. Zusätzlich wird vom Kommando- interpreter der Teil der Kommandozeile, welcher auf den Programm- namen folgt, im Standardpuffer abgelegt (siehe Abschnitt 5). 3.4.
  • Seite 17 PC-Betriebsart 3. Systemdatenstrukturen 4C - 4F Laufwerke für Dateisuche Laufwerk für temporäre Dateien Laufwerknummer für Fehleranzeige Flag für Diskettenwechsel 52 - 56 reserviert Flag für Länge der Fehlermeldung 58 - 59 Datum (nicht verwendet) 5A - 5C Zeit (nicht verwendet) 5D - 5E Adresse des gemeinsamen Speicherbereichs 5F - 61...
  • Seite 18: Logische Geräte

    PC-Betriebsart 4. Logische Geräte Logische Geräte 4.1. Laufwerke Die auf dem FLOPPY DISK BASIS implementierte Version des MicroDOS verwaltet maximal acht logische Laufwerke mit den Bezeichnungen von A...H. Laufwerk A ist stets das RAM-Floppy, dessen Kapazität vom Grund- gerät und den im Gesamtsystem gesteckten RAM-Modulen abhängt. Laufwerk B ist beim Start das Systemlaufwerk.
  • Seite 19 PC-Betriebsart 4. Logische Geräte Neben den üblichen Codierungen, welche zum MicroDOS übertragen werden, sind in der Tastaturcodetabelle einige Codes möglich, die direkt ausgeführt werden. Aus der folgenden Zusammenstellung sind diese Codes zu entnehmen: Codes Bedeutung ---------------------------------------------------------------- Cursor on (unter Umgehung von MicroDOS) Cursor off (unter Umgehung von MicroDOS) Autorepeat on/off...
  • Seite 20: Zusatzkanäle

    PC-Betriebsart 4. Logische Geräte 4.3. Zusatzkanäle MicroDOS verwaltet außerdem einen sequentiellen Kanal Datensenden und Daten-empfangen. Im FLOPPY DISK BASIS werden beide Kanäle normalerweise einer V24-Duplexschnittstelle zugeordnet. Beim Systemstart wird, wenn vorhanden, der rechte Kanal eines M003 Moduls für eine Duplexübertragung mit DTR-Protokoll bei 1200 Baud initialisiert.
  • Seite 21: Kommandoeingabe

    PC-Betriebsart 5. Kommandoeingabe Kommandoeingabe Beim Programmaufruf über die Kommandoeingabe analysiert der Kom- mandoprozessor eingegebene Zeile entscheidet, residentes Kommando eingegeben wurde oder ein Programm von Dis- kette geladen werden muß. Der Kommandoprozessor konstruiert die ersten sechzehn Bytes von zwei möglichen Dateisteuerblöcken für ein transientes Programm durch Prüfung des Teils der Kommandozeile, welcher nach dem...
  • Seite 22: Bdos-Funktionen

    PC-Betriebsart 6. BDOS-Funktionen BDOS-Funktionen 6.1. Vorbemerkungen Diskettengrundbetriebssystem (BDOS) stellt Kern MicroDOS-Betriebssystems dar. Es unterstützt die Ein- und Ausgabe auf den logischen Geräten (Konsole, Drucker, Zusatzkanäle) sowie die Dateiarbeit auf den Disketten. Über BDOS-Rufe können folgende Aufträge angefordert werden: - Zeichenorientierte Ein- und Ausgabe * Zuordnung der logischen zu den physischen Geräten *Zeichen-...
  • Seite 23: Liste Der Bdos-Funktionen

    PC-Betriebsart 6. BDOS-Funktionen 6.3. Liste der BDOS-Funktionen Die BDOS-Funktionen sind nach den Funktionsnummern geordnet. ************************************************* Funktion 0: System rücksetzen ************************************************* Eingangsparameter: Register C: 00H ************************************************* Diese Funktion gibt die Steuerung an MicroDOS auf dem Kommando- Niveau zurück (Warmstart). Sie hat den gleichen Effekt wie ein Sprung auf die Adresse BOOT.
  • Seite 24 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 3: Zusatzeingabe ************************************************* Eingangsparameter: Register C: 03H Ausgangsparameter: Register A: ASCII-Zeichen ************************************************* Die Zusatzeingabe liest ein Zeichen von dem zusätzlichen logi- schen Kanal das Register Steuerung kehrt nicht zurück, bevor nicht ein Zeichen gelesen wurde. ************************************************* Funktion 4: Zusatzausgabe *************************************************...
  • Seite 25 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 6: direkte Konsolen-Ein/Ausgabe ************************************************* Eingangsparameter: Register C: 06H Register E: 0FFH (Eingabe) oder ASCII-Zeichen (Ausgabe) Ausgangsparameter: Register A: Zeichen oder Status ************************************************* Die direkte Ein/Ausgabe wird von MicroDOS unterstützt für solche speziellen Anwendungen, einfache Ein/Ausgabeoperationen gefordert sind.
  • Seite 26 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 8: Status Zusatzausgabe ************************************************* Eingangsparameter: Register C: 08H Ausgangsparameter: Register A: Status ************************************************* Funktion vorliegenden Implementierung MicroDOS kurzgeschlossen und übergibt stets im Akkumulator den Wert 00H. ************************************************* Funktion 9: Zeichenkette ausgeben ************************************************* Eingangsparameter: Register C: 09H Registerpaar DE: Adresse der Zeichen ************************************************* Die Zeichenkettenausgabefunktion sendet Zeichen aus dem Speicher,...
  • Seite 27 PC-Betriebsart 6. BDOS-Funktionen Der Puffer erhält folgende Form: .... wobei mx die maximale Anzahl von einzulesenden Zeichen (1 bis 255) und nc die tatsächliche Anzahl von eingelesenen Zeichen (vom BDOS bei Rückkehr gesetzt) ist. Es folgen die eingelesenen Zei- chen.
  • Seite 28 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 12: Versionsnummer holen ************************************************* Eingangsparameter: Register C: 0CH Ausgangsparameter: Registerpaar HL: Versionsnummer ************************************************* Die Funktion 12 übergibt einen 2-Byte-Wert, wobei H=00H anzeigt, daß es sich um ein CP/M 2.2-kompatibles System handelt (H=01H bei MP/M). Im Register L übergibt MicroDOS einen hexadezimalen Wert entsprechend der Versionsnummer des Systems, also z.B.
  • Seite 29 PC-Betriebsart 6. BDOS-Funktionen Das Laufwerk wird in einen "on line"-Status versetzt, welcher insbesondere das entsprechende Inhaltsverzeichnis bis zum näch- sten Kaltstart, Warmstart oder Systemrücksetzen aktiviert. Datei- steuerblöcke, welche den Laufwerkskode 0 aufweisen, beziehen sich automatisch auf das momentan aktuelle Laufwerk. Laufwerkcodes von 1 bis 16 ignorieren die Standard-Anwahl und beziehen sich direkt auf ein Laufwerk von A bis H.
  • Seite 30 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 16: Datei schließen ************************************************* Eingangsparameter: Register C: 10H Registerpaar DE: FCB-Adresse Ausgangsparameter: Register A: Verzeichniscode ************************************************* Diese Funktion führt Umkehrung Dateieröffnung durch. Wurde der durch DE adressierte Dateisteuerblock durch eine vor- hergehende Eröffnung oder Erzeugung (siehe Funktionen 15 und 22) aktiviert, so speichert die Dateischließung den Dateisteuerblock in das Inhaltsverzeichnis der Diskette.
  • Seite 31 PC-Betriebsart 6. BDOS-Funktionen Ein Fragezeichen (3FH) in irgendeiner Position von "f1" bis "ex" bedeutet Übereinstimmung entsprechenden Feld haltsverzeichnis des angewählten Laufwerks. Wenn das "dr"-Feld Fragezeichen enthält, ist die automatische Laufwerkaus- wahl unterbunden und das aktuelle Laufwerk wird auf Übereinstim- mung geprüft, wobei Suchfunktion...
  • Seite 32 PC-Betriebsart 6. BDOS-Funktionen Die Funktion 19 übergibt bei erfolgreicher Abarbeitung im Akku- mulator den Verzeichniscode von 0 bis 3 und beim Auftreten eines Fehlers den Wert 0FFH. Im Modus der Fehlerbearbeitung durch das System erfolgt eine Fehlermitteilung und anschließend der Warm- start.
  • Seite 33 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 21: sequentiell schreiben ************************************************* Eingangsparameter: Register C: 15H Registerpaar DE: FCB-Adresse Ausgangsparameter: Register A: Verzeichniscode ************************************************* Wenn der durch DE adressierte Dateisteuerblock durch eine der Funktionen oder aktiviert wurde, schreibt diese Funktion den 128 Byte langen Datensatz auf der momentanen DMA- Adresse durch diesen...
  • Seite 34 PC-Betriebsart 6. BDOS-Funktionen Diese Funktion gleicht Eröffnungsfunktion Unter- schied, daß Dateisteuerblock eine Datei bezeichnen muß, welche noch nicht ausgewählten Inhaltsverzeichnis existiert (d.h. demjenigen Verzeichnis, welches explizit durch ein "dr"-Feld ungleich Null vorgegeben ist bzw. bei "dr"=0 in dem aktuellen Verzeichnis). Das BDOS erzeugt einen Eintrag für eine leere Datei im Inhaltsverzeichnis.
  • Seite 35 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 24: Abfrage Laufwerke im 'online'- Zustand ************************************************* Eingangsparameter: Register C: 18H Ausgangsparameter: Registerpaar HL: Anwahlvektor ************************************************* Der Anwahlvektor, welcher vom MicroDOS-System übergeben wird, ist 16-Bit-Wert niederwertigste Register L dem Laufwerk A entspricht und das höchstwertigste Bit des Registers H dem sechzehnten Laufwerk P (in der Implemen- tierung auf KC-Floppy-System bis max.
  • Seite 36 PC-Betriebsart 6. BDOS-Funktionen Nach einem Kaltstart, einem Warmstart oder einem Rücksetzen des Diskettensystems ist die DMA-Adresse automatisch auf 0080H ge- setzt. Die DMA-Adreßsetzfunktion kann benutzt werden , um diesen Standardwert zur Adressierung eines anderen Speicherfeldes, wo die Daten liegen, zu ändern. Dadurch erhält die DMA-Adresse den vorgegebenen Wert einer...
  • Seite 37 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 29: Schreibschutzvektor holen ************************************************* Eingangsparameter: Register C: 1DH Ausgangsparameter: Registerpaar HL: Schreibschutzvektor ************************************************* Funktion 29 übergibt im Registerpaar HL einen Bit-Vektor, der diejenigen Laufwerke angibt, denen vorübergehender Schreibschutz gesetzt ist. Wie bei Funktion entspricht das niederwertigste Bit dem Laufwerk A, während das höchstwer- tigste dem Laufwerk P zugeordnet ist.
  • Seite 38 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 31: Parameteradresse holen ************************************************* Eingangsparameter: Register C: 1FH Ausgangsparameter: Registerpaar HL: DPB-Adresse ************************************************* Die Adresse des BIOS-residenten Diskettenparameterblocks (DPB) für das gerade aktive Laufwerk wird als Resultat dieser Funktion im Registerpaar HL übergeben. Diese Adresse kann für zwei Zwecke benutzt werden.
  • Seite 39 PC-Betriebsart 6. BDOS-Funktionen Die Funktion "wahlfrei lesen" ähnelt der Funktion "sequentiell lesen" Unterschied, daß Leseoperation einer bestimmten Datensatznummer durchgeführt wird, welche durch den 24 Bit-Wert aus den drei dem FCB folgenden Bytes gebildet wird (Bytepositionen r0 bei 33, r1 bei 34 und r2 bei 35). Die Folge der 24 Bit ist mit dem niederwertigsten Byte...
  • Seite 40 PC-Betriebsart 6. BDOS-Funktionen Die Fehlercodes 1 und 4 treten auf, wenn eine wahlfreie Lese- operation auf einen Datenblock zugreift, welcher vorher nicht geschrieben wurde bzw. auf eine Erweiterung, die nicht erzeugt wurde. Fehlercode 3 tritt normalerweise bei richtiger Funktion Systems nicht auf, kann...
  • Seite 41 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 35: Dateigröße berechnen ************************************************* Eingangsparameter: Register C: 23H Registerpaar DE: FCB-Adresse Ausgangsparameter: Dateigröße in r0,r1,r2 ************************************************* Bei der Ermittlung der Dateigröße adressiert das Registerpaar DE einen Dateisteuerblock im Format für wahlfreien Zugriff, d.h. die Bytes r0 bis r2 sind vorhanden. Der Dateisteuerblock enthält einen eindeutigen Dateinamen, welcher im Inhaltsverzeichnis ge- sucht wird.
  • Seite 42 PC-Betriebsart 6. BDOS-Funktionen Diese Funktion setzt automatisch das Feld für wahlfreien Zugriff einer Datei, einem bestimmten Punkt sequentiell gelesen oder geschrieben wurde. Die Funktion kann auf zwei Arten nützlich sein. Erstens ist es oft notwendig, eine Datei zuerst sequentiell zu lesen nach verschiedenen...
  • Seite 43 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 40: Wahlfreies Schreiben mit Auffüllen durch Nullen ************************************************* Eingangsparameter: Register C: 1EH Registerpaar DE: FCB-Adresse Ausgangsparameter: Register A: Rückkehrcode Register H: Fehlercode ************************************************* Diese Funktion arbeitet analog Funktion wahlfreien Schreibens 34 mit der Ausnahme, daß der zugewiesene Block vor dem Schreiben mit Nullen aufgefüllt wird.
  • Seite 44 PC-Betriebsart 6. BDOS-Funktionen Funktion 46 bestimmt die Anzahl der freien Sektoren (128 Byte lange Sätze) auf der Diskette, die durch Register E angegeben wird. Der Wert 0 entspricht der Diskette A, 1 der Diskette B usw. bis 15 für die Diskette P. Der Wert der Anzahl der freien Sektoren wird im Dual-Code in den ersten drei Bytes des aktuellen Puffers des Direktzugriffs (DMA) in folgendem Format zurückgegeben:...
  • Seite 45 PC-Betriebsart 6. BDOS-Funktionen Funktion 49 ermöglicht den Zugriff auf den Systemsteuerblock. Der Systemsteuerblock ist ein 100 Byte großer Datenbereich (Abschnitt 3.4.), der Marken und Daten beinhaltet, die vom System genutzt werden. Für die Anwendung dieser Funktion speichert das aufrufen- Programm im Registerpaar DE die Adresse des Parameterblocks, der die Funktion bestimmt.
  • Seite 46 PC-Betriebsart 6. BDOS-Funktionen Die Nummer der Funktion im Feld FUNC für den Aufruf der BIOS- Funktion muß sich in den Grenzen von 00H...10H (0...16) bewegen. Es folgt eine Aufstellung der Funktionsnummern, der notwendigen Eingabedaten, der zurückgegebenen Werte und der Wirkungen dieser Funktionen.
  • Seite 47 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 108: Abfragen/Stellen des Rückkehrcodes ************************************************* Eingangsparameter: Register C: 6CH Registerpaar DE: Rückkehrcode oder FFFFH Ausgangsparameter: Registerpaar HL: Rückkehrcode ************************************************* Funktion ermöglicht Programm Abschluß einen Rückkehrcode zu stellen. Der Rückkehrcode wird vor der bedingten Ausführung des Kommandos (Kennzeichen ':' im Kommandosatz) über- prüft, und er kann auch von einem Programm, das mit Hilfe der Funktion 47 von einem anderen Programm aufgerufen wurde, über- prüft werden.
  • Seite 48 PC-Betriebsart 6. BDOS-Funktionen Funktion 110 gewährleistet das Abfragen oder das Stellen des Begrenzers einer Zeichenkette für die Funktion 9. Wenn im Re- gisterpaar DE der Wert 0FFFFH übergeben wird, dann wird im Re- gister A der aktuelle Wert des Begrenzers zurückgegeben, in allen anderen Fällen wird der Begrenzer durch das Zeichen im Register E ersetzt.
  • Seite 49 PC-Betriebsart 6. BDOS-Funktionen ************************************************* Funktion 152: Vorbereiten des Datei- steuerblocks ************************************************* Eingangsparameter: Register C: 98H Registerpaar DE: Adresse des Blocks PFCB Ausgangsparameter: Register A: Rückkehrcode ************************************************* Funktion 152 gewährleistet die Vorbereitung eines Dateisteuer- blocks aus dem Namen der Datei. Das aufrufende Programm übergibt im Registerpaar DE die Adresse eines Parameterblocks, der fol- gendes Format besitzt: PFCB: DEFW STRING...
  • Seite 50: Bios-Funktionen

    PC-Betriebsart 7. BIOS-Funktionen BIOS-Funktionen 7.1. Beschreibung der BIOS-Schnittstelle Das BIOS ist der von der Hardware abhängige Modul des Betriebs- systems MicroDOS. Es beinhaltet die für die spezielle Hardware notwendigen Ein-/Ausgaberoutinen. Damit bildet es die Schnitt- stelle zwischen der Hardware und dem hardwareunabhängigen Teil des Betriebssystems bzw.
  • Seite 51: Logische Ein-/Ausgabekanäle

    PC-Betriebsart 7. BIOS-Funktionen 7.3. Logische Ein-/Ausgabekanäle MicroDOS unterstützt vier logische Kanäle: - einen Ein/Ausgabekanal CON: - einen Eingabekanal RDR: - zwei Ausgabekanäle LST: und PUN: Über die im Punkt 6.3. beschriebenen BDOS-Funktionen sind diese Kanäle ansprechbar. Die Unterprogramme, höhere Programmiersprachen und verschiedene Kommandos (z.
  • Seite 52: Liste Der Bios-Funktionen

    PC-Betriebsart 7. BIOS-Funktionen Jedem logischen E/A-Kanal kann genau einer von vier möglichen logischen Subkanälen zugeordnet werden. Diese Zuordnung wird durch den Inhalt des I/O-Bytes auf Adresse 0003H bestimmt. Die Belegung des I/O-Bytes kann z.B. mittels des transienten Program- mes STAT geändert werden. Da alle physischen Gerätetreiber vom Programm im KC-Grundgerät verwaltet werden, wird eine Kopie des I/O-Bytes beim Warmstart im Koppel-RAM übergeben (siehe Anlage 6.4.:).
  • Seite 53 PC-Betriebsart 7. BIOS-Funktionen Sprungnummer Befehl Funktion ----------------------------------------------------------------- JMP BOOT ; Kaltstartroutine JMP WBOOT ; Warmstartroutine JMP CONST ; CONSOLE-Status abfragen JMP CONIN ; CONSOLE-Eingabe JMP CONOUT ; CONSOLE-Ausgabe JMP LIST ; LIST-Ausgabe JMP PUNCH ; PUNCH-Ausgabe JMP READER ; READER-Eingabe JMP HOME ;...
  • Seite 54 PC-Betriebsart 7. BIOS-Funktionen Nachfolgend werden die zu den BIOS-Eintrittspunkten gehörenden Routinen beschrieben. KBOOT Kaltstart Aufrufparameter: Rückkehrparameter: Die Routine erhält die Steuerung vom Urlader und ist verantwortlich für die grundlegende Systeminitialisie- rung. WBOOT Warmstart Aufrufparameter: Rückkehrparameter: Die Systemparameter werden wie folgt initialisiert: Speicheradresse Inhalt ------------------------------------------------------...
  • Seite 55 PC-Betriebsart 7. BIOS-Funktionen PUNCH Senden Zeichen auf Kanal PUN: Aufrufparameter: C - Sende-Zeichen Rückkehrparameter: Die Routine gibt das in Register C bereitgestellte Zeichen auf den Kanal PUN: aus. READER Empfangen Zeichen vom Kanal RDR: Aufrufparameter: Rückkehrparameter: A - Empfangenes Zeichen Die Routine liest das nächste Zeichen von Kanal RDR: in Register A.
  • Seite 56 PC-Betriebsart 7. BIOS-Funktionen SETSEC Sektorpositionierung Aufrufparameter: BC - Sektornummer Rückkehrparameter: Entsprechend Registerpaar eingestellten Sektornummer wird auf dem ausgewählten Laufwerk der Sektor für den nächsten Diskettenzugriff positioniert. Die Sektornummer wird zunächst intern gemerkt und der eigentliche Zugriff bis zu einem Schreib- oder Lesebe- fehl verschoben.
  • Seite 57: Verwaltung Der Diskettenlaufwerke

    PC-Betriebsart 7. BIOS-Funktionen LISTST Abfrage des Status von Kanal LST: Aufrufparameter: Rückkehrparameter: A - Status Kanal LST: Routine übermittelt Nutzer eine Status- Information über den Kanal LST: Register A = 0FFH, wenn der Kanal LST: bereit ist, ein Zeichen zu übernehmen. Register A = 0 Kanal LST: nicht bereit SECTRAN...
  • Seite 58 PC-Betriebsart 7. BIOS-Funktionen Ein DPH hat folgenden Aufbau: Byte Name Bedeutung ----------------------------------------------------------------- 0, 1 Adresse Übersetzungstabelle für Sektornummer. Adresse gleich dann stimmen logische und physische Sektornummer überein. Arbeitsbereich für BDOS reserviert 8, 9 DIRBUF Adresse eines 128-Byte-Verzeichnispuffers Alle DPH enthalten die gleiche Adresse. 10, 11 Adresse des Diskettenparameterblockes (DPB) Jedes Laufwerk hat einen eigenen DPB.
  • Seite 59 PC-Betriebsart 7. BIOS-Funktionen Diese Informationen sind im DPB wie folgt festgehalten: Byte Name Bedeutung ----------------------------------------------------------------- 0, 1 Sektoren pro Spur Blockverschiebungsfaktor. Darin ist die Blockgröße verschlüsselt als: (<Blockgröße>/128) Dieser Wert stellt ein Maß für die Anzahl der Sektoren pro Block dar. Blockmaske wiederspiegelt ebenfalls die Blockgröße...
  • Seite 60 PC-Betriebsart 7. BIOS-Funktionen Byte Name Bedeutung ----------------------------------------------------------------- 7, 8 Anzahl der Verzeichniseintragungen minus 1 Größe einer Verzeichniseintragung beträgt 32 Byte. 9, 10 AL0, AL1 16-Bit-Vektor, in dem Verzeichnis belegten Blöcke vermerkt sind. Dieser Vektor wird beim ersten Laufwerkzu- griff Anfang Belegungstabelle kopiert und dient so zur Reservierung der Verzeichnisblöcke.
  • Seite 61 PC-Betriebsart 7. BIOS-Funktionen Laufwerksteuerung ----------------- Die Laufwerksteuerung umfaßt drei Schritte, die zum Adressieren eines Sektors auf der Diskette notwendig sind. Mit Sektor wird im weiteren ein 128 Byte großer Aufzeichnungsabschnitt auf der Dis- kette bezeichnet. 1. Auswahl des gewünschten Laufwerkes (mittels der Routine SELDSK) 2.
  • Seite 62 PC-Betriebsart 7. BIOS-Funktionen Beim KC 85/4 bilden die internen Speicher die Spuren 0 und 1. Die Speichermodule werden nach steigenden Moduladressen einbezogen. Da das RAM-Floppy ohne Systemspuren arbeitet, beträgt der Offset stets 0 und das Directory liegt folglich ab Adresse 8000H des...
  • Seite 63: Systemuhr

    PC-Betriebsart 7. BIOS-Funktionen Der Directory-Aufbau ist auf den anderen Laufwerken prinzipiell geich, wobei sich jedoch Directory installationsabhängig meist auf Spur 2 befindet. Die Anzahl der Directory-Einträge und deren maximale Anzahl sind vom Diskettenformat abhängig (vgl. DPB). Systemuhr Die Systemuhr von MicroDOS arbeitet mit den CTC-Kanälen 0 und (Abschnitt 2.2.).
  • Seite 64: Systemstart

    CAOS-Betriebsart 1. Systemstart TEIL CAOS-BETRIEBSART Systemstart Systemstart der CAOS-Betriebsart erfolgt, wie der Start der PC-Betriebsart mittels 'JUMP FC'. Beim 'JUMP FC' wird der CAOS-ROM abgeschaltet und das Programm im ROM des FLOPPY DISK BASIS gestartet. Dieses löst folgende Aktivi- täten aus: - Löschen des Koppel-RAM - Kopieren des Urladeprogrammes in den Koppel-RAM - Freigabe des Prozessors im FLOPPY DISK BASIS...
  • Seite 65: Belegung Des Koppel-Ram

    CAOS-Betriebsart 2. Schnittstellenbeschreibung Schnittstellenbeschreibung Die Programmschnittstelle der Diskettenerweiterung im CAOS ist für Maschinenproramme nutzbar und gestattet somit, die Disket- tenarbeit Anwenderprogramme einzubinden. Schnittstelle liegt im Koppel-RAM. 2.1. Belegung Koppel-RAM Durch Manipulation und Auswertung bestimmter Bytes im Koppel-RAM kann über das Programm DEP, welches im FLOPPY DISK BASIS im Hintergrund läuft, Diskette...
  • Seite 66 CAOS-Betriebsart 2. Schnittstellenbeschreibung Funktionsauswahl: Bit 5 Bedeutung ---------------------------------------------------------- - Sektor lesen/schreiben (sequentiell) - DIR-Anforderung - ERA - STAT - REN - SET R/O Schreibschutz setzen - SET R/W Schreibschutz aufheben - Byte lesen/schreiben für BASIC Sektor schreiben: Open: 0BH Close: 43H normal: 03H Sektor lesen: Open: 09H Close: 41H...
  • Seite 67: Fehlermeldungen

    CAOS-Betriebsart 2. Schnittstellenbeschreibung 2.3. Fehlermeldungen Ist eine Operation nicht erfolgreich verlaufen, so wird das Bit 7 im Steuerbyte bei rückgesetztem Bit 0 gesetzt. In der darauf- folgenden Speicherzelle ist die Codierung des Fehlers enthalten. Es gelten folgende Fehlercodes: Code Bedeutung ----------------------------------------------------------- Datei nicht vorhanden Diskettenfehler allgemein:...
  • Seite 68: Dateiaufbau

    CAOS-Betriebsart 3. Dateiaufbau Dateiaufbau CAOS-Betriebsart besitzen Dateien prinzipiell gleichen Aufbau wie in der PC-Betriebsart, um einen Dateiaus- tausch zu realisieren. Die Directory-Einträge entsprechen denen MicroDOS. verschiedenen Anwenderbereichen bestehen jedoch einige Besonderheiten gegenüber Dateien PC-Be- triebsart, die nachfolgend beschrieben werden. 3.1. Maschinenprogramme Programme, die mit FSAVE oder der Option 'S' des EDAS (Modul M027) erzeugt wurden, besitzen vor den eigentlichen Daten einen...
  • Seite 69: Forth-Quellprogramme

    ARGN - Anzahl der Argumente 2 oder 3 ARG1 - Ladeadresse ARG2 - Endeadresse+1 ARG3 - Startadresse (bei Bedarf) Programmbeispiel rettet Bildschirminhalt einschließlich Farbattributspeicher des KC 85/3: 10 AN=14209:!ARGN 20 VPOKE AN,2:VPOKE AN+1,0:VPOKE AN+2,128 30 VPOKE AN+3,0:VPOKE AN+4,178 40 N$="TEST.KCP ":FOR Z=0 TO 11 50 POKE Z,ASC(MID$(N$,Z+1,1)):NEXT...
  • Seite 70: Nutzung Von Service In Maschinenprogrammen

    CAOS-Betriebsart 4. Einbindung in Programme Das Programm SERVICE kopiert beim Programmstart einen Programm- teil in den Speicherbereich D8H - FFH. Darf dieser Speicherbereich z.B. für Maschinenprogramme nicht überschrieben werden, kann das Programm SERVICE ohne Selbststart abgespeichert werden: FSAVE BE00 C000 Name:SERVICE1 Beim Laden von FLOAD auf die Adresse 0 wird der Programmteil auf Adresse D8H überschrieben!
  • Seite 71 CAOS-Betriebsart 4. Einbindung in Programme Die Routine FLOAD kann folgendermaßen aufgerufen werden: HL,NAME ;Zeiger auf Namen CALL FLOAD+36H ;Ladeadresse (Offset) +36H Die Routine FSAVE kann folgendermaßen aufgerufen werden: HL,ARGX ;aktuelle Parameter DE,ARGN ;Systemarbeitszellen BC,7 ;Anzahl der Bytes LDIR ;Umladen HL,NAME ;Zeiger auf Name CALL FSAVE+22H...
  • Seite 72: 1: Reservierte Speicherplätze

    Handbuch für den Programmierer Anlage 1 Anlagen Anlage 1: Reservierte Speicherplätze (Seite 0) Speicherplätze Inhalt ----------------------------------------------------------------- 0000H 0002H Sprung zum BIOS-Eintrittspunkt WBOOT. Damit ist ein einfacher programmierter Neu- start (Sprung zu Adresse 0) möglich. 0003H Enthält das IOBYTE 0004H Nummer des aktuellen Laufwerkes und Benut- zernummer 0005H 0007H...
  • Seite 73: Bildschirmsteuerzeichen

    Handbuch für den Programmierer Anlage 2 Anlage 2: Bildschirmsteuerzeichen -------------------------------------------------------------- | Hex. | Dez. | Wirkung des Kommandos | code | code | |------|------|----------------------------------------------| Setzen Cursor auf linke obere Ecke (HOME-Position) |------|------|----------------------------------------------| BEEP |------|------|----------------------------------------------| Setzen Cursor um eine Position nach links |------|------|----------------------------------------------| Setzen Cursor um ein Zeile nach...
  • Seite 74: Escape-Funktionen

    Handbuch für den Programmierer Anlage 3 Anlage 3: ESCape-Funktionen Dez. Hex. dez. Bedeutung Name Anzahl Parameter ------------------------------------------------------------------------- 65 - Punktsetzen PSET XX,Y 66 - Punktlöschen PRES XX,Y 67 - Grafikfarbe GFARB 68 - Linie LINE XX1,Y1,XX2,Y2 69 - Kreis CIRCL XX,Y,R 70 - Fensteraufruf WINDOW...
  • Seite 75: Koppel-Ram-Belegung

    Handbuch für den Programmierer Anlage 4 Anlage 4: Koppel-RAM-Belegung Seite 3 - FF00H = I/O-Adresse F3H im KC fünf 32 Byte-Puffer Adresse im D004 CIBUFF: defs 32 ;Konsoleneingabe FF00H COBUFF: defs 32 ;Konsolenausgabe FF20H LOBUFF: defs 32 ;Druckerausgabe FF40H AIBUFF: defs 32 ;Zusatzeingabe (normal V.24 ) FF60H...
  • Seite 76 Handbuch für den Programmierer Anlage 4 Seite 2 FE00H - FEFFH 128 Bytekoppelpuffer z.B. RAM-Floppy oder 256 Bytekoppelpuffer für RAM-Lesen Seite 1 FD00H - FDFFH frei verfügbar Seite 0 FC00H – FCFFH von MicroDOS verwendet...
  • Seite 77: Bdos-Übersicht

    Handbuch für den Programmierer Anlage 5 Anlage 5: BDOS-Übersicht Name Eingangsparameter Ausgangspararameter ----------------------------------------------------------------------------------------------------------------- System rücksetzen Konsoleneingabe A = Zeichen Konsolenausgabe E = Zeichen Zusatzeingabe A = Zeichen Zusatzausgabe E = Zeichen Druckerausgabe E = Zeichen Direkte Konsolen-E/A siehe Definition Status Zusatzeingabe A = 00/FF Status Zusatzausgabe A = 00/FF...
  • Seite 78: Programmbeispiele

    Handbuch für den Programmierer Anlage 6 Anlage 6: Programmbeispiele Im folgenden sollen einige Beispiele die Nutzung der Systemfunk- tionen verdeutlichen. Die Quelldateien werden mit Hilfe des Text- prozessors erstellt und dann mit dem Assembler (ASM in /2/) in REL-Dateien übersetzt. Mit dem Linker (LINK) können sie dann in ablauffähige COM-Programme umgesetzt werden, welche direkt unter MicroDOS arbeiten.
  • Seite 79 Handbuch für den Programmierer Anlage 6 ; Datei nicht vorhanden, Fehlermeldung 0012' 11 00DD' de,opnmsg 0015' CD 009C' call 0018' C3 0051' finis ; Rückkehr ; eröffnung ok,pufferzeiger auf ende setzen 001B' 3E 80 openok: a,80h 001D' 32 00F3' (ibp),a ;...
  • Seite 80 Handbuch für den Programmierer Anlage 6 0063' 0064' ; Zeichen ausgeben 0065' pchar: push 0066' push 0067' push bc ; Register retten 0068' 0E 02 c,typef 006A' 006B' CD 0005 call bdos 006E' 006F' 0070' ;Register zurück 0071' ; neue Zeile 0072' 3E 0D crlf:...
  • Seite 81 Handbuch für den Programmierer Anlage 6 00B1' 00B2' ; Byte auf Adresse buff+<a> lesen 00B3' ; puffer index 00B4' 16 00 ; 16 Bit-Wert 00B6' ; index erhöhen 00B7' 32 00F3' (ibp),a ; und abspeichern ; Zeiger ist erhöht und gerettet 00BA' 21 0080 hl,buff...
  • Seite 82: Byteanzeige Des Grundgerätes

    Handbuch für den Programmierer Anlage 6 6.2: Byteanzeige des Grundgerätes Das zweite Beispielprogramm erwartet beim Aufruf nach dem Namen eine vierstellige Hexzahl als Adresse. Werden weniger als vier Ziffern oder keine Hexziffern eingegeben, so erfolgt eine Fehler- meldung. korrekter Eingabe wird eingegebene Adresse,...
  • Seite 83 Handbuch für den Programmierer Anlage 6 0057' CD 0080' CALL HEXB 005A' ;ADRESSE LOW 005B' CD 0080' CALL HEXB 005E' 3E 20 A,' ' ;SPACE 0060' CD 0095' CALL ;ABHOLEN BYTE 0063' 3A FE00 A,(PUFFER) ;AUSGABE DES HEX-ZEICHENS 0066' CD 0080' CALL HEXB 0069'...
  • Seite 84: Datei In Speicher Des Grundgerätes Kopieren

    Handbuch für den Programmierer Anlage 6 6.3: Datei in Speicher des Grundgerätes kopieren Dieses Programmbeispiel zeigt, wie eine Datei von der Diskette in den Speicher des KC-Grundgerätes kopiert werden kann. Der Aufruf erfolgt über Programmnamen (z.B. MOVE) nachfolgender Dateibezeichnung. An diese anschließend kann eine hexadezimale Zieladresse (vierstellig) eingegeben werden.
  • Seite 85 Handbuch für den Programmierer Anlage 6 0047' 11 005C DE,FCB 004A' CD 0005 CALL BDOS 004D' 004E' CA 00B7' Z,S7 0051' ;cr=0 0052' 32 007C (FCB+32),A 0055' 21 011D' HL,PUFFER 0058' 0E 14 C,20 ;SEQU. LESEN 005A' 11 005C DE,FCB 005D' PUSH 005E'...
  • Seite 86 Handbuch für den Programmierer Anlage 6 00BF' 18 E8 WARM 00C1' 20 44 61 74 TX2: DEFM ' Datei nicht gefunden !' 00C5' 65 69 20 6E 00C9' 69 63 68 74 00CD' 20 67 65 66 00D1' 75 6E 64 65 00D5' 6E 20 21 00D8'...
  • Seite 87: Druckertreiber

    Handbuch für den Programmierer Anlage 6 6.4: Druckertreiber Ein Beispiel für einen vom Installationsprogramm MSYSG verwalt- baren Druckertreiber, ist eine CENTRONICS-Routine für den Modul M001 (/13/). Dieser Treiber ist für die Modulschachtadresse 8 ausgelegt, kann aber durch Änderung Speicherzelle MODSCH angepaßt werden.
  • Seite 88 Handbuch für den Programmierer Anlage 6 0226 0227 D3 06 (PIOAC),A ;AUSGABE 0229 022A D3 07 (PIOBC),A ;BIT-MODE 022C 3E 04 022E D3 07 (PIOBC),A ;BIT 2 EINGABE 0230 3E 01 0232 D3 05 (PIOB),A ;STROBE PASSIV 0234 ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;...
  • Seite 89: Kopplungstreiber

    Handbuch für den Programmierer Anlage 6 6.5: Kopplungstreiber Das Spileprogramm für den Koppeltreiber entspricht dem Programm V24H12.KOP der Systemdiskette. Zum Assemblieren und Linken gilt das zum Druckertreiber Gesagte. .Z80 ; V 24 TREIBER FUER KOPPLUNG ; UEBER HARDWAREPROTOKOLL ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;VEREINBARUNGEN: F003 CAOS...
  • Seite 90 Handbuch für den Programmierer Anlage 6 03BB CB 57 ;PUFFER LEER ? 03BD 28 05 Z,SD6K ;->NEIN 03BF 03C0 D3 09 (SIOB),A ;BYTE AUSGEBEN 03C2 ;CY=0 READY 03C3 03C4 SD6K: ;CY=1 NOT READY 03C5 03C6 ;* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ;...
  • Seite 91: Tastaturbelegung

    Handbuch für den Programmierer Anlage 6 6.6: Tastaturbelegung Programm Tastaturbelegung entspricht Programm TYPEMOD.COM der Systemdiskette. Das Beispiel soll folgendes ver- deutlichen: - Aufbau der Tastencodetabelle - Bestimmen der Anfangsadresse der Tastencodetabelle - Übertragung der Tastencodetabelle in den entsprechenden Spei- cherbereich des Grundgerätes .Z80 TITLE KEYBELEGUNG...
  • Seite 92 Handbuch für den Programmierer Anlage 6 0052' 0053' 0054' 54 61 73 74 STEXT: DEFM 'Tastatur auf Schreibmaschinen- belegung umgeschaltet' 0058' 61 74 75 72 005C' 20 61 75 66 0060' 20 53 63 68 0064' 72 65 69 62 0068' 6D 61 73 63 006C'...
  • Seite 93 Handbuch für den Programmierer Anlage 6 0108' 68 48 08 DEFB 'hH',8 010B' 37 27 20 DEFB '7',27h,32 010E' 6F 4F 0F DEFB 'oO',0fh 0111' 16 8A 20 DEFB 16h,8ah,20H ;INS/click/- 0114' 39 29 20 DEFB '9) ' ; 0117' 03 03 20 DEFB 3,3h,20h...
  • Seite 94: Literaturverzeichnis

    Beschreibung zum Modul M003 V24 VEB Mikroelektronik "W. Pieck" Mühlhausen /10/ Beschreibung zur Programmkassette C0171/1 VEB Mikroelektronik "W. Pieck" Mühlhausen /11/ Systemhandbuch KC 85/3 VEB Mikroelektronik "W. Pieck" Mühlhausen /12/ Systemhandbuch KC 85/4 VEB Mikroelektronik "W. Pieck" Mühlhausen /13/ Beschreibung zum Modul M001 DIGITAL IN/OUT VEB Mikroelektronik "W.
  • Seite 95: Abkürzungsverzeichnis

    Floppy Disk Controller (Systemschaltkreis Floppy- Disk-Ansteuerung GrouND (Masseleitung) InDeX (Signalleitung für Spuranfang) Input/Output (Ein/Ausgabe) INTerrupt (Unterbrechungsanforderung) KleinComputer Light Emitting Diode (Leuchtdiode) Modifizierte FrequenzModulation (Diskettenaufzeichnungs- verfahren) MP/M Warenzeichen der Firma Digital Research, USA, für ein Mehrnutzer-Betriebssystem NichtMaskierbarer Interrupt Random Access Memory (Schreib-/Lesespeicher)
  • Seite 96: Sachwortverzeichnis

    Handbuch für den Programmierer Sachwortverzeichnis Sachwortverzeichnis Es bedeuten: f. und folgende Seite ff. und folgende Seiten Tabelle Adreßbereich 6 -, I/O 6, 95 BDOS 12, 95 -, Eintrittspunkte 13f., 72 -, Funktionen 22ff. -, Rufe 22 -, Schnittstelle -, Übersicht 77 Bildschirmsteuerzeichen 73* BIOS 12, 95 , Eintrittspunkte 72...
  • Seite 97 Handbuch für den Programmierer Sachwortverzeichnis Druckerausgabe 24 Druckertreiber 19, 87f. DUMP-Ausgabe 78ff. ESCape 95 -, Codes 18 -, Folgen 18 -, Funktionen 74 ERA 69f. Extentmaske 59 Fehlerbearbeitung 43 Fehlermeldungen 67 FD-INTERFACE 9f.* FLOAD 69ff. FSAVE 69ff. Gerätetreiber, physischer 52 Initialisierung 51 -, System 50 Interruptserviceroutinen 9...
  • Seite 98 Handbuch für den Programmierer Sachwortverzeichnis MicroDOS 12 -, Initialisierung 13 Moduladresse 6 NMI-Impuls 7, 95 RAM-Floppy 18, 61f. REN 69f. RESET 7 Rückkehrcode 47* Schreiben, sequentiell 33 -, wahlfrei 4O, 43 Sektor, einstellen 61 -, lesen 56, 66 -, Maske 6O -, Nummer 58 -, —, umwandeln 57 -, positionieren 56...
  • Seite 99 Ri 93/89 410 3,0...
  • Seite 100 Abschrift erstellt Götz Hupe Elmar Klinder...

Inhaltsverzeichnis