diff options
Diffstat (limited to 'comboot.inc')
-rw-r--r-- | comboot.inc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/comboot.inc b/comboot.inc index 90d9e4b1..91e260a0 100644 --- a/comboot.inc +++ b/comboot.inc @@ -681,6 +681,44 @@ comapi_features: clc ret +; +; INT 22h AX=0016h Run kernel image +; +comapi_runkernel: + push ds + mov ds,P_DS + mov si,P_SI + mov di,KernelName + push di + call mangle_name + pop di + pop ds + call searchdir + jz comapi_err ; Kernel doesn't exist + + ; The kernel image was found, so we can load it... + mov [Kernel_SI],si + mov [Kernel_EAX],ax + mov [Kernel_EAX+2],dx + + push es + mov ds,P_ES + mov si,P_BX + push word real_mode_seg + pop es + mov di,cmd_line_here + call strcpy + dec di + mov [CmdLinePtr],di + pop es + +%if IS_PXELINUX + mov al,P_CL + mov [IPAppend],al +%endif + + mov bx,kernel_good_saved + section .data int21_table: int21 00h, comboot_return |