+ /* Return Position And Button Status */
+ case 0x03:
+ {
+ setBX(DriverState.ButtonState);
+ setCX(DriverState.Position.X);
+ setDX(DriverState.Position.Y);
+
+ break;
+ }
+
+ /* Position Mouse Cursor */
+ case 0x04:
+ {
+ POINT Point;
+
+ Point.x = getCX();
+ Point.y = getDX();
+
+ ClientToScreen(GetConsoleWindow(), &Point);
+ SetCursorPos(Point.x, Point.y);
+
+ break;
+ }
+
+ /* Return Button Press Data */
+ case 0x05:
+ {
+ WORD Button = getBX();
+
+ setAX(DriverState.ButtonState);
+ setBX(DriverState.PressCount[Button]);
+ setCX(DriverState.LastPress[Button].X);
+ setDX(DriverState.LastPress[Button].Y);
+
+ /* Reset the counter */
+ DriverState.PressCount[Button] = 0;
+
+ break;
+ }
+
+ /* Return Button Release Data */
+ case 0x06:
+ {
+ WORD Button = getBX();
+
+ setAX(DriverState.ButtonState);
+ setBX(DriverState.ReleaseCount[Button]);
+ setCX(DriverState.LastRelease[Button].X);
+ setDX(DriverState.LastRelease[Button].Y);
+
+ /* Reset the counter */
+ DriverState.ReleaseCount[Button] = 0;
+
+ break;
+
+ }
+