diff options
author | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-04-05 20:26:03 +0000 |
---|---|---|
committer | bellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162> | 2004-04-05 20:26:03 +0000 |
commit | e1a237441dbe31873d6d9c7d9eee2f1653b5f9e8 (patch) | |
tree | 9360ccfe0274393287399fc0583f4dbb033eed70 | |
parent | 57c30724825ac4601da66562ebe56d3147275b47 (diff) |
port 92 access
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@708 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r-- | hw/pc.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -177,6 +177,17 @@ static uint32_t speaker_ioport_read(void *opaque, uint32_t addr) (dummy_refresh_clock << 4); } +static void ioport92_write(void *opaque, uint32_t addr, uint32_t val) +{ + cpu_x86_set_a20(cpu_single_env, (val >> 1) & 1); + /* XXX: bit 0 is fast reset */ +} + +static uint32_t ioport92_read(void *opaque, uint32_t addr) +{ + return ((cpu_single_env->a20_mask >> 20) & 1) << 1; +} + /***********************************************************/ /* Bochs BIOS debug ports */ @@ -355,6 +366,9 @@ void pc_init(int ram_size, int vga_ram_size, int boot_device, register_ioport_read(0x61, 1, 1, speaker_ioport_read, NULL); register_ioport_write(0x61, 1, 1, speaker_ioport_write, NULL); + register_ioport_read(0x92, 1, 1, ioport92_read, NULL); + register_ioport_write(0x92, 1, 1, ioport92_write, NULL); + pic_init(); pit_init(0x40, 0); |