⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ui.c

📁 isp1160_isa_evel_codeUSB主机软件
💻 C
📖 第 1 页 / 共 3 页
字号:
/*
**  Kenobi2          version 1.3
**
**      ** This code has been made to check/learn the 1161 functionalities ** 
**      ** Release 25-Feb-2002                                             **
**
**      OKANO, Akifumi 
**      
**		Computing Segment, Semisonductors Div, Philips Japan Ltd.
**      akifumi.okano@philips.com
**      +81-3-3740-4668 
*/


#include		<stdio.h>
#include		<string.h>
#include		<dos.h>
#include		<conio.h>
#include		<bios.h>
#include		<ctype.h>

#include		"hc_comm.h"
#include		"hw_acces.h"
#include		"init.h"
#include		"isr.h"
#include		"isr_as.h"
#include		"ui.h"
#include		"data_tr.h"
#include		"tr_gene.h"
#include		"dev_ep.h"
#include		"sing.h"
#include		"printer.h"
#include		"general.h"
#include		"beep.h"


int				g_status_monitor_switch	= 1;
unsigned char	key_polling_flag	= 0;

typedef			struct	st_coodinate	{
											int		x;
											int		y;
										}
										coodinate;

coodinate		Hc_message_coodinate	= { 1, 1 };
coodinate		Dc_message_coodinate	= { 1, 1 };

void	regster_dump( void );
void	help_messsage( void );
void	version_info( void );
void 	environment_info( void );
void	port_device_info( void );



unsigned char user_debug_command_key( void )
{

#if 1

	if( bioskey(1) )
		return ( bioskey(0) & 0xFF );

#else

	if ( kbhit() )
		return ( getch() );

#endif	

	return ( 0 );
}

#ifndef _MiniKit

unsigned char user_debug_command_handler( unsigned char command )
{
	int						tmp;
	static unsigned char	quit_flag;
	
	if ( !command )
		return ( 0 );
	
	if ( quit_flag )
		if ( command == 'y' )
			return ( 1 );
		else
		{
			mprintf( RED, CONTINUE, "\r\nQuit command cancelled key [0x%02X] '%c' pressed.\r\n", command, command );
			return ( quit_flag	= 0 );
		}
		
	switch( command )
	{
		case 0x1b:  /*	ESC  */
		case 'q':
			if ( !quit_flag )
			{
				quit_flag	= 1;
				mprintf( RED, CONTINUE, "\r\nQuit? press [y] >> \r\n" );
			}
			break;
		case '?':
		case 'h':
			help_messsage();
			break;
		case 'v':
			version_info();
			break;
		case 'd':
			regster_dump();
			break;
		case 'x':
			if ( g_status_monitor_switch )
				mprintf( LIGHTGRAY, CONTINUE, "\r\nstatus monitor stopped.\r\n" );

			g_status_monitor_switch		= !g_status_monitor_switch;
			break;
			
			
			
		case 'a':
			audio_main();
			break;
			
#ifndef NoBEEP
		case 'b':
			beep( 221.50, 0.50, DECAY, POLY );
			break;
			
		case 'Z':
			beep( 440.00 * (12.00 / 10.00) * 1.00, 0.20, SUSTAIN, MONO );
			break;
		case 'X':
			beep( 440.00 * (12.00 / 10.00) * (9.00 / 8.00), 0.20, SUSTAIN, MONO );
			break;
		case 'C':
			beep( 440.00 * (12.00 / 10.00) * (5.00 / 4.00), 0.20, SUSTAIN, MONO );
			break;
		case 'V':
			beep( 440.00 * (12.00 / 10.00) * (4.00 / 3.00), 0.20, SUSTAIN, MONO );
			break;
		case 'B':
			beep( 440.00 * (12.00 / 10.00) * (3.00 / 2.00), 0.20, SUSTAIN, MONO );
			break;
		case 'N':
			beep( 440.00 * (12.00 / 10.00) * (5.00 / 3.00), 0.20, SUSTAIN, MONO );
			break;
		case 'M':
			beep( 440.00 * (12.00 / 10.00) * (15.00 / 8.00), 0.20, SUSTAIN, MONO );
			break;
		case '<':
			beep( 440.00 * (12.00 / 10.00) * 2.00, 0.20, SUSTAIN, MONO );
			break;
#endif	

			
		case 'p':
			printer_main();
			break;

			
		case 'e':
			environment_info();
			break;

		case 'i':
			port_device_info();
			break;

			
			

		case 't':
//			create_device( Speed_Full );
			break;
		case 'r':
//			rh_event_handler();
			break;
		case '0':
//			dma_test();
			break;
		case 'm':
//			monitor_device();
			break;
		case '-':

			{
				unsigned long	lo;
				unsigned long	hi;
				lo		 = read_register32( Com32_HcFmInterval );
				hi		 = lo & (~0x3FFF);
				lo		&= 0x3FFF;
				lo		-= 100;
				write_register32( Com32_HcFmInterval, hi | lo );
				mprintf( LIGHTGREEN, CONTINUE, "frameinterval changed %d / 11999\r\n", lo );
			}

			break;
		case '+':
			{
				unsigned long	lo;
				unsigned long	hi;
				lo		 = read_register32( Com32_HcFmInterval );
				hi		 = lo & (~0x3FFF);
				lo		&= 0x3FFF;
				lo		+= 100;
				write_register32( Com32_HcFmInterval, hi | lo );
				mprintf( LIGHTGREEN, CONTINUE, "frameinterval changed %d / 11999\r\n", lo );
			}
			break;
		case '1' :
			break;
		case '2' :
			break;
		case '3' :
			break;
		case '4' :
			break;
		case '5' :
			break;
		case '6' :
			break;
		case '7' :
			break;
		case '8' :
//			write_register16( Com16_HcHardwareConfiguration, ( read_register16( Com16_HcHardwareConfiguration ) | 0x0002 ) );
//			mprintf( LIGHTGREEN, CONTINUE, "0x%04X", read_register16( Com16_HcHardwareConfiguration ) );
			
			break;
		case '9' :
//			write_register16( Com16_HcHardwareConfiguration, ( read_register16( Com16_HcHardwareConfiguration ) & ~0x0002 ) );
//			mprintf( LIGHTGREEN, CONTINUE, "0x%04X", read_register16( Com16_HcHardwareConfiguration ) );
			break;
		default :
			break;
	}
	
	return ( 0 );
}

