Lowlevel

Lowlevel => Lowlevel-Coding => Thema gestartet von: T0ast3r am 21. April 2005, 18:12

Titel: Meldungen ausgeben
Beitrag von: T0ast3r am 21. April 2005, 18:12
Hi!
Kennt jemand ne Funktion im Interrupt 10h, mit der ich einen Text ausgeben kann??
Oder bzw. einen Buchstaben??
Ich brauche eben ein BIOS Interrupt um eine Meldung auszugeben.
Muss ich dann eigentlich auch hochscrollen??
Kann mir jemand einen (kommentierten) Code geben???
Titel: Meldungen ausgeben
Beitrag von: Jidder am 21. April 2005, 19:01
afaik gibt es dafür keine int 0x10 funktion.

dafür aber 1000 selbst zusammengeschusterte funktionen, die alle in etwa so aussehen:

; input: ds:si -> null terminierter string
print_str:
lodsb                               ; nächstes zeichen nach al laden
or al, al                           ; ist al = 0?
jz short print_str_done             ; ja => jmp print_str_done
mov ah, 0x0E                      
int 0x10                            ; int 10h, function 0Eh - Teletype Output (zeichen in al ausgeben)
jmp short print_str                 ; noch ein zeichen lesen
print_str_done:
ret

scrollt automatisch
Titel: Meldungen ausgeben
Beitrag von: crashmakerMX am 22. April 2005, 10:20
Zitat von: PorkChicken
afaik gibt es dafür keine int 0x10 funktion.

dafür aber 1000 selbst zusammengeschusterte funktionen, die alle in etwa so aussehen:

; input: ds:si -> null terminierter string
print_str:
lodsb                               ; nächstes zeichen nach al laden
or al, al                           ; ist al = 0?
jz short print_str_done             ; ja => jmp print_str_done
mov ah, 0x0E                      
int 0x10                            ; int 10h, function 0Eh - Teletype Output (zeichen in al ausgeben)
jmp short print_str                 ; noch ein zeichen lesen
print_str_done:
ret

scrollt automatisch


wenn es keine int 10h funktion dafür gibt, welche int 10h funktion benutzt dein code dann?  :wink:
Titel: Meldungen ausgeben
Beitrag von: zacK am 22. April 2005, 11:30
er meint damit das es keine funktion gibt mit dem man ganze strings ausgeben kann... o.O
Titel: Meldungen ausgeben
Beitrag von: crashmakerMX am 22. April 2005, 16:20
Zitat von: zacK
er meint damit das es keine funktion gibt mit dem man ganze strings ausgeben kann... o.O


schon klar. aber die frage war AUCH nach einer funktion für einzelne zeichen  :lol:
Titel: Meldungen ausgeben
Beitrag von: Another Stupid Coder am 22. April 2005, 16:22
rtfm wie's so schön heißt :) Steht nämlich im Lowlevel Magazin #1 :)
Titel: Meldungen ausgeben
Beitrag von: DarkThing am 22. April 2005, 19:32
1 Zeichen:

; input: al ->Zeichencode
print_char:
    mov ah, 0x0E             ; Funktionsnummer
    mov bx, 0x0007          ; Bildschirmseite 0 und Farbe (fehlt IMHO auch im Code oben)
    int 0x10                     ; BIOS-Interrupt
ret

Müsste so gehen.
Titel: Meldungen ausgeben
Beitrag von: Another Stupid Coder am 23. April 2005, 16:38
13, 10 = \n und \r