1 /* SCCS Id: @(#)pctty.c 3.4 1990/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()19gettty(){ 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)33settty(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()49setftty() 50 { 51 start_screen(); 52 } 53 54 #if defined(TIMED_DELAY) && defined(_MSC_VER) 55 void msleep(mseconds)56msleep(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