[Btx] Serielle Attribute am Zeilenanfang
Stefan Bethke
stb at lassitu.de
Wed Jun 16 16:41:39 UTC 2021
Am 15.06.2021 um 22:31 schrieb Christian Berger <christian at clarke-3.de>:
>
> Am 15.06.21 um 20:31 schrieb Stefan Bethke:
>> ich versuche gerade zu verstehen, ob und wie ich serielle Attribute am Zeilenanfang gesetzt werden können.
>> Wenn ich die Vordergrundfarbe mit z. B. ANB setze, dann habe ich in Pos 1 Blau als Vordergrund, aber ein Leerzeichen, also sieht man die Farbe nicht. Wenn ich dann mit NBD die Vorder- zur Hintergrundfarbe mache, wird Pos 2 Blau, dann kann ich mit ANY die Vordergrundfarbe auf Gelb setzen. Ab Pos 4. kann ich dann gelben Text auf blauem Hintergrund schreiben.
>> Wenn ich jetzt versuche, mit Backspace das ganze auf Pos 1 anzuwenden, ist mir nicht klar, wie genau das dann klappen soll. Cassandro meinte, wenn ein Zeichen ausgegeben wird, werden eventuell vorhandene Marker und damit auch alle Attribute aus der Position entfernt. Wenn ich as in Pos 1 mache, dann kommt der Zeilendefault von Weiß auf Transparent wieder zum Einsatz.
>> Geht das also nicht? Oder wie kann ich den Zeilendefault so ändern, das ich Attribute auch in Pos 1 setzen kann?
>> Bei Teletext geht das glaube ich nicht, weil es kein Backspace gibt?
>
> Also beim Teletext geht das inzwischen sogar. Wir haben ja Level 2.5 :)
>
> Sorry, wenn ich jetzt etwas sehr in die Grundlagen von Hardware Textmodi gehe, aber man muss bei den Grundlagen anfangen um die Unterschiede zwischen seriellem und parallelem Modus erklären zu können. Aus Gründen der besseren Verständlichkeit lasse ich unterschiedliche Zeichengrößen, Blinkmodi und 4-16 Farbzeichen weg.
>
> Der CRTC (CRT Controller) hat für jedes Zeichen eine Speicherstelle. (also 40x24 Speicherstellen) Um das Bildsignal zu erstellen, ließt der CRTC eine Speicherstelle, schlägt die Pixeldaten für das Zeichen nach und schiebt sie in ein Schieberegister damit sie Pixel für Pixel ausgegeben werden. Gleichzeitig werden die Attribute ausgegeben so dass weitere Hardware sie als Vorder- und Hintergrundfarbe verwenden kann.
>
> Im parallelen Modus ist die Speicherzelle relativ groß (32 Bit oder so) und da steht der Zeichencode sowie die Attribute gemeinsam drin. Bit 0-9 sind zum Beispiel der Zeichencode, Bit 10-14 sind die Hintergrundfarbe, Bit 15-19 sind die Hintergrundfarbe, usw. Somit kann jedes Zeichen beliebige Farben haben.
>
> Im seriellen Modus ist die Speicherzelle relativ klein (7 oder 8 Bit).
> Ist der Wert der da drin steht größer als $20, so wird das entsprechende Zeichen ausgegeben.
> Die Attribute kommen hier aber nicht direkt aus dem Speicherzelle des Zeichens, sondern von internen Flip-Flops innerhalb des CRTCs. Die werden am Anfang der Zeile vorbelegt.
> Ließt der CRTC jetzt in der Speicherzelle einen Wert kleiner als $20, so werden die internen Attributs-Flipflops innerhalb des CRTCs verändert.
>
> Wenn Du jetzt bei BTX im seriellen Modus eine leere Zeile hast
> 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....
> Und Du mit dem Cursor ganz links bist und ein ANB, NBD, ANY, "Hallo Welt" schickst hast Du Folgendes im Speicher.
> 04 1D 03 H a l l o 20 W e l t 20 20 20 20 20 20 20 ....
> Wenn Du jetzt ganz nach links springst und ein "XXX" schreibt, steht folgendes im Speicher:
> X X X H a l l o 20 W e l t 20 20 20 20 20 20 20 ....
> Du hast somit die 3 Attributszeichen überschrieben, uberschrieben und auf dem Bildschirm steht "XXXHallo Welt" in weiß auf schwarzem Grund.
>
> Ich hoffe das macht es irgendwie klar. Bei parallelen Attributen gibts quasi ja 2 Attribute, zum einem die der Zeichen im RAM, zum anderen die Attribute des gedachten Cursors welcher Zeichen in das RAM schreibt.
> Beides gibt es in dem Sinne im seriellen Modus nicht.
>
> Was im seriellen Modus auch geht ist folgendes:
> Du hast Text auf dem Bildschirm:
> D i e s 20 i s t 20 e i n 20 T e s t....
> ^
> Jetzt kannst Du an diese ---------+
> Stelle springen und ANB schreiben.
> Ab diesem Moment müsste "Test" in Blau erscheinen. Springst Du noch mal da hin und schreibt ein Leerzeichen so ist der Text wieder weiß.
> Normgerechte Dekoder (bzw alte Prestel Dekoder) machen das. Die von Loewe leider nicht. Für die FTZ Zulassung reicht es trotzdem.
Alles klar, dann habe ich es richtig verstanden. Ich war mir nur nicht sicher, ob es nicht doch einen Weg gibt, auch für Position 1 schon irgendwie anders Attribute festzulegen, oder ob die immer der Default (Weiß auf Schwarz, etc.) sind.
Ich muss dann nochmal darüber nachdenken was passiert, wenn man seriell und parallel in einer Zeile anfängt zu mischen...
Gruß,
Stefan
--
Stefan Bethke <stb at lassitu.de> Fon +49 151 14070811
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: Message signed with OpenPGP
URL: <http://lists.hanse.de/pipermail/btx/attachments/20210616/8d6c327b/attachment.bin>
More information about the Btx
mailing list