Kleincomputer KC 85/2 (HC 900)


Das erste Mitglied der Computer-Reihe aus Mühlhausen war der Kleincomputer KC 85/2. Er bildet die Basis für die späteren Weiterentwicklungen KC 85/3 und KC 85/4.

Ursprünglich hieß der KC 85/2 "HC 900" - was soviel wie Heimcomputer 900 heißt. Diese Bezeichnung war nur in der ersten Serie zu finden. Aufgrund des hohen Bedarfs an Schulen, in Pionierhäusern und nicht zuletzt bei der GST war die Verfügbarkeit für den Heimbereich nicht gegeben. Also wurde der Computer in Kleincomputer KC 85/2 umbenannt.
 

Zur Grundausstattung gehörten:

  • das Grundgerät mit Netz- und Antennenkabel,
  • Tastatur und
  • ein Handbuch zum Grundgerät.
Gegen gesonderte Berechnung war eine BASIC-Programmkassette (C 0111) mit Handbuch erhältlich. 
 


Baugruppen


Die Zentrale Recheneinheit, der Bildwiederholspeicher IRM (Image Repitition Memory), das Videointerface, die Ein-/Ausgabesteuerung und die Anschlüsse und Bedienelemente bilden die Baugruppen des KC 85/2.
 
Blockschaltbild eines KC 85/2

Zentrale Recheneinheit

Die Zentrale Recheneinheit besteht aus dem U 880 als Mikroprozessor, dem Arbeitsspeicher, dem Bildwiederholspeicher (IRM) und dem ROM.

Der Speicherbereich unterteilt sich, bezogen auf die Grundausstattung ohne Erweiterungen, folgendermaßen:
 

Adresse Nutzung
0000H - 3FFFH 16 kByte dynamischer RAM Anwenderspeicher
8000H - BFFFH 16 kByte dynamischer RAM Bildwiederholspeicher
E000H - F7FFH 4 kByte ROM Betriebssystem

und enthielt im Speziellen: 
 

Adreßbereich
0000H - 013FH
  • für den Anwender bedingt nutzbar
  • zum Teil durch Spezialprogramme genutzt
0140H - 01FFH
  • Monitor-RAM, Interrupt-Tabellen, Arbeitszellen Tastatur / Kassette
  • Stack
  • Monitor-RAM und Stack können auf andere Speicherbereiche verschoben werden
0200H - 3FFFH
  • freier Anwendungsspeicher
8000H - A7FFH
  • Pixel-RAM
A800H - B1FFH
  • Color-RAM
B200H - B6FFH
  • Video-RAM (ASCII-Speicher)
B700H - B77FH
  • Kassettenpuffer
B780H - B7FFH
  • Monitor-RAM
  • Systemzellen, z.B. zur Parameterübergabe an Unterprogramme des Betriebssystems
B800H - B8FFH
  • Modul-Steuerwort-Speicher
B900H - B99FH
  • Funktionstasten-Speicher
B9A0H - B9FFH
  • Fenster-Vektor-Speicher
BA00H - BFFFH
  • freier Anwendungsspeicher
  • Zugriff sehr langsam
  • Zugriffe sind auf dem Bildschirm sichtbar (erhöhtes Flimmern)
  • Speicherbereich oft genutzt, um neue, selbst definierte Zeichentabellen abzulegen

Bildwiederholspeicher IRM (Image Repitition Memory)

Bereits in der Grundausstattung ist der KC 85/2 farbfähig. Er bietet Vollgrafik mit einer Auflösung von 320 x 256 Pixeln. Der Bildaufbau erfolgt in 32 Zeilen zu je 40 Zeichen. Ein Zeichen besteht aus 8 x 8 Bildpunkten, die Farbauflösung beträgt 4 x 8 Pixel. 

Zum IRM gehört der Pixel-, der Color- und der Video-RAM als Speicher für die Bildschirmdarstellung.  Die Zuordnung bzw. Aufteilung des Pixel- und Farbspeichers ist auf relativ ungewöhnlich Weise gelöst worden. Der Bildbereich unterteilt sich in zwei Bereiche, der erste umfaßt die Darstellung der Spalten 0 bis 31 und der zweite Bereich der Spalten 32 bis 39. Dazu analog gliedert sich die Aufteilung im Pixel-RAM. Je 8 horizontal nebeneinanderliegende Pixel werden in einem Byte kodiert und im Pixel-RAM abgelegt. 

Ein Byte im Color-RAM kodiert die Farbinformation für einen Pixelbalken von 4 x 8 Pixeln. Man hat damit bei sich überschneidenden grafischen Darstellungen "Farbkleckse" mit der zuletzt angegebenen Farbe zu verzeichnen, sofern die sich treffenden Punkte unterschiedliche Farbinformationen haben. 

