Usage

Usage: nessemble [options] <infile.asm>
                 <command> [args]

Options:
  -o, --output <outfile.rom>   output file
  -f, --format {NES,RAW}       output format
  -e, --empty <hex>            empty byte value
  -u, --undocumented           use undocumented opcodes
  -l, --list <listfile.txt>    generate list of labels and constants
  -p, --pseudo <pseudo.txt>    use custom pseudo-instruction functions
  -c, --check                  check syntax only
  -C, --coverage               log data coverage
  -d, --disassemble            disassemble infile
  -R, --reassemble             enable reassembly
  -s, --simulate <infile.rom>  start the simulator
  -r, --recipe <recipe.txt>    recipe file for the simulator
  -v, --version                display program version
  -L, --license                display program license
  -h, --help                   print this message

Commands:
  init [<arg> ...]                 initialize new project
  scripts                          install scripts
  reference [<category>] [<term>]  get reference info about assembly terms
  config [<key>] [<val>]           list/get/set config info
  registry [<url>]                 get/set registry url
  install <package>                install package
  uninstall <package>              uninstall package
  publish <package.tar.gz>         publish package
  info <package>                   get info about package
  ls                               list all installed packages
  search <term>                    search for package in registry
  adduser [<arg> ...]              create user account
  login [<arg> ...]                login to the registry
  logout                           logout of the registry
  forgotpassword [<arg> ...]       send password reset email
  resetpassword [<arg> ...]        reset password

Options

Option Description
-o, --output output file
-f, --format {NES,RAW} output format
-e, --empty empty byte value
-u, --undocumented use undocumented opcodes
-l, --list generate list of labels and constants
-p, --pseudo use custom pseudo-instruction functions
-c, --check check syntax only
-C, --coverage log data coverage
-d, --disassemble disassemble infile
-R, --reassemble enable reassembly
-s, --simulate start the simulator
-r, --recipe recipe file for the simulator
-v, --version display program version
-L, --license display program license
-h, --help print this message

-o, --output <outfile.rom>

The -o/--output flag sets the filename where the output should be written.

Example:

nessemble infile.asm --output outfile.rom

If a outfile of - is set (or the flag is omitted altogether) the output will be written to stdout.

-f, --format {NES,RAW}

The -f/--format flag specifies the format of the output.

  • NES - will output an NES ROM, complete with an iNES header
  • RAW - will output raw assembled 6502 code

Example:

nessemble infile.asm --format RAW

The format is RAW by default, but if iNES headers are present in the assembly code, the format will become NES unless this flag overrides it.

-e, --empty <hex>

The -e/--empty flag sets the value of an empty byte or unfilled ROM address value. This defaults to FF.

Example:

nessemble infile.asm --empty 00

-u, --undocumented

The -u/--undocumented flag allows use of undocumented opcodes.

Example:

nessemble infile.asm --undocumented

-l, --list <listfile.txt>

The -l/--list flag sets the filename where a list of labels and constants will be written.

For disassembly, this flag sets the filename of a list to read to aid in the disassembly process.

Example:

nessemble infile.asm --list listfile.txt

-p, --pseudo <pseudo.txt>

The -p/--pseudo flag sets the filename of the file that indicates what custom pseudo-instructions to enable. See the section on Extending to learn more about how to write custom pseudo-instructions.

Example:

nessemble infile.asm --pseudo pseudo.txt

-c, --check

The -c/--check flag only checks the input assembly file for syntax errors. Nothing will be output beyond any syntax errors that may arise.

nessemble infile.asm --check

-C, --coverage

The -C/--coverage flag causes the assembler to output ROM coverage information (amount that the ROM banks have data written to them).

Note

This only works when the -f/--format is NES, not when it is RAW.

Example:

nessemble infile.asm --coverage

-d, --disassemble

The -d/--disassemble flag will disassemble any 6502 ROM. See the section on Disassembling for a breakdown of the generated output.

Example:

nessemble infile.rom --diassemble

-R, --reassemble

The -R/--reassemble flag can be used in conjunction with the -d/--diassemble flag to disassemble to a format appropriate for reassembly. See the section on Disassembling for a breakdown of the generated output.

Example:

nessemble --disassemble infile.rom --reassemble

-s, --simulate <infile.rom>

The -s/--simulate flag starts a 6502 simulator with the provided ROM. See the section on Simulating for a breakdown of the syntax used.

Example:

nessemble --simulate infile.rom

-r, --recipe <recipe.txt>

The -r/--recipe flag can be used in conjunction with the -s/--simulate flag to provide a recipe of instructions to be run by the simulator. See the section on Simulating for a breakdown of the syntax used.

Example:

nessemble --simulate infile.rom --recipe recipe.txt

-v, --version

The -v/--version flag prints the version of nessemble.

Example:

nessemble --version
--version

-L, --license

The -L/--license flag prints the license for nessemble. See the section on Licensing for more information.

Example:

nessemble --license
--license

-h, --help

The -h/--help flag prints the usage for nessemble.

Example:

nessemble --help
--help

Commands

Command Description
init [<arg> ...] initialize new project
scripts install scripts
reference [<category>] [<term>] get reference info about assembly terms
config [<key>] [<val>] list/get/set config info
registry [<url>] get/set registry url
install <package> install package
uninstall <package> uninstall package
publish <package.tar.gz> publish package
info <package> get info about package
ls list all installed packages
search <term> search for package in registry
adduser [<arg> ...] create user account
login [<arg> ...] login to the registry
logout logout of the registry
forgotpassword [<arg> ...] send password reset email
resetpassword [<arg> ...] reset password

init [<arg> ...]

The init command initializes a new project by guiding the user through the creation of a new project.

Example:

nessemble init

If some/no args are provided, a prompt will appear until they are all satisfied. The order is:

nessemble init [filename] [prg] [chr] [mapper] [mirroring]
  • filename - String. Filename of file to create.
  • prg - Number. Number of PRG banks.
  • chr - Number. Number of CHR banks.
  • mapper - Number. Mapper number.
  • mirroring - Number. Type of mirroring.

scripts

The scripts command will install optional scripts that will extend the functionality of nessemble. See the section on Extending to learn more about how to use custom pseudo-instructions.

Example:

nessemble scripts

reference [<category>] [<term>]

The reference command will display reference information on various aspects of 6502 development (registers, addressing, etc).

Example:

nessemble reference

config [<key>] [<val>]

The config command will get/set configuration options. Using config with no additional arguments will list all config options. Using config with just a <key> will list the value for just that key. Using config with a <key> AND a <val> will set the config key to that value.

Example:

nessemble config

registry [<url>]

The registry command will get/set the registry URL. Using registry with no additional arguments will list the current registry URL. Using registry with a URL will set the registry URL to that value.

Note

This only works when the -f/--format is NES, not when it is RAW.

Example:

nessemble registry

install <package>

The install command will install a package that can be used in assembly projects. See the section on Packages for more information on the usage.

Example:

nessemble install foo

uninstall <package>

The uninstall command will uninstall a package. See the section on Packages for more information on the usage.

Example:

nessemble uninstall foo

publish <package.tar.gz>

The publish command will publish a package. See the section on Packages for more information on the usage.

Example:

nessemble publish foo.tar.gz

info <package>

The info command will print info for a given package. See the section on Packages for more information on the usage.

Example:

nessemble info foo

ls

The ls command will list all installed packages. See the section on Packages for more information on the usage.

Example:

nessemble ls

search <term>

The search command will search for packages with titles, descriptions, or keywords that match the given term. See the section on Packages for more information on the usage.

Example:

nessemble search foo

adduser [<arg> ...]

The adduser command will guide the user in the creation of a new user in the registry.

Example:

nessemble adduser

If some/no args are provided, a prompt will appear until they are all satisfied. The order is:

nessemble adduser [name] [username] [email]
  • name - String. Name of user.
  • username - String. Proposed username.
  • email - String. Email address of user.

Note

For added security, a password will always be gathered from the user by prompt.

login [<arg> ...]

The login command will guide the user in the registry login process.

Example:

nessemble login

If some/no args are provided, a prompt will appear until they are all satisfied. The order is:

nessemble login [username]
  • username - String. User's username.

Note

For added security, a password will always be gathered from the user by prompt.

logout

The logout command will log the user out of the registry.

Example:

nessemble logout

forgotpassword [<arg> ...]

The forgotpassword command will send a password reset email to the user.

Example:

nessemble forgotpassword

If some/no args are provided, a prompt will appear until they are all satisfied. The order is:

nessemble forgotpassword [username]
  • username - String. User's username.

resetpassword [<arg> ...]

The resetpassword command will prompt the user to reset their password.

Example:

nessemble resetpassword

If some/no args are provided, a prompt will appear until they are all satisfied. The order is:

nessemble resetpassword [username]
  • token - String. Reset token.
  • username - String. User's username.

Note

For added security, a password will always be gathered from the user by prompt.