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 |