Das Video-RAM ist ein ASCII-Puffer, indem alle auf dem Bildschirm dargestellten Zeichen mit ihren Codes an den entsprechenden Positionen vermerkt sind. 

Videointerface

Das Videointerface bereitet die Daten aus dem IRM so auf, daß eine Darstellung auf einem externen Fernsehgerät möglich wird. Der Fernsehanschluß kann wahlweise über RGB, FBAS oder Antennenanschluß realisiert werden, wobei die Qualität der Darstellung bei FBAS und RGB besser ist als über den Antenneneingang. 

Ein-/Ausgabesteuerung

Die Ein-/Ausgabesteuerung ist die Schnittstelle zwischen Computer und Peripherie, sie bereitet die von der Tastatur oder Kassettenrekorder kommenden Daten für die interne Verarbeitung auf und leitet die vom Computer erzeugten seriellen Signale zum Kassettenrekorder weiter und steuert die Tonausgabe.


Anschlüsse und Bedienelemente


Der KC 85/2 bietet in seiner Grundausstattung eine Vielzahl an Anschlüssen, es sind so notwendige Anschlüsse wie der Tastatur-, der Tonband- und der HF-Anschluß zum Betrieb des Gerätes an einem handelsüblichen Fernseher. Zusätzlich dazu sind zwei Modulschächte zur Aufnahme von Steckmodulen, ein TV-RGB-Ausgang und ein Expansionsinterface vorhanden. 

An Bedienelementen sind der Netzschalter und die RESET-Taste vorhanden. Als Kontrollanzeigen gibt es eine Anzeige für den Netzstatus und drei Speicher-Kontrollanzeigen, je eine für 

  1. den IRM - Bildwiederholspeicher,
  2. den ROM und
  3. und den RAM.
Ist einer dieser Speicherbereiche aktiv, so wird dies durch die jeweilige Kontrolleuchte signalisiert.

Tastaturanschluß

Der Tastaturanschluß ist in Form eines Klinkensteckers ausgeführt. In der Tastatur werden die Tasteninformationen serialisiert und über eine geschirmte Leitung dem Grundgerät mitgeteilt. Über diese Leitung erfolgt auch die Stromversorgung der Tastatur. 

Tonbandanschluß

Dieser Anschluß an der Vorderseite des Grundgerätes dient der Verbindung des Computers mit einem Kassettenrekorder. Die Aufzeichnung auf Kassette stellte lange Zeit die Standardvorgehensweise zur Programmspeicherung dar. Im weiteren Verlauf der Entwicklung gab es später auch Diskettenlaufwerke. Die gängigen Rekorder waren der LCR und die Rekorder der Reihe GERACORD. Über diesen Anschluß erfolgt ebenfalls die Tonausgabe in zweikanaliger Form mit konstantem Pegel. 

Neben den Anschlüssen für einen Mono-Kassettenrekorder und dem Computerausgang für Stereo-Ton ist auch eine Schaltspannung für Kassettenrekorder geschaltet. Damit ist es möglich, den Vorschub des Bandlaufwerkes zu steuern 

HF-Anschluß

Über den standardisierten Antennenstecker des HF-Anschlusses werden die Bildsignale an den Antenneneingang eines Fernsehers weitergeleitet.

TV-RGB-Anschluß

Über ein Spezialkabel ist der Anschluß des Computers an ein Fernsehgerät mit AV- (FBAS) oder RGB-Eingang über diesen Ausgang möglich. Die Tonausgabe erfolgt einkanalig in 16 Lautstärkestufen über die Lautsprecher des Fernsehgerätes.
 
Signal
00 Masse
TON Audio-Ausgang
R Rot-Signal
G Grün-Signal
B Blau-Signal
FBAS Video-Ausgang
US Umschaltsignal auf RGB-Betrieb

Modulschächte

Die Modul-Steckplätze an der Frontseite dienen der Aufnahme von Erweiterungsmodulen. Sie tragen die Adressen 08H und 0CH. 

Die internen Speicher des Grundgerätes sind ebenfalls in die Steuerung integriert. Es besteht daher die Möglichkeit, diese internen Speicher mittels des SWITCH-Kommandos an- und auszuschalten.

Expansionsinterface

Über das Expansionsinterface wird mit Hilfe eines Connectors die Verbindung zu den optionalen Aufsätzen hergestellt. Mechanisch ist es ähnlich dem TV-RGB-Anschluß, nur ist die Anzhal der Anschlüsse höher (Anhang B.3).


 Tastatur


