Tausend Sterne

zu dem Titel fällt mir jetzt spontan ein *extremst* kitschiges Kinderlied ein. Aber das ist ne ganz andere Geschichte. Vielmehr geht es um eines der Basic Programme die einem so einfallen, wenn einem sonst nichts originelles einfällt. Wenn Leute vor nem Klavier stehen und ihnen fällt sonst nix ein, tippen sie den Flohwalzer. Wenn Leute vor nem Basic-Computer stehen, tippen sie vielleicht sowas:

10 FOR I=1 TO 1000

20 PRINT „*“;

30 NEXT I

Soweit sogut. 1000 Sterne, auf einen Bildschirm ausgegeben. Aber was passiert, wenn man das „;“ vergisst? Dann bekommt jeder Stern einen Zeilenvorschub.

Aber was passiert, wenn man das „;“ vergisst und das Ausgabegerät ein uraltes, Intel 8080 basiertes Terminal – ohne Handshake – ist? Dann kommt jenes Terminal irgendwann ins Schwitzen. Weil ein Scrollen des gesamten Bildschirminhalts für jenen uralten i8080, der mit ca. 2MHz läuft die absolute Härte ist.

Der langen Rede kurzer Sinn:

Ich hab genau das die Tage *ausversehen* gemacht. Rein zufällig hab ich zur gleichen Zeit auch noch im „CP/M Alteration Guide“ gestöbert. Und da kam „rein zufällig zum Quadrat“ eine Erkenntnis zustande:

1) So ein altes Terminal, auch wenn es mit der Baudrate normalerweise mithalten kann, ist beim Scrollen irgendwann überfordert.

2) im CP/M Alteration Guide wird genau dieses Problem an einer Stelle mal kurz angerissen. Dort wird empfohlen: in der Zeichenausgabe-Routine nach Ausgabe eines LF eine Wartezeit einbauen.

Hab ich dann jetzt so gemacht – und jetzt passt alles. Allerdings muss ich gestehen: wenn ich nicht so ein altes Terminal zum Testen zur Verfügung gehabt hätte wär ich niemals nicht auf die Idee gekommen dass es da ein Problem geben könnte…