Convert cclimber/galpani2/gticlub/namcond1/pacman/seibuspi/tetrisp2/vicdual

to driver_device. [Atari Ace]
This commit is contained in:
Aaron Giles 2011-03-25 16:02:59 +00:00
parent a1ed6067d0
commit 0989f6fe05
35 changed files with 272 additions and 296 deletions

View File

@ -71,11 +71,9 @@ typedef struct sound_cache_entry
/* globals */
UINT8 exidy440_sound_command;
UINT8 exidy440_sound_command_ack;
/* local allocated storage */
static UINT8 sound_command;
static UINT8 sound_command_ack;
static UINT8 *sound_banks;
static UINT8 *m6844_data;
static UINT8 *sound_volume;
@ -136,10 +134,10 @@ static DEVICE_START( exidy440_sound )
int i, length;
/* reset the system */
exidy440_sound_command = 0;
exidy440_sound_command_ack = 1;
state_save_register_global(machine, exidy440_sound_command);
state_save_register_global(machine, exidy440_sound_command_ack);
sound_command = 0;
sound_command_ack = 1;
state_save_register_global(machine, sound_command);
state_save_register_global(machine, sound_command_ack);
/* reset the 6844 */
for (i = 0; i < 4; i++)
@ -339,9 +337,23 @@ static READ8_HANDLER( sound_command_r )
{
/* clear the FIRQ that got us here and acknowledge the read to the main CPU */
cputag_set_input_line(space->machine, "audiocpu", 1, CLEAR_LINE);
exidy440_sound_command_ack = 1;
sound_command_ack = 1;
return exidy440_sound_command;
return sound_command;
}
void exidy440_sound_command(running_machine *machine, UINT8 param)
{
sound_command = param;
sound_command_ack = 0;
cputag_set_input_line(machine, "audiocpu", INPUT_LINE_IRQ1, ASSERT_LINE);
}
UINT8 exidy440_sound_command_ack(void)
{
return sound_command_ack;
}

View File

@ -1,4 +1,4 @@
extern UINT8 exidy440_sound_command;
extern UINT8 exidy440_sound_command_ack;
void exidy440_sound_command(running_machine *machine, UINT8 param);
UINT8 exidy440_sound_command_ack(void);
MACHINE_CONFIG_EXTERN( exidy440_audio );

View File

