; INT 22h AX=0011h Maximum number of shuffle descriptors
;
comapi_maxshuffle:
- mov P_CX,(2*trackbufsize)/12
+ mov P_CX,trackbufsize/12
ret
;
section .earlybss
trackbufsize equ 8192
trackbuf resb trackbufsize ; Track buffer goes here
-getcbuf resb trackbufsize
- ; ends at 4800h
+ ; ends at 2800h
section .bss1
SuperBlock resb 1024 ; ext2 superblock
section .earlybss
trackbufsize equ 8192
trackbuf resb trackbufsize ; Track buffer goes here
-getcbuf resb trackbufsize
-; ends at 4800h
+; ends at 2800h
; Some of these are touched before the whole image
; is loaded. DO NOT move this to .uibss.
; but are in order to offload .bss
section .bss1 nobits valign=16 vfollows=.config.end
+ ; Warning here: RBFG build 22 randomly overwrites
+ ; memory location [0x5680,0x576c), possibly more. It
+ ; seems that it gets confused and screws up the
+ ; pointer to its own internal packet buffer and starts
+ ; writing a received ARP packet into low memory.
+%if IS_PXELINUX
+ section .rbfg nobits start=0x5680
+RBFG_brainfuck: resb 2048 ; Bigger than an Ethernet packet...
+%endif
+
+ ; For section following .rbfg
+%if IS_PXELINUX
+ section .bss2 nobits valign=16 vfollows=.rbfg
+%else
+ section .bss2 nobits valign=16 vfollows=.bss1
+%endif
+
section .text start=TEXT_START
; NASM BUG: .data always follows .text; can't override
section .data align=16 ; follows=.text
section .earlybss
trackbufsize equ 8192
trackbuf resb trackbufsize ; Track buffer goes here
-getcbuf resb trackbufsize
- ; ends at 4800h
+ ; ends at 2800h
section .bss
alignb 8
section .earlybss
trackbufsize equ 8192
trackbuf resb trackbufsize ; Track buffer goes here
-getcbuf resb trackbufsize
- ; ends at 4800h
-
- ; Put some large buffers here, before RBFG_brainfuck,
- ; where we can still carefully control the address
- ; assignments...
+ ; ends at 2800h
alignb open_file_t_size
Files resb MAX_OPEN*open_file_t_size
InitStack resd 1 ; Pointer to reset stack (SS:SP)
PXEStack resd 1 ; Saved stack during PXE call
-; Warning here: RBFG build 22 randomly overwrites memory location
-; [0x5680,0x576c), possibly more. It seems that it gets confused and
-; screws up the pointer to its own internal packet buffer and starts
-; writing a received ARP packet into low memory.
-RBFG_brainfuck resb 0E00h
-
section .bss
alignb 4
RebootTime resd 1 ; Reboot timeout, if set by option
call writestr
call crlf
mov si,di
- mov di,getcbuf
+ mov di,KernelName ; Borrow this buffer for mangled name
call mangle_name
call open
popa