BCS 3

Der BCS 3 ist ein kleiner Einplatinencomputer für TV-Anschluss, entwickelt 1984 von Dipl.-Math. Eckhard Schiller (siehe auch VCS 80).

Der aktuelle KC-Emulator von Jens Müller http://www.jens-mueller.org/jkcemu emuliert alle hier beschriebenen Varianten des BCS 3.

  • bcs3.zip System 2.4, System 3.1, System 3.2, Zeichensatz, MC-Editor
  • bcs3.pdf die kompletten RFE-Artikel
  • bcs3sprint.zip Layout (Sprint, von S. Meyer)
  • rfe 1/85 Grundvorstellung
  • rfe 4/85 Berichtigung
  • rfe 9/86 Erweiterung (BASIC 3.1)
  • rfe 9/86 Vollgrafik (Werner Schmidt)
  • rfe 10/87 weitere Aufbauhinweise

(Dank an ralle für die Bilder)

Zeichensatz Version 2.4

Zeichensatz Version 3.2 (F.P.)

Frank Prüfer hatte die Version 3.1 mit einem selbst geschriebenen Reassembler ergründet und daraus dann die verbesserten Versionen 3.2 (sowie 3.3) entwickelt (ohne Kontakt zu Eckhard Schiller). Für die Version 3.2 war eine Veröffentlichung geplant, zu der es leider nicht kam. Hier gibt es aber das Manuskript und die EPROM-Inhalte, für Version 3.3 auch den kompletten Quelltext. Der obige Zeichensatz 3.2 wurde anhand alter Notizen aus dem Jahr 1987 als finale Version des Zeichengenerators für Version 3.2 rekonstruiert (und steht im Downloadpaket), kam aber im originalen System (Bild) leider nicht mehr zum Einsatz.

Es sind in Version 3.2 und 3.3 max. 28 Zeilen möglich.

Version 3.3 ist eine noch mal gegenüber 3.2 leicht überarbeitete Version. Der einzige sichtbare Unterschied ist, dass bei nicht erfüllter „IF“-Bedingung jetzt bis zum ENDE DER BASIC-ZEILE gesprungen wird, wie bei fast allen anderen BASIC-Dialekten. Intern wurde an diversen Stellen der Code weiter optimiert, um Platz für diese Änderung zu schaffen. Außerdem wurde im Zeichensatz 'f' und 't' geändert, der Querbalken sitzt jetzt eine Reihe tiefer.

Frank Prüfer: Das Grundkonzept von BASIC-SE 3.1 und S/P-BASIC 3.2 war so, dass generell sowohl „:“ als auch BASIC-Zeilenende als Anweisungstrenner galten. Inklusive der IF-Anweisung!

Beispiel: 40 IF <Bedingung> THEN Anweisung_40.1 : Anweisung_40.2 : Anweisung_40.3

Bei V3.1 und V3.2 wird bei NICHT erfüllter Bedingung *nur* die Anweisung_40.1 überlesen, jedoch werden Anweisung_40.2 und Anweisung_40.3 ausgeführt. Bei V3.3 werden nunmehr auch Anweisung_40.2 und Anweisung_40.3 übersprungen, wenn die Bedingung nicht erfüllt ist.

Vorteil: Die Übernahme „sonstiger“ BASIC-Programme wird massiv erleichtert, da das bei BASIC „übliche“ Vorgehen bei IF benutzt wird. Und: Programme können besser strukturiert werden. Anders formuliert: Für die Anweisung nach IF (im obigen Bsp. „Anweisung_40.1“) steht jetzt ein größerer Befehlsvorrat zur Verfügung; bei V3.1 und V3.2 war hier zumeist nur GOTO oder GOSUB sinnvoll - bei V3.3 können nunmehr auch mehrere Anweisungen bedingt abgearbeitet werden.

Nachteil: Alle mit V3.2 erfassten BASIC-Programme müssen auf diese Besonderheit hin überprüft und ggf. korrigiert werden. Der Aufwand dafür dürfte aber verglichen mit dem Umstieg von V3.1 auf V3.2 recht marginal sein, da sich keine internen Token geändert haben.

Bilder des Systems von Frank Prüfer stehen in Nachbauten.

Hinweise:

Bildposition: Das 2009 direkt vom Bildschirm eines Fernsehers aus dem Jahre 2005 geschossene „Live“-Foto zeigt, daß bei der 2,5-MHz-Variante des BCS3 die Pixel deutlich breiter als hoch sind und insbesondere auch, daß moderne Fernseher mit dem sehr trickreich per Kombination aus Hard- und Software (also über „geborgte“ Rechenleistung der CPU) erzeugten Bildsignal meist ein Problem haben. Diverse Tests in den Jahren 1986 und 1987 von zwei verschiedenen BCS3 zusammen mit einer ganzen Reihe damals handelsüblicher Fernseher haben übrigens gezeigt, daß seinerzeit bei der Version 3.2 in der hier veröffentlichten Form das Bild horizontal wirklich immer ausgesprochen symmetrisch auf dem Bildschirm platziert wurde. Doch schon damals war es eher so, daß westliche Importfernseher (z.B. Koffer-Farb-TVs von Toshiba, die in der DDR handelsgängig waren) das Bild ein wenig weiter rechts schrieben als „typische DDR-Geräte“. (NB: Das ist auch mit vergleichbaren westlichen Heimcomputern der 80er Jahre, wenn man sie heutzutage an modernen Fernsehern betreibt, oft noch genauso - z.B. mit dem Sinclair ZX81.)

Deshalb hatte ich auch die in dem Manuskript zur Version 3.2 im Punkt 11 (3. Absatz) beschriebene Änderung gemacht: Das Bild hatte dann auf DDR- Fernsehern links einen etwas kleineren unbenutzten Rand als rechts; auf Importgeräten war es genau umgekehrt. Interessant jedenfalls, daß ich damals nicht mal im Traum auf die Idee gekommen bin, in dem Manuskript zu beschreiben, wie man das Bild noch weiter *links* beginnen lassen könnte. Dafür schrieb ich ausführlich, wie man es per Software wieder etwas nach rechts bekommt…

Wer heute noch einen realen BCS3 hat (und natürlich die Möglichkeit, EPROMs U555 zu programmieren ;-) und bei wem die Ausgabe auf aktuellen Fernsehern auch so aussieht, wie auf meinem „live“ Screenshot, kann das Bild eine Zeichenstelle nach LINKS verschieben, indem einfach bei Version 3.2 der Inhalt der ROM-Zellen 0053H und 0054H ausgetauscht wird. (Technischer Hintergrund: Zum Verschieben nach rechts wurden einfach diverse Füllbefehle - z.B. NOP - eingebaut; vier U880-Takte entsprechen einer Zeichenposition. Das Löschen dieser Füllbefehle läßt das Bild entsprechend weiter links beginnen. Mit der eben genannten Änderung ist dann aber die Grenze erreicht - mehr „Linksruck“ geht per Software also DEFINITIV nicht mehr!).

Meine Aussagen bzgl. Hin- und Herschieben mittels Softwareänderungen beziehen sich natürlich immer nur auf den LINKEN Rand. Die Bildbreite kann in gewissem(!) Maße mit der Taktfrequenz verändert werden. So habe ich auch gearbeitet. In der Ingenieurschule der Post hatten die ja einen richtigen Testbildgenerator. Und den habe ich erst mal an den Fernseher angeschaltet und anschließend genau passend die Bildbreite des BCS3 über den Taktgenerator feinreguliert; dazu hatte ich extra kleine Markierungszettelchen der Testbildpositionen an den Bildröhrenrand gepappt. Und schon damals (ich hatte noch die „Ur-Einstellung“ des linken Randes genau nach „Schiller“) hat mir ein dezidierter TV-Techniker gesagt, daß der Beginn beim BCS3 „eigentlich“ etwas zu weit rechts sei. Das stimmte: Selbst auf Fernsehern, deren Bildgröße genau genommen zu groß reguliert war, also wo schon beim normalen TV-Programm merkliche Bildteile außerhalb des sichtbaren Bereichs lagen, war mit dem BCS3 immer noch ein recht breiter Rand. Dann merkte ich das schon Geschilderte mit den Importfernsehern und habe deshalb den Zeilenanfang per Software 8 Pixel nach links gelegt und das Bild dafür durch Senkung der Taktfrequenz rechts wieder etwas (ca. 4 Pixel) größer gezogen. Dann sah's sowohl auf DDR- als auch Importgeräten immer recht symmetrisch aus.

Bei U.-P. Krause gibt es etwas versteckt auch Informationen zum BCS 3. Incl. neuerstellter Anleitung als PDF: http://www.upka.de/bastler_computer.html und http://www.upka.de/downloads/kc_sonstige/BCS_3.zip.

Torsten Paul: „…Die Bildsteuerung ist eine ziemlich trickreiche Angelegenheit. Und auch softwareseitig sehr unterschiedlich zwischen 2.4 und 3.1. Damit ist der Umbau von M. Wolter tatsächlich etwas fragwürdig (wie auch der Autor zurecht klarstellt). Vermutlich hat er damit die WAIT- Logik einfach totgelegt und dann eben durch Software ersetzt.“