# HG changeset patch # User Pascal Bellard # Date 1489593165 -3600 # Node ID 3378a0c3572643f04a94e528c82e06d988902970 # Parent 7c4116e3377f04217484b7566d8856b52f0f9e56 syslinux/iso2exe: do not update hybrid mbr partitions (again) diff -r 7c4116e3377f -r 3378a0c35726 syslinux/stuff/iso2exe/bootiso.S --- a/syslinux/stuff/iso2exe/bootiso.S Wed Mar 15 12:56:01 2017 +0100 +++ b/syslinux/stuff/iso2exe/bootiso.S Wed Mar 15 16:52:45 2017 +0100 @@ -177,12 +177,11 @@ ret .org 0x7E00 - .org 0x7F48 + .org 0x7F4E ////////////////////////////// DOS EXE code /////////////////////////////////// exestart: cld - movw $EXEADRS(puts), %bp movw 129, %ax cmpb $0x2F, %al je ishelp @@ -194,24 +193,18 @@ je abort int $0x21 // get DOS version addb $-3, %al - movw $0xF000+EXESTR(noDOS3), %ax + movb $EXESTR(noDOS3), %al movw $0x100, %di jc tst386 abort: - jmp *%bp +goputs: + jmp puts tst386: - pushfw // save flags - // bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 - // flags 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF - // movb $0xF0, %ah - pushw %ax - popfw // < 286 : flags[12..15] are forced 1 - pushfw // = 286 : flags[12..15] are forced 0 - popw %bx // > 286 : only flags[15] is forced 0 - popfw // restore flags (IOPL) - addb %ah, %bh // test F0 and 00 cases - js is86 // NS=386+, NC=286 + pushw %sp + popw %ax + subw %sp, %ax + jnz is86 // 86/186 not a 286+ .arch i486 is386: smsww %ax // not privileged @@ -225,7 +218,7 @@ inc %ax //movb $EXESTR(realmodemsg), %al realmode: - call *%bp + call goputs .arch i8086 is86: movw comstart-end_header(%di), %si // .com address diff -r 7c4116e3377f -r 3378a0c35726 syslinux/stuff/iso2exe/iso2exe.sh --- a/syslinux/stuff/iso2exe/iso2exe.sh Wed Mar 15 12:56:01 2017 +0100 +++ b/syslinux/stuff/iso2exe/iso2exe.sh Wed Mar 15 16:52:45 2017 +0100 @@ -595,6 +595,7 @@ for i in 0 1 2 3 ; do [ $(get $((0x1BE+16*i)) $1 2) == $((0x0080)) ] || continue store $((0x1CA+16*i)) $(($mb*2048-$h)) $1 32 + store $((0x1C5+16*i)) $(($mb-1)) $1 8 done if [ $newsz -gt $isosz ]; then echo "$(($newsz - $isosz)) extra bytes."