wok-6.x rev 19849
syslinux/iso2exe: do not update hybrid mbr partitions (again)
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Wed Mar 15 16:52:45 2017 +0100 (2017-03-15) |
parents | 7c4116e3377f |
children | 10cf54238be9 |
files | syslinux/stuff/iso2exe/bootiso.S syslinux/stuff/iso2exe/iso2exe.sh |
line diff
1.1 --- a/syslinux/stuff/iso2exe/bootiso.S Wed Mar 15 12:56:01 2017 +0100 1.2 +++ b/syslinux/stuff/iso2exe/bootiso.S Wed Mar 15 16:52:45 2017 +0100 1.3 @@ -177,12 +177,11 @@ 1.4 ret 1.5 .org 0x7E00 1.6 1.7 - .org 0x7F48 1.8 + .org 0x7F4E 1.9 ////////////////////////////// DOS EXE code /////////////////////////////////// 1.10 1.11 exestart: 1.12 cld 1.13 - movw $EXEADRS(puts), %bp 1.14 movw 129, %ax 1.15 cmpb $0x2F, %al 1.16 je ishelp 1.17 @@ -194,24 +193,18 @@ 1.18 je abort 1.19 int $0x21 // get DOS version 1.20 addb $-3, %al 1.21 - movw $0xF000+EXESTR(noDOS3), %ax 1.22 + movb $EXESTR(noDOS3), %al 1.23 movw $0x100, %di 1.24 jc tst386 1.25 abort: 1.26 - jmp *%bp 1.27 +goputs: 1.28 + jmp puts 1.29 1.30 tst386: 1.31 - pushfw // save flags 1.32 - // bits 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1.33 - // flags 0 NT IOPL OF DF IF TF SF ZF 0 AF 0 PF 1 CF 1.34 - // movb $0xF0, %ah 1.35 - pushw %ax 1.36 - popfw // < 286 : flags[12..15] are forced 1 1.37 - pushfw // = 286 : flags[12..15] are forced 0 1.38 - popw %bx // > 286 : only flags[15] is forced 0 1.39 - popfw // restore flags (IOPL) 1.40 - addb %ah, %bh // test F0 and 00 cases 1.41 - js is86 // NS=386+, NC=286 1.42 + pushw %sp 1.43 + popw %ax 1.44 + subw %sp, %ax 1.45 + jnz is86 // 86/186 not a 286+ 1.46 .arch i486 1.47 is386: 1.48 smsww %ax // not privileged 1.49 @@ -225,7 +218,7 @@ 1.50 inc %ax 1.51 //movb $EXESTR(realmodemsg), %al 1.52 realmode: 1.53 - call *%bp 1.54 + call goputs 1.55 .arch i8086 1.56 is86: 1.57 movw comstart-end_header(%di), %si // .com address
2.1 --- a/syslinux/stuff/iso2exe/iso2exe.sh Wed Mar 15 12:56:01 2017 +0100 2.2 +++ b/syslinux/stuff/iso2exe/iso2exe.sh Wed Mar 15 16:52:45 2017 +0100 2.3 @@ -595,6 +595,7 @@ 2.4 for i in 0 1 2 3 ; do 2.5 [ $(get $((0x1BE+16*i)) $1 2) == $((0x0080)) ] || continue 2.6 store $((0x1CA+16*i)) $(($mb*2048-$h)) $1 32 2.7 + store $((0x1C5+16*i)) $(($mb-1)) $1 8 2.8 done 2.9 if [ $newsz -gt $isosz ]; then 2.10 echo "$(($newsz - $isosz)) extra bytes."