/*! \file vt100.h \brief VT100 terminal function library. */
//*****************************************************************************
//
// File Name	: 'vt100.h'
// Title		: VT100 terminal function library
// Author		: Pascal Stang - Copyright (C) 2002
// Created		: 2002.08.27
// Revised		: 2002.08.27
// Version		: 0.1
// Target MCU	: Atmel AVR Series
// Editor Tabs	: 4
//
// NOTE: This code is currently below version 1.0, and therefore is considered
// to be lacking in some functionality or documentation, or may not be fully
// tested.  Nonetheless, you can expect most functions to work.
//
///	\ingroup general
/// \defgroup vt100 VT100 Terminal Function Library (vt100.c)
/// \code #include "vt100.h" \endcode
/// \par Overview
///		This library provides functions for sending VT100 escape codes to
///	control a connected VT100 or ANSI terminal.  Commonly useful functions
/// include setting the cursor position, clearing the screen, setting the text
/// attributes (bold, inverse, blink, etc), and setting the text color.  This
/// library will slowly be expanded to include support for codes as needed and
/// may eventually receive VT100 escape codes too.
//
// This code is distributed under the GNU Public License
//		which can be found at http://www.gnu.org/licenses/gpl.txt
//
//*****************************************************************************

#ifndef VT100_H
#define VT100_H

#include "global.h"

// constants/macros/typdefs
// text attributes
#define VT100_ATTR_OFF		0
#define VT100_BOLD			1
#define VT100_USCORE		4
#define VT100_BLINK			5
#define VT100_REVERSE		7
#define VT100_BOLD_OFF		21
#define VT100_USCORE_OFF	24
#define VT100_BLINK_OFF		25
#define VT100_REVERSE_OFF	27

// functions

//! vt100Init() initializes terminal and vt100 library
///		Run this init routine once before using any other vt100 function.
void vt100Init(void);

//! vt100ClearScreen() clears the terminal screen
void vt100ClearScreen(void);

//! vt100SetAttr() sets the text attributes like BOLD or REVERSE
///		Text written to the terminal after this function is called will have
///		the desired attribuutes.
void vt100SetAttr(u08 attr);

//! vt100SetCursorMode() sets the cursor to visible or invisible
void vt100SetCursorMode(u08 visible);

//! vt100SetCursorPos() sets the cursor position
///		All text which is written to the terminal after a SetCursorPos command
///		will begin at the new location of the cursor.
void vt100SetCursorPos(u08 line, u08 col);

#endif
