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

📄 fat.lis

📁 /*** *** *** *** *** *** *** *** *** *** / /* MP3 Code for M32L */ /* By pasyong
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 015A 80921200          sts _FirstDataSector+2,R8
 015E                   .dbline 75
 015E           ;       }
 015E 2FC0              xjmp L10
 0160           L9:
 0160                   .dbline 77
 0160           ;       else
 0160           ;       {
 0160                   .dbline 79
 0160           ;               // bpbFATsecs是0,为FAT32,FAT表所占的扇区数在bpbBigFATsecs里
 0160           ;               FirstDataSector += bpb->bpbResSectors + bpb->bpbFATs * bpb->bpbBigFATsecs;
 0160 F501              movw R30,R10
 0162 218C              ldd R2,z+25
 0164 328C              ldd R3,z+26
 0166 438C              ldd R4,z+27
 0168 548C              ldd R5,z+28
 016A F501              movw R30,R10
 016C 6580              ldd R6,z+5
 016E 7724              clr R7
 0170 8824              clr R8
 0172 9924              clr R9
 0174 5A92              st -y,R5
 0176 4A92              st -y,R4
 0178 3A92              st -y,R3
 017A 2A92              st -y,R2
 017C 8301              movw R16,R6
 017E 9401              movw R18,R8
 0180 0E940000          xcall empy32u
 0184 F501              movw R30,R10
 0186 2380              ldd R2,z+3
 0188 3480              ldd R3,z+4
 018A 4424              clr R4
 018C 5524              clr R5
 018E 200E              add R2,R16
 0190 311E              adc R3,R17
 0192 421E              adc R4,R18
 0194 531E              adc R5,R19
 0196 80901200          lds R8,_FirstDataSector+2
 019A 90901300          lds R9,_FirstDataSector+2+1
 019E 60901000          lds R6,_FirstDataSector
 01A2 70901100          lds R7,_FirstDataSector+1
 01A6 620C              add R6,R2
 01A8 731C              adc R7,R3
 01AA 841C              adc R8,R4
 01AC 951C              adc R9,R5
 01AE 70921100          sts _FirstDataSector+1,R7
 01B2 60921000          sts _FirstDataSector,R6
 01B6 90921300          sts _FirstDataSector+2+1,R9
 01BA 80921200          sts _FirstDataSector+2,R8
 01BE                   .dbline 80
 01BE           ;       }
 01BE           L10:
 01BE                   .dbline 82
 01BE           ;       
 01BE           ;       SectorsPerCluster       = bpb->bpbSecPerClust;
 01BE F501              movw R30,R10
 01C0 2280              ldd R2,z+2
 01C2 3324              clr R3
 01C4 30920D00          sts _SectorsPerCluster+1,R3
 01C8 20920C00          sts _SectorsPerCluster,R2
 01CC                   .dbline 83
 01CC           ;       BytesPerSector          = bpb->bpbBytesPerSec;
 01CC F501              movw R30,R10
 01CE 2080              ldd R2,z+0
 01D0 3180              ldd R3,z+1
 01D2 30920F00          sts _BytesPerSector+1,R3
 01D6 20920E00          sts _BytesPerSector,R2
 01DA                   .dbline 84
 01DA           ;       FirstFATSector          = bpb->bpbResSectors + PartInfo.prStartLBA;
 01DA 40901F00          lds R4,_PartInfo+8+2
 01DE 50902000          lds R5,_PartInfo+8+2+1
 01E2 20901D00          lds R2,_PartInfo+8
 01E6 30901E00          lds R3,_PartInfo+8+1
 01EA 6380              ldd R6,z+3
 01EC 7480              ldd R7,z+4
 01EE 8824              clr R8
 01F0 9924              clr R9
 01F2 620C              add R6,R2
 01F4 731C              adc R7,R3
 01F6 841C              adc R8,R4
 01F8 951C              adc R9,R5
 01FA 70920900          sts _FirstFATSector+1,R7
 01FE 60920800          sts _FirstFATSector,R6
 0202 90920B00          sts _FirstFATSector+2+1,R9
 0206 80920A00          sts _FirstFATSector+2,R8
 020A                   .dbline 86
 020A           ; //查询SD卡文件系统分区类型
 020A           ;       switch (PartInfo.prPartType)
 020A C0901900          lds R12,_PartInfo+4
 020E DD24              clr R13
 0210 C601              movw R24,R12
 0212 8430              cpi R24,4
 0214 E0E0              ldi R30,0
 0216 9E07              cpc R25,R30
 0218 B1F0              breq L16
 021A 8630              cpi R24,6
 021C E0E0              ldi R30,0
 021E 9E07              cpc R25,R30
 0220 91F0              breq L16
 0222 8430              cpi R24,4
 0224 E0E0              ldi R30,0
 0226 9E07              cpc R25,R30
 0228 74F1              brlt L13
 022A           L18:
 022A C601              movw R24,R12
 022C 8B30              cpi R24,11
 022E E0E0              ldi R30,0
 0230 9E07              cpc R25,R30
 0232 C9F0              breq L17
 0234 8C30              cpi R24,12
 0236 E0E0              ldi R30,0
 0238 9E07              cpc R25,R30
 023A A9F0              breq L17
 023C 8E30              cpi R24,14
 023E E0E0              ldi R30,0
 0240 9E07              cpc R25,R30
 0242 09F0              breq L16
 0244 20C0              xjmp L13
 0246           X1:
 0246                   .dbline 87
 0246           ;       {
 0246           L16:
 0246                   .dbline 92
 0246           ;               case PART_TYPE_DOSFAT16:
 0246           ;               case PART_TYPE_FAT16: 
 0246           ;               case PART_TYPE_FAT16LBA:
 0246           ;                       // 第一个目录扇区号为2
 0246           ;                       FirstDirSector  = CLUST_FIRST;
 0246 42E0              ldi R20,2
 0248 50E0              ldi R21,0
 024A 60E0              ldi R22,0
 024C 70E0              ldi R23,0
 024E 50930500          sts _FirstDirSector+1,R21
 0252 40930400          sts _FirstDirSector,R20
 0256 70930700          sts _FirstDirSector+2+1,R23
 025A 60930600          sts _FirstDirSector+2,R22
 025E                   .dbline 94
 025E           ;                       //FirstDataSector += (bpb->bpbRootDirEnts)/DIRENTRIES_PER_SECTOR;
 025E           ;                       Fat32Enabled = 0;
 025E 2224              clr R2
 0260 20921400          sts _Fat32Enabled,R2
 0264                   .dbline 96
 0264           ;                       
 0264           ;                       break;
 0264 10C0              xjmp L13
 0266           L17:
 0266                   .dbline 100
 0266           ;               case PART_TYPE_FAT32LBA:
 0266           ;               case PART_TYPE_FAT32:
 0266           ;                       
 0266           ;                       FirstDirSector = bpb->bpbRootClust;
 0266 F501              movw R30,R10
 0268 21A0              ldd R2,z+33
 026A 32A0              ldd R3,z+34
 026C 43A0              ldd R4,z+35
 026E 54A0              ldd R5,z+36
 0270 30920500          sts _FirstDirSector+1,R3
 0274 20920400          sts _FirstDirSector,R2
 0278 50920700          sts _FirstDirSector+2+1,R5
 027C 40920600          sts _FirstDirSector+2,R4
 0280                   .dbline 101
 0280           ;                       Fat32Enabled = 1;
 0280 81E0              ldi R24,1
 0282 80931400          sts _Fat32Enabled,R24
 0286                   .dbline 102
 0286           ;                       break;
 0286                   .dbline 103
 0286           ;               default:break;
 0286           L13:
 0286                   .dbline 107
 0286           ;                       //return 1;
 0286           ;       }
 0286           ; //查询SD卡文件系统信息
 0286           ;       switch (PartInfo.prPartType)
 0286 A0901900          lds R10,_PartInfo+4
 028A BB24              clr R11
 028C C501              movw R24,R10
 028E 8430              cpi R24,4
 0290 E0E0              ldi R30,0
 0292 9E07              cpc R25,R30
 0294 B9F0              breq L23
 0296 8630              cpi R24,6
 0298 E0E0              ldi R30,0
 029A 9E07              cpc R25,R30
 029C E1F0              breq L25
 029E 8430              cpi R24,4
 02A0 E0E0              ldi R30,0
 02A2 9E07              cpc R25,R30
 02A4 0CF4              brge X3
 02A6 3BC0              xjmp L19
 02A8           X3:
 02A8           L34:
 02A8 C501              movw R24,R10
 02AA 8B30              cpi R24,11
 02AC E0E0              ldi R30,0
 02AE 9E07              cpc R25,R30
 02B0 69F1              breq L31
 02B2 8C30              cpi R24,12
 02B4 E0E0              ldi R30,0
 02B6 9E07              cpc R25,R30
 02B8 01F1              breq L29
 02BA 8E30              cpi R24,14
 02BC E0E0              ldi R30,0
 02BE 9E07              cpc R25,R30
 02C0 99F0              breq L27
 02C2 2DC0              xjmp L19
 02C4           X2:
 02C4                   .dbline 108
 02C4           ;       {
 02C4           L23:
 02C4                   .dbline 110
 02C4           ;               case PART_TYPE_DOSFAT16:
 02C4           ;                               LCD_write_english_string(0,0,"DOSFAT 16");
 02C4 80E0              ldi R24,<L24
 02C6 90E0              ldi R25,>L24
 02C8 9983              std y+1,R25
 02CA 8883              std y+0,R24
 02CC 2227              clr R18
 02CE 0027              clr R16
 02D0 0E940000          xcall _LCD_write_english_string
 02D4                   .dbline 111
 02D4           ;                               break;
 02D4 2CC0              xjmp L20
 02D6           L25:
 02D6                   .dbline 113
 02D6           ;               case PART_TYPE_FAT16:
 02D6           ;                               LCD_write_english_string(0,0,"FAT16 ");
 02D6 80E0              ldi R24,<L26
 02D8 90E0              ldi R25,>L26
 02DA 9983              std y+1,R25
 02DC 8883              std y+0,R24
 02DE 2227              clr R18
 02E0 0027              clr R16
 02E2 0E940000          xcall _LCD_write_english_string
 02E6                   .dbline 114
 02E6           ;                               break;
 02E6 23C0              xjmp L20
 02E8           L27:
 02E8                   .dbline 116
 02E8           ;               case PART_TYPE_FAT16LBA:
 02E8           ;                               LCD_write_english_string(0,0,"FAT16 LBA");
 02E8 80E0              ldi R24,<L28
 02EA 90E0              ldi R25,>L28
 02EC 9983              std y+1,R25
 02EE 8883              std y+0,R24
 02F0 2227              clr R18
 02F2 0027              clr R16
 02F4 0E940000          xcall _LCD_write_english_string
 02F8                   .dbline 117
 02F8           ;                               break;
 02F8 1AC0              xjmp L20
 02FA           L29:
 02FA                   .dbline 119
 02FA           ;               case PART_TYPE_FAT32LBA:
 02FA           ;                               LCD_write_english_string(0,0,"FAT32 LBA");
 02FA 80E0              ldi R24,<L30
 02FC 90E0              ldi R25,>L30
 02FE 9983              std y+1,R25
 0300 8883              std y+0,R24
 0302 2227              clr R18
 0304 0027              clr R16
 0306 0E940000          xcall _LCD_write_english_string
 030A                   .dbline 120
 030A           ;                               break;
 030A 11C0              xjmp L20
 030C           L31:
 030C                   .dbline 122
 030C           ;               case PART_TYPE_FAT32:
 030C           ;                               LCD_write_english_string(0,0,"FAT32");
 030C 80E0              ldi R24,<L32
 030E 90E0              ldi R25,>L32
 0310 9983              std y+1,R25
 0312 8883              std y+0,R24
 0314 2227              clr R18
 0316 0027              clr R16
 0318 0E940000          xcall _LCD_write_english_string
 031C                   .dbline 123
 031C           ;                               break;
 031C 08C0              xjmp L20
 031E           L19:
 031E                   .dbline 125
 031E           ;               default:
 031E           ;                               LCD_write_english_string(0,0,"No Partition!");
 031E 80E0              ldi R24,<L33
 0320 90E0              ldi R25,>L33
 0322 9983              std y+1,R25
 0324 8883              std y+0,R24
 0326 2227              clr R18
 0328 0027              clr R16
 032A 0E940000          xcall _LCD_write_english_string
 032E                   .dbline 126
 032E           ;                               break;
 032E           L20:
 032E                   .dbline 129
 032E           ;       }
 032E           ; //显示磁盘容量
 032E           ;   data=PartInfo.prSize>>11;
 032E 8BE0              ldi R24,11
 0330 90E0              ldi R25,0
 0332 40902300          lds R4,_PartInfo+12+2
 0336 50902400          lds R5,_PartInfo+12+2+1
 033A 20902100          lds R2,_PartInfo+12
 033E 30902200          lds R3,_PartInfo+12+1
 0342 8A93              st -y,R24
 0344 8101              movw R16,R2
 0346 9201              movw R18,R4
 0348 0E940000          xcall lsr32
 034C 5801              movw R10,R16
 034E                   .dbline 130
 034E           ;     LCD_set_XY(56,0);

⌨️ 快捷键说明

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