/* 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); };