summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/machine/8042kbdc.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/machine/8042kbdc.h')
-rw-r--r--trunk/src/emu/machine/8042kbdc.h41
1 files changed, 41 insertions, 0 deletions
diff --git a/trunk/src/emu/machine/8042kbdc.h b/trunk/src/emu/machine/8042kbdc.h
new file mode 100644
index 00000000000..35dc301d570
--- /dev/null
+++ b/trunk/src/emu/machine/8042kbdc.h
@@ -0,0 +1,41 @@
+/**********************************************************************
+
+ 8042 Keyboard Controller Emulation
+
+ This is the keyboard controller used in the IBM AT and further
+ models. It is a popular controller for PC style keyboards
+
+**********************************************************************/
+
+#ifndef KBDC8042_H
+#define KBDC8042_H
+
+typedef enum
+{
+ KBDC8042_STANDARD,
+ KBDC8042_PS2, /* another timing of integrated controller */
+ KBDC8042_AT386 /* hack for at386 driver */
+} kbdc8042_type_t;
+
+
+struct kbdc8042_interface
+{
+ kbdc8042_type_t type;
+ void (*set_gate_a20)(running_machine &machine, int a20);
+ void (*keyboard_interrupt)(running_machine &machine, int state);
+ int (*get_out2)(running_machine &machine);
+};
+
+
+
+void kbdc8042_init(running_machine &machine, const struct kbdc8042_interface *intf);
+
+READ8_HANDLER(kbdc8042_8_r);
+WRITE8_HANDLER(kbdc8042_8_w);
+READ32_HANDLER(kbdc8042_32le_r);
+WRITE32_HANDLER(kbdc8042_32le_w);
+READ64_HANDLER(kbdc8042_64be_r);
+WRITE64_HANDLER(kbdc8042_64be_w);
+
+#endif /* KBDC8042_H */
+