#!/bin/bash

#Needed: 
# - crasm. Is in debian repositories.
# - dd. Is everywhere :)
# - objcopy. Prolly comes with your c compiler.

function do_assemble() {
    echo "Assembling  $1 into $2..."
    rm -f tmp.hex
    lst=`echo "$2" | sed 's/\..*/.lst/'`
    crasm -o tmp.hex $1 > $lst
    if [ ! -e tmp.hex ]; then 
	cat $lst | grep -A 1 '>>>' | grep -A 1 'ERROR'
	echo "Error assembling $2. Please check $lst for more info."
	exit 1;
    fi
    objcopy -I ihex -O binary tmp.hex $2
    rm -f tmp.hex
}


for x in m_*; do
    echo "Assembling $x..."
    cp $x/spec .
    
    do_assemble hack.asm $x/hack.bin
    do_assemble hack_jmp.asm $x/hack_jmp.bin
    do_assemble lookforme.asm $x/lookforme.bin
    
    rm spec
    echo "$x assembled."
done
echo "All done."