Computer LLC2

(Alias LLC 2, LLC-2)

Geschichte

Zu Beginn der 80er Jahre wurde von dem Chemnitzer Dr. Gerd Maudrich (später Mitbegründer des bekannten PC-Handels MEG-WARE) als Nachfolger des Lehr- und Lerncomputers 1 (LLC1) ein Bausatz entwickelt, welcher dem Bedürfnis nach mehr Rechenleistung bei überschaubarem Hardwareaufwand Rechnung trug. Dieser als LLC2 bezeichnete Computer war als Einplatinencomputer mit einer konsequenten Ausrichtung auf eine einzige Versorgungsspannung von 5V konzipiert. Die durchkontaktierte Leiterplatte zum Aufbau des Systems wurde im Buchungsmaschinenwerk Chemnitz hergestellt und war zu einen Preis von 95 Mark erhältlich. Die Tastatur war als kleine, angehängte Leiterplatte mit zugehöriger Kontaktgummimatte bereits enthalten.


Roh-Platine des LLC2...

...bestückte Platine...

...und ein fertig aufgebautes Gerät.

Als Betriebssystem gab es nur einen kleinen 2 KByte-EPROM mit einem so genannten Urlader. Dieser Lader wartete nach dem Rechnerstart auf an der Tonbandschnittstelle ankommende Programmdaten und startete das geladene Programm im Anschluss. Damit konnte man zwar schon einiges anfangen, allerdings fehlte noch der Komfort eines richtigen Heimcomputers.

Deshalb nahm sich in der Folgezeit der "Studio Computer Club Halle" (SCCH) unter Leitung von Eckhard Ludwig dieses Computers an, um ihn mit den noch fehlenden Features auszustatten. Zunächst wurde ein 4 KByte großes, BIOS-ähnliches Betriebssystem mit dem Namen "SCCH Monitor" entwickelt, welches sich sowohl in der Funktionalität als auch in den Adressen der Einsprungvektoren der einzelnen BIOS-Funktionen am System des damals bereits weit verbreiteten Heimcomputers AC1 orientierte. Damit war es möglich, Programme des AC1, welche diese Sprungtabellen verwendeten, mit nur minimalen Änderungen auf den LLC2 zu portieren.
So konnte nach Anpassung des BASIC-Interpreters und des Makro-Assemblers des AC1 mit der Entwicklung von Programmen für den LLC2 begonnen werden.

Dabei stellte sich die fehlende Grafikfähigkeit des LLC2 immer mehr als Hemmnis heraus. Also wurde mittels dreier Schaltkreise eine Erweiterung für eine schwarz-weiße Vollgrafik mit einer Auflösung von 512x256 Pixeln entwickelt. Diese so genannte "HIRES"-Erweiterung nutzte wahlweise zwei jeweils 16 KByte große Speicherbereiche im Arbeitsspeicher des LLC2 als Grafikspeicher. Um die mit dieser Vollgrafik arbeitenden Programme effektiv bedienen zu können, wurde gleich auch noch ein Joystick-Port für einen digitalen Joystick entworfen.

Fehlte noch die Farbe für die Vollgrafik. Dazu wurde eine auf einer GDC basierende Erweiterungsplatine mit eigenem RAM entworfen, welche aber nicht mehr realisiert werden konnte. Um zumindest eine einfache Farbausgabe im Grafikmodus realisieren zu können, entstand das "Modul 2", welches den LLC2 um eine farbige Vollgrafik erweiterte.

Als Nadelöhr für eine komfortable Bedienung stellte sich nun das langwierige Laden und Speichern von Programmen und Daten auf Magnetkassetten heraus. Um zumindest die am häufigsten benötigten Programme nicht immer vom Band laden zu müssen, entstand mit dem "Modul 1" eine ROM-Disk, welche bis auf 540 KByte aufgerüstet werden konnte.


ROM-Disk-Platine

Mit dem ebenfalls entwickelten EPROM-Brenner für den LLC2 konnte man sich nun die benötigten Programme auf die EPROMs bannen und hatte sie nun ständig sofort verfügbar. Der Zugriff auf den EPROM-Bereich konnte sowohl aus Programmen heraus durch Bankumschaltung als auch über die Bedienoberfläche "Programmpaket X", welche alle auf der ROM-Disk enthaltenen Programme über eine Menüstruktur zugänglich machte, erfolgen.

Nun wurde es Zeit für das "FDC", eine Ansteuerung für bis zu 4 Stück 5¼-Zoll Laufwerke mit bis zu je 800 KByte Speicherkapazität. Dieses Modul wurde zunächst über ein Erweiterungsprogramm "Diskettenverwaltung" gesteuert. Damit war es möglich, Programme und Daten zu laden, zu speichern und die entstandenen Dateien auf der Diskette zu manipulieren.


Floppy-Controller

Somit hatte das Tonband als Datenspeicher für den LLC2 ausgedient und wurde nur noch verwendet, um Daten mit anderen Heimcomputern auszutauschen. Der LLC2 unterstützte bei den Magnetkassetten folgende Aufzeichnungsverfahren: Turbo-Tape, AC1, Z1013, KC85/2 bis KC85/4, KC87 und VTCP.

Nun hatte man ein oder mehrere Diskettenlaufwerke. Was lag also näher, als zu versuchen, das auf damals fast allen "großen" ROBOTRON-Computern laufende Betriebssystem CP/M auf den LLC2 zu portieren und damit eine riesige Anzahl von CP/M-Programmen nun auch auf dem LLC2 verwenden zu können. Also wurde ein BIOS in Assembler geschrieben, welches in Verbindung mit den Standardkomponenten BDOS und CCP das CP/M für den LLC2, deshalb auch CP/L genannt, bildete. Dabei waren Routinen für Vollgrafik und Joystick bereits im BIOS integriert. Die aus Platzgründen nicht mit ins BIOS aufgenommenen Kassettenroutinen konnten bei Bedarf als eigenständiges CP/M-Programm nachgeladen werden.
Da viele CP/M-Standardprogramme jedoch von einer Auflösung des Textbildschirms von 80x24 Zeichen ausgingen, welche alle anderen ROBOTRON-Bürocomputer auch besaßen, gab es mit der LLC2-typischen Auflösung von 64x32 Zeichen häufig Darstellungsprobleme. Also wurde auf Basis der integrierten Vollgrafik eine modifizierte Bildschirmausgabe im BIOS integriert, welche nun wahlweise die erforderliche Auflösung von 80x24 Zeichen bei allerdings stark verringerter Ausgabegeschwindigkeit ermöglichte.

Nun waren aber die gebräuchlichen Floppy-Laufwerke nicht die schnellsten, und wer nur ein Laufwerk hatte, bekam bei Kopierversuchen größerer Programme doch schon des Öfteren Probleme. Also musste eine RAM-Disk her, und wurde als "Modul 3" auch bald vom SCCH publiziert. Damit konnte man sich ein superschnelles virtuelles Diskettenlaufwerk mit 128 KByte oder, bei Huckepack-Aufbau der RAM-Chips, auch 256 KByte genehmigen. Selbstverständlich wurde diese RAM-Disk auch vom BIOS des CP/L unterstützt, wobei einige KByte der Disk für eine CCP-Kopie (für einen schnelleren Warmstart) und den Grafikspeicher der Vollgrafik abgeknappst wurden, um dem Betriebssystem die bisher nicht uneingeschränkt verfügbaren 16 oder 32 KByte des Vollgrafikspeichers wieder zur Verfügung zu stellen.


RAM-Disk

Damit war nun ein recht brauchbarer Heimcomputer entstanden, welcher im Hinblick auf seine Leistungsfähigkeit sogar manchen Bürocomputer in den Schatten stellte.
Leider wurden viele damals noch geplante Projekte wie GEOS, Mouse, Modem, Videotext und MS/DOS nach der Wende nicht mehr verwirklicht, da zum einen andere Probleme Priorität hatten und später die Verfügbarkeit komfortablerer Computer den Enthusiasmus bei Neuentwicklungen für den LLC2 spürbar dämpfte.

Technische Daten

CPU UA880
Taktfrequenz 3 MHz
RAM 64 KByte
ROM 8 KByte (4 KByte Monitor, 4 KByte Zeichengenerator)
PIO zwei UA855 (davon eine mit 16 Ports frei verfügbar)
CTC UA857 (davon 3 Kanäle frei verfügbar)
Bildformat Text 64x32 und 80x24 Zeichen
Bildformat Grafik 512x256 Pixel s/w oder Farbvollgrafik
Tonausgabe Lautsprecher (digital)
Magnetbandinterface Turbo-Tape, AC1, Z1013, KC85/2 bis KC85/4, KC87 und VTCP.
RAM-Disk 128/256 KByte
ROM-Disk bis 540 KByte
Floppycontroller U8272 (bis 4 LW mit maximal je 800 KByte)
Bussystem ROBOTRON K1520
Stromversorgung 5 VDC 3A, 12 VDC 1A für Floppy-LW
Betriebssysteme SCCH-Monitor, CP/L, Z1013

