Update docs w.r.t. its relationship with scas

This commit is contained in:
Virgil Dupras 2019-06-19 13:34:06 -04:00
parent d6b391e39a
commit 9fb77054c0
2 changed files with 14 additions and 11 deletions

View File

@ -139,4 +139,15 @@ allowed. An included file cannot have an `#inc` directive.
and output its binary content as is the code has been in the includer
file.
## Compatibility with scas
This project was initially assembled with [scas][scas], but now that zasm self-
assembles, it isn't used any more. However, the kernel and zasm code are still
written to be compatible with scas because scas is still used as a comparison
tool in tests.
There are, however, features I want to implement in zasm that will break
compatibility with scas, so in the near future, scas will be left behind.
[libz80]: https://github.com/ggambetta/libz80
[scas]: https://github.com/KnightOS/scas

View File

@ -6,8 +6,7 @@ machine.
These parts are made to be glued together in a single `glue.asm` file you write
yourself.
As of now, the z80 assembler code is written to be assembled with [scas][scas],
but this is going to change in the future as a new hosted assembler is written.
This code is designed to be assembled by Collapse OS' own [zasm][zasm].
## Defines
@ -29,18 +28,11 @@ This is why each part that has variable expect a `<PARTNAME>_RAMSTART`
constant to be defined and, in turn, defines a `<PARTNAME>_RAMEND` constant to
carry to the following part.
Thus, code that glue parts together coould look like:
Thus, code that glue parts together could look like:
MOD1_RAMSTART .equ RAMSTART
#include "mod1.asm"
MOD2_RAMSTART .equ MOD1_RAMEND
#include "mod2.asm"
## Code style
The asm code used in these parts is heavily dependent on what scas offers. I
try to be as "low-tech" as possible because the implementation of the assembler
to be implemented for the z80 will likely be more limited. For example, we don't
use macros.
[scas]: https://github.com/KnightOS/scas
[zasm]: ../apps/zasm/README.md