📄 f34x_msd_cmd.ls1
字号:
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 + -