commit - be6fc12c3675954cf25b7f1f14171e26e2311d16
commit + 49d8299adf0e869e0c2df7a590b02707b404e982
blob - 1eaee9aedbcc5c9ea070e2047afce1be158c819e
blob + a3c5dd0d1b330bc5cb32946fe2847adbf5f54e50
--- .gitignore
+++ .gitignore
hackem
rom
*.rom
-*.tsv
blob - 8f9f873b16c2d1b01be92656a42a8395c00331ee
blob + 3d05b933ee1bcc2721890c605a449cf819aafd12
--- Makefile
+++ Makefile
CFLAGS += -Wall
-.PHONY: all roms
-all: hackem rom roms
-roms: add.rom max.rom term0.rom term1.rom term2.rom
+PROGS = hackem rom
+ROMS = add.rom max.rom term0.rom term1.rom term2.rom
+.PHONY: all test clean
+all: ${PROGS} ${ROMS}
+clean:
+ rm -f ${PROGS} ${ROMS}
+test: all
+ sh test.sh ${ROMS}
+
.SUFFIXES: .hack .rom .tsv
.hack.rom:
./rom $@ < $<
blob - /dev/null
blob + 7136a70eeed4cd04bc2191495bd3ffd9cb32d9cc (mode 644)
--- /dev/null
+++ add.tsv
+T PC instr. A D R0/SP R1/LCL R2/ARG R3/THIS R4/THAT
+0 0 000002 0 0 0 0 0 0 0
+1 1 166020 2 0 0 0 0 0 0
+2 2 000003 2 2 0 0 0 0 0
+3 3 160220 3 2 0 0 0 0 0
+4 4 000000 3 5 0 0 0 0 0
+5 5 161410 0 5 0 0 0 0 0
+6 6 000007 0 5 5 0 0 0 0
+7 7 165007 7 5 5 0 0 0 0
blob - /dev/null
blob + 00b0dbcbe6317c1d415b054519ed3056358bd373 (mode 644)
--- /dev/null
+++ max.tsv
+T PC instr. A D R0/SP R1/LCL R2/ARG R3/THIS R4/THAT
+0 0 000015 0 0 0 0 0 0 0
+1 1 166020 13 0 0 0 0 0 0
+2 2 000000 13 13 0 0 0 0 0
+3 3 171410 0 13 0 0 0 0 0
+4 4 000021 0 13 13 0 0 0 0
+5 5 166020 17 13 13 0 0 0 0
+6 6 000001 17 17 13 0 0 0 0
+7 7 171410 1 17 13 0 0 0 0
+8 8 000000 1 17 13 17 0 0 0
+9 9 176020 0 17 13 17 0 0 0
+10 10 000001 0 13 13 17 0 0 0
+11 11 172320 1 13 13 17 0 0 0
+12 12 000022 1 -4 13 17 0 0 0
+13 13 161401 18 -4 13 17 0 0 0
+14 14 000001 18 -4 13 17 0 0 0
+15 15 176020 1 -4 13 17 0 0 0
+16 16 000024 1 17 13 17 0 0 0
+17 17 165207 20 17 13 17 0 0 0
+18 20 000002 20 17 13 17 0 0 0
+19 21 161410 2 17 13 17 0 0 0
+20 22 000026 2 17 13 17 17 0 0
+21 23 165207 22 17 13 17 17 0 0
blob - /dev/null
blob + cc6e02926d8eca45adcaf77692a0d04caae9621e (mode 644)
--- /dev/null
+++ term0.tsv
+T PC instr. A D R0/SP R1/LCL R2/ARG R3/THIS R4/THAT
+0 0 165007 0 0 0 0 0 0 0
blob - /dev/null
blob + 855060ba5a696b6e2b3245f3619c0016747c10f5 (mode 644)
--- /dev/null
+++ term1.tsv
+T PC instr. A D R0/SP R1/LCL R2/ARG R3/THIS R4/THAT
+0 0 167720 0 0 0 0 0 0 0
+1 1 000002 0 1 0 0 0 0 0
+2 2 165007 2 1 0 0 0 0 0
blob - /dev/null
blob + ec2d5c39a2e9f99e760c909019ce914a8fae9513 (mode 644)
--- /dev/null
+++ term2.tsv
+T PC instr. A D R0/SP R1/LCL R2/ARG R3/THIS R4/THAT
+0 0 000027 0 0 0 0 0 0 0
+1 1 166020 23 0 0 0 0 0 0
+2 2 000002 23 23 0 0 0 0 0
+3 3 165207 2 23 0 0 0 0 0
blob - /dev/null
blob + 6c52061b4721ce12e1d2cfe5e8467c575f2c4b94 (mode 644)
--- /dev/null
+++ test.sh
+#!/bin/sh
+
+result=0
+
+t=$(mktemp)
+for rom in "$@"
+do
+ if ! hackem -t $t $rom
+ then
+ echo ERROR: $rom
+ result=$((result | 2))
+ fi
+ if ! diff -u $(basename $rom .rom).tsv $t
+ then
+ echo FAIL: $rom
+ result=$((result | 1))
+ else
+ echo ok: $rom
+ fi
+done
+rm -f $t
+
+exit $result