From 02662eb6ac92e2dcb460b546f2a6be086dae5daa Mon Sep 17 00:00:00 2001 From: Ian C Date: Tue, 8 May 2012 22:54:04 +0000 Subject: Updated keyboard. --- wpspec/wpspec/ApplicationIcon.png | Bin 2607 -> 4544 bytes wpspec/wpspec/GamePage.xaml.cs | 48 +++++++++++++++++++++++----- wpspec/wpspec/Resources/Spectrum.keyboard | Bin 921 -> 1032 bytes wpspec/wpspec/Spectrum/Emulation.cs | 12 +++---- wpspec/wpspec/Spectrum/SpectrumKeySymbol.cs | 3 +- wpspec/wpspec/Spectrum/Tape.cs | 14 ++++---- wpspec/wpspecLibContent/keyboard.png | Bin 41620 -> 46980 bytes 7 files changed, 53 insertions(+), 24 deletions(-) diff --git a/wpspec/wpspec/ApplicationIcon.png b/wpspec/wpspec/ApplicationIcon.png index 5c6ac6a..09293bc 100644 Binary files a/wpspec/wpspec/ApplicationIcon.png and b/wpspec/wpspec/ApplicationIcon.png differ diff --git a/wpspec/wpspec/GamePage.xaml.cs b/wpspec/wpspec/GamePage.xaml.cs index a6bfd29..4c95e4f 100644 --- a/wpspec/wpspec/GamePage.xaml.cs +++ b/wpspec/wpspec/GamePage.xaml.cs @@ -40,6 +40,7 @@ namespace wpspec private Rectangle locationZoomed; private Texture2D keyboardImage; private KeyboardDriver keyboard; + private bool resetPressed; #endregion @@ -102,12 +103,14 @@ namespace wpspec // Create a keyboard driver // + resetPressed = false; + keyboardImage = contentManager.Load("keyboard"); keyboard = new KeyboardDriver (SharedGraphicsDeviceManager.Current.GraphicsDevice, keyboardImage, - new Vector2(0, 560), + new Vector2(0, 540), Shared.SpectrumKeyboard); keyboard.KeyEvent += HandleKeyboardEvent; @@ -180,14 +183,43 @@ namespace wpspec private void HandleKeyboardEvent(object sender, KeyboardDriver.KeyPressEventArgs e) { - if (e.Pressed) + switch (e.Key) { - Shared.Spectrum.KeyPressed(e.Key); - } - else - { - Shared.Spectrum.KeyReleased(e.Key); - } + case SpectrumKeySymbol.KeyReset: + if (!e.Pressed) + { + if (resetPressed) + { + resetPressed = false; + Shared.Spectrum.Reset(); + } + else + { + resetPressed = true; + } + } + break; + + case SpectrumKeySymbol.KeyJoystick: + break; + + case SpectrumKeySymbol.KeyKeypad: + break; + + case SpectrumKeySymbol.KeyKeyboard: + break; + + default: + if (e.Pressed) + { + Shared.Spectrum.KeyPressed(e.Key); + } + else + { + Shared.Spectrum.KeyReleased(e.Key); + } + break; + } } private void HandleTouchEvent(object sender, KeyboardDriver.TouchLocationEventArgs e) diff --git a/wpspec/wpspec/Resources/Spectrum.keyboard b/wpspec/wpspec/Resources/Spectrum.keyboard index 3e94ca1..065b5b2 100644 Binary files a/wpspec/wpspec/Resources/Spectrum.keyboard and b/wpspec/wpspec/Resources/Spectrum.keyboard differ diff --git a/wpspec/wpspec/Spectrum/Emulation.cs b/wpspec/wpspec/Spectrum/Emulation.cs index 8cf6970..fdcc6ab 100644 --- a/wpspec/wpspec/Spectrum/Emulation.cs +++ b/wpspec/wpspec/Spectrum/Emulation.cs @@ -467,14 +467,9 @@ namespace wpspec.Spectrum /// public void Reset() { - // Initialise the Spectrum + // Initialise the Spectrum and randomize memory. // - for(int f = 0; f < 8; f++) - { - matrix[f] = 0x1f; - } - - matrix[8] = 0; + ResetKeyboard(); Random rnd = new Random(); @@ -483,8 +478,9 @@ namespace wpspec.Spectrum mem[f] = (byte)rnd.Next(Byte.MaxValue); } - // Initialise the Z80 + // Initialise the Z80 and the clock. // + clock.Reset(); Z80.Reset(); } diff --git a/wpspec/wpspec/Spectrum/SpectrumKeySymbol.cs b/wpspec/wpspec/Spectrum/SpectrumKeySymbol.cs index 8869d99..1838983 100644 --- a/wpspec/wpspec/Spectrum/SpectrumKeySymbol.cs +++ b/wpspec/wpspec/Spectrum/SpectrumKeySymbol.cs @@ -36,6 +36,7 @@ namespace wpspec.Spectrum Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key0, KeyQ, KeyW, KeyE, KeyR, KeyT, KeyY, KeyU, KeyI, KeyO, KeyP, KeyA, KeyS, KeyD, KeyF, KeyG, KeyH, KeyJ, KeyK, KeyL, KeyEnter, - KeyCapsShift, KeyZ, KeyX, KeyC, KeyV, KeyB, KeyN, KeyM, KeySymbolShift, KeySpace + KeyCapsShift, KeyZ, KeyX, KeyC, KeyV, KeyB, KeyN, KeyM, KeySymbolShift, KeySpace, + KeyReset, KeyJoystick, KeyKeypad, KeyKeyboard } } diff --git a/wpspec/wpspec/Spectrum/Tape.cs b/wpspec/wpspec/Spectrum/Tape.cs index b8ce7be..81c183a 100644 --- a/wpspec/wpspec/Spectrum/Tape.cs +++ b/wpspec/wpspec/Spectrum/Tape.cs @@ -41,13 +41,13 @@ namespace wpspec.Spectrum /// The next word. public int ReadWord() { - int c1; - int c2; - - c1=Read(); - c2=Read(); - - return c1+(c2<<8); + int c1; + int c2; + + c1=Read(); + c2=Read(); + + return c1+(c2<<8); } /// diff --git a/wpspec/wpspecLibContent/keyboard.png b/wpspec/wpspecLibContent/keyboard.png index d07908c..73a29a7 100644 Binary files a/wpspec/wpspecLibContent/keyboard.png and b/wpspec/wpspecLibContent/keyboard.png differ -- cgit v1.2.3