diff options
Diffstat (limited to 'comboot.inc')
| -rw-r--r-- | comboot.inc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/comboot.inc b/comboot.inc index c8dbff11..e421d67f 100644 --- a/comboot.inc +++ b/comboot.inc @@ -518,7 +518,9 @@ comapi_cleanup: ; Unload PXE if requested test dl,3 setnz [KeepPXE] + sub bp,sp ; unload_pxe may move the stack around call unload_pxe + add bp,sp ; restore frame pointer... %elif IS_SYSLINUX || IS_MDSLINUX ; Restore original FDC table mov eax,[OrigFDCTabPtr] @@ -531,6 +533,19 @@ comapi_cleanup: clc ret + +; +; INT 22h AX=000Dh Clean up then replace bootstrap +; +comapi_chainboot: + call comapi_cleanup + mov esi,P_ESI + mov edx,P_EBX + mov bx,P_DS + push P_EDI + push P_ECX + jmp replace_bootstrap + ; ; This stuff should really be in the data section... ; @@ -567,6 +582,7 @@ int22_table: dw comapi_derinfo ; 000A derivative-specific info dw comapi_serialcfg ; 000B get serial port config dw comapi_cleanup ; 000C perform final cleanup + dw comapi_chainboot ; 000D clean up then bootstrap int22_count equ ($-int22_table)/2 APIKeyWait db 0 |
