added decapped dump of the d8751 on quzard4 sets [Team Europe]

(also added NO_DUMP listings to the other - MCU might control region tho, so possibly needs further thought)

have NOT hooked this up properly so not 100% sure it's good - timer interrupt code ends up jumping to unused area

000B: ljmp  $016A
016A: clr   tr0
016C: mov   th0,#$FD
016F: mov   tl0,#$12
0172: setb  tr0
0174: push  acc
0176: push  psw
0178: mov   a,r0
0179: push  acc
017B: mov   a,r1
017C: push  acc
017E: anl   c,/it1
0180: djnz  r1,$013A
013A: rr    a
013B: add   a,r1
013C: mov   r0,#$83
013E: mov   p0.7,c
0140: acall $0012
0012: mov   r7,a
0013: reti
0142: ljmp  $E430
E430: nop
E431: nop
E432: nop
E433: nop
This commit is contained in:
David Haywood 2016-12-27 20:06:53 +00:00
parent c7904cdf80
commit f8eb88c8e8
2 changed files with 77 additions and 107 deletions

View File

@ -317,7 +317,7 @@ MACHINE_RESET_MEMBER( cdi_state, cdimono2 )
m_dmadac[1] = machine().device<dmadac_sound_device>("dac2");
}
MACHINE_RESET_MEMBER( cdi_state, quizard12 )
MACHINE_RESET_MEMBER( cdi_state, quizard1 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
@ -325,24 +325,7 @@ MACHINE_RESET_MEMBER( cdi_state, quizard12 )
m_scc->set_quizard_mcu_ack(0x5a);
}
MACHINE_RESET_MEMBER( cdi_state, quizard17 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
m_scc->set_quizard_mcu_value(0x021f);
m_scc->set_quizard_mcu_ack(0x5a);
}
/* Untested - copied from quizard17 */
MACHINE_RESET_MEMBER( cdi_state, quizard18 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
m_scc->set_quizard_mcu_value(0x021f);
m_scc->set_quizard_mcu_ack(0x5a);
}
MACHINE_RESET_MEMBER( cdi_state, quizard22 )
MACHINE_RESET_MEMBER( cdi_state, quizard2 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
@ -354,20 +337,9 @@ MACHINE_RESET_MEMBER( cdi_state, quizard22 )
m_scc->set_quizard_mcu_ack(0x59);
}
/* Untested - copied from quizard22 */
MACHINE_RESET_MEMBER( cdi_state, quizard23 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
// 0x2b1: Italian
// 0x001: French
// 0x188: German
m_scc->set_quizard_mcu_value(0x188);
m_scc->set_quizard_mcu_ack(0x59);
}
MACHINE_RESET_MEMBER( cdi_state, quizard32 )
MACHINE_RESET_MEMBER( cdi_state, quizard3 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
@ -375,17 +347,7 @@ MACHINE_RESET_MEMBER( cdi_state, quizard32 )
m_scc->set_quizard_mcu_ack(0x58);
}
/* Untested - copied from quizard32 */
MACHINE_RESET_MEMBER( cdi_state, quizard34 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
m_scc->set_quizard_mcu_value(0x00ae);
m_scc->set_quizard_mcu_ack(0x58);
}
/* Untested - copied from quizard4r41 */
MACHINE_RESET_MEMBER( cdi_state, quizard4r40 )
MACHINE_RESET_MEMBER( cdi_state, quizard4 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
@ -394,22 +356,7 @@ MACHINE_RESET_MEMBER( cdi_state, quizard4r40 )
m_scc->set_quizard_mcu_ack(0x57);
}
MACHINE_RESET_MEMBER( cdi_state, quizard4r41 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
//m_scc->set_quizard_mcu_value(0x0139);
m_scc->set_quizard_mcu_value(0x011f);
m_scc->set_quizard_mcu_ack(0x57);
}
MACHINE_RESET_MEMBER( cdi_state, quizard4r42 )
{
MACHINE_RESET_CALL_MEMBER( cdimono1 );
m_scc->set_quizard_mcu_value(0x01ae);
m_scc->set_quizard_mcu_ack(0x57);
}
/**************************
* 68HC05 Handlers *
@ -987,45 +934,38 @@ static MACHINE_CONFIG_DERIVED( quizard, cdimono1_base )
MCFG_CPU_VBLANK_INT_DRIVER("screen", cdi_state, mcu_frame)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard12, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard12 )
static MACHINE_CONFIG_DERIVED( quizard1, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard1 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard17, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard17 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard18, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard18 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard22, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard22 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard23, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard23 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard32, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard32 )
static MACHINE_CONFIG_DERIVED( quizard2, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard2 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard3, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard34 )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard3 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard4r40, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard4r40 )
READ8_MEMBER( cdi_state::quizard_mcu_p1_r )
{
return rand();
}
static ADDRESS_MAP_START( mcu_io_map, AS_IO, 8, cdi_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE(MCS51_PORT_P1, MCS51_PORT_P1) AM_READ(quizard_mcu_p1_r)
ADDRESS_MAP_END
static MACHINE_CONFIG_DERIVED( quizard4, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard4 )
MCFG_CPU_ADD("mcu", I8751, 8000000)
MCFG_CPU_IO_MAP(mcu_io_map)
// MCFG_DEVICE_VBLANK_INT_DRIVER("screen", cdi_state, irq0_line_pulse)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard4r41, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard4r41 )
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( quizard4r42, quizard )
MCFG_MACHINE_RESET_OVERRIDE(cdi_state, quizard4r42 )
MACHINE_CONFIG_END
@ -1125,6 +1065,9 @@ ROM_START( quizard ) /* CD-ROM printed ??/?? */
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard18", 0, BAD_DUMP SHA1(ede873b22957f2a707bbd3039e962ef2ca5aedbd) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard_d8751.bin", 0x0000, 0x1000, NO_DUMP )
ROM_END
ROM_START( quizard_17 )
@ -1139,6 +1082,9 @@ ROM_START( quizard_17 )
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard17", 0, BAD_DUMP SHA1(4bd698f076505b4e17be978481bce027eb47123b) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard_d8751.bin", 0x0000, 0x1000, NO_DUMP )
ROM_END
ROM_START( quizard_12 ) /* CD-ROM printed 01/95 */
@ -1153,6 +1099,9 @@ ROM_START( quizard_12 ) /* CD-ROM printed 01/95 */
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard12", 0, BAD_DUMP SHA1(6e41683b96b74e903040842aeb18437ad7813c82) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard_d8751.bin", 0x0000, 0x1000, NO_DUMP )
ROM_END
ROM_START( quizard_10 )
@ -1170,6 +1119,9 @@ ROM_START( quizard_10 )
// Drive: TS-L633R
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard10", 0, SHA1(5715db50f0d5ffe06f47c0943f4bf0481ab6048e) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard_d8751.bin", 0x0000, 0x1000, NO_DUMP )
ROM_END
@ -1187,6 +1139,9 @@ ROM_START( quizard2 ) /* CD-ROM printed ??/?? */
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard23", 0, BAD_DUMP SHA1(cd909d9a54275d6f2d36e03e83eea996e781b4d3) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard2_d8751.bin", 0x0000, 0x1000, NO_DUMP )
ROM_END
ROM_START( quizard2_22 )
@ -1201,6 +1156,9 @@ ROM_START( quizard2_22 )
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard22", 0, BAD_DUMP SHA1(03c8fdcf27ead6e221691111e8c679b551099543) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard2_d8751.bin", 0x0000, 0x1000, NO_DUMP )
ROM_END
// Quizard 3
@ -1217,6 +1175,9 @@ ROM_START( quizard3 ) /* CD-ROM printed ??/?? */
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard34", 0, BAD_DUMP SHA1(37ad49b72b5175afbb87141d57bc8604347fe032) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard3_d8751.bin", 0x0000, 0x1000, NO_DUMP )
ROM_END
ROM_START( quizard3_32 )
@ -1231,6 +1192,9 @@ ROM_START( quizard3_32 )
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard32", 0, BAD_DUMP SHA1(31e9fa2169aa44d799c37170b238134ab738e1a1) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard3_d8751.bin", 0x0000, 0x1000, NO_DUMP )
ROM_END
@ -1246,6 +1210,9 @@ ROM_START( quizard4 ) /* CD-ROM printed 09/98 */
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard4r42", 0, BAD_DUMP SHA1(a5d5c8950b4650b8753f9119dc7f1ccaa2aa5442) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard4_d8751.bin", 0x0000, 0x1000, CRC(7b409c91) SHA1(b02251d7279c66f6da7b79bf35ded033320b70ee) )
ROM_END
ROM_START( quizard4_41 )
@ -1260,6 +1227,9 @@ ROM_START( quizard4_41 )
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard4r41", 0, BAD_DUMP SHA1(2c0484c6545aac8e00b318328c6edce6f5dde43d) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard4_d8751.bin", 0x0000, 0x1000, CRC(7b409c91) SHA1(b02251d7279c66f6da7b79bf35ded033320b70ee) )
ROM_END
ROM_START( quizard4_40 ) /* CD-ROM printed 07/97 */
@ -1274,6 +1244,9 @@ ROM_START( quizard4_40 ) /* CD-ROM printed 07/97 */
DISK_REGION( "cdrom" )
DISK_IMAGE_READONLY( "quizard4r40", 0, BAD_DUMP SHA1(288cc37a994e4f1cbd47aa8c92342879c6fc0b87) )
ROM_REGION(0x1000, "mcu", 0)
ROM_LOAD( "quizard4_d8751.bin", 0x0000, 0x1000, CRC(7b409c91) SHA1(b02251d7279c66f6da7b79bf35ded033320b70ee) )
ROM_END
@ -1293,17 +1266,17 @@ CONS( 1991, cdi490a, 0, 0, cdimono1, cdi, driver_device, 0,
GAME( 1995, cdibios, 0, cdimono1_base, quizard, driver_device, 0, ROT0, "Philips", "CD-i (Mono-I) (PAL) BIOS", MACHINE_IMPERFECT_SOUND | MACHINE_IMPERFECT_GRAPHICS | MACHINE_IS_BIOS_ROOT )
GAME( 1995, quizard, cdibios, quizard18, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.8)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard_17, quizard, quizard17, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.7)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard_12, quizard, quizard12, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard_10, quizard, quizard12, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard, cdibios, quizard1, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.8)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard_17, quizard, quizard1, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.7)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard_12, quizard, quizard1, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard_10, quizard, quizard1, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard (v1.0)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard2, cdibios, quizard23, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.3)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard2_22, quizard2, quizard22, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard2, cdibios, quizard2, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.3)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard2_22, quizard2, quizard2, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 2 (v2.2)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1995, quizard3, cdibios, quizard3, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.4)", MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1996, quizard3_32, quizard3, quizard32, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1996, quizard3_32, quizard3, quizard3, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 3 (v3.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1998, quizard4, cdibios, quizard4r42, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // doesn't boot
GAME( 1998, quizard4_41, quizard4, quizard4r41, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1997, quizard4_40, quizard4, quizard4r40, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1998, quizard4, cdibios, quizard4, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.2)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION ) // doesn't boot
GAME( 1998, quizard4_41, quizard4, quizard4, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.1)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )
GAME( 1997, quizard4_40, quizard4, quizard4, quizard, driver_device, 0, ROT0, "TAB Austria", "Quizard 4 Rainbow (v4.0)", MACHINE_NOT_WORKING | MACHINE_IMPERFECT_SOUND | MACHINE_UNEMULATED_PROTECTION )

