Der Martin: C Sprungbefehl für Consolenausgabe gesucht

Beitrag lesen

Hallo,

ich erinnere mich, dass es einen Befehl gab mit dem ich in TurboPascal auf der Consolenausgabe in eine Bestimmte Zeile springen  konnte und dort den Text überschreiben konnte. Ich glaube er hieß goto(Zeile,Spalte);
Der Befehl hieß gotoXY()

stimmt, jetzt entsinne ich mich auch.

und wirkte über das DOS-API (INT 21h)

Nein. Der DOS-Funktionsumfang kannte sowas nicht. Die entsprechende Bibliothek von Turbo Pascal und auch die conio.lib von Borland C haben direkt den Interrupt 10h aufgerufen - das ist der Dispatcher für (fast) alle Funktionen des EGA/VGA-BIOS.

Es war also eine OS-spezifische Sache, bzw. sogar von der Hardware abhängig.

Von der Hardware abhängig stimmt irgendwie - wobei diese Schnittstelle im EGA/VGA-Standard exakt spezifiziert ist und seit gefühlten 20 Jahren von allen Grafikkarten unterstützt wird.
Dadurch, dass direkt BIOS-Funktionen aufgerufen wurden, ging diese API quasi an DOS vorbei; daher stimmt "OS-spezifisch" nur insofern, dass das OS diese Direktaufrufe zulassen muss. Die Methode hätte beispielsweise unter OS/2 im Textmodus auch funktionieren können, und sie würde sogar in einer Embedded-Anwendung funktionieren, die gar kein OS im heutigen Sinn hat.

Ciao,
 Martin

--
Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
  (wahsaga)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(