Пример #1
0
void sc2_state::sc2_update_display()
{
	UINT8 digit_data = BITSWAP8( m_digit_data,7,0,1,2,3,4,5,6 ) & 0x7f;

	if (!BIT(m_led_selected, 0))
	{
		output_set_digit_value(0, digit_data);
		m_led_7seg_data[0] = digit_data;

		output_set_led_value(0, BIT(m_digit_data, 7));
	}

	if (!BIT(m_led_selected, 1))
	{
		output_set_digit_value(1, digit_data);
		m_led_7seg_data[1] = digit_data;

		output_set_led_value(1, BIT(m_digit_data, 7));
	}

	if (!BIT(m_led_selected, 2))
	{
		output_set_digit_value(2, digit_data);
		m_led_7seg_data[2] = digit_data;
	}

	if (!BIT(m_led_selected, 3))
	{
		output_set_digit_value(3, digit_data);
		m_led_7seg_data[3] = digit_data;
	}
}
Пример #2
0
void fidelz80_state::update_display(running_machine &machine)
{
	// data for the 4x 7seg leds, bits are 0bxABCDEFG
	UINT8 out_digit = BITSWAP8( m_digit_data,7,0,1,2,3,4,5,6 ) & 0x7f;

	if (m_led_selected&0x04)
	{
		output_set_digit_value(0, out_digit);

		output_set_led_value(1, m_led_selected & 0x01);
	}
	if (m_led_selected&0x08)
	{
		output_set_digit_value(1, out_digit);

		output_set_led_value(0, m_led_selected & 0x01);
	}
	if (m_led_selected&0x10)
	{
		output_set_digit_value(2, out_digit);
	}
	if (m_led_selected&0x20)
	{
		output_set_digit_value(3, out_digit);
	}
}
Пример #3
0
void device_output_interface::set_led_value(int value)
{
	if (m_output_name)
		output_set_value(m_output_name, value);
	else
		output_set_led_value(m_output_index, value);
}
Пример #4
0
INPUT_PORTS_END


TIMER_DEVICE_CALLBACK_MEMBER(mk2_state::update_leds)
{
	int i;

	for (i=0; i<4; i++)
		output_set_digit_value(i, m_led[i]);

	output_set_led_value(0, BIT(m_led[4], 3));
	output_set_led_value(1, BIT(m_led[4], 5));
	output_set_led_value(2, BIT(m_led[4], 4));
	output_set_led_value(3, BIT(m_led[4], 4) ? 0 : 1);

	m_led[0]= m_led[1]= m_led[2]= m_led[3]= m_led[4]= 0;
}
Пример #5
0
INPUT_PORTS_END


static TIMER_DEVICE_CALLBACK( update_leds )
{
	mk2_state *state = timer.machine().driver_data<mk2_state>();
	int i;

	for (i=0; i<4; i++)
		output_set_digit_value(i, state->m_led[i]);

	output_set_led_value(0, BIT(state->m_led[4], 3));
	output_set_led_value(1, BIT(state->m_led[4], 5));
	output_set_led_value(2, BIT(state->m_led[4], 4));
	output_set_led_value(3, BIT(state->m_led[4], 4) ? 0 : 1);

	state->m_led[0]= state->m_led[1]= state->m_led[2]= state->m_led[3]= state->m_led[4]= 0;
}
Пример #6
0
void cosmicos_state::clear_input_data()
{
	int i;

	m_data = 0;

	for (i = 0; i < 8; i++)
	{
		output_set_led_value(LED_D0 - i, 0);
	}
}
Пример #7
0
static WRITE8_HANDLER ( write_led )
{
	mephisto_state *state = space->machine().driver_data<mephisto_state>();
	UINT8 LED_offset=100;
	data &= 0x80;

	if (data==0)state->m_led_status &= 255-(1<<offset) ; else state->m_led_status|=1<<offset;
	if (offset<6)output_set_led_value(LED_offset+offset, state->m_led_status&1<<offset?1:0);
	if (offset==7) state->m_led7=data& 0x80 ? 0x00 :0xff;
	logerror("LEDs  Offset = %d Data = %d\n",offset,data);
}
Пример #8
0
INPUT_PORTS_END


