102 lines
2.3 KiB
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
|