syslinux/syslinux-debug.diff

102 lines
2.3 KiB
Diff

---
core/isolinux.asm | 33 +++++++++++++++++++++++++++++++++
core/layout.inc | 7 +++++++
core/parsecmd.inc | 8 ++++++++
3 files changed, 48 insertions(+)
--- a/core/isolinux.asm
+++ b/core/isolinux.asm
@@ -20,6 +20,9 @@
; ****************************************************************************
%define IS_ISOLINUX 1
+
+; %define DEBUG_DISKIO
+
%include "head.inc"
;
@@ -964,10 +967,40 @@ getlinsec_cdrom:
; INT 13h with retry
xint13: mov byte [RetryCount],retry_count
.try: pushad
+%ifdef DEBUG_DISKIO
+ pushad
+ mov cx,16
+.zap:
+ lodsb
+ call writehex2
+ mov al,' '
+ call writechr
+ loop .zap
+ mov ah,0
+ int 16h
+ popad
+%endif
; seen buggy bios that overwrites buffer address on error...
push dword [dapa + 4]
call int13
pop dword [dapa + 4]
+%ifdef DEBUG_DISKIO
+ pushad
+ pushf
+ push ax
+ mov al,':'
+ call writechr
+ mov al,' '
+ call writechr
+ pop ax
+ sbb al,al
+ call writehex4
+ call crlf
+ mov ah,0
+ int 16h
+ popf
+ popad
+%endif
jc .error
.noerror:
add sp,byte 8*4 ; Clean up stack
--- a/core/layout.inc
+++ b/core/layout.inc
@@ -56,6 +56,11 @@ RBFG_brainfuck: resb 2048 ; Bigger than
section .bss2 write nobits align=16
+%ifdef IS_ISOLINUX
+ ; Normal bss...
+ section .bss1 write nobits align=16
+%endif
+
section .text exec write progbits align=16
section .bcopyxx exec write progbits align=16
section .data write progbits align=16
@@ -68,8 +73,10 @@ RBFG_brainfuck: resb 2048 ; Bigger than
; the spillover from the last fractional sector load.
section .uibss write nobits align=16
+%ifndef IS_ISOLINUX
; Normal bss...
section .bss1 write nobits align=16
+%endif
; Symbols from linker script
%macro SECINFO 1
--- a/core/parsecmd.inc
+++ b/core/parsecmd.inc
@@ -121,6 +121,14 @@ KbdMap resb 256 ; Keyboard map
FKeyName resb MAX_FKEYS*FILENAME_MAX ; File names for F-key help
KernelCNameLen resw 1 ; Length of unmangled kernel name
InitRDCNameLen resw 1 ; Length of unmangled initrd name
+
+%if IS_ISOLINUX
+%ifdef DEBUG_MESSAGES
+; we need to rearrange memory a bit to make isolinux-debug.bin fit
+ section .bss
+%endif
+%endif
+
%if IS_SYSLINUX
KernelName resb FILENAME_MAX+1 ; Mangled name for kernel
KernelCName resb FILENAME_MAX+2 ; Unmangled kernel name