Ejemplo n.º 1
0
void awp_draw_reel(int rno)
{
	int x = rno + 1;
	char rg[16];

	sprintf(rg,"reel%d", x);
	reelpos[rno] = stepper_get_position(rno);
	if (reelpos[rno] == output_get_value(rg))
	{
		// Not moved, no need to update.
	}
	else
	{
		output_set_value(rg,(reelpos[rno]));

		// if the reel isn't configured don't do this, otherwise you'll get DIV0
		if (stepper_get_max(rno))
		{
			sprintf(rg,"sreel%d", x); // our new scrolling reels are called 'sreel'
			// normalize the value
			int sreelpos = (reelpos[rno] * 0x10000) / stepper_get_max(rno);

			output_set_value(rg,sreelpos);
		}
	}
}
Ejemplo n.º 2
0
static WRITE8_DEVICE_HANDLER( amiga_cia_0_portA_w )
{
	amiga_state *state = space.machine().driver_data<amiga_state>();
	/* switch banks as appropriate */
	state->m_bank1->set_entry(data & 1);

	/* swap the write handlers between ROM and bank 1 based on the bit */
	if ((data & 1) == 0) {
		UINT32 mirror_mask = state->m_chip_ram.bytes();

		while( (mirror_mask<<1) < 0x100000 ) {
			mirror_mask |= ( mirror_mask << 1 );
		}

		/* overlay disabled, map RAM on 0x000000 */
		state->m_maincpu_program_space->install_write_bank(0x000000, state->m_chip_ram.bytes() - 1, 0, mirror_mask, "bank1");

		/* if there is a cart region, check for cart overlay */
		if (space.machine().root_device().memregion("user2")->base() != NULL)
			amiga_cart_check_overlay(space.machine());
	}
	else
		/* overlay enabled, map Amiga system ROM on 0x000000 */
		state->m_maincpu_program_space->unmap_write(0x000000, state->m_chip_ram.bytes() - 1);

	set_led_status( space.machine(), 0, ( data & 2 ) ? 0 : 1 ); /* bit 2 = Power Led on Amiga */
	output_set_value("power_led", ( data & 2 ) ? 0 : 1);
}
Ejemplo n.º 3
0
	void update_moles()
	{
		for (int i = 0; i < 6; i++)
		{
			char temp[32];
			sprintf(temp, "molea_%d", i);
			output_set_value(temp, mole_state_a[i]);
		}

		for (int i = 0; i < 6; i++)
		{
			char temp[32];
			sprintf(temp, "moleb_%d", i);
			output_set_value(temp, mole_state_b[i]);
		}
	}
Ejemplo n.º 4
0
void device_output_interface::set_digit_value(int value)
{
	if (m_output_name)
		output_set_value(m_output_name, value);
	else
		output_set_digit_value(m_output_index, value);
}
Ejemplo n.º 5
0
void device_output_interface::set_output_value(int value)
{
	if (m_output_name)
		output_set_value(m_output_name, value);
	else
		fatalerror("Output name not set!");
}
Ejemplo n.º 6
0
INPUT_PORTS_END