Die Tastatur besitzt alle üblichen Tasten, die man von einer Computertastatur erwartet, neben den alphanumerischen Tasten, die wie auf einer Schreibmaschine angeordnet sind, existieren diverse Sondertasten wie "Shift", "Shift Look", "Del", ... . Die Erstbelegung ist in der Regel ein Großbuchstabe, die Zweitbelegung liefert die Kleinbuchstaben, also etwas anders als allgemein üblich.

Die Sondertasten lassen sich in drei Gruppen unterteilen

  1. Steuertasten

  2.  
    SHIFT
    • Aktivierung der Zweitbelegung
    SHIFT LOOK
    • dauerhaftes Shift
    ENTER
    • Beenden oder Ausführen einer Eingabe
    BRK (Break)
    • wird zur Steuerung benutzt
    • in BASIC z.B. zur Programmunterbrechung
    STOP
    • verschiedene modispezifische Steuerfunktion
    • z.B. in BASIC zum Programmhalt
  1. Editiertasten

  2.  
    INS (Insert)
    • Erstbelegung: an Cursorposition werden schon vorhanden Zeichen um eine Position nach rechts verschoben, dann Platz für die Eingabe eines neuen Zeichens
    • Zweitbelegung: Tastenklick an/aus
    DEL (Delete)
    • Erstbelegung: Zeichen unter Cursor wird gelöscht und die Zeile wird verdichtet
    • Zweitbelegung: Zeile löschen
    CLR (Clear)
    • Erstbelegung: Zeichen unter Cursor wird gelöscht, kein Verdichten der Zeile
    • Zweitbelegung: Aufruf für Sonderprogramme
    HOME
    • Erstbelegung: Cursor nach links oben
    • Zweitbelegung: Bildschirm löschen
    Cursor Down
    • Erstbelegung: Cursor nach unten
    • Zweitbelegung: Scroll-Modus der Bildschirmanzeige wird geschaltet
    Cursor Right
    • Erstbelegung: Cursor nach rechts
    • Zweitbelegung: in BASIC Cursor an das Zeilenende
    Cursor Left
    • Erstbelegung: Cursor nach links
    • Zweitbelegung: in BASIC Cursor an den Zeilenanfang
    Cursor Up
    • Erstbelegung: Cursor anch oben
    • Zweitbelegung: Page-Modus der Bildschirmanzeige, bei Bildüberlauf wird nicht gescrollt, sondern der Cursor in die linke obere Ecke des Bildschirms gesetzt
  1. und Funktionstasten

  2. Die Funktionstasten F1 bis F6 können mittels "KEY" selbst belegt werden. Im Zusammenhang mit der Shift-Taste stehen 12 Tasten zur Verfügung.

Konzepte des Betriebssystems


Startmenü

Nach dem Einschalten meldet sich der Rechner mit einem Menü, welches den Funktionsumfang des Betriebssystems CAOS (Cassette Aided Operating System) repräsentiert. Die einzelnen Kommandos können mit dem Cursor angewählt und mit Enter bestätigt werden  oder sie werden eingetippt.
 
*HC-900-CAOS*
>SWITCH
>JUMP
>MENU
>SAVE
>VERIFY
>LOAD
>COLOR
>MODIFY
  • SWITCH dient dem Schalten von Speicherbereichen und Modulen.
  • JUMP ermöglicht die Nutzung anderer Betriebssysteme, die auf Modulen geliefert wurden.
  • MENU bewirkt die Anzeige des Systemmenüs.
  • SAVE dient dem Speichern von Programmen, VERIFY dem Vergleich dieser abgespeicherten Programme mit dem Original im RAM und LOAD dem Laden von Programmen.
  • Mittels COLOR können die Vordergrund- und Hintergrundfarbe geändert werden.
  • MODIFY wird zum Anzeigen und Ändern von Speicherzellen genutzt.

Menüeinbindung von Maschinenprogrammen

Um Maschinenprogramme starten zu können, müssen sie auf irgend eine Art und Weise aufgerufen werden. Beim KC 85/2 wird dies durch Menüeinträge für das entsprechende Programm realisiert. Dazu erhält das Programm einen Vorspann, der den Namen, mit dem das Programm gestartet und welcher im Menü erscheint soll, enthält. 

Besteht der Name aus Großbuchstaben und Ziffern erfolgt ein Eintrag ins Menü, besteht der Name hingegen aus Groß- und Kleinbuchstaben und Ziffern erfolgt kein Eintrag im Menü, ein Aufruf über Tastatur ist dennoch möglich, sofern man den betreffendden Namen kennt.

Dieser Vorspann hat folgende Form:
 
