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

📄 drive.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 3 页
字号:
	DCW	0x10ec
	DCW	0x8029
	DCD	0xc0f0
	DCB	0x1
	DCB	0x0
	DCB	"KS", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8129
	DCD	0x0
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0x900b
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0xd0c9
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0xe04c
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x1186
	DCW	0x1300
	DCD	0x50ba
	DCB	0x4
	DCB	0x0
	DCB	"DL", 0x0
	%	3
	DCW	0x100b
	DCW	0x20
	DCD	0xa0cc
	DCB	0x5
	DCB	0x0
	DCB	"NG", 0x0
	%	3
	DCW	0x10b7
	DCW	0x9050
	DCD	0x6008
	DCB	0x6
	DCB	0x0
	DCB	"3C", 0x0
	%	3
	DCW	0x10b7
	DCW	0x9200
	DCD	0x476
	DCB	0x6
	DCB	0x0
	DCB	"3C", 0x0
	%	3
	DCW	0x8086
	DCW	0x1039
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x103a
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x1051
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x1229
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x2449
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	EXPORT	|GetErrorText|
; File c:\wince500\platform\ep93xx\src\bootloader\common\drive.c

  00000			 AREA	 |.text| { |GetErrorText| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$GetErrorText|, PDATA, SELECTION=5, ASSOC=|.text| { |GetErrorText| } ; comdat associative
|$T38342| DCD	|$L38341|
	DCD	0x40002f04
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |GetErrorText| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |GetErrorText| PROC

; 110  : {

  00000		 |$L38341|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d0001	 stmdb       sp!, {r0}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd008	 sub         sp, sp, #8
  00010		 |$M38339|

; 111  :     BYTE nCount;
; 112  : 
; 113  :     for (nCount = 0 ; DiskErrs[nCount].nErrVal ; nCount++)

  00010	e3a03000	 mov         r3, #0
  00014	e5cd3000	 strb        r3, [sp]
  00018	ea000003	 b           |$L38237|
  0001c		 |$L38238|
  0001c	e5dd3000	 ldrb        r3, [sp]
  00020	e2833001	 add         r3, r3, #1
  00024	e20330ff	 and         r3, r3, #0xFF
  00028	e5cd3000	 strb        r3, [sp]
  0002c		 |$L38237|
  0002c	e5dd3000	 ldrb        r3, [sp]
  00030	e1a01003	 mov         r1, r3
  00034	e3a03008	 mov         r3, #8
  00038	e0020391	 mul         r2, r1, r3
  0003c	e59f3074	 ldr         r3, [pc, #0x74]
  00040	e0833002	 add         r3, r3, r2
  00044	e5d33000	 ldrb        r3, [r3]
  00048	e3530000	 cmp         r3, #0
  0004c	0a00000c	 beq         |$L38239|

; 114  :     {
; 115  :         if (DiskErrs[nCount].nErrVal == nErrVal)

  00050	e5dd3000	 ldrb        r3, [sp]
  00054	e1a01003	 mov         r1, r3
  00058	e3a03008	 mov         r3, #8
  0005c	e0020391	 mul         r2, r1, r3
  00060	e59f3050	 ldr         r3, [pc, #0x50]
  00064	e0833002	 add         r3, r3, r2
  00068	e5d33000	 ldrb        r3, [r3]
  0006c	e1a02003	 mov         r2, r3
  00070	e5dd3010	 ldrb        r3, [sp, #0x10]
  00074	e1520003	 cmp         r2, r3
  00078	1a000000	 bne         |$L38240|

; 116  :             break;

  0007c	ea000000	 b           |$L38239|
  00080		 |$L38240|

; 117  :     }

  00080	eaffffe5	 b           |$L38238|
  00084		 |$L38239|

; 118  : 
; 119  :     return(DiskErrs[nCount].pErrText);

  00084	e5dd3000	 ldrb        r3, [sp]
  00088	e1a01003	 mov         r1, r3
  0008c	e3a03008	 mov         r3, #8
  00090	e0020391	 mul         r2, r1, r3
  00094	e59f301c	 ldr         r3, [pc, #0x1C]
  00098	e0833002	 add         r3, r3, r2
  0009c	e2833004	 add         r3, r3, #4
  000a0	e5933000	 ldr         r3, [r3]
  000a4	e58d3004	 str         r3, [sp, #4]
  000a8	e59d0004	 ldr         r0, [sp, #4]

; 120  : }

  000ac	e28dd008	 add         sp, sp, #8
  000b0	e89d6000	 ldmia       sp, {sp, lr}
  000b4	e12fff1e	 bx          lr
  000b8		 |$L38344|
  000b8	00000000	 DCD         |DiskErrs|
  000bc		 |$M38340|

			 ENDP  ; |GetErrorText|

	EXPORT	|LBA2PCHS|
	IMPORT	|g_FATParms|
	IMPORT	|__rt_udiv|
	IMPORT	|__rt_sdiv|

  00000			 AREA	 |.text| { |LBA2PCHS| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$LBA2PCHS|, PDATA, SELECTION=5, ASSOC=|.text| { |LBA2PCHS| } ; comdat associative
|$T38353| DCD	|$L38352|
	DCD	0x40006804
; Function compile flags: /Ods

  00000			 AREA	 |.text| { |LBA2PCHS| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |LBA2PCHS| PROC

; 135  : {

  00000		 |$L38352|
  00000	e1a0c00d	 mov         r12, sp
  00004	e92d000f	 stmdb       sp!, {r0 - r3}
  00008	e92d5000	 stmdb       sp!, {r12, lr}
  0000c	e24dd008	 sub         sp, sp, #8
  00010		 |$M38350|

; 136  :     USHORT Temp = 0;

  00010	e3a03000	 mov         r3, #0
  00014	e1cd30b2	 strh        r3, [sp, #2]

; 137  : #if !defined( NDEF_DWF_NEW_LBA_2_CHS )    
; 138  :     USHORT sectorsPerCylinder;
; 139  : #endif  //  ( NDEF_DWF_NEW_LBA_2_CHS )    
; 140  : 
; 141  :     if (pC == NULL || pH == NULL || pS == NULL)

  00018	e59d3014	 ldr         r3, [sp, #0x14]
  0001c	e3530000	 cmp         r3, #0
  00020	0a000005	 beq         |$L38257|
  00024	e59d3018	 ldr         r3, [sp, #0x18]
  00028	e3530000	 cmp         r3, #0
  0002c	0a000002	 beq         |$L38257|
  00030	e59d301c	 ldr         r3, [sp, #0x1C]
  00034	e3530000	 cmp         r3, #0
  00038	1a000002	 bne         |$L38256|
  0003c		 |$L38257|

; 142  :         return(-1);

  0003c	e3e03000	 mvn         r3, #0
  00040	e58d3004	 str         r3, [sp, #4]
  00044	ea000050	 b           |$L38250|
  00048		 |$L38256|

; 143  : 
; 144  :     // Do the math...
; 145  : #if !defined( NDEF_DWF_NEW_LBA_2_CHS )    
; 146  :     sectorsPerCylinder = g_FATParms.phy_heads * g_FATParms.phy_sectspertrk;

  00048	e59f114c	 ldr         r1, [pc, #0x14C]
  0004c	e5d1303c	 ldrb        r3, [r1, #0x3C]
  00050	e1a03403	 mov         r3, r3, lsl #8
  00054	e1a02803	 mov         r2, r3, lsl #16
  00058	e1a02822	 mov         r2, r2, lsr #16
  0005c	e5d1303b	 ldrb        r3, [r1, #0x3B]
  00060	e1833002	 orr         r3, r3, r2
  00064	e1a00003	 mov         r0, r3
  00068	e59f112c	 ldr         r1, [pc, #0x12C]
  0006c	e5d1303e	 ldrb        r3, [r1, #0x3E]
  00070	e1a03403	 mov         r3, r3, lsl #8
  00074	e1a02803	 mov         r2, r3, lsl #16
  00078	e1a02822	 mov         r2, r2, lsr #16
  0007c	e5d1303d	 ldrb        r3, [r1, #0x3D]
  00080	e1833002	 orr         r3, r3, r2
  00084	e0030390	 mul         r3, r0, r3
  00088	e1a03803	 mov         r3, r3, lsl #16
  0008c	e1a03823	 mov         r3, r3, lsr #16
  00090	e1cd30b0	 strh        r3, [sp]

; 147  :     *pC = (USHORT)(LBA / sectorsPerCylinder);

  00094	e1dd00b0	 ldrh        r0, [sp]
  00098	e59d1010	 ldr         r1, [sp, #0x10]
  0009c	eb000000	 bl          __rt_udiv
  000a0	e1a02800	 mov         r2, r0, lsl #16
  000a4	e1a02822	 mov         r2, r2, lsr #16
  000a8	e59d3014	 ldr         r3, [sp, #0x14]
  000ac	e1c320b0	 strh        r2, [r3]

; 148  :     Temp = (USHORT)(LBA % sectorsPerCylinder);

  000b0	e1dd00b0	 ldrh        r0, [sp]
  000b4	e59d1010	 ldr         r1, [sp, #0x10]
  000b8	eb000000	 bl          __rt_udiv
  000bc	e1a03801	 mov         r3, r1, lsl #16
  000c0	e1a03823	 mov         r3, r3, lsr #16
  000c4	e1cd30b2	 strh        r3, [sp, #2]

; 149  :     *pH = (UCHAR)(Temp / g_FATParms.phy_sectspertrk);

  000c8	e1dd30b2	 ldrh        r3, [sp, #2]
  000cc	e1a0e003	 mov         lr, r3
  000d0	e59f10c4	 ldr         r1, [pc, #0xC4]
  000d4	e5d1303e	 ldrb        r3, [r1, #0x3E]
  000d8	e1a03403	 mov         r3, r3, lsl #8
  000dc	e1a02803	 mov         r2, r3, lsl #16
  000e0	e1a02822	 mov         r2, r2, lsr #16
  000e4	e5d1303d	 ldrb        r3, [r1, #0x3D]
  000e8	e1833002	 orr         r3, r3, r2
  000ec	e1a00003	 mov         r0, r3
  000f0	e1a0100e	 mov         r1, lr
  000f4	eb000000	 bl          __rt_sdiv
  000f8	e20020ff	 and         r2, r0, #0xFF
  000fc	e59d3018	 ldr         r3, [sp, #0x18]
  00100	e5c32000	 strb        r2, [r3]

; 150  :     Temp = (USHORT)(Temp % g_FATParms.phy_sectspertrk);

⌨️ 快捷键说明

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