⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 atapiio.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:
			 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 + -