Mein LLC2 - Bericht eines LLC2-Nutzers

Da Anfang der 80er Jahre der Zugriff von Privatleuten auf Computer nicht oder nur eingeschränkt möglich war, war mir klar, dass so ein Ding gebaut werden musste. Aber welchen Typ sollte man bauen?
LLC1 und Z1013 waren doch ein wenig unterdimensioniert, um allen Ansprüchen gerecht zu werden. Da sah es mit dem AC1 schon besser aus. Als ich aber bei einem Studienkollegen miterlebte, wie er diese riesige zweiseitige und vor allem nicht durchkontaktierte Leiterplatte erfolglos mit Leben zu erfüllen versuchte, nahm ich dann doch lieber Abstand davon. Zum Glück wurde ich dann auf den LLC2 aufmerksam, welcher zu dieser Zeit gerade aktuell wurde.
Also wurde das Konto geplündert und die 95.- Mark für die Leiterplatte und ca. 350.- Mark für die restlichen Bauteile investiert. Zum Glück gab es damals gerade einen Kanal von der Uni zum Halbleiterwerk Dresden, so dass man die 64 KBit DRAMs als ausgesonderte Chips zu einem Schnäppchenpreis von "nur" 30.- Mark pro Stück beziehen konnte (8 Stück wurden zunächst benötigt). Die anderen Bauteile wurden teils aus Wermsdorf und zum großen Teil über Bekanntschaften, Beziehungen und Tauschgeschäfte beschafft.
Der Zusammenbau gestaltete sich dank der durchkontaktierten Leiterplatte relativ problemlos.
Haarig wurde es dann jedoch bei der Inbetriebnahme. Nur mit einem Multimeter und einem selbstgebauten Logikprüfstift bewaffnet, galt es, vor allem das empfindliche Timing der RAS/CAS-Signale der DRAMs in den Griff zu bekommen.
Mit viel Geduld hat es dann auch geklappt und ich sah die Anzeige des Urladers auf meinem Combivision, den ich zu diesem Zweck mit einem Umschalter und einem 1 nF Kondensator für die direkte Videosignal-Einspeisung fit gemacht hatte (ein Modulator war mir zu aufwändig und zu unsauber).
Nun konnte ich das damals nur von Kassette ladbare Monitorprogramm laden und mit ersten Gehversuchen beginnen. Da damals noch keine Software oder Entwicklungsumgebungen für den LLC2 verfügbar waren, konnte man noch keine großen Sprünge machen. Deshalb fielen die ersten Programmierversuche auch etwas mühsam aus. Mein erstes Maschinenprogramm, die bekannte Evolutionsberechnung "Life" erstellte ich dann etwa so:
  1. Aufschreiben des Assemblercodes mit Bleistift auf Kästchenpapier
  2. Nach Festlegung der absoluten Startadresse Übersetzen auf dem selben Blatt in Hex-Code
  3. Über Memory-Dump-Anweisungen des Monitors Eintippen des Hex-Codes in den Speicher und hoffen, dass in den bereits eingegebenen Teil kein Code mehr eingefügt werden muss
  4. Sichern des Speichers auf Kassette
  5. Start des Programms und Auswerten der Fehler
  6. bis zum etwa 30. Durchlauf nach Fehlersuche zurück zu 1.
  7. Stolz auf das erste selbstgeschriebene Programm
Zum Glück kam ich durch meinen Kontakt zum SCCH bald in den Genuss, einen brauchbaren Makro-Assembler (EDAS*4) und einen BASIC-Interpreter nutzen zu können. Damit konnte ich mich dann aktiv an der Softwareentwicklung für den LLC beteiligen.

Dazu war jedoch zunächst erst einmal eine brauchbare Tastatur nötig, denn das Tippen auf der Original-Gummitastatur war schon recht ermüdend.
Die zu der Zeit erhältliche Mechanik der ROBOTRON-Tastatur K7659 schien dafür ein vielversprechender Ausgangspunkt.
Nun hieß es, die Matrixpositionen der einzelnen Tasten zu ermitteln, und unter Berücksichtigung der Shift- und Control-Tasten eine Codetabelle zu erstellen, welche in einem EPROM verewigt das Herzstück meines Tastaturinterfaces wurde. Nun machte das Programmieren gleich doppelt so viel Spaß. Natürlich wurden in der Folgezeit in Zusammenarbeit mit dem SCCH auch die Module für Vollgrafik, RAM- und ROM-Disk sowie Floppy-Interface nachgerüstet.

