Esempio n. 1
0
int main( void )
{
	char s[ 256 ];
	int i;
	uint8_t sn;

	printf( "Waiting the EV3 brick online...\n" );
	if ( ev3_init() < 1 ) return ( 1 );

	printf( "*** ( EV3 ) Hello! ***\n" );
	ev3_port_init();

	printf( "Found ports:\n" );
	for ( i = 0; i < DESC_LIMIT; i++ ) {
		if ( ev3_port[ i ].type_inx != PORT_TYPE__NONE_ ) {
			printf( "  type = %s\n", ev3_port_type( ev3_port[ i ].type_inx ));
			printf( "  port = %s\n", ev3_port_port_name( i, s ));
			if ( get_port_mode( i, s, sizeof( s ))) {
				printf( "  mode = %s\n", s );
			}
		}
	}
	sn = ev3_search_port( INPUT_2, EXT_PORT__NONE_ );
	printf( "Port '%s'\n", ev3_port_name( INPUT_2, EXT_PORT__NONE_, 0, s ));
	if ( get_port_modes( sn, s, sizeof( s ))) {
		printf( "Modes: %s\n", s );
	} else {
		printf( "ERROR: get_port_modes()\n" );
	}
	ev3_uninit();
	printf( "*** ( EV3 ) Bye! ***\n" );

	return ( 0 );
}
Esempio n. 2
0
inline void i8155_device::write_port(int port, UINT8 data)
{
	switch (get_port_mode(port))
	{
	case PORT_MODE_OUTPUT:
		m_output[port] = data;
		devcb_call_write8(&m_out_port_func[port], 0, m_output[port]);
		break;
	}
}
Esempio n. 3
0
inline UINT8 i8155_device::read_port(int port)
{
	UINT8 data = 0;

	switch (port)
	{
	case PORT_A:
	case PORT_B:
		switch (get_port_mode(port))
		{
		case PORT_MODE_INPUT:
			data = devcb_call_read8(&m_in_port_func[port], 0);
			break;

		case PORT_MODE_OUTPUT:
			data = m_output[port];
			break;
		}
		break;

	case PORT_C:
		switch (get_port_mode(PORT_C))
		{
		case PORT_MODE_INPUT:
			data = devcb_call_read8(&m_in_port_func[port], 0) & 0x3f;
			break;

		case PORT_MODE_OUTPUT:
			data = m_output[port] & 0x3f;
			break;

		default:
			logerror("8155 '%s' Unsupported Port C mode!\n", tag());
		}
		break;
	}

	return data;
}
Esempio n. 4
0
inline void i8155_device::write_port(int port, UINT8 data)
{
	switch (get_port_mode(port))
	{
	case PORT_MODE_OUTPUT:
		m_output[port] = data;
		if (port == PORT_A)
			m_out_pa_cb((offs_t)0, m_output[port]);
		else if (port == PORT_B)
			m_out_pb_cb((offs_t)0, m_output[port]);
		else
			m_out_pc_cb((offs_t)0, m_output[port]);
		break;
	}
}
Esempio n. 5
0
inline UINT8 i8155_device::read_port(int port)
{
	UINT8 data = 0;

	switch (get_port_mode(port))
	{
	case PORT_MODE_INPUT:
		data = m_in_port_func[port](0);
		break;

	case PORT_MODE_OUTPUT:
		data = m_output[port];
		break;

	default:
		// strobed mode not implemented yet
		logerror("8155 '%s' Unsupported Port C mode!\n", tag());
		break;
	}

	return data;
}
Esempio n. 6
0
inline uint8_t i8155_device::read_port(int port)
{
	uint8_t data = 0;

	switch (get_port_mode(port))
	{
	case PORT_MODE_INPUT:
		data = (port == PORT_A) ? m_in_pa_cb(0) : ((port == PORT_B) ? m_in_pb_cb(0) : m_in_pc_cb(0));
		break;

	case PORT_MODE_OUTPUT:
		data = m_output[port];
		break;

	default:
		// strobed mode not implemented yet
		logerror("8155 Unsupported Port C mode!\n");
		break;
	}

	return data;
}