- [FIX] Corrected key mapping

- [FIX] ULA ports reconnected after reset
- [FIX] port check on IN() was crashing.
This commit is contained in:
2024-04-15 18:06:59 +02:00
parent 045a2238bd
commit 6dfb24da10
3 changed files with 44 additions and 43 deletions

View File

@@ -15,74 +15,74 @@ namespace zx_ula
if (!(h_addr & ~0xfe))
{
result &= ~(
keys[SDL_SCANCODE_LSHIFT]*0xef +
keys[SDL_SCANCODE_Z]*0xf7 +
keys[SDL_SCANCODE_X]*0xfb +
keys[SDL_SCANCODE_C]*0xfd +
keys[SDL_SCANCODE_V]*0xfe );
keys[SDL_SCANCODE_LSHIFT]*0x01 +
keys[SDL_SCANCODE_Z]*0x02 +
keys[SDL_SCANCODE_X]*0x04 +
keys[SDL_SCANCODE_C]*0x08 +
keys[SDL_SCANCODE_V]*0x10 );
}
if (!(h_addr & ~0xfd))
{
result &= ~(
keys[SDL_SCANCODE_A]*0xef +
keys[SDL_SCANCODE_S]*0xf7 +
keys[SDL_SCANCODE_D]*0xfb +
keys[SDL_SCANCODE_F]*0xfd +
keys[SDL_SCANCODE_G]*0xfe );
keys[SDL_SCANCODE_A]*0x01 +
keys[SDL_SCANCODE_S]*0x02 +
keys[SDL_SCANCODE_D]*0x04 +
keys[SDL_SCANCODE_F]*0x08 +
keys[SDL_SCANCODE_G]*0x10 );
}
if (!(h_addr & ~0xfb))
{
result &= ~(
keys[SDL_SCANCODE_Q]*0xef +
keys[SDL_SCANCODE_W]*0xf7 +
keys[SDL_SCANCODE_E]*0xfb +
keys[SDL_SCANCODE_R]*0xfd +
keys[SDL_SCANCODE_T]*0xfe );
keys[SDL_SCANCODE_Q]*0x01 +
keys[SDL_SCANCODE_W]*0x02 +
keys[SDL_SCANCODE_E]*0x04 +
keys[SDL_SCANCODE_R]*0x08 +
keys[SDL_SCANCODE_T]*0x10 );
}
if (!(h_addr & ~0xf7))
{
result &= ~(
keys[SDL_SCANCODE_1]*0xef +
keys[SDL_SCANCODE_2]*0xf7 +
keys[SDL_SCANCODE_3]*0xfb +
keys[SDL_SCANCODE_4]*0xfd +
keys[SDL_SCANCODE_5]*0xfe );
keys[SDL_SCANCODE_1]*0x01 +
keys[SDL_SCANCODE_2]*0x02 +
keys[SDL_SCANCODE_3]*0x04 +
keys[SDL_SCANCODE_4]*0x08 +
keys[SDL_SCANCODE_5]*0x10 );
}
if (!(h_addr & ~0xef))
{
result &= ~(
keys[SDL_SCANCODE_0]*0xef +
keys[SDL_SCANCODE_9]*0xf7 +
keys[SDL_SCANCODE_8]*0xfb +
keys[SDL_SCANCODE_7]*0xfd +
keys[SDL_SCANCODE_6]*0xfe );
keys[SDL_SCANCODE_0]*0x01 +
keys[SDL_SCANCODE_9]*0x02 +
keys[SDL_SCANCODE_8]*0x04 +
keys[SDL_SCANCODE_7]*0x08 +
keys[SDL_SCANCODE_6]*0x10 );
}
if (!(h_addr & ~0xdf))
{
result &= ~(
keys[SDL_SCANCODE_P]*0xef +
keys[SDL_SCANCODE_O]*0xf7 +
keys[SDL_SCANCODE_I]*0xfb +
keys[SDL_SCANCODE_U]*0xfd +
keys[SDL_SCANCODE_Y]*0xfe );
keys[SDL_SCANCODE_P]*0x01 +
keys[SDL_SCANCODE_O]*0x02 +
keys[SDL_SCANCODE_I]*0x04 +
keys[SDL_SCANCODE_U]*0x08 +
keys[SDL_SCANCODE_Y]*0x10 );
}
if (!(h_addr & ~0xbf))
{
result &= ~(
keys[SDL_SCANCODE_RETURN]*0xef +
keys[SDL_SCANCODE_L]*0xf7 +
keys[SDL_SCANCODE_K]*0xfb +
keys[SDL_SCANCODE_J]*0xfd +
keys[SDL_SCANCODE_H]*0xfe );
keys[SDL_SCANCODE_RETURN]*0x01 +
keys[SDL_SCANCODE_L]*0x02 +
keys[SDL_SCANCODE_K]*0x04 +
keys[SDL_SCANCODE_J]*0x08 +
keys[SDL_SCANCODE_H]*0x10 );
}
if (!(h_addr & ~0x7f))
{
result &= ~(
keys[SDL_SCANCODE_SPACE]*0xef +
keys[SDL_SCANCODE_RSHIFT]*0xf7 +
keys[SDL_SCANCODE_M]*0xfb +
keys[SDL_SCANCODE_N]*0xfd +
keys[SDL_SCANCODE_B]*0xfe );
keys[SDL_SCANCODE_SPACE]*0x01 +
keys[SDL_SCANCODE_RSHIFT]*0x02 +
keys[SDL_SCANCODE_M]*0x04 +
keys[SDL_SCANCODE_N]*0x08 +
keys[SDL_SCANCODE_B]*0x10 );
}
return result;
}