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???



  • Statt vieler Worte:

    http://www.ctyme.com/rbrown.htm

    viele grüße
    ralph



  • ? - ? - ? 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.


Anmelden zum Antworten