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

📄 f34x_msd_cmd.ls1

📁 USB读写SD卡例程
💻 LS1
📖 第 1 页 / 共 5 页
字号:
000E 900000   F      638             MOV     DPTR,#Cmd
0011 F0              639             MOVX    @DPTR,A
                     640     ;   Token=0;
                     641                             ; SOURCE LINE # 83
0012 F9              642             MOV     R1,A
0013 900000   F      643             MOV     DPTR,#Token
0016 C9              644             XCH     A,R1
0017 F0              645             MOVX    @DPTR,A
0018 A3              646             INC     DPTR
0019 F0              647             MOVX    @DPTR,A
001A A3              648             INC     DPTR
001B E9              649             MOV     A,R1
001C F0              650             MOVX    @DPTR,A
                     651     ;   Sect_Print();
                     652                             ; SOURCE LINE # 84
001D 120000   F      653             LCALL   Sect_Print
                     654     ;   printf("MMC Shell version 1.0" ENDLINE);
                     655                             ; SOURCE LINE # 85
0020 7BFF            656             MOV     R3,#0FFH
0022 7A00     F      657             MOV     R2,#HIGH (?SC_0)
0024 7900     F      658             MOV     R1,#LOW (?SC_0)
0026 120000   F      659             LCALL   _printf
                     660     ;   write_current_dir();
                     661                             ; SOURCE LINE # 86
A51 MACRO ASSEMBLER  F34X_MSD_CMD                                                         11/16/2006 13:16:27 PAGE    12

0029 120000   F      662             LCALL   write_current_dir
                     663     ;   putchar(PROMPT);
                     664                             ; SOURCE LINE # 87
002C 7F3E            665             MOV     R7,#03EH
002E 020000   F      666             LJMP    _putchar
                     667     ; END OF Cmd_Init
                     668     
                     669     ; }
                     670     ; 
                     671     ; //----------------------------------------------------------------------------
                     672     ; // Cmd_Match
                     673     ; //----------------------------------------------------------------------------
                     674     ; //
                     675     ; // This function checks the syntax of command and converts all leters to 
                     676     ; // lowercase if it's uppercase.  
                     677     ; //
                     678     ; // Parameters   : str - command string
                     679     ; // Return Value : TRUE if command string and received string are similar 
                     680     ; //----------------------------------------------------------------------------
                     681     ; 
                     682     ; BYTE Cmd_Match(char* str) 
                     683     
----                 684             RSEG  ?PR?_Cmd_Match?F34X_MSD_CMD
0000                 685     _Cmd_Match:
                     686             USING   0
                     687                             ; SOURCE LINE # 101