TIMER_DEVICE_CALLBACK_MEMBER(mk1_state::mk1_update_leds)
{
    for (int i = 0; i < 4; i++)
    {
        output_set_digit_value(i, m_led[i] >> 1);
        output_set_led_value(i, m_led[i] & 0x01);
        m_led[i] = 0;
    }
}
Пример #9
0
void bw12_state::ls259_w(int address, int data)
{
	switch (address)
	{
	case 0: /* LS138 A0 */
		m_bank = (m_bank & 0x02) | data;
		bankswitch();
		break;

	case 1: /* LS138 A1 */
		m_bank = (data << 1) | (m_bank & 0x01);
		bankswitch();
		break;

	case 2: /* not connected */
		break;

	case 3: /* _INIT */
		break;

	case 4: /* CAP LOCK */
		output_set_led_value(0, data);
		break;

	case 5: /* MOTOR 0 */
		m_motor0 = data;

		if (data)
		{
			floppy_mon_w(m_floppy0, CLEAR_LINE);
			floppy_drive_set_ready_state(m_floppy0, 1, 0);
		}

		set_floppy_motor_off_timer();
		break;

	case 6: /* MOTOR 1 */
		m_motor1 = data;

		if (data)
		{
			floppy_mon_w(m_floppy1, CLEAR_LINE);
			floppy_drive_set_ready_state(m_floppy1, 1, 0);
		}

		set_floppy_motor_off_timer();
		break;

	case 7: /* FDC TC */
		upd765_tc_w(m_fdc, data);
		break;
	}
}
Пример #10
0
static void write_LED(UINT8 data)
{
	int i;
	UINT8 i_AH, i_18;
	UINT8 LED;

	mboard_lcd_invert = 1;
/*

Example: turn led E2 on

mask:  fd 1111 1101 Line 2
data:  10 0001 0000 Line E

*/

	for (i=0; i < 64; i++)							/* all  LED's off */
		output_set_led_value(i, 0);

    if (Line18_LED)
    {
		for (i_AH = 0; i_AH < 8; i_AH++)				/* turn  LED on depending on bit masks */
		{
			if (BIT(data,i_AH))
			{
				for (i_18 = 0; i_18 < 8; i_18++)
				{
					LED = (i_18*8 + 8-i_AH-1);
					if (!(Line18_LED & (1 << i_18)))	/* cleared bit */
						output_set_led_value(LED, 1);
					//else
					//  output_set_led_value(LED, 0);
				}
			}
		}
	}

}
Пример #11
0
void cosmicos_state::set_cdp1802_mode(int mode)
{
	output_set_led_value(LED_RUN, 0);
	output_set_led_value(LED_LOAD, 0);
	output_set_led_value(LED_PAUSE, 0);
	output_set_led_value(LED_RESET, 0);

	switch (mode)
	{
	case MODE_RUN:
		output_set_led_value(LED_RUN, 1);

		m_wait = 1;
		m_clear = 1;
		break;

	case MODE_LOAD:
		output_set_led_value(LED_LOAD, 1);

		m_wait = 0;
		m_clear = 0;
		break;

	case MODE_PAUSE:
		output_set_led_value(LED_PAUSE, 1);

		m_wait = 1;
		m_clear = 0;
		break;

	case MODE_RESET:
		m_maincpu->set_input_line(COSMAC_INPUT_LINE_INT, CLEAR_LINE);
		m_maincpu->set_input_line(COSMAC_INPUT_LINE_DMAIN, CLEAR_LINE);

		m_wait = 1;
		m_clear = 0;
		m_boot = 1;

		output_set_led_value(LED_RESET, 1);
		break;
	}
}
Пример #12
0
ADDRESS_MAP_END

/* Input Ports */

INPUT_CHANGED_MEMBER( cosmicos_state::data )
{
	UINT8 data = ioport("DATA")->read();
	int i;

	for (i = 0; i < 8; i++)
	{
		if (!BIT(data, i))
		{
			m_data |= (1 << i);
			output_set_led_value(LED_D0 - i, 1);
		}
	}
}
Пример #13
0
ADDRESS_MAP_END

/* Input Ports */

