Autor Thema: Frage zu farbiger Textausgabe  (Gelesen 4481 mal)

Cool-Andy

  • Gast
Gespeichert
« am: 04. November 2009, 20:05 »
Ich muss mich wal wieder mit einer wahrscheinlich totalen Anfängerfrage melden:
Ich will meine Textausgabe im Real Mode farbig machen und habe das bisher so probiert:
; ...
mov si, string
mov bx, 07h
call textout
;...
textout:
lodsb ; Byte laden
or al, al
jz short textoutend         ; wenn Byte=0, dann zu "textoutend" springen
mov ah, 0x0E ; Funktion 0x0E
int 0x10 ; Interrupt 0x10 Ausführen (Textausgabe)
jmp textout ; nächstes Byte bearbeiten

textoutend:
retn ; Funktion beenden
;...
string db "Hello World",10,13,0
Die Ausgabe bleibt leider wie immer hellgrau auf schwarz. Habt ihr eine Idee was ich falsch mache?  :?

Vielen Dank schon mal im Vorraus!

Cool-Andy

  • Gast
Gespeichert
« Antwort #1 am: 05. November 2009, 12:54 »
Hat den niemand eine Idee?

DerHartmut

  • Beiträge: 236
    • Profil anzeigen
    • Mein Blog
Gespeichert
« Antwort #2 am: 05. November 2009, 13:13 »
Die Funktion 0x0E erwartet in BL die Farbe, allerdings für den Grafikmodus. Probiere es mal mit der Funktion 0x09, dieser erwartet in:

AH=09h
BH=Nummer der Bildschirmseite
CX=Anzahl der Wiederholungen
AL=ASCII - Code
BL=Attribut / Farbe

Für die einzelnen Farbcodes und die Textausgabe in C und im Protected Mode solltest du dir folgenden Artikel durchlesen ;)
$_="krJhruaesrltre c a cnp,ohet";$_.=$1,print$2while s/(..)(.)//;
Nutze die Macht, nutze Perl ;-)

Cool-Andy

  • Gast
Gespeichert
« Antwort #3 am: 05. November 2009, 17:45 »
Danke, das war was ich gesucht habe!  :-D

 

Einloggen