From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/CONTRIB/SNIP/cursor.c | 52 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100755 reference/C/CONTRIB/SNIP/cursor.c (limited to 'reference/C/CONTRIB/SNIP/cursor.c') diff --git a/reference/C/CONTRIB/SNIP/cursor.c b/reference/C/CONTRIB/SNIP/cursor.c new file mode 100755 index 0000000..ce5b04e --- /dev/null +++ b/reference/C/CONTRIB/SNIP/cursor.c @@ -0,0 +1,52 @@ +/*****************************************************************/ +/** CURSOR() **/ +/** ARGUMENTS: A char variable identifiny what to do with **/ +/** the cursor. **/ +/** RETURN: none **/ +/** **/ +/** DESCRIPTION: This function receives a character which **/ +/** tells it to do one of several things. **/ +/** Turn the cursor on or off, or save the **/ +/** cursor positon, or restore the position. **/ +/** **/ +/** BY Bill Wilkie, 1988 **/ +/*****************************************************************/ + +#include + +static int position; /* global to hold cursor postion */ + +void cursor(char tmp) +{ + union REGS inregs,outregs; /* cpu registers */ + + switch(tmp) + { + case 'h' : /* CURSOR OFF */ + inregs.h.ah = 1; /* set cursor size */ + inregs.h.ch = 0x20; /* set bit turns cursor off */ + int86(0x10,&inregs,&outregs); + break; + + case 's' : /* SAVE CURSOR POSITION */ + inregs.h.ah = 3; /* read cursor positon and size */ + inregs.h.bh = 0; /* from page zero */ + int86(0x10,&inregs,&outregs); + position = outregs.x.dx; /* store positon */ + break; + + case 'r' : /* RESTORE CURSOR POSITON */ + inregs.h.ah = 2; /* set cursor positon */ + inregs.h.bh = 0; /* on page zero */ + inregs.x.dx = position; /* at this old position */ + int86(0x10,&inregs,&outregs); + break; + + case 'o' : /* CURSOR ON */ + inregs.h.ah = 1; /* set cursor size */ + inregs.h.ch = 6; /* cursor start line */ + inregs.h.cl = 7; /* cursor end line */ + int86(0x10,&inregs,&outregs); + break; + } +} -- cgit v1.2.3-54-g00ecf