summaryrefslogtreecommitdiff
path: root/core/comboot.inc
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-04-13 20:06:00 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-04-13 20:06:00 -0700
commitbcd83930da11aa59feeea0a403052b2511f469a4 (patch)
tree73512185baaf4f628d78681dffd0a2ff9f5586e5 /core/comboot.inc
parentdae8d6496ecd8afefc5e0bd6543c97f24282804f (diff)
downloadsyslinux-bcd83930da11aa59feeea0a403052b2511f469a4.tar.gz
com32: use xfer_buf_seg as the bounce buffer
We cannot realistically realign comboot_seg without breaking com16 modules (which have the DOS-derived assumption that they own the rest of low memory.) However, we can use xfer_buf_seg as the com32 bounce buffer, which allows us to retain the benefit of a 64K-aligned buffer. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/comboot.inc')
-rw-r--r--core/comboot.inc17
1 files changed, 5 insertions, 12 deletions
diff --git a/core/comboot.inc b/core/comboot.inc
index 724af5f9..c169414f 100644
--- a/core/comboot.inc
+++ b/core/comboot.inc
@@ -777,17 +777,14 @@ comapi_runkernel:
mov [Kernel_EAX],eax
; It's not just possible, but quite likely, that ES:BX
- ; points into real_mode_seg, so we need to exercise some
- ; special care here... use xfer_buf_seg as an intermediary
+ ; points into real_mode_seg or xfer_buf_seg, so we
+ ; need to exercise some special care here... use
+ ; trackbuf as an intermediary
push ds
- push es
- mov ax,xfer_buf_seg
mov ds,P_ES
mov si,P_BX
- mov es,ax
- xor di,di
+ mov di,trackbuf
call strcpy
- pop es
pop ds
%if IS_PXELINUX
@@ -799,18 +796,14 @@ comapi_runkernel:
.finish:
; Copy the command line into its proper place
- push ds
push es
- mov ax,xfer_buf_seg
mov dx,real_mode_seg
- mov ds,ax
mov es,dx
- xor si,si
+ mov si,trackbuf
mov di,cmd_line_here
call strcpy
mov byte [es:di-1],' ' ; Simulate APPEND
pop es
- pop ds
mov [CmdLinePtr],di
mov word [CmdOptPtr],zero_string
jmp kernel_good_saved