void h8_state::machine_reset()
{
	m_beep->set_frequency(H8_BEEP_FRQ);
	output_set_value("pwr_led", 0);
	m_irq_ctl = 1;
}
Ejemplo n.º 7
0
static MACHINE_RESET( mephisto )
{
	mephisto_state *state = machine.driver_data<mephisto_state>();
	state->m_lcd_shift_counter = 3;
	state->m_allowNMI = 1;
	mboard_set_border_pieces();
	mboard_set_board();

/* adjust artwork depending on current emulation*/

	if (!strcmp(machine.system().name,"mm2") )
		output_set_value("MM",1);
	else if (!strcmp(machine.system().name,"mm4") )
		output_set_value("MM",2);
	else if (!strcmp(machine.system().name,"mm4tk") )
		output_set_value("MM",5);
	else if (!strcmp(machine.system().name,"mm5tk") )
		output_set_value("MM",5);
	else if (!strcmp(machine.system().name,"mm5") )
		output_set_value("MM",3);
	else if (!strcmp(machine.system().name,"mm50") )
		output_set_value("MM",3);
	else if (!strcmp(machine.system().name,"rebel5") )
		output_set_value("MM",4);
}
Ejemplo n.º 8
0
void amiga_fdc::setup_leds()
{
	if(floppy) {
		int drive =
			floppy == floppy_devices[0] ? 0 :
			floppy == floppy_devices[1] ? 1 :
			floppy == floppy_devices[2] ? 2 :
			3;

		output_set_value("drive_0_led", drive == 0);
		output_set_value("drive_1_led", drive == 1);
		output_set_value("drive_2_led", drive == 2);
		output_set_value("drive_3_led", drive == 3);

		set_led_status(machine(), 1, drive == 0); /* update internal drive led */
		set_led_status(machine(), 2, drive == 1); /* update external drive led */
	}
}
Ejemplo n.º 9
0
static WRITE8_HANDLER( lx800_portc_w )
{
	lx800_state *lx800 = space->machine().driver_data<lx800_state>();

	logerror("%s: lx800_portc_w(%02x): %02x\n", space->machine().describe_context(), offset, data);
	logerror("--> err: %d, ack: %d, fire: %d, buzzer: %d\n", BIT(data, 4), BIT(data, 5), BIT(data, 6), BIT(data, 7));

	output_set_value("online_led", !BIT(data, 2));
	beep_set_state(lx800->m_speaker, !BIT(data, 7));
}
Ejemplo n.º 10
0
void awp_draw_reel(int rno)
{
	int rsteps = steps[rno];
	int rsymbols = symbols[rno];
	int m;
	int x = rno + 1;
	char rg[16], rga[16], rgb[16];

	sprintf(rg,"reel%d", x);
	reelpos[rno] = stepper_get_position(rno);
	if (reelpos[rno] == output_get_value(rg))
	{
		// Not moved, no need to update.
	}
	else
	{
		reelpos[rno] = stepper_get_position(rno)%(stepper_get_max(rno)-1);
		for ( m = 0; m < (rsymbols-1); m++ )
		{
			{
				sprintf(rga,"reel%da%d", x, m);
				output_set_value(rga,(reelpos[rno] + rsteps * m)%stepper_get_max(rno));
			}

			{
				if ((reelpos[rno] - rsteps * m) < 0)
				{
					sprintf(rgb,"reel%db%d", x, m);
					output_set_value(rgb,(reelpos[rno] - (rsteps * m - stepper_get_max(rno))));
				}
				else
				{
					sprintf(rgb,"reel%db%d", x, m);
					output_set_value(rgb,(reelpos[rno] - rsteps * m));
				}
			}
		}
		output_set_value(rg,(reelpos[rno]));
	}
}
Ejemplo n.º 11
0
static WRITE32_HANDLER( motor_control_w )
{
/*
    Standard value poked into MSW is 0x3c00
    (0x2000 and zero are written at startup)

*/
	if (data & 0x1000000)
	{
	output_set_value("Player1_Gun_Recoil",1);
	}
	else
	{
	output_set_value("Player1_Gun_Recoil",0);
	}

	if (data & 0x10000)
	{
	output_set_value("Player2_Gun_Recoil",1);
	}
	else
	{
	output_set_value("Player2_Gun_Recoil",0);
	}

	if (data & 0x40000)
	{
	output_set_value("Hit_lamp",1);
	}
	else
	{
	output_set_value("Hit_lamp",0);
	}

}
Ejemplo n.º 12
0
static void mouse_update(running_machine &machine)
{
	supercon_state *state = machine.driver_data<supercon_state>();
	UINT8 port_input; // m_left;
	int i;

/* Boarder pieces and moving pice */

	port_input=input_port_read(machine, "B_WHITE");
	if (port_input)
	{
		i=get_first_bit(port_input);
		state->m_moving_piece=border_pieces[i];
		output_set_value("MOVING",state->m_moving_piece);
		return;
	}


	port_input=input_port_read(machine, "B_BLACK");
	if (port_input)
	{
		i=get_first_bit(port_input);
		state->m_moving_piece=border_pieces[6+i];
		output_set_value("MOVING",state->m_moving_piece);
		return;
	}


	port_input=input_port_read(machine, "B_CLR");
	if (port_input)
	{
		if (state->m_moving_piece)
		{
			state->m_moving_piece=0;
			output_set_value("MOVING",state->m_moving_piece);
			return;
		}
	}
}
Ejemplo n.º 13
0
void supercon_state::mouse_update()
{
	UINT8 port_input; // m_left;
	int i;

/* border pieces and moving piece */

	port_input = m_b_white->read();
	if (port_input)
	{
		i = get_first_bit(port_input);
		m_moving_piece = m_border_pieces[i];
		output_set_value("MOVING", m_moving_piece);
		return;
	}


	port_input = m_b_black->read();
	if (port_input)
	{
		i = get_first_bit(port_input);
		m_moving_piece = m_border_pieces[6+i];
		output_set_value("MOVING", m_moving_piece);
		return;
	}


	port_input = m_b_clr->read();
	if (port_input)
	{
		if (m_moving_piece)
		{
			m_moving_piece=0;
			output_set_value("MOVING", m_moving_piece);
			return;
		}
	}
}
Ejemplo n.º 14
0
Archivo: h8.c Proyecto: dinkc64/mame
INPUT_PORTS_END