@ -149,9 +149,6 @@ rom.
#include "sound/2151intf.h"
UINT8 *t5182_sharedram;
enum
{
VECTOR_INIT,
@ -162,8 +159,19 @@ enum
CPU_CLEAR
};
static UINT8 *t5182_sharedram;
static int irqstate;
READ8_HANDLER(t5182_sharedram_r)
{
return t5182_sharedram[offset];
}
WRITE8_HANDLER(t5182_sharedram_w)
{
t5182_sharedram[offset] = data;
}
static TIMER_CALLBACK( setirq_callback )
{
device_t *cpu;

View File

@ -13,6 +13,7 @@ READ8_HANDLER(t5182_sharedram_semaphore_snd_r);
WRITE8_HANDLER(t5182_sharedram_semaphore_main_acquire_w);
WRITE8_HANDLER(t5182_sharedram_semaphore_main_release_w);
extern UINT8 *t5182_sharedram;
READ8_HANDLER( t5182_sharedram_r );
WRITE8_HANDLER( t5182_sharedram_w );
extern const ym2151_interface t5182_ym2151_interface;

View File

@ -376,25 +376,6 @@ static const UINT8 BFM_strcnv[] =
//ACIA helper functions
static void send_to_adder(running_machine *machine, int data)
{
adder2_data_from_sc2 = 1; // set flag, data from scorpion2 board available
adder2_sc2data = data; // store data
adder2_acia_triggered = 1; // set flag, acia IRQ triggered
cputag_set_input_line(machine, "adder2", M6809_IRQ_LINE, ASSERT_LINE );//HOLD_LINE);// trigger IRQ
}
///////////////////////////////////////////////////////////////////////////
static int receive_from_adder(void)
{
int data = adder2_data;
adder2_data_to_sc2 = 0; // clr flag, data from adder available
return data;
}
/////////////////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( mux1latch_r )
@ -629,7 +610,8 @@ static WRITE8_DEVICE_HANDLER( nec_latch_w )
static WRITE8_HANDLER( vid_uart_tx_w )
{
send_to_adder(space->machine,data);
adder2_send(data);
cputag_set_input_line(space->machine, "adder2", M6809_IRQ_LINE, ASSERT_LINE );//HOLD_LINE);// trigger IRQ
}
///////////////////////////////////////////////////////////////////////////
@ -642,21 +624,14 @@ static WRITE8_HANDLER( vid_uart_ctrl_w )
static READ8_HANDLER( vid_uart_rx_r )
{
int data = receive_from_adder();
return data;
return adder2_receive();
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( vid_uart_ctrl_r )
{
int status = 0;
if ( adder2_data_to_sc2 ) status |= 0x01; // receive buffer full
if ( !adder2_data_from_sc2) status |= 0x02; // transmit buffer empty
return status;
return adder2_status();
}
// scorpion1 board init ///////////////////////////////////////////////////

View File

@ -257,42 +257,6 @@ static void e2ram_reset(running_machine *machine);
0 1 1 0 0 0
*/
///////////////////////////////////////////////////////////////////////////
static void send_to_adder(running_machine *machine, int data)
{
adder2_data_from_sc2 = 1;
adder2_sc2data = data;
adder2_acia_triggered = 1;
cputag_set_input_line(machine, "adder2", M6809_IRQ_LINE, HOLD_LINE );
LOG_SERIAL(("sadder %02X (%c)\n",data, data ));
}
///////////////////////////////////////////////////////////////////////////
static int receive_from_adder(void)
{
int data = adder2_data;
adder2_data_to_sc2 = 0;
LOG_SERIAL(("radder: %02X(%c)\n",data, data ));
return data;
}
///////////////////////////////////////////////////////////////////////////
static int get_scorpion2_uart_status(running_machine *machine)
{
int status = 0;
if ( adder2_data_to_sc2 ) status |= 0x01; // receive buffer full
if ( !adder2_data_from_sc2) status |= 0x02; // transmit buffer empty
return status;
}
///////////////////////////////////////////////////////////////////////////
// called if board is reset ///////////////////////////////////////////////
@ -1062,7 +1026,10 @@ static WRITE8_HANDLER( uart2data_w )
static WRITE8_HANDLER( vid_uart_tx_w )
{
send_to_adder(space->machine, data);
adder2_send(data);
cputag_set_input_line(space->machine, "adder2", M6809_IRQ_LINE, HOLD_LINE );
LOG_SERIAL(("sadder %02X (%c)\n",data, data ));
}
///////////////////////////////////////////////////////////////////////////
@ -1075,14 +1042,18 @@ static WRITE8_HANDLER( vid_uart_ctrl_w )
static READ8_HANDLER( vid_uart_rx_r )
{
return receive_from_adder();
int data = adder2_receive();
LOG_SERIAL(("radder: %02X(%c)\n",data, data ));
return data;
}
///////////////////////////////////////////////////////////////////////////
static READ8_HANDLER( vid_uart_ctrl_r )
{
return get_scorpion2_uart_status(space->machine);
return adder2_status();
}
///////////////////////////////////////////////////////////////////////////

View File

@ -37,17 +37,6 @@ static WRITE8_HANDLER(darkmist_hw_w)
memory_set_bankptr(space->machine, "bank1",&space->machine->region("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]);
}
static READ8_HANDLER(t5182shared_r)
{
return t5182_sharedram[offset];
}
static WRITE8_HANDLER(t5182shared_w)
{
t5182_sharedram[offset] = data;
}
static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROMBANK("bank1")
@ -61,7 +50,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xc808, 0xc808) AM_READ_PORT("UNK")
AM_RANGE(0xd000, 0xd3ff) AM_RAM AM_BASE_GENERIC(paletteram)
AM_RANGE(0xd400, 0xd41f) AM_RAM AM_BASE_MEMBER(darkmist_state, scroll)
AM_RANGE(0xd600, 0xd67f) AM_READWRITE(t5182shared_r, t5182shared_w)
AM_RANGE(0xd600, 0xd67f) AM_READWRITE(t5182_sharedram_r, t5182_sharedram_w)
AM_RANGE(0xd680, 0xd680) AM_WRITE(t5182_sound_irq_w)
AM_RANGE(0xd681, 0xd681) AM_READ(t5182_sharedram_semaphore_snd_r)
AM_RANGE(0xd682, 0xd682) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w)

View File

@ -346,7 +346,7 @@ static READ8_HANDLER( exidy440_input_port_3_r )
static READ8_HANDLER( sound_command_ack_r )
{
/* sound command acknowledgements come on bit 3 here */
return exidy440_sound_command_ack ? 0xf7 : 0xff;
return exidy440_sound_command_ack() ? 0xf7 : 0xff;
}
@ -359,11 +359,7 @@ static READ8_HANDLER( sound_command_ack_r )
static TIMER_CALLBACK( delayed_sound_command_w )
{
exidy440_sound_command = param;
exidy440_sound_command_ack = 0;
/* cause an FIRQ on the sound CPU */
cputag_set_input_line(machine, "audiocpu", 1, ASSERT_LINE);
exidy440_sound_command(machine, param);
}

View File

@ -250,17 +250,6 @@ static MACHINE_RESET( josvolly )
josvolly_8741_reset();
}
#if 0
static INTERRUPT_GEN( josvolly_snd_interrupt )
{
if(josvolly_nmi_enable)
{
cpu_set_input_line(device, INPUT_LINE_NMI, PULSE_LINE);
josvolly_nmi_enable = 0;
}
}
#endif
static INTERRUPT_GEN( gsword_snd_interrupt )
{
gsword_state *state = device->machine->driver_data<gsword_state>();
@ -306,11 +295,6 @@ static WRITE8_DEVICE_HANDLER( gsword_nmi_set_w )
#endif
}
static WRITE8_HANDLER( josvolly_nmi_enable_w )
{
josvolly_nmi_enable = 1;
}
static WRITE8_DEVICE_HANDLER( gsword_AY8910_control_port_0_w )
{
gsword_state *state = device->machine->driver_data<gsword_state>();

View File

@ -42,17 +42,6 @@ YM2151:
#define YM_CLOCK (XTAL1/4)
static READ8_HANDLER(t5182shared_r)
{
return t5182_sharedram[offset];
}
static WRITE8_HANDLER(t5182shared_w)
{
t5182_sharedram[offset] = data;
}
static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0x0000, 0x7fff) AM_ROM
AM_RANGE(0x8000, 0xbfff) AM_ROM
@ -61,7 +50,7 @@ static ADDRESS_MAP_START( memmap, ADDRESS_SPACE_PROGRAM, 8 )
AM_RANGE(0xd001, 0xd001) AM_READ(t5182_sharedram_semaphore_snd_r)
AM_RANGE(0xd002, 0xd002) AM_WRITE(t5182_sharedram_semaphore_main_acquire_w)
AM_RANGE(0xd003, 0xd003) AM_WRITE(t5182_sharedram_semaphore_main_release_w)
AM_RANGE(0xd400, 0xd4ff) AM_READWRITE(t5182shared_r, t5182shared_w)
AM_RANGE(0xd400, 0xd4ff) AM_READWRITE(t5182_sharedram_r, t5182_sharedram_w)
AM_RANGE(0xd800, 0xd800) AM_READ_PORT("P1")
AM_RANGE(0xd801, 0xd801) AM_READ_PORT("P2")
AM_RANGE(0xd802, 0xd802) AM_READ_PORT("START")

View File

@ -175,7 +175,7 @@ static TILE_GET_INFO( get_txttile_info )
static READ8_HANDLER(t5182shared_r)
{
if ((offset & 1) == 0)
return t5182_sharedram[offset/2];
return t5182_sharedram_r(space, offset/2);
else
return 0;
}
@ -183,7 +183,7 @@ static READ8_HANDLER(t5182shared_r)
static WRITE8_HANDLER(t5182shared_w)
{
if ((offset & 1) == 0)
t5182_sharedram[offset/2] = data;
t5182_sharedram_w(space, offset/2, data);
}

View File

@ -436,7 +436,7 @@ public:
extern const char *const amiga_custom_names[0x100];
extern void amiga_chip_ram_w8(amiga_state *state, offs_t offset, UINT8 data);
void amiga_chip_ram_w8(amiga_state *state, offs_t offset, UINT8 data);
void amiga_machine_config(running_machine *machine, const amiga_machine_interface *intf);

View File

@ -98,7 +98,7 @@ WRITE32_HANDLER( konamigx_t1_psacmap_w );
WRITE32_HANDLER( konamigx_t4_psacmap_w );
extern int konamigx_current_frame;
extern WRITE32_HANDLER( konamigx_type3_psac2_bank_w );
WRITE32_HANDLER( konamigx_type3_psac2_bank_w );
extern UINT32* konamigx_type3_psac2_bank;

View File

@ -5,5 +5,5 @@
DISCRETE_SOUND_EXTERN( m79amb );
extern WRITE8_DEVICE_HANDLER( m79amb_8000_w );
extern WRITE8_DEVICE_HANDLER( m79amb_8003_w );
WRITE8_DEVICE_HANDLER( m79amb_8000_w );
WRITE8_DEVICE_HANDLER( m79amb_8003_w );

View File

@ -108,12 +108,12 @@ void model3_set_irq_line(running_machine *machine, UINT8 bit, int state);
/*----------- defined in machine/model3.c -----------*/
extern void model3_machine_init(running_machine *machine, int step);
extern int model3_tap_read(running_machine *machine);
extern void model3_tap_write(running_machine *machine, int tck, int tms, int tdi, int trst);
extern void model3_tap_reset(running_machine *machine);
extern READ32_HANDLER(rtc72421_r);
extern WRITE32_HANDLER(rtc72421_w);
void model3_machine_init(running_machine *machine, int step);
int model3_tap_read(running_machine *machine);
void model3_tap_write(running_machine *machine, int tck, int tms, int tdi, int trst);
void model3_tap_reset(running_machine *machine);
READ32_HANDLER(rtc72421_r);
WRITE32_HANDLER(rtc72421_w);
/*----------- defined in video/model3.c -----------*/

View File

@ -52,4 +52,4 @@ DISCRETE_SOUND_EXTERN( orbit );
VIDEO_START( orbit );
SCREEN_UPDATE( orbit );
extern WRITE8_HANDLER( orbit_playfield_w );
WRITE8_HANDLER( orbit_playfield_w );

View File

@ -23,7 +23,7 @@ public:
DISCRETE_SOUND_EXTERN( skyraid );
extern WRITE8_DEVICE_HANDLER( skyraid_sound_w );
WRITE8_DEVICE_HANDLER( skyraid_sound_w );
/*----------- defined in video/skyraid.c -----------*/

View File

