📄 fat16.lst
字号:
659 431E 0E00 movlw 0
660 4320 2001 addwfc btemp+1,w
661 4322 6FF4 movwf (?_sl811_read_sector^(__Lparam& (0+65280)
+ )+1)
662 4324 6BF5 clrf (?_sl811_read_sector+2)^(__Lparam& (0+6528
+ 0))
663 4326 6BF6 clrf (?_sl811_read_sector+3)^(__Lparam& (0+6528
+ 0))
664 4328 0EAD movlw low _buffer
665 432A 6FF7 movwf (?_sl811_read_sector+4)^(__Lparam& (0+652
+ 80))
666 432C 0E03 movlw high _buffer
667 432E 6FF8 movwf (?_sl811_read_sector+5)^(__Lparam& (0+652
+ 80))
668 4330 EC5E F00A call _sl811_read_sector ;wreg free
669 ;fat16.c: 134: return RAM[Index % 256];
670 4334 C0E9 F000 movff ?_ReadFAT,btemp
671 4338 C0EA F001 movff ?_ReadFAT+1,btemp+1
672 433C 6A01 clrf btemp+1
673 433E 90D8 bcf status,0,c
674 4340 3400 rlcf btemp,w
675 4342 6E02 movwf btemp+2
676 4344 3401 rlcf btemp+1,w
677 4346 6E03 movwf btemp+3
678 4348 0100 movlb __Lparam shr (0+8)
679 434A 51EB movf ?a_ReadFAT^(__Lparam& (0+65280)),w
680 434C 2402 addwf btemp+2,w
681 434E 6EE9 movwf fsr0l,c
682 4350 51EC movf (?a_ReadFAT+1)^(__Lparam& (0+65280)),w
683 4352 2003 addwfc btemp+3,w
684 4354 6EEA movwf fsr0h,c
685 4356 CFEE F000 movff postinc0,btemp
686 435A CFED F001 movff postdec0,btemp+1
687 ;fat16.c: 135: }
688 435E 0012 return
689 4360 FFFF dw 65535
690 4362 D7D1 goto f4622
691 4364 00E5 dw ?_WriteFAT
692 4366 _WriteFAT:
693 4366 FFFF dw 65535
694 0000
695 ;fat16.c: 142: uint16 *RAM = (uint16*)buffer;
696 4368 0100 movlb __Lparam shr (0+8)
697 436A 0EAD movlw low _buffer
698 436C 6FE9 movwf ?a_WriteFAT^(__Lparam& (0+65280))
699 436E 0E03 movlw high _buffer
700 4370 6FEA movwf (?a_WriteFAT+1)^(__Lparam& (0+65280))
701 ;fat16.c: 143: uint32 SecID;
702 4372 C041 F000 movff _BPB_RsvdSecCnt,btemp
703 4376 C042 F001 movff _BPB_RsvdSecCnt+1,btemp+1
704 437A 51E6 movf (?_WriteFAT+1)^(__Lparam& (0+65280)),w
705 437C 2400 addwf btemp,w
706 437E 6FEB movwf (?a_WriteFAT+2)^(__Lparam& (0+65280))
707 4380 0E00 movlw 0
708 4382 2001 addwfc btemp+1,w
709 4384 6FEC movwf ((?a_WriteFAT+2)^(__Lparam& (0+65280))+1)
710 4386 6BED clrf (?a_WriteFAT+4)^(__Lparam& (0+65280))
711 4388 6BEE clrf (?a_WriteFAT+5)^(__Lparam& (0+65280))
712 ;fat16.c: 146: sl811_read_sector(SecID, buffer);
713 438A C0EB F0F3 movff ?a_WriteFAT+2,?_sl811_read_sector
714 438E C0EC F0F4 movff ?a_WriteFAT+3,?_sl811_read_sector+1
715 4392 C0ED F0F5 movff ?a_WriteFAT+4,?_sl811_read_sector+2
716 4396 C0EE F0F6 movff ?a_WriteFAT+5,?_sl811_read_sector+3
717 439A 0EAD movlw low _buffer
718 439C 6FF7 movwf (?_sl811_read_sector+4)^(__Lparam& (0+652
+ 80))
719 439E 0E03 movlw high _buffer
720 43A0 6FF8 movwf (?_sl811_read_sector+5)^(__Lparam& (0+652
+ 80))
721 43A2 EC5E F00A call _sl811_read_sector ;wreg free
722 ;fat16.c: 147: RAM[Index % 256] = Value;
723 43A6 C0E5 F000 movff ?_WriteFAT,btemp
724 43AA C0E6 F001 movff ?_WriteFAT+1,btemp+1
725 43AE 6A01 clrf btemp+1
726 43B0 90D8 bcf status,0,c
727 43B2 3400 rlcf btemp,w
728 43B4 6E02 movwf btemp+2
729 43B6 3401 rlcf btemp+1,w
730 43B8 6E03 movwf btemp+3
731 43BA 0100 movlb __Lparam shr (0+8)
732 43BC 51E9 movf ?a_WriteFAT^(__Lparam& (0+65280)),w
733 43BE 2402 addwf btemp+2,w
734 43C0 6EE9 movwf fsr0l,c
735 43C2 51EA movf (?a_WriteFAT+1)^(__Lparam& (0+65280)),w
736 43C4 2003 addwfc btemp+3,w
737 43C6 6EEA movwf fsr0h,c
738 43C8 C0E7 FFEE movff ?_WriteFAT+2,postinc0
739 43CC C0E8 FFED movff ?_WriteFAT+3,postdec0
740 ;fat16.c: 149: sl811_write_sector(SecID, buffer)
+ ;
741 43D0 C0EB F0F1 movff ?a_WriteFAT+2,?_sl811_write_sector
742 43D4 C0EC F0F2 movff ?a_WriteFAT+3,?_sl811_write_sector+1
743 43D8 C0ED F0F3 movff ?a_WriteFAT+4,?_sl811_write_sector+2
744 43DC C0EE F0F4 movff ?a_WriteFAT+5,?_sl811_write_sector+3
745 43E0 D22E goto L7
746 ;fat16.c: 150: }
747 ;fat16.c: 154: uint16 GetEmptyDIR()
748 ;fat16.c: 156: {
749 43E2 _GetEmptyDIR:
750 43E2 FFFF dw 65535
751 43E4 f4652:
752 0000
753 ;fat16.c: 157: uint16 DirSecCut, i, m, ID = 0;
754 43E4 0100 movlb __Lparam shr (0+8)
755 43E6 6BEB clrf (?a_GetEmptyDIR+2)^(__Lparam& (0+65280))
756 43E8 6BEC clrf (?a_GetEmptyDIR+3)^(__Lparam& (0+65280))
757 ;fat16.c: 158: uint32 DirStart;
758 43EA DF4F call _GetDirSecCount ;wreg free
759 43EC C000 F0E9 movff btemp,?a_GetEmptyDIR
760 43F0 C001 F0EA movff btemp+1,?a_GetEmptyDIR+1
761 ;fat16.c: 160: DirStart = DirStartSec();
762 43F4 DEF3 call _DirStartSec ;wreg free
763 43F6 C000 F0EF movff btemp,?a_GetEmptyDIR+6
764 43FA C001 F0F0 movff btemp+1,?a_GetEmptyDIR+7
765 43FE C002 F0F1 movff btemp+2,?a_GetEmptyDIR+8
766 4402 C003 F0F2 movff btemp+3,?a_GetEmptyDIR+9
767 ;fat16.c: 161: for(i = 0; i < DirSecCut; i++)
768 4406 0100 movlb __Lparam shr (0+8)
769 4408 6BED clrf (?a_GetEmptyDIR+4)^(__Lparam& (0+65280))
770 440A 6BEE clrf (?a_GetEmptyDIR+5)^(__Lparam& (0+65280))
771 440C D00F goto l35
772 ;fat16.c: 171: return ID;
773 440E l39:
774 ;fat16.c: 174: ID++;
775 440E 0100 movlb __Lparam shr (0+8)
776 4410 2BEB incf (?a_GetEmptyDIR+2)^(__Lparam& (0+65280)),f
777 4412 0E00 movlw 0
778 4414 23EC addwfc (?a_GetEmptyDIR+3)^(__Lparam& (0+65280))
+ ,f
779 ;fat16.c: 175: }
780 4416 2AF3 incf prodl,f,c
781 4418 22F4 addwfc prodh,f,c
782 441A 5CF4 subwf prodh,w,c
783 441C 0E10 movlw 16
784 441E B4D8 btfsc status,2,c
785 4420 5CF3 subwf prodl,w,c
786 4422 A0D8 btfss status,0,c
787 4424 D020 goto l36
788 ;fat16.c: 176: }
789 4426 2BED incf (?a_GetEmptyDIR+4)^(__Lparam& (0+65280)),f
790 4428 0E00 movlw 0
791 442A 23EE addwfc (?a_GetEmptyDIR+5)^(__Lparam& (0+65280))
+ ,f
792 442C l35:
793 442C 0100 movlb __Lparam shr (0+8)
794 442E 51EA movf (?a_GetEmptyDIR+1)^(__Lparam& (0+65280)),w
795 4430 5DEE subwf (?a_GetEmptyDIR+5)^(__Lparam& (0+65280)),
+ w
796 4432 E102 bnz u135
797 4434 51E9 movf ?a_GetEmptyDIR^(__Lparam& (0+65280)),w
798 4436 5DED subwf (?a_GetEmptyDIR+4)^(__Lparam& (0+65280)),
+ w
799 4438 u135:
800 4438 B0D8 btfsc status,0,c
801 443A D044 goto l33
802 ;fat16.c: 162: {
803 ;fat16.c: 164: sl811_read_sector(DirStart + i, b
+ uffer);
804 443C 0100 movlb __Lparam shr (0+8)
805 443E 51ED movf (?a_GetEmptyDIR+4)^(__Lparam& (0+65280)),w
806 4440 25EF addwf (?a_GetEmptyDIR+6)^(__Lparam& (0+65280)),
+ w
807 4442 6FF3 movwf ?_sl811_read_sector^(__Lparam& (0+65280))
808 4444 51EE movf (?a_GetEmptyDIR+5)^(__Lparam& (0+65280)),w
809 4446 21F0 addwfc (?a_GetEmptyDIR+7)^(__Lparam& (0+65280))
+ ,w
810 4448 6FF4 movwf (?_sl811_read_sector^(__Lparam& (0+65280)
+ )+1)
811 444A 0E00 movlw 0
812 444C 21F1 addwfc (?a_GetEmptyDIR+8)^(__Lparam& (0+65280))
+ ,w
813 444E 6FF5 movwf (?_sl811_read_sector^(__Lparam& (0+65280)
+ )+2)
814 4450 0E00 movlw 0
815 4452 21F2 addwfc (?a_GetEmptyDIR+9)^(__Lparam& (0+65280))
+ ,w
816 4454 6FF6 movwf (?_sl811_read_sector^(__Lparam& (0+65280)
+ )+3)
817 4456 0EAD movlw low _buffer
818 4458 6FF7 movwf (?_sl811_read_sector+4)^(__Lparam& (0+652
+ 80))
819 445A 0E03 movlw high _buffer
820 445C 6FF8 movwf (?_sl811_read_sector+5)^(__Lparam& (0+652
+ 80))
821 445E EC5E F00A call _sl811_read_sector ;wreg free
822 ;fat16.c: 165: for(m = 0; m < 16; m++)
823 4462 6AF3 clrf prodl,c
824 4464 6AF4 clrf prodh,c
825 4466 l36:
826 ;fat16.c: 166: {
827 ;fat16.c: 167: if((buffer[m * 32] == 0) || (buff
+ er[m * 32] == 0xe5))
828 4466 CFF3 F000 movff prodl,btemp
829 446A CFF4 F001 movff prodh,btemp+1
830 446E 0E05 movlw 5
831 4470 u75:
832 4470 90D8 bcf status,0,c
833 4472 3600 rlcf btemp,f
834 4474 3601 rlcf btemp+1,f
835 4476 2EE8 decfsz wreg,f,c
836 4478 D7FB goto u75
837 447A 0EAD movlw low _buffer
838 447C 2400 addwf btemp,w
839 447E 6EE9 movwf fsr0l,c
840 4480 0E03 movlw high _buffer
841 4482 2001 addwfc btemp+1,w
842 4484 6EEA movwf fsr0h
843 4486 50EF movf indf0,w,c
844 4488 B4D8 btfsc status,2,c
845 448A D014 goto u110
846 448C CFF3 F000 movff prodl,btemp
847 4490 CFF4 F001 movff prodh,btemp+1
848 4494 0E05 movlw 5
849 4496 u95:
850 4496 90D8 bcf status,0,c
851 4498 3600 rlcf btemp,f
852 449A 3601 rlcf btemp+1,f
853 449C 2EE8 decfsz wreg,f,c
854 449E D7FB goto u95
855 44A0 0EAD movlw low _buffer
856 44A2 2400 addwf btemp,w
857 44A4 6EE9 movwf fsr0l,c
858 44A6 0E03 movlw high _buffer
859 44A8 2001 addwfc btemp+1,w
860 44AA 6EEA movwf fsr0h
861 44AC 50EF movf indf0,w,c
862 44AE 0AE5 xorlw -27
863 44B0 A4D8 btfss status,2,c
864 44B2 D7AD goto l39
865 44B4 u110:
866 ;fat16.c: 168: {
867 44B4 C0ED F035 movff ?a_GetEmptyDIR+4,_ClusOfFileDir
868 44B8 C0EE F036 movff ?a_GetEmptyDIR+5,_ClusOfFileDir+1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -