slitaz-forge annotate 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
rev   line source
pascal@625 1 #!/bin/sh
pascal@625 2
pascal@625 3 [ -z "$1" ] &&
pascal@625 4 echo "Usage: $0 [360|720|1200|2880] resize a floppy disk set" && exit 2
pascal@625 5 i=0
pascal@625 6 while [ $(cat fd$i*.img 2> /dev/null | wc -c) -ne 0 ]; do
pascal@625 7 cat fd$i*.img | split -b ${1}k - fdx$$
pascal@625 8 n=0; [ $i -eq 0 ] && n=1
pascal@625 9 for f in fdx$$* ; do
pascal@625 10 [ -z "$(hexdump -C $f | sed 4!dq)" ] && rm $f && continue
pascal@625 11 x=fd$i$(printf "%02d" $n).$1
pascal@625 12 mv $f $x
pascal@625 13 dd of=$x bs=1k seek=$1 count=0 2> /dev/null
pascal@625 14 ls -l $x
pascal@625 15 n=$(($n+1))
pascal@625 16 done
pascal@625 17 i=$(($i+1))
pascal@625 18 done
pascal@625 19 trk=80
pascal@625 20 [ $1 -lt 720 ] && trk=40
pascal@625 21 false && for i in $(seq 0 9) ; do
pascal@625 22 [ $(($1%($trk+$i))) -eq 0 ] || continue
pascal@625 23 for j in 362 369 ; do
pascal@625 24 [ $(od -j $j -N 2 -t u2 -An fd001.$1) -eq 20733 ] &&
pascal@625 25 printf '\\\\x%02X' $(($trk+$i)) | xargs echo -en | \
pascal@625 26 dd bs=1 seek=$(($j+1)) of=fd001.$1 conv=notrunc
pascal@625 27 done 2> /dev/null
pascal@625 28 break
pascal@625 29 done
pascal@625 30 false && if [ $1 -lt 200 ]; then
pascal@625 31 while read j d ; do
pascal@625 32 [ $(od -j $j -N 2 -t u2 -An fd001.$1) -eq $d ] && echo -en \
pascal@625 33 \\xF6 | dd bs=1 seek=$(($j+1)) of=fd001.$1 conv=notrunc
pascal@625 34 done 2> /dev/null <<EOT
pascal@625 35 355 12494
pascal@625 36 359 4566
pascal@625 37 EOT
pascal@625 38 fi