aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2006-08-17 15:00:50 -0700
committerH. Peter Anvin <hpa@zytor.com>2006-08-17 15:00:50 -0700
commit1450ab11b6f09bb35dc3e9419a3a1e4dc9b9dfe6 (patch)
treefdbdff6bdfdb721a7dc366150a2a20cf46736528
parent42b6c1d14f13b42a3478de9cdd4fc3c976d6d895 (diff)
downloadsyslinux.git-syslinux-3.20-pre13.tar.gz
syslinux.git-syslinux-3.20-pre13.tar.xz
syslinux.git-syslinux-3.20-pre13.zip
The RESET_STACK change broke SYSLINUX & EXTLINUX. Fix.syslinux-3.20-pre13
-rw-r--r--abort.inc2
-rw-r--r--comboot.inc13
-rw-r--r--stack.inc2
3 files changed, 9 insertions, 8 deletions
diff --git a/abort.inc b/abort.inc
index 5b87c682..f1773b5f 100644
--- a/abort.inc
+++ b/abort.inc
@@ -49,7 +49,7 @@ abort_load:
mov ax,cs ; Restore CS = DS = ES
mov ds,ax
mov es,ax
- RESET_STACK
+ RESET_STACK ; AX must = 0
sti
call cwritestr ; Expects SI -> error msg
diff --git a/comboot.inc b/comboot.inc
index a238642d..e0350655 100644
--- a/comboot.inc
+++ b/comboot.inc
@@ -206,15 +206,16 @@ comboot_bogus: cli ; Don't trust anyone
comboot_exit:
mov bx,enter_command ; Normal return to command prompt
comboot_exit_special:
- xor dx,dx
- mov ds,dx
- mov es,dx
- RESET_STACK
+ mov cx,ax
+ xor ax,ax
+ mov ds,ax
+ mov es,ax
+ RESET_STACK ; AX must = 0
sti
cld
call adjust_screen ; The COMBOOT program might have changed the screen
- and ax,ax
- je .nomsg
+ jcxz .nomsg
+ mov ax,cx
mov si,KernelCName
call cwritestr
xchg si,ax
diff --git a/stack.inc b/stack.inc
index c3297ed1..f3ec26ec 100644
--- a/stack.inc
+++ b/stack.inc
@@ -20,7 +20,7 @@
%define _STACK_INC
;
-; This macro resets the stack pointer. It assumes CS == DS.
+; This macro resets the stack pointer. It assumes CS == DS and AX == 0.
;
%macro RESET_STACK 0
%if IS_SYSLINUX || IS_EXTLINUX