@ -231,23 +231,23 @@ typedef struct
} scc68070_regs_t;
// Member functions
extern TIMER_CALLBACK( scc68070_timer0_callback );
extern TIMER_CALLBACK( scc68070_rx_callback );
extern TIMER_CALLBACK( scc68070_tx_callback );
extern READ16_HANDLER( scc68070_periphs_r );
extern WRITE16_HANDLER( scc68070_periphs_w );
//extern READ16_HANDLER( uart_loopback_enable );
TIMER_CALLBACK( scc68070_timer0_callback );
TIMER_CALLBACK( scc68070_rx_callback );
TIMER_CALLBACK( scc68070_tx_callback );
READ16_HANDLER( scc68070_periphs_r );
WRITE16_HANDLER( scc68070_periphs_w );
//READ16_HANDLER( uart_loopback_enable );
extern void scc68070_init(running_machine *machine, scc68070_regs_t *scc68070);
extern void scc68070_uart_rx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
extern void scc68070_uart_tx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
extern void scc68070_register_globals(running_machine *machine, scc68070_regs_t *scc68070);
void scc68070_init(running_machine *machine, scc68070_regs_t *scc68070);
void scc68070_uart_rx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
void scc68070_uart_tx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
void scc68070_register_globals(running_machine *machine, scc68070_regs_t *scc68070);
// UART Access for Quizard
extern void scc68070_set_quizard_mcu_value(running_machine *machine, UINT16 value);
extern void scc68070_set_quizard_mcu_ack(running_machine *machine, UINT8 ack);
extern void scc68070_quizard_rx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
void scc68070_set_quizard_mcu_value(running_machine *machine, UINT16 value);
void scc68070_set_quizard_mcu_ack(running_machine *machine, UINT8 ack);
void scc68070_quizard_rx(running_machine *machine, scc68070_regs_t *scc68070, UINT8 data);
extern INTERRUPT_GEN( scc68070_mcu_frame );
INTERRUPT_GEN( scc68070_mcu_frame );
#endif // _MACHINE_CDI070_H_

View File

@ -110,91 +110,93 @@ public:
extern WRITE8_HANDLER( decocass_coin_counter_w );
extern WRITE8_HANDLER( decocass_sound_command_w );
extern READ8_HANDLER( decocass_sound_data_r );
extern READ8_HANDLER( decocass_sound_ack_r );
extern WRITE8_HANDLER( decocass_sound_data_w );
extern READ8_HANDLER( decocass_sound_command_r );
extern TIMER_DEVICE_CALLBACK( decocass_audio_nmi_gen );
extern WRITE8_HANDLER( decocass_sound_nmi_enable_w );
extern READ8_HANDLER( decocass_sound_nmi_enable_r );
extern READ8_HANDLER( decocass_sound_data_ack_reset_r );
extern WRITE8_HANDLER( decocass_sound_data_ack_reset_w );
extern WRITE8_HANDLER( decocass_nmi_reset_w );
extern WRITE8_HANDLER( decocass_quadrature_decoder_reset_w );
extern WRITE8_HANDLER( decocass_adc_w );
extern READ8_HANDLER( decocass_input_r );
WRITE8_HANDLER( decocass_coin_counter_w );
WRITE8_HANDLER( decocass_sound_command_w );
READ8_HANDLER( decocass_sound_data_r );
READ8_HANDLER( decocass_sound_ack_r );
WRITE8_HANDLER( decocass_sound_data_w );
READ8_HANDLER( decocass_sound_command_r );
TIMER_DEVICE_CALLBACK( decocass_audio_nmi_gen );
WRITE8_HANDLER( decocass_sound_nmi_enable_w );
READ8_HANDLER( decocass_sound_nmi_enable_r );
READ8_HANDLER( decocass_sound_data_ack_reset_r );
WRITE8_HANDLER( decocass_sound_data_ack_reset_w );
WRITE8_HANDLER( decocass_nmi_reset_w );
WRITE8_HANDLER( decocass_quadrature_decoder_reset_w );
WRITE8_HANDLER( decocass_adc_w );
READ8_HANDLER( decocass_input_r );
extern WRITE8_HANDLER( decocass_reset_w );
WRITE8_HANDLER( decocass_reset_w );
extern READ8_HANDLER( decocass_e5xx_r );
extern WRITE8_HANDLER( decocass_e5xx_w );
extern WRITE8_HANDLER( decocass_de0091_w );
extern WRITE8_HANDLER( decocass_e900_w );
READ8_HANDLER( decocass_e5xx_r );
WRITE8_HANDLER( decocass_e5xx_w );
WRITE8_HANDLER( decocass_de0091_w );
WRITE8_HANDLER( decocass_e900_w );
extern MACHINE_START( decocass );
extern MACHINE_RESET( decocass );
extern MACHINE_RESET( ctsttape );
extern MACHINE_RESET( chwy );
extern MACHINE_RESET( clocknch );
extern MACHINE_RESET( ctisland );
extern MACHINE_RESET( csuperas );
extern MACHINE_RESET( castfant );
extern MACHINE_RESET( cluckypo );
extern MACHINE_RESET( cterrani );
extern MACHINE_RESET( cexplore );
extern MACHINE_RESET( cprogolf );
extern MACHINE_RESET( cmissnx );
extern MACHINE_RESET( cdiscon1 );
extern MACHINE_RESET( cptennis );
extern MACHINE_RESET( ctornado );
extern MACHINE_RESET( cbnj );
extern MACHINE_RESET( cburnrub );
extern MACHINE_RESET( cbtime );
extern MACHINE_RESET( cgraplop );
extern MACHINE_RESET( cgraplop2 );
extern MACHINE_RESET( clapapa );
extern MACHINE_RESET( cfghtice );
extern MACHINE_RESET( cprobowl );
extern MACHINE_RESET( cnightst );
extern MACHINE_RESET( cprosocc );
extern MACHINE_RESET( cppicf );
extern MACHINE_RESET( cscrtry );
extern MACHINE_RESET( cflyball );
extern MACHINE_RESET( cbdash );
extern MACHINE_RESET( czeroize );
MACHINE_START( decocass );
MACHINE_RESET( decocass );
MACHINE_RESET( ctsttape );
MACHINE_RESET( chwy );
MACHINE_RESET( clocknch );
MACHINE_RESET( ctisland );
MACHINE_RESET( csuperas );
MACHINE_RESET( castfant );
MACHINE_RESET( cluckypo );
MACHINE_RESET( cterrani );
MACHINE_RESET( cexplore );
MACHINE_RESET( cprogolf );
MACHINE_RESET( cmissnx );
MACHINE_RESET( cdiscon1 );
MACHINE_RESET( cptennis );
MACHINE_RESET( ctornado );
MACHINE_RESET( cbnj );
MACHINE_RESET( cburnrub );
MACHINE_RESET( cbtime );
MACHINE_RESET( cgraplop );
MACHINE_RESET( cgraplop2 );
MACHINE_RESET( clapapa );
MACHINE_RESET( cfghtice );
MACHINE_RESET( cprobowl );
MACHINE_RESET( cnightst );
MACHINE_RESET( cprosocc );
MACHINE_RESET( cppicf );
MACHINE_RESET( cscrtry );
MACHINE_RESET( cflyball );
MACHINE_RESET( cbdash );
MACHINE_RESET( czeroize );
extern WRITE8_HANDLER( i8041_p1_w );
extern READ8_HANDLER( i8041_p1_r );
extern WRITE8_HANDLER( i8041_p2_w );
extern READ8_HANDLER( i8041_p2_r );
WRITE8_HANDLER( i8041_p1_w );
READ8_HANDLER( i8041_p1_r );
WRITE8_HANDLER( i8041_p2_w );
READ8_HANDLER( i8041_p2_r );
void decocass_machine_state_save_init(running_machine *machine);
/*----------- defined in video/decocass.c -----------*/
extern WRITE8_HANDLER( decocass_paletteram_w );
extern WRITE8_HANDLER( decocass_charram_w );
extern WRITE8_HANDLER( decocass_fgvideoram_w );
extern WRITE8_HANDLER( decocass_colorram_w );
extern WRITE8_HANDLER( decocass_bgvideoram_w );
extern WRITE8_HANDLER( decocass_tileram_w );
extern WRITE8_HANDLER( decocass_objectram_w );
extern WRITE8_HANDLER( decocass_watchdog_count_w );
extern WRITE8_HANDLER( decocass_watchdog_flip_w );
extern WRITE8_HANDLER( decocass_color_missiles_w );
extern WRITE8_HANDLER( decocass_mode_set_w );
extern WRITE8_HANDLER( decocass_color_center_bot_w );
extern WRITE8_HANDLER( decocass_back_h_shift_w );
extern WRITE8_HANDLER( decocass_back_vl_shift_w );
extern WRITE8_HANDLER( decocass_back_vr_shift_w );
extern WRITE8_HANDLER( decocass_part_h_shift_w );
extern WRITE8_HANDLER( decocass_part_v_shift_w );
extern WRITE8_HANDLER( decocass_center_h_shift_space_w );
extern WRITE8_HANDLER( decocass_center_v_shift_w );
WRITE8_HANDLER( decocass_paletteram_w );
WRITE8_HANDLER( decocass_charram_w );
WRITE8_HANDLER( decocass_fgvideoram_w );
WRITE8_HANDLER( decocass_colorram_w );
WRITE8_HANDLER( decocass_bgvideoram_w );
WRITE8_HANDLER( decocass_tileram_w );
WRITE8_HANDLER( decocass_objectram_w );
extern VIDEO_START( decocass );
extern SCREEN_UPDATE( decocass );
WRITE8_HANDLER( decocass_watchdog_count_w );
WRITE8_HANDLER( decocass_watchdog_flip_w );
WRITE8_HANDLER( decocass_color_missiles_w );
WRITE8_HANDLER( decocass_mode_set_w );
WRITE8_HANDLER( decocass_color_center_bot_w );
WRITE8_HANDLER( decocass_back_h_shift_w );
WRITE8_HANDLER( decocass_back_vl_shift_w );
WRITE8_HANDLER( decocass_back_vr_shift_w );
WRITE8_HANDLER( decocass_part_h_shift_w );
WRITE8_HANDLER( decocass_part_v_shift_w );
WRITE8_HANDLER( decocass_center_h_shift_space_w );
WRITE8_HANDLER( decocass_center_v_shift_w );
VIDEO_START( decocass );
SCREEN_UPDATE( decocass );
void decocass_video_state_save_init(running_machine *machine);

View File

@ -812,7 +812,7 @@ DRIVER_INIT( pceboard )
memory_install_write8_handler(cputag_get_address_space(machine, "cart", ADDRESS_SPACE_PROGRAM), 0x8000, 0xffff, 0, 0, eboard_rom_switch_w );
/* ppu_latch callback */
ppu_latch = mapper9_latch;
ppu2c0x_set_latch(machine->device("ppu"), mapper9_latch);
/* nvram at $6000-$6fff */
memory_install_ram(cputag_get_address_space(machine, "cart", ADDRESS_SPACE_PROGRAM), 0x6000, 0x6fff, 0, 0, NULL );

View File

