# Additional Tools In addition to the core `retro` binary, the `bin` directory will contain a few other tools. ## retro This is the main RETRO binary. ## retro-describe This is a program that looks up entries in the Glossary. At the command line, you can use it like: retro-describe s:for-each You can pass multiple word names to it: retro-describe s:for-each nl d:words ## retro-embedimage This is a program which generates a C file with the ngaImage contents. It's used when building `retro`. retro-embedimage ngaImage The output is written to stdout; redirect it as needed. ## retro-extend This is a program which compiles code into the ngaImage. It's used when building `retro` and when you want to make a standalone image with custom additions. Example command line: retro-extend ngaImage example/rot13.forth Pass the image name as the first argument, and then file names as susequent ones. Do *not* use this for things relying on I/O apart from the basic console output as it doesn't emulate other devices. If you need to load in things that rely on using the optional I/O devices, see the **Advanced Builds** chapter. ## retro-muri This is the assembler for Nga. It's used to build the initial RETRO kernel and can be used by other tools as well. retro-muri retro.muri ## retro-tags and retro-locate These tools are intended to be used together. The first tool, `retro-tags`, will recursively scan the current directory for RETRO source files and extract the locations of words defined in them. These will be written to disk in a `tags` file, using the standard ctags format. `retro-locate` takes a word name, and returns the location(s) where it is defined. This requires a `tags` file to be present. Create the `tags` file: retro-tags Locate a word: retro-locate n:square ## retro-unu This is the literate source extraction tool for RETRO. It is used in building `retro`. Example usage: retro-unu literate/RetroForth.md Output is written to stdout; redirect as neeeded.