|
|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 826 (0x33a)
Types: TextFile
Notes: UNIX file
Names: »input.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
└─⟦f4b8d8c84⟧ UNIX Filesystem
└─⟦this⟧ »hrtty/src/input.c«
#include <signal.h>
#include <sgtty.h>
#include <stdio.h>
#include "../h/rico.h"
#define FAKEIN ('c'<<8|13)
int myfd; /* message access to driver */
struct sgttyb mytty; /* saved tty settings for stdin */
main( )
{
struct sgttyb s,t;
int c;
int onintr( );
myfd = open( "/dev/hrtty", 2);
if (myfd < 0)
fatal( "can't open /dev/hrtty");
ioctl( 0, TIOCGETP, &mytty);
ioctl( 0, TIOCGETP, &s);
s.sg_flags |= RAW;
s.sg_flags &= ~ECHO;
ioctl( 0, TIOCSETP, &s);
if (signal( SIGINT, SIG_IGN) != SIG_IGN)
signal( SIGINT, onintr);
while ((c=getchar( )) != EOF) {
t.sg_ispeed = toascii( c);
ioctl( myfd, FAKEIN, &t);
}
ioctl( 0, TIOCSETP, &mytty);
return (0);
}
onintr( )
{
ioctl( 0, TIOCSETP, &mytty);
exit( 1);
}
fatal( fmt)
char *fmt;
{
fprintf( stderr, "input: %r\n", &fmt);
exit( 1);
}