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

📄 atapiio.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:
; 159  :                 }
; 160  :                 break;
; 161  :         }
; 162  :         if ((int)dwTimeOut > 0) {

  0061c	e59d303c	 ldr         r3, [sp, #0x3C]
  00620	e3530000	 cmp         r3, #0
  00624	da000007	 ble         |$L32027|

; 163  :             StallExecution(dwPeriod);

  00628	e59d1040	 ldr         r1, [sp, #0x40]
  0062c	e59d0034	 ldr         r0, [sp, #0x34]
  00630	eb000000	 bl          |?StallExecution@CDisk@@QAAXK@Z|

; 164  :             dwTimeOut -= dwPeriod;

  00634	e59d203c	 ldr         r2, [sp, #0x3C]
  00638	e59d3040	 ldr         r3, [sp, #0x40]
  0063c	e0423003	 sub         r3, r2, r3
  00640	e58d303c	 str         r3, [sp, #0x3C]

; 165  :         }
; 166  :         else {

  00644	ea000011	 b           |$L32028|
  00648		 |$L32027|

; 167  :             DEBUGMSG(ZONE_ERROR, (TEXT(
; 168  :                 "Atapi!CDisk::WaitForDisc> timeout; bStatusType(%d); status(%02X)\r\n"
; 169  :                 ), bStatusType, bStatusRead));

  00648	e59f3060	 ldr         r3, [pc, #0x60]
  0064c	e5933440	 ldr         r3, [r3, #0x440]
  00650	e3130a02	 tst         r3, #2, 20
  00654	0a000008	 beq         |$L32349|
  00658	e5dd3000	 ldrb        r3, [sp]
  0065c	e1a02003	 mov         r2, r3
  00660	e5dd3038	 ldrb        r3, [sp, #0x38]
  00664	e1a01003	 mov         r1, r3
  00668	e59f003c	 ldr         r0, [pc, #0x3C]
  0066c	eb000000	 bl          NKDbgPrintfW
  00670	e3a03001	 mov         r3, #1
  00674	e58d3028	 str         r3, [sp, #0x28]
  00678	ea000001	 b           |$L32350|
  0067c		 |$L32349|
  0067c	e3a03000	 mov         r3, #0
  00680	e58d3028	 str         r3, [sp, #0x28]
  00684		 |$L32350|

; 170  :             return ERROR_GEN_FAILURE;

  00684	e3a0301f	 mov         r3, #0x1F
  00688	e58d3004	 str         r3, [sp, #4]
  0068c	ea000002	 b           |$L31985|
  00690		 |$L32028|

; 171  :         }
; 172  :     }

  00690	eaffff67	 b           |$L31989|
  00694		 |$L32025|
  00694		 |$L32020|
  00694		 |$L32015|
  00694		 |$L32010|
  00694		 |$L32005|
  00694		 |$L32000|
  00694		 |$ExitDone$31999|

; 173  : ExitDone:
; 174  :     return ERROR_SUCCESS;

  00694	e3a03000	 mov         r3, #0
  00698	e58d3004	 str         r3, [sp, #4]
  0069c		 |$L31985|

; 170  :             return ERROR_GEN_FAILURE;

  0069c	e59d0004	 ldr         r0, [sp, #4]

; 175  : }

  006a0	e28dd02c	 add         sp, sp, #0x2C
  006a4	e89d6000	 ldmia       sp, {sp, lr}
  006a8	e12fff1e	 bx          lr
  006ac		 |$L32358|
  006ac	00000000	 DCD         |??_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@|
  006b0	00000000	 DCD         |dpCurSettings|
  006b4	00000000	 DCD         |??_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@|
  006b8	00000000	 DCD         |??_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@|
  006bc	00000000	 DCD         |??_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@|
  006c0	00000000	 DCD         |??_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@|
  006c4	00000000	 DCD         |??_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@|
  006c8	00000000	 DCD         |??_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@|
  006cc		 |$M32355|

			 ENDP  ; |?WaitForDisc@CDisk@@UAAHEKK@Z|, CDisk::WaitForDisc

	EXPORT	|??_C@_1IG@HOOEGBKE@?$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	|?GetReason@CDisk@@QAAEXZ|		; CDisk::GetReason
	EXPORT	|?WaitForDRQ@CDisk@@UAAHXZ|		; CDisk::WaitForDRQ

  00018			 AREA	 |.pdata|, PDATA
|$T32368| DCD	|$L32367|
	DCD	0x40009404

  00000			 AREA	 |.rdata| { |??_C@_1IG@HOOEGBKE@?$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@HOOEGBKE@?$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, "R", 0x0, "Q", 0x0, ">", 0x0, " "
	DCB	0x0, "s", 0x0, "t", 0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s"
	DCB	0x0, "(", 0x0, "%", 0x0, "0", 0x0, "2", 0x0, "X", 0x0, ")"
	DCB	0x0, ",", 0x0, " ", 0x0, "e", 0x0, "r", 0x0, "r", 0x0, "o"
	DCB	0x0, "r", 0x0, "(", 0x0, "%", 0x0, "0", 0x0, "2", 0x0, "X"
	DCB	0x0, ")", 0x0, ",", 0x0, " ", 0x0, "r", 0x0, "e", 0x0, "a"
	DCB	0x0, "s", 0x0, "o", 0x0, "n", 0x0, "(", 0x0, "%", 0x0, "0"
	DCB	0x0, "2", 0x0, "X", 0x0, ")", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
	DCB	0x0					; `string'
; Function compile flags: /Odt

  006cc			 AREA	 |.text|, CODE, ARM

  006cc		 |?WaitForDRQ@CDisk@@UAAHXZ| PROC	; CDisk::WaitForDRQ

; 188  : {

  006cc		 |$L32367|
  006cc	e1a0c00d	 mov         r12, sp
  006d0	e92d0001	 stmdb       sp!, {r0}
  006d4	e92d5000	 stmdb       sp!, {r12, lr}
  006d8	e24dd02c	 sub         sp, sp, #0x2C
  006dc		 |$M32365|

; 189  :     DWORD i,j;
; 190  :     BYTE bStatus = 0;

  006dc	e3a03000	 mov         r3, #0
  006e0	e5cd3010	 strb        r3, [sp, #0x10]

; 191  : 
; 192  :     if (ZONE_CELOG) CeLogData(TRUE, CELID_ATAPI_WAITDRQ, NULL, 0, 0, CELZONE_ALWAYSON, 0, FALSE);

  006e4	e59f3228	 ldr         r3, [pc, #0x228]
  006e8	e5933440	 ldr         r3, [r3, #0x440]
  006ec	e3130902	 tst         r3, #2, 18
  006f0	0a00000d	 beq         |$L32037|
  006f4	e3a03000	 mov         r3, #0
  006f8	e58d300c	 str         r3, [sp, #0xC]
  006fc	e3a03000	 mov         r3, #0
  00700	e58d3008	 str         r3, [sp, #8]
  00704	e3a03101	 mov         r3, #1, 2
  00708	e58d3004	 str         r3, [sp, #4]
  0070c	e3a03000	 mov         r3, #0
  00710	e58d3000	 str         r3, [sp]
  00714	e3a03000	 mov         r3, #0
  00718	e3a02000	 mov         r2, #0
  0071c	e3a01d86	 mov         r1, #0x86, 26
  00720	e3811007	 orr         r1, r1, #7
  00724	e3a00001	 mov         r0, #1
  00728	eb000000	 bl          CeLogData
  0072c		 |$L32037|

; 193  : 
; 194  :     for (i = 0; i < m_dwWaitCheckIter; i++) {

  0072c	e3a03000	 mov         r3, #0
  00730	e58d3014	 str         r3, [sp, #0x14]
  00734	ea000002	 b           |$L32038|
  00738		 |$L32039|
  00738	e59d3014	 ldr         r3, [sp, #0x14]
  0073c	e2833001	 add         r3, r3, #1
  00740	e58d3014	 str         r3, [sp, #0x14]
  00744		 |$L32038|
  00744	e59d3034	 ldr         r3, [sp, #0x34]
  00748	e2833c06	 add         r3, r3, #6, 24
  0074c	e28330bc	 add         r3, r3, #0xBC
  00750	e59d2014	 ldr         r2, [sp, #0x14]
  00754	e5933000	 ldr         r3, [r3]
  00758	e1520003	 cmp         r2, r3
  0075c	2a00004c	 bcs         |$L32040|

; 195  :         for (j = 0; j < m_dwWaitSampleTimes; j++) {

  00760	e3a03000	 mov         r3, #0
  00764	e58d3018	 str         r3, [sp, #0x18]
  00768	ea000002	 b           |$L32041|
  0076c		 |$L32042|
  0076c	e59d3018	 ldr         r3, [sp, #0x18]
  00770	e2833001	 add         r3, r3, #1
  00774	e58d3018	 str         r3, [sp, #0x18]
  00778		 |$L32041|
  00778	e59d3034	 ldr         r3, [sp, #0x34]
  0077c	e2833d1b	 add         r3, r3, #0x1B, 26
  00780	e59d2018	 ldr         r2, [sp, #0x18]
  00784	e5933000	 ldr         r3, [r3]
  00788	e1520003	 cmp         r2, r3
  0078c	2a000028	 bcs         |$L32043|

; 196  :             bStatus = GetAltStatus() & (ATA_STATUS_BUSY|ATA_STATUS_DATA_REQ);

  00790	e59d0034	 ldr         r0, [sp, #0x34]
  00794	eb000000	 bl          |?GetAltStatus@CDisk@@QAAEXZ|
  00798	e5cd0020	 strb        r0, [sp, #0x20]
  0079c	e5dd3020	 ldrb        r3, [sp, #0x20]
  007a0	e2033088	 and         r3, r3, #0x88
  007a4	e20330ff	 and         r3, r3, #0xFF
  007a8	e5cd3010	 strb        r3, [sp, #0x10]

; 197  :             if ((bStatus & ATA_STATUS_BUSY) == 0) {

  007ac	e5dd3010	 ldrb        r3, [sp, #0x10]
  007b0	e3130080	 tst         r3, #0x80
  007b4	1a000017	 bne         |$L32044|

; 198  :                 if (bStatus & ATA_STATUS_DATA_REQ){

  007b8	e5dd3010	 ldrb        r3, [sp, #0x10]
  007bc	e3130008	 tst         r3, #8
  007c0	0a000014	 beq         |$L32045|

; 199  :                     if (ZONE_CELOG) CeLogData(TRUE, CELID_ATAPI_STATUSWAITDRQ, &bStatus, sizeof(bStatus), 0, CELZONE_ALWAYSON, 0, FALSE);

  007c4	e59f3148	 ldr         r3, [pc, #0x148]
  007c8	e5933440	 ldr         r3, [r3, #0x440]
  007cc	e3130902	 tst         r3, #2, 18
  007d0	0a00000d	 beq         |$L32046|
  007d4	e3a03000	 mov         r3, #0
  007d8	e58d300c	 str         r3, [sp, #0xC]
  007dc	e3a03000	 mov         r3, #0
  007e0	e58d3008	 str         r3, [sp, #8]
  007e4	e3a03101	 mov         r3, #1, 2
  007e8	e58d3004	 str         r3, [sp, #4]
  007ec	e3a03000	 mov         r3, #0
  007f0	e58d3000	 str         r3, [sp]
  007f4	e3a03001	 mov         r3, #1
  007f8	e28d2010	 add         r2, sp, #0x10
  007fc	e3a01d86	 mov         r1, #0x86, 26
  00800	e3811008	 orr         r1, r1, #8
  00804	e3a00001	 mov         r0, #1
  00808	eb000000	 bl          CeLogData
  0080c		 |$L32046|

; 200  :                     return TRUE;

  0080c	e3a03001	 mov         r3, #1
  00810	e58d301c	 str         r3, [sp, #0x1C]
  00814	ea00003a	 b           |$L32033|
  00818		 |$L32045|
  00818		 |$L32044|

; 201  :                 }
; 202  :             }
; 203  :             StallExecution(m_dwWaitStallTime);

  00818	e59d3034	 ldr         r3, [sp, #0x34]
  0081c	e2833c06	 add         r3, r3, #6, 24
  00820	e28330c4	 add         r3, r3, #0xC4
  00824	e5931000	 ldr         r1, [r3]
  00828	e59d0034	 ldr         r0, [sp, #0x34]
  0082c	eb000000	 bl          |?StallExecution@CDisk@@QAAXK@Z|

; 204  :         }

  00830	eaffffcd	 b           |$L32042|
  00834		 |$L32043|

; 205  :         DEBUGMSG(ZONE_WARNING, (TEXT(
; 206  :             "Atapi!CDisk::WaitForDRQ> status(%02X), error(%02X), reason(%02X)\r\n"
; 207  :             ), GetAltStatus(), GetError(), GetReason()));

  00834	e59f30d8	 ldr         r3, [pc, #0xD8]
  00838	e5933440	 ldr         r3, [r3, #0x440]
  0083c	e3130a01	 tst         r3, #1, 20
  00840	0a000010	 beq         |$L32360|
  00844	e59d0034	 ldr         r0, [sp, #0x34]
  00848	eb000000	 bl          |?GetReason@CDisk@@QAAEXZ|
  0084c	e5cd0021	 strb        r0, [sp, #0x21]
  00850	e59d0034	 ldr         r0, [sp, #0x34]
  00854	eb000000	 bl          |?GetError@CDisk@@QAAEXZ|
  00858	e5cd0022	 strb        r0, [sp, #0x22]
  0085c	e59d0034	 ldr         r0, [sp, #0x34]
  00860	eb000000	 bl          |?GetAltStatus@CDisk@@QAAEXZ|
  00864	e5cd0023	 strb        r0, [sp, #0x23]
  00868	e5dd3021	 ldrb        r3, [sp, #0x21]
  0086c	e5dd2022	 ldrb        r2, [sp, #0x22]
  00870	e5dd1023	 ldrb        r1, [sp, #0x23]
  00874	e59f009c	 ldr         r0, [pc, #0x9C]
  00878	eb000000	 bl          NKDbgPrintfW
  0087c	e3a03001	 mov         r3, #1
  00880	e58d3024	 str         r3, [sp, #0x24]
  00884	ea000001	 b           |$L32361|
  00888		 |$L32360|
  00888	e3a03000	 mov         r3, #0
  0088c	e58d3024	 str         r3, [sp, #0x24]
  00890		 |$L32361|

; 208  :     }

  00890	eaffffa8	 b           |$L32039|
  00894		 |$L32040|

; 209  : 
; 210  :     if (ZONE_CELOG) CeLogData(TRUE, CELID_ATAPI_STATUSWAITDRQ, &bStatus, sizeof(bStatus), 0, CELZONE_ALWAYSON, 0, FALSE);

  00894	e59f3078	 ldr         r3, [pc, #0x78]
  00898	e5933440	 ldr         r3, [r3, #0x440]
  0089c	e3130902	 tst         r3, #2, 18
  008a0	0a00000d	 beq         |$L32049|
  008a4	e3a03000	 mov         r3, #0
  008a8	e58d300c	 str         r3, [sp, #0xC]
  008ac	e3a03000	 mov         r3, #0
  008b0	e58d3008	 str         r3, [sp, #8]
  008b4	e3a03101	 mov         r3, #1, 2
  008b8	e58d3004	 str         r3, [sp, #4]
  008bc	e3a03000	 mov         r3, #0
  008c0	e58d3000	 str         r3, [sp]
  008c4	e3a03001	 mov         r3, #1
  008c8	e28d2010	 add         r2, sp, #0x10
  008cc	e3a01d86	 mov         r1, #0x86, 26
  008d0	e3811008	 orr         r1, r1, #8
  008d4	e3a00001	 mov         r0, #1
  008d8	eb000000	 bl          CeLogData
  008dc		 |$L32049|

; 211  : 
; 212  :     return (bStatus == ATA_STATUS_DATA_REQ);

  008dc	e5dd3010	 ldrb        r3, [sp, #0x10]
  008e0	e3530008	 cmp         r3, #8
  008e4	1a000002	 bne         |$L32362|
  008e8	e3a03001	 m

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -