1 /* 2 * Copyright (c) 1980 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 */ 6 7 #ifndef lint 8 static char sccsid[] = "@(#)ttyinit.c 5.1 (Berkeley) 04/26/85"; 9 #endif not lint 10 11 /* 12 * sgtty stuff 13 */ 14 15 #include <sgtty.h> 16 17 struct sgttyb _ttyb; 18 struct tchars _otch, _ntch; 19 int _normf; 20 21 /* 22 * Routines for dealing with the unix tty modes 23 */ 24 25 #include "2648.h" 26 27 ttyinit() 28 { 29 if (strcmp(getenv("TERM"), "hp2648") == 0) 30 _on2648 = 1; 31 ioctl(fileno(stdin), TIOCGETP, &_ttyb); 32 ioctl(fileno(stdin), TIOCGETC, &_otch); 33 _ntch = _otch; 34 _ntch.t_quitc = _ntch.t_startc = _ntch.t_stopc = -1; 35 _normf = _ttyb.sg_flags; 36 _ttyb.sg_flags |= CBREAK; 37 _ttyb.sg_flags &= ~(ECHO|CRMOD); 38 ioctl(fileno(stdin), TIOCSETN, &_ttyb); 39 ioctl(fileno(stdin), TIOCSETC, &_ntch); 40 gdefault(); 41 zoomn(1); 42 zoomon(); 43 kon(); 44 rboff(); 45 _cursoron = 1; /* to force it off */ 46 _escmode = NONE; 47 curoff(); 48 clearg(); 49 gon(); 50 aoff(); 51 } 52 53 done() 54 { 55 goff(); 56 koff(); 57 aon(); 58 sync(); 59 escseq(NONE); 60 lowleft(); 61 printf("\n"); 62 fflush(stdout); 63 _ttyb.sg_flags = _normf; 64 ioctl(fileno(stdin), TIOCSETN, &_ttyb); 65 ioctl(fileno(stdin), TIOCSETC, &_otch); 66 } 67