024
14.05.2026, 14:09 Uhr
kaiOr
|
Hallo,
also also die Nutzung erscheint schon recht umständlich. Unter CP/M (SCP, CP/A) reden Programme standardmäßig mit dem BDOS, dieses leitet die Anfragen ans BIOS weiter, welches wiederum die Übersetzung für die Hardware (PC1715) macht.
Bsp. unter SCP, eine Zeichenausgabe über BDOS-Aufruf:
| Quellcode: | ORG 100h LD C,9 ;UP String-Ausgabe LD DE,STRING CALL 5 ;BDOS RET STRING DEFM '1234',0Dh,0Ah,'$' ;'1234' + Zeilenumbruch + Cursor an Anfang + Schlusszeichen für BDOS |
Hier einige Escape-Codes (3-stellig): (hinterm Semikolon der resultierende Code vom BIOS an den i8275)
Feldattribute: 1Bh 5Eh xx xx: 40h -> normal ;80h 41h -> intensiv ;81h 42h -> blinken ;82h 43h -> intensiv/blinken ;83h 44h -> ZG2 an ;84h 45h -> ZG2 intensiv ;85h 45h -> ZG2 blinken ;86h etc.
Spezialzeichen: 1Bh 5Fh xx (darunter 11x Quasi-Grafik) xx: 40h,44h,48h,4Ch ;C0h,C4h,C8,CCh 50h,54h,58h,5Ch ;D0h,D4h,D8h,DCh 60h,64h,68h ;E0h,E4h,E8h etc.
Unter CP/A sind diese 3-stelligen Escape-Codes leider andere und es wird nur ein Bruchteil unterstützt. :/
Vermutlich wäre es also effektiver direkt in den Zeichenspeicher (F800h-FF7Fh) zu schreiben, da eh sehr hardwarespezifisch und Code dort nur 1-stellig.
Speziell zum i8275: -Es werden nur 16 Feldattribute pro Zeile gepuffert, also lassen sich mit Rückwechsel max. 8Stk. ZG1-Zeichen mit 8Stk. ZG2-Zeichen mischen. Mischt man mehr läuft der FIFO-Puffer im i8275 über, der Anfang der Zeile geht verlohren und das Ende rutscht nach. -Auf ein Feldattribut darf nicht direkt ein Spezialzeichen (Quasi-Grafik) folgen, das Spezialzeichen erscheint sonst als normales Zeichen (Bit7 gelöscht). -Unter SCP wird der i8275 standardmäßig so programmiert, dass Feldattribute zusätzlich (zu ihrer Funktion) als Leerzeichen angezeigt werden. Zum Ausblenden dieser Leerzeichen müsste man den i8275 leider komlett neu initialisieren (direkter Portzugriff). -Der im Hintergrund laufende DMA-Transfer vom Zeichenspeicher zum i8275 ist übrigens auf 80 Zeichen/Zeile ausgelegt. Blendet man Feldattribute aus (keine Darstellung als Leerzeichen) erwartet der i8275 entsprechend bis zu 96 Zeichen/Zeile (dynamisch). D.h. man müsste den Zeichenspeicher völlig anders organisieren und/oder mit Schlusszeichen arbeiten, damit es nicht zu Verwerfungen auf dem Bildschirm kommt.
Gruß, Kai Dieser Beitrag wurde am 14.05.2026 um 14:16 Uhr von kaiOr editiert. |