7FH
7FH
  • Kennbytes, kennzeichnen den Beginn des Namenseintrages
XX
XX
...
XX
  • beliebig lange Zeichenkette
00 bzw 01
  • 00 - Abschalten des IRM beim Programmaufruf
  • 01 - ohne Abschalten des IRM bei Programmaufruf
YY ...
  • Programmbytes 
C9
  • Programme, die über die Menütechnik gestartet werden, sind mittels RETURN abzuschließen. 

Eine Übergabe von Parametern an das Programm wird ermöglicht, indem die ersten drei Parameter in die Register HL, DE und BC übernommen werden.

Steuerschleife des Betriebssystems

Die Steuerschleife (Anhang B.1) verdeutlicht die Verhaltensweise des Betriebssystems  nach dem Einschalten, hier finden sich oben genannte Aspekte bezüglich Menütechnik wieder.

Nach dem Einschalten durchläuft der Rechner eine Initialisierungsroutine, der RAM wird gelöscht, Module werden abgeschaltet und die Steuerbausteine werden in ihren Grundzustand versetzt. Danach folgt der Menüaufbau und das Betriebssystem begibt sich in eine Tastaturabfrageschleife, in der auf "ENTER" getestet wird. Nach einem "ENTER" wird die Eingabe ausgewertet und nach einem entsprechenden Menüeintrag gesucht. Im Erfolgsfall wird das Programm mit diesem Menüeintrag gestartet und mögliche Parameter werden übernommen, im Fehlerfall erfolgt eine ERROR-Ausschrift. 

Unterprogrammtechnik

Dem Anwender wird eine breit gefächerte Anzahl von Systemunterprogrammen zur Verfügung gestellt. Mit ihrer Hilfe vereinfacht sich die systemnahe Programmierung um ein Vielfaches, da Standardlösungen bereits vorhanden sind, und "das Rad" nicht ein weiteres mal erfunden werden muß. 

Die Startadressen der Unterprogramme sind in einer Tabelle abgelegt und jedes Programm mit einer eindeutigen Nummer versehen. Der Aufruf dieser UPs erfolgt über sogenannte Unterprogrammverteiler, die jene Tabellen nutzen. Den Unterprogrammverteilern muß nur die entsprechende Nummer des UPs übergeben werden und gegebenenfalls Parameter für die UPs in den jeweilig geforderten Registern abgelegt werden. 

Sechs Programmverteiler stehen zur Auswahl, die sich hauptsächlich durch den Übergabeort der UP-Nummer unterscheiden bzw. zusätzliche Funktionalität bereitstellen.

  1. Programmverteiler 1
    • Startadresse F003H
    • UP-Nummer nach dem CALL-Befehl angegeben
    • CALL F003H

    • DEFB UP-Nr.
  2. Programmverteiler 2
    • Startadresse F006H
    • UP-Nummer in Systemzelle im IRM (ARGC), Adresse B780H, übergeben
  3. Programmverteiler 3
    • Startadresse F009H
    • UP-Nummer im Register E übergeben
  4. Programmverteiler 4
    • wie Programmverteiler 3
    • zusätzlich: Ein- / Ausschalten des IRM
  5. Programmverteiler 5
    • wie Programmverteiler 4
    • zusätzlich: Um- bzw. Rückschalten des Stackpointers auf den Systemstackbereich
  6. Programmverteiler 6
    • wie Programmverteiler 3, jedoch UP-Nummer über (ARGC) übergeben
Bei Adresse F000H befindet sich der Systemeinsprung für den Kaltstart. Hier wird der RAM gelöscht, alle Module werden ausgeschaltet (Ausnahme M022 16 kByte im Schacht 8 des Grundgerätes) und das System initialisiert.

Die RESET-Routine, also der Warmstart,  befindet sich ab Adresse E000H, hier wird nur der Systemnspeicher neu initialisiert, der Arbeitsspeicher bleibt erhalten.

Unterprogramme gibt es der verschiedensten Art, sie reichen von der Ausgabe einer Zeichenkette (UP 23H) über das Setzen eines Pixels (UP 30H) bis hin zum Einladen eines Programms von Kassette (UP 10H).
 
Beispiel: CALL F003H Aufruf UP-Verteiler 1
DEFB 23H Übergabe der UP-Nummer, hier 23H, Textausgabe
DEFM "TEST" nach UP-Aufruf muß der entsprechende Text stehen
DEFB 0 Abschluß mit 0 ist vorgeschrieben

Die Parameterübergabe an die Unterprogramme variiert je nach Unterprogramm, sie kann dierekt nach dem UP-Aufruf erfolgen oder über Register.