diff --git a/olimexino-stm32/olimexino_stm32.ft b/olimexino-stm32/olimexino_stm32.ft index fa4697b..5abde9b 100644 --- a/olimexino-stm32/olimexino_stm32.ft +++ b/olimexino-stm32/olimexino_stm32.ft @@ -396,15 +396,18 @@ VARIABLE EP0-REQ-LENGTH : IN-HANDLER ( ep dir -- ) DROP DUP EP-CLEAR-CTR-TX - CON-TX# IF DUP CON-TX>PMA 3 SWAP EP-TX-STATE! ELSE DROP THEN + CON-TX# IF DUP CON-TX>PMA 3 SWAP EP-TX-STATE! ELSE USB-BTABLE-TX# 0 SWAP ! THEN ; : USB-TX ( c-addr n -- ) BEGIN ?DUP WHILE OVER C@ CON-TX! 1- SWAP 1+ SWAP REPEAT DROP - 3 1 EP-TX-STATE! + USB-EP1R @ 0030 AND 3 <> IF 3 1 EP-TX-STATE! THEN ; -: USB-EMIT ( c -- ) CON-TX! 3 1 EP-TX-STATE! ; +: USB-EMIT ( c -- ) + CON-TX! + USB-EP1R @ 0030 AND 3 <> IF 3 1 EP-TX-STATE! THEN + ; : USB 1 USB-DISC! USB-INIT