#!/bin/bash
TYPE="full"
if [ "$1" != "" ]; then
  TYPE=$1
fi

if [ "$1" = "200" ]; then
  EXT=JPG
else
  EXT=QTK
fi
TESTFILE=TEST$1.$EXT
if [ "$2" != "" ]; then
  TESTFILE=$2
  java -jar ../../bin/ac.jar -d ../../disks/smart0.po TEST$1.$EXT
  
  echo "Putting $TESTFILE as TEST$1.$EXT"
  java -jar ../../bin/ac.jar -p ../../disks/smart0.po \
    TEST$1.$EXT BIN '$2000' < "$TESTFILE"
fi

make clean all DEBUG_HD=$TYPE && \
  mame apple2gs -window -flop1 quicktake.po -resolution 560x384 -printer null_modem -bitb socket.localhost:2001 -modem null_modem -bitb2 socket.localhost:2000 -nomouse -debug -sl7 scsi -hard ../../disks/smart0.po

if [ "$1" != "" ]; then
  #get image from HD
  if [ "$1" = "100" ]; then
    java -jar ../../bin/ac.jar -g ../../disks/smart0.po TEST$1.QTK > /tmp/TEST$1.QTK
    ./qtktconv.x86_64 /tmp/TEST$1.QTK 0 0 640 480
  elif [ "$1" = "150" ]; then
    java -jar ../../bin/ac.jar -g ../../disks/smart0.po TEST$1.QTK > /tmp/TEST$1.QTK
    ./qtknconv.x86_64 /tmp/TEST$1.QTK 0 0 640 480
  elif [ "$1" = "200" ]; then
    java -jar ../../bin/ac.jar -g ../../disks/smart0.po TEST$1.JPG > /tmp/TEST$1.JPG
    ./jpegconv.x86_64 /tmp/TEST$1.JPG 0 0 640 480
  fi
  chmod 644 GREY HIST
  #get result from HD
  java -jar ../../bin/ac.jar -g ../../disks/smart0.po GREY > GREY.A2
  echo Files sha1sum:
  #Cut histogram
  expected_sha1sum=$(dd if=GREY of=/dev/stdout count=$((256*192)) bs=1 2>/dev/null|sha1sum|cut -d' ' -f1)
  final_sha1sum=$(dd if=GREY.A2 of=/dev/stdout count=$((256*192)) bs=1 2>/dev/null|sha1sum|cut -d' ' -f1)
  echo "Ref:      $expected_sha1sum"
  echo "Got:      $final_sha1sum"

  if [ "$final_sha1sum" != "$expected_sha1sum" ]; then
    echo UNEXPECTED SHA1SUM
  else
    echo sha1sum is OK
  fi
fi
