#!/bin/bash header() { FILE=$1 VAR=$2 EOL=$3 BYTES=$(hexdump -v $FILE | sed 's/^.......//' | wc -w | awk '{print $1}'); echo "/*" expand ${FILE}.s echo "*/" printf "unsigned char $VAR[] = {\n\t" for i in $(hexdump -v $FILE | sed 's/^.......//'); do printf "0x%02X" 0x$i BYTES=$((BYTES - 1)) if ((BYTES != 0)) then printf "," fi EOL=$((EOL - 1)) if ((EOL == 0)) then EOL=8 printf "\n\t" fi done printf "\n};\n" } cd asm make clean make ( header autoload autoloadcode 4 header inflate inflatecode 8 header fastload9600 fastload9600 4 header fastload8000 fastload8000 4 header fastloadcd fastloadcd 4 header diskload9600 diskload9600 4 header diskload8000 diskload8000 4 header diskload2 diskloadcode2 8 header diskload3 diskloadcode3 8 ) > ../c2t.h.1 cd .. cat <c2t.h.2 //DOS 3.3 unsigned char dosboot1[] = { EOF cat mon/dos33.boot1.mon | \ perl -pi -e 's/ /,0x/g' | \ perl -pi -e 's/$/,/' | \ perl -pi -e 's/^....../\t/' >>c2t.h.2 cat <>c2t.h.2 }; //DOS 3.3 unsigned char dosboot2[] = { EOF cat mon/dos33.boot2.mon | \ perl -pi -e 's/ /,0x/g' | \ perl -pi -e 's/$/,/' | \ perl -pi -e 's/^....../\t/' >>c2t.h.2 echo "};" >>c2t.h.2 cat c2t.h.[012] > c2t.h