anchor.diff:          i2c-DR!
           i2c-EV6    \ wait until ready to read
           \ i2c-SR1-ADDR i2c-SR1-wait
  +        i2c-nak?
           1 i2c.needstop !
       endcase
   ;
  
positive.code:   i2c-EV6a                       \ wait for completion of addressing or AF
  ;
  
  : i2c-xfer ( u -- nak) \ prepares for an nbyte reply. Use after i2c-addr. Stops i2c after completion.
    dup i2c.cnt !
    i2c-EV6b
      case
  
negative.code:         i2c-EV6                  \ wait for ADDR and clear
          i2c-ACK-0
          i2c-SR1-BTF i2c-SR1-wait \ wait for BTF
          i2c-nak?
          i2c-stop!                \ set stop without waiting
          0 i2c.needstop !
        endof
  