struct Mouse : Controller {
  uint2 data();
  void latch(bool data);
  Mouse(bool port);

private:
  bool latched;
  unsigned counter;

  unsigned speed;  //0 = slow, 1 = normal, 2 = fast
  signed x;        //x-coordinate
  signed y;        //y-coordinate
  bool dx;         //x-direction
  bool dy;         //y-direction
  bool l;          //left button
  bool r;          //right button
};
