www.pudn.com > study_CIP51.rar > cmdbuild.c


#include 
#include 
 
#include "tdp.h" 
 
xdata char cmdbuf [1 + MAX_CMD_LEN]; 
xdata unsigned char cmdndx; 
 
/* init */ 
void cmdb_init(void){ 
	cmdndx=0; 
	cmdbuf[0] = '\0'; 
} 
 
/*Prompt "COMMAND" */ 
void cmdb_prompt(void){ 
	com_puts("COMMAND: "); 
	com_puts(cmdbuf); 
} 
 
/* Scan the input command */ 
const char *cmdb_scan(void){ 
	int c; 
	while(1) { 
		if((c = com_getchar()) == -1) 
			break; 
		if(c == '\r') { 
			com_puts("\r\n"); 
			return(cmdbuf); 
		} 
		if((c =='\b') && (cmdndx != 0)) { 
			com_puts("\b \b"); 
			cmdbuf[--cmdndx] = '\0'; 
			continue; 
		} 
		if(!isprint(c)) { 
			BEEPCHAR: com_putchar('\x7'); 
			continue; 
		} 
		if(cmdndx >= MAX_CMD_LEN) 
			goto BEEPCHAR; 
		com_putchar(c); 
		cmdbuf[cmdndx++] = (unsigned char) c; 
		cmdbuf[cmdndx] = '\0'; 
	} 
	return(NULL); 
}