aboutsummaryrefslogtreecommitdiffstats
path: root/core/isolinux.asm
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-05-13 22:05:41 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-05-13 22:05:41 -0700
commit95a461a83adf65aa5689b65f85330ce970121f56 (patch)
treede8455836beab1ca73014bf57a0e855542577574 /core/isolinux.asm
parent376a2bfe09b8292140d7a40ce77a1cc7f4316e17 (diff)
downloadsyslinux-95a461a83adf65aa5689b65f85330ce970121f56.tar.gz
core: zero bss and uibss; fix some section confusions
Set .bss and .uibss as soon as we are fully loaded. This gives us the more familiar behavior of most normal execution environments. The .earlybss section is not zeroed; therefore, all variables that are set before we have the opportunity to zero need to go in this section. This checkin also fixes some incorrect section directives. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/isolinux.asm')
-rw-r--r--core/isolinux.asm10
1 files changed, 6 insertions, 4 deletions
diff --git a/core/isolinux.asm b/core/isolinux.asm
index 921f7faf..9183b352 100644
--- a/core/isolinux.asm
+++ b/core/isolinux.asm
@@ -101,8 +101,8 @@ trackbuf resb trackbufsize ; Track buffer goes here
; ends at 2800h
; Some of these are touched before the whole image
- ; is loaded. DO NOT move this to .uibss.
- section .bss
+ ; is loaded. DO NOT move this to .bss/.uibss.
+ section .earlybss
alignb 4
ISOFileName resb 64 ; ISO filename canonicalization buffer
ISOFileNameEnd equ $
@@ -197,6 +197,7 @@ dsp_dummy: resb 1 ; Scratch, safe to overwrite
_spec_end equ $
_spec_len equ _spec_end - _spec_start
+ section .bss
alignb open_file_t_size
Files resb MAX_OPEN*open_file_t_size
@@ -1077,6 +1078,7 @@ rl_checkpt equ $ ; Must be <= 800h
; ----------------------------------------------------------------------------
; End of code and data that have to be in the first sector
; ----------------------------------------------------------------------------
+
section .text
all_read:
@@ -1095,8 +1097,8 @@ all_read:
mov di,writechr
mov al,0e9h
stosb
- mov ax,writechr_full-3
- sub ax,bx
+ mov ax,writechr_full-2
+ sub ax,di
stosw
; Tell the user we got this far...