aboutsummaryrefslogtreecommitdiffstats
path: root/src/system.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2008-02-25 22:30:47 -0500
committerKevin O'Connor <kevin@koconnor.net>2008-02-25 22:30:47 -0500
commit38fcbfeebc7ce9c1aa940c1b98f6141f161a6ff4 (patch)
tree31ca1bb3a2f9a8d44695df13a183d01ca87abe3e /src/system.c
parent4b60c000deee2002ba272b45a1121df7495c39f9 (diff)
downloadseabios-rel-0.1.2.tar.gz
Version 0.1.2rel-0.1.2
Diffstat (limited to 'src/system.c')
-rw-r--r--src/system.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/system.c b/src/system.c
index 3967fc49..f54f9308 100644
--- a/src/system.c
+++ b/src/system.c
@@ -282,6 +282,13 @@ handle_1591(struct bregs *regs)
{
}
+// keyboard intercept
+static void
+handle_154f(struct bregs *regs)
+{
+ set_cf(regs, 1);
+}
+
static void
handle_15c0(struct bregs *regs)
{
@@ -453,6 +460,7 @@ handle_15(struct bregs *regs)
default: handle_1524XX(regs); break;
}
break;
+ case 0x4f: handle_154f(regs); break;
case 0x52: handle_1552(regs); break;
case 0x83:
switch (regs->al) {
@@ -526,4 +534,13 @@ void VISIBLE
handle_75(struct bregs *regs)
{
debug_enter(regs);
+
+ // clear irq13
+ outb(0, PORT_MATH_CLEAR);
+ // clear interrupt
+ eoi_both_pics();
+ // legacy nmi call
+ struct bregs br;
+ memset(&br, 0, sizeof(br));
+ call16_int(0x02, &br);
}