wok-next diff syslinux/stuff/iso2exe/bootiso.S @ rev 14150
syslinux: add isohybrid.exe
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Mon Mar 04 09:52:12 2013 +0100 (2013-03-04) |
parents | e487d594117f |
children | 65b3fd0022ed |
line diff
1.1 --- a/syslinux/stuff/iso2exe/bootiso.S Wed Feb 06 12:05:22 2013 +0100 1.2 +++ b/syslinux/stuff/iso2exe/bootiso.S Mon Mar 04 09:52:12 2013 +0100 1.3 @@ -196,9 +196,9 @@ 1.4 movl %cr0, %eax 1.5 andb $1, %al 1.6 jne tstvcpi 1.7 - shll $1, %eax 1.8 + incl %eax 1.9 movb $EXESTR(rmPaging), %al 1.10 - jc abort 1.11 + js abort 1.12 movb $EXESTR(realmodemsg), %al 1.13 realmode: 1.14 call puts 1.15 @@ -207,16 +207,15 @@ 1.16 cmpb $3, %al 1.17 movb $EXESTR(noDOS3), %al 1.18 jb abort 1.19 - movw EXEADRS(comstart), %ax // .com address 1.20 movw $moveend-move, %cx 1.21 - movw $EXEADRS(move), %si 1.22 movw $0xC000, %di 1.23 - jmp move2 1.24 + call move2 1.25 move: 1.26 movb $0x80, %ch 1.27 - xchgw %ax, %si 1.28 movw $0x0100, %di 1.29 + pushw comstart-end_header(%di) // .com address 1.30 move2: 1.31 + popw %si 1.32 pushw %di 1.33 rep 1.34 movsb 1.35 @@ -234,21 +233,15 @@ 1.36 movw %cx, %ds // %cx = 0 1.37 movw 0x67*4+2, %ds 1.38 movw $10, %si 1.39 - lodsw 1.40 + lodsl 1.41 xorw $0x4D45, %ax // EM(MX) or EM(MQ) 1.42 - xchgw %ax, %dx 1.43 - lodsw // si += 2 1.44 - lodsw 1.45 - xorw $0x5858, %ax // XX 1.46 - orw %ax, %dx 1.47 - lodsw 1.48 + lodsl 1.49 popw %ds 1.50 - xorw $0x3058, %ax // X0 1.51 - orw %ax, %dx 1.52 + jne NoVCPI 1.53 + xorl $0x30585858, %eax // XXX0 1.54 movw $EXEADRS(CmdVCPI), %si 1.55 ChkVCPI: 1.56 NoVCPI: 1.57 - xchgw %ax, %dx 1.58 movb $EXESTR(ERRvcpi), %al 1.59 jne abort 1.60 lodsb 1.61 @@ -256,6 +249,7 @@ 1.62 je VersionVCPI 1.63 int $0x67 1.64 testb %ah, %ah 1.65 + xchgw %ax, %dx 1.66 jmp ChkVCPI 1.67 CmdVCPI: 1.68 .byte 0x40 // status