retroasm

command module
v0.0.0-...-fd087f4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

README

retroasm - an Assembler for retro computer systems

Build status go.dev reference Go Report Card codecov

retroasm allows you to assemble programs retro computer systems.

Features

The project is at an early stage of development and currently supports:

  • Supports 6502 CPU and Nintendo Entertainment System (NES) as target
  • Can process asm6/ca65/nesasm compatible assembly files
  • Supports undocumented 6502 CPU opcodes

TODO

  • Support includes
  • More testing of asm6 support
  • More testing of nesasm support
  • Test with larger projects

Installation

The tool uses a modern software stack that does not have any system dependencies beside requiring a somewhat modern operating system to run:

  • Linux: 2.6.32+
  • Windows: 10+
  • macOS: 10.15 Catalina+

There are 2 options to install retroasm:

  1. Download and unpack a binary release from Releases

or

  1. Compile the latest release from source:
go install github.com/retroenv/retroasm@latest

Usage

Assembler a ROM using a ca65 configuration:

retroasm -c test.cfg -o test.nes test.asm

Options

usage: retroasm [options] <file to assemble>

  -c string
    	assembler config file
  -debug
    	enable debug logging
  -o string
    	name of the output file
  -q	perform operations quietly

Documentation

Overview

Package main implements a retro computer assembler.

Directories

Path Synopsis
Package arch contains types and functions used for multi architecture support.
Package arch contains types and functions used for multi architecture support.
Package assembler implements the assembler functionality
Package assembler implements the assembler functionality
config
Package config provides the assembler configuration.
Package config provides the assembler configuration.
Package expression implements an expression parser and evaluator using the Shunting yard algorithm.
Package expression implements an expression parser and evaluator using the Shunting yard algorithm.
Package lexer implements a lexical analyzer that can be used for reading source and configuration files.
Package lexer implements a lexical analyzer that can be used for reading source and configuration files.
token
Package token contains the tokens supported by the lexer.
Package token contains the tokens supported by the lexer.
Package number provides number string parsing helper.
Package number provides number string parsing helper.
Package parser processes an input stream and parses its token to produce an abstract syntax tree (AST) as output.
Package parser processes an input stream and parses its token to produce an abstract syntax tree (AST) as output.
ast
Package ast implements abstract syntax tree (AST) types.
Package ast implements abstract syntax tree (AST) types.
directives
Package directives contains assembler directives parser.
Package directives contains assembler directives parser.
Package scope implements symbol scope handling.
Package scope implements symbol scope handling.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL