Autor Thema: Cursorposition  (Gelesen 4418 mal)

bscreator

  • Gast
Gespeichert
« am: 26. March 2004, 08:58 »
Momentan bin ich beim Tastaturtreiber. Nun, mein Cursor wird, aus
welchen Gründen auch immer, nach dem Start meines Programms
ein paar Spalten nach rechts verschoben.
Um den Cursor an den Zeilenanfang zu setzen hab ich die Funktionen
0x02 und 0x03 (Cursor setzen, Cursor lesen) des Video-BIOS-Interrupts 0x10
verwendet. Allerdings bringt das nichts. Unten steht der Funktionscode:


*************************

SetCursortobegin:
mov ah,0x03        ;Funktion Cursorposition lesen
int 0x10           ;Seite in BH, Zeile in DH und Spalte in DL
mov ah,0x02        ;Funktion Cursorposition ändern
mov dl,0           ;Seite bleibt gleich, Zeile bleibt gleich,
                   ;nur Cursor soll auf Zeilenanfang (Spalte 0 Zeilenanfang) gesetzt werden
int 0x10
retn
************************

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #1 am: 26. March 2004, 14:48 »
wird nach dem Starten und bevor das problem auftritt ein String ausgegeben? Vielleicht hast du bei dem die Parameter falsch gesetzt... Damit eine neue Zeile dierekt an dem ersten Zeichen entsteht musst du ",13,10,0" an den String anhängen...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

bscreator

  • Gast
Gespeichert
« Antwort #2 am: 26. March 2004, 22:18 »
Das hab´ ich auch schon überprüft. TeeJay hat gemeint, dass das BX-Register, welches zuvor benutzt wurde, einen falschen Wert hat. Ich werds mal überprüfen.
Ach joachim_neu, danke für deine Message, aber alle meine zuvor ausgegebenen Meldungen enden mit diesen Parametern.

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #3 am: 27. March 2004, 11:07 »
oder du machst einfach einen string mit garnichts und hängst dann die parameter an, so mach ich immer, wenn nach einer ausgabe eines speicherblocks der cursor irgendwo in der mitte ist:

break db "",13,10,0

und den gibste dann einfach aus...
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

 

Einloggen