#!/bin/bash

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

n=10
rm for8ga3_*.lst

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

for((i=1;i<=n;i++))
do
cat >/tmp/for8ga3.asc <<EOF
algol<
_b_e_g_i_n
   _r_e_a_l clock1;
   _b_o_o_l_e_a_n clock;
   _i_n_t_e_g_e_r i,j,n;
   n:=10000;
   pack(clock, 0, 41, 0);
   pack(clock,
	  0,  9,  0,
	 10, 19,  1,
	 20, 25, 62,
	 30, 35, 17,
	 39, 39,  1,
	 40, 40,  1);
   gier(clock);
   _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/for8ga3.asc
done
cat >>/tmp/for8ga3.asc <<EOF
      _d_o;
   _e_n_d;
   clock1:=gier(clock);
   output(|<ddd|>,$i);
   output(|<dddddd.dd|>,clock1);
   outcr;
EOF
for((j=0;j<shift;j++))
do
  echo "n:=n;" >>/tmp/for8ga3.asc
done
cat >>/tmp/for8ga3.asc <<EOF
_e_n_d;
t<
EOF

cat >for8ga3.demo <<EOF
LOADCONFIG configs/hjælpga3.gier
LOADREADER /tmp/for8ga3.asc
LOADPUNCH for8ga3out.flx
EOF
./maketext.sh "_halgol" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
echo "TYPE 64" >>for8ga3.demo
./maketext.sh "_e" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
echo "TYPE 64" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
# start compile
echo "TYPE 0" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
# start run
echo "TYPE 0" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
echo "FINISHPUNCH" >>for8ga3.demo
echo "QUIT" >>for8ga3.demo

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

flx2a <for8ga3out.flx | tail -1 >>for8ga3list.lst

cat >/tmp/for8ga3.asc <<EOF
algol<
_b_e_g_i_n
   _r_e_a_l clock1;
   _b_o_o_l_e_a_n clock;
   _i_n_t_e_g_e_r i,j,n;
   n:=10000;
   pack(clock, 0, 41, 0);
   pack(clock,
	  0,  9,  0,
	 10, 19,  1,
	 20, 25, 62,
	 30, 35, 17,
	 39, 39,  1,
	 40, 40,  1);
   gier(clock);
   _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;
   clock1:=gier(clock);
   output(|<ddd|>,$i);
   output(|<dddddd.dd|>,clock1);
   outcr;
EOF
for((j=0;j<shift;j++))
do
  echo "n:=n;" >>/tmp/for8ga3.asc
done
cat >>/tmp/for8ga3.asc <<EOF
_e_n_d;
t<
EOF
cat >for8ga3.demo <<EOF
LOADCONFIG configs/hjælpga3.gier
LOADREADER /tmp/for8ga3.asc
LOADPUNCH for8ga3out.flx
EOF
./maketext.sh "_halgol" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
echo "TYPE 64" >>for8ga3.demo
./maketext.sh "_e" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
echo "TYPE 64" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
# start compile
echo "TYPE 0" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
# start run
echo "TYPE 0" >>for8ga3.demo
echo "WAITINPUT" >>for8ga3.demo
echo "FINISHPUNCH" >>for8ga3.demo
echo "QUIT" >>for8ga3.demo


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

flx2a <for8ga3out.flx | tail -1 >>for8ga3step.lst
done

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

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

kill $xpid

