📄 atapiio.cod
字号:
002bc |$L31959|
; 65 : }
; 66 : WriteCommand(bCmd);
002bc e5dd1044 ldrb r1, [sp, #0x44]
002c0 e59d0038 ldr r0, [sp, #0x38]
002c4 eb000000 bl |?WriteCommand@CDisk@@QAAXE@Z|
; 67 :
; 68 : return (TRUE);
002c8 e3a03001 mov r3, #1
002cc e58d3018 str r3, [sp, #0x18]
002d0 |$L31945|
; 43 : return FALSE;
002d0 e59d0018 ldr r0, [sp, #0x18]
; 69 : }
002d4 e28dd030 add sp, sp, #0x30
002d8 e89d6000 ldmia sp, {sp, lr}
002dc e12fff1e bx lr
002e0 |$L32251|
002e0 00000000 DCD |??_C@_1JI@FLPKJPFG@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAS?$AAe?$AAn?$AAd?$AAI?$AAO?$AAC@|
002e4 00000000 DCD |dpCurSettings|
002e8 00000000 DCD |??_C@_1JA@EFHCDLIF@?$AAA?$AAt?$AAa?$AAp?$AAi?$AA?$CB?$AAC?$AAD?$AAi?$AAs?$AAk?$AA?3?$AA?3?$AAS?$AAe?$AAn?$AAd?$AAI?$AAO?$AAC@|
002ec |$M32248|
ENDP ; |?SendIOCommand@CDisk@@QAAHKKE@Z|, CDisk::SendIOCommand
IMPORT |READ_PORT_UCHAR|
; File d:\wince500\platform\smdk2440\drivers\atapi\diskmain.h
00000 AREA |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?GetError@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetError@CDisk@@QAAEXZ| } ; comdat associative
|$T32257| DCD |$L32256|
DCD 0x40001304
; Function compile flags: /Odt
00000 AREA |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetError@CDisk@@QAAEXZ| PROC ; CDisk::GetError
; 212 : inline BYTE GetError() {
00000 |$L32256|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd008 sub sp, sp, #8
00010 |$M32254|
; 213 : return (BYTE) ATA_READ_BYTE(m_pATAReg + m_dwFeatureErrorOffset);
00010 e59d3010 ldr r3, [sp, #0x10]
00014 e2832030 add r2, r3, #0x30
00018 e59d3010 ldr r3, [sp, #0x10]
0001c e283300c add r3, r3, #0xC
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]
; 214 : }
00040 e28dd008 add sp, sp, #8
00044 e89d6000 ldmia sp, {sp, lr}
00048 e12fff1e bx lr
0004c |$M32255|
ENDP ; |?GetError@CDisk@@QAAEXZ|, CDisk::GetError
IMPORT |WRITE_PORT_UCHAR|
00000 AREA |.text| { |?WriteSectorCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteSectorCount@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteSectorCount@CDisk@@QAAXE@Z| } ; comdat associative
|$T32264| DCD |$L32263|
DCD 0x40000e03
; Function compile flags: /Odt
00000 AREA |.text| { |?WriteSectorCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteSectorCount@CDisk@@QAAXE@Z| PROC ; CDisk::WriteSectorCount
; 222 : inline void WriteSectorCount(BYTE bValue) {
00000 |$L32263|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M32261|
; 223 : ATA_WRITE_BYTE(m_pATAReg + m_dwSectCntReasonOffset, bValue);
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 e2833010 add r3, r3, #0x10
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl WRITE_PORT_UCHAR
; 224 : }
00030 e89d6000 ldmia sp, {sp, lr}
00034 e12fff1e bx lr
00038 |$M32262|
ENDP ; |?WriteSectorCount@CDisk@@QAAXE@Z|, CDisk::WriteSectorCount
00000 AREA |.text| { |?WriteSectorNumber@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteSectorNumber@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteSectorNumber@CDisk@@QAAXE@Z| } ; comdat associative
|$T32271| DCD |$L32270|
DCD 0x40000e03
; Function compile flags: /Odt
00000 AREA |.text| { |?WriteSectorNumber@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteSectorNumber@CDisk@@QAAXE@Z| PROC ; CDisk::WriteSectorNumber
; 226 : inline void WriteSectorNumber(BYTE bValue) {
00000 |$L32270|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M32268|
; 227 : ATA_WRITE_BYTE(m_pATAReg + m_dwSectNumOffset, bValue);
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 e2833014 add r3, r3, #0x14
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl WRITE_PORT_UCHAR
; 228 : }
00030 e89d6000 ldmia sp, {sp, lr}
00034 e12fff1e bx lr
00038 |$M32269|
ENDP ; |?WriteSectorNumber@CDisk@@QAAXE@Z|, CDisk::WriteSectorNumber
00000 AREA |.text| { |?WriteLowCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteLowCount@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteLowCount@CDisk@@QAAXE@Z| } ; comdat associative
|$T32278| DCD |$L32277|
DCD 0x40000e03
; Function compile flags: /Odt
00000 AREA |.text| { |?WriteLowCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteLowCount@CDisk@@QAAXE@Z| PROC ; CDisk::WriteLowCount
; 233 : inline void WriteLowCount(BYTE bValue) {
00000 |$L32277|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M32275|
; 234 : ATA_WRITE_BYTE(m_pATAReg + m_dwByteCountLowOffset, bValue);
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 e2833018 add r3, r3, #0x18
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl WRITE_PORT_UCHAR
; 235 : }
00030 e89d6000 ldmia sp, {sp, lr}
00034 e12fff1e bx lr
00038 |$M32276|
ENDP ; |?WriteLowCount@CDisk@@QAAXE@Z|, CDisk::WriteLowCount
00000 AREA |.text| { |?WriteHighCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteHighCount@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteHighCount@CDisk@@QAAXE@Z| } ; comdat associative
|$T32285| DCD |$L32284|
DCD 0x40000e03
; Function compile flags: /Odt
00000 AREA |.text| { |?WriteHighCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteHighCount@CDisk@@QAAXE@Z| PROC ; CDisk::WriteHighCount
; 239 : inline void WriteHighCount(BYTE bValue) {
00000 |$L32284|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M32282|
; 240 : ATA_WRITE_BYTE(m_pATAReg + m_dwByteCountHighOffset, bValue);
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 e283301c add r3, r3, #0x1C
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl WRITE_PORT_UCHAR
; 241 : }
00030 e89d6000 ldmia sp, {sp, lr}
00034 e12fff1e bx lr
00038 |$M32283|
ENDP ; |?WriteHighCount@CDisk@@QAAXE@Z|, CDisk::WriteHighCount
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
|$T32294| DCD |$L32293|
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 |$L32293|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd004 sub sp, sp, #4
00010 |$M32291|
; 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 |$L32289|
00028 e3a030a0 mov r3, #0xA0
0002c e58d3000 str r3, [sp]
00030 ea000001 b |$L32290|
00034 |$L32289|
00034 e3a030b0 mov r3, #0xB0
00038 e58d3000 str r3, [sp]
0003c |$L32290|
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 |$M32292|
ENDP ; |?SelectDevice@CDisk@@QAAXXZ|, CDisk::SelectDevice
00000 AREA |.text| { |?WriteDriveHeadReg@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteDriveHeadReg@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteDriveHeadReg@CDisk@@QAAXE@Z| } ; comdat associative
|$T32301| DCD |$L32300|
DCD 0x40000e03
; Function compile flags: /Odt
00000 AREA |.text| { |?WriteDriveHeadReg@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteDriveHeadReg@CDisk@@QAAXE@Z| PROC ; CDisk::WriteDriveHeadReg
; 253 : inline void WriteDriveHeadReg(BYTE bValue) {
00000 |$L32300|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M32298|
; 254 : ATA_WRITE_BYTE(m_pATAReg + m_dwDrvHeadOffset, bValue);
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 e2833020 add r3, r3, #0x20
00020 e5922000 ldr r2, [r2]
00024 e5933000 ldr r3, [r3]
00028 e0820003 add r0, r2, r3
0002c eb000000 bl WRITE_PORT_UCHAR
; 255 : }
00030 e89d6000 ldmia sp, {sp, lr}
00034 e12fff1e bx lr
00038 |$M32299|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -