checkpoint
[slipway.git] / src / edu / berkeley / slipway / gui / ZoomingPanel.java
index 76f23c8..4d934fd 100644 (file)
@@ -27,7 +27,10 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo
     private   Point2D recenter;
     private   Point2D recenter2;
 
-    public ZoomingPanel() {
+    private FtdiBoard ftdiboard;
+
+    public ZoomingPanel(FtdiBoard ftdiboard) {
+        this.ftdiboard = ftdiboard;
         setDoubleBuffered(true);
         addKeyListener(this);
         addMouseMotionListener(this);
@@ -131,6 +134,29 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo
                     repaint();
                     return;
                 }
+                case VK_F: {
+                    int save1y = c.fpslic().cell(19,22).ylut();
+                    int save1x = c.fpslic().cell(19,22).xlut();
+                    int save2y = c.fpslic().cell(20,22).ylut();
+                    int save2x = c.fpslic().cell(20,22).xlut();
+                    c.fpslic().cell(19,22).ylut(0xff);
+                    c.fpslic().cell(19,22).xlut(0xff);
+                    for(int i=0; i<800; i++) {
+                        c.fpslic().cell(20,22).ylut(0xff);
+                        c.fpslic().cell(20,22).xlut(0xff);
+                        c.fpslic().flush();
+                        c.fpslic().cell(20,22).ylut(0x00);
+                        c.fpslic().cell(20,22).xlut(0x00);
+                        c.fpslic().flush();
+                    }
+                    c.fpslic().cell(19,22).ylut(save1y);
+                    c.fpslic().cell(19,22).xlut(save1x);
+                    c.fpslic().cell(20,22).ylut(save2y);
+                    c.fpslic().cell(20,22).xlut(save2x);
+                    System.out.println("done");
+                    repaint();
+                    return;
+                }
                 case VK_BACK_QUOTE: {
                     c.xlut(0xff);
                     c.ylut(0xff);
@@ -146,15 +172,37 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo
                 case VK_2:
                 case VK_G:
                     {
-                    c.generalized_c_element();
+                c.c(YLUT);
+                c.ylut(0x00);
+                c.xlut(0x00);
+                c.wi(L0);
+                c.t(TMUX_W_AND_FB);
+                c.ylut((LUT_SELF & ~LUT_OTHER) |
+                       (LUT_Z & ~LUT_OTHER) |
+                       (LUT_Z & LUT_SELF));
+                c.fpslic().flush();
+                c.xlut(LUT_Z);
+                c.fpslic().flush();
+                c.wi(NONE);
+                c.fpslic().flush();
                     repaint();
                     return;
                 }
                 case VK_3: {
-                    c.generalized_c_element();
-                    c.xlut((LUT_SELF & ~LUT_OTHER) | (LUT_Z & ~LUT_OTHER) | (LUT_Z & LUT_SELF & LUT_OTHER));
-                    c.ylut(LUT_Z);
-                    c.c(XLUT);
+
+                c.c(XLUT);
+                c.xlut(0x00);
+                c.ylut(0x00);
+                c.wi(L0);
+                c.t(TMUX_W_AND_FB);
+                c.xlut((LUT_SELF & ~LUT_OTHER) |
+                       (LUT_Z & ~LUT_OTHER) |
+                       (LUT_Z & LUT_SELF));
+                c.fpslic().flush();
+                c.ylut(LUT_Z);
+                c.fpslic().flush();
+                c.wi(NONE);
+                c.fpslic().flush();
                     repaint();
                     return;
                 }
@@ -194,13 +242,18 @@ public abstract class ZoomingPanel extends JComponent implements KeyListener, Mo
                     repaint();
                     return;
                 }
+                case VK_I: {
+                    System.out.println("interrupt count => " + ftdiboard.readCount());
+                    repaint();
+                    return;
+                }
             }
 
         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 +294,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;