@ -1,9 +1,9 @@
/*SCU DSP stuff*/
extern void dsp_prg_ctrl(address_space *space, UINT32 data);
extern void dsp_prg_data(UINT32 data);
extern void dsp_ram_addr_ctrl(UINT32 data);
extern void dsp_ram_addr_w(UINT32 data);
extern UINT32 dsp_ram_addr_r(void);
extern void dsp_execute_program(address_space *dmaspace);
void dsp_prg_ctrl(address_space *space, UINT32 data);
void dsp_prg_data(UINT32 data);
void dsp_ram_addr_ctrl(UINT32 data);
void dsp_ram_addr_w(UINT32 data);
UINT32 dsp_ram_addr_r(void);
void dsp_execute_program(address_space *dmaspace);

View File

@ -378,7 +378,7 @@ joshi Vollyball set.
****************************************************************************/
int josvolly_nmi_enable;
static int josvolly_nmi_enable;
typedef struct josvolly_8741_struct {
UINT8 cmd;
@ -535,6 +535,11 @@ READ8_HANDLER( josvolly_8741_0_r ) { return josvolly_8741_r(space,0,offset); }
WRITE8_HANDLER( josvolly_8741_1_w ) { josvolly_8741_w(space,1,offset,data); }
READ8_HANDLER( josvolly_8741_1_r ) { return josvolly_8741_r(space,1,offset); }
WRITE8_HANDLER( josvolly_nmi_enable_w )
{
josvolly_nmi_enable = 1;
}
static struct
{
UINT8 rxd;

View File

@ -42,13 +42,12 @@ READ8_HANDLER( TAITO8741_3_r );
joshi Volleyball set.
****************************************************************************/
extern int josvolly_nmi_enable;
void josvolly_8741_reset(void);
WRITE8_HANDLER( josvolly_8741_0_w );
WRITE8_HANDLER( josvolly_8741_1_w );
READ8_HANDLER( josvolly_8741_0_r );
READ8_HANDLER( josvolly_8741_1_r );
WRITE8_HANDLER( josvolly_nmi_enable_w );
/****************************************************************************
Cycle Mahbou set.

View File

@ -169,9 +169,7 @@ WRITE16_HANDLER( vertigo_wsot_w )
static TIMER_CALLBACK( sound_command_w )
{
exidy440_sound_command = param;
exidy440_sound_command_ack = 0;
cputag_set_input_line(machine, "audiocpu", INPUT_LINE_IRQ1, ASSERT_LINE);
exidy440_sound_command(machine, param);
/* It is important that the sound cpu ACKs the sound command
quickly. Otherwise the main CPU gives up with sound. Boosting
@ -190,7 +188,7 @@ WRITE16_HANDLER( vertigo_audio_w )
READ16_HANDLER( vertigo_sio_r )
{
return exidy440_sound_command_ack ? 0xfc : 0xfd;
return exidy440_sound_command_ack() ? 0xfc : 0xfd;
}

View File

@ -273,9 +273,6 @@ static void reset_common(running_machine *machine)
state->bg_status = 0x01;
state->flipscreen = 0;
state->palette_intensity = 0;
if (jal_blend_table != NULL)
memset(jal_blend_table, 0, 0xc00);
}
VIDEO_START( argus )
@ -292,7 +289,7 @@ VIDEO_START( argus )
/* dummy RAM for back ground */
state->dummy_bg0ram = auto_alloc_array(machine, UINT8, 0x800);
jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00);
jal_blend_init(machine, 1);
}
VIDEO_RESET( argus )
@ -317,7 +314,7 @@ VIDEO_START( valtric )
state->mosaicbitmap = machine->primary_screen->alloc_compatible_bitmap();
jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00);
jal_blend_init(machine, 1);
}
VIDEO_RESET( valtric )
@ -346,8 +343,7 @@ VIDEO_START( butasan )
state->butasan_txram = &state->butasan_pagedram[1][0x000];
state->butasan_txbackram = &state->butasan_pagedram[1][0x800];
jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00);
//jal_blend_table = NULL;
jal_blend_init(machine, 1);
}
VIDEO_RESET( butasan )
@ -396,7 +392,7 @@ static void argus_change_palette(running_machine *machine, int color, int lo_off
argus_state *state = machine->driver_data<argus_state>();
UINT8 lo = state->paletteram[lo_offs];
UINT8 hi = state->paletteram[hi_offs];
if (jal_blend_table != NULL) jal_blend_table[color] = hi & 0x0f;
jal_blend_set(color, hi & 0x0f);
palette_set_color_rgb(machine, color, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4));
}

View File

@ -8,8 +8,8 @@
extern const char layout_awpvid14[]; /* main layout positioning 6 reels, a lamp matrix and a 14seg VFD */
extern const char layout_awpvid16[]; /* main layout positioning 6 reels, a lamp matrix and a 16seg VFD */
extern void awp_draw_reel(int rno);
void awp_draw_reel(int rno);
extern void awp_reel_setup(void);
void awp_reel_setup(void);
#endif

View File

