#!/bin/bash

Xvfb :3 >/dev/null 2>&1 &
xpid=$!
export DISPLAY=:3

n=10
rm for8_*.lst

for((shift=0;shift<=39;shift++))
do
echo shift: $shift
rm for8list.lst
rm for8step.lst

for((i=1;i<=n;i++))
do
cat >/tmp/for8.asc <<EOF
algol<
_b_e_g_i_n
   _r_e_a_l clock1;
   _i_n_t_e_g_e_r i,j,n;
   n:=10000;
   select(32);
   _c_o_d_e clock1;
   2, 45;
   zl        , grf a1   ; RF:=clock count; clock1:=RF;
   _e;
   _f_o_r i:=1 _s_t_e_p 1 _u_n_t_i_l n _d_o
   _b_e_g_i_n
      _f_o_r j:=1
EOF
for((j=2;j<=i;j++))
do
  echo ",$j" >>/tmp/for8.asc
done
cat >>/tmp/for8.asc <<EOF
      _d_o;
   _e_n_d;
   _c_o_d_e clock1;
   2, 45;
   zl        , grf a1   ; RF:=clock count; clock1:=RF;
   _e;
   writeinteger(|<ddd|>,$i);
   write(|<dddddd.dd|>,clock1);
   writecr;
EOF
for((j=0;j<shift;j++))
do
  echo "n:=n;" >>/tmp/for8.asc
done
cat >>/tmp/for8.asc <<EOF
_e_n_d;
t<
EOF

cat >for8.demo <<EOF
LOADCONFIG configs/drum3ga4.gier
LOADREADER /tmp/for8.asc
LOADPUNCH for8out.flx
EOF
./maketext.sh "r<" >>for8.demo
./maketext.sh "run<" >>for8.demo
echo "WAITINPUT" >>for8.demo
echo "FINISHPUNCH" >>for8.demo
echo "QUIT" >>for8.demo

./GIER for8.demo >/dev/null 2>&1

flx2a <for8out.flx | tail -1 >>for8list.lst

cat >/tmp/for8.asc <<EOF
algol<
_b_e_g_i_n
   _r_e_a_l clock1;
   _i_n_t_e_g_e_r i,j,n;
   n:=10000;
   select(32);
   _c_o_d_e clock1;
   2, 45;
   zl        , grf a1   ; RF:=clock count; clock1:=RF;
   _e;
   _f_o_r i:=1 _s_t_e_p 1 _u_n_t_i_l n _d_o
   _b_e_g_i_n
      _f_o_r j:=1 _s_t_e_p 1 _u_n_t_i_l $i _d_o;
   _e_n_d;
   _c_o_d_e clock1;
   2, 45;
   zl        , grf a1   ; RF:=clock count; clock1:=RF;
   _e;
   writeinteger(|<ddd|>,$i);
   write(|<dddddd.dd|>,clock1);
   writecr;
EOF
for((j=0;j<shift;j++))
do
  echo "n:=n;" >>/tmp/for8.asc
done
cat >>/tmp/for8.asc <<EOF
_e_n_d;
t<
EOF

cat >for8.demo <<EOF
LOADCONFIG configs/drum3ga4.gier
LOADREADER /tmp/for8.asc
LOADPUNCH for8out.flx
EOF
./maketext.sh "r<" >>for8.demo
./maketext.sh "run<" >>for8.demo
echo "WAITINPUT" >>for8.demo
echo "FINISHPUNCH" >>for8.demo
echo "QUIT" >>for8.demo

./GIER for8.demo >/dev/null 2>&1

flx2a <for8out.flx | tail -1 >>for8step.lst
done

sed 's/^ \+//g' <for8step.lst|sed 's/ \+/	/g' >/tmp/1
sed 's/^ \+//g' <for8list.lst|sed 's/ \+/	/g' | cut -f2 >/tmp/2

printf -v outfile "for8_%02d.lst" $shift
/usr/bin/echo -e "n\\tstep\\tlist" > $outfile
paste /tmp/1 /tmp/2 >>$outfile
done

kill $xpid

