www.pudn.com > ·ÂÕæÖÕ¶Ëvt100.zip > CVT100.C
#include#include #include /****************************************************************************/ /* Function prototypes */ int main( void ); void CVT100Init( void ); void terminal( void ); void badexit( char * ); /****************************************************************************/ /* Global Data */ char modeline[] = "F5-Communications F6-Video F7-Keyboard F8-VT emulation F9-File F10-Exit"; /****************************************************************************/ /* External Variables */ extern unsigned int _stacklen = 4000; extern unsigned int _heaplen = 5120; /****************************************************************************/ /* Local Static Data */ /****************************************************************************/ /****************************************************************************/ /* M A I N -- Main function for emulator */ main() { CVT100Init(); /* Initialization */ ttopen(); /* Open selected com port */ terminal(); /* Emulate the terminal for awhile */ ttclose(); /* Close the communications port */ CloseLogFile(); /* Close log file if open */ gotoxy(1,25); /* When leaving set cursor to screen bottom*/ return(0); /* Thats all */ } /* C V T 1 0 0 I N I T -- Initialize the VT100 emulator */ void CVT100Init() { FileInit(); /* Initialize File System *first* */ TTinit(); /* Initialize communications system */ VidInit(); /* Initialize video system */ KeyInit(); /* Initialize Keyboard system */ VTInit(); /* Initialize VT Emulation */ } /* T E R M I N A L -- Perform terminal emulation */ void terminal() { int thru = 0; int key; int c; while (!thru) { /* Continue until exited */ if (ConChk()) { /* If a keystroke is present */ if (DoKey() == -1) /* Then interpret it */ thru = 1; /* Watch for done flag here */ } if (ttchk()) /* If incoming communications chars */ ConOut( ttinc() ); /* Output the character to emulation system*/ } } /* B A D E X I T -- Exit the program displaying a fatal error message */ void badexit( char * message ) { char line[132]; register char * s = line; ttclose(); gotoxy(1,25); /* start message on last line of display*/ while ( (*s = *message++) != '\0') s++; *s++ = '\a'; /* Concantonate a '$' to the message */ *s = '$'; _DX = (unsigned) line; _AH = 9; geninterrupt(0x21); /* Display message using DOS function 9 */ exit(1); /* Exit with errorlevel 1 */ }