92a04f4627
Needed if we want to compile the kernel and zasm from within a SD card. I didn't go straight for 32-bit because it was significantly more complex and 24-bit give us 16M. Enough to go on for a while... |
||
---|---|---|
.. | ||
cfsin | ||
.gitignore | ||
glue.asm | ||
Makefile | ||
README.md | ||
user.h |
Assembling binaries
For a system to be able to self-reproduce, it needs to assemble source z80 assembly to binary.
Goals
Have a RC2014 assemble a Collapse OS kernel with its source living on a CFS on a SD card.
Work in progress: for now, we compile a simple hello.asm source file.
Gathering parts
- Same parts as the SD card recipe.
The zasm binary
To achieve our goal in this recipe, we'll need a zasm binary on the SD card.
This zasm binary needs to be compiled with the right jump offsets for the kernel
we build in this recipe. These offsets are in user.h
and are closely in sync
with the configuration in glue.asm
.
user.h
is then included in apps/zasm/glue.asm
.
The makefile in this recipe takes care of compiling zasm with the proper
user.h
file and place it in cfsin/zasm
The userland source
The code we're going to compile is cfsin/hello.asm
. As you can see, we also
include user.h
in this source code or else ld hl, sAwesome
would load the
wrong offset.
Because of this, the Makefile takes care of copying user.h
in our filesystem.
Preparing the card and kernel
After running make
, you'll end up with sdcard.cfs
which you can load the
same way you did in the SD card recipe.
You will also have os.bin
, which you can flash on your EEPROM the same way
you already did before.
Running it
Compiling and running hello.asm
is done very much like in
the shell emulator:
Collapse OS
> sdci
> fson
> fopn 0 hello.asm
> fnew 1 dest
> fopn 1 dest
> zasm 1 2
> dest
Assembled from a RC2014
>
That RC2014 is starting to feel powerful now, right?