Autor Thema: Cursor im Textmodus deaktivieren  (Gelesen 6806 mal)

woigl

  • Beiträge: 93
    • Profil anzeigen
    • http://www.nogos.org
Gespeichert
« am: 23. August 2005, 18:10 »
Kann mir jemand einen Tip geben wie ich den Cursor im TextModus deaktivieren kann? so daß ich diesen lästigen Unterstrich nicht habe?

bzw. auch wie ich ihn blinken lassen kann?

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #1 am: 24. August 2005, 02:36 »
Blinken KÖNNTEST du ihn mit dem TimerInterrupt oder soetwas lassen. Ist aber sehr aufwendig. Weiß nicht, ob das auch auf Hardwarebasis geht.
Bei dem Deaktivieren hatten wir schoneinmal was. Das ging über Ports. Musste mal die Suche benutzen, ich glaube Stefan2005 hatte damals damit ein Problem...
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,...

woigl

  • Beiträge: 93
    • Profil anzeigen
    • http://www.nogos.org
Gespeichert
« Antwort #2 am: 25. August 2005, 10:58 »
Also leider habe ich da nichts gefunden...

hat jemand einen Tip für mich? Wäre sehr wichtig für mich...

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #3 am: 25. August 2005, 20:26 »
Probier mal im Hardwareregister 0x0a (Cursor Start) des CRT Controller das 5. Bit zu setzen , das soll fürs Cursor deaktivieren verantwortlich sein.

Das geht ungefähr so:
( Immer am Port 0x3d4 die Adresse schreiben und dann die Daten von Port 0x3d5 lesen/schreiben )

mov dx, 0x3d4
mov al, 0x0a
out dx,al
inc dx
in al,dx

bts al,5
push ax
mov al,0x0a
dec dx
out dx,al
inc dx
pop ax
out dx,al


Habs nicht getestet (keine Lust ;-) )
Agieren statt Konsumieren!

woigl

  • Beiträge: 93
    • Profil anzeigen
    • http://www.nogos.org
Gespeichert
« Antwort #4 am: 25. August 2005, 21:54 »
wie würdest du es mit diesen Befehlen machen?

ich verwende diesen Code um den Cursor zu versetzen:
outportb(0x3D4, 14);
outportb(0x3D5, temp >> 8);
outportb(0x3D4, 15);
outportb(0x3D5, temp);

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #5 am: 26. August 2005, 00:51 »
ich hoffe mal du hast auch eine inportb funktion ;-)

ist aber simpel :

unsigned char temp;

outportb(0x3D4, 0xa);
temp = inportb(0x3D5);

temp = temp | (1 << 5);

outportb(0x3D4, 0xa);
outportb(0x3D5, temp);
Agieren statt Konsumieren!

woigl

  • Beiträge: 93
    • Profil anzeigen
    • http://www.nogos.org
Gespeichert
« Antwort #6 am: 26. August 2005, 08:35 »
Cool, funktioniert!!

Gibts da eigentlich irgendwo im Netz eine Spezifikation was andere Bits und so bedeuten?

n3Ro

  • Beiträge: 288
    • Profil anzeigen
Gespeichert
« Antwort #7 am: 26. August 2005, 18:28 »
Also ich hab das ganze Zeug seit Jahren auf meiner Festplatte, irgendwann hab ichs mal auf irgendwelchen Uni FTP Servern gefunden.
In google hab ich teile wiedergefunden:
http://www.cs.ucla.edu/~kohler/class/04f-aos/ref/hardware/vgadoc/

Dort würde z.B. sehr viel in der VGAREGS.TXT stehen
Agieren statt Konsumieren!

 

Einloggen