Man konnte für die zeichenbasierte Ausgabe zwei Methoden verwenden. Entweder das schon erwähnte Schreiben von Zeichen und Attribut in den Bildschirmspeicher (so habe ich mal einen
ANSI-Treiber zur Fernsteuerung erstellt, der hat einfach ein Diff daraus erstellt und in ESC-Sequenzen zur Terminalsteuerung umgesetzt, ich erinnere mich noch an ~11 ms Laufzeit pro Diff) oder zeichenweise über den Interrupt $21, wobei im Register A dann das Zeichen (Lowbyte, AL) sowie das Ausgabeziel (Highbyte, AH) kodiert war. Alternativ über $09 wobei man auch das Attribut mitgeben konnte.