Fehlte eigentlich nur noch ein Drucker. Einen Nadeldrucker ohne DM zu bekommen war so gut wie aussichtslos. Doch da gab es eine Typenradschreibmaschine, genannt "Erika S3004", welche sich fast jeder für schlappe 1400.- Mark kaufen konnte. Also die Zähne zusammengebissen und das Konto leer geräumt. So, da stand das Prachtstück nun. Wie konnte ich sie nun dazu bringen, sich mit dem LLC2 zu unterhalten? Nach vielen Recherchen konnte ich sowohl die Belegung und das Protokoll der äußerst exotischen Schnittstelle der Schreibmaschine sowie eine Tabelle aller Zeichen- und Steuercodes auftreiben. Da die Schnittstelle zum Glück mit TTL-Pegeln arbeitete, waren erste Versuche mit selbstgeschriebenen Maschinenroutinen unter Nutzung einiger PIO-Pins möglich. Als Ergebnis stand am Ende ein nachladbarer Treiber, welcher die Tastaturabfrage- und Druckzeichenausgabe-Prozeduren sowohl des SCCH-Monitors als auch des CP/L abbog und so neben der Druckausgabe auch gleich das Schreiben der Texte über die Schreibmaschinentastatur ermöglichte. Das mit dem Nachladen des Treibers war aber nicht sehr komfortabel und beanspruchte den sowieso schon knappen Arbeitsspeicher. Das führte zu dem Entschluss, mittels einer weiteren CPU, 2 KByte ROM, 2 KByte RAM als Pufferspeicher und einer PIO ein externes Interface für die Schreibmaschine aufzubauen. Und wenn ich schon einmal dabei war, sollte gleich auch ein bisschen Komfort mit eingebaut werden. Also wurde das Interface so programmiert, dass es die DIABLO-kompatiblen Steuerzeichen verstand, bis zu einer Schreibmaschinenseite im Druckpuffer halten konnte, Punktgrafiken ausgeben und Tastaturanschläge von der Schreibmaschine an den LLC2 weiterleiten konnte. Durch den DIABLO-kompatiblen Steuerzeichensatz funktionierte nun auch die von Wordstar unterstützte "Microjustifikation", bei welcher die Zeichenabstände von der Zeichenbreite abhängen und die Leerzeichen beim Blocksatz in ihrer Breite variabel waren. Das entstehende Druckbild sah dadurch exzellent aus.


Interface für S3004-Schreibmaschine

Innenansicht des S3004-Interfaces

Für den Grafikdruck wurde der Satzpunkt als Einzelpunkt verwendet. Das dauerte bei 10 Zeichen / Sekunde natürlich seine Zeit, bis so eine Grafik ausgedruckt war, das Ergebnis sah aber für die damaligen Verhältnisse ganz passabel aus. Einziger Nachteil war, dass das Farbband der Maschine nach einer A4-Seite in Höhe des Satzpunktes einen durchgehenden Riss durch die Überbeanspruchung bekam. Dem konnte aber dadurch abgeholfen werden, dass bei Grafik statt mit dem Farbband mit einem Blatt Kohlepapier als Farbträger gedruckt wurde.
Auf diesem System habe ich dann meine Diplomarbeit geschrieben und anschließend auch erfolgreich verteidigt.

Leider sind die heutigen Fernseher und auch Grafikkarten so empfindlich gegen kleine Abweichungen des Videosignals von der Standardnorm, dass es mir bis heute nicht gelungen ist, das Signal des LLC2 auf einem dieser Geräte synchronisiert darzustellen. Deshalb fristet das System heute leider ein ziemliches Schattendasein im Keller, wo noch ein kleiner Fernseher steht, bei welchem man Horizontal- und Vertikalfrequenz nachregeln kann.
Auch ein Gehäuse hat der LLC2 bis heute noch nicht bekommen. Aber was nicht ist, kann ja noch werden.
Vielleicht finde ich auch noch einen Weg, über einen Videoprozessor-Chip ein normgerechtes Videosignal zu generieren und den LLC2 dann als "Zweitrechner" an meinem PC-Bildschirm zu betreiben.

Uwe Mau



Letzte Änderung dieser Seite: 10.02.2020Herkunft: www.robotrontechnik.de