[syslinux] [PATCH] isohdpfx: Ctrl-key press forces load from first hard disk
TJ
ubuntu at tjworld.net
Mon Mar 30 12:09:09 PDT 2009
---
mbr/isohdpfx.S | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/mbr/isohdpfx.S b/mbr/isohdpfx.S
index 9e9d55c..cccdcc9 100644
--- a/mbr/isohdpfx.S
+++ b/mbr/isohdpfx.S
@@ -67,6 +67,7 @@ _start:
movw %ax, %ss
movw $stack, %sp
movw %sp, %si
+ movw %sp, %bp /* needed later if drive number is to be forced due to Ctrl key being pressed */
pushw %es /* es:di -> $PnP header */
pushw %di
pushw %dx /* dl -> drive number */
@@ -82,7 +83,18 @@ _start:
ljmpw $0, $next
next:
+ /* Provide a way for the user to force boot from first hard-disk by pressing a Ctrl key */
+get_shift_keys:
+ movb $0x02, %ah /* function: get keyboard shift flags */
+ int $0x16 /* read keys; shift flags returned in AL */
+ testb $0x04, %al /* control key pressed? */
+ jz detect_bios_type
+force_first_hard_disk:
+ movb $0x80, -6(%bp) /* offset from top-of-stack to drive number; force it to be first hard disk */
+
+detect_bios_type:
/* Check to see if we have EBIOS */
+ movw (driveno), %dx
pushw %dx /* drive number */
movb $0x41, %ah /* %al == 0 already */
movw $0x55aa, %bx
--
1.6.0.4
More information about the Syslinux
mailing list