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.
Bilder von Ralf N.(runni)
U.-P.Krause schreibt auf seiner Homepage dazu: „Herr Dipl.-Math. Eckhard Schiller hat mir freundlicherweise gestattet, seine Eigenentwicklung zu präsentieren. Er funktioniert beim Entwickler heute immer noch.“
Heiko S. schreibt:
In der RFE 9/86 Seite 561 wurde der Patch für „BASIC-SE 3.1 3,5 MHz, 40 Zeichen pro Zeile“ veröffentlicht. Dieser enthält einen Fehler, der den Plot-Befehl betrifft. Das kann man leicht ausprobieren mit „plot 10,10“.
Fehler: Adr. 18A: Statt 29h muss 09h genommen werden:
Dank Listing vom „S/P-Basic 3.3“ kann man leicht nachvollziehen, wo der Fehler liegt.
BCS V3.1 E.Schiller RFE 9/86 -> 40 Zeichen ------------------------------------------------------- 184 : 29 add hl, hl ; *** x2 185 : 29 add hl, hl ; *** x4 186 : 09 add hl, bc ; *** x5 187 : 29 add hl, hl ; *** x10 188 : 29 add hl, hl ; *** x20 189 : 29 add hl, hl ; *** x40 ;18A : 29 add hl, hl ; *** x80 : Mult. mit Zeichenzahl/Zeile FEHLER !!!! 18A : 09 add hl, bc ; *** x41 : Mult. mit Zeichenzahl/Zeile korrigiert !
Meines Wissens wurde das nie veröffentlich, aber einige Nutzer haben das natürlich auch zu DDR-Zeiten herausgefunden und in Ihren EPROMS korrigiert.
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 gab 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.
2019: Diese Links sind leider nicht mehr existent. U.-P. Krause ist 2017 verstoben.
Eine minimale Kopie seiner Webseite hat im Webarchiv überlebt: https://web.archive.org/web/20080612215446/http://www.sn-assembler.de/bastler_computer.html
Seine Datei BCS_3.zip stelle ich deshalb hier unter downloads zur Verfügung.
https://www.youtube.com/watch?v=WhEPHoQGw6k - Ein Video von „Ingo G“ seines BCS 3 mit einem Pacman-Spiel.
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.“
Von Wolfgang „wolle1945“ gibt es ein paar BASIC-Programme für den BCS Vers. 3.1 mit 16 K Speicher. Vielen Dank!
s.o. downloads
JKCEMU: Da das BASIC-Programm abhängig von der sichtbaren Zeilenzahl eventuell auf eine andere Adresse wieder eingeladen werden muss, sollte die Ladeadresse nicht in der Datei stehen. Verwenden Sie deshalb am besten Speicherabbilddateien ohne Kopfdaten (BIN-Dateien). Beim Laden eines BASIC-Programms sollten Sie immer so vorgehen, dass der Dialog mit den Ladeoptionen angezeigt wird. JKCEMU ermittelt nämlich die zu verwendende Ladeadresse und schreibt sie in das entsprechende Feld in den Ladeoptionen. Dazu muss aber der Dialog auch angezeigt werden.
Und nicht vergessen: Bei einem Kaltstart müssen Sie als erstes die Anzahl der sichtbaren Zeilen (BASIC-SE 3.1: 4 bis 29, S/P-BASIC 3.3: 4 bis 28) eingeben und ENTER betätigen, bevor Sie in die BASIC-Eingabeaufforderung gelangen.
HeikoS hat in https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=21008 seinen SCART-Anschluss gezeigt:
„Part mit dem D192 für den Speicherimplus für das Schieberegister und den SCART-Anschluss. Bei mir läuft es so gut, dass es nun überhaupt keine Flickerei mehr gibt und auch nicht mehr mit der Zeit „wegläuft“. Ist auch logisch, da jetzt alles linear vom Systemtakt abgeleitet ist. Bei mir läuft es aktuell mit 7 MHz und 40×24 Zeichen (Änderung im ROM-Code notwendig für 24 Zeilen).“