1.1 diff -r 7d2f720daed8 -r 0d903718da81 src/memory.c 1.2 --- a/src/memory.c Wed Feb 09 15:43:48 2011 +0000 1.3 +++ b/src/memory.c Wed Feb 09 16:35:49 2011 +0000 1.4 @@ -399,6 +399,11 @@ 1.5 } 1.6 break; 1.7 case 0x070000: // [ef][7f]xxxx ==> 6850 Keyboard Controller 1.8 + // TODO: figure out which sizes are valid (probably just 8 and 16) 1.9 + // ENFORCE_SIZE_W(bits, address, 16, "KEYBOARD CONTROLLER"); 1.10 + printf("KBD WR %02X => %04X\n", (address >> 1) & 3, data >> 8); 1.11 + keyboard_write(&state.kbd, (address >> 1) & 3, data >> 8); 1.12 + handled = true; 1.13 break; 1.14 } 1.15 } 1.16 @@ -544,6 +549,14 @@ 1.17 } 1.18 break; 1.19 case 0x070000: // [ef][7f]xxxx ==> 6850 Keyboard Controller 1.20 + // TODO: figure out which sizes are valid (probably just 8 and 16) 1.21 + //ENFORCE_SIZE_R(bits, address, 16, "KEYBOARD CONTROLLER"); 1.22 + { 1.23 + uint16_t data = keyboard_read(&state.kbd, (address >> 1) & 3); 1.24 + data = (data << 8) + data; 1.25 + //printf("KBD RD %02X => %04X\n", (address >> 1) & 3, data); 1.26 + return data; 1.27 + } 1.28 break; 1.29 } 1.30 }