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

📄 fat.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
  000f8	e0000392	 mul         r0, r2, r3
  000fc	e59d3000	 ldr         r3, [sp]
  00100	e283100b	 add         r1, r3, #0xB
  00104	e5d13001	 ldrb        r3, [r1, #1]
  00108	e1a03403	 mov         r3, r3, lsl #8
  0010c	e1a02803	 mov         r2, r3, lsl #16
  00110	e1a02822	 mov         r2, r2, lsr #16
  00114	e5d13000	 ldrb        r3, [r1]
  00118	e1833002	 orr         r3, r3, r2
  0011c	e2433001	 sub         r3, r3, #1
  00120	e080e003	 add         lr, r0, r3
  00124	e59d3000	 ldr         r3, [sp]
  00128	e283100b	 add         r1, r3, #0xB
  0012c	e5d13001	 ldrb        r3, [r1, #1]
  00130	e1a03403	 mov         r3, r3, lsl #8
  00134	e1a02803	 mov         r2, r3, lsl #16
  00138	e1a02822	 mov         r2, r2, lsr #16
  0013c	e5d13000	 ldrb        r3, [r1]
  00140	e1833002	 orr         r3, r3, r2
  00144	e1a00003	 mov         r0, r3
  00148	e1a0100e	 mov         r1, lr
  0014c	eb000000	 bl          __rt_sdiv
  00150	e59d323c	 ldr         r3, [sp, #0x23C]
  00154	e0803003	 add         r3, r0, r3
  00158	e59f1778	 ldr         r1, [pc, #0x778]
  0015c	e5c13025	 strb        r3, [r1, #0x25]
  00160	e1a02423	 mov         r2, r3, lsr #8
  00164	e1a03002	 mov         r3, r2
  00168	e5c13026	 strb        r3, [r1, #0x26]
  0016c	e1a02422	 mov         r2, r2, lsr #8
  00170	e1a03002	 mov         r3, r2
  00174	e5c13027	 strb        r3, [r1, #0x27]
  00178	e1a03422	 mov         r3, r2, lsr #8
  0017c	e5c13028	 strb        r3, [r1, #0x28]

; 639  :     
; 640  :     // Determine size of FAT tables...
; 641  :     if ( pBPB->SectsPerFAT16 != 0 )

  00180	e59d3000	 ldr         r3, [sp]
  00184	e2831016	 add         r1, r3, #0x16
  00188	e5d13001	 ldrb        r3, [r1, #1]
  0018c	e1a03403	 mov         r3, r3, lsl #8
  00190	e1a02803	 mov         r2, r3, lsl #16
  00194	e1a02822	 mov         r2, r2, lsr #16
  00198	e5d13000	 ldrb        r3, [r1]
  0019c	e1833002	 orr         r3, r3, r2
  001a0	e3530000	 cmp         r3, #0
  001a4	0a000012	 beq         |$L38329|

; 642  :     {
; 643  :         g_FATParms.SectorsPerFAT = pBPB->SectsPerFAT16;

  001a8	e59d3000	 ldr         r3, [sp]
  001ac	e2831016	 add         r1, r3, #0x16
  001b0	e5d13001	 ldrb        r3, [r1, #1]
  001b4	e1a03403	 mov         r3, r3, lsl #8
  001b8	e1a02803	 mov         r2, r3, lsl #16
  001bc	e1a02822	 mov         r2, r2, lsr #16
  001c0	e5d13000	 ldrb        r3, [r1]
  001c4	e1833002	 orr         r3, r3, r2
  001c8	e59f1708	 ldr         r1, [pc, #0x708]
  001cc	e5c13029	 strb        r3, [r1, #0x29]
  001d0	e1a02423	 mov         r2, r3, lsr #8
  001d4	e1a03002	 mov         r3, r2
  001d8	e5c1302a	 strb        r3, [r1, #0x2A]
  001dc	e1a02422	 mov         r2, r2, lsr #8
  001e0	e1a03002	 mov         r3, r2
  001e4	e5c1302b	 strb        r3, [r1, #0x2B]
  001e8	e1a03422	 mov         r3, r2, lsr #8
  001ec	e5c1302c	 strb        r3, [r1, #0x2C]

; 644  :     }
; 645  :     else

  001f0	ea000014	 b           |$L38330|
  001f4		 |$L38329|

; 646  :     {
; 647  :         // it is beginning to look a lot like FAT32!!!
; 648  :         // but we are not done yet!
; 649  :         g_FATParms.SectorsPerFAT = pFAT32Extension->SectsPerFAT32;

  001f4	e59d121c	 ldr         r1, [sp, #0x21C]
  001f8	e5d13003	 ldrb        r3, [r1, #3]
  001fc	e1a02403	 mov         r2, r3, lsl #8
  00200	e5d13002	 ldrb        r3, [r1, #2]
  00204	e1833002	 orr         r3, r3, r2
  00208	e1a02403	 mov         r2, r3, lsl #8
  0020c	e5d13001	 ldrb        r3, [r1, #1]
  00210	e1833002	 orr         r3, r3, r2
  00214	e1a02403	 mov         r2, r3, lsl #8
  00218	e5d13000	 ldrb        r3, [r1]
  0021c	e1833002	 orr         r3, r3, r2
  00220	e59f16b0	 ldr         r1, [pc, #0x6B0]
  00224	e5c13029	 strb        r3, [r1, #0x29]
  00228	e1a02423	 mov         r2, r3, lsr #8
  0022c	e1a03002	 mov         r3, r2
  00230	e5c1302a	 strb        r3, [r1, #0x2A]
  00234	e1a02422	 mov         r2, r2, lsr #8
  00238	e1a03002	 mov         r3, r2
  0023c	e5c1302b	 strb        r3, [r1, #0x2B]
  00240	e1a03422	 mov         r3, r2, lsr #8
  00244	e5c1302c	 strb        r3, [r1, #0x2C]
  00248		 |$L38330|

; 650  :     }
; 651  :     
; 652  :     if ( pBPB->TotalSectors16 != 0 )

  00248	e59d3000	 ldr         r3, [sp]
  0024c	e2831013	 add         r1, r3, #0x13
  00250	e5d13001	 ldrb        r3, [r1, #1]
  00254	e1a03403	 mov         r3, r3, lsl #8
  00258	e1a02803	 mov         r2, r3, lsl #16
  0025c	e1a02822	 mov         r2, r2, lsr #16
  00260	e5d13000	 ldrb        r3, [r1]
  00264	e1833002	 orr         r3, r3, r2
  00268	e3530000	 cmp         r3, #0
  0026c	0a000012	 beq         |$L38331|

; 653  :     {
; 654  :         g_FATParms.TotalSectors = pBPB->TotalSectors16;

  00270	e59d3000	 ldr         r3, [sp]
  00274	e2831013	 add         r1, r3, #0x13
  00278	e5d13001	 ldrb        r3, [r1, #1]
  0027c	e1a03403	 mov         r3, r3, lsl #8
  00280	e1a02803	 mov         r2, r3, lsl #16
  00284	e1a02822	 mov         r2, r2, lsr #16
  00288	e5d13000	 ldrb        r3, [r1]
  0028c	e1833002	 orr         r3, r3, r2
  00290	e59f1640	 ldr         r1, [pc, #0x640]
  00294	e5c1302d	 strb        r3, [r1, #0x2D]
  00298	e1a02423	 mov         r2, r3, lsr #8
  0029c	e1a03002	 mov         r3, r2
  002a0	e5c1302e	 strb        r3, [r1, #0x2E]
  002a4	e1a02422	 mov         r2, r2, lsr #8
  002a8	e1a03002	 mov         r3, r2
  002ac	e5c1302f	 strb        r3, [r1, #0x2F]
  002b0	e1a03422	 mov         r3, r2, lsr #8
  002b4	e5c13030	 strb        r3, [r1, #0x30]

; 655  :     }
; 656  :     else

  002b8	ea000015	 b           |$L38332|
  002bc		 |$L38331|

; 657  :     {
; 658  :         g_FATParms.TotalSectors = pBPB->TotalSectors32;

  002bc	e59d3000	 ldr         r3, [sp]
  002c0	e2831020	 add         r1, r3, #0x20
  002c4	e5d13003	 ldrb        r3, [r1, #3]
  002c8	e1a02403	 mov         r2, r3, lsl #8
  002cc	e5d13002	 ldrb        r3, [r1, #2]
  002d0	e1833002	 orr         r3, r3, r2
  002d4	e1a02403	 mov         r2, r3, lsl #8
  002d8	e5d13001	 ldrb        r3, [r1, #1]
  002dc	e1833002	 orr         r3, r3, r2
  002e0	e1a02403	 mov         r2, r3, lsl #8
  002e4	e5d13000	 ldrb        r3, [r1]
  002e8	e1833002	 orr         r3, r3, r2
  002ec	e59f15e4	 ldr         r1, [pc, #0x5E4]
  002f0	e5c1302d	 strb        r3, [r1, #0x2D]
  002f4	e1a02423	 mov         r2, r3, lsr #8
  002f8	e1a03002	 mov         r3, r2
  002fc	e5c1302e	 strb        r3, [r1, #0x2E]
  00300	e1a02422	 mov         r2, r2, lsr #8
  00304	e1a03002	 mov         r3, r2
  00308	e5c1302f	 strb        r3, [r1, #0x2F]
  0030c	e1a03422	 mov         r3, r2, lsr #8
  00310	e5c13030	 strb        r3, [r1, #0x30]
  00314		 |$L38332|

; 659  :     }
; 660  :     
; 661  : 
; 662  :     g_FATParms.NumFATs = pBPB->NumFATs;

  00314	e59d3000	 ldr         r3, [sp]
  00318	e2833010	 add         r3, r3, #0x10
  0031c	e5d32000	 ldrb        r2, [r3]
  00320	e59f35b0	 ldr         r3, [pc, #0x5B0]
  00324	e5c32015	 strb        r2, [r3, #0x15]

; 663  :     g_FATParms.ReservedSects = pBPB->RsvdSects;

  00328	e59d3000	 ldr         r3, [sp]
  0032c	e283100e	 add         r1, r3, #0xE
  00330	e5d13001	 ldrb        r3, [r1, #1]
  00334	e1a03403	 mov         r3, r3, lsl #8
  00338	e1a02803	 mov         r2, r3, lsl #16
  0033c	e1a02822	 mov         r2, r2, lsr #16
  00340	e5d13000	 ldrb        r3, [r1]
  00344	e1832002	 orr         r2, r3, r2
  00348	e59f3588	 ldr         r3, [pc, #0x588]
  0034c	e1c321b8	 strh        r2, [r3, #0x18]

; 664  :     g_FATParms.NumHiddenSectors = pBPB->NumHiddenSectors;

  00350	e59d3000	 ldr         r3, [sp]
  00354	e283101c	 add         r1, r3, #0x1C
  00358	e5d13003	 ldrb        r3, [r1, #3]
  0035c	e1a02403	 mov         r2, r3, lsl #8
  00360	e5d13002	 ldrb        r3, [r1, #2]
  00364	e1833002	 orr         r3, r3, r2
  00368	e1a02403	 mov         r2, r3, lsl #8
  0036c	e5d13001	 ldrb        r3, [r1, #1]
  00370	e1833002	 orr         r3, r3, r2
  00374	e1a02403	 mov         r2, r3, lsl #8
  00378	e5d13000	 ldrb        r3, [r1]
  0037c	e1833002	 orr         r3, r3, r2
  00380	e59f2550	 ldr         r2, [pc, #0x550]
  00384	e1c231ba	 strh        r3, [r2, #0x1A]
  00388	e1a03823	 mov         r3, r3, lsr #16
  0038c	e1c231bc	 strh        r3, [r2, #0x1C]

; 665  :     
; 666  : 
; 667  :     g_FATParms.DataRegionSectors = 
; 668  :         g_FATParms.TotalSectors - 
; 669  :           (g_FATParms.ReservedSects + (g_FATParms.NumFATs * g_FATParms.SectorsPerFAT) + 
; 670  :            g_FATParms.RootDirSectors);

  00390	e59f3540	 ldr         r3, [pc, #0x540]
  00394	e1d3e1b8	 ldrh        lr, [r3, #0x18]
  00398	e59f3538	 ldr         r3, [pc, #0x538]
  0039c	e5d30015	 ldrb        r0, [r3, #0x15]
  003a0	e59f1530	 ldr         r1, [pc, #0x530]
  003a4	e5d1302c	 ldrb        r3, [r1, #0x2C]
  003a8	e1a02403	 mov         r2, r3, lsl #8
  003ac	e5d1302b	 ldrb        r3, [r1, #0x2B]
  003b0	e1833002	 orr         r3, r3, r2
  003b4	e1a02403	 mov         r2, r3, lsl #8
  003b8	e5d1302a	 ldrb        r3, [r1, #0x2A]
  003bc	e1833002	 orr         r3, r3, r2
  003c0	e1a02403	 mov         r2, r3, lsl #8
  003c4	e5d13029	 ldrb        r3, [r1, #0x29]
  003c8	e1833002	 orr         r3, r3, r2
  003cc	e0030390	 mul         r3, r0, r3
  003d0	e08e0003	 add         r0, lr, r3
  003d4	e59f14fc	 ldr         r1, [pc, #0x4FC]
  003d8	e5d13028	 ldrb        r3, [r1, #0x28]
  003dc	e1a02403	 mov         r2, r3, lsl #8
  003e0	e5d13027	 ldrb        r3, [r1, #0x27]
  003e4	e1833002	 orr         r3, r3, r2
  003e8	e1a02403	 mov         r2, r3, lsl #8
  003ec	e5d13026	 ldrb        r3, [r1, #0x26]
  003f0	e1833002	 orr         r3, r3, r2
  003f4	e1a02403	 mov         r2, r3, lsl #8
  003f8	e5d13025	 ldrb        r3, [r1, #0x25]
  003fc	e1833002	 orr         r3, r3, r2
  00400	e0800003	 add         r0, r0, r3
  00404	e59f14cc	 ldr         r1, [pc, #0x4CC]
  00408	e5d13030	 ldrb        r3, [r1, #0x30]
  0040c	e1a02403	 mov         r2, r3, lsl #8
  00410	e5d1302f	 ldrb        r3, [r1, #0x2F]
  00414	e1833002	 orr         r3, r3, r2
  00418	e1a02403	 mov         r2, r3, lsl #8
  0041c	e5d1302e	 ldrb        r3, [r1, #0x2E]
  00420	e1833002	 orr         r3, r3, r2
  00424	e1a02403	 mov         r2, r3, lsl #8
  00428	e5d1302d	 ldrb        r3, [r1, #0x2D]
  0042c	e1833002	 orr         r3, r3, r2
  00430	e0433000	 sub         r3, r3, r0
  00434	e59f149c	 ldr         r1, [pc, #0x49C]
  00438	e5c13031	 strb        r3, [r1, #0x31]
  0043c	e1a02423	 mov         r2, r3, lsr #8
  00440	e1a03002	 mov         r3, r2
  00444	e5c13032	 strb        r3, [r1, #0x32]
  00448	e1a02422	 mov         r2, r2, lsr #8
  0044c	e1a03002	 mov         r3, r2
  00450	e5c13033	 strb        r3, [r1, #0x33]
  00454	e1a03422	 mov         r3, r2, lsr #8
  00458	e5c13034	 strb        r3, [r1, #0x34]

; 671  :            
; 672  : 	if( !pBPB->SectsPerClust )

  0045c	e59d3000	 ldr         r3, [sp]
  00460	e283300d	 add         r3, r3, #0xD
  00464	e5d33000	 ldrb        r3, [r3]
  00468	e3530000	 cmp         r3, #0
  0046c	1a000002	 bne         |$L38333|

; 673  : 		return(FALSE);

  00470	e3a03000	 mov         r3, #0
  00474	e58d3224	 str         r3, [sp, #0x224]
  00478	ea000111	 b           |$L38312|
  0047c		 |$L38333|

; 674  :     // It is okay that the following calculation rounds down!
; 675  :     g_FATParms.CountOfClusters = g_FATParms.DataRegionSectors / pBPB->SectsPerClust;

  0047c	e59d3000	 ldr         r3, [sp]
  00480	e283300d	 add         r3, r3, #0xD
  00484	e5d30000	 ldrb        r0, [r3]
  00488	e59f1448	 ldr         r1, [pc, #0x448]
  0048c	e5d13034	 ldrb        r3, [r1, #0x34]
  00490	e1a02403	 mov         r2, r3, lsl #8
  00494	e5d13033	 ldrb        r3, [r1, #0x33]
  00498	e1833002	 orr         r3, r3, r2
  0049c	e1a02403	 mov         r2, r3, lsl #8
  004a0	e5d13032	 ldrb        r3, [r1, #0x32]
  004a4	e1833002	 orr         r3, r3, r2
  004a8	e1a02403	 mov         r2, r3, lsl #8
  004ac	e5d13031	 ldrb        r3, [r1, #0x31]
  004b0	e1831002	 orr         r1, r3, r2
  004b4	eb000000	 bl          __rt_udiv
  004b8	e59f1418	 ldr         r1, [pc, #0x418]
  004bc	e1a03000	 mov         r3, r0
  004c0	e5c13035	 strb        r3, [r1, #0x35]
  004c4	e1a02423	 mov         r2, r3, lsr #8
  004c8	e1a03002	 mov         r3, r2
  004cc	e5c13036	 strb        r3, [r1, #0x36]
  004d0	e1a02422	 mov         r2, r2, lsr #8
  004d4	e1a03002	 mov         r3, r2
  004d8	e5c13037	 strb        r3, [r1, #0x37]
  004dc	e1a03422	 mov         r3, r2, lsr #8
  004e0	e5c13038	 strb        r3, [r1, #0x38]

; 676  :     
; 677  :     if ( g_FATParms.CountOfClusters < 4085 )

  004e4	e59f13ec	 ldr         r1, [pc, #0x3EC]
  004e8	e5d13038	 ldrb        r3, [r1, #0x38]
  004ec	e1a02403	 mov         r2, r3, lsl #8
  004f0	e5d13037	 ldrb        r3, [r1, #0x37]
  004f4	e1833002	 orr         r3, r3, r2
  004f8	e1a02403	 mov         r2, r3, lsl #8
  004fc	e5d13036	 ldrb        r3, [r1, #0x36]
  00500	e1833002	 orr         r3, r3, r2
  00504	e1a02403	 mov         r2, r3, lsl #8
  00508	e5d13035	 ldrb        r3, [r1, #0x35]
  0050c	e1832002	 orr         r2, r3, r2
  00510	e3a03eff	 mov         r3, #0xFF, 28
  00514	e3833005	 orr         r3, r3, #5
  00518	e1520003	 cmp         r2, r3
  0051c	2a000003	 bcs         |$L38334|

; 678  :     {
; 679  :         g_FATParms.FATType = FAT_12;

  00520	e59f23b0	 ldr         r2, [pc, #0x3B0]
  00524	e3a03000	 mov         r3, #0
  00528	e5823000	 str         r3, [r2]

; 680  :     }
; 681  :     else if ( g_FATParms.CountOfClusters < 65525 )

  0052c	ea000015	 b           |$L38335|
  00530		 |$L38334|
  00530	e59f13a0	 ldr         r1, [pc, #0x3A0]
  00534	e5d13038	 ldrb        r3, [r1, #0x38]
  00538	e1a02403	 mov         r2, r3, lsl #8
  0053c	e5d13037	 ldrb        r3, [r1, #0x37]
  00540	e1833002	 orr         r3, r3, r2
  00544	e1a02403	 mov         r2, r3, lsl #8
  00548	e5d13036	 ldrb        r3, [r1, #0x36]
  0054c	e1833002	 orr         r3, r3, r2
  00550	e1a02403	 mov         r2, r3, lsl #8
  00554	e5d13035	 ldrb        r3, [r1, #0x35]
  00558	e1832002	 orr         r2, r3, r2
  0055c	e3a03cff	 mov         r3, #0xFF, 24
  00560	e38330f5	 orr         r3, r3, #0xF5
  00564	e1520003	 cmp         r2, r3
  00568	2a000003	 bcs         |$L38336|

; 682  :     {
; 683  :         g_FATParms.FATType = FAT_16;

  0056c	e59f2364	 ldr         r2, [pc, #0x364]
  00570	e3a03001	 mov         r3, #1
  00574	e5823000	 str         r3, [r2]

; 684  :     }
; 685  :     else

  00578	ea000002	 b           |$L38337|
  0057c		 |$L38336|

⌨️ 快捷键说明

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