1 ; -----------------------------------------------------------------------
3 ; Copyright 1999-2008 H. Peter Anvin - All Rights Reserved
5 ; This program is free software; you can redistribute it and/or modify
6 ; it under the terms of the GNU General Public License as published by
7 ; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
8 ; Boston MA 02110-1301, USA; either version 2 of the License, or
9 ; (at your option) any later version; incorporated herein by reference.
11 ; -----------------------------------------------------------------------
16 ; Boot from a local disk, or invoke INT 18h.
22 ; Boot a specified local disk. AX specifies the BIOS disk number; or
23 ; -1 in case we should execute INT 18h ("next device.")
29 RESET_STACK_AND_SEGS dx ; dx <- 0
38 ; Load boot sector from the specified BIOS device and jump to it.
42 xor ax,ax ; Reset drive
44 mov ax,0201h ; Read one sector
45 mov cx,0001h ; C/H/S = 0/0/1 (first sector)
55 jmp kaboom ; Failure...
58 cli ; Abandon hope, ye who enter here
61 mov cx,512 ; Probably overkill, but should be safe
65 jmp 0:07C00h ; Jump to new boot sector
68 int 18h ; Hope this does the right thing...
69 jmp kaboom ; If we returned, oh boy...
72 localboot_msg db 'Booting from local disk...', CR, LF, 0
76 %endif ; HAS_LOCALBOOT