#include #include #include //for isdigit() //#include //for malloc() #include //fot strset #include #include #define KEY_BS 8 #define KEY_ESC 27 //#define __DEBUG__ #ifdef __DEBUG__ #define RS232putch ToCom2 #define RS232getch ReadCom2 #define Is232 IsCom2 #define RS232putstr ToCom2Str #define Install232 InstallCom2 #define Restore232 RestoreCom2 #define ClearTx232 ClearTxBuffer2 #define WaitForTransmitOverPort WaitTransmitOver2 #define SendBytes ToCom2Bufn #else #define RS232putch ToCom1 #define RS232getch ReadCom1 #define Is232 IsCom1 #define RS232putstr ToCom1Str #define Install232 InstallCom1 #define Restore232 RestoreCom1 #define ClearTx232 ClearTxBuffer1 #define WaitForTransmitOverPort WaitTransmitOver1 #define SendBytes ToCom1Bufn #endif int upload(char *taco); int setfilename(char name_[]); int main(void) { char name[13]; //---- initialize ---- InitLib(); if(InitLCD()>0) goto END; else { Print("\n\rSatrtK"); clrLCD(); } LcdPrintfAt(1,1,"Filename?"); ///////// setfilename(name); upload(name); clrLCD(); CloseLCD(); return 0; //Print("\n\r5 seconds to command line..."); END: Print("\n\rFail"); return 1; } int upload(char *taco) { unsigned long i; int key; char name[13]; char buf[257];//0~255 for data, 256 for \0 static FILE_DATA far *fdata; unsigned char far* JJ; unsigned long st; int k=0; int e=0; int j=0; int l=0; int start=1; //find the newest file named as *taco int fileno=GetFileNo(); //get the total number of files stored in the FLASH for(j=fileno-1;j>=0;j--) { GetFileName(j,name); if(!strnicmp(name,taco,12))break; } fdata=GetFileInfoByNo(j);//to the last file if(!fdata) { Print("\n\rNo this file"); goto END2; } st=(unsigned long)fdata->size;//conver address pointer to calculateable unsigned long JJ=(unsigned char far *)fdata->addr; i=0; Install232(115200L,8,0,1); while(i=st) { SendBytes(buf,k); goto END3; } } SendBytes(buf,k); k=0; }//if start }//while END3: WaitForTransmitOverPort(); Restore232(); Print("\n\rLog has been finished"); Print("\n\rPress any key to end this program"); Getch(); return 0; END2: return 1; } int setfilename(char name_[]) { int index=0; int quit=0; int data; LcdPrintfAt(1,2,"Input filename:"); while(!quit) { if(Kbhit()) { data=Getch(); switch(data) { case KEY_BS:if(index>0) { // backspace(); LcdPrintfAt(index,3,"%c",data); index--; } break; case KEY_ESC:return 1; case 0x0d:quit=1;break; default: if(index<12) { name_[index++]=data; LcdPrintfAt(index,3,"%c",data); } break; } } } name_[index]=0; return 0; }