/* test8274.c Stewart, December 7, 1981 11:44 AM */
/* last edit Stewart, June 9, 1982 11:42 AM */
int bauda, baudb;
char leftover, escchar;
main()
{
char c;
escchar = 'z';
wf("\r8274 test, ? for help.\r");
baud(1200, 0);
baud(1200, 1);
for (;;) {
if (chav()) {
c = getchar() & 0177;
switch (c) {
case 'q': {
wf("\rQuit!\r");
return;
};
case 'e': {
escape();
break;
};
case 'E': {
echo();
break;
};
case 's': {
setspeed();
break;
};
case 't': {
typeon(0);
break;
};
case 'T': {
typeon(1);
break;
};
case '?': help();
break;
default: wf("\r unknown command\r");
};
wf("% ");
};
};
};
echo()
{
char c;
wf1("escape char is %c", escchar);
for (;;) {
if (siochav(0)) {
c = siogetc(0);
if ((c & 0177) == escchar) return;
while (!siofree(0));
sioputc(0, c);
};
if (siochav(1)) {
c = siogetc(1);
if ((c & 0177) == escchar) return;
while (!siofree(1));
sioputc(1, c);
};
};
};
escape() {
wf("Escape character = ");
escchar = getchar() & 0177;
wf1(" (%c)\r", escchar);
};
help()
{
wf("\rq: quit, ?: help\r");
wf("e: escape char, E: echo\r");
wf("s: setspeed (0/1)(baudrate)\r");
wf("t: typeon ch 0, T: typeon ch 1\r");
};
setspeed()
{
char c, *s;
int br, ch;
wf("Speed, type 0 for voice channel or 1 for lark: ");
c = getchar();
putchar(c);
if (c=='0') ch = 0;
else ch = 1;
wf("\rType in decimal baud rate: ");
br = getdec();
wf2("\rSetting channel %d to %d baud\r", ch, br);
baud(br, ch);
};
typeon(ch)
int ch;
{
char c;
for(;;) {
c = getchar();
putchar(c);
while(!siofree(ch));
sioputc(ch, c);
if (c=='\r') break;
};
};
putsiostr(s, ch)
char *s;
int ch;
{
while (*s) {
while(!siofree(ch));
sioputc(ch, *s++);
};
};
int getdec()
{
int v;
v = 0;
for (;;) {
leftover = getchar();
putchar(leftover);
if (leftover>='0' && leftover<='9') {
v = v*10;
v += (leftover-'0');
continue;
};
break;
};
return(v);
};