wok diff BootProg/stuff/bootprog.sh @ rev 25037

Up glza (0.11.4)
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat May 21 21:38:29 2022 +0000 (2022-05-21)
parents d1f31f5f6401
children 78727b04c002
line diff
     1.1 --- a/BootProg/stuff/bootprog.sh	Wed Apr 20 15:10:50 2022 +0000
     1.2 +++ b/BootProg/stuff/bootprog.sh	Sat May 21 21:38:29 2022 +0000
     1.3 @@ -5,21 +5,21 @@
     1.4  Example: $0 /dev/fd0 STARTUP.BIN
     1.5  EOT
     1.6  
     1.7 -ddo="dd of=$1 bs=1 conv=notrunc"
     1.8 +xd="dd of=$1 bs=1 conv=notrunc"
     1.9  while read c o b f; do
    1.10  	[ "${FAT:-$(dd if="$1" bs=1 count=5 skip=$c)}" = "$f" ] || continue
    1.11  	echo "Install $f bootsector on $1."
    1.12  	for a in "$((o+b)) seek=$o count=$((512-o))" "$b count=11"; do
    1.13 -		sed '1,/^exit 1/d' $0 | unlzma | $ddo skip=$a
    1.14 +		sed '1,/^exit 1/d' $0 | unlzma | $xd skip=$a
    1.15  	done
    1.16  	[ "$2" ] && echo "Set boot file '$2'" && echo -n "$2" | case "$f" in
    1.17  	E*)	sed 's| |.|;s| ||g' | cat - /dev/zero;;
    1.18  	*)	tr a-z A-Z | sed 's|\.|       |;s|^\(.\{8\}\) *|\1|;s|$|   |'
    1.19 -	esac | $ddo seek=499 count=11
    1.20 +	esac | $xd seek=499 count=11
    1.21  	[ "$f" = "EXFAT" ] && dd if="$1" bs=512 count=11 | od -v -An -t u1 -w1 - | LANG=C awk '
    1.22  BEGIN { a=0;i=-1;m=0xFFFFFFFE }
    1.23  { if (++i!=106 && i!=107 && i!=112) a=or(and(lshift(a,31),m),and(rshift(a,1),m/2))+$1 }
    1.24 -END { b=a/256;c=b/256; for (i=0;i<128;i++) printf "%c%c%c%c",a%256,b%256,c%256,(c/256)%256 }' | $ddo seek=5632
    1.25 +END { b=a/256;c=b/256; for (i=0;i<128;i++) printf "%c%c%c%c",a%256,b%256,c%256,(c/256)%256 }' | $xd seek=5632
    1.26  	exit 0
    1.27  done 2>/dev/null <<EOT
    1.28  54	62	0	FAT12