📄 basei2s.cod
字号:
00004 e1a04000 mov r4, r0
; 618 : //set the register to default value
; 619 : if(CTRUE!=CodecWriteRegister(0x07,0x00)){return CFALSE;}
00008 e3a02000 mov r2, #0
0000c e3a01007 mov r1, #7
00010 eb000000 bl |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|
00014 e3500001 cmp r0, #1
00018 1a00001d bne |$L37342|
; 620 : if(CTRUE!=CodecWriteRegister(0x08,0x00)){return CFALSE;}
0001c e3a02000 mov r2, #0
00020 e3a01008 mov r1, #8
00024 e1a00004 mov r0, r4
00028 eb000000 bl |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|
0002c e3500001 cmp r0, #1
00030 1a000017 bne |$L37342|
; 621 : if(CTRUE!=CodecWriteRegister(0x09,0x19)){return CFALSE;}
00034 e3a02019 mov r2, #0x19
00038 e3a01009 mov r1, #9
0003c e1a00004 mov r0, r4
00040 eb000000 bl |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|
00044 e3500001 cmp r0, #1
00048 1a000011 bne |$L37342|
; 622 : if(CTRUE!=CodecWriteRegister(0x0A,0x00)){return CFALSE;}
0004c e3a02000 mov r2, #0
00050 e3a0100a mov r1, #0xA
00054 e1a00004 mov r0, r4
00058 eb000000 bl |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|
0005c e3500001 cmp r0, #1
00060 1a00000b bne |$L37342|
; 623 : if(CTRUE!=CodecWriteRegister(0x0B,0x00)){return CFALSE;}
00064 e3a02000 mov r2, #0
00068 e3a0100b mov r1, #0xB
0006c e1a00004 mov r0, r4
00070 eb000000 bl |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|
00074 e3500001 cmp r0, #1
00078 1a000005 bne |$L37342|
; 624 : if(CTRUE!=CodecWriteRegister(0x0C,0xC0)){return CFALSE;}
0007c e3a020c0 mov r2, #0xC0
00080 e3a0100c mov r1, #0xC
00084 e1a00004 mov r0, r4
00088 eb000000 bl |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|
0008c e3500001 cmp r0, #1
00090 0a000002 beq |$L36328|
00094 |$L37342|
00094 e3a00000 mov r0, #0
; 627 :
; 628 : }
00098 e8bd4010 ldmia sp!, {r4, lr}
0009c e12fff1e bx lr
000a0 |$L36328|
; 625 :
; 626 : return TRUE;
000a0 e3a00001 mov r0, #1
; 627 :
; 628 : }
000a4 e8bd4010 ldmia sp!, {r4, lr}
000a8 e12fff1e bx lr
000ac |$M37344|
ENDP ; |?CodecReset@BASEI2S@@QAAHXZ|, BASEI2S::CodecReset
EXPORT |?CodecDeInit@BASEI2S@@QAAHXZ| ; BASEI2S::CodecDeInit
IMPORT |KernelIoControl|
IMPORT |DeleteCriticalSection|
IMPORT |CloseHandle|
00000 AREA |.text| { |?CodecDeInit@BASEI2S@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?CodecDeInit@BASEI2S@@QAAHXZ|, PDATA, SELECTION=5, ASSOC=|.text| { |?CodecDeInit@BASEI2S@@QAAHXZ| } ; comdat associative
|$T37359| DCD |$L37358|
DCD 0x40001502
; Function compile flags: /Ogsy
00000 AREA |.text| { |?CodecDeInit@BASEI2S@@QAAHXZ| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?CodecDeInit@BASEI2S@@QAAHXZ| PROC ; BASEI2S::CodecDeInit
; 643 : {
00000 |$L37358|
00000 e92d4030 stmdb sp!, {r4, r5, lr}
00004 e24dd008 sub sp, sp, #8
00008 |$M37356|
00008 e1a04000 mov r4, r0
; 644 : UnmapRegisters();
; 645 :
; 646 : CloseHandle( m_hI2SInterrupt );
0000c e5940080 ldr r0, [r4, #0x80]
00010 eb000000 bl CloseHandle
; 647 :
; 648 : DeleteCriticalSection( &m_csMutex );
00014 e284006c add r0, r4, #0x6C
00018 eb000000 bl DeleteCriticalSection
; 649 :
; 650 : KernelIoControl(IOCTL_HAL_RELEASE_SYSINTR,
; 651 : &m_dwSysintr, sizeof(UINT32),
; 652 : &m_dwSysintr, sizeof(UINT32), NULL);
0001c e59f002c ldr r0, [pc, #0x2C]
00020 e3a0e000 mov lr, #0
00024 e3a05004 mov r5, #4
00028 e2843084 add r3, r4, #0x84
0002c e2841084 add r1, r4, #0x84
00030 e3a02004 mov r2, #4
00034 e58de004 str lr, [sp, #4]
00038 e58d5000 str r5, [sp]
0003c eb000000 bl KernelIoControl
; 653 : return TRUE;
00040 e3a00001 mov r0, #1
; 654 :
; 655 : }
00044 e28dd008 add sp, sp, #8
00048 e8bd4030 ldmia sp!, {r4, r5, lr}
0004c e12fff1e bx lr
00050 |$L37361|
00050 010100d8 DCD 0x10100d8
00054 |$M37357|
ENDP ; |?CodecDeInit@BASEI2S@@QAAHXZ|, BASEI2S::CodecDeInit
EXPORT |?SetInVolume@BASEI2S@@QAAHGGG@Z| ; BASEI2S::SetInVolume
EXPORT |??_C@_1EO@OOPFBNPL@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5@| [ DATA ] ; `string'
EXPORT |??_C@_1FO@EIAIHIOP@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5@| [ DATA ] ; `string'
00000 AREA |.text| { |?SetInVolume@BASEI2S@@QAAHGGG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?SetInVolume@BASEI2S@@QAAHGGG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetInVolume@BASEI2S@@QAAHGGG@Z| } ; comdat associative
|$T37380| DCD |$L37379|
DCD 0x40004401
00000 AREA |.rdata| { |??_C@_1FO@EIAIHIOP@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FO@EIAIHIOP@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5@| DCB "N"
DCB 0x0, "o", 0x0, "t", 0x0, " ", 0x0, "s", 0x0, "u", 0x0, "p"
DCB 0x0, "p", 0x0, "o", 0x0, "r", 0x0, "t", 0x0, "e", 0x0, "d"
DCB 0x0, " ", 0x0, "I", 0x0, "n", 0x0, "p", 0x0, "u", 0x0, "t"
DCB 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T", 0x0, "L"
DCB 0x0, "_", 0x0, "I", 0x0, "2", 0x0, "S", 0x0, "_", 0x0, "V"
DCB 0x0, "o", 0x0, "l", 0x0, "C", 0x0, "h", 0x0, "a", 0x0, "n"
DCB 0x0, "n", 0x0, "e", 0x0, "l", 0x0, ":", 0x0, " ", 0x0, "%"
DCB 0x0, "x", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1EO@OOPFBNPL@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EO@OOPFBNPL@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5@| DCB "N"
DCB 0x0, "o", 0x0, "t", 0x0, " ", 0x0, "s", 0x0, "u", 0x0, "p"
DCB 0x0, "p", 0x0, "o", 0x0, "r", 0x0, "t", 0x0, "e", 0x0, "d"
DCB 0x0, " ", 0x0, "I", 0x0, "n", 0x0, "p", 0x0, "u", 0x0, "t"
DCB 0x0, " ", 0x0, "I", 0x0, "O", 0x0, "C", 0x0, "T", 0x0, "L"
DCB 0x0, "_", 0x0, "I", 0x0, "2", 0x0, "S", 0x0, "_", 0x0, "*"
DCB 0x0, " ", 0x0, ":", 0x0, " ", 0x0, "%", 0x0, "x", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |?SetInVolume@BASEI2S@@QAAHGGG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |?SetInVolume@BASEI2S@@QAAHGGG@Z| PROC ; BASEI2S::SetInVolume
; 683 : {
00000 |$L37379|
00000 e92d4070 stmdb sp!, {r4 - r6, lr}
00004 |$M37377|
00004 e1a05003 mov r5, r3
00008 e1a06002 mov r6, r2
0000c e1a04000 mov r4, r0
; 684 : /*
; 685 : U16 *status;
; 686 : CodecReadRegister(0x0D,status);
; 687 : if(status!=NULL)return FALSE;
; 688 : else{}
; 689 : */
; 690 :
; 691 : //switch VolServiceCode
; 692 : switch(VolServiceCode)
00010 e59fe0f4 ldr lr, [pc, #0xF4]
00014 e151000e cmp r1, lr
00018 0a000019 beq |$L36344|
0001c e59fe0e4 ldr lr, [pc, #0xE4]
00020 e151000e cmp r1, lr
00024 0a000014 beq |$L36345|
00028 e59fe0d4 ldr lr, [pc, #0xD4]
0002c e151000e cmp r1, lr
00030 0a00000f beq |$L36346|
00034 e59fe0c4 ldr lr, [pc, #0xC4]
00038 e151000e cmp r1, lr
0003c 0a00000a beq |$L36347|
00040 e59fe0b4 ldr lr, [pc, #0xB4]
00044 e151000e cmp r1, lr
00048 0a000005 beq |$L36348|
0004c e59f30a4 ldr r3, [pc, #0xA4]
00050 e1510003 cmp r1, r3
; 700 : default:
; 701 : RETAILMSG(1, (TEXT("Not supported Input IOCTL_I2S_* : %x\r\n"), VolServiceCode));
00054 159f0098 ldrne r0, [pc, #0x98]
00058 1a000015 bne |$L37376|
; 699 : case IOCTL_I2S_IPOD: CodecWriteRegister(0x09,0x1E); break;
0005c e3a0201e mov r2, #0x1E
00060 ea000008 b |$L37374|
00064 |$L36348|
; 698 : case IOCTL_I2S_MEDIA: CodecWriteRegister(0x09,0x1D);break;
00064 e3a0201d mov r2, #0x1D
00068 ea000006 b |$L37374|
0006c |$L36347|
; 697 : case IOCTL_I2S_AUX: CodecWriteRegister(0x09,0x1C); break;
0006c e3a0201c mov r2, #0x1C
00070 ea000004 b |$L37374|
00074 |$L36346|
; 696 : case IOCTL_I2S_FM: CodecWriteRegister(0x09,0x1B); break;
00074 e3a0201b mov r2, #0x1B
00078 ea000002 b |$L37374|
0007c |$L36345|
; 695 : case IOCTL_I2S_TV: CodecWriteRegister(0x09,0x1A); break;
0007c e3a0201a mov r2, #0x1A
00080 ea000000 b |$L37374|
00084 |$L36344|
; 693 : {
; 694 : case IOCTL_I2S_BT: CodecWriteRegister(0x09,0x19); break;
00084 e3a02019 mov r2, #0x19
00088 |$L37374|
00088 e3a01009 mov r1, #9
0008c e1a00004 mov r0, r4
00090 eb000000 bl |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|
; 702 : return FALSE;
; 703 : }
; 704 :
; 705 :
; 706 : //switch VolChannel and VolLevel
; 707 : //Channel B Right
; 708 : //Channel A Left
; 709 : switch(VolChannel)
00094 e59f3054 ldr r3, [pc, #0x54]
00098 e1550003 cmp r5, r3
0009c 0a00000a beq |$L36356|
000a0 e59f3044 ldr r3, [pc, #0x44]
000a4 e1550003 cmp r5, r3
000a8 0a000005 beq |$L36357|
; 713 : default:
; 714 : RETAILMSG(1, (TEXT("Not supported Input IOCTL_I2S_VolChannel: %x\r\n"),VolChannel));
000ac e59f0034 ldr r0, [pc, #0x34]
000b0 e1a01005 mov r1, r5
000b4 |$L37376|
000b4 eb000000 bl NKDbgPrintfW
; 715 : return FALSE;
000b8 e3a00000 mov r0, #0
; 719 : }
000bc e8bd4070 ldmia sp!, {r4 - r6, lr}
000c0 e12fff1e bx lr
000c4 |$L36357|
; 712 : case IOCTL_I2S_ADCHB:CodecWriteRegister(0x07,VolLevel); break;
000c4 e3a01007 mov r1, #7
000c8 ea000000 b |$L37375|
000cc |$L36356|
; 710 : {
; 711 : case IOCTL_I2S_ADCHA:CodecWriteRegister(0x08,VolLevel); break;
000cc e3a01008 mov r1, #8
000d0 |$L37375|
000d0 e20620ff and r2, r6, #0xFF
000d4 e1a00004 mov r0, r4
000d8 eb000000 bl |?CodecWriteRegister@BASEI2S@@IAAHEE@Z|
; 716 : }
; 717 :
; 718 : return 1;
000dc e3a00001 mov r0, #1
; 719 : }
000e0 e8bd4070 ldmia sp!, {r4 - r6, lr}
000e4 e12fff1e bx lr
000e8 |$L37382|
000e8 00000000 DCD |??_C@_1FO@EIAIHIOP@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5@|
000ec f000206c DCD 0xf000206c
000f0 f0002068 DCD 0xf0002068
000f4 00000000 DCD |??_C@_1EO@OOPFBNPL@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAI?$AAn?$AAp?$AAu?$AAt?$AA?5@|
000f8 f0002064 DCD 0xf0002064
000fc f0002060 DCD 0xf0002060
00100 f000205c DCD 0xf000205c
00104 f0002058 DCD 0xf0002058
00108 f0002054 DCD 0xf0002054
0010c f0002050 DCD 0xf0002050
00110 |$M37378|
ENDP ; |?SetInVolume@BASEI2S@@QAAHGGG@Z|, BASEI2S::SetInVolume
EXPORT |?SetOutVolume@BASEI2S@@QAAHGG@Z| ; BASEI2S::SetOutVolume
EXPORT |??_C@_1FC@ELHHECKJ@?$AA?$CL?$AA?$CL?$AA?$CL?$AA?5?$AAS?$AAe?$AAt?$AAO?$AAu?$AAt?$AAV?$AAo?$AAl?$AAu?$AAm?$AAe?$AA?5?$AAV?$AAo?$AAl@| [ DATA ] ; `string'
EXPORT |??_C@_1GA@MBDIIGIN@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AAr?$AAt?$AAe?$AAd?$AA?5?$AAO?$AAu?$AAt?$AAp?$AAu?$AAt@| [ DATA ] ; `string'
00000 AREA |.text| { |?SetOutVolume@BASEI2S@@QAAHGG@Z| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$?SetOutVolume@BASEI2S@@QAAHGG@Z|, PDATA, SELECTION=5, ASSOC=|.text| { |?SetOutVolume@BASEI2S@@QAAHGG@Z| } ; comdat associative
|$T37398| DCD |$L37397|
DCD 0x40002301
00000 AREA |.rdata| { |??_C@_1GA@MBDIIGIN@?$AAN?$AAo?$AAt?$AA?5?$AAs?$AAu?$AAp?$AAp?$AAo?$AA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -