Hi...
In MS-DOS, how could I hide the text cursor NOT the mouse cursor?..
Thanks..

Move the cursor to a position off the screen (row 30, column 90 say), or clear bit 6, and set bit 5, in the CRT controller's cursor start address register.

Hi...
In MS-DOS, how could I hide the text cursor NOT the mouse cursor?..
Thanks..

move the pointer out from screen as said above
and code for that is:

mov ah,2 ; this is BIOS video service for setting pointer location
mov bh,Video_page_number ; active video page is not always the same
mov dh,row ; row in HEXIMAL (e.g 3=3, 9=9 but 10=A 11=B until 15=F so 16=10)
mov dl,column ; column same as row
int 10h ; that is calling this BIOS Function

but you need active page number which you get like this:

mov ah,0fh
int 10h
returns active video page in register bh

well
i suggest you to make this whole code like this:

;-------------------------------------
jmp HideCursor
ActivePageNumber db ? ;allocates memory = 1byte
HideCursor:
mov ah,0fh ;BIOS Function Read Video mode
int 10h
mov ActivePageNumber,bh

mov ah,2
mov bh,ActivePageNumber
mov dh,1ah ;that is the 26th row which is out from screen
mov dl,51h ;that is the 81th column out from screen aswell
int 10h ;(actually only one should point out from screen, not both, not nessesary)
;-------------------------------------
check this reply.txt file for better view;)

don't forget get to bring cursor back into screen area before int 20h (terminating program)
because if you don't then program will crash

good luck there! :)

Attachments
move the pointer out from screen as said above
and code for that is:

	mov	ah,2      		   ; this is BIOS video service for setting pointer location
	mov	bh,Video_page_number  	; active video page is not always the same
	mov	dh,row     		; row in HEXIMAL (e.g  3=3, 9=9 but 10=A 11=B until 15=F so 16=10)
	mov	dl,column 		; column same as row
	int	10h      		; that is calling this BIOS Function

but you need active page number which you get like this:

	mov	ah,0fh
	int   	10h
returns	active video page in register bh

well
i suggest you to make this whole code like this:

;-------------------------------------
	jmp	HideCursor
ActivePageNumber	db	?	;allocates memory = 1byte
HideCursor:
	mov	ah,0fh			;BIOS Function Read Video mode
	int	10h			
	mov	ActivePageNumber,bh

	mov	ah,2
	mov	bh,ActivePageNumber
	mov	dh,1ah			;that is the 26th row which is out from screen
	mov	dl,51h			;that is the 81th column out from screen aswell 
	int	10h			;(actually only one should point out from screen, not both, not nessesary)
;-------------------------------------

don't forget get to bring cursor back into screen area before int 20h (terminating program)
because if you don't then program will crash

good luck there! :)
This article has been dead for over six months. Start a new discussion instead.