blob: 1213902571e992ca98ad29bfe558d71d3c3dc940 (
plain)
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
|
####
# source code settings
#
OSNAME := pio_test
CSOURCES := $(wildcard *.c)
LIBS := ../../arch/build/arch.a \
../../drivers/build/drivers.a
OBJECTS := $(patsubst %.c,build/%.rel,$(CSOURCES))
HEXFILE := build/$(OSNAME).hex
BINARY := build/$(OSNAME).bin
###
# compiler settings
#
CC := sdcc
CFLAGS := -mz80 \
--no-std-crt0 build/crt0.rel \
--allow-unsafe-read \
-I . \
-I ../../arch/include \
-I ../../drivers/include \
-DDEBUG
LDFLAGS := -mz80 \
--no-std-crt0 build/crt0.rel \
-L ../../drivers/build \
-l drivers.a \
-pedantic \
--code-loc 0x0200
# --data-loc 0x2000
.PHONY: flash dirs dis clean
all: $(BINARY)
flash: $(BINARY)
minipro -p M28C64 -w $<
# build binary
$(BINARY): $(OBJECTS) dirs
$(CC) $(LDFLAGS) $(OBJECTS) -o $(HEXFILE)
makebin -s 8192 -yo 1 $(HEXFILE) $(BINARY)
$(OBJECTS): build/%.rel : %.c $(CSOURCES) dirs build/crt0.rel $(LIBS)
@printf "\n"
$(CC) $(CFLAGS) -c $< -o $@
$(LIBS): %.a:
@printf "\n"
make -C $(shell printf $@ | sed 's:build.*.::')
build/crt0.rel: crt0.s
sdasz80 -o $<
@mv crt0.rel build/
dirs:
mkdir -p build
dis: $(BINARY)
dz80 -b -n -t $(BINARY)
r2 -a z80 $< \
-c 'afn main 0x200; \
pd 0x10; \
s 0x100; \
pd 10; \
s 0x200; \
pd 0x95' | tee build/dis.txt
clean:
- rm -rd build
|