rm tiny
gcc   -S -s -Os tiny.c -o - | awk '/ident/ {} /.globl main/ {print ".extern _exit\n.globl _start"} /main:/ {print "_start:"} /ret/ { counter++; if ( counter == 13) print "movl $1,%eax\nmovl $0,%ebx\nint  $128"; else print "ret" } ! /ident/ && ! /.globl main/ && ! /main:/ && ! /ret/ {print $0}' | as -o tiny.o; gcc -s -Os -nostartfiles tiny.o -o tmp.exe
cat tmp.exe | gzip -9 -c -- > tiny.tail
cat tiny.o | gzip -9 -c -- > tiny.o
rm tmp.exe
echo "#!/bin/sh" > tiny
echo "S=\`awk '/^@/{print NR+1;exit 0;}' \$0\`" >> tiny
echo "tail +\$S \$0|gzip -d>_t" >> tiny
echo "chmod a+x _t" >> tiny
echo "if [ -z \$2 ]; then b=\"problem.dat\"; else b=\$2; fi;" >> tiny
echo "if [ -z \$1 ]; then a=-1; else a=\$1; fi" >> tiny
echo "(echo \$a \`cat \$b\`)|_t" >> tiny
echo "rm _t" >> tiny
echo "exit 0" >> tiny
echo "@"  >> tiny
cat tiny.tail >>tiny
chmod u+x tiny
rm tiny.tail




