diff options
Diffstat (limited to 'src/mame/machine/btime.cpp')
-rw-r--r-- | src/mame/machine/btime.cpp | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/src/mame/machine/btime.cpp b/src/mame/machine/btime.cpp deleted file mode 100644 index 7eaffda5e26..00000000000 --- a/src/mame/machine/btime.cpp +++ /dev/null @@ -1,93 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Zsolt Vasvari, Couriersud -#include "emu.h" -#include "includes/btime.h" - - -#define BASE 0xb000 - -READ8_MEMBER(btime_state::mmonkey_protection_r) -{ - uint8_t *RAM = memregion("maincpu")->base(); - int ret = 0; - - if (offset == 0x0000) - ret = m_protection_status; - else if (offset == 0x0e00) - ret = m_protection_ret; - else if (offset >= 0x0d00 && offset <= 0x0d02) - ret = RAM[BASE + offset]; /* addition result */ - else - logerror("Unknown protection read. PC=%04X Offset=%04X\n", m_maincpu->pc(), offset); - - return ret; -} - -WRITE8_MEMBER(btime_state::mmonkey_protection_w) -{ - uint8_t *RAM = memregion("maincpu")->base(); - - if (offset == 0) - { - /* protection trigger */ - if (data == 0) - { - int i, s1, s2, r; - - switch (m_protection_command) - { - case 0: /* score addition */ - - s1 = (1 * (RAM[BASE + 0x0d00] & 0x0f)) + (10 * (RAM[BASE + 0x0d00] >> 4)) + - (100 * (RAM[BASE + 0x0d01] & 0x0f)) + (1000 * (RAM[BASE + 0x0d01] >> 4)) + - (10000 * (RAM[BASE + 0x0d02] & 0x0f)) + (100000 * (RAM[BASE + 0x0d02] >> 4)); - - s2 = (1 * (RAM[BASE + 0x0d03] & 0x0f)) + (10 * (RAM[BASE + 0x0d03] >> 4)) + - (100 * (RAM[BASE + 0x0d04] & 0x0f)) + (1000 * (RAM[BASE + 0x0d04] >> 4)) + - (10000 * (RAM[BASE + 0x0d05] & 0x0f)) + (100000 * (RAM[BASE + 0x0d05] >> 4)); - - r = s1 + s2; - - RAM[BASE + 0x0d00] = (r % 10); r /= 10; - RAM[BASE + 0x0d00] |= ((r % 10) << 4); r /= 10; - RAM[BASE + 0x0d01] = (r % 10); r /= 10; - RAM[BASE + 0x0d01] |= ((r % 10) << 4); r /= 10; - RAM[BASE + 0x0d02] = (r % 10); r /= 10; - RAM[BASE + 0x0d02] |= ((r % 10) << 4); - - break; - - case 1: /* decryption */ - - /* Compute return value by searching the decryption table. */ - /* During the search the status should be 2, but we're done */ - /* instanteniously in emulation time */ - for (i = 0; i < 0x100; i++) - { - if (RAM[BASE + 0x0f00 + i] == m_protection_value) - { - m_protection_ret = i; - break; - } - } - break; - - default: - logerror("Unemulated protection command=%02X. PC=%04X\n", m_protection_command, m_maincpu->pc()); - break; - } - - m_protection_status = 0; - } - } - else if (offset == 0x0c00) - m_protection_command = data; - else if (offset == 0x0e00) - m_protection_value = data; - else if (offset >= 0x0f00) - RAM[BASE + offset] = data; /* decrypt table */ - else if (offset >= 0x0d00 && offset <= 0x0d05) - RAM[BASE + offset] = data; /* source table */ - else - logerror("Unknown protection write=%02X. PC=%04X Offset=%04X\n", data, m_maincpu->pc(), offset); -} |