home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
mitsch75.zip
/
scheme-7_5_17-src.zip
/
scheme-7.5.17
/
src
/
microcode
/
nttty.c
< prev
next >
Wrap
C/C++ Source or Header
|
1999-01-02
|
3KB
|
125 lines
/* -*-C-*-
$Id: nttty.c,v 1.8 1999/01/02 06:11:34 cph Exp $
Copyright (c) 1992-1999 Massachusetts Institute of Technology
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "nt.h"
#include "ostty.h"
#include "osenv.h"
#include "ntio.h"
#include "ntterm.h"
#include "ntscreen.h"
/* Standard Input and Output */
static Tchannel input_channel;
static Tchannel output_channel;
HANDLE master_tty_window = 0;
int tty_x_size;
int tty_y_size;
/* 1-based values */
static char * tty_command_beep;
static char * tty_command_clear;
Tchannel
OS_tty_input_channel (void)
{
return (input_channel);
}
Tchannel
OS_tty_output_channel (void)
{
return (output_channel);
}
unsigned int
OS_tty_x_size (void)
{
Screen_GetSize (master_tty_window, (&tty_y_size), (&tty_x_size));
return (tty_x_size);
}
unsigned int
OS_tty_y_size (void)
{
Screen_GetSize (master_tty_window, (&tty_y_size), (&tty_x_size));
return (tty_y_size);
}
CONST char *
OS_tty_command_beep (void)
{
return (tty_command_beep);
}
CONST char *
OS_tty_command_clear (void)
{
return (tty_command_clear);
}
void
NT_initialize_tty (void)
{
input_channel = (NT_open_handle (master_tty_window));
(CHANNEL_INTERNAL (input_channel)) = 1;
output_channel = input_channel;
Screen_GetSize (master_tty_window, (&tty_y_size), (&tty_x_size));
tty_command_beep = ALERT_STRING;
tty_command_clear = "\014";
}
/* Fake TERMCAP capability */
short ospeed;
char PC;
int
tputs (string, nlines, outfun)
register char * string;
int nlines;
register int (*outfun) ();
{
register int padcount = 0;
if (string == (char *) 0)
return (0);
while (*string >= '0' && *string <= '9')
{
padcount += *string++ - '0';
padcount *= 10;
}
if (*string == '.')
{
string++;
padcount += *string++ - '0';
}
if (*string == '*')
{
string++;
padcount *= nlines;
}
while (*string)
(*outfun) (*string++);
return (0);
}