Working bios added to rom
This commit is contained in:
+20
-5
@@ -1,10 +1,11 @@
|
||||
.SILENT:
|
||||
include memory.mk
|
||||
|
||||
ASM := zasm
|
||||
ASMFLAGS := -w -b
|
||||
BUILDDIR := build
|
||||
|
||||
FILES := bios
|
||||
SUBDIRS := apps/basic
|
||||
|
||||
SOURCES := $(addprefix ./, $(addsuffix .asm, $(FILES)))
|
||||
TARGETS := $(addprefix $(BUILDDIR)/, $(addsuffix .bin, $(FILES)))
|
||||
@@ -12,7 +13,7 @@ TARGETS := $(addprefix $(BUILDDIR)/, $(addsuffix .bin, $(FILES))
|
||||
TOPTARGETS := all clean size
|
||||
$(TOPTARGETS): $(SUBDIRS)
|
||||
|
||||
all: $(BUILDDIR) $(TARGETS) size
|
||||
all: $(BUILDDIR) $(BUILDDIR)/rom.bin size
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILDDIR)
|
||||
@@ -20,7 +21,7 @@ clean:
|
||||
$(BUILDDIR):
|
||||
mkdir -p $(BUILDDIR)
|
||||
|
||||
$(BUILDDIR)/%.bin: ./%.asm
|
||||
$(BUILDDIR)/%.bin: ./%.asm $(BUILDDIR)/memory.inc
|
||||
echo '>$<'
|
||||
$(ASM) $(ASMFLAGS) $< $@
|
||||
|
||||
@@ -32,9 +33,23 @@ size:
|
||||
echo "$$file: Not built yet (run 'make')"; \
|
||||
fi \
|
||||
done
|
||||
$(MAKE) -C apps/basic size --no-print-directory
|
||||
|
||||
$(BUILDDIR)/basic.bin:
|
||||
$(MAKE) -C apps/basic $(or $(MAKECMDGOALS),all) --no-print-directory
|
||||
|
||||
$(BUILDDIR)/memory.inc: memory.mk
|
||||
@mkdir -p $(@D)
|
||||
@awk 'BEGIN { print "; Generated from rom_layout.mk; do not edit." } \
|
||||
/^[A-Z][A-Z0-9_]*[[:space:]]*:=[[:space:]]*/ { print $$1 " .equ " $$3 }' $< > $@
|
||||
|
||||
$(BUILDDIR)/rom.bin: $(BUILDDIR)/bios.bin $(BUILDDIR)/basic.bin
|
||||
objcopy --pad-to=$$(($(BIOS_ROM_START)+$(BIOS_ROM_SIZE))) \
|
||||
-I binary $(BUILDDIR)/bios.bin -O binary $(BUILDDIR)/bios_padded.bin
|
||||
objcopy --pad-to=$(BASIC_ROM_SIZE) \
|
||||
-I binary $(BUILDDIR)/basic.bin -O binary $(BUILDDIR)/basic_padded.bin
|
||||
cat $(BUILDDIR)/bios_padded.bin $(BUILDDIR)/basic_padded.bin > $(BUILDDIR)/rom.bin
|
||||
|
||||
$(SUBDIRS):
|
||||
$(MAKE) -C $@ $(or $(MAKECMDGOALS),all) --no-print-directory
|
||||
|
||||
.PHONY: $(TOPTARGETS) $(SUBDIRS)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user