The 6502 and Z80 assembler.
Added optional immediate argument to BRK instruction on 6502-alike CPU's.
Added arithmetic shift operator.
Made shifts logical and accepts negative values.

heads

tip
browse log
version_1.31
browse .tar.gz

clone

read-only
https://hg.sr.ht/~bjonte/jasm
read/write
ssh://hg@hg.sr.ht/~bjonte/jasm

#Building jAsm

jAsm currently compiles with CMake for Linux.

#Command line build with CMake in Linux

To build with CMake you need CMake 3.5, Clang, Mercurial and python3 installed. On Debian, Ubuntu or Mint systems you can use apt-get to fetch the dependencies like this.

sudo apt-get install cmake clang mercurial python3

Clone the repository into a directory called 'jasm' and build it like this.

hg clone https://hg.sr.ht/~bjonte/jasm
cd jasm
export CXX=/usr/bin/clang++
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ..
sudo make install

More details about cross compiling for Windows is in the documentation.

#Running Unit Tests

Run the unit tests using the python script unit_test_run.py. It runs under Python 3.

python3 unit_test_run.py

Add a unit test by placing a file called test_something.asm that produce the correct output in the unit_tests directory and run unit_test_generate.py. This will add the generated output in unit_tests/results and be considered the correct output for then on.

python3 unit_test_generate.py

#Version Information

When building a release you must run the python script increase_revision.py to inject the current revision and hash into the source code. This change should never be submitted! Building with CMake run this automatically.

python3 increase_revision.py

There are also small scripts to update the major and minor revisions. These changes should be submitted.

python3 increase_major.py
python3 increase_minor.py