View File

@ -8,6 +8,7 @@
#include "machine/cdicdic.h"
#include "sound/dmadac.h"
#include "video/mcd212.h"
#include "cpu/mcs51/mcs51.h"
/*----------- driver state -----------*/
@ -106,21 +107,17 @@ public:
DECLARE_MACHINE_RESET(cdimono1);
DECLARE_MACHINE_RESET(cdimono2);
DECLARE_MACHINE_RESET(quizard12);
DECLARE_MACHINE_RESET(quizard17);
DECLARE_MACHINE_RESET(quizard18);
DECLARE_MACHINE_RESET(quizard22);
DECLARE_MACHINE_RESET(quizard23);
DECLARE_MACHINE_RESET(quizard32);
DECLARE_MACHINE_RESET(quizard34);
DECLARE_MACHINE_RESET(quizard4r40);
DECLARE_MACHINE_RESET(quizard4r41);
DECLARE_MACHINE_RESET(quizard4r42);
DECLARE_MACHINE_RESET(quizard1);
DECLARE_MACHINE_RESET(quizard2);
DECLARE_MACHINE_RESET(quizard3);
DECLARE_MACHINE_RESET(quizard4);
DECLARE_READ8_MEMBER(servo_io_r);
DECLARE_WRITE8_MEMBER(servo_io_w);
DECLARE_READ8_MEMBER(slave_io_r);
DECLARE_WRITE8_MEMBER(slave_io_w);
READ8_MEMBER(quizard_mcu_p1_r);
uint32_t screen_update_cdimono1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t screen_update_cdimono1_lcd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};