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

📄 atapiio.cod

📁 2440 CE500BSP包, EBOOT可用DEBUG版调试
💻 COD
📖 第 1 页 / 共 5 页
字号:
	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, "W", 0x0, "A", 0x0, "I", 0x0, "T", 0x0, "_"
	DCB	0x0, "T", 0x0, "Y", 0x0, "P", 0x0, "E", 0x0, "_", 0x0, "E"
	DCB	0x0, "R", 0x0, "R", 0x0, "O", 0x0, "R", 0x0, 0xd, 0x0, 0xa
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_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, READONLY, SELECTION=2 ; comdat any
|??_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@| 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, "W", 0x0, "A", 0x0, "I", 0x0, "T", 0x0, "_"
	DCB	0x0, "T", 0x0, "Y", 0x0, "P", 0x0, "E", 0x0, "_", 0x0, "N"
	DCB	0x0, "O", 0x0, "T", 0x0, "_", 0x0, "D", 0x0, "R", 0x0, "Q"
	DCB	0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0	; `string'

  00000			 AREA	 |.rdata| { |??_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, READONLY, SELECTION=2 ; comdat any
|??_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@| 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, "W", 0x0, "A", 0x0, "I", 0x0, "T", 0x0, "_"
	DCB	0x0, "T", 0x0, "Y", 0x0, "P", 0x0, "E", 0x0, "_", 0x0, "D"
	DCB	0x0, "R", 0x0, "Q", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_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, READONLY, SELECTION=2 ; comdat any
|??_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@| 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, "W", 0x0, "A", 0x0, "I", 0x0, "T", 0x0, "_"
	DCB	0x0, "T", 0x0, "Y", 0x0, "P", 0x0, "E", 0x0, "_", 0x0, "R"
	DCB	0x0, "E", 0x0, "A", 0x0, "D", 0x0, "Y", 0x0, 0xd, 0x0, 0xa
	DCB	0x0, 0x0, 0x0				; `string'

  00000			 AREA	 |.rdata| { |??_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, READONLY, SELECTION=2 ; comdat any
|??_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@| 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, "W", 0x0, "A", 0x0, "I", 0x0, "T", 0x0, "_"
	DCB	0x0, "T", 0x0, "Y", 0x0, "P", 0x0, "E", 0x0, "_", 0x0, "N"
	DCB	0x0, "O", 0x0, "T", 0x0, "_", 0x0, "B", 0x0, "U", 0x0, "S"
	DCB	0x0, "Y", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'

  00000			 AREA	 |.rdata| { |??_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, READONLY, SELECTION=2 ; comdat any
|??_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@| 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, "W", 0x0, "A", 0x0, "I", 0x0, "T", 0x0, "_"
	DCB	0x0, "T", 0x0, "Y", 0x0, "P", 0x0, "E", 0x0, "_", 0x0, "B"
	DCB	0x0, "U", 0x0, "S", 0x0, "Y", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0
	DCB	0x0					; `string'
; Function compile flags: /Odt

  00408			 AREA	 |.text|, CODE, ARM

  00408		 |?WaitForDisc@CDisk@@UAAHEKK@Z| PROC	; CDisk::WaitForDisc

; 114  : {

  00408		 |$L32356|
  00408	e1a0c00d	 mov         r12, sp
  0040c	e92d000f	 stmdb       sp!, {r0 - r3}
  00410	e92d5000	 stmdb       sp!, {r12, lr}
  00414	e24dd02c	 sub         sp, sp, #0x2C
  00418		 |$M32354|

; 115  :     BYTE bStatusRead = 0;

  00418	e3a03000	 mov         r3, #0
  0041c	e5cd3000	 strb        r3, [sp]

; 116  : 
; 117  :     if (dwPeriod == 0) {

  00420	e59d3040	 ldr         r3, [sp, #0x40]
  00424	e3530000	 cmp         r3, #0
  00428	1a000001	 bne         |$L31987|

; 118  :         dwPeriod = dwTimeOut;

  0042c	e59d303c	 ldr         r3, [sp, #0x3C]
  00430	e58d3040	 str         r3, [sp, #0x40]
  00434		 |$L31987|
  00434		 |$L31989|

; 119  :     }
; 120  : 
; 121  :     while( TRUE)  {
; 122  :         bStatusRead = GetAltStatus();

  00434	e59d0034	 ldr         r0, [sp, #0x34]
  00438	eb000000	 bl          |?GetAltStatus@CDisk@@QAAEXZ|
  0043c	e5cd0008	 strb        r0, [sp, #8]
  00440	e5dd3008	 ldrb        r3, [sp, #8]
  00444	e5cd3000	 strb        r3, [sp]

; 123  :         switch (bStatusType) {

  00448	e5dd3038	 ldrb        r3, [sp, #0x38]
  0044c	e58d300c	 str         r3, [sp, #0xC]
  00450	e59d300c	 ldr         r3, [sp, #0xC]
  00454	e2433001	 sub         r3, r3, #1
  00458	e58d300c	 str         r3, [sp, #0xC]
  0045c	e59d300c	 ldr         r3, [sp, #0xC]
  00460	e3530005	 cmp         r3, #5
  00464	8a00006c	 bhi         |$L31992|
  00468	e59d200c	 ldr         r2, [sp, #0xC]
  0046c	e1a03102	 mov         r3, r2, lsl #2
  00470	e083300f	 add         r3, r3, pc
  00474	e5933004	 ldr         r3, [r3, #4]
  00478	e08ff003	 add         pc, pc, r3
  0047c		 |$L32353|
  0047c		 |$L32352|
  0047c	00000014	 DCD         0x14
  00480	00000054	 DCD         0x54
  00484	00000094	 DCD         0x94
  00488	000000e0	 DCD         0xe0
  0048c	00000120	 DCD         0x120
  00490	00000160	 DCD         0x160
  00494		 |$L31995|

; 124  :             case WAIT_TYPE_BUSY:
; 125  :                 if (bStatusRead & ATA_STATUS_BUSY) {

  00494	e5dd3000	 ldrb        r3, [sp]
  00498	e3130080	 tst         r3, #0x80
  0049c	0a00000b	 beq         |$L31996|

; 126  :                     DEBUGMSG(ZONE_IO, (TEXT("Atapi!CDisk::WaitForDisc> WAIT_TYPE_BUSY\r\n")));

  004a0	e59f3208	 ldr         r3, [pc, #0x208]
  004a4	e5933440	 ldr         r3, [r3, #0x440]
  004a8	e3130008	 tst         r3, #8
  004ac	0a000004	 beq         |$L32337|
  004b0	e59f0210	 ldr         r0, [pc, #0x210]
  004b4	eb000000	 bl          NKDbgPrintfW
  004b8	e3a03001	 mov         r3, #1
  004bc	e58d3010	 str         r3, [sp, #0x10]
  004c0	ea000001	 b           |$L32338|
  004c4		 |$L32337|
  004c4	e3a03000	 mov         r3, #0
  004c8	e58d3010	 str         r3, [sp, #0x10]
  004cc		 |$L32338|

; 127  :                     goto ExitDone;

  004cc	ea000070	 b           |$L32000|
  004d0		 |$L31996|

; 128  :                 }
; 129  :                 break;

  004d0	ea000051	 b           |$L31992|
  004d4		 |$L32001|

; 130  :             case WAIT_TYPE_NOT_BUSY:
; 131  :                 if (!(bStatusRead & ATA_STATUS_BUSY)) {

  004d4	e5dd3000	 ldrb        r3, [sp]
  004d8	e3130080	 tst         r3, #0x80
  004dc	1a00000b	 bne         |$L32002|

; 132  :                     DEBUGMSG(ZONE_IO, (TEXT("Atapi!CDisk::WaitForDisc> WAIT_TYPE_NOT_BUSY\r\n")));

  004e0	e59f31c8	 ldr         r3, [pc, #0x1C8]
  004e4	e5933440	 ldr         r3, [r3, #0x440]
  004e8	e3130008	 tst         r3, #8
  004ec	0a000004	 beq         |$L32339|
  004f0	e59f01cc	 ldr         r0, [pc, #0x1CC]
  004f4	eb000000	 bl          NKDbgPrintfW
  004f8	e3a03001	 mov         r3, #1
  004fc	e58d3014	 str         r3, [sp, #0x14]
  00500	ea000001	 b           |$L32340|
  00504		 |$L32339|
  00504	e3a03000	 mov         r3, #0
  00508	e58d3014	 str         r3, [sp, #0x14]
  0050c		 |$L32340|

; 133  :                     goto ExitDone;

  0050c	ea000060	 b           |$L32005|
  00510		 |$L32002|

; 134  :                 }
; 135  :                 break;

  00510	ea000041	 b           |$L31992|
  00514		 |$L32006|

; 136  :             case WAIT_TYPE_READY:
; 137  :                 if (bStatusRead & ATA_STATUS_READY) {

  00514	e5dd3000	 ldrb        r3, [sp]
  00518	e3130040	 tst         r3, #0x40
  0051c	0a00000e	 beq         |$L32007|

; 138  :                     DEBUGMSG(ZONE_IO, (TEXT("Atapi!CDisk::WaitForDisc> WAIT_TYPE_READY\r\n")));

  00520	e59f3188	 ldr         r3, [pc, #0x188]
  00524	e5933440	 ldr         r3, [r3, #0x440]
  00528	e3130008	 tst         r3, #8
  0052c	0a000004	 beq         |$L32341|
  00530	e59f0188	 ldr         r0, [pc, #0x188]
  00534	eb000000	 bl          NKDbgPrintfW
  00538	e3a03001	 mov         r3, #1
  0053c	e58d3018	 str         r3, [sp, #0x18]
  00540	ea000001	 b           |$L32342|
  00544		 |$L32341|
  00544	e3a03000	 mov         r3, #0
  00548	e58d3018	 str         r3, [sp, #0x18]
  0054c		 |$L32342|

; 139  :                     StallExecution(100);

  0054c	e3a01064	 mov         r1, #0x64
  00550	e59d0034	 ldr         r0, [sp, #0x34]
  00554	eb000000	 bl          |?StallExecution@CDisk@@QAAXK@Z|

; 140  :                     goto ExitDone;

  00558	ea00004d	 b           |$L32010|
  0055c		 |$L32007|

; 141  :                 }
; 142  :                 break;

  0055c	ea00002e	 b           |$L31992|
  00560		 |$L32011|

; 143  :             case WAIT_TYPE_DRQ:
; 144  :                 if (bStatusRead & ATA_STATUS_DATA_REQ) {

  00560	e5dd3000	 ldrb        r3, [sp]
  00564	e3130008	 tst         r3, #8
  00568	0a00000b	 beq         |$L32012|

; 145  :                     DEBUGMSG(ZONE_IO, (TEXT("Atapi!CDisk::WaitForDisc> WAIT_TYPE_DRQ\r\n")));

  0056c	e59f313c	 ldr         r3, [pc, #0x13C]
  00570	e5933440	 ldr         r3, [r3, #0x440]
  00574	e3130008	 tst         r3, #8
  00578	0a000004	 beq         |$L32343|
  0057c	e59f0138	 ldr         r0, [pc, #0x138]
  00580	eb000000	 bl          NKDbgPrintfW
  00584	e3a03001	 mov         r3, #1
  00588	e58d301c	 str         r3, [sp, #0x1C]
  0058c	ea000001	 b           |$L32344|
  00590		 |$L32343|
  00590	e3a03000	 mov         r3, #0
  00594	e58d301c	 str         r3, [sp, #0x1C]
  00598		 |$L32344|

; 146  :                     goto ExitDone;

  00598	ea00003d	 b           |$L32015|
  0059c		 |$L32012|

; 147  :                 }
; 148  :                 break;

  0059c	ea00001e	 b           |$L31992|
  005a0		 |$L32016|

; 149  :             case WAIT_TYPE_NOT_DRQ:
; 150  :                 if (!(bStatusRead & ATA_STATUS_DATA_REQ)) {

  005a0	e5dd3000	 ldrb        r3, [sp]
  005a4	e3130008	 tst         r3, #8
  005a8	1a00000b	 bne         |$L32017|

; 151  :                     DEBUGMSG(ZONE_IO, (TEXT("Atapi!CDisk::WaitForDisc> WAIT_TYPE_NOT_DRQ\r\n")));

  005ac	e59f30fc	 ldr         r3, [pc, #0xFC]
  005b0	e5933440	 ldr         r3, [r3, #0x440]
  005b4	e3130008	 tst         r3, #8
  005b8	0a000004	 beq         |$L32345|
  005bc	e59f00f4	 ldr         r0, [pc, #0xF4]
  005c0	eb000000	 bl          NKDbgPrintfW
  005c4	e3a03001	 mov         r3, #1
  005c8	e58d3020	 str         r3, [sp, #0x20]
  005cc	ea000001	 b           |$L32346|
  005d0		 |$L32345|
  005d0	e3a03000	 mov         r3, #0
  005d4	e58d3020	 str         r3, [sp, #0x20]
  005d8		 |$L32346|

; 152  :                     goto ExitDone;

  005d8	ea00002d	 b           |$L32020|
  005dc		 |$L32017|

; 153  :                 }
; 154  :                 break;

  005dc	ea00000e	 b           |$L31992|
  005e0		 |$L32021|

; 155  :             case WAIT_TYPE_ERROR:
; 156  :                 if (bStatusRead & ATA_STATUS_ERROR) {

  005e0	e5dd3000	 ldrb        r3, [sp]
  005e4	e3130001	 tst         r3, #1
  005e8	0a00000b	 beq         |$L32022|

; 157  :                     DEBUGMSG(ZONE_IO, (TEXT("Atapi!CDisk::WaitForDisc> WAIT_TYPE_ERROR\r\n")));

  005ec	e59f30bc	 ldr         r3, [pc, #0xBC]
  005f0	e5933440	 ldr         r3, [r3, #0x440]
  005f4	e3130008	 tst         r3, #8
  005f8	0a000004	 beq         |$L32347|
  005fc	e59f00b0	 ldr         r0, [pc, #0xB0]
  00600	eb000000	 bl          NKDbgPrintfW
  00604	e3a03001	 mov         r3, #1
  00608	e58d3024	 str         r3, [sp, #0x24]
  0060c	ea000001	 b           |$L32348|
  00610		 |$L32347|
  00610	e3a03000	 mov         r3, #0
  00614	e58d3024	 str         r3, [sp, #0x24]
  00618		 |$L32348|

; 158  :                     goto ExitDone;

  00618	ea00001d	 b           |$L32025|
  0061c		 |$L32022|
  0061c		 |$L31992|

⌨️ 快捷键说明

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