VOGONS


First post, by markhor

User metadata
Rank Newbie
Rank
Newbie

Hi.

I am digging deep into dosbox internals and encountered the following problem (maybe because of my lack of BIOS hardware knowledge and technical skills): in DosBox console, "_" cursor blinks with some frequency. Where is that frequency set; besides, what is the mechanism of drawing the cursor?

I am not very familiar with int10 interruptions or alike, please explain it in detail 😀

Thank you very much for your answers.

Reply 1 of 5, by Yushatak

User metadata
Rank Member
Rank
Member

If you don't find a source-changes-based solution, there are TSRs that modify this as well as cursor shape, etc.

I've been looking at mouse code extensively for the last few days and I can say that it's probably in mouse.cpp, toward the lower 3rd of the code, and will deal with M_TEXT being true (i.e., "is a text mode cursor"). That's about all the help I can give without going digging myself.

Reply 2 of 5, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

it's not in mouse.cpp.

It blinks every 8 frames (in vga_draw.cpp) (cursor.count&0x8)
So the speed depends on the fps of the emulated video mode (usually 60 or 70 Hz)
so 7.5 or 8.75 Hz

Water flows down the stream
How to ask questions the smart way!

Reply 3 of 5, by markhor

User metadata
Rank Newbie
Rank
Newbie

Thank you!

Reply 4 of 5, by emendelson

User metadata
Rank Oldbie
Rank
Oldbie

For the record (and if anyone cares), here's, NoBlink Accelerator, the best cursor-control software that I ever saw, and I looked at a lot of these:

http://www.columbia.edu/~em36/noblink.html

This is a fully legal posting, specifically authorized by the original author of the program, as described on the linked page.

Reply 5 of 5, by Harekiet

User metadata
Rank DOSBox Author
Rank
DOSBox Author

On regular VGA hardware there's no way to change the blink rate either as far as i know. We just use the same standard vga interval which is like qbix says dependent on the framerate