relicense to 0BSD
[pforth] / csrc / win32 / pf_io_win32.c
CommitLineData
8e9db35f
PB
1/* $Id$ */
2/***************************************************************
3** I/O subsystem for PForth for WIN32 systems.
4**
5** Author: Phil Burk
6** Copyright 1994 3DO, Phil Burk, Larry Polansky, David Rosenboom
7**
1f99f95d
S
8** Permission to use, copy, modify, and/or distribute this
9** software for any purpose with or without fee is hereby granted.
10**
11** THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
12** WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
13** WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
14** THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
15** CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
16** FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
17** CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18** OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
8e9db35f
PB
19**
20****************************************************************
21** 941004 PLB Extracted IO calls from pforth_main.c
22***************************************************************/
23
24#include "../pf_all.h"
25
26#include <conio.h>
27
28/* Use console mode I/O so that KEY and ?TERMINAL will work. */
29#if defined(WIN32) || defined(__NT__)
30int sdTerminalOut( char c )
31{
32#if defined(__WATCOMC__)
33 return putch((char)(c));
34#else
35 return _putch((char)(c));
36#endif
37}
38
39/* Needed cuz _getch() does not echo. */
40int sdTerminalEcho( char c )
41{
42#if defined(__WATCOMC__)
43 return putch((char)(c));
44#else
45 return _putch((char)(c));
46#endif
47}
48
49int sdTerminalIn( void )
50{
51 return _getch();
52}
53
54int sdQueryTerminal( void )
55{
56 return _kbhit();
57}
58
59int sdTerminalFlush( void )
60{
61#ifdef PF_NO_FILEIO
62 return -1;
63#else
64 return fflush(PF_STDOUT);
65#endif
66}
67
68void sdTerminalInit( void )
69{
70}
71
72void sdTerminalTerm( void )
73{
74}
75#endif