📄 drive.cod
字号:
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 + -