Search in sources :

Example 16 with OpCode

use of com.rox.emu.processor.mos6502.op.OpCode in project emuRox by rossdrew.

the class Mos6502CompilerTest method testSingleDigitArgument.

@Test
public void testSingleDigitArgument() {
    OpCode.streamOf(AddressingMode.ZERO_PAGE).forEach((opcode) -> {
        final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + VALUE_PREFIX + "A");
        final Program program = compiler.compileProgram();
        int[] bytes = program.getProgramAsByteArray();
        assertArrayEquals("Output for '" + opcode.toString() + "' was wrong.", new int[] { opcode.getByteValue(), 0xA }, bytes);
    });
}
Also used : Program(com.rox.emu.processor.mos6502.util.Program) Mos6502Compiler(com.rox.emu.processor.mos6502.util.Mos6502Compiler) Test(org.junit.Test)

Example 17 with OpCode

use of com.rox.emu.processor.mos6502.op.OpCode in project emuRox by rossdrew.

the class Mos6502CompilerTest method testDoubleDigitArgument.

@Test
public void testDoubleDigitArgument() {
    OpCode.streamOf(AddressingMode.ZERO_PAGE).forEach((opcode) -> {
        final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + VALUE_PREFIX + "AB");
        Program program = compiler.compileProgram();
        int[] bytes = program.getProgramAsByteArray();
        assertArrayEquals("Output for '" + opcode.toString() + "' was wrong.", new int[] { opcode.getByteValue(), 0xAB }, bytes);
    });
}
Also used : Program(com.rox.emu.processor.mos6502.util.Program) Mos6502Compiler(com.rox.emu.processor.mos6502.util.Mos6502Compiler) Test(org.junit.Test)

Example 18 with OpCode

use of com.rox.emu.processor.mos6502.op.OpCode in project emuRox by rossdrew.

the class Mos6502CompilerTest method testQuadrupleDigitArgument.

@Test
public void testQuadrupleDigitArgument() {
    OpCode.streamOf(AddressingMode.ABSOLUTE).forEach((opcode) -> {
        final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName() + " " + VALUE_PREFIX + "ABCD");
        Program program = compiler.compileProgram();
        int[] bytes = program.getProgramAsByteArray();
        assertArrayEquals("Output for '" + opcode.toString() + "' was wrong.", new int[] { opcode.getByteValue(), 0xAB, 0xCD }, bytes);
    });
}
Also used : Program(com.rox.emu.processor.mos6502.util.Program) Mos6502Compiler(com.rox.emu.processor.mos6502.util.Mos6502Compiler) Test(org.junit.Test)

Example 19 with OpCode

use of com.rox.emu.processor.mos6502.op.OpCode in project emuRox by rossdrew.

the class Mos6502CompilerTest method testImpliedInstructions.

@Test
public void testImpliedInstructions() {
    OpCode.streamOf(AddressingMode.IMPLIED).forEach((opcode) -> {
        final Mos6502Compiler compiler = new Mos6502Compiler(opcode.getOpCodeName());
        Program program = compiler.compileProgram();
        int[] bytes = program.getProgramAsByteArray();
        assertEquals("Wrong byte value for " + opcode.getOpCodeName() + "(" + opcode.getByteValue() + ")", opcode.getByteValue(), bytes[0]);
    });
}
Also used : Program(com.rox.emu.processor.mos6502.util.Program) Mos6502Compiler(com.rox.emu.processor.mos6502.util.Mos6502Compiler) Test(org.junit.Test)

Aggregations

Mos6502Compiler (com.rox.emu.processor.mos6502.util.Mos6502Compiler)16 Program (com.rox.emu.processor.mos6502.util.Program)16 Property (com.pholser.junit.quickcheck.Property)10 Test (org.junit.Test)7 OpCode (com.rox.emu.processor.mos6502.op.OpCode)2 UnknownOpCodeException (com.rox.emu.UnknownOpCodeException)1 UnknownTokenException (com.rox.emu.UnknownTokenException)1 RoxWord (com.rox.emu.env.RoxWord)1 AddressingMode (com.rox.emu.processor.mos6502.op.AddressingMode)1