📄 ide.cod
字号:
00000 |$L39397|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M39395|
; 226 : ATAWriteRegister(CSDA_DRVHD_REG, (ULONG) bValue);
0000c e5dd1008 ldrb r1, [sp, #8]
00010 e3a0001a mov r0, #0x1A
00014 eb000000 bl ATAWriteRegister
; 227 : }
00018 e89d6000 ldmia sp, {sp, lr}
0001c e12fff1e bx lr
00020 |$M39396|
ENDP ; |WriteDriveHeadReg|
EXPORT |WriteSectorNumber|
00000 AREA |.text| { |WriteSectorNumber| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WriteSectorNumber|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteSectorNumber| } ; comdat associative
|$T39405| DCD |$L39404|
DCD 0x40000803
; Function compile flags: /Ods
00000 AREA |.text| { |WriteSectorNumber| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WriteSectorNumber| PROC
; 229 : {
00000 |$L39404|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M39402|
; 230 : ATAWriteRegister(CSDA_SECTNUM_REG, (ULONG) bValue);
0000c e5dd1008 ldrb r1, [sp, #8]
00010 e3a0000e mov r0, #0xE
00014 eb000000 bl ATAWriteRegister
; 231 : }
00018 e89d6000 ldmia sp, {sp, lr}
0001c e12fff1e bx lr
00020 |$M39403|
ENDP ; |WriteSectorNumber|
EXPORT |WriteLowCount|
00000 AREA |.text| { |WriteLowCount| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WriteLowCount|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteLowCount| } ; comdat associative
|$T39412| DCD |$L39411|
DCD 0x40000803
; Function compile flags: /Ods
00000 AREA |.text| { |WriteLowCount| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WriteLowCount| PROC
; 237 : {
00000 |$L39411|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M39409|
; 238 : ATAWriteRegister(CSDA_CYLL_REG, (ULONG) bValue);
0000c e5dd1008 ldrb r1, [sp, #8]
00010 e3a00012 mov r0, #0x12
00014 eb000000 bl ATAWriteRegister
; 239 : }
00018 e89d6000 ldmia sp, {sp, lr}
0001c e12fff1e bx lr
00020 |$M39410|
ENDP ; |WriteLowCount|
EXPORT |WriteHighCount|
00000 AREA |.text| { |WriteHighCount| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WriteHighCount|, PDATA, SELECTION=5, ASSOC=|.text| { |WriteHighCount| } ; comdat associative
|$T39419| DCD |$L39418|
DCD 0x40000803
; Function compile flags: /Ods
00000 AREA |.text| { |WriteHighCount| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WriteHighCount| PROC
; 241 : {
00000 |$L39418|
00000 e1a0c00d mov r12, sp
00004 e92d0001 stmdb sp!, {r0}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c |$M39416|
; 242 : ATAWriteRegister(CSDA_CYLH_REG, (ULONG) bValue);
0000c e5dd1008 ldrb r1, [sp, #8]
00010 e3a00016 mov r0, #0x16
00014 eb000000 bl ATAWriteRegister
; 243 : }
00018 e89d6000 ldmia sp, {sp, lr}
0001c e12fff1e bx lr
00020 |$M39417|
ENDP ; |WriteHighCount|
EXPORT |ReadWordBuffer|
00000 AREA |.text| { |ReadWordBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$ReadWordBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |ReadWordBuffer| } ; comdat associative
|$T39426| DCD |$L39425|
DCD 0x40003204
; Function compile flags: /Ods
00000 AREA |.text| { |ReadWordBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |ReadWordBuffer| PROC
; 246 : {
00000 |$L39425|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd008 sub sp, sp, #8
00010 |$M39423|
; 247 : PWORD pEnd;
; 248 : pEnd = pBuffer + dwCount;
00010 e59d1014 ldr r1, [sp, #0x14]
00014 e3a03002 mov r3, #2
00018 e0020391 mul r2, r1, r3
0001c e59d3010 ldr r3, [sp, #0x10]
00020 e0833002 add r3, r3, r2
00024 e58d3000 str r3, [sp]
; 249 :
; 250 : #ifdef EDB9307_12_15
; 251 : if(m_BootDeviceType == BOOT_FROM_PCMCIA)
00028 e59f3094 ldr r3, [pc, #0x94]
0002c e5933000 ldr r3, [r3]
00030 e3530c01 cmp r3, #1, 24
00034 1a00000c bne |$L38855|
00038 |$L38857|
; 252 : {
; 253 : while(pBuffer < pEnd)
00038 e59d2010 ldr r2, [sp, #0x10]
0003c e59d3000 ldr r3, [sp]
00040 e1520003 cmp r2, r3
00044 2a000007 bcs |$L38858|
; 254 : {
; 255 : *pBuffer++ = *(volatile USHORT *)(PCMCIACARD_IO + IDE_DATA_REG);
00048 e3a03101 mov r3, #1, 2
0004c e1d320b0 ldrh r2, [r3]
00050 e59d3010 ldr r3, [sp, #0x10]
00054 e1c320b0 strh r2, [r3]
00058 e59d3010 ldr r3, [sp, #0x10]
0005c e2833002 add r3, r3, #2
00060 e58d3010 str r3, [sp, #0x10]
; 256 : }
00064 eafffff3 b |$L38857|
00068 |$L38858|
; 257 : }
; 258 : else
00068 ea000012 b |$L38860|
0006c |$L38855|
0006c |$L38862|
; 259 : #endif
; 260 : {
; 261 : while(pBuffer < pEnd)
0006c e59d2010 ldr r2, [sp, #0x10]
00070 e59d3000 ldr r3, [sp]
00074 e1520003 cmp r2, r3
00078 2a00000e bcs |$L38863|
; 262 : {
; 263 : *pBuffer++ = (WORD)(ATAReadRegister(CSDA_DATA_REG) & 0xFFFF);
0007c e3a00002 mov r0, #2
00080 eb000000 bl ATAReadRegister
00084 e58d0004 str r0, [sp, #4]
00088 e59d2004 ldr r2, [sp, #4]
0008c e3a03cff mov r3, #0xFF, 24
00090 e38330ff orr r3, r3, #0xFF
00094 e0023003 and r3, r2, r3
00098 e1a02803 mov r2, r3, lsl #16
0009c e1a02822 mov r2, r2, lsr #16
000a0 e59d3010 ldr r3, [sp, #0x10]
000a4 e1c320b0 strh r2, [r3]
000a8 e59d3010 ldr r3, [sp, #0x10]
000ac e2833002 add r3, r3, #2
000b0 e58d3010 str r3, [sp, #0x10]
; 264 : }
000b4 eaffffec b |$L38862|
000b8 |$L38863|
000b8 |$L38860|
; 265 : }
; 266 : }
000b8 e28dd008 add sp, sp, #8
000bc e89d6000 ldmia sp, {sp, lr}
000c0 e12fff1e bx lr
000c4 |$L39428|
000c4 00000000 DCD |m_BootDeviceType|
000c8 |$M39424|
ENDP ; |ReadWordBuffer|
EXPORT |ReadByteBuffer|
00000 AREA |.text| { |ReadByteBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$ReadByteBuffer|, PDATA, SELECTION=5, ASSOC=|.text| { |ReadByteBuffer| } ; comdat associative
|$T39434| DCD |$L39433|
DCD 0x40001c04
; Function compile flags: /Ods
00000 AREA |.text| { |ReadByteBuffer| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |ReadByteBuffer| PROC
; 268 : {
00000 |$L39433|
00000 e1a0c00d mov r12, sp
00004 e92d0003 stmdb sp!, {r0, r1}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd008 sub sp, sp, #8
00010 |$M39431|
; 269 : DWORD dwIndex;
; 270 : for(dwIndex = 0 ; dwIndex < dwCount ; dwIndex++)
00010 e3a03000 mov r3, #0
00014 e58d3000 str r3, [sp]
00018 ea000002 b |$L38872|
0001c |$L38873|
0001c e59d3000 ldr r3, [sp]
00020 e2833001 add r3, r3, #1
00024 e58d3000 str r3, [sp]
00028 |$L38872|
00028 e59d2000 ldr r2, [sp]
0002c e59d3014 ldr r3, [sp, #0x14]
00030 e1520003 cmp r2, r3
00034 2a00000a bcs |$L38874|
; 271 : {
; 272 : pBuffer[dwIndex] = (BYTE)(ATAReadRegister(CSDA_DATA_REG) & 0xFF);
00038 e3a00002 mov r0, #2
0003c eb000000 bl ATAReadRegister
00040 e58d0004 str r0, [sp, #4]
00044 e59d3004 ldr r3, [sp, #4]
00048 e20330ff and r3, r3, #0xFF
0004c e20310ff and r1, r3, #0xFF
00050 e59d2010 ldr r2, [sp, #0x10]
00054 e59d3000 ldr r3, [sp]
00058 e0823003 add r3, r2, r3
0005c e5c31000 strb r1, [r3]
; 273 : }
00060 eaffffed b |$L38873|
00064 |$L38874|
; 274 : }
00064 e28dd008 add sp, sp, #8
00068 e89d6000 ldmia sp, {sp, lr}
0006c e12fff1e bx lr
00070 |$M39432|
ENDP ; |ReadByteBuffer|
EXPORT |ReadWord|
00000 AREA |.text| { |ReadWord| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$ReadWord|, PDATA, SELECTION=5, ASSOC=|.text| { |ReadWord| } ; comdat associative
|$T39442| DCD |$L39441|
DCD 0x40001902
; Function compile flags: /Ods
00000 AREA |.text| { |ReadWord| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |ReadWord| PROC
; 276 : {
00000 |$L39441|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd008 sub sp, sp, #8
00008 |$M39439|
; 277 : #ifdef EDB9307_12_15
; 278 : if(m_BootDeviceType == BOOT_FROM_PCMCIA)
00008 e59f3050 ldr r3, [pc, #0x50]
0000c e5933000 ldr r3, [r3]
00010 e3530c01 cmp r3, #1, 24
00014 1a000003 bne |$L38878|
; 279 : return *(volatile USHORT *)(PCMCIACARD_IO + IDE_DATA_REG);
00018 e3a03101 mov r3, #1, 2
0001c e1d330b0 ldrh r3, [r3]
00020 e1cd30b0 strh r3, [sp]
00024 ea000009 b |$L38877|
00028 |$L38878|
; 280 : else
; 281 : #endif
; 282 : return ((WORD)(ATAReadRegister(CSDA_DATA_REG) & 0xFFFF));
00028 e3a00002 mov r0, #2
0002c eb000000 bl ATAReadRegister
00030 e58d0004 str r0, [sp, #4]
00034 e59d2004 ldr r2, [sp, #4]
00038 e3a03cff mov r3, #0xFF, 24
0003c e38330ff orr r3, r3, #0xFF
00040 e0023003 and r3, r2, r3
00044 e1a03803 mov r3, r3, lsl #16
00048 e1a03823 mov r3, r3, lsr #16
0004c e1cd30b0 strh r3, [sp]
00050 |$L38877|
; 279 : return *(volatile USHORT *)(PCMCIACARD_IO + IDE_DATA_REG);
00050 e1dd00b0 ldrh r0, [sp]
; 283 : }
00054 e28dd008 add sp, sp, #8
00058 e49de004 ldr lr, [sp], #4
0005c e12fff1e bx lr
00060 |$L39444|
00060 00000000 DCD |m_BootDeviceType|
00064 |$M39440|
ENDP ; |ReadWord|
EXPORT |ReadByte|
00000 AREA |.text| { |ReadByte| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$ReadByte|, PDATA, SELECTION=5, ASSOC=|.text| { |ReadByte| } ; comdat associative
|$T39451| DCD |$L39450|
DCD 0x40000d02
; Function compile flags: /Ods
00000 AREA |.text| { |ReadByte| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |ReadByte| PROC
; 285 : {
00000 |$L39450|
00000 e52de004 str lr, [sp, #-4]!
00004 e24dd008 sub sp, sp, #8
00008 |$M39448|
; 286 : return ((BYTE)(ATAReadRegister(CSDA_DATA_REG) & 0xFF));
00008 e3a00002 mov r0, #2
0000c eb000000 bl ATAReadRegister
00010 e58d0004 str r0, [sp, #4]
00014 e59d3004 ldr r3, [sp, #4]
00018 e20330ff and r3, r3, #0xFF
0001c e20330ff and r3, r3, #0xFF
00020 e1cd30b0 strh r3, [sp]
00024 e1dd00b0 ldrh r0, [sp]
; 287 : }
00028 e28dd008 add sp, sp, #8
0002c e49de004 ldr lr, [sp], #4
00030 e12fff1e bx lr
00034 |$M39449|
ENDP ; |ReadByte|
EXPORT |WaitForDisc_P|
IMPORT |DelayInuSec|
00000 AREA |.text| { |WaitForDisc_P| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$WaitForDisc_P|, PDATA, SELECTION=5, ASSOC=|.text| { |WaitForDisc_P| } ; comdat associative
|$T39459| DCD |$L39458|
DCD 0x40005504
; Function compile flags: /Ods
00000 AREA |.text| { |WaitForDisc_P| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |WaitForDisc_P| PROC
; 289 : {
00000 |$L39458|
00000 e1a0c00d mov r12, sp
00004 e92d0007 stmdb sp!, {r0 - r2}
00008 e92d5000 stmdb sp!, {r12, lr}
0000c e24dd010 sub sp, sp, #0x10
00010 |$M39456|
; 290 : BYTE bStatusRead;
; 291 : bStatusRead = 0;
00010 e3a03000 mov r3, #0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -