aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--comboot.inc2
-rw-r--r--pxelinux.asm9
2 files changed, 10 insertions, 1 deletions
diff --git a/comboot.inc b/comboot.inc
index 35cc7f9f..df9bb001 100644
--- a/comboot.inc
+++ b/comboot.inc
@@ -446,8 +446,8 @@ comapi_pxecall:
mov es,P_ES
mov di,P_DI
call pxenv
+ mov ax,[PXEStatus]
mov P_AX,ax
- clc
ret
%else
comapi_pxecall equ comapi_err ; Not available
diff --git a/pxelinux.asm b/pxelinux.asm
index 8be844fa..c4feee2e 100644
--- a/pxelinux.asm
+++ b/pxelinux.asm
@@ -1712,6 +1712,7 @@ pxenv:
push bx
.jump: call 0:0
add sp,6
+ mov [cs:PXEStatus],ax
add ax,-1 ; Set CF unless AX was 0
%if USE_PXE_PROVIDED_STACK == 0
@@ -1722,6 +1723,8 @@ pxenv:
; except for testing it against zero (and setting CF),
; which we did above. For anything else,
; use the Status field in the reply.
+ ; For the COMBOOT function, the value is saved in
+ ; the PXEStatus variable.
popad
cld ; Make sure DF <- 0
ret
@@ -1729,6 +1732,12 @@ pxenv:
; Must be after function def due to NASM bug
PXEEntry equ pxenv.jump+1
+ section .bss
+ alignb 2
+PXEStatus resb 2
+
+ section .text
+
;
; getfssec: Get multiple clusters from a file, given the starting cluster.
;