                           BRIEF DOCUMENTATION FOR

                    'inc/rxconio.h' and 'src/rxconio.c'

                            by  Generoso Martello
                            generoso@martello.com

                    02/05/1999 -- Catanzaro Lido (ITALY)


WHAT'S THAT?
=======================

This is an extension to Brexx built-in functions providing some of the commonly
used routines from 'lib/conio.r' and 'lib/ansi.r'.
It is meant to work with the 32-bit DOS version of Brexx I compiled.
It should be fully compatible with 'lib/ansi.r' by Vasilis N. Vlachoudis.
In order to use it in your programs in the place of 'lib/ansi.r' just comment
the line which loads the 'ansi.r' external library.
This command set doesn't need the ANSI.SYS driver to be loaded in your system.
I also supplied a rexx library 'lib/guiutils.r' which has a couple of functions
to implement text driven menus, lists, requesters, input boxes...
You can find a fully functioning example of 'lib/guiutils.r' application in
'progs/gudemo.r'.


COMMANDS LIST AND USAGE
=======================

call AnsiCls()
	Clears the screen.

call AnsiEraseEol()
	Erases from current cursor postition until the end of the line.

call AnsiDelLine()
	Erases the whole line under the current cursor position.

call AnsiInsLine()
	Inserts a new blank line under the current curser position.

call AnsiSaveCursor()
	Saves the current cursor position.

call AnsiLoadCursor()
	Restores the current cursor position to the last saved one.

mychar = GetCh()
	Stores in 'mychar' a value corresponding to the key hit from keyboard.
	It may returns '0' when a key needs 2 byte. See the following example:
		/*---*/
		mychar = GetCh()
		if c2d(mychar)=0 then do
			if c2d(mychar)=123 then say 'You just hit the "arrow up" key'
			else say 'You just hit some key from the keyboard'
		end
		else do
			if mychar='A' then say 'You just hit the "A" key'
			else say 'You just hit some key from the keyboard'
		end
		/*---*/

mychar = KbHit()
	Returns the value corresponding to the current pressed key (if any)
	and continue the execution of the rexx program.
	Here a brief example:
		/*---*/
		Do
			say 'You better hit the "E" key from the keyboard...'
			say '...or you will never get out from this loop!'
			if translate(KbHit)='E' then exit
		Loop
		/*---*/

curcol = WhereX()
currow = WhereY()
	Returns a number corresponding to the current column/row under the
	cursor.

call AnsiMode(mode)
	Sets the display type to 'mode'. 'mode' can be one of the following
	values:
		'LASTMODE'		---> The last selected mode
		'BW40' or '1'	---> B/W 40 columns display
		'C40'  or '0'	---> Color 40 columns display
		'BW80'		---> B/W 80 columns display
		'C80'  or '3'	---> Color 80 columns display
		'MONO'		---> Mono display
		'C4350'		---> 4350 color diplay

call AnsiAttr(mode)
	Sets the text attributes to 'mode'. 'mode' can be one of the following
	values:
		'NORMAL'
		'BOLD'
		'UNDERLINED'
		'BLINK'
		'REVERSE'
		'UNVISIBLE'

call AnsiSetCursor(type)
call SetCursor(type)
	Sets the cursor type to 'type'. 'type' can be one of the following
	values:
		'OFF'		---> No cursor visible on screen
		'SOLID'	---> Display cursor as a solid block
		'NORMAL'	---> Display cursor as a line

call AnsiCursorUp(n)
call AnsiCursorDown(n)
call AnsiCursorLeft(n)
call AnsiCursorRight(n)
	Moves the cursor from its current position by 'n' units up, down,
	left or right.

call AnsiColor(forecolor,backcolor)
	Sets the text color to 'forecolor' and if specified sets the background
	color to 'backcolor'.
	Possible values for 'forecolor' and 'backcolor' are:
		Foreground Colors:
			BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW, WHITE,
			BROWN or BOLDYELLOW, LIGHTGRAY or BOLDWHITE, DARKGRAY or BOLDBLACK,
			LIGHTBLUE or BOLDBLUE, LIGHTGREEN or BOLDGREEN, LIGHTCYAN or BOLDCYAN,
			LIGHTRED or BOLDRED, LIGHTMAGENTA or BOLDMAGENTA.
		Backgroun Colors:
			BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, YELLOW, WHITE.

call AnsiGoto(x,y)
	Sets the cursor position to the column 'x' and the row 'y'.
