summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2008-06-30 22:21:47 -0700
committerH. Peter Anvin <hpa@zytor.com>2008-06-30 22:21:47 -0700
commit5c2daee46d7bcba1e102d1567e7795fb1bff94a9 (patch)
tree4be2db30fb3caed47c5c7aef6a6ab5316ea22ec3
parentacf9a9fcc779b9b8afb926dbd1a3858aa0ba7af3 (diff)
downloadsyslinux-5c2daee46d7bcba1e102d1567e7795fb1bff94a9.tar.gz
comboot: issue IRET for INT 2Fh
At least one laptop exists which calls INT 2Fh from inside the BIOS! So just point INT 2Fh to IRET, and hope that's good enough.
-rw-r--r--core/comboot.inc5
1 files changed, 5 insertions, 0 deletions
diff --git a/core/comboot.inc b/core/comboot.inc
index 40f8817c..659b3bb0 100644
--- a/core/comboot.inc
+++ b/core/comboot.inc
@@ -175,6 +175,10 @@ comboot_setup_api:
stosd
mov ax,comboot_int22 ; INT 22h = proprietary syscalls
stosd
+ ; There exists at least one laptop where the VESA BIOS makes INT 2Fh calls
+ ; back into DOS, for unknown reason...
+ mov ax,comboot_iret ; INT 2Fh = DOS callbacks
+ mov [di+(2Fh-23h)*4],eax
ret
; INT 21h: generic DOS system call
@@ -210,6 +214,7 @@ comboot_resume:
pop fs
pop es
pop ds
+comboot_iret:
iret
comboot_bad_int21: