From 14c8f64f38b601398a144d507c0183016d27b87c Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Thu, 4 Sep 2025 07:56:44 +0200 Subject: Move and expand the README on nasm MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Miquel Sabaté Solà --- README.md | 40 +++++++--------------------------------- 1 file changed, 7 insertions(+), 33 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index 5dcd3a9..771f9a5 100644 --- a/README.md +++ b/README.md @@ -4,38 +4,8 @@ Tools I have created to help with NES/Famicom development. ## `nasm` -`nasm` is an assembler specifically tailored for the NES/Famicom. Build it and -run it with cargo, or you can install it somewhere in your `$PATH` and simply: - -``` -$ nasm awesome.s -``` - -This will produce an `out.nes` file placed under the same working directory. You -can change the name of the file with the `-o/--output` flag. Hence, you can call -it like so: - -``` -$ nasm -o awesome.nes awesome.s -``` - -Moreover, you can actually tell `nasm` to redirect the output to stdout instead -with the `--stdout` flag. This is useful when debugging the binary format with -another CLI tool. For example: - -``` -$ nasm --stdout awesome.s | hexdump -C -``` - -By default it will assume the configuration for an `NROM` mapper, but this can -be changed with the `-c/--configuration` flag, which accepts the following -values: `empty`, `nrom`, `nrom65`, `unrom`, `uxrom` and `mmc1`. These values -correspond to the configurations [already bundled](./lib/xixanta/src/mappings) -on this application, which follow a simplified syntax from the -[ld65](https://www.cc65.org/doc/ld65-5.html) one. Alternatively, you can also -pass the path to a configuration file to this flag. This file can either follow -the same [ld65](https://www.cc65.org/doc/ld65-5.html) syntax, or the simplified -one. +`nasm` is an assembler specifically tailored for the NES/Famicom. Read more +about it in [./crates/nasm/README.md](./crates/nasm/README.md). ## `xa65` @@ -44,7 +14,11 @@ results that it produces with a mature and stable assembler like [cc65](https://github.com/cc65/cc65). The purpose of `xa65` is to provide a bridge, and so it simply executes both `nasm` and `cc65` with the given arguments. If the results from both assemblers are not the same, then it will -display a warning and produce the binary as taken from `cc65`. +display a warning and produce the binary as taken from `cc65`. Moreover, if you +want this warning to be an error instead, then use the `--no-errors`. + +Last but not least, you can also pass flags to `xa65` like `--strict`, which +will invoke `nasm` with more pedantic features like its address sanitizer. ## `readrom` -- cgit v1.2.3