7 unsigned char buf[BUFSIZE];
8 unsigned char first_free= 0, last_occupied= 0;
9 bit transmitting, overflow;
12 void ser_it(void) interrupt 4
16 buf[first_free]= SBUF;
17 first_free= ((temp= first_free)+1) % BUFSIZE;
18 if (first_free == last_occupied) {
30 void t0_it(void) interrupt 1
40 return(first_free == last_occupied);
43 unsigned char get_ch(void)
46 c= buf[last_occupied];
47 last_occupied= (last_occupied+1) % BUFSIZE;
52 void send_ch(unsigned char c)
54 while (transmitting) ;
59 void send_str(char *str)
71 if ((c >= 'a' && c <= 'z') ||
72 (c >= 'A' && c <= 'Z'))
92 transmitting= overflow= 0;
94 TL1= TH1= 250; /* 9600 baud */
105 send_str("delay off\n");
109 send_str("Overflow!\n");