AC1
AC1: Der AC1 (Abkürzung für „Amateurcomputer 1“) war ein Heimcomputer-Bausatz-Projekt, das vom Haus des Radioklubs der DDR betreut wurde. Die Beschreibung des 8-Bit-Computer-Bausatzes wurde beginnend im Jahre 1983 in der DDR-Zeitschrift „Funkamateur“ veröffentlicht.
Entwickelt wurde der AC1 vom Referat Technik des Präsidiums des Radioklubs der DDR am Anfang der 1980er Jahre. Der Vorschlag für die Grundstruktur des Rechners stammte von Frank Heyder, dessen Konzept auf dem Prozessor U880 basierte. Von ihm stammte auch das erste Betriebssystem des Rechners.
Der Rechner wurde besonders von Funkamateuren nachgebaut, da er Anwendungen wie Funkfernschreiben, Telegrafie und Logbuchführung bei Amateurfunkcontesten bewältigte. Der größte Aufschwung zum Nachbau kam auf, als die Betriebsart Packet Radio unter den Funkamateuren aufkam. Später wurde das Gerät mit einem Vollgrafiksystem und einem Diskettenbetrieb mit 256-KByte-RAM-Karte erweitert.
Systembeschreibung
AC1 (Titelseite FA 12/83), Leiterplatte Fotomontage LS+BS (zweiseitig, nichtdurchkontaktiert, 250 mm x 300 mm !)
technische Daten
Grundausbaustufe nach funkamateur 1984
Merkmal | Beschreibung |
---|---|
CPU | U880 |
ROM | 4K (2K Monitor + 2K Minibasic) |
RAM | 1k (2k) |
Takt | 2 MHz |
Anzeige | 64×16 Zeichen, 64 Zeichen (Großbuchstaben, Ziffern, Sonderzeichen) (64×32 Zeichen, ASCII) |
Tastatur | ASCII |
Peripherie | TV, Kassettenrecorder |
Software | Monitor 3.1, Minibasic 2.1 |
Die im funkamateur original vorgestellte Variante A (Grundausbaustufe, Ur-AC1) hatte folgende Eigenschaften
- 2K ROM mit Monitorprogramm mon_v31_16.bin (0000-07FF)
- 2K ROM mit Minibasic V2.1 (0800-0FFF)
- 1K RAM Arbeitsspeicher (1800-1BFF)
- 1K RAM Bildschirm mit 16 Zeilen zu 64 Zeichen (1000-13FF)
- Zeichengenerator mit U402 (s. Bild)
Im FA 01/86 erfolgte die Erweiterung zu Variante B:
- 2K ROM mit Monitorprogramm mon_v31_32.bin (0000-07FF)
- 2K ROM mit Minibasic V2.1 (0800-0FFF)
- 2K RAM Arbeitsspeicher (1800-1FFF)
- 2K RAM Bildschirm mit 32 Zeilen zu 64 Zeichen (1000-17FF)
- Zeichengenerator zuerst mit 1K ROM U555 und Kleinbuchstaben (FA 06/86)
- später mit 2716, Pseudografik 128 x 64 „Pixel“
Der Monitor mon_v31_32.bin ist der an 4 Bytes auf den vergrößerten BWS angepasste mon_v31_16.bin. Außerdem wurde die Filenamenslänge auf 16 Zeichen erhöht und der Suchbereich für externe Kommandos erweitert, s. Versionsunterschiede.
Der spätere Ausbau auf 64K RAM ergibt den „AC1-ACC“:
Variante C und D unterscheiden von B sich nur durch zusätzlichen RAM-Speicher:
- C: 16K DRAM 4000-7FFF
- D: 56K DRAM 4000-FFFF (AC1-ACC)
Vollausbau (ACC, SCCH)
Merkmal | Beschreibung |
---|---|
CPU | U880 |
ROM | 8K |
RAM | 64k |
Takt | 2 MHz |
Anzeige | 64×32 Zeichen, ASCII + Pseudografik |
Tastatur | ASCII |
Peripherie | TV, Kassettenrecorder, Floppy, RAM-Disk |
Software | Monitor ACC 3.1, Monitor SCCH 8.0, SCCH 10/88, CP/M als xx |
Heute hat sich der SCCH-Monitor in seinen Versionen „V8“ (11/87) und „10/88“ weitgehend als Standard etabliert, wenn auch der V3.1 von Frank Heyder sicher immer noch auf den meisten Rechnern verfügbar ist und nach wie vor gute Dienste leistet.
Literatur
- Funkamateur 1984 ff. (AC1-Beiträge online bei ac1-info.de)
Downloads
ac1-zip.zip und auch https://github.com/hcddr/ac1
- Anleitung, ..
- Quellcode Monitor
- Quellcode Minibasic
- Quellcode Basic V1.1
- wav2ac1
Hinweise:
Der Monitor des AC1 basiert auf dem Programm ZETBUG für TRS-80 Model I, beschrieben in funkschau 1980/11. Außerdem ist der Monitor des AC1 möglicherweise die Basis für den Systemmonitor des Z1013. Ich habe ZETBUG reassembliert, ebenso den AC1-Monitor und an die Labels des Z1013 angepasst. Damit kann man die Versionen gut vergleichen und Veränderungen verfolgen.
Das Minibasic basiert auf dem Minibasic V3.2 von Rolf-Dieter-Klein. Auch hier hab ich das AC1-Minibasic reassembliert und an das Original angepasst. Damit kann man beide Versionen gut vergleichen und Veränderungen verfolgen.
Das gleiche Spiel beim BASIC+EDITV1.1. Als Basis kam für mich nur das NASCOM-Basic V4.7 in Betracht, basierend auf dessen Quellcode entstand der Reassemblercode der AC1-Version. Später habe ich eine Bestätigung meiner Vermutung in der Doku zum Basic V3.2 gefunden: Grafik-Basic-Interpreter V.3.2 wurde unter Verwendung des Standardkern des Nascom-8K-Basic (C)1987 Microsoft entwickelt 1988 by E.Ludwig.
Mit dem Perl-Programm wav2ac1 können AC1-WAV-Dateien im Monitor-3.1-Format und Minibasic-Format in Binärdateien umgewandelt werden. Das Programm verarbeitet eine ganze Kassette auf einmal und produziert Binär- und .Z80-Dateien. Damit kann Musterkassette-001.WAV in die einzelne Programme zerlegt werden.
Achtung: Das Kassettenaufzeichnungsformat des AC1 enthält nicht nur Speicherbereiche. Vielmehr ist es ein Containerformat mit verschiedenen Abschnitten (so gibt es z.B. auch Ladebilder). Bin-BASIC-Programme zum großen Basic V1.1 können nicht direkt geladen werden; es sind keine Speicherbereiche. Diese BASIC-Programme können als WAV eingelesen werden!
Minibasic-Programme werden vom Monitor aus eingelesen (#L) und mit J : angesprungen.
Bedienung
Der AC1 hat ein einfaches Monitorprogamm zur Eingabe von Maschinencode und zum Laden/Speichern von Programmen auf Kassetten. Er basiert auf ZETBUG (TRS-80).
Programme laden mit L + Enter
Außerdem steht ein Tiny-Basic-Derivat bereit
Basic starten mit Z + Enter
Sonstiges
Die Tastaturelektronik erzeugt den ASCII-Code der gedrückten Taste und ein Statussignal für „Taste gedrückt“.
Die Tastatur wird durch die Leitungen TD0 bis TD6 und TAST über einen PIO-Port an den Rechner angeschlossen.
PA0..PA6 = TD0..TD6 Ascii-Code TAST = PA7 - Taste gedrückt
Obwohl es für den AC1 einen PS/2-Tasatur-Adapter mit PIC gibt, habe ich hier eine andere Lösung gefunden, denn die PIC-Lösung ist leider ohne Quellcode. http://www.willegal.net/appleii/appleii-kb-int.htm ist ein universelles PS/2 → ASCII-Parallel-Tastatur-Interface mit ATTINY 2313. Das lässt sich sicherlich auch für den AC1 ein-/umsetzen.
2021: von *Frieder Tonn* gibt es eine weitere open source-Lösung zum Anschluss einer PS/2-Tastatur. Zum Konvertieren PS/2 → ASCII wird ein Arduino genutzt https://github.com/friedertonn/AC1-Tastatur