📄 atamain.cod
字号:
00000 AREA |.rdata| { |??_C@_1CM@GOEPMFGL@?$AAA?$AAl?$AAt?$AAe?$AAr?$AAn?$AAa?$AAt?$AAe?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAO?$AAf?$AAf?$AAs?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CM@GOEPMFGL@?$AAA?$AAl?$AAt?$AAe?$AAr?$AAn?$AAa?$AAt?$AAe?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAO?$AAf?$AAf?$AAs?$AAe@| DCB "A"
DCB 0x0, "l", 0x0, "t", 0x0, "e", 0x0, "r", 0x0, "n", 0x0, "a"
DCB 0x0, "t", 0x0, "e", 0x0, "S", 0x0, "t", 0x0, "a", 0x0, "t"
DCB 0x0, "u", 0x0, "s", 0x0, "O", 0x0, "f", 0x0, "f", 0x0, "s"
DCB 0x0, "e", 0x0, "t", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CI@HEEIGOOF@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAO?$AAf?$AAf?$AAs?$AAe?$AAt?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@HEEIGOOF@?$AAD?$AAe?$AAv?$AAi?$AAc?$AAe?$AAC?$AAo?$AAn?$AAt?$AAr?$AAo?$AAl?$AAO?$AAf?$AAf?$AAs?$AAe?$AAt?$AA?$AA@| DCB "D"
DCB 0x0, "e", 0x0, "v", 0x0, "i", 0x0, "c", 0x0, "e", 0x0, "C"
DCB 0x0, "o", 0x0, "n", 0x0, "t", 0x0, "r", 0x0, "o", 0x0, "l"
DCB 0x0, "O", 0x0, "f", 0x0, "f", 0x0, "s", 0x0, "e", 0x0, "t"
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1BG@NELPJJNN@?$AAI?$AAs?$AAr?$AAH?$AAa?$AAn?$AAd?$AAl?$AAe?$AAr?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BG@NELPJJNN@?$AAI?$AAs?$AAr?$AAH?$AAa?$AAn?$AAd?$AAl?$AAe?$AAr?$AA?$AA@| DCB "I"
DCB 0x0, "s", 0x0, "r", 0x0, "H", 0x0, "a", 0x0, "n", 0x0, "d"
DCB 0x0, "l", 0x0, "e", 0x0, "r", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1O@MDNCMDKF@?$AAI?$AAs?$AAr?$AAD?$AAl?$AAl?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1O@MDNCMDKF@?$AAI?$AAs?$AAr?$AAD?$AAl?$AAl?$AA?$AA@| DCB "I", 0x0, "s"
DCB 0x0, "r", 0x0, "D", 0x0, "l", 0x0, "l", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1BM@BABJOPKK@?$AAS?$AAp?$AAa?$AAw?$AAn?$AAF?$AAu?$AAn?$AAc?$AAt?$AAi?$AAo?$AAn?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BM@BABJOPKK@?$AAS?$AAp?$AAa?$AAw?$AAn?$AAF?$AAu?$AAn?$AAc?$AAt?$AAi?$AAo?$AAn?$AA?$AA@| DCB "S"
DCB 0x0, "p", 0x0, "a", 0x0, "w", 0x0, "n", 0x0, "F", 0x0, "u"
DCB 0x0, "n", 0x0, "c", 0x0, "t", 0x0, "i", 0x0, "o", 0x0, "n"
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CK@PKHKJDHK@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAP?$AAa?$AAu?$AAs?$AAe@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CK@PKHKJDHK@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAP?$AAa?$AAu?$AAs?$AAe@| DCB "S"
DCB 0x0, "t", 0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s", 0x0, "P"
DCB 0x0, "o", 0x0, "l", 0x0, "l", 0x0, "C", 0x0, "y", 0x0, "c"
DCB 0x0, "l", 0x0, "e", 0x0, "P", 0x0, "a", 0x0, "u", 0x0, "s"
DCB 0x0, "e", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CI@CKDNEMLE@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAs?$AAP?$AAe?$AAr?$AAC?$AAy?$AAc?$AAl?$AAe?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CI@CKDNEMLE@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAs?$AAP?$AAe?$AAr?$AAC?$AAy?$AAc?$AAl?$AAe?$AA?$AA@| DCB "S"
DCB 0x0, "t", 0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s", 0x0, "P"
DCB 0x0, "o", 0x0, "l", 0x0, "l", 0x0, "s", 0x0, "P", 0x0, "e"
DCB 0x0, "r", 0x0, "C", 0x0, "y", 0x0, "c", 0x0, "l", 0x0, "e"
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CC@FOJHDLJB@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAs?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CC@FOJHDLJB@?$AAS?$AAt?$AAa?$AAt?$AAu?$AAs?$AAP?$AAo?$AAl?$AAl?$AAC?$AAy?$AAc?$AAl?$AAe?$AAs?$AA?$AA@| DCB "S"
DCB 0x0, "t", 0x0, "a", 0x0, "t", 0x0, "u", 0x0, "s", 0x0, "P"
DCB 0x0, "o", 0x0, "l", 0x0, "l", 0x0, "C", 0x0, "y", 0x0, "c"
DCB 0x0, "l", 0x0, "e", 0x0, "s", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1CC@BEHBKIBC@?$AAS?$AAo?$AAf?$AAt?$AAR?$AAe?$AAs?$AAe?$AAt?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1CC@BEHBKIBC@?$AAS?$AAo?$AAf?$AAt?$AAR?$AAe?$AAs?$AAe?$AAt?$AAT?$AAi?$AAm?$AAe?$AAo?$AAu?$AAt?$AA?$AA@| DCB "S"
DCB 0x0, "o", 0x0, "f", 0x0, "t", 0x0, "R", 0x0, "e", 0x0, "s"
DCB 0x0, "e", 0x0, "t", 0x0, "T", 0x0, "i", 0x0, "m", 0x0, "e"
DCB 0x0, "o", 0x0, "u", 0x0, "t", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1BK@HCJMIBBG@?$AAD?$AAM?$AAA?$AAA?$AAl?$AAi?$AAg?$AAn?$AAm?$AAe?$AAn?$AAt?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BK@HCJMIBBG@?$AAD?$AAM?$AAA?$AAA?$AAl?$AAi?$AAg?$AAn?$AAm?$AAe?$AAn?$AAt?$AA?$AA@| DCB "D"
DCB 0x0, "M", 0x0, "A", 0x0, "A", 0x0, "l", 0x0, "i", 0x0, "g"
DCB 0x0, "n", 0x0, "m", 0x0, "e", 0x0, "n", 0x0, "t", 0x0, 0x0
DCB 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1BC@NPAECANO@?$AAV?$AAe?$AAn?$AAd?$AAo?$AAr?$AAI?$AAD?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BC@NPAECANO@?$AAV?$AAe?$AAn?$AAd?$AAo?$AAr?$AAI?$AAD?$AA?$AA@| DCB "V"
DCB 0x0, "e", 0x0, "n", 0x0, "d", 0x0, "o", 0x0, "r", 0x0, "I"
DCB 0x0, "D", 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1BA@BDHDGOBO@?$AAS?$AAy?$AAs?$AAI?$AAn?$AAt?$AAr?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1BA@BDHDGOBO@?$AAS?$AAy?$AAs?$AAI?$AAn?$AAt?$AAr?$AA?$AA@| DCB "S", 0x0
DCB "y", 0x0, "s", 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "r", 0x0
DCB 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_17DJGGJCGD@?$AAI?$AAr?$AAq?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_17DJGGJCGD@?$AAI?$AAr?$AAq?$AA?$AA@| DCB "I", 0x0, "r", 0x0, "q", 0x0
DCB 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1O@ECNENGDC@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?$AA@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1O@ECNENGDC@?$AAL?$AAe?$AAg?$AAa?$AAc?$AAy?$AA?$AA@| DCB "L", 0x0, "e"
DCB 0x0, "g", 0x0, "a", 0x0, "c", 0x0, "y", 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?GetIDERegistryValueSet@@YAHPAUHKEY__@@PAU_IDEREG@@@Z| PROC ; GetIDERegistryValueSet
; 365 : {
00000 |$L33164|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M33162|
00004 e1a04001 mov r4, r1
00008 e1a05000 mov r5, r0
; 366 : BOOL fRet;
; 367 :
; 368 : DEBUGCHK(NULL != pIdeReg);
; 369 :
; 370 : // fetch legacy boolean
; 371 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_LEGACY, &pIdeReg->dwLegacy);
0000c e59f11dc ldr r1, [pc, #0x1DC]
00010 e1a02004 mov r2, r4
00014 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
00018 e3500000 cmp r0, #0
; 372 : if (!fRet) {
; 373 : DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 374 : "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 375 : ), REG_VAL_IDE_LEGACY));
; 376 : return FALSE;
0001c 0a00005f beq |$L33161|
; 377 : }
; 378 : if (pIdeReg->dwLegacy >= 2) {
00020 e5943000 ldr r3, [r4]
00024 e3530002 cmp r3, #2
; 379 : DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 380 : "Atapi!GetIDERegistryValueSet> Bad value(%d) for %s in IDE instance key; valid: {0, 1}\r\n"
; 381 : ), pIdeReg->dwLegacy, REG_VAL_IDE_LEGACY));
; 382 : return FALSE;
00028 2a00005c bcs |$L33161|
; 383 : }
; 384 :
; 385 : // fetch IRQ; this value is not mandatory
; 386 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_IRQ, &pIdeReg->dwIrq);
0002c e59f11b8 ldr r1, [pc, #0x1B8]
00030 e2842004 add r2, r4, #4
00034 e1a00005 mov r0, r5
00038 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
; 387 : if (!fRet) {
; 388 : pIdeReg->dwIrq = IRQ_UNSPECIFIED;
; 389 : }
; 390 :
; 391 : // fetch SysIntr; this is not mandatory
; 392 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_SYSINTR, &pIdeReg->dwSysIntr);
0003c e59f11a4 ldr r1, [pc, #0x1A4]
00040 e3500000 cmp r0, #0
00044 03e03000 mvneq r3, #0
00048 e2842008 add r2, r4, #8
0004c e1a00005 mov r0, r5
00050 05843004 streq r3, [r4, #4]
00054 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
; 393 : if (!fRet) {
; 394 : pIdeReg->dwSysIntr = SYSINTR_NOP;
; 395 : }
; 396 :
; 397 : // fetch vendor id; this is not mandatory
; 398 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_VENDORID, &pIdeReg->dwVendorId);
00058 e59f1184 ldr r1, [pc, #0x184]
0005c e3500000 cmp r0, #0
00060 e3a06000 mov r6, #0
00064 e1a00005 mov r0, r5
00068 e284200c add r2, r4, #0xC
0006c 05846008 streq r6, [r4, #8]
00070 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
; 399 : if (!fRet) {
; 400 : pIdeReg->dwVendorId = 0;
; 401 : }
; 402 :
; 403 : // fetch DMA alignment; this is not mandatory
; 404 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_DMAALIGNMENT, &pIdeReg->dwDMAAlignment);
00074 e59f1164 ldr r1, [pc, #0x164]
00078 e3500000 cmp r0, #0
0007c e1a00005 mov r0, r5
00080 e2842010 add r2, r4, #0x10
00084 0584600c streq r6, [r4, #0xC]
00088 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
; 405 : if (!fRet) {
; 406 : pIdeReg->dwDMAAlignment = 0;
; 407 : }
; 408 :
; 409 : // fetch soft reset timeout
; 410 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_SOFTRESETTIMEOUT, &pIdeReg->dwSoftResetTimeout);
0008c e59f1148 ldr r1, [pc, #0x148]
00090 e3500000 cmp r0, #0
00094 e1a00005 mov r0, r5
00098 e2842014 add r2, r4, #0x14
0009c 05846010 streq r6, [r4, #0x10]
000a0 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
000a4 e3500000 cmp r0, #0
; 411 : if (!fRet) {
; 412 : DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 413 : "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 414 : ), REG_VAL_IDE_SOFTRESETTIMEOUT));
; 415 : return FALSE;
000a8 0a00003c beq |$L33161|
; 416 : }
; 417 :
; 418 : // fetch Status register poll cycles
; 419 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_STATUSPOLLCYCLES, &pIdeReg->dwStatusPollCycles);
000ac e59f1124 ldr r1, [pc, #0x124]
000b0 e2842018 add r2, r4, #0x18
000b4 e1a00005 mov r0, r5
000b8 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
000bc e3500000 cmp r0, #0
; 420 : if (!fRet) {
; 421 : DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 422 : "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 423 : ), REG_VAL_IDE_STATUSPOLLCYCLES));
; 424 : return FALSE;
000c0 0a000036 beq |$L33161|
; 425 : }
; 426 :
; 427 : // fetch Status register polls per cycle
; 428 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_STATUSPOLLSPERCYCLE, &pIdeReg->dwStatusPollsPerCycle);
000c4 e59f1108 ldr r1, [pc, #0x108]
000c8 e284201c add r2, r4, #0x1C
000cc e1a00005 mov r0, r5
000d0 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
000d4 e3500000 cmp r0, #0
; 429 : if (!fRet) {
; 430 : DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 431 : "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 432 : ), REG_VAL_IDE_STATUSPOLLSPERCYCLE));
; 433 : return FALSE;
000d8 0a000030 beq |$L33161|
; 434 : }
; 435 :
; 436 : // fetch Status register poll cycle pause
; 437 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_STATUSPOLLCYCLEPAUSE, &pIdeReg->dwStatusPollCyclePause);
000dc e59f10ec ldr r1, [pc, #0xEC]
000e0 e2842020 add r2, r4, #0x20
000e4 e1a00005 mov r0, r5
000e8 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
000ec e3500000 cmp r0, #0
; 438 : if (!fRet) {
; 439 : DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 440 : "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 441 : ), REG_VAL_IDE_STATUSPOLLCYCLEPAUSE));
; 442 : return FALSE;
000f0 0a00002a beq |$L33161|
; 443 : }
; 444 :
; 445 : // fetch spawn function
; 446 : fRet = AtaGetRegistryString(hIDEInstanceKey, REG_VAL_IDE_SPAWNFUNCTION, &pIdeReg->pszSpawnFunction);
000f4 e59f10d0 ldr r1, [pc, #0xD0]
000f8 e3a03000 mov r3, #0
000fc e2842024 add r2, r4, #0x24
00100 e1a00005 mov r0, r5
00104 eb000000 bl |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z|
00108 e3500000 cmp r0, #0
; 447 : if (!fRet) {
; 448 : DEBUGMSG(ZONE_INIT|ZONE_ERROR, (_T(
; 449 : "Atapi!GetIDERegistryValueSet> Failed to read %s from IDE instance key\r\n"
; 450 : ), REG_VAL_IDE_SPAWNFUNCTION));
; 451 : return FALSE;
0010c 0a000023 beq |$L33161|
; 452 : }
; 453 :
; 454 : // fetch ISR dll; this is not mandatory; allocate pszIsrDll
; 455 : fRet = AtaGetRegistryString(hIDEInstanceKey, REG_VAL_IDE_ISRDLL, &pIdeReg->pszIsrDll, 0);
00110 e59f10b0 ldr r1, [pc, #0xB0]
00114 e3a03000 mov r3, #0
00118 e2842028 add r2, r4, #0x28
0011c e1a00005 mov r0, r5
00120 eb000000 bl |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z|
; 456 : if (!fRet) {
; 457 : pIdeReg->pszIsrDll = NULL;
; 458 : }
; 459 :
; 460 : // fetch ISR handler; this is not mandatory; allocate pszIsrHandler
; 461 : fRet = AtaGetRegistryString(hIDEInstanceKey, REG_VAL_IDE_ISRHANDLER, &pIdeReg->pszIsrHandler, 0);
00124 e59f1098 ldr r1, [pc, #0x98]
00128 e3500000 cmp r0, #0
0012c e1a00005 mov r0, r5
00130 e3a03000 mov r3, #0
00134 e284202c add r2, r4, #0x2C
00138 05846028 streq r6, [r4, #0x28]
0013c eb000000 bl |?AtaGetRegistryString@@YAHPAUHKEY__@@PAGPAPAGK@Z|
; 462 : if (!fRet) {
; 463 : pIdeReg->pszIsrHandler = NULL;
; 464 : }
; 465 :
; 466 : // fetch device control offset; this is not mandatory
; 467 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_DEVICECONTROLOFFSET, &pIdeReg->dwDeviceControlOffset);
00140 e59f1078 ldr r1, [pc, #0x78]
00144 e3500000 cmp r0, #0
00148 e1a00005 mov r0, r5
0014c e2842030 add r2, r4, #0x30
00150 0584602c streq r6, [r4, #0x2C]
00154 eb000000 bl |?AtaGetRegistryValue@@YAHPAUHKEY__@@PAGPAK@Z|
; 468 : if (!fRet) {
; 469 : // this value is only used by atapipcmcia
; 470 : pIdeReg->dwDeviceControlOffset = ATA_REG_ALT_STATUS;
; 471 : }
; 472 :
; 473 : // fetch alternate status offset; this is not mandatory
; 474 : fRet = AtaGetRegistryValue(hIDEInstanceKey, REG_VAL_IDE_ALTERNATESTATUSOFFSET, &pIdeReg->dwAlternateStatusOffset);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -