Alex McHale wrote:
> Hi there,
> I realize that the following question isn't directly related to LinuxBIOS - but
>I'm hoping that someone out there can help me, nonetheless.
> I'm working on replacing some commonly used BIOS interrupts with my own code -
>most of which is easy enough (This is for a private project of my own that I am
>working on for non-school academic reasons) - prints, keyboard routines, disk
>routines, .., all fairly simple. But I've come to a small hitch.
> The set cursor position interrupt - 0x10,2. I have located the address in memory
>where the cursor position is stored, and have code right now to update that memory
>address. Unfortunately, in my work, it doesn't update the visual cursor cue on
>screen when that memory is updated. If I use a BIOS call to fetch keyboard data
>after I use *my* code that updates the cursor position in memory, the cursor will
>'jump' to that position when I start typing. Otherwise, it visually stays in its
>position.
> Could anyone help me with figuring out how to send whatever cue I need to send to
>refresh the visual cursor?
> As a side note: In DOS, using debug, if I write directly to the memory where
>cursor data is stored, it "instantly" moves the cursor as soon as I hit enter to
>register the 'e <addr> val'.
> Any assistance would be greatly appreciated.
>
> --
> Alex McHale
> http://theorigin.org/
> C/C++, Haskell, Perl, PHP, Python, Ruby
What you need to do is update the registers in the video card that draw the visible
cursor at
the same time you update the values in memory. Take a look at linux vga console code
for examples.
Cheers,
Jeremy