summaryrefslogtreecommitdiff
path: root/core/pxelinux.asm
diff options
context:
space:
mode:
Diffstat (limited to 'core/pxelinux.asm')
-rw-r--r--core/pxelinux.asm21
1 files changed, 20 insertions, 1 deletions
diff --git a/core/pxelinux.asm b/core/pxelinux.asm
index 185b90f1..3e2bc0a1 100644
--- a/core/pxelinux.asm
+++ b/core/pxelinux.asm
@@ -289,7 +289,26 @@ KernelName resb FILENAME_MAX ; Mangled name for kernel
; Hardware cleanup common code
;
-%include "localboot.inc"
+ section .text16
+ global local_boot16:function hidden
+local_boot16:
+ mov [LocalBootType],ax
+ lss sp,[InitStack]
+ pop gs
+ pop fs
+ pop es
+ pop ds
+ popad
+ mov ax,[cs:LocalBootType]
+ cmp ax,-1 ; localboot -1 == INT 18h
+ je .int18
+ popfd
+ retf ; Return to PXE
+.int18:
+ popfd
+ int 18h
+ jmp 0F000h:0FFF0h
+ hlt
;
; kaboom: write a message and bail out. Wait for quite a while,