public MainWindow() { InitializeComponent(); kempston = 0; // Set up load traps emulator.OnLoad = TapeLoad; emulator.Start(); }
protected override void OnKeyUp(System.Windows.Input.KeyEventArgs e) { base.OnKeyUp(e); switch (e.Key) { // Row 0 case System.Windows.Input.Key.D1: emulator.ReleaseKey(0, 0); break; case System.Windows.Input.Key.D2: emulator.ReleaseKey(0, 1); break; case System.Windows.Input.Key.D3: emulator.ReleaseKey(0, 2); break; case System.Windows.Input.Key.D4: emulator.ReleaseKey(0, 3); break; case System.Windows.Input.Key.D5: emulator.ReleaseKey(0, 4); break; case System.Windows.Input.Key.D6: emulator.ReleaseKey(0, 5); break; case System.Windows.Input.Key.D7: emulator.ReleaseKey(0, 6); break; case System.Windows.Input.Key.D8: emulator.ReleaseKey(0, 7); break; case System.Windows.Input.Key.D9: emulator.ReleaseKey(0, 8); break; case System.Windows.Input.Key.D0: emulator.ReleaseKey(0, 9); break; // Row 1 case System.Windows.Input.Key.Q: emulator.ReleaseKey(1, 0); break; case System.Windows.Input.Key.W: emulator.ReleaseKey(1, 1); break; case System.Windows.Input.Key.E: emulator.ReleaseKey(1, 2); break; case System.Windows.Input.Key.R: emulator.ReleaseKey(1, 3); break; case System.Windows.Input.Key.T: emulator.ReleaseKey(1, 4); break; case System.Windows.Input.Key.Y: emulator.ReleaseKey(1, 5); break; case System.Windows.Input.Key.U: emulator.ReleaseKey(1, 6); break; case System.Windows.Input.Key.I: emulator.ReleaseKey(1, 7); break; case System.Windows.Input.Key.O: emulator.ReleaseKey(1, 8); break; case System.Windows.Input.Key.P: emulator.ReleaseKey(1, 9); break; // Row 2 case System.Windows.Input.Key.A: emulator.ReleaseKey(2, 0); break; case System.Windows.Input.Key.S: emulator.ReleaseKey(2, 1); break; case System.Windows.Input.Key.D: emulator.ReleaseKey(2, 2); break; case System.Windows.Input.Key.F: emulator.ReleaseKey(2, 3); break; case System.Windows.Input.Key.G: emulator.ReleaseKey(2, 4); break; case System.Windows.Input.Key.H: emulator.ReleaseKey(2, 5); break; case System.Windows.Input.Key.J: emulator.ReleaseKey(2, 6); break; case System.Windows.Input.Key.K: emulator.ReleaseKey(2, 7); break; case System.Windows.Input.Key.L: emulator.ReleaseKey(2, 8); break; case System.Windows.Input.Key.Return: emulator.ReleaseKey(2, 9); break; // Row 3 case System.Windows.Input.Key.LeftShift: emulator.ReleaseKey(3, 0); break; case System.Windows.Input.Key.Z: emulator.ReleaseKey(3, 1); break; case System.Windows.Input.Key.X: emulator.ReleaseKey(3, 2); break; case System.Windows.Input.Key.C: emulator.ReleaseKey(3, 3); break; case System.Windows.Input.Key.V: emulator.ReleaseKey(3, 4); break; case System.Windows.Input.Key.B: emulator.ReleaseKey(3, 5); break; case System.Windows.Input.Key.N: emulator.ReleaseKey(3, 6); break; case System.Windows.Input.Key.M: emulator.ReleaseKey(3, 7); break; case System.Windows.Input.Key.RightCtrl: emulator.ReleaseKey(3, 8); break; case System.Windows.Input.Key.Space: emulator.ReleaseKey(3, 9); break; // Keyboard shortcuts: case System.Windows.Input.Key.Back: emulator.ReleaseKey(3, 0); // Shift emulator.ReleaseKey(0, 9); // '0' break; // Kempston case System.Windows.Input.Key.Left: kempston &= ~Emulation.KempstonFlags.Left; break; case System.Windows.Input.Key.Right: kempston &= ~Emulation.KempstonFlags.Right; break; case System.Windows.Input.Key.Up: kempston &= ~Emulation.KempstonFlags.Up; break; case System.Windows.Input.Key.Down: kempston &= ~Emulation.KempstonFlags.Down; break; case System.Windows.Input.Key.LeftCtrl: kempston &= ~Emulation.KempstonFlags.Fire; break; } emulator.SetKempstonStatus(kempston); }