Added the ability to enable/disable the KBC (used by the FDC37C93x Super I/O chips).
This commit is contained in:
@@ -1986,6 +1986,18 @@ kbc_at_close(void *priv)
|
|||||||
free(dev);
|
free(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
kbc_at_handler(int set, void *priv)
|
||||||
|
{
|
||||||
|
io_removehandler(0x0060, 1, kbc_at_read, NULL, NULL, kbc_at_write, NULL, NULL, priv);
|
||||||
|
io_removehandler(0x0064, 1, kbc_at_read, NULL, NULL, kbc_at_write, NULL, NULL, priv);
|
||||||
|
|
||||||
|
if (set) {
|
||||||
|
io_sethandler(0x0060, 1, kbc_at_read, NULL, NULL, kbc_at_write, NULL, NULL, priv);
|
||||||
|
io_sethandler(0x0064, 1, kbc_at_read, NULL, NULL, kbc_at_write, NULL, NULL, priv);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void *
|
static void *
|
||||||
kbc_at_init(const device_t *info)
|
kbc_at_init(const device_t *info)
|
||||||
{
|
{
|
||||||
@@ -2003,8 +2015,7 @@ kbc_at_init(const device_t *info)
|
|||||||
if (info->flags & DEVICE_PCI)
|
if (info->flags & DEVICE_PCI)
|
||||||
dev->misc_flags |= FLAG_PCI;
|
dev->misc_flags |= FLAG_PCI;
|
||||||
|
|
||||||
io_sethandler(0x0060, 1, kbc_at_read, NULL, NULL, kbc_at_write, NULL, NULL, dev);
|
kbc_at_handler(1, dev);
|
||||||
io_sethandler(0x0064, 1, kbc_at_read, NULL, NULL, kbc_at_write, NULL, NULL, dev);
|
|
||||||
|
|
||||||
timer_add(&dev->kbc_poll_timer, kbc_at_poll, dev, 1);
|
timer_add(&dev->kbc_poll_timer, kbc_at_poll, dev, 1);
|
||||||
timer_add(&dev->pulse_cb, pulse_poll, dev, 0);
|
timer_add(&dev->pulse_cb, pulse_poll, dev, 0);
|
||||||
|
@@ -276,6 +276,7 @@ extern int keyboard_isfsexit_up(void);
|
|||||||
extern int keyboard_ismsexit(void);
|
extern int keyboard_ismsexit(void);
|
||||||
extern void keyboard_set_is_amstrad(int ams);
|
extern void keyboard_set_is_amstrad(int ams);
|
||||||
|
|
||||||
|
extern void kbc_at_handler(int set, void *priv);
|
||||||
extern uint8_t kbc_at_dev_queue_pos(atkbc_dev_t *dev, uint8_t main);
|
extern uint8_t kbc_at_dev_queue_pos(atkbc_dev_t *dev, uint8_t main);
|
||||||
extern void kbc_at_dev_queue_add(atkbc_dev_t *dev, uint8_t val, uint8_t main);
|
extern void kbc_at_dev_queue_add(atkbc_dev_t *dev, uint8_t val, uint8_t main);
|
||||||
extern void kbc_at_dev_reset(atkbc_dev_t *dev, int do_fa);
|
extern void kbc_at_dev_reset(atkbc_dev_t *dev, int do_fa);
|
||||||
|
Reference in New Issue
Block a user