void h8_state::machine_reset()
{
	m_beep->set_frequency(H8_BEEP_FRQ);
	output_set_value("pwr_led", 0);
	m_irq_ctl = 1;
	m_cass_state = 1;
	m_cass_data[0] = 0;
	m_cass_data[1] = 0;
	m_uart->write_rxd(0);
	m_cass_data[3] = 0;
	m_ff_b = 1;
}
Ejemplo n.º 15
0
static WRITE16_HANDLER( term2_sound_w )
{
	midyunit_state *state = space->machine().driver_data<midyunit_state>();
	/* Flash Lamp Output Data */
	if  ( ((data & 0x800) != 0x800) && ((data & 0x400) == 0x400 ) )
	{
	output_set_value("Left_Flash_1", data & 0x1);
	output_set_value("Left_Flash_2", (data & 0x2) >> 1);
	output_set_value("Left_Flash_3", (data & 0x4) >> 2);
	output_set_value("Left_Flash_4", (data & 0x8) >> 3);
	output_set_value("Right_Flash_1", (data & 0x10) >> 4);
	output_set_value("Right_Flash_2", (data & 0x20) >> 5);
	output_set_value("Right_Flash_3", (data & 0x40) >> 6);
	output_set_value("Right_Flash_4", (data & 0x80) >> 7);
	}
Ejemplo n.º 16
0
void awp_draw_reel(const char* reeltag, stepper_device &reel)
{
	char rg[16];

	int reelpos =  reel.get_position();
	if (reelpos == output_get_value(reeltag))
	{
		// Not moved, no need to update.
	}
	else
	{
		output_set_value(reeltag,(reelpos));

		// if the reel isn't configured don't do this, otherwise you'll get DIV0
		if (reel.get_max())
		{
			sprintf(rg,"s%s", reeltag); // our new scrolling reels are called 'sreel'
			// normalize the value
			int sreelpos = (reelpos * 0x10000) / reel.get_max();

			output_set_value(rg,sreelpos);
		}
	}
}
Ejemplo n.º 17
0
void eacc_state::eacc_display()
{
	UINT8 i;
	char lednum[6];

	for (i = 3; i < 7; i++)
		if (BIT(m_digit, i))
			output_set_digit_value(i, m_segment);

	if (BIT(m_digit, 7))
		for (i = 0; i < 8; i++)
		{
			sprintf(lednum,"led%d",i);
			output_set_value(lednum, BIT(m_segment, i)^1);
		}
}
Ejemplo n.º 18
0
void vt100_state::machine_reset()
{
	m_keyboard_int = 0;
	m_receiver_int = 0;
	m_vertical_int = 0;
	m_speaker->set_frequency(786); // 7.945us per serial clock = ~125865.324hz, / 160 clocks per char = ~ 786 hz
	output_set_value("online_led",1);
	output_set_value("local_led", 0);
	output_set_value("locked_led",1);
	output_set_value("l1_led", 1);
	output_set_value("l2_led", 1);
	output_set_value("l3_led", 1);
	output_set_value("l4_led", 1);

	m_key_scan = 0;
}
Ejemplo n.º 19
0
void output_set_indexed_value(const char *basename, int index, int value)
{
	char buffer[100];
	char *dest = buffer;

	/* copy the string */
	while (*basename != 0)
		*dest++ = *basename++;

	/* append the index */
	if (index >= 1000) *dest++ = '0' + ((index / 1000) % 10);
	if (index >= 100) *dest++ = '0' + ((index / 100) % 10);
	if (index >= 10) *dest++ = '0' + ((index / 10) % 10);
	*dest++ = '0' + (index % 10);
	*dest++ = 0;

	/* set the value */
	output_set_value(buffer, value);
}
Ejemplo n.º 20
0
void vt100_state::machine_reset()
{
	m_keyboard_int = 0;
	m_receiver_int = 0;
	m_vertical_int = 0;
	beep_set_frequency( m_speaker, 786 ); // 7.945us per serial clock = ~125865.324hz, / 160 clocks per char = ~ 786 hz
	output_set_value("online_led",1);
	output_set_value("local_led", 0);
	output_set_value("locked_led",1);
	output_set_value("l1_led", 1);
	output_set_value("l2_led", 1);
	output_set_value("l3_led", 1);
	output_set_value("l4_led", 1);

	m_key_scan = 0;

	machine().device("maincpu")->execute().set_irq_acknowledge_callback(vt100_irq_callback);
}
Ejemplo n.º 21
0
static READ8_HANDLER( supercon_port4_r )
{
	supercon_state *state = space->machine().driver_data<supercon_state>();
	int i_18, i_AH;
	UINT8 key_data = 0x00;;

	static const char *const board_lines[8] =
			{ "BOARD_1", "BOARD_2", "BOARD_3", "BOARD_4", "BOARD_5", "BOARD_6", "BOARD_7", "BOARD_8" };

	LOG(("Read from %04x \n",0x1F00));

/* Board buttons */

	i_18=get_first_bit(state->m_data_1E00);
	if (i_18==NOT_VALID)
		return 0xff;

/* if a button was pressed wait til timer -timer_mouse_click- is fired */

	if (state->m_selecting)
		return state->m_save_key_data;
	else
	{
		set_pieces(state);
		output_set_value("MOVING",state->m_moving_piece);
	}

	key_data=input_port_read(space->machine(), board_lines[i_18]);

	if (key_data != 0xff)
	{
		LOG(("%s key_data: %02x \n",board_lines[i_18],key_data));

/* Only if valid data and mouse button is pressed */

		if (key_data && input_port_read(space->machine(), "BUTTON_L")) 
		{

/* Set or remove pieces */

			i_AH=7-get_first_cleared_bit(key_data);
			LOG(("Press -> AH: %d 18: %d Piece: %d\n",i_AH,i_18,state->m_board[i_18*8 + i_AH]););
Ejemplo n.º 22
0
static TIMER_DEVICE_CALLBACK( display_callback )
{
	tm990189 *state = timer.machine().driver_data<tm990189>();
	UINT8 i;
	char ledname[8];
    // since the segment data is cleared after being used, the old_segment is there
    // in case the segment data hasn't been refreshed yet.
	for (i = 0; i < 10; i++)
	{
		state->m_old_segment_state[i] |= state->m_segment_state[i];
		sprintf(ledname,"digit%d",i);
		output_set_digit_value(i, state->m_old_segment_state[i]);
		state->m_old_segment_state[i] = state->m_segment_state[i];
		state->m_segment_state[i] = 0;
	}

	for (i = 0; i < 7; i++)
	{
		sprintf(ledname,"led%d",i);
		output_set_value(ledname, !BIT(state->m_LED_state, i));
	}
}
Ejemplo n.º 23
0
static WRITE16_HANDLER( othunder_tc0220ioc_w )
{
	othunder_state *state = space->machine().driver_data<othunder_state>();

	if (ACCESSING_BITS_0_7)
	{
		switch (offset)
		{
			case 0x03:

/*              0000000x    SOL-1 (gun solenoid)
                000000x0    SOL-2 (gun solenoid)
                00000x00    OBPRI (sprite priority)
                0000x000    (unused)
                000x0000    eeprom reset (active low)
                00x00000    eeprom clock
                0x000000    eeprom in data
                x0000000    eeprom out data  */

				/* Recoil Piston Motor Status */
				output_set_value("Player1_Recoil_Piston", data & 0x1 );
				output_set_value("Player2_Recoil_Piston", (data & 0x2) >>1 );

				if (data & 4)
					popmessage("OBPRI SET!");

				eeprom_write_bit(state->m_eeprom, data & 0x40);
				eeprom_set_clock_line(state->m_eeprom, (data & 0x20) ? ASSERT_LINE : CLEAR_LINE);
				eeprom_set_cs_line(state->m_eeprom, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE);
				break;

			default:
				tc0220ioc_w(state->m_tc0220ioc, offset, data & 0xff);
		}
	}
}
Ejemplo n.º 24
0
void mephisto_state::machine_reset()
{
	m_lcd_shift_counter = 3;
	m_allowNMI = 1;
	mboard_set_border_pieces();
	mboard_set_board();

/* adjust artwork depending on current emulation*/

	if (!strcmp(machine().system().name,"mm2") )
		output_set_value("MM",1);
	else if (!strcmp(machine().system().name,"mm4") )
		output_set_value("MM",2);
	else if (!strcmp(machine().system().name,"mm4tk") )
		output_set_value("MM",5);
	else if (!strcmp(machine().system().name,"mm5tk") )
		output_set_value("MM",5);
	else if (!strcmp(machine().system().name,"mm5") )
		output_set_value("MM",3);
	else if (!strcmp(machine().system().name,"mm50") )
		output_set_value("MM",3);
	else if (!strcmp(machine().system().name,"rebel5") )
		output_set_value("MM",4);
}
Ejemplo n.º 25
0
static WRITE32_HANDLER( twinkle_io_w )
{
	twinkle_state *state = space->machine().driver_data<twinkle_state>();

	if( ACCESSING_BITS_16_23 )
	{
		state->m_io_offset = ( data >> 16 ) & 0xff;
	}
	if( ACCESSING_BITS_0_7 )
	{
		if( state->m_output_last[ state->m_io_offset ] != ( data & 0xff ) )
		{
			state->m_output_last[ state->m_io_offset ] = ( data & 0xff );

			switch( state->m_io_offset )
			{
				/* ? */
			case 0x07:
			case 0x0f:
			case 0x17:
			case 0x1f:
			case 0x27:
			case 0x2f:
			case 0x37:

				/* led */
			case 0x3f:
			case 0x47:
			case 0x4f:
			case 0x57:
			case 0x5f:
			case 0x67:
			case 0x6f:
			case 0x77:
			case 0x7f:
				output_set_indexed_value( "led", ( state->m_io_offset - 7 ) / 8, asciicharset[ ( data ^ 0xff ) & 0x7f ] );
				break;

			case 0x87:
				output_set_indexed_value( "spotlight", 0, ( ~data >> 3 ) & 1 );
				output_set_indexed_value( "spotlight", 1, ( ~data >> 2 ) & 1 );
				output_set_indexed_value( "spotlight", 2, ( ~data >> 1 ) & 1 );
				output_set_indexed_value( "spotlight", 3, ( ~data >> 0 ) & 1 );
				output_set_indexed_value( "spotlight", 4, ( ~data >> 4 ) & 1 );
				output_set_indexed_value( "spotlight", 5, ( ~data >> 5 ) & 1 );
				output_set_indexed_value( "spotlight", 6, ( ~data >> 6 ) & 1 );
				output_set_indexed_value( "spotlight", 7, ( ~data >> 7 ) & 1 );
				break;

			case 0x8f:
				output_set_value( "neonlamp", ~data & 1 );

				if( ( data & 0xfe ) != 0xfe )
				{
					printf("%02x = %02x\n", state->m_io_offset, data & 0xff );
				}
				break;

			default:
				printf( "unknown io %02x = %02x\n", state->m_io_offset, data & 0xff );
				break;
			}
		}
	}
Ejemplo n.º 26
0
static WRITE8_HANDLER( m79amb_8002_w )
{
	/* D1 may also be watchdog reset */
	/* port goes to 0x7f to turn on explosion lamp */
	output_set_value("EXP_LAMP", data ? 1 : 0);
}
Ejemplo n.º 27
0
void mgavegas_state::update_lamp(){
	//output_set_value("AUXS", m_auxs); //unused
	output_set_value("MGA4", m_anal&0x01);
	output_set_value("MGA3", m_anacl&0x01);
	output_set_value("MGA2", m_anacr&0x01);
	output_set_value("MGA", m_anar&0x01);
	output_set_value("PL", m_pl&0x01);
	output_set_value("PC", m_pc&0x01);
	output_set_value("PR", m_pr&0x01);
	output_set_value("250", m_luz_250_rul&0x01);
	output_set_value("1002", m_luz_100_rul&0x01);
	output_set_value("50", m_luz_50_rlul&0x01);
	output_set_value("252", m_luz_25_lrul&0x01);
	output_set_value("25", m_luz_25_rrul&0x01);
	output_set_value("FL", m_fl&0x01);
	output_set_value("FC", m_fc&0x01);
	output_set_value("FR", m_fr&0x01);
	output_set_value("INSERTCOIN", m_insert_coin&0x01);
	output_set_value("NOCAMBIO", m_no_cambio&0x01);
	output_set_value("FUSE", m_fuse&0x01);
	output_set_value("FALTA", m_falta&0x01);
	//output_set_value("ANAG", m_anag&0x01);    //unused
	output_set_value("CL", m_cl&0x01);
	output_set_value("CC", m_cc&0x01);
	output_set_value("CR", m_cr&0x01);
	output_set_value("PREMIOS", m_premio_s&0x01);
	output_set_value("100", m_100&0x01);
	output_set_value("200", m_200&0x01);
	output_set_value("300", m_300&0x01);
	output_set_value("500", m_500&0x01);
	output_set_value("ML", m_ml&0x01);
	output_set_value("MC", m_mc&0x01);
	output_set_value("MR", m_mr&0x01);
/*
    m_inh=BIT(data, 3);
    m_printer=BIT(data, 6); //not_used
    m_auxp=BIT(data, 7);    //not_used

    m_bobina_ctrl=BIT(data, 0);
    m_timbre=BIT(data, 1);
    m_coil_1=BIT(data, 2);
    m_coil_2=BIT(data, 3);
    m_coil_3=BIT(data, 4);
    m_cont_ent=BIT(data, 5);
    m_cont_sal=BIT(data, 6);
    m_cont_caj=BIT(data, 7);
*/
}
Ejemplo n.º 28
0
void x68k_keyboard_device::write(UINT8 data)
{
	/* Keyboard control commands:
	   00xxxxxx - TV Control
	              Not of much use as yet

	   01000xxy - y = Mouse control signal

	   01001xxy - y = Keyboard enable

	   010100xy - y = Sharp X1 display compatibility mode

	   010101xx - xx = LED brightness (00 = bright, 11 = dark)

	   010110xy - y = Display control enable

	   010111xy - y = Display control via the Opt. 2 key enable

	   0110xxxx - xxxx = Key delay (default 500ms)
	                     100 * (delay time) + 200ms

	   0111xxxx - xxxx = Key repeat rate  (default 110ms)
	                     (repeat rate)^2*5 + 30ms

	   1xxxxxxx - xxxxxxx = keyboard LED status
	              b6 = "full size"
	              b5 = hiragana
	              b4 = insert
	              b3 = caps
	              b2 = code input
	              b1 = romaji input
	              b0 = kana
	*/

	if(data & 0x80)  // LED status
	{
		output_set_value("key_led_kana",(data & 0x01) ? 0 : 1);
		output_set_value("key_led_romaji",(data & 0x02) ? 0 : 1);
		output_set_value("key_led_code",(data & 0x04) ? 0 : 1);
		output_set_value("key_led_caps",(data & 0x08) ? 0 : 1);
		output_set_value("key_led_insert",(data & 0x10) ? 0 : 1);
		output_set_value("key_led_hiragana",(data & 0x20) ? 0 : 1);
		output_set_value("key_led_fullsize",(data & 0x40) ? 0 : 1);
		logerror("KB: LED status set to %02x\n",data & 0x7f);
	}

	if((data & 0xc0) == 0)  // TV control
	{
		// nothing for now
	}

	if((data & 0xf8) == 0x48)  // Keyboard enable
	{
		m_enabled = data & 0x01;
		logerror("KB: Keyboard enable bit = %i\n",m_enabled);
	}

	if((data & 0xf0) == 0x60)  // Key delay time
	{
		m_delay = data & 0x0f;
		logerror("KB: Keypress delay time is now %ims\n",(data & 0x0f)*100+200);
	}

	if((data & 0xf0) == 0x70)  // Key repeat rate
	{
		m_repeat = data & 0x0f;
		logerror("KB: Keypress repeat rate is now %ims\n",((data & 0x0f)^2)*5+30);
	}
}
Ejemplo n.º 29
0
LEGACY_FLOPPY_OPTIONS_END

void rainbow_state::machine_reset()
{
	if (COLD_BOOT == 1)
	{
		COLD_BOOT = 2;
		m_crtc->MHFU(-100); // reset MHFU counter
	}

	m_z80->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);

	INT88 = false;
	INTZ80 = false;

	m_zflip = true;
	m_z80_halted = true;
	m_kbd_tx_ready = m_kbd_rx_ready = false;

	m_kbd8251->input_callback(device_serial_interface::CTS); // raise clear to send

	m_KBD = 0;

	m_beep->set_frequency(2000);
		m_beep->set_state(0);

	// RESET ALL LEDs
	output_set_value("led1", 1);
	output_set_value("led2", 1);
	output_set_value("led3", 1);
	output_set_value("led4", 1);
	output_set_value("led5", 1);
	output_set_value("led6", 1);
	output_set_value("led7", 1);
	output_set_value("led8", 1);
	output_set_value("led9", 1);
	output_set_value("led10", 1);
	output_set_value("led11", 1);

	MOTOR_DISABLE_counter = 2; // soon resets drv.LEDs
	m_unit = 0;

}
Ejemplo n.º 30
0
INPUT_PORTS_END


void rainbow_state::machine_reset()
{
	m_z80->set_input_line(INPUT_LINE_HALT, ASSERT_LINE);

	m_zflip = true;
	m_z80_halted = true;
	m_kbd_tx_ready = m_kbd_rx_ready = false;

	m_kbd8251->input_callback(SERIAL_STATE_CTS); // raise clear to send

	m_KBD = 0;

	m_beep->set_frequency(2000);
		m_beep->set_state(0);

	// RESET ALL LEDs
	output_set_value("led1", 1);
	output_set_value("led2", 1);
	output_set_value("led3", 1);
	output_set_value("led4", 1);
	output_set_value("led5", 1);
	output_set_value("led6", 1);
	output_set_value("led7", 1);
	output_set_value("led8", 1);
	output_set_value("led9", 1);
	output_set_value("led10", 1);
	output_set_value("led11", 1);

	output_set_value("led20", 1); // DRIVE 0 (A)
	output_set_value("led21", 1); // DRIVE 1 (B)
}