@ -113,7 +113,7 @@ static int adder2_screen_page_reg; // access/display select
static int adder2_c101;
static int adder2_rx;
static int adder_vbl_triggered; // flag <>0, VBL IRQ triggered
int adder2_acia_triggered; // flag <>0, ACIA receive IRQ
static int adder2_acia_triggered; // flag <>0, ACIA receive IRQ
static UINT8 adder_ram[0xE80]; // normal RAM
static UINT8 adder_screen_ram[2][0x1180]; // paged display RAM
@ -121,11 +121,11 @@ static UINT8 adder_screen_ram[2][0x1180]; // paged display RAM
static tilemap_t *tilemap0; // tilemap screen0
static tilemap_t *tilemap1; // timemap screen1
UINT8 adder2_data_from_sc2;
UINT8 adder2_data_to_sc2;
static UINT8 adder2_data_from_sc2;
static UINT8 adder2_data_to_sc2;
UINT8 adder2_data;
UINT8 adder2_sc2data;
static UINT8 adder2_data;
static UINT8 adder2_sc2data;
///////////////////////////////////////////////////////////////////////////
@ -416,6 +416,32 @@ static READ8_HANDLER( adder2_irq_r )
return status;
}
void adder2_send(int data)
{
adder2_data_from_sc2 = 1; // set flag, data from scorpion2 board available
adder2_sc2data = data; // store data
adder2_acia_triggered = 1; // set flag, acia IRQ triggered
}
int adder2_receive(void)
{
UINT8 data = adder2_data;
adder2_data_to_sc2 = 0; // clr flag, data from adder available
return data;
}
int adder2_status()
{
int status = 0;
if ( adder2_data_to_sc2 ) status |= 0x01; // receive buffer full
if ( !adder2_data_from_sc2) status |= 0x02; // transmit buffer empty
return status;
}
////////////////////////////////////////////////////////////////////
// //
// decode character data to a format which can be decoded by MAME //

View File

@ -1,15 +1,12 @@
#ifndef INC_BFMADDER2
#define INC_BFMADDER2
extern UINT8 adder2_data_from_sc2; // data available for adder from sc2
extern UINT8 adder2_sc2data; // data
extern UINT8 adder2_data_to_sc2; // data available for sc2 from adder
extern UINT8 adder2_data; // data
extern int adder2_acia_triggered; // flag <>0, ACIA receive IRQ
int adder2_receive(void);
void adder2_send(int data);
int adder2_status(void);
GFXDECODE_EXTERN( adder2 );
extern void adder2_decode_char_roms(running_machine *machine);
void adder2_decode_char_roms(running_machine *machine);
MACHINE_RESET( adder2 );
INTERRUPT_GEN( adder2_vbl );

View File

