anchor.diff:    then usb-pma! ;
   
   : usb-fill ( -- )  \ fill the USB outbound buffer from the TX ring buffer
  -  tx.pend @ 0= if
  -    usb-out-ring ring#
  -    ?dup if 64 min
  -      dup tx.pend !
  -      dup 0 do usb-out-ring ring> $C0 i + usb-pma-c!  loop
  -      1 1 ep-reg h! 1 3 txstat!
  -    then
  +  usb-out-ring ring# ?dup if
  +    dup tx.pend !
  +    dup 0 do usb-out-ring ring> $C0 i + usb-pma-c!  loop
  +    1 1 ep-reg h! 1 3 txstat!
     then ;
   
   : ep-out ( ep -- )  \ outgoing packets, sent from host to this device
  
positive.code: 
  : ep-in ( ep -- )  \ incoming polls, sent from this device to host
    dup if
      0 tx.pend ! usb-fill
    else
      $41 usb-pma c@ $05 = if $42 usb-pma@ $80 or USB-DADDR h! then
      send-next
  
negative.code:   ['] usb-emit? hook-emit? !
    ['] usb-emit hook-emit !  ;
  
  \ : init ( -- ) init usb-io ;
  