[ C++ RCOS Home | RCOS.java Home | RCOS Home | David's Home ]
Name: |
tty |
Comment: |
Like all good RCOS Device Drivers, tty is based on the abstract class - meaning tty's constructor must invoke port's constructor before it (itself) runs AND we must overload port's pure virtual function "RxPort" for receiving messages from the switcher (Kernel). |
Collaborators: |
class tty : public port {
char *pVmem; // array of chars for "Video RAM"
UINT16 uDest, uCnt; // who wants 'em and how many they want
UINT16 nBgnd, nFgnd; // Background and Foreground colors
INT16 nEscape; // > 0 while processing ANSI sequence
INT16 n1, n2, ddy; // Esc seq numerics and top pixel offset
INT16 xcurr, ycurr; // current location for output
INT16 nRows, nCols; // size of diasplay from x/y pixels
INT16 x, y, dx, dy; // origin and size of display area
INT16 nMode, idx, jdx; // current mode and index into video RAM
INT16 AnsiDriver (char); // interperate ANSI Escape sequences
void Reset (BOOL); // Clear screen and input buffer
void Scroll (void); // do conventional VDU scroll
void PutKey (char); // process a user input key
void GetKey (PMSG); // process a user request for data
void TtyCursor (UINT16); // hide/display cursor
void Display (char*, INT16); // display characters
Rng RngBuf; // Buffer chars from the "keyboard"
public:
tty (UINT16, UINT16, Knl*, rect&, UINT16, UINT16);
~tty (void);
void RxPort (PMSG); // supply virtual member of "port"
INT16 SetMode (INT16); // change mode, returning old mode
void ReFresh (BOOL = TRUE); // force a full refresh of the display
inline INT16 GetMode (void) // return current terminal mode
{ return nMode; }
};