diff options
author | hpa <hpa> | 2003-11-24 02:44:42 +0000 |
---|---|---|
committer | hpa <hpa> | 2003-11-24 02:44:42 +0000 |
commit | 43cf4dda600db1ccd05d9788c7b1da0cde7c0413 (patch) | |
tree | 0c69eaa8d2e0f49bc4ea8770762a97d4552771ad /com32.inc | |
parent | 4a10396ab1f114fc37fa8f276e047fe3c283671c (diff) | |
download | syslinux-43cf4dda600db1ccd05d9788c7b1da0cde7c0413.tar.gz |
Fix COMBOOT/COM32 command-line generation.syslinux-2.08-pre1
Add test programs.
Diffstat (limited to 'com32.inc')
-rw-r--r-- | com32.inc | 17 |
1 files changed, 15 insertions, 2 deletions
@@ -41,6 +41,19 @@ com32_rmidt: dd 0 ; Address is_com32_image: + push si ; Save file handle + + call make_plain_cmdline + ; Copy the command line into the low cmdline buffer + mov ax,real_mode_seg + mov fs,ax + mov si,cmd_line_here + mov di,command_line + mov cx,[CmdLinePtr] + inc cx ; Include final null + sub cx,si + fs rep movsb + call highmemsize ; We need the high memory size... call comboot_setup_api ; Set up the COMBOOT-style API @@ -48,6 +61,7 @@ is_com32_image: xchg eax,edx ; Gotta fix this insanity... shl eax,16 mov ax,dx + pop si ; File handle call load_high call crlf @@ -146,8 +160,7 @@ com32_call_start: push dword (1 << 16) ; 64K bounce buffer push dword (comboot_seg << 4) ; Bounce buffer address push dword com32_intcall ; Intcall entry point - movzx esi,word [word CmdOptPtr] - push esi ; Command line pointer + push dword command_line ; Command line pointer push dword 5 ; Argument count sti ; Interrupts OK now call pm_entry ; Run the program... |