|
|
1.1 ! root 1: #include "jerq.h" ! 2: #include "rcv.h" ! 3: ! 4: #define RCVBUFSIZE 1024 ! 5: #define HIBUF 1000 ! 6: #define LOWBUF 256 ! 7: ! 8: static unsigned char rcvbuffer[RCVBUFSIZE]; /* buffer for rcv input */ ! 9: struct Jrcvbuf Jrcvbuf = {rcvbuffer, rcvbuffer, rcvbuffer, 0, RCVBUFSIZE, 0 }; ! 10: ! 11: rcvchar () ! 12: { ! 13: int i; ! 14: ! 15: if (!Jrcvbuf.cnt) ! 16: return -1; ! 17: i = *Jrcvbuf.out++; ! 18: if(Jrcvbuf.out == &Jrcvbuf.buf[Jrcvbuf.size]) ! 19: Jrcvbuf.out = Jrcvbuf.buf; ! 20: if(--Jrcvbuf.cnt == 0) ! 21: P->state &= ~RCV; ! 22: if (Jrcvbuf.blocked && Jrcvbuf.cnt <= LOWBUF) ! 23: Jrcvbuf.blocked = 0; ! 24: return(i); ! 25: } ! 26: ! 27: rcvbfill(buf, cnt) ! 28: register unsigned char *buf; ! 29: { ! 30: register i; ! 31: unsigned char *ebuf; ! 32: ! 33: if (Jrcvbuf.cnt == Jrcvbuf.size) ! 34: return; ! 35: ebuf = &Jrcvbuf.buf[Jrcvbuf.size]; ! 36: i = min (cnt, Jrcvbuf.size - Jrcvbuf.cnt); ! 37: P->state |= RCV; ! 38: Jrcvbuf.cnt += i; ! 39: if (Jrcvbuf.cnt >= HIBUF) ! 40: Jrcvbuf.blocked = 1; ! 41: while (i--) { ! 42: *Jrcvbuf.in++ = *buf++; ! 43: if (Jrcvbuf.in == ebuf) ! 44: Jrcvbuf.in = Jrcvbuf.buf; ! 45: } ! 46: } ! 47: ! 48: #define KBDBUFSIZE 128 ! 49: static unsigned char kbdbuffer[KBDBUFSIZE]; /* buffer for kbd input */ ! 50: static struct { ! 51: unsigned char *buf; ! 52: unsigned char *in; ! 53: unsigned char *out; ! 54: int cnt; ! 55: int size; ! 56: } kbdbuf = {kbdbuffer, kbdbuffer, kbdbuffer, 0, KBDBUFSIZE}; ! 57: ! 58: kbdchar () ! 59: { ! 60: int i; ! 61: ! 62: if(!kbdbuf.cnt) ! 63: return -1; ! 64: i = *kbdbuf.out++; ! 65: if(kbdbuf.out == &kbdbuf.buf[kbdbuf.size]) ! 66: kbdbuf.out = kbdbuf.buf; ! 67: if(--kbdbuf.cnt == 0) ! 68: P->state &= ~KBD; ! 69: return(i); ! 70: } ! 71: ! 72: kbdread (cp) ! 73: unsigned char *cp; ! 74: { ! 75: if(kbdbuf.cnt == kbdbuf.size) ! 76: return; ! 77: *kbdbuf.in++ = *cp; ! 78: kbdbuf.cnt++; ! 79: if(kbdbuf.in == &kbdbuf.buf[kbdbuf.size]) ! 80: kbdbuf.in = kbdbuf.buf; ! 81: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.