# AMIC (Computer)

aMIC ist ein rumänischer Heim- und Mikrocomputer, der in der polytechnischen Universität Bukarest (IPB), Fachbereich für Informatik, als Labormodell von Adrian Petrescu und Francisc Iacob produziert und entwickelt wurde und im Zeitraum von 1983 bis 1984 an der Fabrica de Memorii in Timișoara in Serie produziert wurde.
Zwischen 1982 und 1983 experimentierte das Team am Institut der IPB für Informatik an mehreren Varianten dieses Mikrocomputers unter Verwendung der Prozessoren 8080 und Z80 mit den dazugehörigen Schaltkreisen.
Der Mikrocomputer aMIC kam aus der Kategorie der Personal Computer (Heimcomputer) mit dem Ziel, eine breite Palette an Anwendungen zu unterstützen, da er eine, für die damalige Zeit, hohe Leistung im Verhältnis zu den niedrigen Kosten hatte. Da viele Exemplare des aMIC-Rechners produziert wurden, konnte er so in vielen Bereichen wie Forschung, Bildung und Industrie eingesetzt werden.
Bei dem technologischen Entwurf des Prototyps wurde größtenteils darauf geachtet, integrierte Schaltkreise zu verwenden, die in Rumänien produziert wurden. Als Peripheriegeräte wurde aMIC mit Geräten aus dem Konsumgüterbereich ausgerüstet: Schwarzweiß-Fernseher und Kassettenrecorder. Die Hardware und Software wurden als offenes System angelegt. Dieser Ansatz erlaubte die Kopplung von Peripheriegeräten, um die Leistung zu erhöhen und um die Erweiterung der Anwendungsbereiche zu ermöglichen: Drucker (Modell MIM40 Electromureş), Modem, X-Y-Schreiber (Plotter), Koppler-Verfahren (programmierbare parallele und serielle Schnittstellen) usw. Die Software-Entwicklungen hatten als Ziel die Erweiterung und Verbesserung von Monitoren, Assemblern, Interpretern und Compilern einer höheren Programmiersprache von bereits vorhandenen Rechensystemen.

## Hardware

Das aMIC-System basierte auf einem Bus, der Reihen von Daten, Adressen, Befehle und Versorgung miteinander verknüpfte. Diese Reihen wurden durch einen 50-poligen Stecker nach außen geführt, der die Kopplung von erweiterten Peripheriegeräten mit direktem Speicherzugriff (Beispiel: Diskette) oder von nicht standardisierter Peripherie ermöglichte. Der Datenbus stellte die Verbindung zwischen der Zentraleinheit, dem EPROM/RAM-Speicher, der programmierbaren parallelen Schnittstelle, der programmierbaren seriellen Schnittstelle (mit einem 8251-Schaltkreis, für Übertragungsgeschwindigkeiten bei 300/600 oder 1200 Baud) und der Fernseher-Schnittstelle her. Außerdem gab es noch zwei weitere Peripherie-Anschlüsse mit je 25 Kontakten.

### Prozessor

Die Zentraleinheit basierte auf dem Mikroprozessor Z80, der mit einer Frequenz von 2,5 MHz arbeitete. Der Intel-Prozessor 8080 wurde nur experimentell im Labor eingesetzt.

### Speicher

Der EPROM-Speicher, der – je nach Version – den Monitor und den BASIC-Interpreter oder nur den Monitor, den Assembler und den Texteditor umfasste, hatte eine Kapazität von 16 KiB und baut auf das Prinzip des 2716-Schaltkreises auf. Der RAM-Speicher, der für Benutzer-Anwendungen verwendet wurde, bestand aus dynamischen Schaltungen, basierend auf dem 4116-Schaltkreis und bot eine maximale Kapazität von 48 KiB an, wovon 8 KiB für den Grafikspeicher zur Verfügung stand.

### Peripherie

Die optionale programmierbare parallele Schnittstelle wurde mithilfe des 8255-Schaltkreises verwirklicht. Sie wurde für die Kopplung von Geräten aus der Standardausstattung, aber auch für andere nicht standardisierte Geräte verwendet. Darunter zählen Analog-Digital- und Digital-Analog-Umsetzer, Joystick, Drucker, verschiedene Kontakte, LEDs usw. Zusätzlich gab es einen weiteren 8255-Schaltkreis, der für die Kommunikation zwischen der Tastatur, Lautsprecher und Kassettenrekorder verantwortlich war.
Die programmierbare serielle Schnittstelle war optional und wurde mit einem 8251-Schaltkreis ermöglicht. Diese Schnittstelle wurde für die Kommunikation mit Geräten, die eine serielle Datenübertragung unterstützen, verwendet: Anzeige-Terminal, Modem, TTY und eventuell ein anderer Computer, der ebenfalls über eine serielle Schnittstelle verfügte.
Die Schnittstellenverbindung zum Fernsehgerät (über ein Koaxialkabel) sorgte für die Generierung des komplexen Video-Signals, das aus dem Grafikspeicher-Inhalt (8 KiB) moduliert wurde.
Die Tastatur war schlank und flexibel und verfügte über 59 Tasten, wobei die alphanumerischen Tasten im QWERTY-Format ausgelegt waren. Außerdem verfügte sie über einen integrierten Lautsprecher. Weiters besaß die Tastatur 16 semi-grafische Zeichen, die normal oder invertiert dargestellt werden konnten, genauso wie die alphanumerischen Zeichen. Die Umschaltung zwischen Video-Normal und Video-Invertiert geschah mit der Tastenkombination STRG+E. Durch die spezielle Taste RESET kehrte das System in den Initial-Zustand und die Darstellung in den Video-Normal-Modus zurück. Die INT-Taste ermöglichte die Auslösung einiger Interrupts über die Tastatur, die dann durch spezielle Programme abgefangen und behandelt werden konnten.

