Getting started#

Obtaining#

The recommended way to download Moira is to clone the project directly from GitHub:

git clone https://github.com/dirkwhoffmann/Moira.git
cd Moira 

Older versions can be downloaded from the Moira release page.

Configuring#

All compile-time options are configured in a single file called MoiraConfig.h. For this tutorial, there is no need to change any of the default settings. However, you may already want to peek inside the file to get an idea about available options:

cat Moira/MoiraConfig.h

All available options are explained in detail in a seperate section.

Compiling#

The easies way to compile Moira is via CMake. Simply create a build directory, invoke CMake to setup the build-chain, and call make afterwards:

mkdir build
cd build
cmake ..
make

Running#

If build as explained above, an application called testRunner is created. The application iterates over all opcodes, runs Moira and Musashi in parallel, and compares the outcome. If everything works as expected, the application terminates after a few minutes. If a disrepancy is detected, an error rerport is generated. In such a case, please file a bug on GitHub. Every help in ruling out remaining bugs is highly appreciated.

Moira CPU tester. (C) Dirk W. Hoffmann, 2019 - 2022

The test program runs Moira agains Musashi with randomly generated data.

    Test rounds : 1
    Random seed : 442
     Exec range : (opcode >= 0x0000 && opcode <= 0xEFFF)
     Dasm range : (opcode >= 0x0000 && opcode <= 0xFFFF)

Round 1:

68000 CPU ................................ PASSED  (Moira: 0.65s  Musashi: 0.89s)
68010 CPU ................................ PASSED  (Moira: 1.31s  Musashi: 1.78s)
EC020 CPU ................................ PASSED  (Moira: 1.99s  Musashi: 2.70s)
68020 CPU ................................ PASSED  (Moira: 2.67s  Musashi: 3.62s)
EC030 CPU ................................ PASSED  (Moira: 3.34s  Musashi: 4.53s)
68030 CPU ................................ PASSED  (Moira: 4.02s  Musashi: 5.45s)
68030 MMU ................................ PASSED  (Moira: 4.02s  Musashi: 5.45s)
EC040 CPU ................................ PASSED  (Moira: 4.69s  Musashi: 6.35s)
LC040 CPU ................................ PASSED  (Moira: 5.35s  Musashi: 7.26s)
LC040 MMU ................................ PASSED  (Moira: 5.35s  Musashi: 7.26s)
68040 CPU ................................ PASSED  (Moira: 6.04s  Musashi: 8.18s)
68040 MMU ................................ PASSED  (Moira: 6.04s  Musashi: 8.18s)
68040 FPU ................................ PASSED  (Moira: 6.04s  Musashi: 8.18s)

All tests completed

Please note that not all test rounds execute instructions. This happens only in the first four rounds, when a 68000, 68010, 68EC020, or 68020 is emulated. For all other CPU models, only the disassembler is invoked.