// bit 0 : 16 bit interface supported
// bit 1 : 32 bit interface supported
regs->cx = 0x03;
- set_cf(regs, 0);
+ set_success(regs);
}
// APM real mode interface connect
static void
handle_155301(struct bregs *regs)
{
- set_cf(regs, 0);
+ set_success(regs);
}
// Assembler entry points defined in romlayout.S
regs->si = 0xfff0; // 16 bit code segment size
regs->cx = SEG_BIOS; // data segment address
regs->di = 0xfff0; // data segment length
- set_cf(regs, 0);
+ set_success(regs);
}
// APM 32 bit protected mode interface connect
regs->esi = 0xfff0fff0;
regs->dx = SEG_BIOS; // data segment address
regs->di = 0xfff0; // data segment length
- set_cf(regs, 0);
+ set_success(regs);
}
// APM interface disconnect
static void
handle_155304(struct bregs *regs)
{
- set_cf(regs, 0);
+ set_success(regs);
}
// APM cpu idle
{
irq_enable();
hlt();
- set_cf(regs, 0);
+ set_success(regs);
}
// APM Set Power State
handle_155307(struct bregs *regs)
{
if (regs->bx != 1) {
- set_cf(regs, 0);
+ set_success(regs);
return;
}
switch (regs->cx) {
hlt();
break;
}
- set_cf(regs, 0);
+ set_success(regs);
}
static void
handle_155308(struct bregs *regs)
{
- set_cf(regs, 0);
+ set_success(regs);
}
// Get Power Status
regs->cl = 0xff; // unknown remaining time
regs->dx = 0xffff; // unknown remaining time
regs->si = 0x00; // zero battery
- set_cf(regs, 0);
+ set_success(regs);
}
// Get PM Event
static void
handle_15530b(struct bregs *regs)
{
+ set_fail(regs);
regs->ah = 0x80; // no event pending
- set_cf(regs, 1);
}
// APM Driver Version
{
regs->ah = 1;
regs->al = 2;
- set_cf(regs, 0);
+ set_success(regs);
}
// APM Engage / Disengage
static void
handle_15530f(struct bregs *regs)
{
- set_cf(regs, 0);
+ set_success(regs);
}
// APM Get Capabilities
{
regs->bl = 0;
regs->cx = 0;
- set_cf(regs, 0);
+ set_success(regs);
}
static void
handle_1553XX(struct bregs *regs)
{
- set_cf(regs, 1);
+ set_fail(regs);
}
void VISIBLE16