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); }