📄 atapiio.cod
字号:
ENDP ; |?WriteDriveHeadReg@CDisk@@QAAXE@Z|, CDisk::WriteDriveHeadReg
00000 AREA |.text| { |?WriteCommand@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteCommand@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteCommand@CDisk@@QAAXE@Z| } ; comdat associative
|$T32308| DCD |$L32307|
DCD 0x40000e03
; Function compile flags: /Odt
00000 AREA |.text| { |?WriteCommand@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteCommand@CDisk@@QAAXE@Z| PROC ; CDisk::WriteCommand
; 263 : inline void WriteCommand(BYTE bCommand) {
00000 |$L32307|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M32305|
; 264 : ATA_WRITE_BYTE(m_pATAReg + m_dwCommandStatusOffset, bCommand);
0000c e5dd100c ldrb r1, [sp, #0xC]
00010 e59d3008 ldr r3, [sp, #8]
00014 e2832030 add r2, r3, #0x30
00018 e59d3008 ldr r3, [sp, #8]
0001c e2833024 add r3, r3, #0x24
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl WRITE_PORT_UCHAR
; 265 : }
00030 e89d6000 ldmia sp, {sp, lr}
00034 e12fff1e bx lr
00038 |$M32306|
ENDP ; |?WriteCommand@CDisk@@QAAXE@Z|, CDisk::WriteCommand
00000 AREA |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?GetAltStatus@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetAltStatus@CDisk@@QAAEXZ| } ; comdat associative
|$T32316| DCD |$L32315|
DCD 0x40001304
; Function compile flags: /Odt
00000 AREA |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetAltStatus@CDisk@@QAAEXZ| PROC ; CDisk::GetAltStatus
; 267 : inline BYTE GetAltStatus() {
00000 |$L32315|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd008 sub sp, sp, #8
00010 |$M32313|
; 268 : return (BYTE) ATA_READ_BYTE(m_pATARegAlt + m_dwAltStatusOffset);
00010 e59d3010 ldr r3, [sp, #0x10]
00014 e2832034 add r2, r3, #0x34
00018 e59d3010 ldr r3, [sp, #0x10]
0001c e2833028 add r3, r3, #0x28
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl READ_PORT_UCHAR
00030 e5cd0004 strb r0, [sp, #4]
00034 e5dd3004 ldrb r3, [sp, #4]
00038 e5cd3000 strb r3, [sp]
0003c e5dd0000 ldrb r0, [sp]
; 269 : }
00040 e28dd008 add sp, sp, #8
00044 e89d6000 ldmia sp, {sp, lr}
00048 e12fff1e bx lr
0004c |$M32314|
ENDP ; |?GetAltStatus@CDisk@@QAAEXZ|, CDisk::GetAltStatus
EXPORT |?GetBaseStatus@CDisk@@QAAEXZ| ; CDisk::GetBaseStatus
IMPORT |?StallExecution@CDisk@@QAAXK@Z| ; CDisk::StallExecution
00008 AREA |.pdata|, PDATA
|$T32326| DCD |$L32325|
DCD 0x40004704
; Function compile flags: /Odt
; File d:\wince500\platform\smdk2440\drivers\atapi\atapiio.cpp
002ec AREA |.text|, CODE, ARM
002ec |?WaitOnBusy@CDisk@@QAAEH@Z| PROC ; CDisk::WaitOnBusy
; 83 : {
002ec |$L32325|
002ec e1a0c00d mov r12, sp
002f0 e92d0003 stmdb sp!, {r0, r1}
002f4 e92d5000 stmdb sp!, {r12, lr}
002f8 e24dd014 sub sp, sp, #0x14
002fc |$M32323|
; 84 : DWORD i, j;
; 85 : BYTE bStatus = 0;
002fc e3a03000 mov r3, #0
00300 e5cd3000 strb r3, [sp]
; 86 : for (i = 0; i < m_dwWaitCheckIter; i++) {
00304 e3a03000 mov r3, #0
00308 e58d3004 str r3, [sp, #4]
0030c ea000002 b |$L31973|
00310 |$L31974|
00310 e59d3004 ldr r3, [sp, #4]
00314 e2833001 add r3, r3, #1
00318 e58d3004 str r3, [sp, #4]
0031c |$L31973|
0031c e59d301c ldr r3, [sp, #0x1C]
00320 e2833c06 add r3, r3, #6, 24
00324 e28330bc add r3, r3, #0xBC
00328 e59d2004 ldr r2, [sp, #4]
0032c e5933000 ldr r3, [r3]
00330 e1520003 cmp r2, r3
00334 2a00002b bcs |$L31975|
; 87 : for (j = 0; j < m_dwWaitSampleTimes; j++) {
00338 e3a03000 mov r3, #0
0033c e58d3008 str r3, [sp, #8]
00340 ea000002 b |$L31976|
00344 |$L31977|
00344 e59d3008 ldr r3, [sp, #8]
00348 e2833001 add r3, r3, #1
0034c e58d3008 str r3, [sp, #8]
00350 |$L31976|
00350 e59d301c ldr r3, [sp, #0x1C]
00354 e2833d1b add r3, r3, #0x1B, 26
00358 e59d2008 ldr r2, [sp, #8]
0035c e5933000 ldr r3, [r3]
00360 e1520003 cmp r2, r3
00364 2a000018 bcs |$L31978|
; 88 : bStatus = fBase ? GetBaseStatus() : GetAltStatus();
00368 e59d3020 ldr r3, [sp, #0x20]
0036c e3530000 cmp r3, #0
00370 0a000005 beq |$L32320|
00374 e59d001c ldr r0, [sp, #0x1C]
00378 eb000000 bl |?GetBaseStatus@CDisk@@QAAEXZ|
0037c e5cd0010 strb r0, [sp, #0x10]
00380 e5dd3010 ldrb r3, [sp, #0x10]
00384 e5cd3011 strb r3, [sp, #0x11]
00388 ea000004 b |$L32321|
0038c |$L32320|
0038c e59d001c ldr r0, [sp, #0x1C]
00390 eb000000 bl |?GetAltStatus@CDisk@@QAAEXZ|
00394 e5cd0012 strb r0, [sp, #0x12]
00398 e5dd3012 ldrb r3, [sp, #0x12]
0039c e5cd3011 strb r3, [sp, #0x11]
003a0 |$L32321|
003a0 e5dd3011 ldrb r3, [sp, #0x11]
003a4 e5cd3000 strb r3, [sp]
; 89 : if (!(bStatus & ATA_STATUS_BUSY)) {
003a8 e5dd3000 ldrb r3, [sp]
003ac e3130080 tst r3, #0x80
003b0 1a000004 bne |$L31979|
; 90 : return bStatus & (ATA_STATUS_ERROR |ATA_STATUS_BUSY);
003b4 e5dd3000 ldrb r3, [sp]
003b8 e2033081 and r3, r3, #0x81
003bc e20330ff and r3, r3, #0xFF
003c0 e5cd300c strb r3, [sp, #0xC]
003c4 ea00000b b |$L31969|
003c8 |$L31979|
; 91 : }
; 92 : }
003c8 eaffffdd b |$L31977|
003cc |$L31978|
; 93 : StallExecution(m_dwWaitStallTime);
003cc e59d301c ldr r3, [sp, #0x1C]
003d0 e2833c06 add r3, r3, #6, 24
003d4 e28330c4 add r3, r3, #0xC4
003d8 e5931000 ldr r1, [r3]
003dc e59d001c ldr r0, [sp, #0x1C]
003e0 eb000000 bl |?StallExecution@CDisk@@QAAXK@Z|
; 94 : }
003e4 eaffffc9 b |$L31974|
003e8 |$L31975|
; 95 : return bStatus & (ATA_STATUS_ERROR |ATA_STATUS_BUSY);
003e8 e5dd3000 ldrb r3, [sp]
003ec e2033081 and r3, r3, #0x81
003f0 e20330ff and r3, r3, #0xFF
003f4 e5cd300c strb r3, [sp, #0xC]
003f8 |$L31969|
; 90 : return bStatus & (ATA_STATUS_ERROR |ATA_STATUS_BUSY);
003f8 e5dd000c ldrb r0, [sp, #0xC]
; 96 : }
003fc e28dd014 add sp, sp, #0x14
00400 e89d6000 ldmia sp, {sp, lr}
00404 e12fff1e bx lr
00408 |$M32324|
ENDP ; |?WaitOnBusy@CDisk@@QAAEH@Z|, CDisk::WaitOnBusy
; File d:\wince500\platform\smdk2440\drivers\atapi\diskmain.h
00000 AREA |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?GetBaseStatus@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetBaseStatus@CDisk@@QAAEXZ| } ; comdat associative
|$T32332| DCD |$L32331|
DCD 0x40002804
; Function compile flags: /Odt
00000 AREA |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetBaseStatus@CDisk@@QAAEXZ| PROC ; CDisk::GetBaseStatus
; 257 : inline BYTE GetBaseStatus() {
00000 |$L32331|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd01c sub sp, sp, #0x1C
00010 |$M32329|
; 258 : BYTE bStatus = ATA_READ_BYTE(m_pATAReg + m_dwCommandStatusOffset);
00010 e59d3024 ldr r3, [sp, #0x24]
00014 e2832030 add r2, r3, #0x30
00018 e59d3024 ldr r3, [sp, #0x24]
0001c e2833024 add r3, r3, #0x24
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl READ_PORT_UCHAR
00030 e5cd0018 strb r0, [sp, #0x18]
00034 e5dd3018 ldrb r3, [sp, #0x18]
00038 e5cd3010 strb r3, [sp, #0x10]
; 259 : if (ZONE_CELOG) CeLogData(TRUE, CELID_ATAPI_BASESTATUS, &bStatus, sizeof(bStatus), 0, CELZONE_ALWAYSON, 0, FALSE);
0003c e59f3058 ldr r3, [pc, #0x58]
00040 e5933440 ldr r3, [r3, #0x440]
00044 e3130902 tst r3, #2, 18
00048 0a00000d beq |$L31624|
0004c e3a03000 mov r3, #0
00050 e58d300c str r3, [sp, #0xC]
00054 e3a03000 mov r3, #0
00058 e58d3008 str r3, [sp, #8]
0005c e3a03101 mov r3, #1, 2
00060 e58d3004 str r3, [sp, #4]
00064 e3a03000 mov r3, #0
00068 e58d3000 str r3, [sp]
0006c e3a03001 mov r3, #1
00070 e28d2010 add r2, sp, #0x10
00074 e3a01d86 mov r1, #0x86, 26
00078 e3811002 orr r1, r1, #2
0007c e3a00001 mov r0, #1
00080 eb000000 bl CeLogData
00084 |$L31624|
; 260 : return bStatus;
00084 e5dd3010 ldrb r3, [sp, #0x10]
00088 e5cd3014 strb r3, [sp, #0x14]
0008c e5dd0014 ldrb r0, [sp, #0x14]
; 261 : }
00090 e28dd01c add sp, sp, #0x1C
00094 e89d6000 ldmia sp, {sp, lr}
00098 e12fff1e bx lr
0009c |$L32334|
0009c 00000000 DCD |dpCurSettings|
000a0 |$M32330|
ENDP ; |?GetBaseStatus@CDisk@@QAAEXZ|, CDisk::GetBaseStatus
EXPORT |??_C@_1FG@MAJIHCDK@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |??_C@_1FO@FPPIPLP@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |??_C@_1FI@IKJAFINI@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |??_C@_1FE@KDGCOFIA@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |??_C@_1FM@GICFJEOP@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |??_C@_1FI@EMDNNADC@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |??_C@_1IG@BEAHCCJI@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| [ DATA ] ; `string'
EXPORT |?WaitForDisc@CDisk@@UAAHEKK@Z| ; CDisk::WaitForDisc
00010 AREA |.pdata|, PDATA
|$T32357| DCD |$L32356|
DCD 0x4000b104
; File d:\wince500\platform\smdk2440\drivers\atapi\atapiio.cpp
00000 AREA |.rdata| { |??_C@_1IG@BEAHCCJI@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1IG@BEAHCCJI@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| 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, "W", 0x0, "a", 0x0, "i", 0x0, "t", 0x0, "F", 0x0, "o"
DCB 0x0, "r", 0x0, "D", 0x0, "i", 0x0, "s", 0x0, "c", 0x0, ">"
DCB 0x0, " ", 0x0, "t", 0x0, "i", 0x0, "m", 0x0, "e", 0x0, "o"
DCB 0x0, "u", 0x0, "t", 0x0, ";", 0x0, " ", 0x0, "b", 0x0, "S"
DCB 0x0, "t", 0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s", 0x0, "T"
DCB 0x0, "y", 0x0, "p", 0x0, "e", 0x0, "(", 0x0, "%", 0x0, "d"
DCB 0x0, ")", 0x0, ";", 0x0, " ", 0x0, "s", 0x0, "t", 0x0, "a"
DCB 0x0, "t", 0x0, "u", 0x0, "s", 0x0, "(", 0x0, "%", 0x0, "0"
DCB 0x0, "2", 0x0, "X", 0x0, ")", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1FI@EMDNNADC@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FI@EMDNNADC@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAW?$AAa?$AAi?$AAt?$AAF?$AAo?$AAr@| 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, ":"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -