mirror of
https://github.com/reactos/reactos.git
synced 2024-11-07 07:00:19 +00:00
2ca9fcd3b0
svn path=/trunk/; revision=65460
90 lines
3.9 KiB
Text
90 lines
3.9 KiB
Text
08/08/96 - John L. Miller, johnmil@cs.cmu.edu, johnmil@jprc.com
|
|
|
|
FILES INCLUDED:
|
|
00readme.txt - this file
|
|
VT100.H - Definitions for VT-100 emulator.
|
|
VT100.C - Front end parsing code for VT-100 emulator
|
|
CONSOLE.C - Back-end code to allow VT-100 in WinNt/Win95 console
|
|
|
|
Many UNIX users take terminals for granted, as something you get for free
|
|
with the operating system. Unfortunately, this isn't the case for many
|
|
non-unix operating systems, especially PC-based ones. After a number of
|
|
projects, I decided it would be nice if there was source publicly available
|
|
for doing VT-100 emulation.
|
|
|
|
The files included with this distribution are not a complete implementation
|
|
of VT-100 terminal emulation, but do provide complete enough coverage to
|
|
use many vt-100 functions over the network. For instance, its enough to
|
|
use EMACS to edit, or to connect up to your favorite mud with ANSI color
|
|
and graphics characters.
|
|
|
|
The VT-100 emulator is broken into two parts. The first is the front end,
|
|
vt100.c and vt100.h. These files were written to be fairly device-independant,
|
|
though admittedly if you're running under a 16-bit operating system instead
|
|
of a 32-bit, you might need to change some of the 'int' values to 'long.'
|
|
Otherwise, it should work 'as-is'.
|
|
|
|
The second part is a back-end. The back-end is responsible for doing the
|
|
workhorse activities. The front-end parses a character stream, and decides
|
|
whether to clear a part of the screen, or move the cursor, or switch fonts.
|
|
Then it calls routines in the back-end to perform these activities.
|
|
|
|
The back-end functions are, for the most part, very straight forward, and
|
|
quite easy to implement compared to writing a vt-100 emulator from scratch.
|
|
CONSOLE.C is a back-end for use in console (command, dos) windows under
|
|
Windows 95 and Windows NT. This console vt-100 emulator is also being used
|
|
in my TINTIN-III port and kerberized encrypted telnet port.
|
|
|
|
|
|
TO USE THIS VT-100 EMULATOR:
|
|
|
|
First, it's intended to be linked directly into source code. You'll need
|
|
to change printf's and puts' in your source code to call vtprintf() and
|
|
vtputs() instead. You can add additional functions to vt100.c as you see
|
|
fit to handle other output functions like putchar() and write(). Another
|
|
routine you may want to use is vtProcessedTextOut(), which accepts a
|
|
buffer to output, and a count of characters in that buffer.
|
|
|
|
Second, you need to make sure that your source code calls vtInitVT100()
|
|
before it does ANYTHING else. This initializes the vt-100 emulator.
|
|
|
|
Third, if you want to use this VT-100 emulator with anything besides
|
|
Windows NT and Windows 95 consoles, you'll need to implement your own
|
|
back end. The list of functions you will need to supply, as well as what
|
|
they need to do is contained in vt100.h. The list (minus descriptions)
|
|
is as follows:
|
|
|
|
int beInitVT100Terminal();
|
|
int beAbsoluteCursor(int row, int col);
|
|
int beOffsetCursor(int row, int column);
|
|
int beRestoreCursor(void);
|
|
int beSaveCursor(void);
|
|
int beSetTextAttributes(int fore, int back);
|
|
int beRawTextOut(char *text, int len);
|
|
int beEraseText(int rowFrom, int colFrom, int rowTo, int colTo);
|
|
int beDeleteText(int rowFrom, int colFrom, int rowTo, int colTo);
|
|
int beInsertRow(int row);
|
|
int beTransmitText(char *text, int len);
|
|
int beAdvanceToTab(void);
|
|
int beClearTab(int col);
|
|
int beSetScrollingRows(int fromRow, int toRow);
|
|
int beRingBell(void);
|
|
int beGetTermMode();
|
|
int beSetTermMode(int newMode);
|
|
|
|
For details on what each of these does, read the descriptions of each
|
|
function included in vt100.h, and read over CONSOLE.C for examples. I've
|
|
included copious comments in all of these files to try to make them as
|
|
easy to use as possible.
|
|
|
|
In any case, it should be easier than writing a VT-100 emulator from
|
|
scratch.
|
|
|
|
KNOWN BUGS -
|
|
|
|
o Many features of VT-100 emulation aren't implemented. This includes
|
|
support for graphics character set 0 and many of the
|
|
answerback functions.
|
|
|
|
Well, good luck!
|
|
|