PS2Keyboard Help - Keep receiving an error.

I tried this tutorial (Arduino Playground - PS2Keyboard) out but I keep receiving the error below. I extract the PS2Keyboard library into "hardware\libraries" folder, and also fixed the 'byte' declaration. Does anyone have any ideas to why I am receiving this error?

C:\Users\USER\AppData\Local\Temp\build23025.tmp\WInterrupts.c.o: In function `__vector_2':

C:\Users\USER\Desktop\arduino-0013-win\arduino-0013\hardware\cores\arduino/WInterrupts.c:86: multiple definition of `__vector_2'

hardware\libraries\PS2Keyboard\PS2Keyboard.o:C:\Users\USER\Desktop\arduino-0013-win\arduino-0013/hardware\libraries\PS2Keyboard/PS2Keyboard.cpp:63: first defined here

Couldn't determine program size: C:\Users\USER\Desktop\arduino-0013-win\arduino-0013\hardware/tools/avr/bin/avr-size: 'C:\Users\USER\AppData\Local\Temp\build23025.tmp\sketch_090301a.hex': No such file

Heh. What a coincidence; I've been working with PS2 keyboards recently as well, and had the same issue. I think the Arduino environment has changed since the library was written (in particular, there are now "attachInterrupt" functions to attach to the main interrupts, rather than having to write the vectors yourself.) Hmm. I didn't save clean differences after "fixes" and before I went off to make all sorts of other changes, but the general idea is:

replace ISR(INT1_vect)with void ps2interrupt (void)
Change the end of PS2Keyboard::begin to look like:

  attachInterrupt(1, ps2interrupt, FALLING);
#if 0
  // Global Enable INT1 interrupt
  EIMSK |= ( 1 << INT1);
  // Falling edge triggers interrupt
  EICRA |= (0 << ISC10) | (1 << ISC11);
#endif
}

Ultimately, I got rather unsatisfied with the existing PS2 Library and wrote some new code based on polling instead of interrupts. It's sorta "not quite ready for publication" (and it's C rather than C++), but you can get it or look at it at Google Code Archive - Long-term storage for Google Code Project Hosting.

It has a couple of advantages: 1. Can use any two IO pins for polled clock and data signals; does not require interrupts.
2. Keeps the keyboard "flow controlled" when not being read, so that keystrokes will be buffered.
3. Supports writing to the keyboard as well as reading, for setting LEDs and etc.
4. Compresses extended keycodes into a single response.
5. Returns information about key release events as well as keypress events.
6. Includes code to translate key events to ascii.

westfw:

Thanks a whole bunch. I had to modify (not too much) to make it happen. Your fixes worked well.

Maybe someone should upload a "version 2" for the new board.

:)Thanks again!