Text Mode Cursor: Difference between revisions

Jump to navigation Jump to search
1
[unchecked revision][unchecked revision]
m (→‎External Links: Remove the dead link notice, provide the link to archived page only)
(1)
Line 83:
ret
</source>
 
==Disabling The Cursor With the BIOS==
 
Moving the cursor with the [[BIOS]] is done through Int 0x10 (The general interrupt for screen functions) with AH set to 0x02. These are the registers used:
* AH = 0x01
* CH = 0x3f ; bits 6-7 are unused , if bit 5 set the cursor is disable (this bit may be cleared in the interrupt caller , see "Disabling The Cursor Without the BIOS" for safer way to disable the cursor) , bits 0-4 controll the cursor shape (if bits 0-4 all set the cursor is unvisiable regradless what's bit 5's state.)
 
And then Interrupt 0x10 and then vuala , there is no *VISIBLE cursor on the screen
 
*Even on GUI modes the cursor remains active so don't think about it to much.
 
==Disabling The Cursor Without the BIOS==
 
===Source in C===
<source lang="c">
/* void disable_cursor()
* by Elad Ashkcenazi
*/
void update_cursor()
{
 
outb(0x3D4, 0x0A);
outb(0x3D5, 0x3f); bits 6-7 must be 0 , if bit 5 set the cursor is disable , bits 0-4 controll the cursor shape (if bits 0-4 all set the cursor is unvisiable regardless what's bit 5 state.)
// cursor shape port to vga INDEX register
}
</source>
 
===Source in assembly===
 
<source lang="asm">
made by Elad Ashkcenazi
;=============================================================================
disable_cursor: pushfq
push rax
push rdx
 
mov dx,0x3d4
mov al,0xa ; index 0xa is the LOW cursor shape register
out dx,al
 
inc dx
mov al,0x3f ; bits 6-7 must be 0 , if bit 5 set the cursor is disable , bits 0-4 controll the cursor shape (if bits 0-4 all set the cursor is unvisiable regardless what's bit 5 state.)
out dx,al
pop rdx
pop rax
popfq
ret
</source>
 
 
==See Also==
Line 90 ⟶ 139:
* http://www.bookcase.com/library/dos/ints/int10.html (dead link)
* https://web.archive.org/web/20120324083032/http://www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/Chapter_13/CH13-2.html
* http://www.osdever.net/FreeVGA/vga/vga.htm
 
[[Category:Video]]
[[Category:VGA]]
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu