wok-next diff memtest/stuff/pack @ rev 20607

perdition: up 2.2
author Aleksej Bobylev <al.bobylev@gmail.com>
date Thu Apr 19 15:57:59 2018 +0300 (2018-04-19)
parents fd3dadf90ba9
children
line diff
     1.1 --- a/memtest/stuff/pack	Mon Sep 05 18:15:15 2016 +0200
     1.2 +++ b/memtest/stuff/pack	Thu Apr 19 15:57:59 2018 +0300
     1.3 @@ -3,17 +3,22 @@
     1.4  	set -- ${2:-bootloader.bin} ${3:-unpack.bin}
     1.5  	x=$(grep -s packed_syssize$ ${2/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
     1.6  	[ -n "$x" ] && sed -i "s/XXXP/$((513+0x$x))/" $0 || sed -i "/XXXP$/d" $0
     1.7 -	x=$(grep -s original_syssize$ ${2/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
     1.8 -	[ -n "$x" ] && sed -i "s/XXXO/$((513+0x$x))/" $0 || sed -i "/XXXO$/d" $0
     1.9 -	x=$(grep -s original_setupsize$ ${2/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
    1.10 -	[ -n "$x" ] && sed -i "s/XXXS/$((516+0x$x))/" $0 || sed -i "/XXXS$/d" $0
    1.11 -	grep -q 83C60D ${3/.bin/.lst} && sed -i 's/ | dd bs=1 skip=13//' $0
    1.12 +	x=$(grep -s setup_byte$ ${2/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
    1.13 +	[ -n "$x" ] && sed -i "s/XXXSB/$((513+0x$x))/" $0 || sed -i "/XXXSB/d" $0
    1.14 +	x=$(grep -s setup_word$ ${2/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
    1.15 +	[ -n "$x" ] && sed -i "s/XXXSW/$((514+0x$x))/" $0 || sed -i "/XXXSW/d" $0
    1.16 +	x=$(grep -s setup_para$ ${2/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
    1.17 +	[ -n "$x" ] && sed -i "s/XXXSP/$((514+0x$x))/" $0 || sed -i "/XXXSP/d" $0
    1.18 +	x=$(grep -s setup_seg$ ${2/.bin/.lst}|sed '$!d;s/.*t:\([^ ]*\).*/\1/')
    1.19 +	[ -n "$x" ] && sed -i "s/XXXSS/$((513+0x$x))/" $0 || sed -i "/XXXSS/d" $0
    1.20 +	grep -q BFF401 ${2/.bin/.lst} && sed -i 's/512 skip/500 skip/;s/1000 -/&32 - /' $0
    1.21 +	grep -q 83C60D ${2/.bin/.lst} && sed -i 's/ | dd bs=1 skip=13//' $0
    1.22  	helpmsg=$(sed '/helpmsg:/!d{n;s/ [0-9]* \([^ ]*\).*/\1/}' ${1/.bin/.lst} | sed '$!d')
    1.23  	helpend=$(sed '/helpend:/!d{n;s/ [0-9]* \([^ ]*\).*/\1/}' ${1/.bin/.lst} | sed '$!d')
    1.24  	sed -i "s/YYY/$((0x$helpmsg))/" $0
    1.25  	sed -i "s/ZZZ/$((0x$helpend-0x$helpmsg-1))/" $0
    1.26  	cat >> $0 <<EOM
    1.27 -$(dd if=$1 bs=512 count=1 conv=sync | cat - $2 | gzip -9 | uuencode -m -)
    1.28 +$(dd if=$1 bs=512 count=1 conv=sync 2> /dev/null | cat - $2 | gzip -9 | uuencode -m -)
    1.29  EOT
    1.30  EOM
    1.31  	sed -i '/--build/,/^fi/d' $0
    1.32 @@ -42,12 +47,13 @@
    1.33  	[ $setup -eq 0 ] && setup=4
    1.34  	syssize="$(echo $(od -j 500 -N 2 -dAn $1))"
    1.35  	[ $syssize -eq 0 ] && syssize=$((($(stat -c %s $1) + 15 - 512*($setup + 1))/16))
    1.36 -	store $syssize $2 XXXO
    1.37 -	store $setup $2 XXXS 1
    1.38 -	dd if=$1 bs=512 count=$setup skip=1 | compress >>$2
    1.39 -	dd if=$1 bs=16 count=$syssize skip=$((32*(1+$setup))) | compress >>$2
    1.40 +	store $setup $2 XXXSB 1
    1.41 +	store $setup $2 XXXSW 1
    1.42 +	store $((32 * $setup)) $2 XXXSP
    1.43 +	store $((0x1000 - 32*$setup)) $2 XXXSS 
    1.44 +	dd if=$1 bs=512 skip=1 | compress >>$2
    1.45  	size=$(stat -c %s $2)
    1.46 -	store $((($size-2560+15)/16)) $2 XXXP
    1.47 +	store $((($size-2560+15)/16 + 0x1000)) $2 XXXP
    1.48  	store $((($size-2560+15)/16)) $2 500
    1.49  	store 4 $2 497 1
    1.50  	store $((($size+511)/512)) $2 4