#!/bin/sh

mar=22; export mar
fx="$1"; export fx
[ ! "${fx}" ] && exit
[ ! -s "${fx}" ] && exit

wrk="tmp/dobit.$$.wrk"; export wrk
new="tmp/dobit.$$.new"; export new

<${fx} sed -e "
s~0001000~0000000~g
s~1110111~1111111~g
" >${new}
side="1"; export side
cp ${new} side${side}.bit

while [ ! ${side} = "5" ]
do
tb="$( head -$(( ${mar} + 1 )) ${new} |
tail -1 |
cut -c $(( ${mar} + 1))-$(( ${mar} + 1)) )"; export tb
[ ${tb} = "0" ] && {
xrow=0
b1="0"
cat ${new} |
while read row
do
[ "${xrow}" -lt "${mar}" ] && {
echo "${row}"
xrow=$(( ${xrow} + 1 ))
continue
}
b1="$( echo "${row}" | cut -c $(( ${mar} + 1 ))-$(( ${mar} + 1 )) )"
[ "${b1}" = "1" ] && {
echo "${row}"
xrow=$(( ${xrow} + 1 ))
continue
}
echo "${row}" | cut -c 1-${mar} | tr -d "\n"
echo "${row}" | cut -c $(( ${mar} + 2))-$(( ${#row} - ${mar} )) | tr -d "\n"
echo "0" | tr -d "\n"
echo "${row}" | cut -c $(( ${#row} - ${mar} + 1 ))-
xrow=$(( ${xrow} + 1 ))
done >${wrk}

cp ${wrk} ${new}
}

[ ${side} = "1" ] && {
./do90 ${new}
side="2"
cp ${new} side${side}.bit
continue
}

./do90 ${new}
side="3"
cp ${new} side${side}.bit
./do90 ${new}
side="4"
cp ${new} side${side}.bit
./do90 ${new}
side="5"
cp ${new} side${side}.bit
done
cp ${new} ${fx}
