added updated feedback-loop code to gui
authoradam <adam@megacz.com>
Sun, 24 Sep 2006 06:52:22 +0000 (07:52 +0100)
committeradam <adam@megacz.com>
Sun, 24 Sep 2006 06:52:22 +0000 (07:52 +0100)
src/com/atmel/fpslic/Fpslic.java
src/edu/berkeley/slipway/gui/Gui.java
src/edu/berkeley/slipway/gui/ZoomingPanel.java

index 9cf1ff6..0daf377 100644 (file)
@@ -309,14 +309,11 @@ public abstract class Fpslic {
         }
 
         public int t() {
-            System.err.println("found " + (mode4(1, row, col) & 0x34));
-            switch(mode4(1, row, col) & 0x34) {
-                case 0x20: return TMUX_Z;
-                case 0x24: return TMUX_W_AND_Z;
-                case 0x34: return TMUX_FB;
-                case 0x14: return TMUX_W_AND_FB;
+            switch(mode4(1, row, col) & 0x30) {
                 case 0x00: return TMUX_W;
-                    //default: throw new RuntimeException("unknown!");
+                case 0x10: return wi()==NONE ? TMUX_FB : TMUX_W_AND_FB;
+                case 0x20: return wi()==NONE ? TMUX_Z  : TMUX_W_AND_Z;
+                case 0x30: throw new RuntimeException("illegal!");
                 default: return TMUX_W; 
             }
         }
@@ -324,15 +321,14 @@ public abstract class Fpslic {
         public void t(int code) {
             int result = 0;
             switch(code) {
-                case TMUX_W:        result = 0x34; break;
-                case TMUX_Z:        result = 0x20; break; // TOTALLYBOGUS throw new Error("not implemented, but should be possible");
-                case TMUX_W_AND_Z:  result = 0x00; break;
-                case TMUX_FB:       result = 0x34; break; /* I think this is actually W_AND_FB, sadly */
-                case TMUX_W_AND_FB: result = 0x14; break;
-                    //default: throw new RuntimeException("unknown code! " + code);
+                case TMUX_W:        result = 0x00; break;
+                case TMUX_Z:        result = 0x20; break;
+                case TMUX_W_AND_Z:  result = 0x20; break;
+                case TMUX_FB:       result = 0x10; break;
+                case TMUX_W_AND_FB: result = 0x10; break;
                 default: result = 0x00; break;
             }
-            mode4(1, row, col, result, 0x34);
+            mode4(1, row, col, result, 0x30);
         }
         /*
         private void fmux(int source) {
index 1ab98ee..56953c5 100644 (file)
@@ -630,7 +630,16 @@ public class Gui extends ZoomingPanel implements KeyListener, MouseMotionListene
                          getWidth() - 200 + 10, (line += 15));
             g.drawString("z-in mux: " + (newcell.cell.zi()==NONE ? "." : ("L"+(newcell.cell.zi()-L0))),
                          getWidth() - 200 + 10, (line += 15));
-            g.drawString("t-in mux: ", getWidth() - 200 + 10, (line += 15));
+
+            String tm = "??";
+            switch(newcell.cell.t()) {
+                case TMUX_FB:       tm = "fb"; break;
+                case TMUX_W_AND_FB: tm = "w&fb"; break;
+                case TMUX_Z:        tm = "z"; break;
+                case TMUX_W_AND_Z:  tm = "w&z"; break;
+                case TMUX_W:        tm = "w"; break;
+            }
+            g.drawString("t-in mux: " + tm, getWidth() - 200 + 10, (line += 15));
 
             g.drawString(" set/rst: " + (newcell.cell.ff_reset_value() ? "reset=SET" : "."),
                          getWidth() - 200 + 10, (line += 15));
index 76f23c8..4468ffc 100644 (file)
@@ -199,8 +199,8 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo
         else switch(k.getKeyCode()) {
             case VK_ESCAPE: scale = 1.0; recenter = null; repaint(); return;
 
-            case VK_0: case VK_1: case VK_2: case VK_3: case VK_4: {
-                int i = L0 + (k.getKeyChar() - '0');
+            case VK_BACK_QUOTE: case VK_0: case VK_1: case VK_2: case VK_3: case VK_4: {
+                int i = k.getKeyCode()==VK_BACK_QUOTE ? NONE : (L0 + (k.getKeyChar() - '0'));
                 switch(lastChar) {
                     case 'x': c.xi(i); break;
                     case 'y': case 'q': c.yi(i); break;
@@ -241,13 +241,20 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo
 
             case VK_T:
                 switch(c.t()) {
-                    case TMUX_FB: c.t(TMUX_W_AND_FB); break;
-                    case TMUX_W_AND_FB: c.t(TMUX_W); break;
-                    case TMUX_W: c.t(TMUX_W_AND_Z); break;
-                    case TMUX_W_AND_Z: c.t(TMUX_Z); break;
-                    case TMUX_Z: c.t(TMUX_FB); break;
+                    case TMUX_FB:
+                    case TMUX_W_AND_FB:
+                        c.t(TMUX_W_AND_Z);
+                        break;
+
+                    case TMUX_Z:
+                    case TMUX_W_AND_Z:
+                        c.t(TMUX_W);
+                        break;
+
+                    case TMUX_W:
+                        c.t(TMUX_W_AND_FB);
+                        break;
                 }
-                System.err.println("set " + c.t());
                 repaint();
                 return;