### Anzeige

Die Darstellung der alphanumerischen, semi-grafischen und grafischen Information erfolgte mithilfe eines normalen Schwarzweiß-Fernsehers. Für die graphische Wiedergabe stand eine Auflösung von 256 × 256 Pixel zur Verfügung. Die alphanumerischen Zeichen konnten auf 32 Zeilen, je 30 Zeichen pro Zeile, abgebildet werden. Der vorprogrammierte Zeichengenerator erlaubte die Darstellung von 64 Zeichen aus dem ASCII-Standard und von den semi-graphischen Zeichen, die weiter oben erwähnt wurden. Der Zeichensatz konnte außerdem nach Bedürfnis geändert und angepasst werden.
Die Verbindung zum Fernsehgerät erfolgte über den Antennenanschluss mit einem Koaxialkabel, wobei der Modulator auf Band III VHF, Kanäle 6–12 eingestellt war.

## Software

Die Speicherung der Programme in Maschinencode, Assembler oder BASIC wurde auf normalen Magnetbändern (Audiokassetten) durchgeführt, indem kommerzielle Kassettenrekorder verwendet wurden. Die Übertragungsgeschwindigkeit der Information lag bei zirka 1600 bauds (das entspricht in diesem Fall 1,6 kbps). Dies ermöglichte eine relativ kurze Auslese- und Schreibzeit der Programme, im Vergleich zu den damaligen rumänischen Rechnern. Die Basis-Software enthielt: Monitoare, ein Assembler und ein BASIC-Interpreter. Im Gegensatz zu anderen Computersystemen aus dieser Kategorie, wo der Benutzer mit einer 'BASIC-Maschine' arbeitete, bot das aMIC-Microsystem ein Monitor-Program, das im EPROM persistiert war. Dieser führte die Interpretation und Ausführung der durch die Tastatur eingegebenen Befehle aus. Der Monitor bestand aus einer Sammlung von Routinen, die sowohl durch die Tastatur aufgerufen werden konnten, als auch durch die vom Benutzer erstellten Programme. Die Ausführung vom Monitor begann direkt durch das Einschalten des Systems (nachdem die Spannungsversorgung angelegt wurde) oder während des Betriebs durch die Betätigung der RESET-Taste.
Es wurden mehrere Versionen des aMIC-Monitors entworfen, die verschiedene Funktionen anboten. Die Kleinversion V0.1 verwendete 2 kB des Speichers und verfügte über folgende Befehle:
* D – Ausgabe des Inhalts eines Speicherbereichs;
* F – Laden einer Konstante in einen Speicherbereich;
* M – Verschieben des Inhalts eines Speicherbereichs in einen anderen Speicherbereich;
* C – Modifizierung der internen Register;
* X – Anzeige der internen Register;
* S – Anzeige und Änderung der Inhalte einiger Speicherplätze;
* G – Ausführung eines Programms, das sich im Speicher befindet;
* K – Speicherung einer Datei des internen Speichers auf ein Magnetband;
* L – Laden einer Datei aus dem Magnetband in den internen Speicher;
* B – Ausführen des BASIC-Interpreters.
Die oben angeführten Befehle sorgten für das Laden der Programme in Objektcode, ihre Fehlerbehebung und deren Ausführung. Auf diese Weise konnten alle Computer-Ressourcen effektiv gesteuert werden, damit komplexe Hochleistungsanwendungen, debuggt/untersucht und ausgeführt werden konnten.
Außerdem boten die Anwendungen Monitoare V02 (2,5 KiB Speicher), MATE (6 KiB Speicher), Z80-V0.0 und DEST eine Reihe von weiteren Funktionen bezüglich assembling und debugging der Programme die in Assembler-Sprache geschrieben wurden.
Der Interpreter für die BASIC-Sprache wurde bezüglich der implementierten Befehlssätze in mehreren Versionen entworfen. Die finale Version beinhaltet, neben den Standard-Befehlssätzen von BASIC und den Befehlssätzen für die Manipulation der Matrizen, Grafikbearbeitungen und die CALL-Operation.
Weniger häufig, aber ebenso interessant, umfassend und gut umgesetzt war das FORTH-System – der auf den sogenannten aMIC-FORTH-Rechner im Einsatz war.