Zeichen ausgeben mit Zeichen- und Hintergrundfarbe

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Zeichen ausgeben mit Zeichen- und Hintergrundfarbe

Beitragvon Quicks3 » Donnerstag 21. April 2005, 11:49

Hi

Ich stecke noch in den Assembler-Kinderschuhen und bin gerade dabei mir einen kleinen DisplayManager zu basteln.

Ich möchte eigentlich einfach nur ein Zeichen auf dem Bildschirm ausgeben, das sowohl eine Zeichenfarbe, als auch eine Hintergrundfarbe hat.

Ich benutze den Videointerrupt 10h und hab den Videomodus auf 12h gestellt (Grafik)

Ich hab jetzt alle mir erdenklichen Sachen durchprobiert.
Fordergrundfarbe(Zeichenfarbe) oder Hintergrund des gesamten Bildschirms sind kein thema... aber ich bekomme nie eine Hintergrundfarbe für dieses eine Zeichen hin. :(

Hat jemand einen Plan wie das geht ?
Bin für Hilfe sehr dankbar.

viele grüsse
Quicks
Quicks3
Newbie
 
Beiträge: 3
Registriert: Donnerstag 21. April 2005, 11:41

Beitragvon crack » Donnerstag 21. April 2005, 23:16

Ja welche Funktion des Video interupt bnenutz Du?
Schau mal da rein:
http://www.hvviehof.de/download/colorbar/colorb_2.asm
Das hab Ich so ein Farbbalkentestbild realisiert, das könnte dir auf die sprünge helfen, stehe für Rückfragen gerne zur Verfügung.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Beitragvon crack » Freitag 22. April 2005, 10:14

Hab grad noch mal drüber nachgedacht, bei der Bildschirmausgabe wird mit BL die Hintergrund und Zeichenfarbe gesetzt: unteres Nibble (Halbbyte): Zeichenfarbe, oberes Nibble: Hintergrund, z.b. 05H Zeichenfarbe Magenta auf schwarzem Hintergrund oder 10H Schwarzes Zeichen auf weissem Hintergrund, u.s.w.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Beitragvon Quicks3 » Freitag 22. April 2005, 12:47

hiho

erstmal danke für die hilfe :)

genau das mit den 2 nibbles hab ich probiert.
aber ich glaub ich bin zu blöd dazu :x

ich habe hier 2 verschiedene dokus und beide sagen etwas unterschiedliches.
die eine meint man könnte die fkt. 09h des interrupts 10h wie folgt benutzen:
AH: Funktion
AL: Zeichen
BH: Page
BL: Attribut
Im grafik modus entspricht das BX register folgendem:
BH: Hintergrundfarbe
BL: Vordergrundfarbe

Ich mache also (im Video-Mode 12h):
mov ah, 09h
mov al, 'a'
mov bh, 01h ;Hintergrund blau
mov bl, 0Eh ;Zeichen gelb
int 10h

Ergebnis: gelb auf schwarz :evil:

die andere doku sagt das mit den 2 nibbles.
Und das sopwohl bei fkt 09h und 0Ah:

AH: Funktion
AL: Zeichen
BH: Page
BL: Bits 7-4: HG-Farbe, Bits 3-0: VG-Farbe

Ich mache also (im Video-Mode 12h):
mov ah, 09h ;oder 0Ah, ganz egal
mov al, 'a'
xor bx, bx
mov bl, 01h ;Hintergrund blau
shl bx, 4
and bl, 0Eh ;Zeichen gelb
int 10h

hab statt dem shift auch schon "mov bl, 1Eh" oder "mov bx, 001Eh" probiert

Ergebnis: Gelb auf schwarz an komischer stelle auf dem Bildschirm


Ich kanns leider nicht besser beschreiben :(

Hab ein bisschen gegoogelt, aber alles was ich gefunden habe ist ein DisplayManager, der die Zeichen als Pixelmatrix darstellt...
...*vogel-zeig* Man muss in Assembler zwar viel selber machen, aber Zeichen mit Hintergrund muss es doch geben :(

*verzweifel*

viele grüsse
Quicks
Quicks3
Newbie
 
Beiträge: 3
Registriert: Donnerstag 21. April 2005, 11:41

Beitragvon crack » Freitag 22. April 2005, 16:18

Hm,

rein technisch sieht das so aus das unter Dos diese GrafikFunktionen vom Bios und Treiber der Grafikkarte bereitgestellt werden. Und die muss 'Vesa' Kompatibel sein. Unter Windows wird die Grafikkarte über die DirektX Schnittstelle angesteuert, aber die schliesst in der Regel die 'Vesa Kompatibilität' mit ein - sonst würden keine Dos Spiele unter Windows laufen. Vielleicht könnte dir der Hersteller deiner Grafikkarte weiterhelfen.
Ich werde aber mal in meinen älteren Scripten nachschauen ob Ich nicht was finde was funktioniert, Ich denke dein Prob. kann gelöst werden :wink:
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf


Zurück zu Assembler

 


  • { RELATED_TOPICS }
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron