slitaz-forge diff mirror/floppies/resizefdset.sh @ rev 716
mirror/floppies: multi-format support
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Fri Jul 23 16:41:12 2021 +0000 (2021-07-23) |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/mirror/floppies/resizefdset.sh Fri Jul 23 16:41:12 2021 +0000 1.3 @@ -0,0 +1,38 @@ 1.4 +#!/bin/sh 1.5 + 1.6 +[ -z "$1" ] && 1.7 +echo "Usage: $0 [360|720|1200|2880] resize a floppy disk set" && exit 2 1.8 +i=0 1.9 +while [ $(cat fd$i*.img 2> /dev/null | wc -c) -ne 0 ]; do 1.10 + cat fd$i*.img | split -b ${1}k - fdx$$ 1.11 + n=0; [ $i -eq 0 ] && n=1 1.12 + for f in fdx$$* ; do 1.13 + [ -z "$(hexdump -C $f | sed 4!dq)" ] && rm $f && continue 1.14 + x=fd$i$(printf "%02d" $n).$1 1.15 + mv $f $x 1.16 + dd of=$x bs=1k seek=$1 count=0 2> /dev/null 1.17 + ls -l $x 1.18 + n=$(($n+1)) 1.19 + done 1.20 + i=$(($i+1)) 1.21 +done 1.22 +trk=80 1.23 +[ $1 -lt 720 ] && trk=40 1.24 +false && for i in $(seq 0 9) ; do 1.25 + [ $(($1%($trk+$i))) -eq 0 ] || continue 1.26 + for j in 362 369 ; do 1.27 + [ $(od -j $j -N 2 -t u2 -An fd001.$1) -eq 20733 ] && 1.28 + printf '\\\\x%02X' $(($trk+$i)) | xargs echo -en | \ 1.29 + dd bs=1 seek=$(($j+1)) of=fd001.$1 conv=notrunc 1.30 + done 2> /dev/null 1.31 + break 1.32 +done 1.33 +false && if [ $1 -lt 200 ]; then 1.34 + while read j d ; do 1.35 + [ $(od -j $j -N 2 -t u2 -An fd001.$1) -eq $d ] && echo -en \ 1.36 + \\xF6 | dd bs=1 seek=$(($j+1)) of=fd001.$1 conv=notrunc 1.37 + done 2> /dev/null <<EOT 1.38 +355 12494 1.39 +359 4566 1.40 +EOT 1.41 +fi