# PS/2 keyboard

The unit at [drv/ps2.fs] implements Keyboard structs [doc/sys/kbd] for PS/2.  It
consists of structs PS2Set1Keyboard and PS2Set2Keyboard that extend Keyboard.
They feed themselves from the "(ps2@?) ( -- ?keycode f )" word, which must be
implemented and then realiased by specific drivers.

For example, 8042kbd@? from [drv/pc/pc28042.fs] is such an implementation.

That word checks if the controller has received a keycode from its keyboard.
If it has, f=1 and keycode is the PS/2 key code received from the device.
Otherwise, f=0.

The PS/2 keyboard struct is created through its ":new ( -- kbd )" word. We can
then rebind the global "keyboard" structbind to it. Example:

  PS2Set1Keyboard :new rebind' keyboard