@ -16,7 +16,31 @@
/* each palette entry contains a fourth 'alpha' value */
UINT8 *jal_blend_table;
static UINT8 *jal_blend_table;
static void jal_blend_reset(running_machine &machine)
{
memset(jal_blend_table, 0, 0xc00);
}
void jal_blend_init(running_machine *machine, int enable)
{
if (enable)
{
jal_blend_table = auto_alloc_array_clear(machine, UINT8, 0xc00);
machine->add_notifier(MACHINE_NOTIFY_RESET, jal_blend_reset);
}
else
{
jal_blend_table = NULL;
}
}
void jal_blend_set(int color, UINT8 val)
{
if (jal_blend_table) jal_blend_table[color] = val;
}
/*
* 'Alpha' Format

View File

@ -1,4 +1,6 @@
extern UINT8 *jal_blend_table;
void jal_blend_init(running_machine *machine, int enable);
void jal_blend_set(int color, UINT8 val);
rgb_t jal_blend_func(rgb_t dest, rgb_t addMe, UINT8 alpha);
void jal_blend_drawgfx(bitmap_t *dest_bmp,const rectangle *clip,const gfx_element *gfx,
UINT32 code,UINT32 color,int flipx,int flipy,int offsx,int offsy,

View File

@ -183,11 +183,11 @@ struct _mcd212_ab_t
};
// Member functions
extern READ16_HANDLER( mcd212_r );
extern WRITE16_HANDLER( mcd212_w );
extern TIMER_CALLBACK( mcd212_perform_scan );
extern VIDEO_START( cdimono1 );
extern SCREEN_UPDATE( cdimono1 );
extern SCREEN_UPDATE( cdimono1_lcd );
READ16_HANDLER( mcd212_r );
WRITE16_HANDLER( mcd212_w );
TIMER_CALLBACK( mcd212_perform_scan );
VIDEO_START( cdimono1 );
SCREEN_UPDATE( cdimono1 );
SCREEN_UPDATE( cdimono1_lcd );
#endif // _VIDEO_MCD212_H_

View File

@ -108,6 +108,7 @@ struct _ppu2c0x_state
int scanlines_per_frame; /* number of scanlines per frame */
rgb_t palette[64*4]; /* palette for this chip */
int security_value; /* 2C05 protection */
void (*latch)( device_t *device, offs_t offset );
};
@ -121,7 +122,6 @@ static TIMER_CALLBACK( scanline_callback );
static TIMER_CALLBACK( hblank_callback );
static TIMER_CALLBACK( nmi_callback );
void (*ppu_latch)( device_t *device, offs_t offset );
/* palette handlers */
static WRITE8_HANDLER( ppu2c0x_palette_write );
@ -327,6 +327,12 @@ static const gfx_layout ppu_charlayout =
*
*************************************/
void ppu2c0x_set_latch( device_t *device, void (*latch)(device_t *device, offs_t offset))
{
ppu2c0x_state *ppu2c0x = get_token(device);
ppu2c0x->latch = latch;
}
static TIMER_CALLBACK( hblank_callback )
{
device_t *device = (device_t *)ptr;
@ -436,9 +442,9 @@ static void draw_background( device_t *device, UINT8 *line_priority )
page2 = ppu2c0x->space->read_byte(index1);
// 27/12/2002
if (ppu_latch)
if (ppu2c0x->latch)
{
(*ppu_latch)(device, (tile_page << 10) | (page2 << 4));
(*ppu2c0x->latch)(device, (tile_page << 10) | (page2 << 4));
}
if (start_x < VISIBLE_SCREEN_WIDTH)
@ -577,8 +583,8 @@ static void draw_sprites( device_t *device, UINT8 *line_priority )
}
}
if (ppu_latch)
(*ppu_latch)(device, (sprite_page << 10) | ((tile & 0xff) << 4));
if (ppu2c0x->latch)
(*ppu2c0x->latch)(device, (sprite_page << 10) | ((tile & 0xff) << 4));
/* compute the character's line to draw */
sprite_line = scanline - sprite_ypos;
@ -991,8 +997,8 @@ READ8_DEVICE_HANDLER( ppu2c0x_r )
break;
case PPU_DATA: /* 7 */
if (ppu_latch)
(*ppu_latch)(device, ppu2c0x->videomem_addr & 0x3fff);
if (ppu2c0x->latch)
(*ppu2c0x->latch)(device, ppu2c0x->videomem_addr & 0x3fff);
if (ppu2c0x->videomem_addr >= 0x3f00)
{
@ -1142,8 +1148,8 @@ WRITE8_DEVICE_HANDLER( ppu2c0x_w )
{
int tempAddr = ppu2c0x->videomem_addr & 0x3fff;
if (ppu_latch)
(*ppu_latch)(device, tempAddr);
if (ppu2c0x->latch)
(*ppu2c0x->latch)(device, tempAddr);
/* if there's a callback, call it now */
if (ppu2c0x->vidaccess_callback_proc)

View File

@ -120,8 +120,7 @@ void ppu2c0x_set_vidaccess_callback( device_t *device, ppu2c0x_vidaccess_cb cb )
void ppu2c0x_set_scanlines_per_frame( device_t *device, int scanlines ) ATTR_NONNULL(1);
//27/12/2002 (HACK!)
extern void (*ppu_latch)( device_t *device, offs_t offset );
void ppu2c0x_set_latch( device_t *device, void (*ppu_latch_t)( device_t *device, offs_t offset ));
WRITE8_DEVICE_HANDLER( ppu2c0x_w );
READ8_DEVICE_HANDLER( ppu2c0x_r );

View File

@ -28,7 +28,7 @@ static void psychic5_change_palette(running_machine *machine, int color, int off
psychic5_state *state = machine->driver_data<psychic5_state>();
UINT8 lo = state->ps5_palette_ram[offset & ~1];
UINT8 hi = state->ps5_palette_ram[offset | 1];
if (jal_blend_table != NULL) jal_blend_table[color] = hi & 0x0f;
jal_blend_set(color, hi & 0x0f);
palette_set_color_rgb(machine, color, pal4bit(lo >> 4), pal4bit(lo), pal4bit(hi >> 4));
}
@ -252,7 +252,7 @@ VIDEO_START( psychic5 )
state->ps5_palette_ram = &state->ps5_pagedram[1][0x0400];
state->fg_videoram = &state->ps5_pagedram[1][0x1000];
jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00);
jal_blend_init(machine, 1);
state->bg_palette_ram_base = 0x400;
state->bg_palette_base = 0x100;
@ -276,8 +276,7 @@ VIDEO_START( bombsa )
state->fg_videoram = &state->ps5_pagedram[1][0x0800];
state->ps5_palette_ram = &state->ps5_pagedram[1][0x1000];
//jal_blend_table = auto_alloc_array(machine, UINT8, 0xc00);
jal_blend_table = NULL;
jal_blend_init(machine, 0);
state->bg_palette_ram_base = 0x000;
state->bg_palette_base = 0x000;
@ -292,7 +291,6 @@ VIDEO_RESET( psychic5 )
memset(state->ps5_pagedram[0],0,0x2000);
memset(state->ps5_pagedram[1],0,0x2000);
state->palette_intensity = 0;
if (jal_blend_table != NULL) memset(jal_blend_table,0,0xc00);
}
VIDEO_RESET( bombsa )
@ -304,7 +302,6 @@ VIDEO_RESET( bombsa )
memset(state->ps5_pagedram[0],0,0x2000);
memset(state->ps5_pagedram[1],0,0x2000);
state->palette_intensity = 0;
if (jal_blend_table != NULL) memset(jal_blend_table,0,0xc00);
}

View File

@ -28,6 +28,6 @@ MCFG_DEVICE_CONFIG(_interface)
DEVICE I/O FUNCTIONS
***************************************************************************/
extern int vrender0_ProcessPacket(device_t *device, UINT32 PacketPtr, UINT16 *Dest, UINT8 *TEXTURE);
int vrender0_ProcessPacket(device_t *device, UINT32 PacketPtr, UINT16 *Dest, UINT8 *TEXTURE);
#endif /* __VR0VIDEO_H__ */