Commit e1a237441dbe31873d6d9c7d9eee2f1653b5f9e8
1 parent
57c30724
port 92 access
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@708 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
14 additions
and
0 deletions
hw/pc.c
... | ... | @@ -177,6 +177,17 @@ static uint32_t speaker_ioport_read(void *opaque, uint32_t addr) |
177 | 177 | (dummy_refresh_clock << 4); |
178 | 178 | } |
179 | 179 | |
180 | +static void ioport92_write(void *opaque, uint32_t addr, uint32_t val) | |
181 | +{ | |
182 | + cpu_x86_set_a20(cpu_single_env, (val >> 1) & 1); | |
183 | + /* XXX: bit 0 is fast reset */ | |
184 | +} | |
185 | + | |
186 | +static uint32_t ioport92_read(void *opaque, uint32_t addr) | |
187 | +{ | |
188 | + return ((cpu_single_env->a20_mask >> 20) & 1) << 1; | |
189 | +} | |
190 | + | |
180 | 191 | /***********************************************************/ |
181 | 192 | /* Bochs BIOS debug ports */ |
182 | 193 | |
... | ... | @@ -355,6 +366,9 @@ void pc_init(int ram_size, int vga_ram_size, int boot_device, |
355 | 366 | register_ioport_read(0x61, 1, 1, speaker_ioport_read, NULL); |
356 | 367 | register_ioport_write(0x61, 1, 1, speaker_ioport_write, NULL); |
357 | 368 | |
369 | + register_ioport_read(0x92, 1, 1, ioport92_read, NULL); | |
370 | + register_ioport_write(0x92, 1, 1, ioport92_write, NULL); | |
371 | + | |
358 | 372 | pic_init(); |
359 | 373 | pit_init(0x40, 0); |
360 | 374 | ... | ... |