[openfirmware] r1357 - dev

svn at openfirmware.info svn at openfirmware.info
Thu Sep 10 10:21:31 CEST 2009


Author: wmb
Date: 2009-09-10 10:21:31 +0200 (Thu, 10 Sep 2009)
New Revision: 1357

Modified:
   dev/ps2mouse.fth
Log:
ps2mouse driver - timeout after 300 mS of cmd retries.


Modified: dev/ps2mouse.fth
===================================================================
--- dev/ps2mouse.fth	2009-09-10 08:07:14 UTC (rev 1356)
+++ dev/ps2mouse.fth	2009-09-10 08:21:31 UTC (rev 1357)
@@ -36,15 +36,24 @@
 : put-get-data  ( cmd -- data )  " put-get-data" $call-parent  ;
 : send-cmd  ( cmd -- )  " put-data" $call-parent  ;
 
+0 instance variable #retries
 : cmd?  ( cmd -- error? )
+   #retries off
    dup put-get-data                   ( cmd response )
    begin                              ( cmd response )
       case                            ( cmd response )
          h# fa of  drop false exit   endof   \ ACK
-         h# fe of  dup put-get-data  endof   \ RESEND - try again
+         h# fe of                     ( cmd )  \ RESEND - try again
+            1 #retries +!             ( cmd )
+            #retries @ d# 300 >  if   ( cmd )
+               drop true exit
+            then                      ( cmd )
+            1 ms                      ( cmd )
+            dup put-get-data          ( cmd response )
+         endof
          ( cmd response )
             d# 10 timed-read  if      ( cmd response )
-              2drop true exit
+               2drop true exit
             then                      ( cmd response new-response )
             swap                      ( cmd new-response response )
       endcase                         ( cmd new-response )




More information about the openfirmware mailing list