void keyb_8042_init(void) { emu_iodev_t io_device; /* 8042 keyboard controller */ io_device.read_portb = keyb_io_read; io_device.write_portb = keyb_io_write; io_device.read_portw = NULL; io_device.write_portw = NULL; io_device.read_portd = NULL; io_device.write_portd = NULL; io_device.handler_name = "8042 Keyboard data"; io_device.start_addr = 0x0060; io_device.end_addr = 0x0060; io_device.irq = 1; io_device.fd = -1; port_register_handler(io_device, 0); io_device.handler_name = "8042 Keyboard command"; io_device.start_addr = 0x0064; io_device.end_addr = 0x0064; io_device.irq = EMU_NO_IRQ; port_register_handler(io_device, 0); io_device.handler_name = "Keyboard controller port B"; io_device.start_addr = 0x0061; io_device.end_addr = 0x0061; port_register_handler(io_device, 0); }
void pic_init(void) { /* do any one-time initialization of the PIC */ emu_iodev_t io_device; /* 8259 PIC (Programmable Interrupt Controller) */ io_device.read_portb = read_pic0; io_device.write_portb = write_pic0; io_device.read_portw = NULL; io_device.write_portw = NULL; io_device.read_portd = NULL; io_device.write_portd = NULL; io_device.handler_name = "8259 PIC0"; io_device.start_addr = 0x0020; io_device.end_addr = 0x0021; io_device.irq = EMU_NO_IRQ; io_device.fd = -1; port_register_handler(io_device, 0); io_device.handler_name = "8259 PIC1"; io_device.start_addr = 0x00A0; io_device.end_addr = 0x00A1; io_device.read_portb = read_pic1; io_device.write_portb = write_pic1; port_register_handler(io_device, 0); }
void dma_init(void) { emu_iodev_t io_device; /* 8237 DMA controller */ io_device.read_portb = dma_io_read; io_device.write_portb = dma_io_write; io_device.read_portw = NULL; io_device.write_portw = NULL; io_device.read_portd = NULL; io_device.write_portd = NULL; io_device.irq = EMU_NO_IRQ; io_device.fd = -1; /* * XT Controller */ io_device.start_addr = 0x0000; io_device.end_addr = 0x000F; io_device.handler_name = "DMA - XT Controller"; port_register_handler(io_device, 0); /* * Page Registers (XT) */ io_device.start_addr = 0x0081; io_device.end_addr = 0x0087; io_device.handler_name = "DMA - XT Pages"; port_register_handler(io_device, 0); /* * AT Controller */ io_device.start_addr = 0x00C0; io_device.end_addr = 0x00DE; io_device.handler_name = "DMA - AT Controller"; port_register_handler(io_device, 0); /* * Page Registers (AT) */ io_device.start_addr = 0x0089; io_device.end_addr = 0x008F; io_device.handler_name = "DMA - AT Pages"; port_register_handler(io_device, 0); q_printf("DMA: DMA Controller initialized - 8 & 16 bit modes\n"); }
void opl3_init(void) { emu_iodev_t io_device; S_printf("SB: OPL3 Initialization\n"); /* This is the FM (Adlib + Advanced Adlib) */ io_device.read_portb = adlib_io_read; io_device.write_portb = adlib_io_write; io_device.read_portw = NULL; io_device.write_portw = NULL; io_device.read_portd = NULL; io_device.write_portd = NULL; io_device.handler_name = "Adlib (+ Advanced) Emulation"; io_device.start_addr = ADLIB_BASE; io_device.end_addr = ADLIB_BASE + 3; io_device.irq = EMU_NO_IRQ; io_device.fd = -1; if (port_register_handler(io_device, 0) != 0) { error("ADLIB: Cannot registering port handler\n"); } #ifdef HAS_YMF262 opl3 = YMF262Init(OPL3_INTERNAL_FREQ, opl3_rate); YMF262SetTimerHandler(opl3, opl3_set_timer, &opl3_timers); YMF262SetUpdateHandler(opl3, opl3_update, NULL); #endif }
void chipset_init(void) { emu_iodev_t io_dev; io_dev.read_portb = port92h_io_read; io_dev.write_portb = port92h_io_write; io_dev.read_portw = NULL; io_dev.write_portw = NULL; io_dev.read_portd = NULL; io_dev.write_portd = NULL; io_dev.irq = EMU_NO_IRQ; io_dev.fd = -1; io_dev.start_addr = 0x92; io_dev.end_addr = 0x92; io_dev.handler_name = "Chipset Control Port A"; port_register_handler(io_dev, 0); }