0000 900000   F      688             MOV     DPTR,#str?140
0003 120000   F      689             LCALL   L?0086
                     690     ; {
                     691                             ; SOURCE LINE # 102
                     692     ;   xdata char* xdata s=Token;
                     693                             ; SOURCE LINE # 103
0006 900000   F      694             MOV     DPTR,#Token
0009 120000   F      695             LCALL   L?0097
000C 900000   F      696             MOV     DPTR,#s?141
000F C9              697             XCH     A,R1
0010 120000   F      698             LCALL   L?0087
                     699     ;   for(;*s;s++) *s=tolower(*s);
                     700                             ; SOURCE LINE # 104
0013                 701     ?C0002:
0013 900000   F      702             MOV     DPTR,#s?141
0016 120000   F      703             LCALL   L?0082
0019 120000   F      704             LCALL   ?C?CLDPTR
001C FF              705             MOV     R7,A
001D 6019            706             JZ      ?C0003
001F 120000   F      707             LCALL   _tolower
0022 900000   F      708             MOV     DPTR,#s?141
0025 120000   F      709             LCALL   L?0082
0028 EF              710             MOV     A,R7
0029 120000   F      711             LCALL   ?C?CSTPTR
002C 900000   F      712             MOV     DPTR,#s?141+01H
002F E4              713             CLR     A
0030 75F001          714             MOV     B,#01H
0033 120000   F      715             LCALL   ?C?IILDX
0036 80DB            716             SJMP    ?C0002
0038                 717     ?C0003:
                     718     ;   return !strncmp(Token,str,MAX_LEN);
                     719                             ; SOURCE LINE # 105
0038 900000   F      720             MOV     DPTR,#str?140
003B 120000   F      721             LCALL   L?0097
003E 900000   F      722             MOV     DPTR,#?_strncmp?BYTE+03H
0041 C9              723             XCH     A,R1
0042 120000   F      724             LCALL   L?0087
0045 A3              725             INC     DPTR
0046 E4              726             CLR     A
0047 F0              727             MOVX    @DPTR,A
A51 MACRO ASSEMBLER  F34X_MSD_CMD                                                         11/16/2006 13:16:27 PAGE    13

0048 A3              728             INC     DPTR
0049 7420            729             MOV     A,#020H
004B F0              730             MOVX    @DPTR,A
004C 900000   F      731             MOV     DPTR,#Token
004F 120000   F      732             LCALL   L?0082
0052 120000   F      733             LCALL   _strncmp
0055 EF              734             MOV     A,R7
0056 7004            735             JNZ     ?C0005
0058 7F01            736             MOV     R7,#01H
005A 8002            737             SJMP    ?C0006
005C                 738     ?C0005:
005C 7F00            739             MOV     R7,#00H
005E                 740     ?C0006:
                     741     ; }
                     742                             ; SOURCE LINE # 106
005E                 743     ?C0007:
005E 22              744             RET     
                     745     ; END OF _Cmd_Match
                     746     
                     747     ; 
                     748     ; //----------------------------------------------------------------------------
                     749     ; // Cmd_Dir
                     750     ; //----------------------------------------------------------------------------
                     751     ; //
                     752     ; // Function sends list of all directories and files in actual directory.
                     753     ; //
                     754     ; // Parameters   :
                     755     ; // Return Value :
                     756     ; //----------------------------------------------------------------------------
                     757     ; 
                     758     ; void Cmd_Dir(void) 
                     759     
