Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: WhiteDragon am 13. September 2005, 19:20
-
Hallo zusammen,
mein Bootloader schaltet den 80x50-Textmodus über das BIOS über folgende Befehlsfolge ein:
; Zuerst Modus 03 setzen (80x25).
mov ax, 0003h
int 10h
; Dann 8x8-Font laden.
xor bx, bx
mov ax, 1112h
int 10h
In Bochs funktioniert das prima. Auf meinem LowTech-Laptop (3 Jahre altes IBM-Notebook, fast nur Standardhardware enthalten) klappt es ebenfalls ohne Probleme.
Auf meinem PC allerdings (Radeon 9600-Series-Grafikkarte) schaltet er bei dieser Befehlsfolge (wie ich annehme ist sie es) kurz den Bildschirm ab und wenn er sich kurz darauf wieder einschaltet habe ich einen leeren Bildschirm und links oben meinen Hardwarecursor. Die Ausgaben, die ich ab 0xb8000 tätige sind nicht zu sehen. Und außerdem schalte ich den Hardwarecursor ab, er sollte also eigentlich nicht blinken.
Kann mir jemand einen Tipp bzw. eine Erklärung geben? Vielleicht ist meine Befehlsfolge auch zu spezifisch, keine Ahnung...
Gruß und Dank im Voraus!
-
Es gibt meines Wissens nach auch eine direkte Code-Folge, die dir eine Auflösung von 80x50 schaltet, ohne das Font neu zu laden. Die solltest du mal versuchen, da musste glaub ich nur nen anderen Wert für AX angeben bei:
; Zuerst Modus 03 setzen (80x25).
mov ax, 0003h
int 10h
Grüße,
J!N
-
Ja, das hab ich auch mal gehört, aber nicht gefunden. Kennt die wer?
-
Hat keiner eine Idee?
-
Versuchs mal hier: http://www.ctyme.com/intr/int-10.htm
Ich kann aber nicht gerantieren, dass das da steht.
-
;kleinen video-modus aktivieren
mov ah,0x11
mov al,0x12
int 0x10
Das habe ich scheinbar damals verwendet, versuchs mal.
-
;kleinen video-modus aktivieren
mov ah,0x11
mov al,0x12
int 0x10
Das habe ich scheinbar damals verwendet, versuchs mal.
Naja, das ist ja genau das, was ich oben geschrieben habe... ;-)
-
naja, ich setz den modus davor nichtmehr.
-
Ist ein Argument - ich probier's direkt mal aus!
-
http://www.tu-chemnitz.de/informatik/HomePages/RA/lehre/mop/dos_stuff/tabelle2.html#tab25
-
naja, ich setz den modus davor nichtmehr.
Das dürfte nichts bringen weil der Modus standartmäßig 3 ist. Ob du ihn dann noch einmal setzt dürfte ziemlich egal sein. Aber beim mov ax,1112h
mov bl,Zeichentabelle
int 10h
soll in bl eine Zeichentabelle angegeben werden. Ich weis jetzt nicht genau was dies bedeutet aber vielleicht muss diese angegeben werden. Ich probiere den Code gleich mal bei mir aus. Da ich aber nicht genau weis was in bl rein muss setzte ich ihn auch auf NULL. Aber bei manchen PC's ist dies vielleicht egal und bei manchen nicht. Wenn jemand die Bedeutung kennt kann er sie ja erklären. Bis dann.
PS: Fällt mir gerade ein das ich den Modus mit 8x8 auch mal in meinem OS hatte. Diesen dann aber rausgenommen habe, weil ihn nicht alle PC's korregt angezeigt haben.
-
Hi,
ich find's super, dass sich nach über einem Monat noch jemand zum Beitrag meldet, aber was genau willst du mir mit dem Link sagen?
Das Problem habe ich übrigens noch immer nicht lösen können, leider...
Gruß!