diff -u Src/C64_Qtopia.i Src/C64_Qtopia.i --- Src/C64_Qtopia.i 2004-07-11 09:28:05.000000000 +0200 +++ Src/C64_Qtopia.i 2004-07-11 09:30:20.000000000 +0200 @@ -246,10 +246,16 @@ } // Joystick keyboard emulation - if (TheDisplay->NumLock()) + if (TheDisplay->NumLock() == 1) TheCIA1->Joystick1 &= joykey; else + if (TheDisplay->NumLock() == 2) TheCIA1->Joystick2 &= joykey; + else + if (TheDisplay->NumLock() == 3) { + TheCIA1->Joystick1 &= joykey; + TheCIA1->Joystick2 &= joykey; + } // Count TOD clocks TheCIA1->CountTOD(); diff -u Src/Display.h Src/Display.h --- Src/Display.h 2002-01-02 22:31:34.000000000 +0100 +++ Src/Display.h 2004-07-11 09:30:43.000000000 +0200 @@ -59,7 +59,7 @@ #else void PollKeyboard(uint8 *key_matrix, uint8 *rev_matrix, uint8 *joystick); #endif - bool NumLock(void); + int NumLock(void); void InitColors(uint8 *colors); void NewPrefs(Prefs *prefs); diff -u Src/Display_QtopiaSDL.i Src/Display_QtopiaSDL.i --- Src/Display_QtopiaSDL.i 2004-07-11 09:28:06.000000000 +0200 +++ Src/Display_QtopiaSDL.i 2004-07-11 09:31:47.000000000 +0200 @@ -17,7 +17,7 @@ // Display surface static SDL_Surface *screen = NULL; -// Mode of Joystick emulation. 0 = none, 1 = Joyport 1, 2 = Joyport 2 +// Mode of Joystick emulation. 0 = none, 1 = Joyport 1, 2 = Joyport 2, 3 = both static short joy_emu = 0; // Keyboard @@ -210,6 +210,8 @@ draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "1", black, fill_gray); else if (joy_emu == 2) draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "2", black, fill_gray); + else if (joy_emu == 3) + draw_string(screen, DISPLAY_X * 4/5 + 2, (screen->h - 17) + 4, "3", black, fill_gray); draw_string(screen, 24, (screen->h - 17) + 4, speedometer_string, black, fill_gray); // Update display @@ -500,7 +502,7 @@ // fprintf(stderr, "SDL-Key: %d\n", event.key.keysym.sym); if (tab_pressed && event.key.keysym.sym == SDLK_j) { - if (joy_emu < 2) + if (joy_emu < 3) joy_emu++; else joy_emu = 0; @@ -573,11 +575,9 @@ * Check if NumLock is down (for switching the joystick keyboard emulation) */ -bool C64Display::NumLock(void) +int C64Display::NumLock(void) { - if (joy_emu == 2) - return true; - return false; + return joy_emu; }