//--< typedef and defines >------------------------------------------
typedef unsigned char u08;
#define buffer_full RxPush+1 == RxPull
//--< variables >----------------------------------------------------
u08 RxBuff [16]@0xA0; // 16 byte circular Rx buffer, A0..AF
u08 RxPull = 0xA0; // circular Rx buffer pull (rd) pointer
u08 RxPush = 0xA0; // circular Rx buffer push (wr) pointer
//--< functions >----------------------------------------------------
u08 rdy232() // test for Rx character available
{ return(RxPull!=RxPush); // 0 = buffer empty, 1 = char available
}
u08 get232() // pull Rx char from circular buffer
{ fsr = RxPull; // setup buffer indirect address
RxPull = fsr + 1; // increment circular 'pull' pointer
RxPull.4 = 0; // pseudo %16 (circular A0..AF range)
return indf; // return Rx character
}