----                 760             RSEG  ?PR?Cmd_Dir?F34X_MSD_CMD
0000                 761     Cmd_Dir:
                     762             USING   0
                     763                             ; SOURCE LINE # 118
                     764     ; {
                     765                             ; SOURCE LINE # 119
                     766     ;   xdata BYTE i;
                     767     ;   find_info xdata findinfo;
                     768     ;   if(!findfirst(&findinfo,0)) {
                     769                             ; SOURCE LINE # 122
0000 7B01            770             MOV     R3,#01H
0002 7A00     F      771             MOV     R2,#HIGH (findinfo?243)
0004 7900     F      772             MOV     R1,#LOW (findinfo?243)
0006 E4              773             CLR     A
0007 FD              774             MOV     R5,A
0008 120000   F      775             LCALL   _findfirst
000B EF              776             MOV     A,R7
000C 7009            777             JNZ     ?C0012
                     778     ;     printf("."ENDLINE);       
                     779                             ; SOURCE LINE # 123
000E 7BFF            780             MOV     R3,#0FFH
0010 7A00     F      781             MOV     R2,#HIGH (?SC_24)
0012 7900     F      782             MOV     R1,#LOW (?SC_24)
0014 020000   F      783             LJMP    _printf
                     784     ;     return;
                     785     ;   }
                     786                             ; SOURCE LINE # 125
0017                 787     ?C0012:
                     788     ;   do {
                     789                             ; SOURCE LINE # 126
                     790     ;     for(i=0;i<8;i++) { 
                     791                             ; SOURCE LINE # 127
0017 E4              792             CLR     A
0018 900000   F      793             MOV     DPTR,#i?242
A51 MACRO ASSEMBLER  F34X_MSD_CMD                                                         11/16/2006 13:16:27 PAGE    14

001B F0              794             MOVX    @DPTR,A
001C                 795     ?C0013:
001C 900000   F      796             MOV     DPTR,#i?242
001F E0              797             MOVX    A,@DPTR
0020 FF              798             MOV     R7,A
0021 C3              799             CLR     C
0022 9408            800             SUBB    A,#08H
0024 5008            801             JNC     ?C0014
                     802     ;       putchar(tolower(findinfo.direntry->sfn.name[i]));
                     803                             ; SOURCE LINE # 128
0026 120000   F      804             LCALL   L?0080
                     805     ;     }
                     806                             ; SOURCE LINE # 129
0029 120000   F      807             LCALL   L?0092
002C 80EE            808             SJMP    ?C0013
002E                 809     ?C0014:
                     810     ;     if(findinfo.direntry->sfn.name[i]>' ') 
                     811                             ; SOURCE LINE # 130
002E 120000   F      812             LCALL   L?0080
0031 900000   F      813             MOV     DPTR,#i?242
0034 E0              814             MOVX    A,@DPTR
0035 F582            815             MOV     DPL,A
0037 758300          816             MOV     DPH,#00H
003A 120000   F      817             LCALL   ?C?CLDOPTR
003D D3              818             SETB    C
003E 6480            819             XRL     A,#080H
0040 94A0            820             SUBB    A,#0A0H
0042 4005            821             JC      ?C0016
                     822     ;       putchar('.');
                     823                             ; SOURCE LINE # 131
0044 7F2E            824             MOV     R7,#02EH
0046 120000   F      825             LCALL   _putchar
0049                 826     ?C0016:
                     827     ;     for(i=8;i<11;i++) { 
                     828                             ; SOURCE LINE # 132
0049 900000   F      829             MOV     DPTR,#i?242
004C 7408            830             MOV     A,#08H
004E F0              831             MOVX    @DPTR,A
004F                 832     ?C0017:
004F 900000   F      833             MOV     DPTR,#i?242
0052 E0              834             MOVX    A,@DPTR
0053 FF              835             MOV     R7,A
0054 C3              836             CLR     C
0055 940B            837             SUBB    A,#0BH
0057 5008            838             JNC     ?C0018
                     839     ;       putchar(tolower(findinfo.direntry->sfn.name[i])); 
                     840                             ; SOURCE LINE # 133
0059 120000   F      841             LCALL   L?0081
                     842     ;     }
                     843                             ; SOURCE LINE # 134
005C 120000   F      844             LCALL   L?0092
005F 80EE            845             SJMP    ?C0017
0061                 846     ?C0018:
                     847     ; 
                     848     ;     if(!(findinfo.direntry->sfn.attrib & (ATTRIB_LABEL|ATTRIB_SUBDIR))) {
                     849                             ; SOURCE LINE # 136
0061 120000   F      850             LCALL   L?0081
0064 120000   F      851             LCALL   L?0101
0067 5418            852             ANL     A,#018H
0069 7015            853             JNZ     ?C0020
                     854     ;       printf("\t%lu bytes",ntohl(findinfo.direntry->sfn.filesize));
                     855                             ; SOURCE LINE # 137
006B 90001C          856             MOV     DPTR,#01CH
006E 120000   F      857             LCALL   ?C?LLDOPTR
0071 120000   F      858             LCALL   _htonl
0074 120000   F      859             LCALL   L?0103
A51 MACRO ASSEMBLER  F34X_MSD_CMD                                                         11/16/2006 13:16:27 PAGE    15

0077 7BFF            860             MOV     R3,#0FFH
0079 7A00     F      861             MOV     R2,#HIGH (?SC_28)
007B 7900     F      862             MOV     R1,#LOW (?SC_28)
007D 120000   F      863             LCALL   _printf
                     864     ;     }
                     865                             ; SOURCE LINE # 138
0080                 866     ?C0020:
                     867     ; 
                     868     ;     if(findinfo.direntry->sfn.attrib & ATTRIB_LABEL) 
                     869                             ; SOURCE LINE # 140
0080 120000   F      870             LCALL   L?0081

⌨️ 快捷键说明

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