mirror of
https://github.com/holub/mame
synced 2025-04-22 08:22:15 +03:00
-sa1110: Added initial attempt at UART receiving. LSB of received data seems missing, however. [Ryan Holtz]
-jornada: Added enough keyboard keys to boot with kernel debugging enabled. [Ryan Holtz]
This commit is contained in:
parent
e3eea178ad
commit
d49fca9d08
@ -20,7 +20,8 @@
|
||||
#define LOG_POWER (1 << 9)
|
||||
#define LOG_RESET (1 << 10)
|
||||
#define LOG_GPIO (1 << 11)
|
||||
#define LOG_INTC (1 << 12)
|
||||
#define LOG_GPIO_HF (1 << 12)
|
||||
#define LOG_INTC (1 << 13)
|
||||
#define LOG_ALL (LOG_UNKNOWN | LOG_UART | LOG_MCP | LOG_SSP | LOG_OSTIMER | LOG_RTC | LOG_POWER | LOG_RESET | LOG_GPIO | LOG_INTC)
|
||||
|
||||
#define VERBOSE (0) // (LOG_ALL)
|
||||
@ -37,6 +38,7 @@ sa1110_periphs_device::sa1110_periphs_device(const machine_config &mconfig, cons
|
||||
, m_codec(*this, finder_base::DUMMY_TAG)
|
||||
, m_gpio_out(*this)
|
||||
, m_ssp_out(*this)
|
||||
, m_uart3_tx_out(*this)
|
||||
{
|
||||
}
|
||||
|
||||
@ -56,6 +58,16 @@ WRITE_LINE_MEMBER(sa1110_periphs_device::uart3_irq_callback)
|
||||
// Rx completed receiving byte
|
||||
void sa1110_periphs_device::rcv_complete()
|
||||
{
|
||||
receive_register_extract();
|
||||
|
||||
uint16_t data_and_flags = 0;
|
||||
if (is_receive_framing_error())
|
||||
data_and_flags |= 0x200;
|
||||
if (is_receive_parity_error())
|
||||
data_and_flags |= 0x100;
|
||||
data_and_flags |= get_received_char();
|
||||
|
||||
uart_write_receive_fifo(data_and_flags);
|
||||
}
|
||||
|
||||
// Tx completed sending byte
|
||||
@ -76,7 +88,8 @@ void sa1110_periphs_device::tra_complete()
|
||||
// Tx send bit
|
||||
void sa1110_periphs_device::tra_callback()
|
||||
{
|
||||
transmit_register_get_data_bit();
|
||||
// TODO: Handle loopback mode
|
||||
m_uart3_tx_out(transmit_register_get_data_bit());
|
||||
}
|
||||
|
||||
void sa1110_periphs_device::uart_recalculate_divisor()
|
||||
@ -115,6 +128,28 @@ void sa1110_periphs_device::uart_update_eif_status()
|
||||
}
|
||||
}
|
||||
|
||||
void sa1110_periphs_device::uart_write_receive_fifo(uint16_t data_and_flags)
|
||||
{
|
||||
if (m_uart_regs.rx_fifo_count >= ARRAY_LENGTH(m_uart_regs.rx_fifo))
|
||||
return;
|
||||
if (!BIT(m_uart_regs.utcr[3], UTCR3_RXE_BIT))
|
||||
return;
|
||||
|
||||
// fill FIFO entry
|
||||
m_uart_regs.rx_fifo[m_uart_regs.rx_fifo_write_idx] = data_and_flags;
|
||||
m_uart_regs.rx_fifo_count++;
|
||||
m_uart_regs.rx_fifo_write_idx = (m_uart_regs.rx_fifo_write_idx + 1) % ARRAY_LENGTH(m_uart_regs.rx_fifo);
|
||||
|
||||
// update receiver-not-full flag
|
||||
m_uart_regs.utsr1 |= (1 << UTSR1_RNE_BIT);
|
||||
|
||||
// update error flags
|
||||
uart_update_eif_status();
|
||||
|
||||
// update FIFO-service interrupt
|
||||
uart_check_rx_fifo_service();
|
||||
}
|
||||
|
||||
uint8_t sa1110_periphs_device::uart_read_receive_fifo()
|
||||
{
|
||||
const uint8_t data = m_uart_regs.rx_fifo[m_uart_regs.rx_fifo_read_idx];
|
||||
@ -128,10 +163,32 @@ uint8_t sa1110_periphs_device::uart_read_receive_fifo()
|
||||
m_uart_regs.utsr1 &= ~((1 << UTSR1_PRE_BIT) | (1 << UTSR1_FRE_BIT) | (1 << UTSR1_ROR_BIT));
|
||||
m_uart_regs.utsr1 |= fifo_bottom_flags << UTSR1_PRE_BIT;
|
||||
}
|
||||
else
|
||||
{
|
||||
m_uart_regs.utsr1 &= ~(1 << UTSR1_RNE_BIT);
|
||||
}
|
||||
uart_update_eif_status();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
void sa1110_periphs_device::uart_check_rx_fifo_service()
|
||||
{
|
||||
if (m_uart_regs.rx_fifo_count > 4 && BIT(m_uart_regs.utcr[3], UTCR3_RXE_BIT))
|
||||
{
|
||||
m_uart_regs.utsr0 |= (1 << UTSR0_RFS_BIT);
|
||||
if (BIT(m_uart_regs.utcr[3], UTCR3_RIE_BIT))
|
||||
{
|
||||
m_uart3_irqs->in_w<UART3_RFS>(1);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_uart_regs.utsr0 &= ~(1 << UTSR0_RFS_BIT);
|
||||
m_uart3_irqs->in_w<UART3_RFS>(0);
|
||||
}
|
||||
}
|
||||
|
||||
void sa1110_periphs_device::uart_write_transmit_fifo(uint8_t data)
|
||||
{
|
||||
if (m_uart_regs.tx_fifo_count >= ARRAY_LENGTH(m_uart_regs.tx_fifo))
|
||||
@ -192,6 +249,19 @@ void sa1110_periphs_device::uart_end_of_break()
|
||||
|
||||
void sa1110_periphs_device::uart_set_receiver_enabled(bool enabled)
|
||||
{
|
||||
if (!enabled)
|
||||
{
|
||||
m_uart_regs.utsr0 &= ~(1 << UTSR0_RFS_BIT);
|
||||
m_uart3_irqs->in_w<UART3_RFS>(0);
|
||||
|
||||
m_uart_regs.utsr1 &= ~(1 << UTSR1_RNE_BIT);
|
||||
|
||||
m_uart_regs.rx_fifo_count = 0;
|
||||
m_uart_regs.rx_fifo_read_idx = 0;
|
||||
m_uart_regs.rx_fifo_write_idx = 0;
|
||||
|
||||
receive_register_reset();
|
||||
}
|
||||
}
|
||||
|
||||
void sa1110_periphs_device::uart_set_transmitter_enabled(bool enabled)
|
||||
@ -253,7 +323,7 @@ uint32_t sa1110_periphs_device::uart3_r(offs_t offset, uint32_t mem_mask)
|
||||
LOGMASKED(LOG_UART_HF, "%s: uart3_r: UART Status Register 0: %08x & %08x\n", machine().describe_context(), m_uart_regs.utsr0, mem_mask);
|
||||
return m_uart_regs.utsr0;
|
||||
case REG_UTSR1:
|
||||
LOGMASKED(LOG_UART, "%s: uart3_r: UART Status Register 1: %08x & %08x\n", machine().describe_context(), m_uart_regs.utsr1, mem_mask);
|
||||
LOGMASKED(LOG_UART_HF, "%s: uart3_r: UART Status Register 1: %08x & %08x\n", machine().describe_context(), m_uart_regs.utsr1, mem_mask);
|
||||
return m_uart_regs.utsr1;
|
||||
default:
|
||||
LOGMASKED(LOG_UART | LOG_UNKNOWN, "%s: uart3_r: Unknown address: %08x & %08x\n", machine().describe_context(), UART_BASE_ADDR | (offset << 2), mem_mask);
|
||||
@ -988,7 +1058,7 @@ uint32_t sa1110_periphs_device::ostimer_r(offs_t offset, uint32_t mem_mask)
|
||||
switch (offset)
|
||||
{
|
||||
case REG_OSMR0:
|
||||
LOGMASKED(LOG_OSTIMER, "%s: ostimer_r: OS Timer Match Register 0: %08x & %08x\n", machine().describe_context(), m_ostmr_regs.osmr[0], mem_mask);
|
||||
LOGMASKED(LOG_OSTIMER_HF, "%s: ostimer_r: OS Timer Match Register 0: %08x & %08x\n", machine().describe_context(), m_ostmr_regs.osmr[0], mem_mask);
|
||||
return m_ostmr_regs.osmr[0];
|
||||
case REG_OSMR1:
|
||||
LOGMASKED(LOG_OSTIMER, "%s: ostimer_r: OS Timer Match Register 1: %08x & %08x\n", machine().describe_context(), m_ostmr_regs.osmr[1], mem_mask);
|
||||
@ -1024,7 +1094,7 @@ void sa1110_periphs_device::ostimer_w(offs_t offset, uint32_t data, uint32_t mem
|
||||
switch (offset)
|
||||
{
|
||||
case REG_OSMR0:
|
||||
LOGMASKED(LOG_OSTIMER, "%s: ostimer_w: OS Timer Match Register 0 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
|
||||
LOGMASKED(LOG_OSTIMER_HF, "%s: ostimer_w: OS Timer Match Register 0 = %08x & %08x\n", machine().describe_context(), data, mem_mask);
|
||||
COMBINE_DATA(&m_ostmr_regs.osmr[0]);
|
||||
ostimer_update_match_timer(0);
|
||||
break;
|
||||
@ -1065,7 +1135,7 @@ void sa1110_periphs_device::ostimer_w(offs_t offset, uint32_t data, uint32_t mem
|
||||
break;
|
||||
case REG_OSSR:
|
||||
{
|
||||
LOGMASKED(LOG_OSTIMER, "%s: ostimer_w: OS Timer Status Register = %08x & %08x\n", machine().describe_context(), data, mem_mask);
|
||||
LOGMASKED(LOG_OSTIMER_HF, "%s: ostimer_w: OS Timer Status Register = %08x & %08x\n", machine().describe_context(), data, mem_mask);
|
||||
const uint32_t old = m_ostmr_regs.ossr;
|
||||
m_ostmr_regs.ossr &= ~(data & mem_mask);
|
||||
if (old != m_ostmr_regs.ossr)
|
||||
@ -1161,7 +1231,7 @@ void sa1110_periphs_device::rtc_w(offs_t offset, uint32_t data, uint32_t mem_mas
|
||||
break;
|
||||
case REG_RTSR:
|
||||
{
|
||||
LOGMASKED(LOG_RTC, "%s: rtc_w: RTC Count Register = %08x & %08x\n", machine().describe_context(), data, mem_mask);
|
||||
LOGMASKED(LOG_RTC, "%s: rtc_w: RTC Status Register = %08x & %08x\n", machine().describe_context(), data, mem_mask);
|
||||
|
||||
const uint32_t old = m_rtc_regs.rtsr;
|
||||
const bool old_alarm_int = BIT(old, RTSR_AL_MASK) && BIT(m_rtc_regs.rtsr, RTSR_ALE_MASK);
|
||||
@ -1712,6 +1782,7 @@ void sa1110_periphs_device::device_start()
|
||||
|
||||
m_gpio_out.resolve_all_safe();
|
||||
m_ssp_out.resolve_safe();
|
||||
m_uart3_tx_out.resolve_safe();
|
||||
}
|
||||
|
||||
void sa1110_periphs_device::device_reset()
|
||||
|
@ -44,6 +44,8 @@ public:
|
||||
void ssp_in(uint16_t data) { ssp_rx_fifo_push(data); }
|
||||
auto ssp_out() { return m_ssp_out.bind(); }
|
||||
|
||||
auto uart3_tx_out() { return m_uart3_tx_out.bind(); }
|
||||
|
||||
uint32_t uart3_r(offs_t offset, uint32_t mem_mask = ~0);
|
||||
void uart3_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
|
||||
uint32_t mcp_r(offs_t offset, uint32_t mem_mask = ~0);
|
||||
@ -72,8 +74,10 @@ protected:
|
||||
DECLARE_WRITE_LINE_MEMBER(uart3_irq_callback);
|
||||
void uart_recalculate_divisor();
|
||||
void uart_update_eif_status();
|
||||
void uart_write_receive_fifo(uint16_t data_and_flags);
|
||||
uint8_t uart_read_receive_fifo();
|
||||
void uart_write_transmit_fifo(uint8_t data);
|
||||
void uart_check_rx_fifo_service();
|
||||
void uart_check_tx_fifo_service();
|
||||
void uart_set_receiver_idle();
|
||||
void uart_begin_of_break();
|
||||
@ -499,6 +503,7 @@ protected:
|
||||
|
||||
devcb_write_line::array<28> m_gpio_out;
|
||||
devcb_write16 m_ssp_out;
|
||||
devcb_write_line m_uart3_tx_out;
|
||||
};
|
||||
|
||||
DECLARE_DEVICE_TYPE(SA1110_PERIPHERALS, sa1110_periphs_device)
|
||||
|
@ -23,7 +23,7 @@
|
||||
#define LOG_CARD (1 << 12)
|
||||
#define LOG_ALL (LOG_UNKNOWN | LOG_SBI | LOG_SK | LOG_USB | LOG_AUDIO | LOG_SSP | LOG_TRACK | LOG_MOUSE | LOG_GPIO | LOG_INTC | LOG_CARD)
|
||||
|
||||
#define VERBOSE (0) // (LOG_ALL)
|
||||
#define VERBOSE (LOG_ALL)
|
||||
#include "logmacro.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(SA1111, sa1111_device, "sa1111", "Intel SA1111 Microprocessor Companion Chip")
|
||||
|
@ -29,7 +29,7 @@
|
||||
#define LOG_MPLUG_WR (1 << 12)
|
||||
#define LOG_ALL (LOG_MISC_RD | LOG_MISC_WR | LOG_LCD_RD | LOG_LCD_WR | LOG_CRT_RD | LOG_CRT_WR | LOG_BITBLT_RD | LOG_BITBLT_WR | LOG_LUT_RD | LOG_LUT_WR | LOG_MPLUG_RD | LOG_MPLUG_WR)
|
||||
|
||||
#define VERBOSE (0) // (LOG_ALL)
|
||||
#define VERBOSE (LOG_ALL)
|
||||
#include "logmacro.h"
|
||||
|
||||
DEFINE_DEVICE_TYPE(SED1356, sed1356_device, "sed1356", "Epson SED1356")
|
||||
|
@ -4,6 +4,9 @@
|
||||
|
||||
HP Jornada PDA skeleton driver
|
||||
|
||||
Notes:
|
||||
- GPIO1: IRQ from SA-1111
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
#include "emu.h"
|
||||
@ -18,7 +21,7 @@
|
||||
#define LOG_MCU (1 << 1)
|
||||
#define LOG_ALL (LOG_MCU)
|
||||
|
||||
#define VERBOSE (0) // (LOG_ALL)
|
||||
#define VERBOSE (LOG_ALL)
|
||||
#include "logmacro.h"
|
||||
|
||||
#define SA1110_CLOCK 206000000
|
||||
@ -46,7 +49,14 @@ public:
|
||||
|
||||
enum
|
||||
{
|
||||
KEY_ON_OFF
|
||||
KEY_ON_OFF,
|
||||
KEY_S,
|
||||
KEY_K,
|
||||
KEY_1,
|
||||
KEY_2,
|
||||
KEY_3,
|
||||
KEY_4,
|
||||
KEY_9
|
||||
};
|
||||
|
||||
protected:
|
||||
@ -93,7 +103,7 @@ protected:
|
||||
void jornada_state::main_map(address_map &map)
|
||||
{
|
||||
map(0x00000000, 0x01ffffff).rom().region("firmware", 0);
|
||||
map(0x1a000000, 0x1a000fff).noprw();
|
||||
map(0x1a000000, 0x1a000fff).noprw(); // Debug Attachment Region
|
||||
map(0x40000000, 0x40001fff).m(m_companion, FUNC(sa1111_device::map));
|
||||
map(0x48000000, 0x481fffff).m(m_epson, FUNC(sed1356_device::map));
|
||||
map(0x48200000, 0x4827ffff).m(m_epson, FUNC(sed1356_device::vram_map));
|
||||
@ -101,12 +111,14 @@ void jornada_state::main_map(address_map &map)
|
||||
map(0x80060000, 0x8006001b).rw(m_sa_periphs, FUNC(sa1110_periphs_device::mcp_r), FUNC(sa1110_periphs_device::mcp_w));
|
||||
map(0x80070000, 0x80070077).rw(m_sa_periphs, FUNC(sa1110_periphs_device::ssp_r), FUNC(sa1110_periphs_device::ssp_w));
|
||||
map(0x90000000, 0x9000001f).rw(m_sa_periphs, FUNC(sa1110_periphs_device::ostimer_r), FUNC(sa1110_periphs_device::ostimer_w));
|
||||
map(0x90010000, 0x9001000f).rw(m_sa_periphs, FUNC(sa1110_periphs_device::rtc_r), FUNC(sa1110_periphs_device::rtc_w));
|
||||
map(0x90010000, 0x9001001f).rw(m_sa_periphs, FUNC(sa1110_periphs_device::rtc_r), FUNC(sa1110_periphs_device::rtc_w));
|
||||
map(0x90020000, 0x9002001f).rw(m_sa_periphs, FUNC(sa1110_periphs_device::power_r), FUNC(sa1110_periphs_device::power_w));
|
||||
map(0x90030000, 0x90030007).rw(m_sa_periphs, FUNC(sa1110_periphs_device::reset_r), FUNC(sa1110_periphs_device::reset_w));
|
||||
map(0x90040000, 0x90040023).rw(m_sa_periphs, FUNC(sa1110_periphs_device::gpio_r), FUNC(sa1110_periphs_device::gpio_w));
|
||||
map(0x90050000, 0x90050023).rw(m_sa_periphs, FUNC(sa1110_periphs_device::intc_r), FUNC(sa1110_periphs_device::intc_w));
|
||||
map(0xc0000000, 0xc1ffffff).ram().share("ram");
|
||||
map(0xe0000000, 0xe0003fff).noprw(); // Cache-Flush Region 0
|
||||
map(0xe0100000, 0xe01003ff).noprw(); // Cache-Flush Region 1
|
||||
}
|
||||
|
||||
void jornada_state::device_reset_after_children()
|
||||
@ -154,7 +166,7 @@ void jornada_state::mcu_byte_received(uint16_t data)
|
||||
{
|
||||
m_mcu_key_count[m_mcu_key_send_idx]--;
|
||||
response = m_mcu_key_codes[m_mcu_key_send_idx][m_mcu_key_count[m_mcu_key_send_idx]];
|
||||
if (m_mcu_key_send_idx)
|
||||
if (m_mcu_key_count[m_mcu_key_send_idx])
|
||||
{
|
||||
LOGMASKED(LOG_MCU, "mcu_byte_received in MCU_KBD_SEND_CODES: TxDummy, sending scan code %02x with %d remaining\n", response, m_mcu_key_count[m_mcu_key_send_idx]);
|
||||
}
|
||||
@ -215,25 +227,41 @@ void jornada_state::eeprom_cmd_received(uint16_t data)
|
||||
|
||||
INPUT_CHANGED_MEMBER(jornada_state::key_changed)
|
||||
{
|
||||
const uint8_t state = m_kbd_port->read();
|
||||
if (BIT(state, 0))
|
||||
uint8_t scan_code = 0;
|
||||
switch (param)
|
||||
{
|
||||
m_sa_periphs->gpio_in<0>(1);
|
||||
m_sa_periphs->gpio_in<0>(0);
|
||||
case KEY_ON_OFF: scan_code = 0x7f; break;
|
||||
case KEY_S: scan_code = 0x32; break;
|
||||
case KEY_K: scan_code = 0x38; break;
|
||||
case KEY_1: scan_code = 0x11; break;
|
||||
case KEY_2: scan_code = 0x12; break;
|
||||
case KEY_3: scan_code = 0x13; break;
|
||||
case KEY_4: scan_code = 0x14; break;
|
||||
case KEY_9: scan_code = 0x19; break;
|
||||
default: return;
|
||||
}
|
||||
|
||||
const uint8_t key_recv_idx = 1 - m_mcu_key_send_idx;
|
||||
if (m_mcu_key_count[key_recv_idx] < 8)
|
||||
{
|
||||
m_mcu_key_codes[key_recv_idx][m_mcu_key_count[key_recv_idx]] = 0x7f;
|
||||
m_mcu_key_count[key_recv_idx]++;
|
||||
}
|
||||
m_sa_periphs->gpio_in<0>(1);
|
||||
m_sa_periphs->gpio_in<0>(0);
|
||||
|
||||
const uint8_t key_recv_idx = 1 - m_mcu_key_send_idx;
|
||||
if (m_mcu_key_count[key_recv_idx] < 8)
|
||||
{
|
||||
m_mcu_key_codes[key_recv_idx][m_mcu_key_count[key_recv_idx]] = scan_code | (newval ? 0x00 : 0x80);
|
||||
m_mcu_key_count[key_recv_idx]++;
|
||||
}
|
||||
}
|
||||
|
||||
static INPUT_PORTS_START( jornada720 )
|
||||
PORT_START("KBD0")
|
||||
PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("On/Off") PORT_CODE(KEYCODE_HOME) PORT_CHANGED_MEMBER(DEVICE_SELF, jornada_state, key_changed, jornada_state::KEY_ON_OFF)
|
||||
PORT_BIT(0xfe, IP_ACTIVE_HIGH, IPT_UNUSED)
|
||||
PORT_BIT(0x02, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("S") PORT_CODE(KEYCODE_S) PORT_CHANGED_MEMBER(DEVICE_SELF, jornada_state, key_changed, jornada_state::KEY_S)
|
||||
PORT_BIT(0x04, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("K") PORT_CODE(KEYCODE_K) PORT_CHANGED_MEMBER(DEVICE_SELF, jornada_state, key_changed, jornada_state::KEY_K)
|
||||
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("1") PORT_CODE(KEYCODE_1) PORT_CHANGED_MEMBER(DEVICE_SELF, jornada_state, key_changed, jornada_state::KEY_1)
|
||||
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("2") PORT_CODE(KEYCODE_2) PORT_CHANGED_MEMBER(DEVICE_SELF, jornada_state, key_changed, jornada_state::KEY_2)
|
||||
PORT_BIT(0x20, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("3") PORT_CODE(KEYCODE_1) PORT_CHANGED_MEMBER(DEVICE_SELF, jornada_state, key_changed, jornada_state::KEY_3)
|
||||
PORT_BIT(0x40, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("4") PORT_CODE(KEYCODE_2) PORT_CHANGED_MEMBER(DEVICE_SELF, jornada_state, key_changed, jornada_state::KEY_4)
|
||||
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_OTHER) PORT_NAME("9") PORT_CODE(KEYCODE_2) PORT_CHANGED_MEMBER(DEVICE_SELF, jornada_state, key_changed, jornada_state::KEY_9)
|
||||
INPUT_PORTS_END
|
||||
|
||||
void jornada_state::machine_start()
|
||||
@ -273,6 +301,7 @@ void jornada_state::jornada720(machine_config &config)
|
||||
m_companion->ssp_out().set(FUNC(jornada_state::eeprom_cmd_received));
|
||||
|
||||
SED1356(config, m_epson);
|
||||
m_epson->set_screen("screen");
|
||||
|
||||
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
|
||||
screen.set_refresh_hz(60);
|
||||
@ -292,7 +321,7 @@ ROM_START( jorn720 )
|
||||
ROM_LOAD( "jornada720.bin", 0x0000000, 0x2000000, CRC(5fcd433a) SHA1(f05f7b377b582a7355bf119d74435f0ee6104cca) )
|
||||
|
||||
ROM_REGION( 0x80, "eeprom", ROMREGION_ERASE00 )
|
||||
ROM_LOAD( "jorn720_eeprom.bin", 0x00, 0x80, CRC(54ffaaff) SHA1(5b8296782b6dc1c60b80169c071fb157d0681567) )
|
||||
ROM_LOAD( "jorn720_eeprom.bin", 0x00, 0x80, CRC(54ffaaff) SHA1(5b8296782b6dc1c60b80169c071fb157d0681567) BAD_DUMP )
|
||||
ROM_END
|
||||
|
||||
} // anonymous namespace
|
||||
|
Loading…
Reference in New Issue
Block a user