Use the extra stack for 16bit USB and PS2 keyboard/mouse commands.

Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
diff --git a/src/kbd.c b/src/kbd.c
index 586d57e..0da13a1 100644
--- a/src/kbd.c
+++ b/src/kbd.c
@@ -110,12 +110,12 @@
     SET_BDA(kbd_buf_head, buffer_head);
 }
 
-static inline int
+static int
 kbd_command(int command, u8 *param)
 {
     if (usb_kbd_active())
-        return usb_kbd_command(command, param);
-    return ps2_kbd_command(command, param);
+        return stack_hop(command, (u32)param, usb_kbd_command);
+    return stack_hop(command, (u32)param, ps2_kbd_command);
 }
 
 // read keyboard input
diff --git a/src/mouse.c b/src/mouse.c
index 93e4ed2..ece69db 100644
--- a/src/mouse.c
+++ b/src/mouse.c
@@ -21,12 +21,12 @@
     SETBITS_BDA(equipment_list_flags, 0x04);
 }
 
-static inline int
+static int
 mouse_command(int command, u8 *param)
 {
     if (usb_mouse_active())
-        return usb_mouse_command(command, param);
-    return ps2_mouse_command(command, param);
+        return stack_hop(command, (u32)param, usb_mouse_command);
+    return stack_hop(command, (u32)param, ps2_mouse_command);
 }
 
 #define RET_SUCCESS      0x00