1 /*	SCCS Id: @(#)pctty.c	3.3	90/22/02
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /* NetHack may be freely redistributed.  See license for details. */
4 
5 /* tty.c - (PC) version */
6 
7 #define NEED_VARARGS /* Uses ... */	/* comment line for pre-compiled headers */
8 #include "hack.h"
9 #include "wintty.h"
10 
11 char erase_char, kill_char;
12 
13 /*
14  * Get initial state of terminal, set ospeed (for termcap routines)
15  * and switch off tab expansion if necessary.
16  * Called by startup() in termcap.c and after returning from ! or ^Z
17  */
18 void
gettty()19 gettty(){
20 	erase_char = '\b';
21 	kill_char = 21;		/* cntl-U */
22 	iflags.cbreak = TRUE;
23 #if !defined(TOS)
24 	disable_ctrlP();	/* turn off ^P processing */
25 #endif
26 #if defined(MSDOS) && defined(NO_TERMS)
27 	gr_init();
28 #endif
29 }
30 
31 /* reset terminal to original state */
32 void
settty(s)33 settty(s)
34 const char *s;
35 {
36 #if defined(MSDOS) && defined(NO_TERMS)
37 	gr_finish();
38 #endif
39 	end_screen();
40 	if(s) raw_print(s);
41 #if !defined(TOS)
42 	enable_ctrlP();		/* turn on ^P processing */
43 #endif
44 
45 }
46 
47 /* called by init_nhwindows() and resume_nhwindows() */
48 void
setftty()49 setftty()
50 {
51 	start_screen();
52 }
53 
54 #if defined(TIMED_DELAY) && defined(_MSC_VER)
55 void
msleep(mseconds)56 msleep(mseconds)
57 unsigned mseconds;
58 {
59 	/* now uses clock() which is ANSI C */
60 	clock_t goal;
61 
62 	goal = mseconds + clock();
63 	while ( goal > clock()) {
64 	    /* do nothing */
65 	}
66 }
67 #endif
68 
69 /* fatal error */
70 /*VARARGS1*/
71 
72 void
73 error VA_DECL(const char *,s)
74 	VA_START(s);
75 	VA_INIT(s, const char *);
76 	/* error() may get called before tty is initialized */
77 	if (iflags.window_inited) end_screen();
78 	putchar('\n');
79 	Vprintf(s,VA_ARGS);
80 	putchar('\n');
81 	VA_END();
82 	exit(EXIT_FAILURE);
83 }
84 
85 /*pctty.c*/
86