📄 diskmain.cod
字号:
00a0c e59f30ac ldr r3, [pc, #0xAC]
00a10 e5933440 ldr r3, [r3, #0x440]
00a14 e2032001 and r2, r3, #1
00a18 e59f30a0 ldr r3, [pc, #0xA0]
00a1c e5933440 ldr r3, [r3, #0x440]
00a20 e2033a02 and r3, r3, #2, 20
00a24 e1923003 orrs r3, r2, r3
00a28 0a000004 beq |$L33066|
00a2c e59f0090 ldr r0, [pc, #0x90]
00a30 eb000000 bl NKDbgPrintfW
00a34 e3a03001 mov r3, #1
00a38 e58d3010 str r3, [sp, #0x10]
00a3c ea000001 b |$L33067|
00a40 |$L33066|
00a40 e3a03000 mov r3, #0
00a44 e58d3010 str r3, [sp, #0x10]
00a48 |$L33067|
; 211 : goto exit;
00a48 ea000015 b |$L32041|
00a4c |$L32038|
; 212 : }
; 213 : else {
; 214 : DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 215 : "Atapi!CDisk::InitController> Device responded to identify\r\n"
; 216 : )));
00a4c e59f306c ldr r3, [pc, #0x6C]
00a50 e5933440 ldr r3, [r3, #0x440]
00a54 e2032001 and r2, r3, #1
00a58 e59f3060 ldr r3, [pc, #0x60]
00a5c e5933440 ldr r3, [r3, #0x440]
00a60 e2033a02 and r3, r3, #2, 20
00a64 e1923003 orrs r3, r2, r3
00a68 0a000004 beq |$L33068|
00a6c e59f0048 ldr r0, [pc, #0x48]
00a70 eb000000 bl NKDbgPrintfW
00a74 e3a03001 mov r3, #1
00a78 e58d3014 str r3, [sp, #0x14]
00a7c ea000001 b |$L33069|
00a80 |$L33068|
00a80 e3a03000 mov r3, #0
00a84 e58d3014 str r3, [sp, #0x14]
00a88 |$L33069|
; 217 : m_dwDeviceFlags |= DFLAGS_DEVICE_INITIALIZED;
00a88 e59d3020 ldr r3, [sp, #0x20]
00a8c e2833e69 add r3, r3, #0x69, 28
00a90 e5933000 ldr r3, [r3]
00a94 e3832101 orr r2, r3, #1, 2
00a98 e59d3020 ldr r3, [sp, #0x20]
00a9c e2833e69 add r3, r3, #0x69, 28
00aa0 e5832000 str r2, [r3]
00aa4 |$L32041|
00aa4 |$L32036|
00aa4 |$exit$32035|
; 218 : }
; 219 :
; 220 : exit:;
; 221 : return bRet;
00aa4 e59d3000 ldr r3, [sp]
00aa8 e58d3004 str r3, [sp, #4]
00aac e59d0004 ldr r0, [sp, #4]
; 222 : }
00ab0 e28dd018 add sp, sp, #0x18
00ab4 e89d6000 ldmia sp, {sp, lr}
00ab8 e12fff1e bx lr
00abc |$L33075|
00abc 00000000 DCD |??_C@_1HI@CBKBLOGO@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AAC?$AAo?$AAn@|
00ac0 00000000 DCD |dpCurSettings|
00ac4 00000000 DCD |??_C@_1IE@CCFANAPE@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AAC?$AAo?$AAn@|
00ac8 |$M33072|
ENDP ; |?InitController@CDisk@@UAAHH@Z|, CDisk::InitController
IMPORT |WRITE_PORT_UCHAR|
; File d:\wince500\platform\smdk2440\drivers\atapi\diskmain.h
00000 AREA |.text| { |?SelectDevice@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?SelectDevice@CDisk@@QAAXXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?SelectDevice@CDisk@@QAAXXZ| } ; comdat associative
|$T33082| DCD |$L33081|
DCD 0x40001c04
; Function compile flags: /Odt
00000 AREA |.text| { |?SelectDevice@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?SelectDevice@CDisk@@QAAXXZ| PROC ; CDisk::SelectDevice
; 246 : inline void SelectDevice() {
00000 |$L33081|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd004 sub sp, sp, #4
00010 |$M33079|
; 247 : ATA_WRITE_BYTE(m_pATAReg + m_dwDrvHeadOffset, (m_dwDevice == 0 ) ? ATA_HEAD_DRIVE_1 : ATA_HEAD_DRIVE_2);
00010 e59d300c ldr r3, [sp, #0xC]
00014 e2833b01 add r3, r3, #1, 22
00018 e2833084 add r3, r3, #0x84
0001c e5933000 ldr r3, [r3]
00020 e3530000 cmp r3, #0
00024 1a000002 bne |$L33077|
00028 e3a030a0 mov r3, #0xA0
0002c e58d3000 str r3, [sp]
00030 ea000001 b |$L33078|
00034 |$L33077|
00034 e3a030b0 mov r3, #0xB0
00038 e58d3000 str r3, [sp]
0003c |$L33078|
0003c e59d3000 ldr r3, [sp]
00040 e20310ff and r1, r3, #0xFF
00044 e59d300c ldr r3, [sp, #0xC]
00048 e2832030 add r2, r3, #0x30
0004c e59d300c ldr r3, [sp, #0xC]
00050 e2833020 add r3, r3, #0x20
00054 e5922000 ldr r2, [r2]
00058 e5933000 ldr r3, [r3]
0005c e0820003 add r0, r2, r3
00060 eb000000 bl WRITE_PORT_UCHAR
; 248 : }
00064 e28dd004 add sp, sp, #4
00068 e89d6000 ldmia sp, {sp, lr}
0006c e12fff1e bx lr
00070 |$M33080|
ENDP ; |?SelectDevice@CDisk@@QAAXXZ|, CDisk::SelectDevice
00000 AREA |.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteAltDriveController@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| } ; comdat associative
|$T33089| DCD |$L33088|
DCD 0x40000e03
; Function compile flags: /Odt
00000 AREA |.text| { |?WriteAltDriveController@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteAltDriveController@CDisk@@QAAXE@Z| PROC ; CDisk::WriteAltDriveController
; 270 : inline void WriteAltDriveController(BYTE bData) {
00000 |$L33088|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M33086|
; 271 : ATA_WRITE_BYTE(m_pATARegAlt + m_dwAltDrvCtrl, bData);
0000c e5dd100c ldrb r1, [sp, #0xC]
00010 e59d3008 ldr r3, [sp, #8]
00014 e2832034 add r2, r3, #0x34
00018 e59d3008 ldr r3, [sp, #8]
0001c e283302c add r3, r3, #0x2C
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl WRITE_PORT_UCHAR
; 272 : }
00030 e89d6000 ldmia sp, {sp, lr}
00034 e12fff1e bx lr
00038 |$M33087|
ENDP ; |?WriteAltDriveController@CDisk@@QAAXE@Z|, CDisk::WriteAltDriveController
000b8 AREA |.pdata|, PDATA
|$T33096| DCD |$L33095|
DCD 0x40004103
; Function compile flags: /Odt
; File d:\wince500\platform\smdk2440\drivers\atapi\diskmain.cpp
00ac8 AREA |.text|, CODE, ARM
00ac8 |?ConfigureRegisterBlock@CDisk@@UAAXK@Z| PROC ; CDisk::ConfigureRegisterBlock
; 237 : {
00ac8 |$L33095|
00ac8 e1a0c00d mov r12, sp
00acc e92d0003 stmdb sp!, {r0, r1}
00ad0 e92d5000 stmdb sp!, {r12, lr}
00ad4 |$M33093|
; 238 :
; 239 : m_dwStride = dwStride;
00ad4 e59d3008 ldr r3, [sp, #8]
00ad8 e2832004 add r2, r3, #4
00adc e59d300c ldr r3, [sp, #0xC]
00ae0 e5823000 str r3, [r2]
; 240 : m_dwDataDrvCtrlOffset = ATA_REG_DATA * dwStride;
00ae4 e59d3008 ldr r3, [sp, #8]
00ae8 e2832008 add r2, r3, #8
00aec e3a03000 mov r3, #0
00af0 e5823000 str r3, [r2]
; 241 : m_dwFeatureErrorOffset = ATA_REG_FEATURE * dwStride;
00af4 e59d3008 ldr r3, [sp, #8]
00af8 e283200c add r2, r3, #0xC
00afc e59d300c ldr r3, [sp, #0xC]
00b00 e5823000 str r3, [r2]
; 242 : m_dwSectCntReasonOffset = ATA_REG_SECT_CNT * dwStride;
00b04 e59d100c ldr r1, [sp, #0xC]
00b08 e3a03002 mov r3, #2
00b0c e0020391 mul r2, r1, r3
00b10 e59d3008 ldr r3, [sp, #8]
00b14 e2833010 add r3, r3, #0x10
00b18 e5832000 str r2, [r3]
; 243 : m_dwSectNumOffset = ATA_REG_SECT_NUM * dwStride;
00b1c e59d100c ldr r1, [sp, #0xC]
00b20 e3a03003 mov r3, #3
00b24 e0020391 mul r2, r1, r3
00b28 e59d3008 ldr r3, [sp, #8]
00b2c e2833014 add r3, r3, #0x14
00b30 e5832000 str r2, [r3]
; 244 : m_dwDrvHeadOffset = ATA_REG_DRV_HEAD * dwStride;
00b34 e59d100c ldr r1, [sp, #0xC]
00b38 e3a03006 mov r3, #6
00b3c e0020391 mul r2, r1, r3
00b40 e59d3008 ldr r3, [sp, #8]
00b44 e2833020 add r3, r3, #0x20
00b48 e5832000 str r2, [r3]
; 245 : m_dwCommandStatusOffset = ATA_REG_COMMAND * dwStride;
00b4c e59d100c ldr r1, [sp, #0xC]
00b50 e3a03007 mov r3, #7
00b54 e0020391 mul r2, r1, r3
00b58 e59d3008 ldr r3, [sp, #8]
00b5c e2833024 add r3, r3, #0x24
00b60 e5832000 str r2, [r3]
; 246 : m_dwByteCountLowOffset = ATA_REG_BYTECOUNTLOW * dwStride;
00b64 e59d100c ldr r1, [sp, #0xC]
00b68 e3a03004 mov r3, #4
00b6c e0020391 mul r2, r1, r3
00b70 e59d3008 ldr r3, [sp, #8]
00b74 e2833018 add r3, r3, #0x18
00b78 e5832000 str r2, [r3]
; 247 : m_dwByteCountHighOffset = ATA_REG_BYTECOUNTHIGH * dwStride;
00b7c e59d100c ldr r1, [sp, #0xC]
00b80 e3a03005 mov r3, #5
00b84 e0020391 mul r2, r1, r3
00b88 e59d3008 ldr r3, [sp, #8]
00b8c e283301c add r3, r3, #0x1C
00b90 e5832000 str r2, [r3]
; 248 : m_dwAltStatusOffset = ATA_REG_ALT_STATUS_CS1 * dwStride;
00b94 e59d100c ldr r1, [sp, #0xC]
00b98 e3a03006 mov r3, #6
00b9c e0020391 mul r2, r1, r3
00ba0 e59d3008 ldr r3, [sp, #8]
00ba4 e2833028 add r3, r3, #0x28
00ba8 e5832000 str r2, [r3]
; 249 : m_dwAltDrvCtrl = ATA_REG_DRV_CTRL_CS1 * dwStride;
00bac e59d100c ldr r1, [sp, #0xC]
00bb0 e3a03006 mov r3, #6
00bb4 e0020391 mul r2, r1, r3
00bb8 e59d3008 ldr r3, [sp, #8]
00bbc e283302c add r3, r3, #0x2C
00bc0 e5832000 str r2, [r3]
; 250 : }
00bc4 e89d6000 ldmia sp, {sp, lr}
00bc8 e12fff1e bx lr
00bcc |$M33094|
ENDP ; |?ConfigureRegisterBlock@CDisk@@UAAXK@Z|, CDisk::ConfigureRegisterBlock
EXPORT |??_C@_1GC@GKMCOLKO@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAF@| [ DATA ] ; `string'
EXPORT |??_C@_1FC@CNPDCKOD@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAE@| [ DATA ] ; `string'
EXPORT |??_C@_1GI@OLNFAGPG@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAD@| [ DATA ] ; `string'
EXPORT |??_C@_1GI@FKEOFHPB@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAF@| [ DATA ] ; `string'
EXPORT |??_C@_1FK@HFGFAJBE@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAE@| [ DATA ] ; `string'
EXPORT |??_C@_1GM@COHIILHF@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAF@| [ DATA ] ; `string'
EXPORT |??_C@_1GM@DDHEBPCB@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAS@| [ DATA ] ; `string'
EXPORT |??_C@_1IM@EGDIFGHA@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAS@| [ DATA ] ; `string'
EXPORT |??_C@_1HO@PGJIPDEG@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAS@| [ DATA ] ; `string'
EXPORT |??_C@_1HK@PDDHHDFE@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAS@| [ DATA ] ; `string'
EXPORT |??_C@_1HA@CNDGCAEE@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAS@| [ DATA ] ; `string'
EXPORT |??_C@_1GC@HFICLFFJ@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAU@| [ DATA ] ; `string'
EXPORT |??_C@_1GO@HNMBFNML@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAF@| [ DATA ] ; `string'
EXPORT |?SetWriteCacheMode@CDisk@@QAAHH@Z| ; CDisk::SetWriteCacheMode
EXPORT |?SetLookAhead@CDisk@@QAAHXZ| ; CDisk::SetLookAhead
IMPORT |?SetTransferMode@CDisk@@QAAHE@Z| ; CDisk::SetTransferMode
000c0 AREA |.pdata|, PDATA
|$T33128| DCD |$L33127|
DCD 0x4001c004
00000 AREA |.rdata| { |??_C@_1GO@HNMBFNML@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAF@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GO@HNMBFNML@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAF@| DCB "A"
DCB 0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i", 0x0, "!", 0x0, "C"
DCB 0x0, "D", 0x0, "i", 0x0, "s", 0x0, "k", 0x0, ":", 0x0, ":"
DCB 0x0, "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, ">", 0x0, " "
DCB 0x0, "F", 0x0, "a", 0x0, "i", 0x0, "l", 0x0, "e", 0x0, "d"
DCB 0x0, " ", 0x0, "t", 0x0, "o", 0x0, " ", 0x0, "s", 0x0, "e"
DCB 0x0, "t", 0x0, " ", 0x0, "t", 0x0, "r", 0x0, "a", 0x0, "n"
DCB 0x0, "s", 0x0, "f", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "m"
DCB 0x0, "o", 0x0, "d", 0x0, "e", 0x0, "(", 0x0, "0", 0x0, "x"
DCB 0x0, "%", 0x0, "x", 0x0, ")", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1GC@HFICLFFJ@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAU@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1GC@HFICLFFJ@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAU@| DCB "A"
DCB 0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i", 0x0, "!", 0x0, "C"
DCB 0x0, "D", 0x0, "i", 0x0, "s", 0x0, "k", 0x0, ":", 0x0, ":"
DCB 0x0, "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, ">", 0x0, " "
DCB 0x0, "U", 0x0, "n", 0x0, "k", 0x0, "n", 0x0, "o", 0x0, "w"
DCB 0x0, "n", 0x0, " ", 0x0, "t", 0x0, "r", 0x0, "a", 0x0, "n"
DCB 0x0, "s", 0x0, "f", 0x0, "e", 0x0, "r", 0x0, " ", 0x0, "m"
DCB 0x0, "o", 0x0, "d", 0x0, "e", 0x0, "(", 0x0, "0", 0x0, "x"
DCB 0x0, "%", 0x0, "x", 0x0, ")", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1HA@CNDGCAEE@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAS@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1HA@CNDGCAEE@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAI?$AAn?$AAi?$AAt?$AA?$DO?$AA?5?$AAS@| DCB "A"
DCB 0x0, "t", 0x0, "a", 0x0, "p", 0x0, "i", 0x0, "!", 0x0, "C"
DCB 0x0, "D", 0x0, "i", 0x0, "s", 0x0, "k", 0x0, ":", 0x0, ":"
DCB 0x0, "I", 0x0, "n", 0x0, "i", 0x0, "t", 0x0, ">", 0x0, " "
DCB 0x0, "S", 0x0, "e", 0x0, "l", 0x0, "e", 0x0, "c", 0x0, "t"
DCB 0x0, "i", 0x0, "n", 0x0, "g", 0x0, " ", 0x0, "U", 0x0, "l"
DCB 0x0, "t", 0x0, "r", 0x0, "a", 0x0, " ", 0x0, "D", 0x0, "M"
DCB 0x0, "A", 0x0, " ", 0x0, "m", 0x0, "o", 0x0, "d", 0x0, "e"
DCB 0x0, " ", 0x0, "%", 0x0, "d", 0x0, " ", 0x0, "(", 0x0, "0"
DCB 0x0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -