|
|
| version 1.6, 2004/03/31 19:23:37 | version 1.8, 2004/06/18 07:42:13 |
|---|---|
| Line 26 static void updateshiftkey(void) { | Line 26 static void updateshiftkey(void) { |
| UINT base; | UINT base; |
| shiftsts = mem[MEMB_SHIFT_STS]; | shiftsts = mem[MEMB_SHIFT_STS]; |
| mem[0xa3ff6] &= 0x3f; // KEYBOARD LED | mem[MEMB_MSW6] &= 0x3f; // KEYBOARD LED |
| mem[0xa3ff6] |= (UINT8)(shiftsts << 5); | mem[MEMB_MSW6] |= (UINT8)(shiftsts << 5); |
| if (shiftsts & 0x10) { | if (shiftsts & 0x10) { |
| base = 7; | base = 7; |
| } | } |
| Line 57 void bios0x09(void) { | Line 57 void bios0x09(void) { |
| pos = (key & 0x7f) >> 3; | pos = (key & 0x7f) >> 3; |
| bit = 1 << (key & 7); | bit = 1 << (key & 7); |
| if (!(key & 0x80)) { | if (!(key & 0x80)) { |
| mem[0x0052a + pos] |= bit; | mem[MEMX_KB_KY_STS + pos] |= bit; |
| code = 0xffff; | code = 0xffff; |
| base = GETBIOSMEM16(MEMW_KB_SHIFT_TBL); | base = GETBIOSMEM16(MEMW_KB_SHIFT_TBL); |
| base += 0xfd800; | base += 0xfd800; |
| Line 85 void bios0x09(void) { | Line 85 void bios0x09(void) { |
| } | } |
| else { | else { |
| if (key == 0x60) { | if (key == 0x60) { |
| CPU_INTERRUPT(6, -1); | // CPU_INTERRUPT(6, -1); |
| } | } |
| else if (key == 0x61) { | else if (key == 0x61) { |
| CPU_INTERRUPT(5, -1); | // CPU_INTERRUPT(5, -1); |
| } | } |
| else if (key < 0x70) { | else if (key < 0x70) { |
| code = mem[base + key - 0x0c] << 8; | code = mem[base + key - 0x0c] << 8; |
| Line 115 void bios0x09(void) { | Line 115 void bios0x09(void) { |
| } | } |
| } | } |
| else { | else { |
| if (key < 0xf5) { | mem[MEMX_KB_KY_STS + pos] &= ~bit; |
| mem[0x0052a + pos] &= ~bit; | if ((key >= 0xf0) && (key < 0xf5)) { |
| if (key >= 0xf0) { | mem[MEMB_SHIFT_STS] &= ~bit; |
| mem[MEMB_SHIFT_STS] &= ~bit; | updateshiftkey(); |
| updateshiftkey(); | |
| } | |
| } | } |
| } | } |
| } | } |