WEB开发网
开发学院软件开发汇编语言 Mixer Volume Ctrler V1.0 阅读

Mixer Volume Ctrler V1.0

 2008-04-28 09:32:17 来源:WEB开发网   
核心提示:Dos 下的声卡音量控制程序,以内存驻留键盘激活的方式控制CD-Audio,MIDI,Voice以及Master的音量(未作键盘的解封锁处理,有兴趣可加上)CTRL-F1 -- TURN MASTER VOL UPCTRL-F2 -- TURN MASTER VOL DOWNCTRL-F3 -- TURN CD VOL

Dos 下的声卡音量控制程序,以内存驻留键盘激活的方式控制CD-Audio,MIDI,Voice以及Master的音量(未作键盘的解封锁处理,有兴趣可加上)

CTRL-F1 -- TURN MASTER VOL UP

CTRL-F2 -- TURN MASTER VOL DOWN

CTRL-F3 -- TURN CD VOL UP

CTRL-F4 -- TURN CD VOL DOWN

CTRL-F5 -- TURN FM VOL UP

CTRL-F6 -- TURN FM VOL DOWN

CTRL-F7 -- TURN VOICE VOL UP

CTRL-F8 -- TURN VOICE VOL DOWN

源码:

code segment
assume cs:code,ds:code
org 100h
begin:jmp init
r1 equ 224h
r2 equ 225h
int9 dd ?
mark db 'zd'
new_int proc far
sti
push ax
push es
xor ax,ax
mov es,ax
in al,60h
test al,80h
jnz exit1
test byte ptr es:[0417h],100b
jz exit1
cmp al,59 ;F1
jz ok
cmp al,60 ;F2
jz ok
cmp al,61 ;F3
jz ok
cmp al,62 ;F4
jz ok
cmp al,63 ;F5
jz ok
cmp al,64 ;F6
jz ok
cmp al,65 ;F7
jz ok
cmp al,66 ;F8
jz ok
jmp exit1
ok:
push ax
push bx
push cx
push dx
push bp
push di
push si
push ds
mov bl,al
push cs
pop ds
in al,61h
push ax
or al,80h
out 61h,al
pop ax
out 61h,al
mov al,20h
out 20h,al
call my
pop ds
pop si
pop di
pop bp
pop dx
pop cx
pop bx
pop ax
exit1:
pop es
pop ax
jmp cs:int9
new_int endp
my proc near ;;;;;;;;;;;;;;;;;;;;;;;my app;;;;;;;;;;;;;;;;;;;;;;;;;;
o: cmp bl,59
jnz o1
mov cl,32h
call up
jmp quit
o1:cmp bl,61
jnz o2
mov cl,38h
call up
jmp quit
o2:cmp bl,63
jnz o3
mov cl,36h
call up
jmp quit
o3:cmp bl,65
jnz o4
mov cl,14h
call up
jmp quit
;down
o4: cmp bl,60
jnz o5
mov cl,32h
call down
jmp quit
o5:cmp bl,62
jnz o6
mov cl,38h
call down
jmp quit
o6:cmp bl,64
jnz o7
mov cl,36h
call down
jmp quit
o7:cmp bl,66
jnz o8
mov cl,14h
call down
jmp quit
o8:
quit:ret
my endp
up proc near ;;;;;;;;;;;;;;;UP;;;;;;;;;;;;;;;;;;
xor ax,ax
mov al,cl
mov dx,r1
out dx,al
mov dx,r2
in al,dx
add ax,11h
cmp ax,0ffh
jle goon
mov ax,0ffh
goon:
push ax
mov al,cl
mov dx,r1
out dx,al
pop ax
mov dx,r2
out dx,al
ret
up endp
down proc near ;;;;;;;;;;;;;DOWN;;;;;;;;;;;;;
xor ax,ax
mov al,cl
mov dx,r1
out dx,al
mov dx,r2
in al,dx
sub ax,11h
cmp ax,0h
jge go
mov ax,0h
go:
push ax
mov al,cl
mov dx,r1
out dx,al
pop ax
mov dx,r2
out dx,al
ret
down endp
init :
cli
push cs
pop ds
mov dx,offset zd
mov ah,9
int 21h
mov ax,3509h
int 21h
cmp word ptr es:[bx-2],'dz'
jnz install
mov dx,offset mes1
mov ah,9
int 21h
mov ah,4ch
int 21h
install:
mov di,offset int9
mov [di],bx
mov [di+2],es
push cs
pop ds
mov dx,offset new_int
mov ax,2509h
int 21h
sti
mov dx,offset mes
mov ah,9
int 21h
mov dx,offset init
int 27h
zd db 'MIXER VOLUME CTRL V1.0 ZDsoft 1995',0dh,0ah,'$'
mes db 'CTRL-F1 -- TURN MASTER VOL UP',0dh,0ah
mes2 db 'CTRL-F2 -- TURN MASTER VOL DOWN ',0dh,0ah
mes3 db 'CTRL-F3 -- TURN CD VOL UP ',0dh,0ah
mes4 db 'CTRL-F4 -- TURN CD VOL DOWN ',0dh,0ah
mes5 db 'CTRL-F5 -- TURN FM VOL UP ',0dh,0ah
mes6 db 'CTRL-F6 -- TURN FM VOL DOWN ',0dh,0ah
mes7 db 'CTRL-F7 -- TURN VOICE VOL UP ',0dh,0ah
mes8 db 'CTRL-F8 -- TURN VOICE VOL DOWN ',0dh,0ah,'$'
mes1 db 'Already Install!$'
code ends
end begin

Tags:Mixer Volume Ctrler

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接