slitaz-dev-tools view mirror-tools/slitaz/mirror/floppies/resizefdset.sh @ rev 302

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