Umwandlung von Zahlensystemen

Wie wäre es mit der Adresse 0xB8000? Das ist nämlich der Video-RAM (Die Zeichen in diesem Bereich werden auf dem Bildschirm ausgegeben).
Na dann lass doch deine Funktion die Ausgabe einfach an diese Adresse schreiben und nicht an irgendeine zufällige Stelle…

Dort sollen sie vorerst hin, denn mein OS soll vorerst mal Ausgeben können, was es so macht, denn sonst kann ich Bugs schlecht finden. (Im schlimmsten Fall könnte ich Hardware schrottreif machen).
Wozu gibt es denn virtuelle Maschinen?

Grüße,
Matthias
 
Du hast schon recht, aber wenn die virtuelle Maschine abstürtzt, dann weiss ich noch nicht, wo der Bug ist. Wenn die letzte Ausgabe ein "Error: Stack overflow! System halted" ist, dann dauert es keine ganze Nacht einen Fehler zu finden. (Ich habe schon Erfahrung mit solchen Fehlern... )

Das Problem ist, dass ich nur eine Ziffer ganz oben am linken Bildschirmrand ausgegeben bekomme. Wenn ich zum Beispiel 123 dezimal in einen Zahlstring der basis 10 umwandle, dann gibt er mir nur die erste Stelle aus (von 123 1, von 234 2, u.s.w.).
 
Zuletzt bearbeitet:
Erstens gibt es die Möglichkeit, den String wie einen Returnwert auf den Stack zu pushen, natürlich mit einer Längenangabe.
Zweitens scheint mir das Problem der Ausgabe in der Ansteuerung des Video-RAMs zu liegen. Bist du sicher, dass die Ausgabe auch in vollem Umfang refresht wird? Wahrscheinlich bekommt dein System gar nicht mit, dass der Videopuffer in entsprechendem Maße aktualisiert werden muss.

PS: Langsam scheint mir die Diskussion ins Off-Topic abzugleiten.
 
Ich hab das Problem gelöst! Die Funktion arbeitet gut, nur muss ich noch die selbstgeschriebene printf() Funktion überarbeiten, da diese bisher nur %c richtig ausgibt.
 
Zurück