diff --git a/Makefile b/Makefile index ed530f4..94d36b5 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ +PROJECT := demo + SRC = \ src/ceda_print.c \ - src/entrypoint.c \ src/main.c \ \ @@ -10,11 +11,14 @@ ECHO := @echo QUIET := @ OUTDIR := build -$(OUTDIR)/main.prg: $(OUTDIR)/main.rom - dd if=$< of=$@ bs=1 seek=2 +$(OUTDIR)/$(PROJECT).prg: $(OUTDIR)/$(PROJECT)_code_compiler.bin + echo -n -e '\x00\x10' > $@ + cat $< >> $@ -$(OUTDIR)/main.rom: $(OBJ) | $(OUTDIR) - zcc +z80 -create-app --no-crt -m -o $@ $? +$(OUTDIR)/$(PROJECT)_code_compiler.bin: $(OBJ) | $(OUTDIR) + zcc +conf.cfg \ + -crt0=src/crt.asm \ + -m -o $(OUTDIR)/$(PROJECT) $? %.o: %.c zcc +z80 -c -o $@ $< diff --git a/conf.cfg b/conf.cfg new file mode 100644 index 0000000..e69de29 diff --git a/src/entrypoint.asm b/src/crt.asm similarity index 50% rename from src/entrypoint.asm rename to src/crt.asm index 89991d9..7158229 100644 --- a/src/entrypoint.asm +++ b/src/crt.asm @@ -1,9 +1,13 @@ +SECTION code_compiler + org $1000 + EXTERN _main -entrypoint: +PUBLIC __Start + +__Start: ld sp,0xc000 call _main jp ASMPC - diff --git a/src/main.c b/src/main.c index 61699bd..1675533 100644 --- a/src/main.c +++ b/src/main.c @@ -1,8 +1,9 @@ #include "ceda_print.h" +int globalvar = 0x7777; + int main(void) { ceda_print("Hello world!"); return 0; } -