BIOS-Interrupts im Real Mode
-
hallo,
es geht um die bios-interrupts im real mode.
ich habe folgende seite gefunden: http://wiki.osdev.org/BIOS
da steht eigentlich alles, ich habe nur ein verständnisproblem.
beispiel: wenn ich ein zeichen über die tastatur einlesen will, dann mach ich
; ... mov ah,0 int 0x16 ; ...
das eingelesene zeichen wir dann in al gespeichert.
jetzt hab ich aber das problem, dass es noch mehr interrupts gibt, bei denen das nicht so logisch ist.
beispiel: ich will den cursor neu positionieren. ich brauche das interrupt 0x10 mit ah 3:
; ... mov ah,3 int 0x10 ; ...
und genau da ist das problem: es passiert nichts. ich nehme stark an, dass ich in einem anderen register/byte die zeile, bzw. die genaue cursor postion angeben muss.
übrigens ist das bei den meisten anderen interrupts auch so:
int 0x11
da wird die hardware ermittelt, das problem ist nur: was genau wird da ermittelt, und wo wird es gespeichert???
-
-
? - ? - ? schrieb:
... jetzt hab ich aber das problem, dass es noch mehr interrupts gibt, bei denen das nicht so logisch ist.
beispiel: ich will den cursor neu positionieren. ich brauche das interrupt 0x10 mit ah 3:
; ... mov ah,3 int 0x10 ; ...
und genau da ist das problem: es passiert nichts. ich nehme stark an, dass ich in einem anderen register/byte die zeile, bzw. die genaue cursor postion angeben muss.
Offensichtlich ist die Liste nicht nur unvollständig, sondern auch falsch.
Der Tip von rhkb ist also besser (http://www.ctyme.com/intr/int-10.htm)Auch laut PC-Intern wird der Cursor mit Funktion 02h versetzt.
AH = 02h
BH = Bildschirmseite
DH = Bildschirmzeile (0 ..24)
DL = Bildschirmspalte (0 ..79)Das ganze hängt vom Modus ab in dem sich die Grafikkarte befindet.