}
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;
}
}
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) {
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));
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;
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;