]> cloudbase.mooo.com Git - z180-stamp-cpm3.git/blobdiff - cbios/ascii.180
simplify buffer level calculation
[z180-stamp-cpm3.git] / cbios / ascii.180
index 90545497e238e955bb8493228e80b2b0b5f9a0fa..d3f6b20fa5a73d1561c2678336e86ee5b7c37c32 100644 (file)
@@ -710,15 +710,12 @@ rxi_2:
        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