Function 01h Set Cursor Type

set the size of the cursor or turn it off.

Time    Reg     Values                                      
entry   AH      01h 
	CH      bit values: 
		bits 0-4  top line for cursor in character cell 
		bits 5-6  blink attribute 
			  00    normal 
			  01    invisible (no cursor) 
			  10    slow      (not used on original IBM PC) 
			  11    fast 
	CL      bit values: 
		bits 0-4  bottom line for cursor in character cell 
return  none 

note

  1. ) The ROM BIOS default cursors are: monochrome mode 07h: start 11 end 12 text modes 00h-03h: start 6 end 7
  2. ) The blinking in text mode is caused by hardware and cannot be turned off, though some kludges can temporarily fake a nonblinking cursor
  3. ) The hardware cursor is not available in graphics mode
  4. ) One the EGA, MCGA, and VGA in text modes 00h-03h, the ROM BIOS accepts cursor start and end values as though the character cell were 8 by 8, and remaps the values as appropriate for the true character cell dimensions. This mapping is called cursor emulation. Function 01h Set Cursor Type - set the size of the cursor or turn it off note
  5. ) You can turn off the cursor in several ways. On the MDA, CGA, and VGA, setting register CH to 20h causes the cursor to disappear. Techniques that involve setting illegal starting and ending lines for the current display mode tend to be unreliable.
  6. ) Another method of turning off the cursor in text mode is to position it to a nondisplayable address, such as (X,Y)=(0,25) 7) Buggy on EGA systems - BIOS remaps cursor shape in 43 line modes, but returns unmapped cursor shape

Sample Code:

Asm\Lib\BIOS.INC -@BIOSVidCurSzSet MACRO first,last

Set43b.COM              ;Sets EGA 43 line mode with a block cursor
	MOV	AX,0003
	INT	10		;Int\10f\00 -03h  Set 80x25 16 color text
	MOV	AX,1112
	XOR	BX,BX
	INT	10		;Int\10f\11 -12h  Load 8x8 characters
	MOV	AH,01
	MOV	CX,0005
	INT	10		;Int\10f\01 Set block cursor
	RET