chiark / gitweb /
make crashread reset work
authorian <ian>
Wed, 4 Jan 2006 22:16:16 +0000 (22:16 +0000)
committerian <ian>
Wed, 4 Jan 2006 22:16:16 +0000 (22:16 +0000)
detpic/crashread

index 98841bc815a3be476efc8d1affc5af67fa91c2d6..f999bf863efbbf12efa8395a245bed8964a6e85d 100755 (executable)
@@ -61,12 +61,17 @@ proc selectslave_s {} {
     selectslave_slave $slave
 }
 
-proc xmit_s {b} {
+proc xmit_slave {slave b} {
     xmit "$b | 0x80"
-    selectslave_s
+    selectslave_slave $slave
     recv 1
 }
 
+proc xmit_s {b} {
+    global slave
+    xmit_slave $slave $b
+}
+
 proc pause {t} {
     global pause_var
     catch { unset pause_var }
@@ -148,7 +153,13 @@ proc thingnext {thing} {
 
 proc p {s} { puts -nonewline $s }
 
-proc ms_reset {arg} {
+proc reset_s {val min max} {
+    for {set slave $min} {$slave < $max} {incr slave} {
+       xmit_slave $slave $val
+    }
+}
+
+proc reset_m {arg} {
     if {[regexp {^(\d+)\.(\d+)} $arg min max]} {
     } elseif {[regexp {^(\d+)} $arg max]} {
        set min 1
@@ -156,11 +167,9 @@ proc ms_reset {arg} {
        error "--reset arg $arg wrong"
     }
     setup_m
-    xmit 0x89
-    for {set slave $min} {$slave < $max} {incr slave} {
-       selectslave_slave $slave
-       recv 1
-    }
+    reset_s 0x00 $min $max
+    reset_s 0x00 $min $max
+    reset_s 0x09 $min $max
     xmit 0x09
 }
 
@@ -194,7 +203,8 @@ fconfigure $p -blocking yes -buffering none \
 fconfigure stdout -buffering none
 
 if {![string compare reset $map]} {
-    ms_reset $picno
+    reset_m $slave
+    exit 0
 }
 
 set m [open $map]