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