diff --git a/code/boot/README.md b/code/boot/README.md index 41da699..3b32827 100644 --- a/code/boot/README.md +++ b/code/boot/README.md @@ -1,31 +1,35 @@ # Boot Firmware for CHIBI PC-09 -TODO: Description of what the firmware does for the PC-09. +This is the firmware for the CHIBI PC-09. In the future it will provide the +CHIBI with initialization code, a UART driver, some self test features. ## Building the Firmware -You will need GNU `make`, and [`asm6809`](https://www.6809.org.uk/asm6809) to -build the firmware. Obtaining a working copy of `asm6809` could be difficult if -you aren't on Debian, Ubuntu, or Windows as instructions for building it are not -given on the `asm6809` website. Functional instructions for building from Git or -tarball are given here: +Building the firmware from source requires [LWTOOLS](http://www.lwtools.ca/) for +building S-Records of the ROM, and `mot2bin` from +[F9DASM](https://github.com/Arakula/f9dasm) for building binary images. A GNU +Make makefile is provided for building on Linux. + +### Using the Makefile + +To generate an S-Record run: ```sh -git clone https://www.6809.org.uk/git/asm6809.git -cd asm6809 -./configure -make -sudo make install +make boot.s19 ``` -From there all you should have to do to generate a `boot.bin` is: +To generate a binary run: ```sh -git clone https://github.com/amberisvibin/chibi-pc09.git -cd chibi-pc09/code/boot make ``` +The makefile also can clean up after itself: + +```sh +make clean +``` + ## Firmware Licensing This firmware like the rest of the CHIBI PC-09 is licensed under the MIT diff --git a/code/boot/makefile b/code/boot/makefile index 8c0497e..3d9528d 100644 --- a/code/boot/makefile +++ b/code/boot/makefile @@ -8,13 +8,14 @@ # Project Defaults & Folders # ------------------------------------------------------------------------------ -TARGET := boot -TARGROM := $(TARGET).bin -SRCDIR := src/ +TARGET := boot +TARGREC := $(TARGET).s19 +TARGROM := $(TARGET).bin +SRCDIR := src/ BUILDDIR := build/ -SRCS := $(wildcard $(SRCDIR)*.s) -OBJS := $(patsubst $(SRCDIR)%.s,$(BUILDDIR)%.o,$(SRCS)) -INCS := $(wildcard $(SRCDIR)*.inc) +SRCS := $(wildcard $(SRCDIR)*.s) +OBJS := $(patsubst $(SRCDIR)%.s,$(BUILDDIR)%.o,$(SRCS)) +INCS := $(wildcard $(SRCDIR)*.inc) # ------------------------------------------------------------------------------ # Toolchain Definitions @@ -34,11 +35,11 @@ LDFLAGS := -f srec -m map.txt -s linkscript all: $(TARGROM) # Fix srec into flashable bin file -$(TARGROM): $(TARGET).s19 +$(TARGROM): $(TARGREC) $(FIX) -out $@ $< # Link objects -$(TARGET).s19: $(OBJS) +$(TARGREC): $(OBJS) $(LD) $(LDFLAGS) -o $@ $^ # Assemble objects @@ -46,7 +47,6 @@ $(OBJS): $(BUILDDIR)%.o : $(SRCDIR)%.s -@mkdir -p $(BUILDDIR) $(AS) $(ASFLAGS) -o $@ $< -.IGNORE: clean clean: @echo 'Cleaning up intermediary files...' - @rm -rv $(TARGROM) $(TARGET).s19 map.txt $(BUILDDIR) + @rm -rv $(TARGROM) $(TARGREC) map.txt $(BUILDDIR)