📄 atapiio.cod
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4091
TTL D:\WINCE500\PLATFORM\bvdmain\drivers\atapi\.\atapiio.cpp
CODE32
00000 AREA |.drectve|, DRECTVE
DCB "-defaultlib:coredll.lib "
DCB "-defaultlib:corelibc.lib "
EXPORT |?StallExecution@CDisk@@QAAXK@Z| ; CDisk::StallExecution
IMPORT |StallExecution|
IMPORT |Sleep|
; File d:\wince500\platform\bvdmain\drivers\atapi\diskmain.h
00000 AREA |.text| { |?StallExecution@CDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?StallExecution@CDisk@@QAAXK@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?StallExecution@CDisk@@QAAXK@Z| } ; comdat associative
|$T33055| DCD |$L33054|
DCD 0x40001201
; Function compile flags: /Ogsy
00000 AREA |.text| { |?StallExecution@CDisk@@QAAXK@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?StallExecution@CDisk@@QAAXK@Z| PROC ; CDisk::StallExecution
; 350 : {
00000 |$L33054|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33052|
; 351 : if ((dwTime >= 100) && (m_dwDeviceFlags & DFLAGS_DEVICE_CDROM))
00004 e3510064 cmp r1, #0x64
00008 3a000008 bcc |$L32464|
0000c e5903004 ldr r3, [r0, #4]
00010 e3130301 tst r3, #1, 6
00014 0a000005 beq |$L32464|
; 352 : Sleep (dwTime / 100);
00018 e59f3024 ldr r3, [pc, #0x24]
0001c e0803391 umull r3, r0, r1, r3
00020 e1a002a0 mov r0, r0, lsr #5
00024 eb000000 bl Sleep
; 355 : }
00028 e49de004 ldr lr, [sp], #4
0002c e12fff1e bx lr
00030 |$L32464|
; 353 : else
; 354 : ::StallExecution(dwTime*10);
00030 e0810101 add r0, r1, r1, lsl #2
00034 e1a00080 mov r0, r0, lsl #1
00038 eb000000 bl StallExecution
; 355 : }
0003c e49de004 ldr lr, [sp], #4
00040 e12fff1e bx lr
00044 |$L33057|
00044 51eb851f DCD 0x51eb851f
00048 |$M33053|
ENDP ; |?StallExecution@CDisk@@QAAXK@Z|, CDisk::StallExecution
EXPORT |?GetAltStatus@CDisk@@QAAEXZ| ; CDisk::GetAltStatus
IMPORT |READ_PORT_UCHAR|
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
|$T33065| DCD |$L33064|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetAltStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetAltStatus@CDisk@@QAAEXZ| PROC ; CDisk::GetAltStatus
; 371 : {
00000 |$L33064|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33062|
; 372 : //RETAILMSG(1,(TEXT("GetAltStatus:111111------\r\n")));
; 373 : return (BYTE) ATA_READ_BYTE((volatile PBYTE)m_pATARegAlt + m_dwAltStatusOffset);
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl READ_PORT_UCHAR
; 374 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$L33067|
00014 b6b000c0 DCD 0xb6b000c0
00018 |$M33063|
ENDP ; |?GetAltStatus@CDisk@@QAAEXZ|, CDisk::GetAltStatus
EXPORT |?GetBaseStatus@CDisk@@QAAEXZ| ; CDisk::GetBaseStatus
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
|$T33075| DCD |$L33074|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetBaseStatus@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetBaseStatus@CDisk@@QAAEXZ| PROC ; CDisk::GetBaseStatus
; 379 : {
00000 |$L33074|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33072|
; 380 : BYTE bStatus = ATA_READ_BYTE((volatile PBYTE)m_pATAReg + m_dwCommandStatusOffset);
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl READ_PORT_UCHAR
; 381 : return bStatus;
; 382 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$L33077|
00014 b6a000e0 DCD 0xb6a000e0
00018 |$M33073|
ENDP ; |?GetBaseStatus@CDisk@@QAAEXZ|, CDisk::GetBaseStatus
EXPORT |?GetError@CDisk@@QAAEXZ| ; CDisk::GetError
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
|$T33085| DCD |$L33084|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetError@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetError@CDisk@@QAAEXZ| PROC ; CDisk::GetError
; 386 : inline BYTE GetError() {
00000 |$L33084|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33082|
; 387 : return (BYTE) ATA_READ_BYTE( (volatile PBYTE) m_pATAReg + m_dwFeatureErrorOffset);
00004 e3a00183 mov r0, #0x83, 2
00008 e2400696 sub r0, r0, #0x96, 12
0000c eb000000 bl READ_PORT_UCHAR
; 388 : }
00010 e49de004 ldr lr, [sp], #4
00014 e12fff1e bx lr
00018 |$M33083|
ENDP ; |?GetError@CDisk@@QAAEXZ|, CDisk::GetError
EXPORT |?GetReason@CDisk@@QAAEXZ| ; CDisk::GetReason
00000 AREA |.text| { |?GetReason@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?GetReason@CDisk@@QAAEXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?GetReason@CDisk@@QAAEXZ| } ; comdat associative
|$T33094| DCD |$L33093|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetReason@CDisk@@QAAEXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?GetReason@CDisk@@QAAEXZ| PROC ; CDisk::GetReason
; 392 : inline BYTE GetReason() {
00000 |$L33093|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33091|
; 393 : return (BYTE) ATA_READ_BYTE( (volatile PBYTE) m_pATAReg + m_dwSectCntReasonOffset);
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl READ_PORT_UCHAR
; 394 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$L33096|
00014 b6a00040 DCD 0xb6a00040
00018 |$M33092|
ENDP ; |?GetReason@CDisk@@QAAEXZ|, CDisk::GetReason
EXPORT |?SelectDevice@CDisk@@QAAXXZ| ; CDisk::SelectDevice
IMPORT |WRITE_PORT_UCHAR|
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
|$T33105| DCD |$L33104|
DCD 0x40000b01
; Function compile flags: /Ogsy
00000 AREA |.text| { |?SelectDevice@CDisk@@QAAXXZ| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?SelectDevice@CDisk@@QAAXXZ| PROC ; CDisk::SelectDevice
; 399 : inline void SelectDevice() {
00000 |$L33104|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33102|
; 400 : // int i ;
; 401 : ATA_WRITE_BYTE((volatile PBYTE)m_pATAReg+m_dwDrvHeadOffset, (m_dwDevice == 0 ) ? ATA_HEAD_DRIVE_1 : ATA_HEAD_DRIVE_2);
00004 e590364c ldr r3, [r0, #0x64C]
00008 e59f0018 ldr r0, [pc, #0x18]
0000c e3530000 cmp r3, #0
00010 03a030a0 moveq r3, #0xA0
00014 13a030b0 movne r3, #0xB0
00018 e20310ff and r1, r3, #0xFF
0001c eb000000 bl WRITE_PORT_UCHAR
; 402 : /*
; 403 : for(i=0; i<10; i++)
; 404 : {
; 405 : msWait(500);
; 406 :
; 407 : //RETAILMSG(1,(TEXT("msWait---------\r\n")));
; 408 :
; 409 : if(!IdeIsBusy())
; 410 : break;
; 411 : }
; 412 : if ( i>=10 )
; 413 : {
; 414 : RETAILMSG(1,(TEXT("WriteCommand failed\r\n")));
; 415 : }
; 416 : */
; 417 :
; 418 : //RETAILMSG(1,(TEXT("----------------liudiping-------Test\r\n")));
; 419 : //return ;
; 420 : }
00020 e49de004 ldr lr, [sp], #4
00024 e12fff1e bx lr
00028 |$L33107|
00028 b6a000c0 DCD 0xb6a000c0
0002c |$M33103|
ENDP ; |?SelectDevice@CDisk@@QAAXXZ|, CDisk::SelectDevice
EXPORT |?WriteCommand@CDisk@@QAAXE@Z| ; CDisk::WriteCommand
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
|$T33114| DCD |$L33113|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WriteCommand@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteCommand@CDisk@@QAAXE@Z| PROC ; CDisk::WriteCommand
; 441 : inline void WriteCommand(BYTE bCommand) {
00000 |$L33113|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33111|
; 442 : int i ;
; 443 : //RETAILMSG(1,(TEXT("WriteCommand -----\r\n")));
; 444 : ATA_WRITE_BYTE( (volatile PBYTE)m_pATAReg + m_dwCommandStatusOffset, bCommand);
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl WRITE_PORT_UCHAR
; 445 : /*
; 446 : for(i=0; i<10; i++)
; 447 : {
; 448 : //msWait(200);
; 449 :
; 450 : //msWait(1);
; 451 :
; 452 : //RETAILMSG(1,(TEXT("msWait---------\r\n")));
; 453 :
; 454 : if(!IdeIsBusy())
; 455 : break;
; 456 : }
; 457 :
; 458 : if ( i>=10 )
; 459 : {
; 460 : RETAILMSG(1,(TEXT("WriteCommand failed\r\n")));
; 461 : }
; 462 : */
; 463 :
; 464 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$L33116|
00014 b6a000e0 DCD 0xb6a000e0
00018 |$M33112|
ENDP ; |?WriteCommand@CDisk@@QAAXE@Z|, CDisk::WriteCommand
EXPORT |?WriteFeature@CDisk@@QAAXE@Z| ; CDisk::WriteFeature
00000 AREA |.text| { |?WriteFeature@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 AREA |.pdata$$?WriteFeature@CDisk@@QAAXE@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?WriteFeature@CDisk@@QAAXE@Z| } ; comdat associative
|$T33123| DCD |$L33122|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WriteFeature@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteFeature@CDisk@@QAAXE@Z| PROC ; CDisk::WriteFeature
; 467 : inline void WriteFeature(BYTE bFeature) {
00000 |$L33122|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33120|
; 468 : ATA_WRITE_BYTE( (volatile PBYTE) m_pATAReg + m_dwFeatureErrorOffset, bFeature);
00004 e3a00183 mov r0, #0x83, 2
00008 e2400696 sub r0, r0, #0x96, 12
0000c eb000000 bl WRITE_PORT_UCHAR
; 469 : }
00010 e49de004 ldr lr, [sp], #4
00014 e12fff1e bx lr
00018 |$M33121|
ENDP ; |?WriteFeature@CDisk@@QAAXE@Z|, CDisk::WriteFeature
EXPORT |?WriteSectorCount@CDisk@@QAAXE@Z| ; CDisk::WriteSectorCount
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
|$T33131| DCD |$L33130|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WriteSectorCount@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteSectorCount@CDisk@@QAAXE@Z| PROC ; CDisk::WriteSectorCount
; 473 : {
00000 |$L33130|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33128|
; 474 : ATA_WRITE_BYTE((volatile PBYTE)m_pATAReg + m_dwSectCntReasonOffset, bValue);
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl WRITE_PORT_UCHAR
; 475 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$L33133|
00014 b6a00040 DCD 0xb6a00040
00018 |$M33129|
ENDP ; |?WriteSectorCount@CDisk@@QAAXE@Z|, CDisk::WriteSectorCount
EXPORT |?WriteDriveHeadReg@CDisk@@QAAXE@Z| ; CDisk::WriteDriveHeadReg
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
|$T33140| DCD |$L33139|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WriteDriveHeadReg@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteDriveHeadReg@CDisk@@QAAXE@Z| PROC ; CDisk::WriteDriveHeadReg
; 477 : inline void WriteDriveHeadReg(BYTE bValue) {
00000 |$L33139|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33137|
; 478 : ATA_WRITE_BYTE( (volatile PBYTE) m_pATAReg + m_dwDrvHeadOffset, bValue);
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl WRITE_PORT_UCHAR
; 479 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$L33142|
00014 b6a000c0 DCD 0xb6a000c0
00018 |$M33138|
ENDP ; |?WriteDriveHeadReg@CDisk@@QAAXE@Z|, CDisk::WriteDriveHeadReg
EXPORT |?WriteSectorNumber@CDisk@@QAAXE@Z| ; CDisk::WriteSectorNumber
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
|$T33149| DCD |$L33148|
DCD 0x40000601
; Function compile flags: /Ogsy
00000 AREA |.text| { |?WriteSectorNumber@CDisk@@QAAXE@Z| }, CODE, ARM, SELECTION=2 ; comdat any
00000 |?WriteSectorNumber@CDisk@@QAAXE@Z| PROC ; CDisk::WriteSectorNumber
; 482 : {
00000 |$L33148|
00000 e52de004 str lr, [sp, #-4]!
00004 |$M33146|
; 483 : ATA_WRITE_BYTE((volatile PBYTE)m_pATAReg + m_dwSectNumOffset, bValue);
00004 e59f0008 ldr r0, [pc, #8]
00008 eb000000 bl WRITE_PORT_UCHAR
; 484 : }
0000c e49de004 ldr lr, [sp], #4
00010 e12fff1e bx lr
00014 |$L33151|
00014 b6a00060 DCD 0xb6a00060
00018 |$M33147|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -