wok diff syslinux/stuff/iso2exe/init @ rev 17473
syslinux/iso2exe: add 64bits support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Sat Dec 27 17:56:57 2014 +0100 (2014-12-27) |
parents | 18dc23394a2c |
children | f889c01820d0 |
line diff
1.1 --- a/syslinux/stuff/iso2exe/init Thu Dec 18 12:32:12 2014 +0100 1.2 +++ b/syslinux/stuff/iso2exe/init Sat Dec 27 17:56:57 2014 +0100 1.3 @@ -33,6 +33,13 @@ 1.4 umount /proc 1.5 } 1.6 1.7 +bytes2bin() 1.8 +{ 1.9 + for i in $@ ; do 1.10 + printf '\\\\x%02X' $(($i&255)) | xargs echo -en 1.11 + done 1.12 +} 1.13 + 1.14 words2bin() 1.15 { 1.16 for i in $@ ; do 1.17 @@ -218,7 +225,7 @@ 1.18 if [ -d /media/cdrom/fs ]; then 1.19 cp -a /media/cdrom/fs/. /mnt/slitaz 1.20 elif is_loram ; then 1.21 - for i in /media/cdrom/boot/rootfs?.* ; do 1.22 + for i in /media/cdrom/boot/rootfs?*.* ; do 1.23 [ -s $(basename $i) ] && continue 1.24 cpio -i $i 1.25 done 1.26 @@ -393,6 +400,31 @@ 1.27 cp /media/cdrom/boot/memtest /mnt/memtest.exe 1.28 } 1.29 1.30 +mkfloppy() 1.31 +{ 1.32 + ddq if=$1 of=/dev/fd0 1.33 + [ $(($(get 0 $1) - 0x5A4D)) -eq 0 ] || return 1.34 + J=$(($(get 3 $1 1) + 0x02)) 1.35 + R=$((1 + $(get 497 $1 1) + 1 + ($(get 500 $1)-1)/32)) 1.36 + [ $R -lt 2500 ] || return 1.37 + [ $((($(get 500 $file)-1) & 31)) -lt 30 ] && 1.38 + dd if=$file bs=32 count=1 seek=$(($R*16 - 1)) of=/dev/fd0 1.39 + G="18 0 2 0 0 0 0 0" 1.40 + [ $J -gt 25 ] || G="" 1.41 + F=0 1.42 + for i in 1 2 3; do 1.43 + F=$((((2880-$R-$F-$F)*3+1023)/1024)) 1.44 + done 1.45 + bytes2bin 0xEB $J 0x90 0x20 0x20 0x20 0x20 0x20 0x20 0x20 0x20 \ 1.46 + 0 2 2 $(($R%256)) $(($R/256)) 2 64 0 64 11 0xF0 $F 0 \ 1.47 + $G | ddq bs=1 of=/dev/fd0 1.48 + ddq if=/dev/zero bs=512 count=$((4+$F+$F)) seek=$R of=/dev/fd0 1.49 + for i in $R $(($R+$F)) ; do 1.50 + bytes2bin 0xF0 0xFF 0xFF | ddq bs=512 seek=$i of=/dev/fd0 1.51 + done 1.52 + echo -n $(basename $1) | ddq bs=1 seek=3 count=8 of=/dev/fd0 1.53 +} 1.54 + 1.55 fdmemtest() 1.56 { 1.57 $DIALOG --clear \ 1.58 @@ -403,8 +435,7 @@ 1.59 miss many of the failures that are detected by Memtest86.\n\n 1.60 Please insert a blank disk in floppy drive.\n 1.61 " 12 70 1.62 - [ $? -eq 0 ] || return 1.63 - ddq if=/media/cdrom/boot/memtest of=/dev/fd0 1.64 + [ $? -eq 0 ] && mkfloppy /media/cdrom/boot/memtest 1.65 } 1.66 1.67 pxe() 1.68 @@ -433,8 +464,7 @@ 1.69 from the Web using PXE and HTTP protocols.\n\n 1.70 Please insert a blank disk in floppy drive.\n 1.71 " 12 70 1.72 - [ $? -eq 0 ] || return 1.73 - ddq if=/media/cdrom/boot/?pxe of=/dev/fd0 1.74 + [ $? -eq 0 ] && mkfloppy /media/cdrom/boot/?pxe 1.75 } 1.76 1.77 gotposixovl()