Rev 224 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 224 | Rev 227 | ||
---|---|---|---|
Line 247... | Line 247... | ||
247 | PROC_BASE equ OS_BASE+0x0080000 |
247 | PROC_BASE equ OS_BASE+0x0080000 |
248 | 248 | ||
Line 249... | Line 249... | ||
249 | public START |
249 | public START |
250 | public service_proc |
250 | public service_proc |
- | 251 | public version |
|
Line 251... | Line 252... | ||
251 | 252 | ||
252 | extrn AttachIntHandler |
253 | extrn AttachIntHandler |
253 | extrn SysMsgBoardStr |
254 | extrn SysMsgBoardStr |
254 | extrn PciApi |
255 | extrn PciApi |
Line 265... | Line 266... | ||
265 | section '.flat' code readable align 16 |
266 | section '.flat' code readable align 16 |
Line 266... | Line 267... | ||
266 | 267 | ||
Line 267... | Line -... | ||
267 | proc START stdcall, state:dword |
- | |
268 | 268 | proc START stdcall, state:dword |
|
269 | mov eax, [state] |
- | |
270 | cmp eax, 1 |
269 | |
271 | je .entry |
270 | cmp [state], 1 |
272 | jmp .stop |
271 | jne .stop |
273 | .entry: |
272 | |
274 | if DEBUG |
273 | if DEBUG |
275 | mov esi, msgInit |
274 | mov esi, msgInit |
Line 321... | Line 320... | ||
321 | stdcall RegService, sz_sound_srv, service_proc |
320 | stdcall RegService, sz_sound_srv, service_proc |
Line 322... | Line 321... | ||
322 | 321 | ||
323 | mov esi, msgOk |
322 | mov esi, msgOk |
324 | call SysMsgBoardStr |
- | |
325 | 323 | call SysMsgBoardStr |
|
326 | ret |
324 | ret |
327 | .fail: |
325 | .fail: |
328 | if DEBUG |
326 | if DEBUG |
329 | mov esi, msgFail |
327 | mov esi, msgFail |
330 | call SysMsgBoardStr |
328 | call SysMsgBoardStr |
331 | end if |
329 | end if |
332 | xor eax, eax |
330 | xor eax, eax |
333 | ret |
331 | ret |
334 | .stop: |
332 | .stop: |
335 | call stop |
333 | call stop |
336 | mov ax, 0x1c |
- | |
337 | mov edx, PCM_OUT_SR_REG |
- | |
338 | call [ctrl.ctrl_write16] |
- | |
339 | mov [ctrl.user_callback], 0 |
334 | xor eax, eax |
340 | ret |
335 | ret |
Line 341... | Line 336... | ||
341 | endp |
336 | endp |
342 | 337 | ||
Line 481... | Line 476... | ||
481 | mov edi, pcmout_bdl |
476 | mov edi, pcmout_bdl |
482 | @@: |
477 | @@: |
483 | mov [edi], eax |
478 | mov [edi], eax |
484 | mov [edi+4], ebx |
479 | mov [edi+4], ebx |
485 | 480 | mov [edi+32], eax |
|
486 | mov [edi+32], eax |
- | |
487 | mov [edi+4+32], ebx |
481 | mov [edi+4+32], ebx |
488 | 482 | mov [edi+64], eax |
|
489 | mov [edi+64], eax |
- | |
490 | mov [edi+4+64], ebx |
483 | mov [edi+4+64], ebx |
491 | 484 | mov [edi+96], eax |
|
492 | mov [edi+96], eax |
- | |
493 | mov [edi+4+96], ebx |
485 | mov [edi+4+96], ebx |
494 | 486 | mov [edi+128], eax |
|
495 | mov [edi+128], eax |
- | |
496 | mov [edi+4+128], ebx |
487 | mov [edi+4+128], ebx |
497 | 488 | mov [edi+160], eax |
|
498 | mov [edi+160], eax |
- | |
499 | mov [edi+4+160], ebx |
489 | mov [edi+4+160], ebx |
500 | 490 | mov [edi+192], eax |
|
501 | mov [edi+192], eax |
- | |
502 | mov [edi+4+192], ebx |
491 | mov [edi+4+192], ebx |
503 | 492 | mov [edi+224], eax |
|
504 | mov [edi+224], eax |
- | |
505 | mov [edi+4+224], ebx |
493 | mov [edi+4+224], ebx |
506 | 494 | ||
Line 507... | Line 495... | ||
507 | add eax, 0x4000 |
495 | add eax, 0x4000 |
508 | add edi, 8 |
496 | add edi, 8 |
Line 572... | Line 560... | ||
572 | test eax, eax |
560 | test eax, eax |
573 | jz .next |
561 | jz .next |
574 | cmp eax, -1 |
562 | cmp eax, -1 |
575 | je .next |
563 | je .next |
576 | 564 | mov edi, devices |
|
577 | mov edi, devices |
- | |
578 | @@: |
565 | @@: |
579 | mov ebx, [edi] |
566 | mov ebx, [edi] |
580 | test ebx, ebx |
567 | test ebx, ebx |
581 | jz .next |
568 | jz .next |
582 | 569 | ||
Line 584... | Line 571... | ||
584 | je .found |
571 | je .found |
585 | add edi, 12 |
572 | add edi, 12 |
586 | jmp @B |
573 | jmp @B |
587 | 574 | ||
Line -... | Line 575... | ||
- | 575 | .next: |
|
588 | .next: inc [devfn] |
576 | inc [devfn] |
589 | cmp [devfn], 256 |
577 | cmp [devfn], 256 |
590 | jb .next_dev |
578 | jb .next_dev |
591 | mov eax, [bus] |
579 | mov eax, [bus] |
592 | inc eax |
580 | inc eax |
593 | mov [bus], eax |
581 | mov [bus], eax |
Line 613... | Line 601... | ||
613 | mov [ctrl.vendor_ids], msg_SIS |
601 | mov [ctrl.vendor_ids], msg_SIS |
614 | 602 | ||
Line 615... | Line 603... | ||
615 | mov esi, [edi+8] |
603 | mov esi, [edi+8] |
616 | mov [ctrl.ctrl_setup], esi |
604 | mov [ctrl.ctrl_setup], esi |
617 | - | ||
618 | ret |
605 | ret |
619 | .err: |
606 | .err: |
620 | xor eax, eax |
607 | xor eax, eax |
621 | ret |
608 | ret |
622 | endp |
609 | endp |
Line 695... | Line 682... | ||
695 | call [ctrl.ctrl_write8] |
682 | call [ctrl.ctrl_write8] |
696 | 683 | ||
Line 697... | Line 684... | ||
697 | mov edx, MC_IN_CR_REG |
684 | mov edx, MC_IN_CR_REG |
698 | call [ctrl.ctrl_write8] |
685 | call [ctrl.ctrl_write8] |
699 | - | ||
700 | - | ||
701 | ret |
686 | ret |
702 | endp |
687 | endp |
Line 703... | Line 688... | ||
703 | 688 | ||
704 | align 4 |
689 | align 4 |
Line 797... | Line 782... | ||
797 | if DEBUG |
782 | if DEBUG |
798 | mov esi, msgWRFail |
783 | mov esi, msgWRFail |
799 | call SysMsgBoardStr |
784 | call SysMsgBoardStr |
800 | end if |
785 | end if |
801 | - | ||
802 | stc |
786 | stc |
803 | ret |
787 | ret |
804 | .ok: |
788 | .ok: |
805 | mov edx, CTRL_STAT |
789 | mov edx, CTRL_STAT |
806 | call [ctrl.ctrl_read32] |
790 | call [ctrl.ctrl_read32] |
Line 885... | Line 869... | ||
885 | 869 | ||
Line 886... | Line 870... | ||
886 | align 4 |
870 | align 4 |
887 | proc stop |
871 | proc stop |
888 | mov edx, PCM_OUT_CR_REG |
872 | mov edx, PCM_OUT_CR_REG |
889 | mov ax, 0x14 |
873 | mov ax, 0x0 |
890 | call [ctrl.ctrl_write8] |
874 | call [ctrl.ctrl_write8] |
Line 891... | Line 875... | ||
891 | 875 | ||
892 | mov eax, 16 |
- | |
893 | mov [ctrl.lvi_reg], eax |
876 | mov ax, 0x1c |
894 | mov edx, PCM_OUT_LVI_REG |
877 | mov edx, PCM_OUT_SR_REG |
895 | call [ctrl.ctrl_write8] |
878 | call [ctrl.ctrl_write16] |
896 | ret |
879 | ret |
Line 897... | Line 880... | ||
897 | endp |
880 | endp |
898 | 881 | ||
Line 1129... | Line 1112... | ||
1129 | align 4 |
1112 | align 4 |
1130 | devices dd (CTRL_SIS shl 16)+VID_SIS,msg_AC, set_SIS |
1113 | devices dd (CTRL_SIS shl 16)+VID_SIS,msg_AC, set_SIS |
1131 | dd 0 |
1114 | dd 0 |
Line -... | Line 1115... | ||
- | 1115 | ||
- | 1116 | version dd 0x00010001 |
|
1132 | 1117 | ||
1133 | msg_AC db '7012 AC97 controller',13,10, 0 |
1118 | msg_AC db '7012 AC97 controller',13,10, 0 |
Line 1134... | Line 1119... | ||
1134 | msg_SIS db 'Silicon Integrated Systems',13,10, 0 |
1119 | msg_SIS db 'Silicon Integrated Systems',13,10, 0 |