From a5a8b6059d69b07bdaa9ae59c1e49a153718e238 Mon Sep 17 00:00:00 2001 From: Adrian Conlon Date: Sun, 19 Aug 2018 16:30:31 +0100 Subject: [PATCH] Add BIT instructions to the 6809 Signed-off-by: Adrian Conlon --- MC6809/src/mc6809.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/MC6809/src/mc6809.cpp b/MC6809/src/mc6809.cpp index be95932..322b660 100644 --- a/MC6809/src/mc6809.cpp +++ b/MC6809/src/mc6809.cpp @@ -87,6 +87,17 @@ int EightBit::mc6809::execute(uint8_t cell) { case 0x67: addCycles(6); BUS().write(asr(AM_indexed_byte())); break; // ASR (ASR, indexed) case 0x77: addCycles(7); BUS().write(asr(AM_extended_byte())); break; // ASR (ASR, extended) + // BIT + case 0x85: addCycles(2); andr(A(), AM_immediate_byte()); break; // BIT (BITA, immediate) + case 0x95: addCycles(4); andr(A(), AM_direct_byte()); break; // BIT (BITA, direct) + case 0xA5: addCycles(4); andr(A(), AM_indexed_byte()); break; // BIT (BITA, indexed) + case 0xB5: addCycles(5); andr(A(), AM_extended_byte()); break; // BIT (BITA, extended) + + case 0xc5: addCycles(2); andr(B(), AM_immediate_byte()); break; // BIT (BITB, immediate) + case 0xd5: addCycles(4); andr(B(), AM_direct_byte()); break; // BIT (BITB, direct) + case 0xe5: addCycles(4); andr(B(), AM_indexed_byte()); break; // BIT (BITB, indexed) + case 0xf5: addCycles(5); andr(B(), AM_extended_byte()); break; // BIT (BITB, extended) + // NEG case 0x00: addCycles(6); BUS().write(neg(AM_direct_byte())); break; // NEG (direct) case 0x40: addCycles(2); A() = neg(A()); break; // NEG (NEGA, inherent)