#!/bin/bash
#set -x
export EE6502=../../6502/6502

MKTRC="./mktrc"
num=${1:-1000}

sv_min=${sv_min:-2}
#sv_max=${sv_max:-65536}
sv_max=${sv_max:-400}

inc_min=${inc_min:-0}
inc_max=${inc_max:-$(( 2**8 - 1 ))}

nops_min=${nops_min:-0}
nops_max=${nops_max:-16}

function getInc()
{
   echo $(( (RANDOM % (inc_max - inc_min + 1)) + inc_min ))
}

function getNOPS()
{
   echo $(( (RANDOM % (nops_max - nops_min + 1)) + nops_min ))
}

function getSVOffset()
{

   while true; do
      x=$(( (RANDOM % (sv_max - sv_min + 1)) + sv_min ))
      (( x == 0 || x == 1 )) && continue
      (( x == 5 )) && continue;
      (( x == 6 )) && continue;
      (( x >= 0x200 && x < 0x300 )) && continue;
      (( x == 0xFF00 )) && continue; # filter out io address
      break;
   done
   (( x == 2 )) && x="A"
   (( x == 3 )) && x="Y"
   (( x == 4 )) && x="X"
   echo $x
}


for ((i=0; i<num; i++)); do
    inc=$(getInc)
    nops=$(getNOPS)
    off=$(getSVOffset)
    echo "$i: inc: $inc nops: $nops svoffset: $off -- ${MKTRC} ${off}:${inc}:${nops}"
    ${MKTRC} ${off}:${inc}:${nops}
done


