mirror of
https://github.com/holub/mame
synced 2025-05-05 22:04:43 +03:00
Carnival King now working
This commit is contained in:
parent
1319453a84
commit
664196e047
@ -179,7 +179,7 @@ MACHINE_CONFIG_END
|
|||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( gtfore01, iteagle )
|
static MACHINE_CONFIG_DERIVED( gtfore01, iteagle )
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
||||||
MCFG_ITEAGLE_FPGA_INIT(0x01000401, 0x0b0b0b)
|
MCFG_ITEAGLE_FPGA_INIT(0x00000401, 0x0b0b0b)
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
||||||
MCFG_ITEAGLE_EEPROM_INIT(0x0401, 0x7)
|
MCFG_ITEAGLE_EEPROM_INIT(0x0401, 0x7)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
@ -187,7 +187,7 @@ MACHINE_CONFIG_END
|
|||||||
static MACHINE_CONFIG_DERIVED( gtfore02, iteagle )
|
static MACHINE_CONFIG_DERIVED( gtfore02, iteagle )
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
||||||
MCFG_ITEAGLE_FPGA_INIT(0x01000402, 0x020201)
|
MCFG_ITEAGLE_FPGA_INIT(0x01000402, 0x020201)
|
||||||
MCFG_DEVICE_MODIFY(":pci:0a.0")
|
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
||||||
MCFG_ITEAGLE_EEPROM_INIT(0x0402, 0x7)
|
MCFG_ITEAGLE_EEPROM_INIT(0x0402, 0x7)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
@ -215,28 +215,28 @@ MACHINE_CONFIG_END
|
|||||||
static MACHINE_CONFIG_DERIVED( gtfore06, iteagle )
|
static MACHINE_CONFIG_DERIVED( gtfore06, iteagle )
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
||||||
MCFG_ITEAGLE_FPGA_INIT(0x01000406, 0x0c0b0d)
|
MCFG_ITEAGLE_FPGA_INIT(0x01000406, 0x0c0b0d)
|
||||||
MCFG_DEVICE_MODIFY(":pci:0a.0")
|
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
||||||
MCFG_ITEAGLE_EEPROM_INIT(0x0406, 0x9);
|
MCFG_ITEAGLE_EEPROM_INIT(0x0406, 0x9);
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( carnking, iteagle )
|
static MACHINE_CONFIG_DERIVED( carnking, iteagle )
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
||||||
MCFG_ITEAGLE_FPGA_INIT(0x01000603, 0x0c0b0d)
|
MCFG_ITEAGLE_FPGA_INIT(0x01000a01, 0x0e0a0a)
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
||||||
MCFG_ITEAGLE_EEPROM_INIT(0x0603, 0x9)
|
MCFG_ITEAGLE_EEPROM_INIT(0x0a01, 0x9)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( bbhsc, iteagle )
|
static MACHINE_CONFIG_DERIVED( bbhsc, iteagle )
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
||||||
MCFG_ITEAGLE_FPGA_INIT(0x01000600, 0x0c0a0a)
|
MCFG_ITEAGLE_FPGA_INIT(0x02000600, 0x0c0a0a)
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
||||||
MCFG_ITEAGLE_EEPROM_INIT(0x0600, 0x9)
|
MCFG_ITEAGLE_EEPROM_INIT(0x0000, 0x7)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
static MACHINE_CONFIG_DERIVED( bbhcotw, iteagle )
|
static MACHINE_CONFIG_DERIVED( bbhcotw, iteagle )
|
||||||
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
MCFG_DEVICE_MODIFY(PCI_ID_FPGA)
|
||||||
MCFG_ITEAGLE_FPGA_INIT(0x02000603, 0x080704)
|
MCFG_ITEAGLE_FPGA_INIT(0x02000603, 0x080704)
|
||||||
MCFG_DEVICE_MODIFY(":pci:0a.0")
|
MCFG_DEVICE_MODIFY(PCI_ID_EEPROM)
|
||||||
MCFG_ITEAGLE_EEPROM_INIT(0x0603, 0x9)
|
MCFG_ITEAGLE_EEPROM_INIT(0x0603, 0x9)
|
||||||
MACHINE_CONFIG_END
|
MACHINE_CONFIG_END
|
||||||
|
|
||||||
@ -331,7 +331,7 @@ static INPUT_PORTS_START( virtpool )
|
|||||||
|
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
static INPUT_PORTS_START( bbhcotw )
|
static INPUT_PORTS_START( bbh )
|
||||||
PORT_INCLUDE( iteagle )
|
PORT_INCLUDE( iteagle )
|
||||||
|
|
||||||
PORT_MODIFY("IN1")
|
PORT_MODIFY("IN1")
|
||||||
@ -557,7 +557,7 @@ ROM_END
|
|||||||
|
|
||||||
GAME( 2000, iteagle, 0, iteagle, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Eagle BIOS", MACHINE_IS_BIOS_ROOT )
|
GAME( 2000, iteagle, 0, iteagle, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Eagle BIOS", MACHINE_IS_BIOS_ROOT )
|
||||||
GAME( 1998, virtpool, iteagle, virtpool, virtpool, driver_device, 0, ROT0, "Incredible Technologies", "Virtual Pool", MACHINE_NOT_WORKING ) // random lockups on loading screens
|
GAME( 1998, virtpool, iteagle, virtpool, virtpool, driver_device, 0, ROT0, "Incredible Technologies", "Virtual Pool", MACHINE_NOT_WORKING ) // random lockups on loading screens
|
||||||
GAME( 2002, carnking, iteagle, carnking, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Carnival King (v1.00.11)", MACHINE_NOT_WORKING )
|
GAME( 2002, carnking, iteagle, carnking, bbh, driver_device, 0, ROT0, "Incredible Technologies", "Carnival King (v1.00.11)", 0 )
|
||||||
GAME( 2000, gtfore01, iteagle, gtfore01, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! (v1.00.25)", 0 )
|
GAME( 2000, gtfore01, iteagle, gtfore01, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! (v1.00.25)", 0 )
|
||||||
GAME( 2001, gtfore02, iteagle, gtfore02, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2002 (v2.01.06)", 0 )
|
GAME( 2001, gtfore02, iteagle, gtfore02, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2002 (v2.01.06)", 0 )
|
||||||
GAME( 2002, gtfore03, iteagle, gtfore03, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.10)", 0 )
|
GAME( 2002, gtfore03, iteagle, gtfore03, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2003 (v3.00.10)", 0 )
|
||||||
@ -569,5 +569,5 @@ GAME( 2004, gtfore05a, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "I
|
|||||||
GAME( 2004, gtfore05b, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.00)", 0 )
|
GAME( 2004, gtfore05b, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.01.00)", 0 )
|
||||||
GAME( 2004, gtfore05c, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.00.00)", 0 )
|
GAME( 2004, gtfore05c, gtfore05, gtfore05, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2005 Extra (v5.00.00)", 0 )
|
||||||
GAME( 2005, gtfore06, iteagle, gtfore06, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2006 Complete (v6.00.01)", 0 )
|
GAME( 2005, gtfore06, iteagle, gtfore06, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Golden Tee Fore! 2006 Complete (v6.00.01)", 0 )
|
||||||
GAME( 2002, bbhsc, iteagle, bbhsc, iteagle, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter - Shooter's Challenge (v1.50.07)", MACHINE_NOT_WORKING ) // doesn't boot
|
GAME( 2002, bbhsc, iteagle, bbhsc, bbh, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter - Shooter's Challenge (v1.50.07)", MACHINE_NOT_WORKING ) // doesn't boot
|
||||||
GAME( 2006, bbhcotw, iteagle, bbhcotw, bbhcotw, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter Call of the Wild (v3.02.5)", MACHINE_NOT_WORKING ) // random lockups
|
GAME( 2006, bbhcotw, iteagle, bbhcotw, bbh, driver_device, 0, ROT0, "Incredible Technologies", "Big Buck Hunter Call of the Wild (v3.02.5)", MACHINE_NOT_WORKING ) // random lockups
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
#include "coreutil.h"
|
#include "coreutil.h"
|
||||||
|
|
||||||
#define LOG_FPGA (0)
|
#define LOG_FPGA (0)
|
||||||
|
#define LOG_SERIAL (0)
|
||||||
#define LOG_RTC (0)
|
#define LOG_RTC (0)
|
||||||
#define LOG_RAM (0)
|
#define LOG_RAM (0)
|
||||||
#define LOG_EEPROM (0)
|
#define LOG_EEPROM (0)
|
||||||
@ -80,14 +81,14 @@ void iteagle_fpga_device::device_reset()
|
|||||||
m_serial_str.clear();
|
m_serial_str.clear();
|
||||||
m_serial_idx = 0;
|
m_serial_idx = 0;
|
||||||
m_serial_data = false;
|
m_serial_data = false;
|
||||||
|
memset(m_serial_com0, 0, sizeof(m_serial_com0));
|
||||||
memset(m_serial_com1, 0, sizeof(m_serial_com1));
|
memset(m_serial_com1, 0, sizeof(m_serial_com1));
|
||||||
memset(m_serial_com2, 0, sizeof(m_serial_com2));
|
memset(m_serial_com2, 0, sizeof(m_serial_com2));
|
||||||
memset(m_serial_com3, 0, sizeof(m_serial_com3));
|
memset(m_serial_com3, 0, sizeof(m_serial_com3));
|
||||||
memset(m_serial_com4, 0, sizeof(m_serial_com4));
|
m_serial_com0[0] = 0x2c;
|
||||||
m_serial_com1[0] = 0x2c;
|
m_serial_com1[0] = 0x2c;
|
||||||
m_serial_com2[0] = 0x2c;
|
m_serial_com2[0] = 0x2c;
|
||||||
m_serial_com3[0] = 0x2c;
|
m_serial_com3[0] = 0x2c;
|
||||||
m_serial_com4[0] = 0x2c;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void iteagle_fpga_device::update_sequence(UINT32 data)
|
void iteagle_fpga_device::update_sequence(UINT32 data)
|
||||||
@ -130,12 +131,10 @@ void iteagle_fpga_device::update_sequence_eg1(UINT32 data)
|
|||||||
val1 = ((m_seq & 0x2)<<6) | ((m_seq & 0x4)<<4) | ((m_seq & 0x8)<<2) | ((m_seq & 0x10)<<0)
|
val1 = ((m_seq & 0x2)<<6) | ((m_seq & 0x4)<<4) | ((m_seq & 0x8)<<2) | ((m_seq & 0x10)<<0)
|
||||||
| ((m_seq & 0x20)>>2) | ((m_seq & 0x40)>>4) | ((m_seq & 0x80)>>6) | ((m_seq & 0x100)>>8);
|
| ((m_seq & 0x20)>>2) | ((m_seq & 0x40)>>4) | ((m_seq & 0x80)>>6) | ((m_seq & 0x100)>>8);
|
||||||
m_seq = (m_seq>>8) | ((feed&0xff)<<16);
|
m_seq = (m_seq>>8) | ((feed&0xff)<<16);
|
||||||
//m_fpga_regs[offset] = (m_fpga_regs[offset]&0xFFFFFF00) | ((val1 + m_seq_rem1)&0xFF);
|
|
||||||
m_fpga_regs[offset] = (m_fpga_regs[offset]&0xFFFFFF00) | ((val1 + m_seq_rem1 + m_seq_rem2)&0xFF);
|
m_fpga_regs[offset] = (m_fpga_regs[offset]&0xFFFFFF00) | ((val1 + m_seq_rem1 + m_seq_rem2)&0xFF);
|
||||||
} else if (data & 0x2) {
|
} else if (data & 0x2) {
|
||||||
val1 = ((m_seq & 0x2)<<1) | ((m_seq & 0x4)>>1) | ((m_seq & 0x8)>>3);
|
val1 = ((m_seq & 0x2)<<1) | ((m_seq & 0x4)>>1) | ((m_seq & 0x8)>>3);
|
||||||
m_seq_rem1 = ((m_seq & 0x10)) | ((m_seq & 0x20)>>2) | ((m_seq & 0x40)>>4);
|
m_seq_rem1 = ((m_seq & 0x10)) | ((m_seq & 0x20)>>2) | ((m_seq & 0x40)>>4);
|
||||||
//m_seq_rem2 = ((m_seq & 0x80)>>1) | ((m_seq & 0x100)>>3) | ((m_seq & 0x200)>>5);
|
|
||||||
m_seq = (m_seq>>6) | ((feed&0x3f)<<18);
|
m_seq = (m_seq>>6) | ((feed&0x3f)<<18);
|
||||||
m_fpga_regs[offset] = (m_fpga_regs[offset]&0xFFFFFF00) | ((val1 + m_seq_rem1 + m_seq_rem2)&0xFF);
|
m_fpga_regs[offset] = (m_fpga_regs[offset]&0xFFFFFF00) | ((val1 + m_seq_rem1 + m_seq_rem2)&0xFF);
|
||||||
} else {
|
} else {
|
||||||
@ -197,16 +196,16 @@ READ32_MEMBER( iteagle_fpga_device::fpga_r )
|
|||||||
logerror("%s:fpga_r offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, result, mem_mask);
|
logerror("%s:fpga_r offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, result, mem_mask);
|
||||||
break;
|
break;
|
||||||
case 0x0c/4: // 1d = modem byte
|
case 0x0c/4: // 1d = modem byte
|
||||||
result = (result & 0xFFFF0000) | ((m_serial_com2[m_serial_idx]&0xff)<<8) | (m_serial_com1[m_serial_idx]&0xff);
|
result = (result & 0xFFFF0000) | ((m_serial_com1[m_serial_idx]&0xff)<<8) | (m_serial_com0[m_serial_idx]&0xff);
|
||||||
if (ACCESSING_BITS_0_15) {
|
if (ACCESSING_BITS_0_15) {
|
||||||
m_serial_data = false;
|
m_serial_data = false;
|
||||||
m_serial_idx = 0;
|
m_serial_idx = 0;
|
||||||
}
|
}
|
||||||
if (LOG_FPGA)
|
if (0 && LOG_FPGA)
|
||||||
logerror("%s:fpga_r offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, result, mem_mask);
|
logerror("%s:fpga_r offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, result, mem_mask);
|
||||||
break;
|
break;
|
||||||
case 0x1c/4: // 1d = modem byte
|
case 0x1c/4: // 1d = modem byte
|
||||||
result = (result & 0xFFFF0000) | ((m_serial_com4[m_serial_idx]&0xff)<<8) | (m_serial_com3[m_serial_idx]&0xff);
|
result = (result & 0xFFFF0000) | ((m_serial_com3[m_serial_idx]&0xff)<<8) | (m_serial_com2[m_serial_idx]&0xff);
|
||||||
if (ACCESSING_BITS_0_15) {
|
if (ACCESSING_BITS_0_15) {
|
||||||
m_serial_data = false;
|
m_serial_data = false;
|
||||||
m_serial_idx = 0;
|
m_serial_idx = 0;
|
||||||
@ -233,8 +232,8 @@ WRITE32_MEMBER( iteagle_fpga_device::fpga_w )
|
|||||||
if ((m_version & 0xff00) == 0x0200)
|
if ((m_version & 0xff00) == 0x0200)
|
||||||
update_sequence_eg1(data & 0xff);
|
update_sequence_eg1(data & 0xff);
|
||||||
else
|
else
|
||||||
// ATMEL Chip access. Returns version id's when bit 7 is set.
|
// ATMEL Chip access. Returns version id's when bit 7 is set.
|
||||||
update_sequence(data & 0xff);
|
update_sequence(data & 0xff);
|
||||||
if (0 && LOG_FPGA)
|
if (0 && LOG_FPGA)
|
||||||
logerror("%s:fpga_w offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, data, mem_mask);
|
logerror("%s:fpga_w offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, data, mem_mask);
|
||||||
}
|
}
|
||||||
@ -242,7 +241,7 @@ WRITE32_MEMBER( iteagle_fpga_device::fpga_w )
|
|||||||
if (ACCESSING_BITS_24_31 && (data & 0x01000000)) {
|
if (ACCESSING_BITS_24_31 && (data & 0x01000000)) {
|
||||||
m_cpu->set_input_line(m_irq_num, CLEAR_LINE);
|
m_cpu->set_input_line(m_irq_num, CLEAR_LINE);
|
||||||
// Not sure what value to use here, needed for lightgun
|
// Not sure what value to use here, needed for lightgun
|
||||||
m_timer->adjust(attotime::from_hz(25));
|
m_timer->adjust(attotime::from_hz(59));
|
||||||
if (LOG_FPGA)
|
if (LOG_FPGA)
|
||||||
logerror("%s:fpga_w offset %04X = %08X & %08X Clearing interrupt(%i)\n", machine().describe_context(), offset*4, data, mem_mask, m_irq_num);
|
logerror("%s:fpga_w offset %04X = %08X & %08X Clearing interrupt(%i)\n", machine().describe_context(), offset*4, data, mem_mask, m_irq_num);
|
||||||
} else {
|
} else {
|
||||||
@ -269,7 +268,7 @@ WRITE32_MEMBER( iteagle_fpga_device::fpga_w )
|
|||||||
if (!m_serial_data) {
|
if (!m_serial_data) {
|
||||||
m_serial_idx = data&0xf;
|
m_serial_idx = data&0xf;
|
||||||
} else {
|
} else {
|
||||||
m_serial_com1[m_serial_idx] = data&0xff;
|
m_serial_com0[m_serial_idx] = data&0xff;
|
||||||
m_serial_idx = 0;
|
m_serial_idx = 0;
|
||||||
}
|
}
|
||||||
m_serial_data = !m_serial_data;
|
m_serial_data = !m_serial_data;
|
||||||
@ -278,29 +277,31 @@ WRITE32_MEMBER( iteagle_fpga_device::fpga_w )
|
|||||||
if (!m_serial_data) {
|
if (!m_serial_data) {
|
||||||
m_serial_idx = (data&0x0f00)>>8;
|
m_serial_idx = (data&0x0f00)>>8;
|
||||||
} else {
|
} else {
|
||||||
m_serial_com2[m_serial_idx] = (data&0xff00)>>8;
|
m_serial_com1[m_serial_idx] = (data&0xff00)>>8;
|
||||||
}
|
}
|
||||||
m_serial_data = !m_serial_data;
|
m_serial_data = !m_serial_data;
|
||||||
}
|
}
|
||||||
if (ACCESSING_BITS_16_23) {
|
if (ACCESSING_BITS_16_23) {
|
||||||
if (m_serial_str.size()==0)
|
if (m_serial_str.size()==0)
|
||||||
m_serial_str = "com1: ";
|
m_serial_str = "com0: ";
|
||||||
m_serial_str += (data>>16)&0xff;
|
m_serial_str += (data>>16)&0xff;
|
||||||
if (((data>>16)&0xff)==0xd) {
|
if (((data>>16)&0xff)==0xd) {
|
||||||
|
if (LOG_SERIAL) logerror("%s\n", m_serial_str.c_str());
|
||||||
osd_printf_debug("%s\n", m_serial_str.c_str());
|
osd_printf_debug("%s\n", m_serial_str.c_str());
|
||||||
m_serial_str.clear();
|
m_serial_str.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ACCESSING_BITS_24_31) {
|
if (ACCESSING_BITS_24_31) {
|
||||||
if (m_serial_str.size()==0)
|
if (m_serial_str.size()==0)
|
||||||
m_serial_str = "com2: ";
|
m_serial_str = "com1: ";
|
||||||
m_serial_str += (data>>24)&0xff;
|
m_serial_str += (data>>24)&0xff;
|
||||||
if (1 || ((data>>24)&0xff)==0xd) {
|
if (1 || ((data>>24)&0xff)==0xd) {
|
||||||
|
if (LOG_SERIAL) logerror("%s\n", m_serial_str.c_str());
|
||||||
osd_printf_debug("%s\n", m_serial_str.c_str());
|
osd_printf_debug("%s\n", m_serial_str.c_str());
|
||||||
m_serial_str.clear();
|
m_serial_str.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (LOG_FPGA)
|
if (0 && LOG_FPGA)
|
||||||
logerror("%s:fpga_w offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, data, mem_mask);
|
logerror("%s:fpga_w offset %04X = %08X & %08X\n", machine().describe_context(), offset*4, data, mem_mask);
|
||||||
break;
|
break;
|
||||||
case 0x1c/4:
|
case 0x1c/4:
|
||||||
@ -308,7 +309,7 @@ WRITE32_MEMBER( iteagle_fpga_device::fpga_w )
|
|||||||
if (!m_serial_data) {
|
if (!m_serial_data) {
|
||||||
m_serial_idx = data&0xf;
|
m_serial_idx = data&0xf;
|
||||||
} else {
|
} else {
|
||||||
m_serial_com3[m_serial_idx] = data&0xff;
|
m_serial_com2[m_serial_idx] = data&0xff;
|
||||||
m_serial_idx = 0;
|
m_serial_idx = 0;
|
||||||
}
|
}
|
||||||
m_serial_data = !m_serial_data;
|
m_serial_data = !m_serial_data;
|
||||||
@ -317,24 +318,26 @@ WRITE32_MEMBER( iteagle_fpga_device::fpga_w )
|
|||||||
if (!m_serial_data) {
|
if (!m_serial_data) {
|
||||||
m_serial_idx = (data&0x0f00)>>8;
|
m_serial_idx = (data&0x0f00)>>8;
|
||||||
} else {
|
} else {
|
||||||
m_serial_com4[m_serial_idx] = (data&0xff00)>>8;
|
m_serial_com3[m_serial_idx] = (data&0xff00)>>8;
|
||||||
}
|
}
|
||||||
m_serial_data = !m_serial_data;
|
m_serial_data = !m_serial_data;
|
||||||
}
|
}
|
||||||
if (ACCESSING_BITS_16_23) {
|
if (ACCESSING_BITS_16_23) {
|
||||||
if (m_serial_str.size()==0)
|
if (m_serial_str.size()==0)
|
||||||
m_serial_str = "com3: ";
|
m_serial_str = "com2: ";
|
||||||
m_serial_str += (data>>16)&0xff;
|
m_serial_str += (data>>16)&0xff;
|
||||||
if (1 || ((data>>16)&0xff)==0xd) {
|
if (1 || ((data>>16)&0xff)==0xd) {
|
||||||
|
if (LOG_SERIAL) logerror("%s\n", m_serial_str.c_str());
|
||||||
osd_printf_debug("%s\n", m_serial_str.c_str());
|
osd_printf_debug("%s\n", m_serial_str.c_str());
|
||||||
m_serial_str.clear();
|
m_serial_str.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ACCESSING_BITS_24_31) {
|
if (ACCESSING_BITS_24_31) {
|
||||||
if (m_serial_str.size()==0)
|
if (m_serial_str.size()==0)
|
||||||
m_serial_str = "com4: ";
|
m_serial_str = "com3: ";
|
||||||
m_serial_str += (data>>24)&0xff;
|
m_serial_str += (data>>24)&0xff;
|
||||||
if (((data>>24)&0xff)==0xd) {
|
if (((data>>24)&0xff)==0xd) {
|
||||||
|
if (LOG_SERIAL) logerror("%s\n", m_serial_str.c_str());
|
||||||
osd_printf_debug("%s\n", m_serial_str.c_str());
|
osd_printf_debug("%s\n", m_serial_str.c_str());
|
||||||
m_serial_str.clear();
|
m_serial_str.clear();
|
||||||
}
|
}
|
||||||
@ -649,7 +652,7 @@ void iteagle_ide_device::device_reset()
|
|||||||
{
|
{
|
||||||
pci_device::device_reset();
|
pci_device::device_reset();
|
||||||
memset(m_ctrl_regs, 0, sizeof(m_ctrl_regs));
|
memset(m_ctrl_regs, 0, sizeof(m_ctrl_regs));
|
||||||
m_ctrl_regs[0x10/4] = 0x00000000; // 0x6=No SIMM, 0x2, 0x1, 0x0 = SIMM . Top 16 bits are compared to 0x3.
|
m_ctrl_regs[0x10/4] = 0x00070000; // 0x6=No SIMM, 0x2, 0x1, 0x0 = SIMM . Top 16 bits are compared to 0x3. Bit 0 might be lan chip present.
|
||||||
memset(m_rtc_regs, 0, sizeof(m_rtc_regs));
|
memset(m_rtc_regs, 0, sizeof(m_rtc_regs));
|
||||||
m_rtc_regs[0xa] = 0x20; // 32.768 MHz
|
m_rtc_regs[0xa] = 0x20; // 32.768 MHz
|
||||||
m_rtc_regs[0xb] = 0x02; // 24-hour format
|
m_rtc_regs[0xb] = 0x02; // 24-hour format
|
||||||
|
@ -63,10 +63,10 @@ private:
|
|||||||
std::string m_serial_str;
|
std::string m_serial_str;
|
||||||
UINT8 m_serial_idx;
|
UINT8 m_serial_idx;
|
||||||
bool m_serial_data;
|
bool m_serial_data;
|
||||||
|
UINT8 m_serial_com0[0x10];
|
||||||
UINT8 m_serial_com1[0x10];
|
UINT8 m_serial_com1[0x10];
|
||||||
UINT8 m_serial_com2[0x10];
|
UINT8 m_serial_com2[0x10];
|
||||||
UINT8 m_serial_com3[0x10];
|
UINT8 m_serial_com3[0x10];
|
||||||
UINT8 m_serial_com4[0x10];
|
|
||||||
|
|
||||||
UINT32 m_version;
|
UINT32 m_version;
|
||||||
UINT32 m_seq_init;
|
UINT32 m_seq_init;
|
||||||
|
Loading…
Reference in New Issue
Block a user