and b ;\r
ld c,a\r
\r
- sub (ix+o.out_idx) ;\r
- jr z,rxtxi&dev&_lp1 ;skip if buffer is full\r
-\r
- ld (ix+o.in_idx),c ;input buffer pointer\r
-\r
- jr nc,$+3 ;\r
- adc b ;\r
+ sub (ix+o.out_idx) ;number of free places in buffer\r
+ jr z,rxtxi&dev&_lp1 ;buffer full?\r
+ and b ;\r
+ ld (ix+o.in_idx),c ; no, update input index\r
\r
- cp s&dev&.tx_len*3/4\r
+ cp s&dev&.tx_len*3/4 ;buffer now 75% full?\r
jr nz,rxtxi&dev&_lp1\r
\r
if dev=0 ; only channel 0 has rts line\r