blob: 439587b673bdc3d23f89392253c80472c7ec0155 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
PARTS = build/inst_jnz.asm build/inst_mov.asm build/inst_shl.asm build/inst_shr.asm \
build/inst_inp.asm build/inst_out.asm build/test_in_out.asm build/gpr.asm
TEST_MOV_SWP = build/test_mov_swp.asm build/inst_mov.asm build/inst_swp.asm build/gpr.asm
TEST_SHL_SHR = build/test_shl_shr.asm build/inst_shl.asm build/inst_shr.asm build/gpr.asm
TEST_IN_OUT = build/test_in_out.asm build/inst_inp.asm build/inst_out.asm build/gpr.asm
TEST_ADD_SUB = build/test_add_sub.asm build/inst_add.asm build/inst_sub.asm build/gpr.asm
PARTS = build/inst_jnz.asm build/inst_shl.asm build/inst_shr.asm build/inst_mov.asm \
build/inst_swp.asm build/inst_add.asm build/inst_sub.asm build/inst_xor.asm \
build/inst_and.asm build/inst_ldb.asm build/inst_stb.asm build/inst_inp.asm \
build/inst_out.asm build/inst_not.asm build/inst_jre.asm build/inst_inc.asm build/inst_dec.asm \
build/cpu.asm build/rip.asm build/decoder.asm build/gpr.asm \
build/memory1.asm build/memory2.asm build/memory3.asm build/memory4.asm
all: build/full_test_mov_swp.asm build/full_test_shl_shr.asm \
build/full_test_in_out.asm build/full_test_add_sub.asm build/chall.asm
clean:
rm -rf build
build:
mkdir -p $@
build/memory1.bin build/memory2.bin build/memory3.bin build/memory4.bin: asm.py | build
python3 asm.py $@
build/gpr.bin: in/gpr.bin | build
cp $< $@
build/rip.bin: in/rip.bin | build
cp $< $@
build/rip.asm.tmpl: memory2.py build/rip.bin
python3 memory2.py $@ 0 0 build/rip.bin ADDR_RIP straight
build/gpr.asm.tmpl: memory2.py build/gpr.bin
python3 memory2.py $@ 0 2 build/gpr.bin ADDR_GPR straight
build/memory1.asm.tmpl: memory2.py build/memory1.bin
python3 memory2.py $@ 0 6 build/memory1.bin ADDR_MEMORY1 right
build/memory2.asm.tmpl: memory2.py build/memory2.bin
python3 memory2.py $@ 64 6 build/memory2.bin ADDR_MEMORY2 left
build/memory3.asm.tmpl: memory2.py build/memory3.bin
python3 memory2.py $@ 128 6 build/memory3.bin ADDR_MEMORY3 right
build/memory4.asm.tmpl: memory2.py build/memory4.bin
python3 memory2.py $@ 192 6 build/memory4.bin ADDR_MEMORY4 left
build/%.asm: in/%.asm header.def | build
tmpl -e -c header.def -p '$${' $< > $@
build/%.asm: build/%.asm.tmpl header.def | build
tmpl -e -c header.def -p '$${' $< > $@
build/full_test_mov_swp.asm: bus.py $(TEST_MOV_SWP) | build
python3 bus.py $@ $(TEST_MOV_SWP)
build/full_test_shl_shr.asm: bus.py $(TEST_SHL_SHR) | build
python3 bus.py $@ $(TEST_SHL_SHR)
build/full_test_in_out.asm: bus.py $(TEST_IN_OUT) | build
python3 bus.py $@ $(TEST_IN_OUT)
build/full_test_add_sub.asm: bus.py $(TEST_ADD_SUB) | build
python3 bus.py $@ $(TEST_ADD_SUB)
build/full.asm: bus.py $(PARTS) | build
python3 bus.py $@ \
build/memory1.asm \
build/cpu.asm build/inst_jnz.asm build/inst_mov.asm build/inst_shl.asm \
build/rip.asm build/decoder.asm \
build/inst_shr.asm build/inst_add.asm build/inst_sub.asm build/inst_xor.asm \
build/memory2.asm \
-- \
build/memory3.asm \
build/inst_and.asm build/inst_ldb.asm build/inst_stb.asm build/inst_inp.asm \
build/gpr.asm build/inst_inc.asm \
build/inst_out.asm build/inst_not.asm build/inst_jre.asm build/inst_swp.asm \
build/memory4.asm
build/final.asm: draw.py build/full.asm misc/cat.png | build
python3 draw.py build/full.asm misc/cat.png -86 -26 $@
build/chall.asm: transform.py build/final.asm | build
python3 transform.py build/final.asm build/chall.asm
.PHONY: all clean
|