Converted to use termios, not sgtty. (pbetti@e-tech.net)
authordtrg <none@none>
Wed, 10 Aug 2005 22:48:40 +0000 (22:48 +0000)
committerdtrg <none@none>
Wed, 10 Aug 2005 22:48:40 +0000 (22:48 +0000)
mach/i80/dl/nascom.c

index 260832f..e411d9c 100644 (file)
@@ -12,7 +12,9 @@
  */
 #include       <stdio.h>
 #include       <assert.h>
-#include       <sgtty.h>
+/*#include     <sgtty.h>*/
+#include       <termios.h>
+#include       <unistd.h>
 #include       <signal.h>
 #include       <out.h>
 
@@ -26,8 +28,10 @@ char hex[] = "0123456789ABCDEF";
 
 char *progname;
 
-struct sgttyb  ttynormal;
-struct sgttyb  ttyraw;
+/*struct sgttyb        ttynormal;
+struct sgttyb  ttyraw;*/
+struct termios ttynormal;
+struct termios ttyraw;
 int            rawmode = 0;
 
 struct outhead ohead;
@@ -35,7 +39,8 @@ struct outsect sect[MAXSECT];
 
 stop(code) {
        if (rawmode)
-               stty(1, &ttynormal);
+               /*stty(1, &ttynormal);*/
+               tcsetattr(1, TCSAFLUSH, &ttynormal);
        exit(code);
 }
 
@@ -81,16 +86,22 @@ main(argc,argv) char **argv; {
                signal(SIGINT, SIG_IGN);
                signal(SIGQUIT, stop);
                signal(SIGTERM, stop);
-               if (gtty(1, &ttynormal) < 0) {
+               /*if (gtty(1, &ttynormal) < 0) {*/
+               if (tcgetattr(1, &ttynormal) < 0) {
                        fprintf(stderr, "no tty\n");
                        stop(-1);
                }
                rawmode++;
                ttyraw = ttynormal;
+               /*
                ttyraw.sg_flags |= RAW;
                ttyraw.sg_ispeed = B1200;
                ttyraw.sg_ospeed = B1200;
                stty(1, &ttyraw);
+               */
+               cfmakeraw(&ttyraw);
+               cfsetispeed(&ttyraw, B1200);
+               cfsetospeed(&ttyraw, B1200);
                sleep(5);
        }
        rd_ohead(&ohead);