MN> Anyone have any code on hiding the cursor and then bringing it back. MN> -+- Mike Normand -+- I've seen many replies to this but all suffer the same disadvantage: they all assume you know the size of the cursor. A little bit debugging BASIC reveals what's up (by the way, you'll find it described in some good books): you have to set bit 5 For the start line and the cursor will disappear since this value is not allowed. To get the cursor back again, clear bit 5 again. Use this solution, if you Really just want to turn on/off the cursor. CursorOn/CursorOff do *not* change the cursor shape!!! and do *not* need an external Variable to manage this. The PUSH BP / POP BP is needed For some *very* old BIOS versions using CGA/ monochrome :-( display, that trash BP during an INT 10h. If you just want do support EGA/VGA :-) and better, just push 'em out. ----------------------------------------------------- Procedure CursorOff; Assembler; Asm push bp { For old BIOSs } xor ax, ax mov es, ax mov bh, Byte ptr es:[462h] { get active page } mov ah, 3 int 10h { get cursor Characteristics } or ch, 00100000b mov ah, 1 int 10h { set cursor Characteristics } pop bp { restore bp For old BIOSs } end; Procedure CursorOn; Assembler; Asm push bp { old BIOSs like this... } xor ax, ax mov es, ax mov bh, Byte ptr es:[462h] { get active page } mov ah, 3 int 10h { get cursor Characteristics } and ch, 00011111b mov ah, 1 int 10h { set cursor Characteristics } pop bp { ...and this, too } end;