#else	//	#ifndef _MiniKit

unsigned char user_debug_command_handler( unsigned char command )
{
	audio_main();
	
	return ( 0 );
}

#endif	//	#ifndef _MiniKit


#include		<stdarg.h>

void mprintf( unsigned char color, unsigned char mode, char *format, ... )
{
	char		str[ 256 ];
	va_list		args;

#ifdef DC_CONBINED
	
	window( 1, 2, 80, 13 );
	gotoxy( Hc_message_coodinate.x, Hc_message_coodinate.y );

#endif // DC_CONBINED


	if ( mode == ABORT )
	{
		textattr( RED );
		cprintf( "\r\n" );
		cprintf( "  * * * ABORTED! * * *\r\n" );
	}

	va_start( args, format );
	
	vsprintf( str, format, args );
	
#ifdef DC_CONBINED
	textattr( color | (BLUE << 4) );
#else
	textattr( color );
#endif // DC_CONBINED

	cprintf( str );
	textattr( 7 );
	
#ifdef DC_CONBINED

	Hc_message_coodinate.x	= wherex();
	Hc_message_coodinate.y	= wherey();

#endif // DC_CONBINED


	if ( mode == ABORT )
	{
		status_monitor();
//		regster_dump();
		exit ( 1 );
	}
}



#ifdef DC_CONBINED

void Dc_printf( unsigned char color, unsigned char mode, char *format, ... )
{
	char		str[ 256 ];
	va_list		args;

	window( 1, 14, 80, 25 );

	gotoxy( Dc_message_coodinate.x, Dc_message_coodinate.y );


	if ( mode == ABORT )
	{
		textattr( RED );
		cprintf( "\r\n" );
		cprintf( "  * * * ABORTED! * * *\r\n" );
	}

	va_start( args, format );
	
	vsprintf( str, format, args );
	
	textattr( color | (GREEN << 4) );
	cprintf( str );
	textattr( 7 );
	
	Dc_message_coodinate.x	= wherex();
	Dc_message_coodinate.y	= wherey();
	
	if ( mode == ABORT )
	{
		status_monitor();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -