Quicklinks

loading

Inhaltszusammenfassung für Kontron PSI 80

  • Seite 2 Diese technische Beschreibung ist mit größter Sorgfalt erstellt worden. wird jedoch keine Gewähr für die Frei­ heit von Fehlern und Irrtümern gegeben. Technische Änderungen bleiben Vorbehal­ ten. Für alle Anfragen stehen Ihnen unsere Technischen Büros bzw. Ihre lokale Verkaufsorganisation Verfügung.
  • Seite 3 Systemkommandos Dienstprogramme Fehlersuchpaket Betriebssystem KOS Hardware Cross-Reference Technische Beschreibung...
  • Seite 5 SI Ip 80 TECHNISCHE BESCHREIBUNG Version: 5.3 1. August 1981 Diese Technische Beschreibung enthält detaillierte Hard- Software-Informationen über die Kcrapaktccmputersysteme der PSl80-Reihe. Sie stellt eine Arbeitsgrundlage für den erfahrenen Computer-Anwender dar, der die Leistungsfähigkeit und Flexibilität dieses Ccmputersystems auf System- und Prozessor-Ebene voll nutzen möchte. Für den Erstbenutzer des PSI O-Systems unabhängig...
  • Seite 6 Diese Technische Beschreibung ist mit größter Sorgfalt erstellt worden. wird jedoch keine Gewähr für die Frei« heit von Fehlern und Irrtümern gegeben. Technische Änderungen bleiben Vorbehal­ ten. Für alle Anfragen stehen Ihnen unsere Technischen Büros bzw. Ihre lokale Verkaufsorganisation Verfügung.
  • Seite 7 Inhaltsverzeichnis der Technischen Beschreibung: A - Systemkommandos zun Betriebssystem KOS B - PSl80-Dienstprogramme C - Debugging Module (KDM) D - Betriebssystembeschreibung E - PSl80-Hardware F - Stichwortverzeichnis beider Handbücher (CROSS-Referenz) Inhaltsverzeichnis des Bedienungshandbuchs: Hier nicht vorhanden da eigenständige Dokumentation A - Inbetriebnahme des PSl80-Computersystems B - Einführung in Betriebssystem und Systemkanmandos C - Editor des PSl80-Systems D - PSI/BASIC-Beschreibung...
  • Seite 9 Systemkommandos zum Betriebssystem KOS Version: 4.3/5.3 1. August 1981 Dieser Teil Handbuches beschreibt säntliche Dienstlei stungsprograrane des Betriebssystems KOSH/5. ü.a. beinhaltet es Konmandos zur Handhabung von Dateien (COPY, DELETE, DUMP, MOVE, PRINT, RENAME), zur Einrichtung Ein-/Ausgabetreibern (INISER, EAK), zur Systemsteuerung (TASK, SPOOL) Systemüberwachung (STATUS, STOP).
  • Seite 10 Inhaltsverzeichnis Übersicht Start des Betriebssystems Kommandoeingabe Ausgabe st eue rung Syntaxausdruck (Hilfefunktion) Dateinamen KOS - interne Systemkommandos A - Kommando C - Kommando D - Kommando F - Kommando I - Kommando M - Kommando N - Kommando P - Kommando R - Kommando S - Kommando 2.10...
  • Seite 11 1. Übersicht Eine Reihe Kommandos steht Betriebssystem Erstellung Verwaltung Programmen Texten, Systemsteuerung und zur Systemverwaltung zur Verfügung. Diese rufen entweder KOS-interne (residente) oder externe (auf beliebigen Medien residente) Programme auf. Folgende Kommandos sind implementiert: a) KOS-interne Kommandos Belegung von Speicherbereichen Umschaltung Groß-/Kleinschreibung Freigabe von Speicherbereichen Schließen aller geöffneten Dateien...
  • Seite 12 1.1 Der Start des Betriebssystems Nach Laden Betriebssystems einem Medium führt automatisch das Kommando DO KOS.INI aus. Das Programm ’DO* lädt Kommandodatei KOS.INI sorgt anschließend über einen entsprechenden Systemaufruf für die Abarbeitung in der Datei 'KOS.INI’ enthaltenen Kommandos. Die Datei 'K0S.INI' enthält standardmäßig das Kommando RLOAD SELECT Das Kommando 'SELECT* in der Kommandodatei KOS.INI bietet eine elegante...
  • Seite 13 1.2 Kcranandoeingabe KOS unterscheidet zwischen internen externen Kommandos. Externe Anwender- oder Systemprogramme sind Dateien mit ablauffähigem Maschinencode beliebigen Medien (Disketten, Platte etc.) gespeichert. Der Typ solcher Dateien ist grundsätzlich ’COM1. Dieser Typ darf beim Aufruf eines Kommandos nicht mit angegeben werden. Allgemeines Eingabeformat: mn:kommando parameterl...parameterN<- - mn:kommando,<- -...
  • Seite 14 1.4 Syntaxausdruck (Hilfe-Funktion) Viele KOS-Dienstprogramme geben bei Aufruf ohne Parameter Hinweise über die erforderliche Syntax des korrekten Kommandoaufrufs aus. Derartige Ausgaben erfolgen Klartext und enthalten mindestens zwei bis drei Textzeilen. Bei komplexeren Kommandos (z.B. COPY) werden detaillierte Hinweise und Beispiele ausgegeben. 1.5 Dateinamen Ein Kommandofeld enthält meist eine...
  • Seite 15 Eindeutige Dateiadressen - EDA Eindeutige Dateiadressen kennzeichnen in eindeutiger Weise dieser (symbolischen) Dateiadresse zugeordneten physikalischen Bereich eines Mediums: eine EDA adressiert genau eine Datei einem bestimmten Medium. Eindeutige Dateiadressen erfordern mindestens Angabe eines vollständigen Dateinamens. Der Dateityp darf in manchen Fällen fehlen, verschiedene Programme...
  • Seite 16 2. KOS-interne Kommandos KOS-interne Kommandos werden beim Kaltstart Betriebssystems mitgeladen. Sie sind Teil des Betriebssystems. Alle internen Kommandos verwenden die Kanäle E-1 bzw, A-1 für Ein-/Ausgaben. Interne Kommandos bestehen grundsätzlich aus einem Kennbuchstaben, der sowohl groß, auch kleingeschrieben werden kann. A - Konmando (Allocation) Aufruf: A adr n<- - Funktion:...
  • Seite 17 I - Kommando (Index) Aufruf: I mn:dateiname.typ<- - I mn:dateigruppe<— Funktion: Auflistung aller im Parameterfeld des Kommandos spezifizierten Dateien, die nicht geheim (s. DEFP-Kanmando) sind. Alle Parameter sind optional. Parameterfeld nicht besetzt, so werden alle nicht geheimen Dateien des Mastermediums ausgegeben. Beispiele: alle nicht geheimen Dateien mit Namen ’ABC* I ABC.*<- -...
  • Seite 18 P - Kommando (Page Mode) Aufruf: P<- - Funktion: Blättern bisherigen Sichtschirmausgaben. Bildwiederholspeicher des PSl80-Systems speichert ständig die letzten 8 Textseiten. Nach P-Kommando kann Cursortasten beliebiger Ausschnitt letzten Textseiten auf den Sichtschirm gebracht werden. Durch dieses Kommando können z.B. Bedienfehler oder verpaßte Ausgaben zurückgeholt werden.
  • Seite 19 2.10 S - Kommando (Save) Aufruf: S n mn:dateiname.typ adr<- - Funktion: Abspeichern (Retten) von n x 128 Bytes aus dem Anwenderspeicherbereich eine Datei, ’adr' sind Hexadezimalzahlen. Abspeichervorgang beginnt bei Adresse ’adr'. Fehlt dieser Parameter, so wird dafür der Wert 100H eingesetzt. Beispiele: S A XDATEI.QBcK- - Abspeichern des Bereichs 100H bis 5FFH unter dem Namen XDATEI.OBJ.
  • Seite 20 3. Diskresidente KOS-Kcnmandos 3.1 COPY - Kommando (allgemeiner Datentransfer) Aufruf: COPY quelle ziel<- - Voreinst.: mn (quelle) ziel = $EAZ Mastermediun, falls typ (quelle) = 1 falls mn (quelle) = 0 und mn (ziel) 0 falls mn (quelle) quelle = $EAQ Mastermedium, falls name (quelle) name (ziel)
  • Seite 21 Beispiele: COPY 0:PSI1 1:PSI2<- - Kopiert die Datei PSI1.COM von Medium 0 auf Medium 1, wo sie unter Namen PSI2.COM abgelegt wird. Die Mediennunmern dieses Beispiels sind voreingestellt und wären deshalb hier nicht notwendig. COPY PSI1.C0M<- - Kopiert die Datei PSI1.COM von Mediun 0 auf Medium 1. COPY TEST.PRN $SI0A<- - Kopiert die Datei TEST.PRN auf den E/A-Treiber $SI0A.
  • Seite 22 3.3 C0PYD2 - Kommando (Diskettenkopieren in 2 LaufWerksystemen) Aufruf: C0PYD2 quellaufwerk>ziellaufwerk paraml param2<- - Voreinst.: = Laufwerk 0 (Quelle) = Laufwerk 1 (Ziel) paraml alle Spuren param2 ja, rückfragen Dateispez.: Funktion: Kopiert den gesamten Inhalt einer Diskette Laufwerk Laufwerk ln2. Zieldiskette muß...
  • Seite 23 3.4 CFFILB-Kcmnando (Vergleich von 2 Dateien) Aufruf: CPFILE mn:name1.typ mn:name2.typ<--- Voreinst.: = Mastermediun typ = COM Dateispez.: Funktion: Byteweiser Vergleich des Inhalts von zwei Dateien beliebigen Typs beliebiger, auch unterschiedlicher Länge. Die Anzahl und der Inhalt der unterschiedlichen Bytes wird ausgegeben.
  • Seite 24 3.6 DEFP - Kannando (Dateieigenschaften (Properties) definieren) DEFP mn:name.typ<- - Aufruf: = Mastermedium Voreinstellung: typ = COM Dateispez.: Funktion: Anzeigen und Editieren der Dateiproperties. Die Dateieigenschaften werden in folgender Form dargestellt: Eigenschaften der Datei KOS Systemdatei Datei schreibgeschützt Datei löschgeschützt Eigenschaften geschützt Reserviert Directory Datei...
  • Seite 25 Bedeutung der einzelnen Property-Flags: KOS Systemdatei: Darunter fallen die Dateien vom COM, Dienstprogramme auf der KOS-Systemdiskette enthalten sind. Datei schreibgeschützt: Ein Versuch, in die Datei zu schreiben, wird von KOS verhindert und mit der Meldung: Datei schreib-/löschgeschützt quittiert. Datei löschgeschützt: verhindert Löschen Datei.
  • Seite 26 Beispiel: Alle Dateien, die mindestens schreibgeschützt und 'geheim* sind, sollen mit dem MOVE-Kommando kopiert werden. Dazu folgendes Kommando notwendig: MOVE * P=WS<- - oder: MOVE * P=SW<- - Die Reihenfolge der Parameter spielt keine Rolle, solange insgesamt nicht mehr drei Parameter benötigt werden.
  • Seite 27 3.7 DEL - Kannando (Datei löschen) Aufruf: DEL mn:name.typ param<— Mastermedium Voreinst.: param = rückfragen = nicht geheim EDA/MDA Dateispez.: Funktion: Löschen von einzelnen Dateien oder Dateigruppen. Im allgemeinen erfolgt Start Löschvorgangs zunächst eine Rückfrage Benutzer, Datei tatsächlich gelöscht werden soll (Parameter ’param’...
  • Seite 28 Aufruf DO mnrname.typ p1 p2 ... p9<— Mastermedium Voreinst typ = Dateispez.: Funktion: Ausführung KOS-Kommandos einer Kommandodatei. Eine Kommandodatei ist eine mit dem PSI/EDITOR erstellte Datei, eine beliebige Anzahl KOS-Kommandos enthält. Zur Trennung einzelner Kommandos innerhalb der Datei dienen die Zeichen Strichpunkt (;) sowie RETURN (Zeilenende).
  • Seite 29 Aufruf: DUMP mn:name.typ param<— Voreinst.: Mastermedium param = 0=$M0N Dateispez.: Funktion: Ausdruck des Inhalts einer eindeutig spezifizierten Datei im Hex- ASCII-Code. Pro Zeile wird ein 16 (=10H) Byte Block, inklusive Anfangsadresse (1. Spalte) und der entsprechenden ASCII-Äquivalente ausgedruckt. Nicht darstellbare Bytes erscheinen ASCII-Feld...
  • Seite 30 3.10.1 Übersicht und Konmandosyntax Das Programm EAK (Ein-/Ausgabe Kanal) ermöglicht folgende Aktivitäten: Aktivierung eines Ein-/Ausgabetreibers (E/A-Treiber) Deaktivierung eines E/A-Treibers Aktivierung eines Medientreibers Deaktivierung eines Medientreibers Zuordnung einer Kanalnunmer für E/A- oder Medientreiber Auflistung der aktivierten E/A-Kanäle Auflistung der Syntax des Programms EAK Hierzu stehen folgende EAK - Kommandos zur Verfügung: EAK $(mn:)EATN=AKTIV<- - EAK $E/ATN=DEAKTIV<- -...
  • Seite 31 3.10.2 E/A^Treiber Aktivierung Aufruf: EAK $nn:EATN=AKTIV<--- Voreinst.: mn = Masterraedium Funktion: Aktivierung des Treibers EATN bzw. MEDN. Das Kommando einem •Relocater' ausgerüstet, der E/A- oder Medientreiber automatisch in den höchstmöglichen Speicherbereich lädt. Es ist deshalb nicht notwendig, Treiber zu linken. Programm sucht zunächst...
  • Seite 32 3.10.4 Auflistung der aktiven Treiber Aufruf: EAK LIST<- - Funktion: Auflistung der momentan aktivierten Ein-/Ausgabetreiber, inklusive dazugehörigen Kanalnummern und Startadressen. Nach Laden Betriebssystems sind folgende E/A- bzw. Medientreiber aktiviert: Tastatureingabe (Keyboard) $KEY — — > Tastatureingabe $KEY — - > Sichtschimausgabe (Monitor) $M0N —...
  • Seite 33 Format: FORMAT mn<- - Voreinst.: Dateispez.: Funktion: Formatiert eine softsektorierte Diskette (16 Sektoren pro Spur). die Laufwerknunmer mn nicht spezifiziert oder unzulässig, stellt FORMAT die Rückfrage: Auf welchem Laufwerk soll formatiert werden? (0/1) FORMAT fragt nach Identifikationsnamen, Diskette kennzeichnen soll. Dieser Name darf maximal...
  • Seite 34 Aufruf: IL mn:name.typ param<- - Voreinst.: r a n = Mastermedium name param = P=nicht geheim = 0=$M0N EDA/MDA Dateispez.: Funktion: Ausdruck des Inhaltsverzeichnis eines Mediums in langem Format. Neben Dateinamen/-Typ wird Anzahl der jeweiligen Datei belegten Sektoren sowie die dafür auf dem Medium reservierten Blöcke (Vielfache...
  • Seite 35 Aufruf: INFO mn:name.typ<- - Voreinst.: = Mastermediun = INF Dateispez.: Funktion: Ausgabe einer ASCII-Datei auf den Sichtschirm des PSI80-Computers (oder beliebiges anderes Peripheriegerät). Die Ausgabe erfolgt bildschirm-orientiert: 1 Seite = 24 Zeilen 1 Zeile Folge von ASCII-Zeichen mit CR abgeschlossen mögliche Eingaben: - Leertaste —...
  • Seite 36 Aufruf: INISER param<- - Voreinst. param Funktion: Programmierung der PSl80-Serienschnittstellen A und für asynchrone Übertragung. Alle hierfür relevanten Parameter wie Baudrate, Parity etc. sind einstellbar. 'INISER* arbeitet mit Benutzerführung (falls Parameter 'param* gegeben wurde) ermöglicht Abspeicherung einmal eingegebenen Initialisierungsparametern auf Diskette.
  • Seite 37 Aufruf: MAP<- - Voreinst.: Funktion: Ausdruck der aktuellen Speicherbelegung von KOS. Verwaltung Speichers teilt KOS den vorhandenen Speicher in Segmente zu je 80H Byte ein. Ein 'B* im Ausdruck kennzeichnet ein belegtes, ein ’ ein freies Segment. Bei folgenden Gelegenheiten werden SpeieherSegmente belegt: - Laden eines Programms - Aktivierung eines E/A-Treibers - Ausführung einer Kommandodatei (DO - Kommando)
  • Seite 38 MOVE quellmedium:name.typ zielmedium param<- - Auf ruf: Voreinst. quellmedium falls quellmedium zielmedium falls quellaufwerk = 1 nein, nicht rückfragen param P=nicht geheim EDA/MDA Dateispez. Funktion: Kopieren von einzelnen Dateien oder ganzen Dateigruppen. Der Dateiname bleibt hierbei erhalten. Bereits vorhandene Dateien angegebenen Namens werden...
  • Seite 39 Aufruf: PRINT mn:name.typ param<-- Voreinst.: mn = Mastermedium = PRN param = 0=$M0N Dateispez.: EDA Funktion: Ausgabe einer ASCII-Datei auf den Sichtschirm des PSl80-Computers oder auf ein beliebiges anderes Peripheriegerät. Angabe .typ ist optional. Der Ausgabekanal kann explizit angegeben werden. wird überprüft, spezifizierte...
  • Seite 40 Aufruf: REN mn:namealt.typ nameneu.typ param<— Voreinst.: = Mastermedium param = N (nein, nicht rückfragen) = P=nicht geheim Dateispez.: EDA (Typ auch mehrdeutig) Funktion: Umbenennung der Datei namealt.typ in nameneu.typ. Bei der Datei namealt kann der Typ durch Universalbezeichner ersetzt werden. solchen Fällen werden...
  • Seite 41 Aufruf: RLOAD mn:name.typ Voreinst.: = Mastermediun = OBJ Dateispez.: Funktion: spezifizierte Objektdatei ’name’ wird geladen relokiert (gelinkt). Bei der Objektdatei muß es sich un ein Modul ohne Externals Globals handeln. Der vom Relokator erzeugte Code wird so hoch wie möglich Speicher abgelegt und der entsprechende Speicherplatz wird belegt.
  • Seite 42 3.20 SELECT - Kommando Aufruf: RLOAD SELECT mn:programmliste.typ = Master Voreinst.: programmliste = PROGLIST = SEL Dateispez.: Funktion: Ermöglicht unter Benutzerführung Verzweigen zehn verschiedene Programme. Die Programmliste ist eine eigenständige Datei wird über den Editor erstellt. Für jedes auszuführende Programm enthält diese Liste zwei Zeilen.
  • Seite 43 Aufruf: SPOOL dateiname $EATN oder SPOOL =LIST Voreinst.: Dateispez.: Funktion: Einfügen eines Ausgabeauftrages in eine Warteschlange. Die Datei wird eröffnet. Es wird geprüft, E/A-Treiber aktiviert ist. Anschließend wird der Zeiger auf den DSB der Datei und der Treibername an die TASK ’SPOOL* übergeben.
  • Seite 44 Aufruf: STATUS mn<- - Voreinst.: Dateispez.: Funktion: Ausgabe der Medienbelegung entsprechend des untenstehenden Beispiels. Vor dem Ausdruck führt ’STATUS* automatisch eine Neuinitialisierung aller aktiven Medien durch. Bei Angabe der Mediennunmer mn (0
  • Seite 45 3.23 STOP - Kommando (Progranmierte Unterbrechung von Kcamandodateien) Aufruf: STOP param<--- Voreinst.: param Dateispez.: Funktion: Kommando ’STOP* führt eine Unterbrechung Ausführung Kommandodateien oder Kcmmandozeilen durch und ermöglicht danach einen Abbruck der Abarbeitung der Kommandozeile oder -datei. Hierzu stellt ’STOP* die Rückfrage: <—...
  • Seite 46 Aufruf: TASK<- - Voreinst.: Dateispez.: Funktion: Information über Hintergrundverarbeitung Funktionsausführungen. Die Liste der aktiven Hintergrund-Tasks wird angezeigt. Außer dem Namen werden folgende Parameter einer TASK ausgegeben. STATUS Status der TASK Anzahl belegter Memory-Segmente Preset-Counter PCNT TASK Entry Point Task Load Address Die Bedeutung der Parameter sind Kapitel...
  • Seite 47 Funktionscode: Nach KOS zurückspringen Beenden des Programms TASK und Rückkehr zun Betriebssystem KOS Task deaktivieren Task-Nr. wird abgefragt und anschließend deaktiviert, d.h. aus der Liste der Hintergrund-Tasks gestrichen und der belegte Speicherbereich freigegeben. Task temporär deaktivieren Task-Nr. wird abgefragt und anschließend nur zeitweise deaktiviert, d.h.
  • Seite 48 4. Kommandos für Hintergrundverarbeitung * Mit dem Kommando 'RLOAD’ können OBJ-Dateien geladen relokiert werden. Dies insbesondere Verbindung Vordergrund/Hintergrund-Verarbeitung erforderlich. Folgende Programme mit Backgroundtasks sind auf der Systemdiskette vorhanden: PTASK TIME 4,1 PTASK-Kcomando (Ausgabe von ASCII-Dateien in der Hintergrundverarbeitung) * Aufruf: RLOAD PTASK Voreinst.: Dateispez.:...
  • Seite 49 Anforderungen an den Ausgabetreiber: folgende E/A-Funktionen müssen implementiert sein. Funktion 81: Ausgabestatus A = 0 Nur Status abfragen Z = 0 BUSY Z = 1 NICHT BUSY A = 1 Status abfragen Z = 0 BUSY Z = 1 NICHT BUSY Wenn NICHT BUSY, Zeichen in Register L ausgeben.
  • Seite 50 4.2 TIME-Kannando (Ausgabe der Uhrzeit auf dem Bildschirm) * Aufruf: RLOAD TIME Vereinst.: Dateispez,: Funktion: Aktivierung des Programms ’TIME’, die Hintergrundverarbeitung eine softwaremäßig nachbildet. Task meldet sich mit der Aufforderung: Bitte Uhrzeit eingeben (hh:mm:ss): Die Eingabe von Minuten und Sekunden ist nicht zwingend vorgesehrieben. Als Trennzeichen sind :', ':' und ' ' zulässig.
  • Seite 52 PSI « J 80 — Utility-Diskette Version: 4.3/5.3 1. August 1981 Dieser Teil des Handbuches beschreibt PSI80 ausgelieferten Hilfsprogranme (^Utilities") Systemprogranierer: Grafikpaket Basistreiber. Beispielprogranne und die Beschreibung der Hardwaretestprogranroe schließen sich an.
  • Seite 53 Inhaltsverzeichnis Übersicht PSl80-Grafikpaket Einführung Programmieren mit dem PSl80-Grafikpaket Einbau der Grafik-Moduln in Anwenderprogramme Grafik in ASSEMBLER-Programmen 2.3.1 2 . 3.2 Grafik in FORTRAN- und BASic COMpiler Programmen Grafik in MBASIC-Programmen 2.3.3 Grafik in PASCAL-Programmen 2.3.4 Ein-/Ausgabetreiber Drucker-Treiber Allgemeiner serieller Treiber Allgemeiner paralleler Treiber Aufbau von Ein-/Ausgabetreibern Virtuelles Medium ($VMED)
  • Seite 54 1. Übersicht Die Hilfs-Diskette enthält folgende Programme: Serieller Treiber PSIA PSIA Serieller Treiber PSIB PSIB Serieller Treiber SIOA SIOA SIOB Serieller Treiber SIOB Druckertreiber MAKEDEU MAKEENG MAKESER MAKEPAR MÄKEOBJ Allgemeiner paralleler Treiber GRAPHB Grafikpaket GRAPHV GRAPHA GRAPHD GRAPHD GRAPHD Grafik-Bei spi elProgramm GRALINK GRAP Grafiktreiber...
  • Seite 55 2. PSl80-Grafikpaket 2.1 Einführung Das Grafik-Paket bietet die Möglichkeit - Punkte - Vektoren - Alphanunerische Zeichen im Grafik-Mode darzustellen. Die Auflösung beträgt 512 Spalten Zeilen. Das Grafik-Paket besteht aus 3 Moduln in relokativem Object-Code. Diese können durch LINK OBJ-Moduln ASSEMBLER, FORTRAN, BASIC-Compiler BASOOM und BASIC-Interpreter MBASIC verknüpft werden.
  • Seite 56 2.2 Programmieren mit dem PSI80 Grafik-Paket Grafik-Software gliedert sich Grafik-Basis-Software (Modul GRAPHB) und Grafik-Aufbau-Software (Moduln GRAPHV,GRAPHA). Zum Betrieb der Grafik-Aufbau-Software ist die Grafik-Basis-Software erforderlich. Initialisierungen (GRAPHB) JLN jLlliR Funktion: Initialisiert die graphische Betriebsart Löscht den Bildspeicher INITAL Funktion: Initialisiert die alphanumerische Betriebsart Löscht den Bildspeicher Wichtig: Mehrfaches Aufrufen...
  • Seite 57 Plotten (GRAPHV) PLOT Parameterübergabe: Adresse von x in HL Adresse von y in DE Adresse von PEN in BC Funktion: Schreibt Vektor bzw. Rechteck vom letzten Plot-Punkt zu dem Punkt mit den Koordinaten x,y. Für «PEN» gilt: P = 0: Punkt anfahren ohne Zeichnen P = 1: Vektor zeichnen P = 2: Vektor löschen P = 3: Vektor invertieren...
  • Seite 58 2.3.1 Grafik in ASSEHBLER-Programnen Zur Anwendung sind 2 Schritte erforderlich - Bereitstellung der Parameter - Aufruf der Funktion Beispiel: Zeichnen eines Vektors von (100,100) bis (200,200) EXTERNAL INITGR, INITAL, PLOT TEST: CALL INITGR LD HL,100 ; Paraneter laden LD (X1),HL LD (Y1),HL LD HL,200 LD (X2),HL...
  • Seite 59 Beispiel: ASM =GRAPHD<- - DO GRALINK GRAPHD<- - erzeugt die Dateien: GRAPHD.OBJ GRAPHD.COM Aufbau der Kcmmandodatei GRALINK.KMD: 0 :EDIT #1.SRC 0:ASM 0:LINK # 1 / N ,GRAPHB,GRAPHV,GRAPHA, # 1 / E 2,3.2 Grafik in FORTHIN- m d BASCOM-Progranaen Grafik-Funktionsaufrufe werden in FORTRAN und Basic-Compiler BASCOM wie externe Unterprogramme behandelt.
  • Seite 60 Alle Graphik-Funktionen des PSI80 Graphikpaketes außer SYMBOL sind von MBASIC aus ansprechbar. Dazu dient das Graphikmodul MBGRAP.COM. Dieses wird in den Speicher geladen, aber nicht sofort ausgeführt. Dies erreicht man durch das Kommando MBGRAP, <- - Durch den Aufruf DO MBGRAP <- - wird automatisch das Graphikpaket und MBASIC geladen.
  • Seite 61 Die seriellen Treiber sprechen entweder Serienschnittstelle (PSIA, SIOA, OKI) oder die Serienschnittstelle B (PSIB, SIOB) an. Die Programme liegen sowohl als Quellprogranm (Typ ’.SRC') auch relokative übersetzte Programme (Typ f.0BJf) vor. 3.1 Drucker-Treiber (OKI-HICROLINE 80) Dateien: OKI,SRC OKI.OBJ Durch die Kommandodateien auf deutsche Meldungen schalten MAKEDEU.KMD...
  • Seite 62 Dateien SIOA.SRC PSIA. SRC SIOA. OBJ PSI A. OBJ PSIB. SRC SIOB. SRC SIOB.OBJ PSIB.QBJ PSIA/PS3B Treiber dient Datenübertragung über seriellen Schnittstellen A und B; insbesondere dafür ausgelegt, zwei PSl80-Systeme oder PSl80-System einen anderen Rechner zu koppeln. Beide PSl80-Systeme aktiviert man mit dem Kommando fEAK $PSIA=AKnv*. Zuerst muß...
  • Seite 63 SIOA/SIOB Allgemeiner serieller Treiber für die seriellen Schnittstellen A und B. bidirektionale Treiber überträgt alle Zeichen und ist spoolfähig (siehe 1 SPOOLf -Kommando). Der Treiber arbeitet mit: 1200 Baud 2 Stopbits kein Parity CTS nicht abfragen Diese Parameter können mit dem Befehl ’INISER P* geändert werden. Ausführlicher wird dieser...
  • Seite 64 Ein-/Ausgabetreiber sind in der Regel Prograne Ansteuerung einer spezifischen Hardwareschnittstelle, an der ein Gerät angeschlossen ist. Unter KOS können jedoch auch andere Funktionen als Treiber realisiert werden Bedarf durch Aktivierung (EAK-Kanmando) residenten Teil des Betriebssystems dazugebunden werden. Ein Beispiel ist der Umsetzmodul für CP/M-Aufrufe $CPM, siehe Utility-Beschreibung.
  • Seite 65 Wird eine Datei nicht ’COPY*-Kommando, sondern "Spooler" im Hintergrund ausgedruckt, müssen im Treiber zusätzlich die Funktionen ’OSTATUS’, ’ISTATUS’, »IOCINP* und ’IOCOUTP’ implementiert sein. Das ’SPOOL*-Kommando kann die Routine STATUS, INIT, OPEN und CLOSE über INOUT-Routine erreichen. Daher muß in dieser Routine die Möglichkeit geschaffen sein, diese Routinen über...
  • Seite 66 STATUS Nur für Eingabekanäle von Bedeutung: liefert ein Resultat entsprechend der E/A - Funktion 82H ein Byte steht bereit - - > Z-Flag = 0 kein Byte stehtbereit - - > Z-Flag = 1 Hinweis: Wird dem Kanal (standardmäßig: $KEY) anderer E/A-Treiber zugeordnet,...
  • Seite 67 Beispiel eines einfachen Ausgabetreiberprogramns (SIOA) Dieses Treiberprogramm benützt Serienschnittstelle PSI80-Computers und arbeitet mit 1200 Baud. diesem Treiber kann ein beliebiges seriell arbeitendes Datenendgerät bedient werden. Dieses Beispiel zeigt auch, wie E/A-Treiber, falls erforderlich, gelinkt, auf Diskette abgespeichert und aktiviert werden können. Bei den Routinen ’INIT’, ’OPEN»...
  • Seite 68 A, (SIOCHA+2) ;Treiber busy? OSTAT: TXEM,A NZ,OSTAT1 ;nein (IX+5),42H ; nein, Funktion busy (IY+6),OFFH ;Z-Flag = 1 IOEND (IY+6),0 ;Z-Flag = 0 OSTAT1: LD ;A=0? Z,IOEND ; ja, nur Status melden ; nein,Zeichen auf SIO ausgeben (SIOCHA),A IOEND ISTAT: (IY+6),0 ;Z-Flag = 0 CALL STATUS...
  • Seite 69 STATUS: A,(SIOCHA+2) ; bereit zum empfangen? RXAV,A ;1200Bd,no parity,2 Stopbit INIT: ;8bit/chr,CTS abfragen ;INIT CTC A,CTCMODE (CTC1C2),A A,TIMEC (CTC1C2),A C,SIOCHA+2 ;INIT SIO B,SIOLEN HL,SIOTAB OTIR ;INIT-MESS. IX,WRVECT HL,INIMSG Rückmeldung A.DIR ;Zeiger auf Write Register 4 SIOTAB: DEFB DEFB ;CKM0DE,2 STPBIT, no parity DEFB OE8H ;Tx 8bit/chr, Tx enable...
  • Seite 70 ;EQUATES SIOCHA EQU CTC1C2 EQU TIMEC CTCMODE EQU 47 H ;RX character available (SIO read reg. 0) RXAV ;TX-buffer empty (SIO read reg. 0) TXEM EQU87H ;K0SCAL STRING EQU OAODH CRLF ASCICR EQU ASCILF EQU BSPACE EQU ASCIFF EQU AS CT AB EQU ;Ausgabe-Treiber: DIR = 0 ;Eingabe-Treiber:...
  • Seite 71 Beim Datentransfer mittels COPY-Kommandos werden folgende Aktivitäten ausgeführt: 1. Aufruf der OPEN - Routine 2. Datenübertragung 3. Aufruf der CLOSE - Routine Hinweis: Das COPY-Kommando ordnet einem E/A-Treiber automatisch die Kanalnummer Eine vorherige Zuweisung mit dem EAK-Kcmmando ist deshalb nicht erforderlich.
  • Seite 72 4. Itasetztreiber 4.1 Itasetztreiber für CP/H-Auf rufe CP/M-kompatible (CP/M-Versionen 1.4 und 2.0) Programme verwenden Systemaufruf Instruktion RST5. Über das Umsetzprogramm CPM.OBJ werden diese Funktionen in KOS-kompatible Aufrufe (RST8) transformiert. Dieses Programm ist als Treiber organisiert. Durch EAK $CPM=AKTIV<- - wird der Umsetzer zun Betriebssystem dazugeladen. $CPM ist notwendig für...
  • Seite 73 CP/M KOS Translator $CPMX $CPMX aus geschlossen. Dies sinnvoll, wenn Compiler benutzt werden, eine Reihe von Overlay Dateien erzeugen und so mehr als 8 Dateien gleichzeitig geöffnet wären. Für Programme 'random file I/O' ist der Einsatz von $CPMX jedoch nicht garantiert. Hier ist eine andere Methode...
  • Seite 74 PSI80D-Systeme kämen PSl80-Disketten lesen und schreiben, wenn auf das entsprechende Laufwerk der Treiber MIC.OBJ aktiviert wird: EAK $MIC=AKTIV M-1=$MIC<- - Deaktivierung durch: EAK $MIC=DEAKTIV M-1=$DSK1. Wenn K0S3.2-kompatible Programme auf PSI80D-Systeme überncmmen werden sollen,lautet der Aufruf : EAK $D32=AKTIV M-1=$D32 <- - M0VE,<—...
  • Seite 75 Beispielprogranme auf der Utility-Diskette 5.1 MFÖ-Kcnmando (Ausgabe von ASCII-Zeichen) Dateien: INFO.SRC INFOMSG.SRC INFO.OBJ INFOMSG.OBJ MAKE.GER MAKE.ENG M F O ist ein Beispiel eines Assembler-Programms: - Kopf und Ende eines Assembler-Programms - Schnittstelle zu KOS (Systemaufrufe) Datei eröffnen, Record lesen Zeichenausgabe auf Bildschirm usw. INFOHSG ist die Text-Datei für INFO.
  • Seite 76 5.3 Hintergrund-Program Datei: TIME.SRC Beispiel für ein Programm, das als TASK im Hintergrund abläuft (siehe auch Systemkcmmando ’ TASK*). Das Programm TIME zählt Task ’CLOCK* im 20ms-Rythmus abgelaufenden Intervalle bringt jede Sekunde Anzeige der Uhrzeit auf den Bildschirm. Dazu dient die Task ’ DISPLY*. TIME aktiviert diese beiden Tasks, Hintergrund,...
  • Seite 77 6. Testprogranme 6.1 Test der Peripherie-Bausteine Aufruf: PSITEST<- - Dieses Testprogranm überprüft wichtigsten Funktionen hochintegrierten Peripherie-Bausteine. Bausteintyp, Betriebsart, Portadresse und Fehlerart werden einer übersichtlichen Tabelle angezeigt. Eingeschriebenes ausgelesenes Datenwort wird nur im Fehlerfall angezeigt. Die Frage ’Testloop im Fehlerfall’ ist immer ’N ’...
  • Seite 78 6.2 Speichertest Aufruf: MEM64<- - Hier handelt es sich Testprogramrae für Arbeitsspeicher PSl80-Computers. Nach dem Aufruf laufen sie in einer endlosen Schleife und zählen jeden Schleifendurchlauf. Eventuell aufgetretene Fehler werden angezeigt, Abbruch des Programms nur durch ESC (Escape). 6,3 Laufwerk/Disketten-Test Aufruf: DISKTESK- - Dieses Programm...
  • Seite 80 KDM - KONTRON DEBUGGING MODULE Version 1. August 1981 KDM - Kontron Debugging Module - ist wichtiges Hilfsmittel Test Programnen Z80-Assembler-Sprache. ermöglicht protokollierenden Ablauf Programmen herunter Mikroprozessorebene. testende Programm braucht dazu nicht verändert werden, wird seiner ablauffäiigen Form ’.COM*-Datei zusammen mit geladen und unter gestartet.
  • Seite 81 Inhaltsverzeichnis Aufruf von KDM Bedienung von KDM Kommandoaufbau Eingabekorrektur Eingabefehler Kommandoabbruch Beschreibung der Kommandos B-Kommando: Speicherbelegungsplan ausgeben D-Kommando: Anzeigen und Ändern von Speicherstellen, Anzeigen von Haltepunkten und Ports, Disassemblieren F-Kommando: Fülle-Kommando Programmstart mit Retten der Register G-Kommando: J-Kommando: Programmstart ohne Retten der Register KOS: Rückkehr zu KOS Lokalisieren von Bytefolgen...
  • Seite 82 1. Aufruf von KDM Die PSl80/D-Serie ist mit einem automatischen premresidenten Urlader ausgerüstet, der das Betriebssystem wahlweise von einem der Floppy Disk Laufwerke lädt. Ein promresidentes ’Basis-Operating-System (BOS)’, wie im technischen Handbuch 1980 (Kapitel: KDM 3.2) beschrieben, ist nicht mehr implementiert.
  • Seite 83 2.1 Aufbau eines Kommandos Jede Kommandoeingabe (jedes Kommandofeld) besteht einem Identifications- einem Parameterfeld (ID-/P-Feld), sowie dazwischenliegenden Trennzeichen. <— ID-Feld— ><------- Parameterfeld------- > KOMMANDOAUFRUF TZ P1 TZ P2 TZ...Pi TZ...Pn Das ID-Feld muß mit einem Großbuchstaben (A bis Z) beginnen und reicht ersten Trennzeichen (TZ1), Da der Kommandointerpreter in der...
  • Seite 84 2.2 Eingabekorrektur Eine Korrektur der laufenden Eingabe vor Abschluß der Zeile geschieht durch - die Taste RUBOUT (ASCII-Code 7FH): Löschen des gesamten Zeilenpuffers - die Tastenkombination CNTR-H oder die Taste ’Cursor links’ (ASCII-Code 08H): Löschen des zuletzt eingegebenen Zeichens. In beiden Fällen wird an den Ausgabetreiber pro zu löschendes Zeichen die Kombination ’Backspace-Blank-Backspace’...
  • Seite 85 3. Konmandobeschreibung Für jedes Kommando folgt nach einer kurzen einleitenden Funktionsbeschreibung Syntax Identifikations- Parameterfeld. Für die Taste 'RETURN* steht das Symbol '<— Folgende Kommandos stehen zur Verfügung: KOS Speicherbelegungsplan ausgeben Anzeigen und Ändern von Speicherstellen Speicherbereich anzeigen adr len adr1-adr2 Speicherbereich anzeigen DA adr len Speicherbereich disassemblieren...
  • Seite 86 3.1 Speicherbelegtmgsplan (Bitmap) der Speicherverwaltung Format: B<- - Ausdruck des aktuellen Speicherbelegungsplans, ähnlich dem MAP-Kommando in KOS. 3.2 Darstellen von Speicher- und Port-Inhalten Darstelle-Kcmmando (Display) dient Ausdruck Speicherinhalten, Ports und der Haltepunkt-Adresse. Speicherstellen können sowohl einzeln (interaktiver ’ Display and Alter Mode’) als auch im Block (mit ASCII-Äquivalent) ausgegeben werden.
  • Seite 87 b) D-Darstellen von Speicherbereichen Format: D adrl-adr2<- - D adr1 n<— adr1 Anfangsadresse adr2 Endadresse Anzahl der Speicherstellen Entspricht die Differenz adr2 adr1 bzw. Größe keinem ganzzahligen Vielfachen von hexadezimal 10, so erfolgt automatisch die Aufrundung auf das nächste ganzzahlige Vielfache 10H.
  • Seite 88 e) Darstellen von logischen Sätzen (display record) Format: DR lrn mn segm adr<— logische Satznunmer (logical record nunber) mit: Mediennunmer Nunmer des adressierten 8 MByte-Segments segm eines Mediums Pufferadresse ab der der Satz abgelegt wird Voreinst.: lrn segm = 0 adr wird von KDM dynamisch festgelegt Ausgabe des Inhalts der logischen Satznunmer lrn von Medium...
  • Seite 89 3.4 Programmstart »Gehe* (Goto) G-Kommando ermöglicht Start eines Anwenderprogramms beliebiger Adresse, bzw, die Fortsetzung eines Programms nach einem Haltepunkt, Vorher werden grundsätzlich die Register der Anwender-CPU rückgespeichert. Format: G adr<— Ist der Parameter adr spezifiziert, erfolgt ein Sprung auf die Adresse adr, andernfalls...
  • Seite 90 3,6 KOS-Konmando: Verlassen von KDM Mit der Eingabe von KOS<- - wird KDM verlassen. 3.7 Lokalisieren von Bytefolgen Format: L adr n b1 b2.,.<-— L adr1-adr2 b1 b2...<— Durch dieses Kommando können Bytefolgen Speicher gesucht werden. Dabei kann der zu durchsuchende Speicherbereich und eine beliebig lange Folge (begrenzt durch die Länge einer Eingabezeile = 255 Zeichen) von...
  • Seite 91 3.9 Setzen von Ports, Haltepunkten, Sätzen und Speicherbereichen. Mit diesem Kommando können Ports Haltepunkte gesetzt, logische Sätze Mediun geschrieben Speicherbereiche (Window) festgelegt werden. a) Setze Haltepunkt Format: SH adr<— Setzt einen Haltepunkt auf die Adresse adr, falls Wert spezifiziert wurde. Andernfalls wird ein bisher aktiver Haltepunkt deaktiviert.
  • Seite 92 b) Setze Port Format: SP adr by<— Das Byte by wird auf den Port mit der Adresse adr übertragen. Sind Parameter nicht spezifiziert, wird dafür der Wert 0 eingesetzt. Nach dem SP-Kommando wird automatisch das DP-Kommando ausgeführt. c) Setze logischen Satz (set record) Schreibt einen logischen Satz auf ein aktives Medium.
  • Seite 93 3.10 Register-Kannando Ausdruck Registerinhalte ’virtuell’ vorhandenen Anwender-CPU. Diese stehen einem für reservierten Speicherbereich. Beim Programmstarten mit dem G- oder N-Kommando (3.4 bzw. 3.8) werden alle CPU-Register die Werte der Anwender-CPU gesetzt. Entsprechend werden die Registerinhalte der Anwender-CPU beim Rücksprung in das Debug Module in den dafür vorhandenen Speicherbereich gerettet.
  • Seite 94 3*11 Transfer-Kcranando Das Transfer-Kommando verschiebt einen beliebigen Speicherbereich einen anderen. Format: T adr1 adr2 n<— Voreinst: adr1 adr2 verschiebt n Bytes ab Adresse adr1 in den Speicherbereich ab adr2. gilt folgende Zuordnung: adr2 adr1 adr+1 adr2+1 adr1+2 > adr2+n — Auch bei diesem Kommando ist zu beachten, daß...
  • Seite 96 BETRIEBSSYSTEM BESCHREIBUNG Stand: 15. August 1981 Version: Rev. 4/Rev. 5 Diese Beschreibung gilt den Betriebssystemversionen folgenden als KOS bezeichnet. Bitte beachten Sie auch die Datei KOS.INF Ihrer Systemdiskette. Sie finden dort weitere wichtige Informationen. vorliegende Teil PSI80-technischen Handbuchs gibt sehr detaillierte Hinweise Ober...
  • Seite 97 Index Betriebssystem INHALTSVERZEICHNIS Übersicht Aufbau von KOS Speicherorganisation von KOS KOS-Systemfunktionen - Übersicht Parameterübergabe - allgemeine Konvention Ein-/Ausgabefunktionen Übersicht Beschreibung der E/A-Funktionen Programmbeispiele Allgemeine Systemfunktionen Übersicht Funktionsbeschreibung - allgemeine Systemfunktionen Hintergrundverarbeitung (Backgroundtasks) Dateiverwaltung Übersicht Die Organisation eines Mediums Die Datei 'Inhaltsverzeichnis' Dateiverwaltungsfunktionen 7.4.1 Dateispezifikationsblock...
  • Seite 98 Übersicht 1. Übersicht Betriebssystem (Kontron-Operating-System) allen diskbasierenden PSl80-Versionen implementiert. Anwendungs-orientiertes transparantes Betriebssystem konzipiert. KOS ist medienunabhängig: externe Massenspeicher werden über logische Kanäle wahlfreier Zuordnung verwendet. Für die Medienverwaltung gilt: - Kapazität pro Mediun bis 64 MByte - automatische Dateisuche auf allen aktiven Medien - Dateigröße von 0 bis 8 MByte...
  • Seite 99 Aufbau 2 , Aufbau von KOS Das Betriebssystem KOS ist ein Dienstleistungssystem, das Kommandos vom Benutzer oder externen Dateien (Kommandodateien) erhält diese ausführt. KOS besteht im wesentlichen aus folgenden sieben Teilen: - dem Systemverwalter - dem Kommandoentschlüssler - dem Dateiverwalter - dem Ein-/Ausgabeverwalter - dem Speicherverwalter - dem Taskverwalter...
  • Seite 100 3. Speicherorganisation von KOS Betriebssystem benötigt etwa kByte residiert grundsätzlich im obersten zur Verfügung stehenden Speicherbereich. Beim Kaltstart von KOS wird folgende Speicherorganisation aufgebaut: - Der PROM-Bereich der PSl80-Zentralplatine wird abgeschaltet, so daß nur Schreib-/Lesespeicher vorhanden ist. - Der Adreßbereich 0 - FFH (256 Byte) wird für Systemparameter reserviert und enthält auf der Adresse 8 den Systemeinsprungpunkt KOSCAL;...
  • Seite 101 Wichtige Systemadressen: (Hexwerte) KOS Warmstart 00 - 02 KDT-Statusbyte reserviert für CP/M-K0S Translator ($CPM) CP/M-Systemcall Entry Point (RST 10H) MEMTOP 0 6 - 0 7 KOS-Systemcall Einsprung 08 - 0A OB - 0D KOS-Fehler Einsprung reserviert für Datum 0E - OF 10 - 12 Einsprungpunkt nach $CPM reserviert für $DSK0/$DSK1...
  • Seite 102 b) KOSCAL Der Aufruf beliebigen Funktionen Betriebssystems durch System- oder Anwenderprogramme erfolgt unabhängig von der Lage des Betriebssystems mit dem Einbyte-Callbefehl RST8. c) KERROR Fehlereinsprungpunkt (Adresse: 000BH) kann Rückkehradresse Parametervektor eines KOS-Aufrufs angegeben werden (siehe auch allgemeine Systemfunktionen: Funktion 3). Effekt ist, daß...
  • Seite 103 4. KOS-Systemfunktionen - Obersicht Alle Systemfunktionen (Ein-/Ausgaben, Datei-, Task-, Speicherverwaltung) sind über den gemeinsamen Systemeinsprungpunkt Adresse (RST 8-Befehl) erreichbar. Dieser Einsprungpunkt reentrant, d.h., daß Systemfunktionen sich selbst oder andere Systemfunktionen aufrufen können. Dies bedeutet auch, daß eine Systemfunktion beliebiger Stelle per Interrupt unterbrechbar ist und, daß...
  • Seite 104 jedem Systemaufruf werden sämtliche Register Hauptregistersatzes in den Stack gerettet. Gleichzeitig wird IY-Register dem Wert Stackpointers geladen. diesen 'IY-Stack* stehen somit einer Systemfunktion (z.B. einem E/A-Treiber) die ursprünglichen Werte aller CPU-Register Nach dem Einsprung enthält: IY - 6 Returnadresse (Low Byte) Returnadresse (High Byte) IY - 5...
  • Seite 105 Erläuterung des Vektorinhalts: (IY+0) logische Kanalnummer für E/A-Funktionen (IX+1) Nunmer ’n ’ der gewünschten Funktion mit der Zuordnung: < n < 40H > allgemeine Systemfunktionen < n < 80H > Dateiverwaltungsfunktionen < n < COH > Ein-/Ausgabefunktionen (IX+2) funktionsabhängig (IX+3) funktionsabhängig (IX+4) funktionsabhängig...
  • Seite 106 E i n-/Ausgabefunkti onen 5.1 Übersicht Aufruf: RST 8 mit 80H < (IX+1) < COH funktionsabhängigen Parameter (IX+2) (IX+4) werden folgendermaßen interpretiert: (IX+2) - log. Satzmxnmer (lrn) für Medien Ein-/Ausgabe (low byte) (IX+3) - log. Satznunmer (lrn) für Medien Ein-/Ausgabe (medium byte) (IX+4) - log.
  • Seite 107 Eingangs- Ausgangs- Kurzbeschreibung parameter parameter FNKT.# (IX+1) ---- 80H: nicht implementiert 81H:0STATUS a s c Status des Ausgabekanals — A-n mit Übertragung falls Kanal bereit und cd # 0 82H:ISTATUS — — “ Status des Eingabekanals E-n mit Übertragung falls Zeichen bereit und cd # 0 83H:STOP? Ausgabesteuerung aller KOS...
  • Seite 108 Kurzbeschreibung Eingangs- Ausgangs­ parameter parameter FNKT.# (IX+1)-------------- 8AH:LRREAD (IX+2) adr Lesen eines log. Satzes von Medium M-n in den Puffer­ (IX+3) (IX+4) speicher 'adr* 8BH:LRWRITE (IX+2) adr Schreiben eines log. Satzes auf Mediun M-n aus dem (IX+3) (IX+4) Pufferspeicher ’adr* 8CH:IOCINP Ausführung der INIT.
  • Seite 109 5.2 Beschreibung der E/A-Funktionen Funktion 81: OSTATÜS Abfrage des Status von Ausgabekanal A-n. dieser Funktion wird gleichzeitig übertragendes Zeichen im Register L übergeben, falls Register A einen Wert enthält. Ergebnis zeigt Zero-Flag CPU, Ausgabekanal bereit ist, Byte zu empfangen. Ist der Kanal bereit, ein Zeichen (Byte) empfangen, muß...
  • Seite 110 Als Ergebnis von Funktion 83 zeigt Zero-Flag CPU, ESCAPE-Taste gedrückt war oder nicht, Z-Flag = 0 - - > ESCAPE-Taste war gedrückt Z-Flag = 1 - - > keine oder eine beliebige NICHT-ESCAPE-Taste war gedrückt Funktion 83 wird auf die Funktionen 82, 84 und 86 zurückgeführt. Funktion 84: INPUT Einlesen eines Zeichens über den logischen...
  • Seite 111 Ausgabe der Hexadezimalzahl im Register A als zwei ASCII-Zeichen Kanal A-n. Funktion 88 wird auf die Funktion 86 (OUTPUT) zurückgeführt. Funktion 89: nicht implementiert Funktion 8A: LRREAD (logical record read) Lesen eines logischen Satzes des Medians M-n in einen Pufferspeicher ab Adresse Tadr'.
  • Seite 112 Ausführung der 'INIT, OPEN oder CLOSE-Routine' eines E/A-Treibers. Hierbei wird im Register A ein Code 'cd' übergeben, der eine der drei Routinen auswählt, A = 0 - - > INIT-ROUTINE A = 1 - - > OPEN-Routine A = 2 —...
  • Seite 113 ! ! ! ! ! ! ! !------ single/double density reserv. ! 1 ! ! ! !----------- single/double sided ! ! ------------- mini/standard drive non dma/dma floppy disk/mini winchester a) Organisation der Namenstabelle Diese Tabelle enthält pro Treiber 8 Byte und hat insgesamt Platz für 20 Einträge.
  • Seite 114 Zuweisung der logischen Kanalnummer *nT (1 < 'n* < einen E/A- oder Medientreiber. Register A enthält hierbei im unteren Halbbyte den Wert *nf und oberen Halbbyte hexadezimalen Wert für Medientreiber, 'E' für Eingabetreiber bzw. ?A* für Ausgabetreiber. Registerpaar zeigt den Namen »eatname* des Treibers (maximal vierstelliger Name mit Leerzeichen nichtbesetzten...
  • Seite 115 a) periodische Ausgabe eines Textes auf den Sichtschirm mit der Ausgabesteuerung (Funktion 83). BEGIN: ;IX-Vektor laden LD IX, VECTOR LD (IX+1), STRING ;Funktionsnr. für Stringausgabe laden LD HL, TEXT ;Zeiger auf String ;KOSCAL RST 8 LD (IX+1), STOP? ;Funktionsnr. für STOP? laden RST 8 ;Abbruch falls Z-Flag=0 (ESC-Taste war JR Z,BEGIN...
  • Seite 116 b) Einlesen von ASCII-Zeichen von der Tastatur mit anschließender Ausgabe des zugehörigen hexadezimalen Codes auf den Sichtschira. START: LD I X , VECTOR ; IX-Vektor laden START1: LD (IX+1),INPUT ; Funktionsnunmer laden RST 8 ; KOSCAL: Zeichen einiesen CP ESCAPE ;...
  • Seite 117 c) Zuordnung der Kanalnummer 5 an den Eingabetreiber $EIN unter Verwendung der Fehlerrückkehradresse im Parametervektor, START: IX-Vektor laden LD IX,VECTOR Zeiger auf EAT-Name LD HL,EATPNT E für Eingabe - 5 für Kanalnummer LD A,0E5H an dieser Stelle müßte das Register A mit dem Wert 0A5H für Ausgabetreiber und 05H für Medientreiber geladen werde E/A-Funktion: ASSIGN...
  • Seite 118 6.1 Übersicht Aufruf: RST 8 mit 0 < (IX+1) < 40H Zusanmenstellung der allgemeinen Systemfunktionen: Nummer Eingangspa rameter Bedeutung (IX+1) 1H:KMDINT Ausführung des Kanmando- strings ab Adresse ’adr’ 2H:DSBGEN Aufbereitung des Strings ab Adresse ’str’ zu einem DSB ab Adresse ’dsb’ —...
  • Seite 119 6.2 Funktionsbeschreibung Funktion 1: KHDINT Aufruf des Kommandointerpreters KOS. HL-Registerpaar zeigt hierbei einen String ASCII-Zeichen, (binär) abgeschlossen ist. Funktion führt das (oder die) Kommando(s) des Kommandostrings aus. Anwenderprogrammen bietet sich hiermit Möglichkeit, KOS-interne oder externe Systemprogramme aufzurufen. Beispiel: Ausführung der Kommandos 'STATUS' und 'IL' von einen Anwenderprogramm aus.
  • Seite 120 Generiert die ersten 16 Byte eines Dateispezifikationsblocks (DSB) einen mit (binär) 0 abgeschlossenen String. Folgende Eingangsparameter sind erforderlich: HL - - > Zeiger auf den Speicherbereich (dsb), in dem der Aufbau des DSB erfolgen soll (16H Byte groß) DE - - > Zeiger auf den ASCII-String (str) Nach der Aufbereitung enthält das erste Byte des DSB sogenannte DSB-Statusbyte (siehe Abschnitt 8).
  • Seite 121 BUFFER: ; Muß un 3 größer sein als die Anzahl DEFS 23 ; der zugelassenen Zeichen DSBBUF: ; DSB-Bereich DEFS 21H KOSVEC: DEFB 0 ; Funktionsnunmer für E/A-Funktion BUFIN DEFB 85H DEFW 0 DEFW 0 ; KERROR (=000BH) DEFW 11 END START Zu beachten ist, daß...
  • Seite 122 Aufruf der KOS-Speicherverwaltung mit der Möglichkeit *n’ Segmente belegen (allocate) oder freizugeben (deallocate). Als Eingangsparameter sind erforderlich: HL — > Adresse fadr' des ersten Segments DE — > Anzahl ’n* der Segmente - - > Code ’cd* für Allocation/Deallocation mit A = 1 - - >...
  • Seite 123 Beispiel: Verwendung der KOS-SpeiOberverwaltung. Im folgenden wird oberste noch freie kByte Speicherbereich gesucht. Dies sind 16 Segmente je 128 Byte. START: IX-Vektor laden LD IX,KOSVEC Anzahl der Segmente LD DE,16 Code für Suchen LD A,3 RST 8 ; falls kein Speicher frei JR C,NOMEM MEMOK: an dieser Stelle zeigt HL...
  • Seite 124 6.3 Hintergrundverarbeitung (Backgroundtasks) KOS enthält standardmäßig einen sogenannten ’Task scheduler', Softwaremodule, regelmäßigen Abständen (hier alle 20 ms) eine Taskliste überprüft und aktive Tasks gegebenenfalls ausführt (siehe dazu auch Dienstprogramm: ’TASK’). Eine Task ist durch einen 16 byte großen Parameterblock (Taskcontrolblock ’tcb') bestimmt. Die Bedeutung der einzelnen Bytes ist wie folgt: Byte 0:...
  • Seite 125 Byte 1 = AMS Anzahl der für die Task belegten Speicher- Segmente. Bei der Deaktivierung einer Task werden ab der Adrese TLA AMS SpeieherSegmente deallokiert Preset Counter (16 bit). Dieser Zähler bestimmt Bytes 2/3 = PCHT die Anzahl der 20ms-Perioden, nach der eine Task ausgeführt wird.
  • Seite 126 Zur Verwaltung von Tasks stehen drei Systemfunktionen zur Verfügung: Funktion 6 : Aktivierung einer Task Setzen des Statusbytes einer Task Funktion 7 : Funktion 8 : Parameterübertragung an eine Task Funktion 6: ATASK HL - - > 16 byte Parameterblock zur Task­ Eingangspa rameter: beschreibung (tcb) Ausgangsparameter:...
  • Seite 127 Funktion 8: PTASK Eingangsparameter: HL --- > Zeiger auf Taskname DE - - > Zeiger auf Parameterblock Ausgangsparameter: keine (1X45) = 82H, falls Task nicht aktiv Diese Funktion dient dazu, beliebig geartete Parameter an eine Task übergeben (z.B. Kommandostrings etc.). Hierfür wird ebenfalls der...
  • Seite 128 Id ix,vector ix-Vector laden TLA: ld hl,ttable tcb-Zeiger laden KOS-Call rst 8 Return code 44H: KOS gibt Id (IX+5),44h den Speicher für dieses Programm nach der Rückkehr nicht frei EQU (ende-TLA)/128+1 vector: deb 0,6,0,0,0,0,0,0 ttable: defb 5 Statusbyte defb AMS Anzahl der belegten Speicher- Segmente defw 500...
  • Seite 129 Dateiverwaltung 7.1. Übersicht Die DateiVerwaltung von KOS arbeitet grundsätzlich auf logischer Ebene deshalb unabhängig spezifischen Eigenschaften verschiedener Medien. Individuelle Treiber bilden die Schnittstelle zwischen logischer und physikalischer Ebene. Jedem Treiber eine logische Kanalnummer Bereich von 0 bis 9 zugeordnet, über die die Dateiverwaltung ein bestimmtes Medium adressiert.
  • Seite 130 7.2 Die Organisation eines Mediums Die Dateiverwaltung von KOS teilt ein Medium in logische Blöcke ein. derartiger Block besteht 8 aufeinanderfolgenden Sätzen und stellt den minimalen Platzbedarf einer nicht leeren Datei dar. einer Datei zugeordneten Blocknunmern sind Inhaltsverzeichnis gespeichert. Es gilt folgende Zuordnung: Bloeknunmer Satznunmern (hexadezimal) 0000...
  • Seite 131 Byte Bedeutung Dateieigenschaften (file properties) mit der Bedeutung: Bit 0 Systemdatei Datei schreibgeschützt Bit 1 Datei löschgeschützt Bit 2 Properties gesperrt Bit 3 Bit 4 nicht verwendet (wird später definiert) Bit 5 Directory Datei Datei hat Benutzerkennzeichen Bit 6 — Datei ist ’verborgen* Bit 7 16 - 17...
  • Seite 132 7.3 Die Datei «Inhaltsverzeichnis* Die Datei ’Inhaltsverzeichnis’ ist die einzige Datei, einem noch jungfräulichen Mediun existieren muß. enthält am Anfang gewöhnlich einen Eintrag, nämlich Verweis Inhaltsverzeichnis selbst. Dieser Eintrag wird beim Formatiervorgang automatisch generiert, wobei Inhaltsverzeichnis ein beliebiger maximal 8-stelliger Name zugewiesen werden kann. Dieser Name wird Initialisierung eines...
  • Seite 133 Beispiel des Formats des ersten Directory Satzes: (logical record 0) Byte Wert. (hex) )- Directoryname (ASCII-Zeichen) ) wird beim Formatieren eingetragen )- Directorytyp (DIR) - Dateieigenschaften )- Systemdatum, wird beim Laden von KOS )- in die Speicherstellen OEH/OFH geschrieben )- Backup-flags )- Sätze in der Datei, sagt aus, daß...
  • Seite 134 7.4 DateiVerwaltungsfunktionen Die DateiVerwaltungsfunktionen unfassen das Eröffnen, Lesen, Schreiben oder Schließen Dateien. Bei allen Aufrufen dieser Funktionen muß das aufrufende Programm einen Parameterblock bereitstellen, der die bearbeitende Datei eindeutig beschreibt. Dieser Parameterblock, im folgende DSB - Dateispezifikationsblock - genannt, ist sowohl in einer 3.x, als auch KOS-kompatiblen Form möglich.
  • Seite 135 7.4.1 Dateispezifikationsblock Der Dateispezifikationsblock - DSB kennzeichnet in eindeutiger Weise bearbeitende Datei oder Dateigruppe. Der Aufbau des DSB ist im folgenden erläutert. a) der KOS 3.x (und auch CP/M 1.4) kompatible DSB Dieser Parameterblock unfaßt 33 Byte. Er beschreibt 16 Kbyte einer Datei(erweiterung) und liegt grundsätzlich im Speicherbereich des aufrufenden Programms.
  • Seite 136 b) der KOS 4/5-kompatible DSB Der KOS kompatible DSB umfaßt 128 Byte und entspricht exakt einem Eintrag Inhaltsverzeichnis eines Mediums. Beim Eröffnen einer Datei muß das aufrufende Programm lediglich ersten Byte (Mediennunmer, Name, Typ, Extension) bereitstellen. Dateiverwaltung sucht daraufhin automatisch ein freies Speiehersegment im Systemspeicher und generiert dort...
  • Seite 137 Byte 15 Dateieigenschaften (Properties) Bit 0 Systemdatei Bit 1 Datei schreibgeschützt Bit 2 Datei löschgeschützt Bit 3 Properties gesperrt Bit 4 nicht verwendet (wird später definiert) Bit 5 Directory Datei Bit 6 Datei hat Benutzerkennzeichen Bit 7 Datei ist 'verborgen* Byte 16 Datun, an dem die Datei generiert wurde Byte 18...
  • Seite 138 7.4.2 Beschreibung der Dateiverwaltungsfunktional Zusammenstelung der unter definierten DateiVerwaltungsfunktionen (die Funktionen 60H...6CH entsprechen den KOS 3.x-Funktionen 40H...4CH und sind auch über diese Aufrufe für KOS 3.x-Progranme zugänglich): Aufruf: RST8 mit 40H < (IX+1) < 80H Nunmer Eingangs- Ausgangsparameter (IX+1) parameter 60H:INIT —...
  • Seite 139 Ausgangsparameter Nunmer Eingangs- (IX+1) parameter — 6DH;CLOSER 0 : Datei geschlossen DSB5 DSB5 FF: Datei nicht ge­ schlossen 6EH:CL0SEA Schließen aller geöffneten Dateien 6FH: nicht implementiert 70H:DVMTAB 71H:DISPAR 0 : log. Satz gelesen 77H:RD-RANDOM DSB5 DSB5 F : log. Satz nicht gelesen 78H:WR-RANDOM 0 : log.
  • Seite 140 Initialisierung der Dateiverwaltung. Bei dieser Gelegenheit werden nach Eingangsparameter alle aktiven oder nur ein bestimmtes Mediun neu initialisiert. Initialisierung eines Mediums wird Inhaltsverzeichnis gelesen daraus Gesamtbelegungsplan Mediums errechnet Systemspeicher zusammen mit dem Namen der Datei ’Inhaltsverzeichnis’ abgelegt. Dieser Name dient Dateiverwaltung Mediumidentifikation.
  • Seite 141 Eröffnet die durch den DSB bestimmte Datei. Falls keine Mediennunmer angegeben (Byte = 0), wird eine automatische Dateisuchsequenz allen aktiven Medien (beginnend Mastermedium) gestartet. Datei vorhanden, wird entsprechende Eintrag Inhaltsverzeichnis freies Speichersegment des Systems geladen. Nach der Rückkehr zun aufrufenden Programm zeigt das Registerpaar HL auf das erste Byte des 128 Byte DSB.
  • Seite 142 Sucht die durch den Dateispezifikationsblock bestimmte Datei. Hierbei darf der DSB im Bereich des Namens/Typ Fragezeichen (ASCII-Code: 3F) als Repräsentanten eines beliebigen Zeichens enthalten. Funktion 44/64 findet den ersten Eintrag des Inhaltsverzeichnis, der d e i n entspricht. In diesem Fall enthält das Register A den Wert 0. HL zeigt auf den DSB der gefundenen Datei.
  • Seite 143 Löscht die durch den Dateispezifikationsblock bestimmte Datei. Hierbei wird Inhaltsverzeichnis eines Mediums der Viert E5H an die erste Stelle des entsprechenden Dateieintrags gschrieben. Die DELETE-Funktion erfordert nicht das vorherige Eröffnen einer Datei. Eine bereits geöffnete Datei wird durch die DELETE-Funktion automatisch geschlossen. Ausgangsparameter: A = 00 Datei gelöscht A = FF...
  • Seite 144 Für diese Funktion gilt sinngemäß Funktion 47/67. WRITE-RECORD wird nicht ausgeführt bei schreibgeschützten Dateien. Ausgangsparameter: A = 00 Record geschrieben A = FF Record nicht geschrieben (Mediun voll oder Hardwarefehler). Im zweiten Fall enthält (IX+5) den entsprechenden Fehlercode. unverändert Funktion 49/69: MAKE-FILE Generierung der durch den DSB bestimmten Datei.
  • Seite 145 Definition der Adresse des Pufferspeichers mit Datentransfer Schreib-/Lese-Zugriffen (Funktionen 47/67 bzw. 48/68) stattfindet. Diese Adresse kann nur durch die Funktion 4B/6B verändert werden muß vor jedem READ/WRITE-RECORD entsprechend gesetzt werden. Eingangsparameter: HL Pufferadresse Achtung: Ab KOS 4.3/5.3 kann die Pufferadresse direkt Aufrufvektor unter...
  • Seite 146 Diese Funktion liefert einen Zeiger folgende Pointertabelle (jeweils 2 Byte) der Dateiverwaltung. a) Zeiger auf die Tabelle der DSB5 der momentan geöffneten Dateien. Die Einträge sind nach der logischen Dateinunmer geordnet. Eintrag Wert 0, so ist die entsprechende logische Dateinunmer frei.
  • Seite 147 e) Zeiger auf die Tabelle, die die Satznunmer des DSB der momentan offenen Datei enthält. Einträge sind nach logischen Dateinunmer geordnet und benötigen jeweils 3 Byte. Alle Tabellen dürfen Anwenderprogrammen nicht verändert werden! Funktion — /71: DISKPAR Definiert die für ein Mediun spezifischen Parameter. cd - Treiberidentifikation (bis KOS 4.2/5.2 die Satzlänge n) maxrec - Anzahl der verfügbaren log.
  • Seite 148 Funktion READ-RANDOM -/77: WRITE-RANDOM -/78: Diese beiden Funktionen ermöglichen den wahlfreien Zugriff alle Sätze einer Datei. Hierzu muß lediglich der Satzzähler (Byte 30/31 des DSB) auf den gewünschten Wert (0
  • Seite 149 Diese Funktion setzt den Extension- und Recordcounter der durch einen vollständigen 128-byte DSB spezifizierten Datei auf das Dateiende. Nach dieser Funktion kann eine Datei unmittelbar Funktion 68 (WRITE-RECORD) erweitert werden. Ausgangsparameter: A = EX Nunmer der Dateierweiterung HL = RC Recordcounter für die letzte Dateierweiterung...
  • Seite 150 7.4.3 Progranmbeispiel Aus diesem Beispiel ist auch die Verwendung der KOS-Speicherverwaltung ersichtlich; lädt Datei TEST.ABC in den Arbeitsspeicher ab Adresse 4000H. START: ; IX-Vektor laden LD IX,VECTOR ; Datei eröffnen CALL OPEN ; vorhanden? CP OFFH ; falls nicht gefunden JR Z,NOTFND PUSH HL ;...
  • Seite 151 Datei nicht vorhanden NOTFND: SERROR: Fehlerroutinen MERROR: RERROR: DSB: Masterlaufwerk DEFB 0 Dateiname DEFM 'TEST Dateityp DEFM 'ABC' EZ-0 DEFB 0,0,0,0 VECTOR: DEFW 0 DEFW 1 DEFW 3 DEFW 0 END START...
  • Seite 152 8. Hinweise zur Erstellung von Anwenderprogranmen 8.1 KOS-Paranieteraufbereitung Anwenderprogramme werden unmittelbar geladen ausgeführt. Der folgende Abschnitt zeigt auf, nach dessen Namen stehenden Eingaben des Parameterfeldes zurückgreifen kann. Zur Illustration dient der Aufruf eines fiktiven Programms TESTPROG, das drei Parameter im P-Feld benötigt. Diese Parameter heißen: 1:DATEI1.ABC DAT*.??
  • Seite 153 Das DSB-Statusbyte (Byte 0) beinhaltet in den Bitstellen: D2-D0: Information über die Mediennunmer des Parameters D4-D3: Information über den Namen/Typ des Parameters D6-D5: nicht verwendet (immer Null) : E/A-Treiberkennzeichnung (dem Parameter war ein $-Zeichen vorgestellt) falls gesetzt. Statusbyteaufschlüsselung: keine Mediennunmer angegeben (Mastermediun) Medium 0 Mediun 1 Medium 2...
  • Seite 154 8.2 Programnbeispiel Anwenderprogramm ’TEST’ benötigt einen eindeutig definierten Dateinamen als Parameter. Das folgende Beispiel zeigt die Aufbereitung des DSB aus dem vorbereiteten Parameterblock auf Adresse 50H. START: LD HL,50H ; Adresse des KOS-DSB LD A,(HL) ; Statusbyte lesen AND A JR Z,NONAME ;...
  • Seite 156 PSI 4) 80-HARDWARE Version: Stand: 15. August 1981 vorliegende Handbuch beschreibt Aufbau Funktion Ccmputersysteme der PSI80D-Serie. Die darin enthaltene Information ist für den Anwender vor allem in folgenden Fällen wesentlich: * Anschluß nicht standardmäßiger Peripherie * Nachrüsten von zusätzlichen PRDM-residenten Prograninen (z.B.
  • Seite 157 INHALTSVERZEICHNIS Übersicht Architektur der Rechnerbaugruppe Hardwarebeschreibung Zentraler Rechnerteil Zentraleinheit 3.1.1 Speicherbereiche 3.1.2 3.1.2.1 F estwerts pei eher Schreib-/Lesespeicher (System RAM) 3.1.2.2 Bildwiederholspeicher (Video RAM) 3.1.2.3 Externe Speicher 3.1.2.4 Ein-/Ausgabekanäle PSl80-Ein-/Ausgabebausteine 3.2.1 3.2.2 Statusport Ta s t a tur an schl uß 3.2.3 3.2.4 Serienschnittstellen...
  • Seite 158 Verwendung im PSl80-System initialisiert sind. Die Datenblätter dieser Bausteine gehören nicht Lieferumfang sind Bedarfsfall direkt vom Lieferanten zu beziehen (im Falle der Z80-Bausteine von KONTRON). PSl80-Hardware einer zentralen Platine aufgebaut. Unterschiedliche Ausbaustufen sind im allgemeinen mit unterschiedlicher Bestückung verbunden. Außerdem können Unterschiede in der Auslegung und...
  • Seite 159 2. Architektur der Rechnerbaugruppe Basis PSl80-Computerserie eine hochintegrierte Computerbaugruppe, eine vollständige Zentraleinheit weitreichendem Ausbau umfaßt. Auf dieser Platine sind in der maximalen Ausbaustufe möglich: Z80A-CPU* ZentralProzessor, Programm- und Datenspeicher (max. 16 kByte PROM, 64 kByte RAM), Bildschirmprozessor mit 16 kByte Bildwiederholspeicher, Tastaturanschluß, Controller für 2 ins Gehäuse integrierte Floppy-Disk-Laufwerke, Parallel- und Serien-Ein-/Ausgabe sowie eine...
  • Seite 160 Wi nchester Two serial c h a n ne l s K e y b o a r d P r i n t e r (Micronet, P ri nt er etc.) L o u d s p e a k e r öj i -i a >...
  • Seite 161 3. Hardwarebeschreibung 3.1 Zentraler Rechnerteil Der Rechnerteil ist aus folgenden funktionale Blöcken aufgebaut: - CPU mit Buspuffern - Festwertspeicher - Schreib-/Lesespeicher - Ein-/Ausgabeschnittstellen - Bildprozessor mit Bildwiederholspeicher - Floppy Disk-Prozessor * Die folgenden Abschnitte beschreiben Einzelheiten der Baugruppe. * nicht bei PSI80T, PSI80/M0 3.1.1 Zentraleinheit Die CPU besitzt drei...
  • Seite 162 3.1.2 Speicherbereiche Auf der PSl80-Zentralbaugruppe sind verschiedene Speicherbereiche, sowie die Steuerlogik für einen weiteren externen Speicherbereich (über ECB- oder S100-Bus) mit bis zu sechs Speicherbänken vorhanden. Speiehertyp Bezeichnung Kapazität Festwertspeicher max. 16 kByte EProm (5V Versorgung) System Schreib-/ 64 kByte RAM dynamisch Lesespeicher Bildwiederhol­...
  • Seite 163 3.1.2.1 Festwertspeicher Die Baugruppe enthält vier Steckplätze für folgende EProm-Typen 5Volt Versorgungsspannung: i 2 7 1 ö TMS2532 Der Adreßbereich reicht in Abhängigkeit von Jumper J 6 0-1FFFH kByte) bzw. 0-3FFFH kByte) und ist als ’Nur-Lesespeicher’ realisiert. Der Systemspeicher (RAM) im selben Adreßbereich 'Nur-Schreibbereich*...
  • Seite 164 3.1.2.4 Externer Speicher (1) Über ECB-Bus können zusätzliche Speicherbänke angeschlossen werden. diesem Zweck werden zentralen Baugruppe 6 verschiedene MBS-Signale (Memory bank select) erzeugt auf den ECB-Bus geführt. Externe Speicherbaugruppen müssen eines dieser Signale (MBSO bis MBS5) Card select-Signal verwenden. Der Adreßbereich externer Speicher hängt ab von den Statusleitungen MAPO und MAPI.
  • Seite 165 3.2 Ein-/ Ausgabekanäle 3.2.1 PSl80-Ein-/Ausgabebausteine Die Baugruppe enthält folgende E/A-Bausteine (1): implementiert bei Baustein Port Adresse (hex) DMA-Port ) DMA- Z80A-DMA ) Option Control Register AM 2918 ) PSl80(D)/xx Port A-Data Z80A-SIO/O(/9) ( 1 ) Port B-Data Port A-Control ) PSl80(D)/xx Port B-Control ( 1 ) Kanal 0...
  • Seite 166 3.2.2 Statusport Über Statusport (Baustein IC40: 74LS273) werden alle Steuerleitungen der Baugruppe bedient. Statusport über I/O-Adresse 1CH erreichbar. Achtung: Dieser Port kann und darf nicht gelesen werden. Der momentane Inhalt Statusports Betriebssystem in der Speicherstelle 3 abgelegt. Ändern des Statusports durch Anwenderprogramme unter...
  • Seite 167 Signalbeschreibung: MAP0/MAP1 Memory map Signale zur Auswahl interner und externer Speicherbereiche (siehe auch Abschnitt: Speicher) Extern Video MAPI MAPO System 0000-FFFF — — 8000-BFFF — 0000-7FFF 0000-FFFF 4000-BFFF 0000-3FFF 0000-FFFF 4000-7FFF 0000-3FFF 8000-BFFF 0000-FFFF ST2: Sound Trigger Eine negative Flanke auf dieser Leitung triggert ein Monoflop (IC36: 74LS123) und aktiviert für die Dauer von etwa 0.5 s den Lautsprecherausgang ’SOUND OUT’.
  • Seite 168 3.2.3 Tastaturanschluß Tastaturanschluß erfolgt über TTL-Register (IC44: 74LS274) Tristate-Ausgängen. Dieses Register kann Port (Adresse: 1DH) gelesen werden. Der Takteingang des Keyboard Input Registers wird durch Strobe Signal Tastaturelektronik gesteuert. Dieses geht zur Generierung eines Interrupts gleichzeitig an Kanal 1 von CTC-2. Anschluß...
  • Seite 169 3.2.4 Serienschnittstellen Baugruppe enthält Vollausbau zwei unabhängige Serienschnittstellen (Kanal A und B) zun Anschluß beliebiger serieller Sender-/Empfängergeräte (Drucker, Terminals, MICRONET/PSI etc.). Beide Schnittstellen werden einem Z80A-SIÖ/0 bedient. Folgende Norm-Schnittstellen sind realisiert: RS422 RS232-C 20mA KANAL Adresse RS423 optional optional optional nein optional Sämtliche...
  • Seite 170 Steckerbelegung Kanal B: Anschluß ST-G Signalbez. Anschluß SIO Pegel RS232C Send data TxDB output Data terminal ready RS232C DTRB output G - 6 Request to send RS232C RTSB output Receive data RS232C RxDB input RS232C CTSB input Clear to send G-20 input Data set ready RS232C...
  • Seite 171 Einstellung der Baudrat«! Die Baudrate für Kanal A des Z80A-SIO/0 wird entweder von Kanal Z80A-CTC-1 oder, bei synchronen Übertragungsverfahren von einem extern zugeführten Takt bestimmt. Die Wahl zwischen internem und externem Takt erfolgt mit den Junpern J3 und J4. TxCA RxCA intern intern...
  • Seite 172 3.2.5 ParallelSchnittstellen und Festplattenanschluß Die Baugruppe stellt über einen Baustein Z80A-PIO 16 fest verdrahtete Ein-/Ausgänge, sowie Handshake Leitungen Verfügung (nur PSI80(D)/M-Reihe). Die Adressen des PIOs sind: PORT A PORT B Alle 16 Datenleitungen sind mit nicht invertierenden Schmitt-Trigger Bausteinen gepuffert. sind so angeordnet, daß...
  • Seite 173 Port Port können durch Ersetzen Treiberbausteine Anwender-seitig Undefiniert werden. Port B ist mit bidirektionalen Puffern (IC 1 : 74LS245) versehen. Ihre Richtung wird durch Bit 7 von Port A festgelegt. Port A - Bit 7 Richtung IC1 Input Output Alle unidirektionalen Eingänge sind mit 1 kOhm Pull Up-Widerständen...
  • Seite 174 3.2.6 Zähler-/Zeitgeber-Kanäle Die PSI80(D)-Zentralbaugruppe enthält zwei Z80A-CTC Bausteine Basisadresse: 08H CTC-1 CTC-2 Basisadresse: 10H Verwendung der Kanäle: Interrupt FD-Controller uP 765 CTC-1 Kanal 0 Baudrate SIO-Port A Kanal 1 - Baudrate SIO-Port B Kanal 2 frei für Anwender-Verwendung Kanal 3 CTC-2 Kanal 0 Tongenerator...
  • Seite 175 Zur Steuerung der Disk Controller Hardware dienen folgende Bits Statusports: ST - 6 Laufwerkstyp (Umschaltung der Controller Hardware): 0 - - > 8 "-Laufwerke 1 ---> 5 1/4"-Laufwerk ST-7 Motor On (für 5 1/4"-Laufwerke): 0 - - > Motor ausgeschaltet 1 --->...
  • Seite 176 3.2.8 Video Controller Der Videocontroller der Baugruppe Controller CRTC-6845 aufgebaut. Diesem Baustein sind zwei I/O-Adressen zugeordnet. 1 8 H Adreßregister Registerfile Folgende Bits des Statusports dienen zur Steuerung der Video Controller Hardware: Umschaltung zwischen alphanunerischer und graphischer Betriebsart ST4=0 — > Graphische Betriebsart ST4=1 —...
  • Seite 177 Monitoranschluß Alle benötigten Signale sind 26-poligen Stecker ST-K herausgeführt. Anschluß ST-K Signalbezeichnung Video K-2 output K - 3 output VSTPA K-4 input Light Pen Strobe K-5 output Composite Video K -6 input VSTOP K-7 output Horizontal Sync (HSYNC) K - 8 output Vertical Sync (VSYNC) K-9 input...
  • Seite 178 (KDM-Kommando). Innerhalb Interrupttabelle sind Einträge xxEOH xxFFH für Betriebssystem reserviert. Bild 2: Interruptpriorität im PSl80/D-System ......V ........— ~ ~ — PSI 80/D-Zentralboard 3.2.10 Lautsprecher- w d Resetanschluß Stecker ST-J dient Anschluß Lautsprechers Resetschalters. J - 1 J -6 LAUTSTÄRKE POTI (Empfohlener...
  • Seite 179 Zusatzbaugruppen 4.1 CPU/DMA-Adapter Die CPU/DMA-Adapterplatine (Option PSI/DMA) dient zur Erweiterung PSI80(D)-Zentralplatine un einen Z80A-DMA Baustein. Die Platine wird als Piggy Back Baugruppe anstelle 48-poligen CPU/DMA-Sockel Baugruppe eingesetzt. Hierbei ist bei nachträglicher Montage darauf zu achten, daß der überstehende Teil Adapterplatine in Richtung Z80A-PI0 der zentralen Rechnerplatine zeigt. Baugruppe enthält neben...
  • Seite 180 Bei externer Speichererweiterung genügt die Klasse - 3 (Zugriffszeit 250 ns) für RAM's. PROM's sind allgemeinen Typen einer garantierten Zugriffszeit von 350 ns ausreichend, wenn sichergestellt ist, daß die Umgebungstemperatur außerhalb des Gehäuses 35 Grad C nicht übersteigt. Über Einzelheiten der ECB-Reihe informieren KONTRON's ECB-Handbücher.
  • Seite 181 ECB-Bus Pin-Belegung: Bezeichnung Stecker Pin Benennung Adresse 0 Adreßbus: Adresse 1 Adresse 2 Adresse 3 Adresse 4 Adresse 5 Adresse 6 Adresse 7 Adresse 8 Adresse 9 Adresse 10 Adresse 11 Adresse 12 Adresse 13 Adresse 14 Adresse 15 Data 0 Datenbus: Data 1 Data 2...
  • Seite 182 Bezeichnung Benennung Stecker Pin -M 1 20 a Maschinenzyklus 1 Steuerbus: 30 c Memory Request -MRQ 2 7 a -IORQ IN/OUT Request Read 2 2 c Write 28 a -RFRSH Refresh 2 5 c Halt -HLT 10 c : -WAIT Wait 2 1 c -INT...
  • Seite 183 5.2 Adressierung im ECB-Bus ’Externe Erweiterungsbus* des Einschubrahmens elektrisch ständig an die Busse der PSI80D-Zentralplatine angekoppelt. Baugruppen Einschubrahmens dürfen bei folgenden Gelegenheiten Daten auf den Bus schalten: a) Die CPU liest von Ein-/Ausgabeadressen größer oder gleich 20H. Dementsprechend sind auf den Erweiterungskarten Bausteine nur mit Adressen größer/gleich 20H adressierbar.
  • Seite 184 Ketten eine Look-ahead Logik vorzusehen. Weitere Informationen sind Applikationsschriften Interruptbehandlung von KONTRON enthalten. 5.4 Stromversorgung des Einschubrahmens Über einen 7-poligen Stecker werden dem Einschubrahmen alle Spannungen des PSl80-Netzteils zugeführt. Die Spannungen sind wie folgt belastbar: PSI80/M2 PSI80/M1 PS 180/M0 3.0 A...
  • Seite 185 5.5 S100-Adaptennodul 5.5.1 Schaltungsbeschreibung Die S1OO-Adapterbaugruppe (Platinennunmer: 245) ermöglicht den Einsatz S1OO-Baugruppen Einschubrahmen PSl80-Systems. Eine S1OO-Adapterbaugruppe benötigt zwei nebeneinanderliegende Steckplätze für Einfacheuropakarten. Bei nachträglichem Einbau müssen deshalb beiden mittleren Führungsschienen eines Steckplatzpaares ausgebaut werden. Neben Adreß- Datenleitungen werden folgende Steuersignale entsprechend dem S100-Standard verwendet: Signal (-^invertiertes Signal) S1OO-Pin...
  • Seite 186 5.5.3 Stromversorgung von S100-Karten S100-Karten werden gewöhnlich mit ungeregelten Spannungen versorgt, jede Karte mit entsprechenden Gleichspannungsreglern ausgerüstet ist. Ungeregelte Spannungen stehen im PSl80-System nicht zur Verfügung. deshalb erforderlich, Spannungsregler einer S100-Karte zu überbrücken und die geregelten Spannungen des PSl80-Systems direkt verwenden.
  • Seite 188 A-Kcmmando ......#TA8 ACCOUT........#TD16 Adressierung im ECB-Bus ....#TE28 Allgemeine serielle Treiber ....#TB10 Allgemeiner par all. Treiber ....#TB11 ALOAD, ASAVE ......#BD15 Alpha/Graph......#TE12 Anschluß von Laufwerken ....#TE20 Architek. der Rechnerbaugruppe..#TE4 ASSIGN........#TD18 A T A S K ........#TD30 Ausdruck bin.
  • Seite 189 CPFILE-Kornmando......#TA15 D-Kommando......#XA8 DAT A ........#BD32 DATE-Kommando......#TA15 Datei löschen ......#TA19 Dateiadressen......# BB6 Dateieigenschaften ....... #TD35 Dateieigenschaften ...... #TA16 Datei eigensch aften......#BB6 Dateigruppen......#TA7 Dateiname......#BB7 Dateinamen ......#TA6 Dateinamen......#BB6 Dateispezifikationsblock....#TD39 Dateityp....... #BB7 Dateitypen ......#BB6 Dateiverwaltung......# TD33 Dateiverwaltungsfunktionen .....
  • Seite 190 EDITOR Eingabe......#BC7 EDITOR-externe Dateien ....#BC12 EDITOR-FETCH ......#BC12 EDITOR-Groß/Kleinschreibung ..... #BC13 EDITOR-Helpfunktion ....#BC14 EDITOR-Modifizieren..... #BC11 EDITOR-Positionieren ....#BC9 EDITOR-SAVE......#BC12 EDITOR-Statusdiagramm....#BC18 EDITOR-Zeilen löschen ....#BC8 Ein-/Ausgabetreiber-Aufbau ....#TB12 Ein-/Ausgabetreiber-Verw....#TA22 Eindeutige Dateiadr. EDA ....#TA7 Eingabekanal ......#TA22 Eingaben z. Ausgabesteuerung .... #BB5 Eingenschaf ten geschützt ....
  • Seite 191 KERROR ......... #TD7 KMDINT........#TD23 Kommandos Hintergrundver..#TA38 Kommandoeingabe ......#TA5 Kommandodatei ......#TA20 KONTRON DEBUGING MONITOR ....#TC1 Kopieren von Dateien ....#TA30 Kopieren Ein-Mediensys....#TA13 K O S ........#BD47 KOS-Al lg. Systemfunktionen ....#TD22 KOS-Auf bau ......#TD4 KOS-Ein-/Ausgabefunktionen ....#TD11...
  • Seite 192 KOS-Fehlereinsprungpunkt ....#TD7 KOS-interne Kommandos....#TA8 KOS-Parameteraufbereitung ....#TD54 KOS-Parameterübergabe ....#TD8 KOS-SPeicherorganisation....#TD5 KOS-Übersicht......#TD3 KOSCAL ......... #TD6 KOSTAB ......... #TD27 KPOINTER....... #TD50 Laden des Betriebssystems ....#BB4 Laufwerk/Disketten-Test ....#TB24 Lautsprecheranschluß....#TE23 L E T ........#BD4 8 LINELEN........
  • Seite 193 ON E R R O R ....... #BD53 ON INTR ......... #BD54 O P E N ........#BD55 OPEN-FILE......#TD45 OSTATUS........ #TD14 O U T ........#BD57 OUTPUT......... #TD15 P-Kommando ......#TA10 Parallelschnittstelle..#TE17 Parametervektor......#TD8 P L I S T ........#BD21 P L O T ........
  • Seite 194 Schreib-/Lesespeicher..#TE8 schreibgeschützt ..... . #TA16 SEARCH-NEXT......#TD46 SEARCH-FILE......#TD46 SELECT-Kcmmando......//TA41 Serienschnittstelle ....,#TE14 S E T ........#BD46 S E T ........#BD70 S E T ....#BD72 SET-10 A D R ....... //TD49 Sound Trigger......#TE12 Speicherbänke .... #TE7 Speicherbelegung ......
  • Seite 195 Umbenennung einer Datei ....#TA32 Umsetz treiber CP/M-Aufrufe....#TB20 Übersicht Systemkcmmandos ....#BB3 Vergleichsoperatoren....#BD80 Vergleich von 2 Dateien..#TA15 Video Invert......#TE12 Video Controller......#TE21 Virtueller Medientreiber....#TB19 Vorzugstypen......#BB7 Warmstart......#TD6 WRITE-RECORD......#TD48 WRITE-RANDOM......#TD50 X-Kommando......#TA11 Zeichensatz ......#TE21 Zentraleinheit......