Implement basic "eoi_jmp_post" code to post step.
This commit is contained in:
parent
e78cc6c6c3
commit
d427a3f85a
|
@ -52,8 +52,11 @@ struct bios_data_area_s {
|
|||
u8 floppy_return_status[7];
|
||||
u8 other1[0x7];
|
||||
// 40:50
|
||||
u8 other2[0x1c];
|
||||
// 40:6c
|
||||
u8 other2[0x10];
|
||||
// 40:60
|
||||
u8 other3[0x7];
|
||||
u32 jump_cs_ip;
|
||||
u8 dummy;
|
||||
u32 timer_counter;
|
||||
// 40:70
|
||||
u8 timer_rollover;
|
||||
|
|
16
src/post.c
16
src/post.c
|
@ -548,6 +548,19 @@ init_dma()
|
|||
outb(0x00, PORT_DMA2_MASK_REG);
|
||||
}
|
||||
|
||||
static void
|
||||
eoi_jmp_post()
|
||||
{
|
||||
// XXX - this is supposed to jump without changing any memory -
|
||||
// but the stack has been altered by the time the code gets here.
|
||||
eoi_both_pics();
|
||||
struct bregs br;
|
||||
memset(&br, 0, sizeof(br));
|
||||
br.cs = bda->jump_cs_ip >> 16;
|
||||
br.ip = bda->jump_cs_ip;
|
||||
call16(&br);
|
||||
}
|
||||
|
||||
static void
|
||||
check_restart_status()
|
||||
{
|
||||
|
@ -559,11 +572,8 @@ check_restart_status()
|
|||
// Normal post
|
||||
return;
|
||||
|
||||
// XXX
|
||||
#if 0
|
||||
if (status == 0x05)
|
||||
eoi_jmp_post();
|
||||
#endif
|
||||
|
||||
BX_PANIC("Unimplemented shutdown status: %02x\n",(Bit8u)status);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue