|
|
1.1 ! root 1: /* Copyright (c) 1979 Regents of the University of California */ ! 2: /* @(#) _delay.c: 1.1 10/15/83 (1.9 3/6/83) */ ! 3: #include <ctype.h> ! 4: #include "curses.h" ! 5: #include "term.h" ! 6: #ifdef NONSTANDARD ! 7: # include "ns_curses.h" ! 8: #endif ! 9: ! 10: /* ! 11: * The following array gives the number of tens of milliseconds per ! 12: * character for each speed as returned by gtty. Thus since 300 ! 13: * baud returns a 7, there are 33.3 milliseconds per char at 300 baud. ! 14: */ ! 15: static ! 16: short tmspc10[] = { ! 17: /* 0 50 75 110 134.5 150 200 300 baud */ ! 18: 0, 2000, 1333, 909, 743, 666, 500, 333, ! 19: /* 600 1200 1800 2400 4800 9600 19200 38400 baud */ ! 20: 166, 83, 55, 41, 20, 10, 5, 2 ! 21: }; ! 22: ! 23: /* ! 24: * Insert a delay into the output stream for "delay/10" milliseconds. ! 25: * Round up by a half a character frame, and then do the delay. ! 26: * Too bad there are no user program accessible programmed delays. ! 27: * Transmitting pad characters slows many terminals down and also ! 28: * loads the system. ! 29: */ ! 30: _delay(delay, outc) ! 31: register int delay; ! 32: int (*outc)(); ! 33: { ! 34: register int mspc10; ! 35: register int pc; ! 36: register int outspeed; ! 37: ! 38: #ifndef NONSTANDARD ! 39: # ifdef USG ! 40: outspeed = cur_term->Nttyb.c_cflag&CBAUD; ! 41: # else ! 42: outspeed = cur_term->Nttyb.sg_ospeed; ! 43: # endif ! 44: #else NONSTANDARD ! 45: outspeed = outputspeed(cur_term); ! 46: #endif NONSTANDARD ! 47: if (outspeed <= 0 || outspeed >= (sizeof tmspc10 / sizeof tmspc10[0])) ! 48: return ERR; ! 49: ! 50: mspc10 = tmspc10[outspeed]; ! 51: delay += mspc10 / 2; ! 52: if (pad_char) ! 53: pc = *pad_char; ! 54: else ! 55: pc = 0; ! 56: for (delay /= mspc10; delay > 0; delay--) ! 57: (*outc)(pc); ! 58: return OK; ! 59: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.