mirror of
https://github.com/holub/mame
synced 2025-05-29 00:53:09 +03:00
Hooked up Slap Fight/Alcon 68705 MCU [Phil Bennett, Dr. Decapitator]
New games added or promoted from NOT_WORKING -------------------------------------------- Slap Fight (set 1) [Phil Bennett, Dr. Decapitator] Alcon [Phil Bennett, Dr. Decapitator]
This commit is contained in:
parent
311e46a7bb
commit
92ed14a1e9
@ -445,7 +445,7 @@ static ADDRESS_MAP_START( slapfght_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE(&slapfight_scrollx_lo)
|
||||
AM_RANGE(0xe801, 0xe801) AM_WRITEONLY AM_BASE(&slapfight_scrollx_hi)
|
||||
AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_BASE(&slapfight_scrolly)
|
||||
// AM_RANGE(0xe803, 0xe803) AM_READ(mcu_r) // MCU lives here
|
||||
// AM_RANGE(0xe803, 0xe803) AM_READWRITE(slapfight_mcu_r, slapfight_mcu_w)
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(slapfight_fixram_w) AM_BASE(&slapfight_fixvideoram)
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_BASE(&slapfight_fixcolorram)
|
||||
ADDRESS_MAP_END
|
||||
@ -462,7 +462,6 @@ static ADDRESS_MAP_START( slapbtuk_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
AM_RANGE(0xe800, 0xe800) AM_WRITEONLY AM_BASE(&slapfight_scrollx_hi)
|
||||
AM_RANGE(0xe802, 0xe802) AM_WRITEONLY AM_BASE(&slapfight_scrolly)
|
||||
AM_RANGE(0xe803, 0xe803) AM_WRITEONLY AM_BASE(&slapfight_scrollx_lo)
|
||||
// AM_RANGE(0xe803, 0xe803) AM_READ(getstar_e803_r)
|
||||
AM_RANGE(0xec00, 0xefff) AM_ROM // it reads a copy of the logo from here!
|
||||
AM_RANGE(0xf000, 0xf7ff) AM_RAM_WRITE(slapfight_fixram_w) AM_BASE(&slapfight_fixvideoram)
|
||||
AM_RANGE(0xf800, 0xffff) AM_RAM_WRITE(slapfight_fixcol_w) AM_BASE(&slapfight_fixcolorram)
|
||||
@ -470,7 +469,7 @@ ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( slapfght_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0xff)
|
||||
AM_RANGE(0x00, 0x00) AM_READWRITE(slapfight_port_00_r, slapfight_port_00_w) /* status register */
|
||||
AM_RANGE(0x00, 0x00) AM_WRITE(slapfight_port_00_w)
|
||||
AM_RANGE(0x01, 0x01) AM_WRITE(slapfight_port_01_w)
|
||||
AM_RANGE(0x02, 0x03) AM_WRITE(slapfight_flipscreen_w)
|
||||
// AM_RANGE(0x04, 0x04) AM_WRITE(getstar_port_04_w)
|
||||
@ -481,9 +480,21 @@ static ADDRESS_MAP_START( slapfght_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
AM_RANGE(0x0c, 0x0d) AM_WRITE(slapfight_palette_bank_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static ADDRESS_MAP_START( slapfight_m68705_map, ADDRESS_SPACE_PROGRAM, 8 )
|
||||
ADDRESS_MAP_GLOBAL_MASK(0x7ff)
|
||||
AM_RANGE(0x0000, 0x0000) AM_READWRITE(slapfight_68705_portA_r, slapfight_68705_portA_w)
|
||||
AM_RANGE(0x0001, 0x0001) AM_READWRITE(slapfight_68705_portB_r, slapfight_68705_portB_w)
|
||||
AM_RANGE(0x0002, 0x0002) AM_READWRITE(slapfight_68705_portC_r, slapfight_68705_portC_w)
|
||||
AM_RANGE(0x0004, 0x0004) AM_WRITE(slapfight_68705_ddrA_w)
|
||||
AM_RANGE(0x0005, 0x0005) AM_WRITE(slapfight_68705_ddrB_w)
|
||||
AM_RANGE(0x0006, 0x0006) AM_WRITE(slapfight_68705_ddrC_w)
|
||||
AM_RANGE(0x0010, 0x007f) AM_RAM
|
||||
AM_RANGE(0x0080, 0x07ff) AM_ROM
|
||||
ADDRESS_MAP_END
|
||||
|
||||
static READ8_HANDLER(tigerh_status_r)
|
||||
{
|
||||
return (slapfight_port_00_r(space,0)&0xf9)| ((tigerh_mcu_status_r(space,0)));
|
||||
return (slapfight_port_00_r(space, 0) & 0xf9)| ((tigerh_mcu_status_r(space, 0)));
|
||||
}
|
||||
|
||||
static ADDRESS_MAP_START( tigerh_io_map, ADDRESS_SPACE_IO, 8 )
|
||||
@ -1025,6 +1036,9 @@ static MACHINE_DRIVER_START( slapfigh )
|
||||
MDRV_CPU_PROGRAM_MAP(slapfght_sound_map)
|
||||
MDRV_CPU_VBLANK_INT_HACK(getstar_interrupt, 3)
|
||||
|
||||
MDRV_CPU_ADD("mcu", M68705, XTAL_36MHz/12) /* verified on pcb */
|
||||
MDRV_CPU_PROGRAM_MAP(slapfight_m68705_map)
|
||||
|
||||
MDRV_QUANTUM_TIME(HZ(600)) /* 10 CPU slices per frame - enough for the sound CPU to read all commands */
|
||||
|
||||
MDRV_MACHINE_RESET(slapfight)
|
||||
@ -1059,13 +1073,24 @@ static MACHINE_DRIVER_START( slapfigh )
|
||||
MDRV_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25)
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
static MACHINE_DRIVER_START( slapfgtb )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(slapfigh)
|
||||
|
||||
MDRV_DEVICE_REMOVE("mcu")
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
/* identical to slapfigh_ but the scroll registers are located elsewhere in memory */
|
||||
static MACHINE_DRIVER_START( slapbtuk )
|
||||
|
||||
/* basic machine hardware */
|
||||
MDRV_IMPORT_FROM(slapfigh)
|
||||
|
||||
MDRV_CPU_MODIFY("maincpu")
|
||||
MDRV_CPU_PROGRAM_MAP(slapbtuk_map)
|
||||
|
||||
MDRV_DEVICE_REMOVE("mcu")
|
||||
MACHINE_DRIVER_END
|
||||
|
||||
|
||||
@ -1394,8 +1419,8 @@ ROM_START( slapfigh )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "sf_r05.bin", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) )
|
||||
|
||||
ROM_REGION( 0x0800, "cpu2", 0 ) /* 2k for the microcontroller */
|
||||
ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP )
|
||||
ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */
|
||||
ROM_LOAD( "a77_13.bin", 0x0000, 0x0800, CRC(a70c81d9) SHA1(f155ffd25a946b0459216a8f80ded16e6e2f9258) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "sf_r11.bin", 0x00000, 0x2000, CRC(2ac7b943) SHA1(d0c3560bb1f0c2647aeff807cb4b09450237b955) ) /* Chars */
|
||||
@ -1429,8 +1454,8 @@ ROM_START( slapfigha )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "a76-03.bin", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) )
|
||||
|
||||
ROM_REGION( 0x0800, "cpu2", 0 ) /* 2k for the microcontroller */
|
||||
ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP )
|
||||
ROM_REGION( 0x0800, "mcu", 0 )
|
||||
ROM_LOAD( "a76_14.bin", 0x0000, 0x0800, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "a76-05.bin", 0x00000, 0x2000, CRC(be9a1bc5) SHA1(2fabfd42cd49db67654eac824c9852ed368a6e50) ) /* Chars */
|
||||
@ -1462,8 +1487,8 @@ ROM_START( alcon )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 )
|
||||
ROM_LOAD( "sf_r05.bin", 0x0000, 0x2000, CRC(87f4705a) SHA1(a90d5644ce268f3321047a4f96df96ac294d2f1b) )
|
||||
|
||||
ROM_REGION( 0x0800, "cpu2", 0 ) /* 2k for the microcontroller */
|
||||
ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP )
|
||||
ROM_REGION( 0x0800, "mcu", 0 )
|
||||
ROM_LOAD( "a77_13.bin", 0x0000, 0x0800, CRC(a70c81d9) SHA1(f155ffd25a946b0459216a8f80ded16e6e2f9258) )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 )
|
||||
ROM_LOAD( "04", 0x00000, 0x2000, CRC(31003483) SHA1(7014ceb6313ac5a3d2dcb735643dfd8bfabaa185) ) /* Chars */
|
||||
@ -1590,8 +1615,8 @@ ROM_START( getstar )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Region 3 - sound cpu code */
|
||||
ROM_LOAD( "a68-03", 0x0000, 0x2000, CRC(18daa44c) SHA1(1a3d22a186c591321d1b836ee30d89fba4771122) )
|
||||
|
||||
ROM_REGION( 0x0800, "cpu2", 0 ) /* 2k for the microcontroller */
|
||||
ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP )
|
||||
ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */
|
||||
ROM_LOAD( "a68_14", 0x0000, 0x0800, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 ) /* Region 1 - temporary for gfx */
|
||||
ROM_LOAD( "a68_05-1", 0x00000, 0x2000, CRC(06f60107) SHA1(c5dcf0c7a5863ea960ee747d2d7ec7ac8bb7d3af) ) /* Chars */
|
||||
@ -1624,7 +1649,7 @@ ROM_START( getstarj )
|
||||
ROM_REGION( 0x10000, "audiocpu", 0 ) /* Region 3 - sound cpu code */
|
||||
ROM_LOAD( "a68-03", 0x00000, 0x2000, CRC(18daa44c) SHA1(1a3d22a186c591321d1b836ee30d89fba4771122) )
|
||||
|
||||
ROM_REGION( 0x0800, "cpu2", 0 ) /* 2k for the microcontroller */
|
||||
ROM_REGION( 0x0800, "mcu", 0 ) /* 2k for the microcontroller */
|
||||
ROM_LOAD( "68705.bin", 0x0000, 0x0800, NO_DUMP )
|
||||
|
||||
ROM_REGION( 0x04000, "gfx1", 0 ) /* Region 1 - temporary for gfx */
|
||||
@ -1784,7 +1809,8 @@ static READ8_HANDLER( gtstarb1_port_0_read )
|
||||
|
||||
static void getstar_init( running_machine *machine )
|
||||
{
|
||||
memory_install_readwrite8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xe803, 0xe803, 0, 0, getstar_e803_r, getstar_e803_w );
|
||||
memory_install_readwrite8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xe803, 0xe803, 0, 0, getstar_e803_r, getstar_e803_w );
|
||||
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO), 0x00, 0x00, 0, 0, slapfight_port_00_r );
|
||||
}
|
||||
|
||||
static DRIVER_INIT( getstar )
|
||||
@ -1821,54 +1847,48 @@ static DRIVER_INIT( gtstarb2 )
|
||||
getstar_init(machine);
|
||||
}
|
||||
|
||||
|
||||
static int slapfigh_prot_pos;
|
||||
|
||||
static READ8_HANDLER( slapfigh_mcu_r )
|
||||
{
|
||||
/* pass initial checks */
|
||||
static const int protvalues[] = { 0xc7, 0x55, -1 };
|
||||
|
||||
if ((cpu_get_pc(space->cpu)==0x1369) || // slapfigh
|
||||
(cpu_get_pc(space->cpu)==0x136d)) // slapfiga
|
||||
{
|
||||
int retdat = protvalues[slapfigh_prot_pos];
|
||||
if (retdat == -1)
|
||||
{
|
||||
slapfigh_prot_pos = 0;
|
||||
retdat = protvalues[slapfigh_prot_pos];
|
||||
}
|
||||
|
||||
slapfigh_prot_pos++;
|
||||
return retdat;
|
||||
}
|
||||
logerror("MCU Read PC=%04x\n",cpu_get_pc(space->cpu));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static DRIVER_INIT( slapfigh )
|
||||
{
|
||||
slapfigh_prot_pos = 0;
|
||||
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xe803, 0xe803, 0, 0, slapfigh_mcu_r );
|
||||
// memory_install_write8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xe803, 0xe803, 0, 0, getstar_mcu_w );
|
||||
memory_install_readwrite8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_PROGRAM), 0xe803, 0xe803, 0, 0, slapfight_mcu_r, slapfight_mcu_w );
|
||||
memory_install_read8_handler(cputag_get_address_space(machine, "maincpu", ADDRESS_SPACE_IO), 0x00, 0x00, 0, 0, slapfight_mcu_status_r );
|
||||
}
|
||||
|
||||
|
||||
/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS ) */
|
||||
/* ( YEAR NAME PARENT MACHINE INPUT INIT MONITOR COMPANY FULLNAME FLAGS ) */
|
||||
GAME( 1985, perfrman, 0, perfrman, perfrman, 0, ROT270, "Toaplan / Data East Corporation", "Performan (Japan)", 0 )
|
||||
GAME( 1985, perfrmanu,perfrman, perfrman, perfrman, 0, ROT270, "Toaplan / Data East USA", "Performan (US)", 0 )
|
||||
|
||||
GAME( 1985, tigerh, 0, tigerh, tigerh, tigerh, ROT270, "Taito America Corp.", "Tiger Heli (US)", GAME_NO_COCKTAIL )
|
||||
GAME( 1985, tigerhj, tigerh, tigerh, tigerh, tigerh, ROT270, "Taito", "Tiger Heli (Japan)", GAME_NO_COCKTAIL )
|
||||
GAME( 1985, tigerhb1, tigerh, tigerhb, tigerh, tigerhb, ROT270, "bootleg", "Tiger Heli (bootleg set 1)", GAME_NO_COCKTAIL )
|
||||
GAME( 1985, tigerhb2, tigerh, tigerhb, tigerh, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 2)", GAME_NO_COCKTAIL )
|
||||
GAME( 1985, tigerhb3, tigerh, tigerhb, tigerh, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 3)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, slapfigh, 0, slapfigh, slapfigh, slapfigh, ROT270, "Taito", "Slap Fight (set 1)", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
|
||||
GAME( 1985, tigerhb2, tigerh, tigerhb, tigerh, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 2)", GAME_NO_COCKTAIL )
|
||||
GAME( 1985, tigerhb3, tigerh, tigerhb, tigerh, 0, ROT270, "bootleg", "Tiger Heli (bootleg set 3)", GAME_NO_COCKTAIL )
|
||||
|
||||
GAME( 1986, slapfigh, 0, slapfigh, slapfigh, slapfigh, ROT270, "Taito", "Slap Fight (set 1)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, slapfigha,slapfigh, slapfigh, slapfigh, slapfigh, ROT270, "Taito", "Slap Fight (set 2)", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
|
||||
GAME( 1986, alcon, slapfigh, slapfigh, slapfigh, slapfigh, ROT270, "Taito America Corp.", "Alcon", GAME_NOT_WORKING | GAME_NO_COCKTAIL )
|
||||
GAME( 1986, slapbtjp, slapfigh, slapfigh, slapfigh, 0, ROT270, "bootleg", "Slap Fight (Japan bootleg)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, alcon, slapfigh, slapfigh, slapfigh, slapfigh, ROT270, "Taito America Corp.", "Alcon", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, slapbtjp, slapfigh, slapfgtb, slapfigh, 0, ROT270, "bootleg", "Slap Fight (Japan bootleg)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, slapbtuk, slapfigh, slapbtuk, slapfigh, 0, ROT270, "bootleg", "Slap Fight (English bootleg)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, slapfgtr, slapfigh, slapbtuk, slapfigh, 0, ROT270, "bootleg", "Slap Fight (bootleg)", GAME_NO_COCKTAIL ) // PCB labeled 'slap fighter'
|
||||
|
||||
GAME( 1986, getstar, 0, slapfigh, getstar, getstar, ROT0, "Taito America Corporation (Kitkorp license)", "Guardian (US)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, getstarj, getstar, slapfigh, getstarj, getstarj, ROT0, "Taito", "Get Star (Japan)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, gtstarb1, getstar, slapfigh, getstarj, gtstarb1, ROT0, "bootleg", "Get Star (bootleg set 1)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, gtstarb2, getstar, slapfigh, gtstarb2, gtstarb2, ROT0, "bootleg", "Get Star (bootleg set 2)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, gtstarb1, getstar, slapfgtb, getstarj, gtstarb1, ROT0, "bootleg", "Get Star (bootleg set 1)", GAME_NO_COCKTAIL )
|
||||
GAME( 1986, gtstarb2, getstar, slapfgtb, gtstarb2, gtstarb2, ROT0, "bootleg", "Get Star (bootleg set 2)", GAME_NO_COCKTAIL )
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -42,6 +42,19 @@ WRITE8_HANDLER( slapfight_port_07_w );
|
||||
WRITE8_HANDLER( slapfight_port_08_w );
|
||||
WRITE8_HANDLER( slapfight_port_09_w );
|
||||
|
||||
READ8_HANDLER ( slapfight_68705_portA_r );
|
||||
WRITE8_HANDLER( slapfight_68705_portA_w );
|
||||
READ8_HANDLER ( slapfight_68705_portB_r );
|
||||
WRITE8_HANDLER( slapfight_68705_portB_w );
|
||||
READ8_HANDLER ( slapfight_68705_portC_r );
|
||||
WRITE8_HANDLER( slapfight_68705_portC_w );
|
||||
WRITE8_HANDLER( slapfight_68705_ddrA_w );
|
||||
WRITE8_HANDLER( slapfight_68705_ddrB_w );
|
||||
WRITE8_HANDLER( slapfight_68705_ddrC_w );
|
||||
WRITE8_HANDLER( slapfight_mcu_w );
|
||||
READ8_HANDLER ( slapfight_mcu_r );
|
||||
READ8_HANDLER ( slapfight_mcu_status_r );
|
||||
|
||||
|
||||
READ8_HANDLER( getstar_e803_r );
|
||||
WRITE8_HANDLER( getstar_e803_w );
|
||||
|
@ -29,6 +29,13 @@ static UINT8 gs_a, gs_d, gs_e;
|
||||
static UINT8 tigerhb_cmd;
|
||||
|
||||
|
||||
static UINT8 from_main, from_mcu;
|
||||
static int mcu_sent = 0, main_sent = 0;
|
||||
static UINT8 portA_in, portA_out, ddrA;
|
||||
static UINT8 portB_in, portB_out, ddrB;
|
||||
static UINT8 portC_in, portC_out, ddrC;
|
||||
|
||||
|
||||
/* Perform basic machine initialisation */
|
||||
MACHINE_RESET( slapfight )
|
||||
{
|
||||
@ -106,6 +113,111 @@ READ8_HANDLER( slapfight_port_00_r )
|
||||
return slapfight_status;
|
||||
}
|
||||
|
||||
READ8_HANDLER( slapfight_68705_portA_r )
|
||||
{
|
||||
return (portA_out & ddrA) | (portA_in & ~ddrA);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( slapfight_68705_portA_w )
|
||||
{
|
||||
portA_out = data;
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( slapfight_68705_ddrA_w )
|
||||
{
|
||||
ddrA = data;
|
||||
}
|
||||
|
||||
READ8_HANDLER( slapfight_68705_portB_r )
|
||||
{
|
||||
return (portB_out & ddrB) | (portB_in & ~ddrB);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( slapfight_68705_portB_w )
|
||||
{
|
||||
if ((ddrB & 0x02) && (~data & 0x02) && (portB_out & 0x02))
|
||||
{
|
||||
portA_in = from_main;
|
||||
|
||||
if (main_sent)
|
||||
cputag_set_input_line(space->machine, "mcu", 0, CLEAR_LINE);
|
||||
|
||||
main_sent = 0;
|
||||
}
|
||||
if ((ddrB & 0x04) && (data & 0x04) && (~portB_out & 0x04))
|
||||
{
|
||||
from_mcu = portA_out;
|
||||
mcu_sent = 1;
|
||||
}
|
||||
if ((ddrB & 0x08) && (~data & 0x08) && (portB_out & 0x08))
|
||||
{
|
||||
*slapfight_scrollx_lo = portA_out;
|
||||
}
|
||||
if ((ddrB & 0x10) && (~data & 0x10) && (portB_out & 0x10))
|
||||
{
|
||||
*slapfight_scrollx_hi = portA_out;
|
||||
}
|
||||
|
||||
portB_out = data;
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( slapfight_68705_ddrB_w )
|
||||
{
|
||||
ddrB = data;
|
||||
}
|
||||
|
||||
READ8_HANDLER( slapfight_68705_portC_r )
|
||||
{
|
||||
portC_in = 0;
|
||||
|
||||
if (main_sent)
|
||||
portC_in |= 0x01;
|
||||
if (!mcu_sent)
|
||||
portC_in |= 0x02;
|
||||
|
||||
return (portC_out & ddrC) | (portC_in & ~ddrC);
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( slapfight_68705_portC_w )
|
||||
{
|
||||
portC_out = data;
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( slapfight_68705_ddrC_w )
|
||||
{
|
||||
ddrC = data;
|
||||
}
|
||||
|
||||
WRITE8_HANDLER( slapfight_mcu_w )
|
||||
{
|
||||
from_main = data;
|
||||
main_sent = 1;
|
||||
cputag_set_input_line(space->machine, "mcu", 0, ASSERT_LINE);
|
||||
}
|
||||
|
||||
READ8_HANDLER( slapfight_mcu_r )
|
||||
{
|
||||
mcu_sent = 0;
|
||||
return from_mcu;
|
||||
}
|
||||
|
||||
READ8_HANDLER( slapfight_mcu_status_r )
|
||||
{
|
||||
int res = 0;
|
||||
|
||||
if (!main_sent)
|
||||
res |= 0x02;
|
||||
if (!mcu_sent)
|
||||
res |= 0x04;
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
|
||||
Get Star MCU simulation
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
READ8_HANDLER( getstar_e803_r )
|
||||
{
|
||||
@ -686,13 +798,11 @@ WRITE8_HANDLER( getstar_port_04_w )
|
||||
#endif
|
||||
|
||||
|
||||
/* Tiger Heli MCU */
|
||||
/***************************************************************************
|
||||
|
||||
static UINT8 from_main,from_mcu;
|
||||
static int mcu_sent = 0,main_sent = 0;
|
||||
static UINT8 portA_in,portA_out,ddrA;
|
||||
static UINT8 portB_in,portB_out,ddrB;
|
||||
static UINT8 portC_in,portC_out,ddrC;
|
||||
Tiger Heli MCU
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
READ8_HANDLER( tigerh_68705_portA_r )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user