static INPUT_CHANGED( data )
{
	cosmicos_state *state = field->port->machine().driver_data<cosmicos_state>();
	UINT8 data = input_port_read(field->port->machine(), "DATA");
	int i;

	for (i = 0; i < 8; i++)
	{
		if (!BIT(data, i))
		{
			state->m_data |= (1 << i);
			output_set_led_value(LED_D0 - i, 1);
		}
	}
}
Пример #14
0
void bw12_state::ls259_w(int address, int data)
{
	switch (address)
	{
	case 0: /* LS138 A0 */
		m_bank = (m_bank & 0x02) | data;
		bankswitch();
		break;

	case 1: /* LS138 A1 */
		m_bank = (data << 1) | (m_bank & 0x01);
		bankswitch();
		break;

	case 2: /* not connected */
		break;

	case 3: /* _INIT */
		break;

	case 4: /* CAP LOCK */
		output_set_led_value(0, data);
		break;

	case 5: /* MOTOR 0 */
		m_motor0 = data;
		break;

	case 6: /* MOTOR 1 */
		m_motor1 = data;
		break;

	case 7: /* FDC TC */
		m_fdc->tc_w(data);
		break;
	}

	m_motor_on = m_motor0 || m_motor1;

	m_floppy0->mon_w(!m_motor_on);
	m_floppy1->mon_w(!m_motor_on);
}
Пример #15
0
static void update_leds( supercon_state *state )
{
	int i;

	for (i = 0; i < 8; i++)
	{
		if (BIT(state->m_LED_18, i))
			output_set_led_value(i + 1, 1);
		else
			output_set_led_value(i + 1, 0);

		if (BIT(state->m_LED_AH, i))
			output_set_led_value(i + 9, 1);
		else
			output_set_led_value(i + 9, 0);

		if (BIT(state->m_LED_ST, i))
			output_set_led_value(i + 17, 1);
		else
			output_set_led_value(i + 17, 0);
	}
}
Пример #16
0
void prof80_state::ls259_w(int fa, int sa, int fb, int sb)
{
	switch (sa)
	{
	case 0: // C0/TDI
		m_rtc->data_in_w(fa);
		m_rtc->c0_w(fa);
		m_c0 = fa;
		break;

	case 1: // C1
		m_rtc->c1_w(fa);
		m_c1 = fa;
		break;

	case 2: // C2
		m_rtc->c2_w(fa);
		m_c2 = fa;
		break;

	case 3: // READY
		m_fdc->ready_w(fa);
		break;

	case 4: // TCK
		m_rtc->clk_w(fa);
		break;

	case 5: // IN USE
		output_set_led_value(0, fa);
		break;

	case 6: // _MOTOR
		if (fa)
		{
			// trigger floppy motor off NE555 timer
			int t = 110 * RES_M(10) * CAP_U(6.8); // t = 1.1 * R8 * C6

			timer_set(attotime::from_msec(t), TIMER_ID_MOTOR);
		}
		else
		{
			// turn on floppy motor
			if(m_floppy0)
				m_floppy0->mon_w(false);
			if(m_floppy1)
				m_floppy1->mon_w(false);

			m_motor = 1;

			// reset floppy motor off NE555 timer
			timer_set(attotime::never, TIMER_ID_MOTOR);
		}
		break;

	case 7: // SELECT
		break;
	}

	switch (sb)
	{
	case 0: // RESF
		if (fb) m_fdc->reset();
		break;

	case 1: // MINI
		break;

	case 2: // _RTS
		break;

	case 3: // TX
		break;

	case 4: // _MSTOP
		if (!fb)
		{
			// immediately turn off floppy motor
			synchronize(TIMER_ID_MOTOR);
		}
		break;

	case 5: // TXP
		break;

	case 6: // TSTB
		m_rtc->stb_w(fb);
		break;

	case 7: // MME
		//logerror("INIT %u\n", fb);
		m_init = fb;
		bankswitch();
		break;
	}
}
Пример #17
0
void set_led_status(running_machine &machine, int num, int on)
{
    output_set_led_value(num, on);
}
Пример #18
0
void set_led_status(int num, int on)
{
	output_set_led_value(num, on);
}