欧美性猛交黑人xxxx,成人毛片一区二区三区,久久综合九色综合精品,男的把j放进女人下面视频免费

鼠標(biāo)控制CD-Audio播放程序

  • 發(fā)布于:2023-11-22
  • 199 人圍觀

  只要你想聽(tīng)CD,它在任何時(shí)候(DOS下,游戲下都可以)用鼠標(biāo)激活,鼠標(biāo)控制,為你播放.并提供了選曲和暫停功能,這為光驅(qū)上無(wú)直接播放建的朋友提供了莫大的方便.該程序思路巧妙,利用INT 33H的現(xiàn)有鼠標(biāo)功能,巧妙擴(kuò)展,達(dá)到任何條件下激活的能力!!如果你有興趣,可以把他改為鼠標(biāo)控制XXXXXX的程序,隨時(shí)激活,方便無(wú)比!!!

源碼如下:

;mcd.asm
.286
code segment
assume cs:code,ds:code
org 100h
start:
jmp init_cd ;到初始化
cd_command db 32 dup(0) ;CD-AUDIO 控制區(qū)
cd_state db 32 dup(0) ;CD-AUDIO 狀態(tài)區(qū)
max_track db 0,0 ;CD最大道
min_track db 0,0 ;CD最小道
lead_track dw 0
track dw ?
track_buff db 40*4 dup(?) ;CD音道數(shù)據(jù)區(qū)(預(yù)定為40個(gè))
int33_off dw ? ;原鼠標(biāo)中斷向量
int33_seg dw ?
user_dx dw ? ;用戶鼠標(biāo)事件向量
user_es dw ?
mark db 0
ctrl db 0 ;CD控制方式
next equ 1 ;前進(jìn)
back equ 0 ;到退
stop equ 2 ;停止
cd_rom_driver dw ? ;CD驅(qū)動(dòng)器號(hào)
red_max_h dw ?
red_max_l dw ?
cd_int macro ;控制CD-AUDIO的宏
mov ax,1510h
mov cx,cd_rom_driver
int 2fh
endm

my: ;本程序的鼠標(biāo)事件 MY
pushf
cmp bx,7 ;是否三鍵同時(shí)按下
jnz ttt
mov cs:ctrl,stop ;停止
jmp ll
ttt:
cmp bx,3 ;是否兩鍵同時(shí)按下
jnz q
cmp dx,1 ;鼠標(biāo)在最上
jnb other
mov cs:ctrl,stop ;停止
jmp ll
other:
cmp cx,599 ;鼠標(biāo)在最右
jb qqq
mov cs:ctrl,next ;前進(jìn)
jmp ll

qqq:
cmp cx,1
jae q
mov cs:ctrl,back ;鼠標(biāo)在最左,倒退
ll:
pusha
push ds
push es

push cs
pop ds
push cs
pop es

call mediachg ;是否更換CD
cmp al,0ffh
jnz che
call init ;更換CD后的初始化
che:
call check ;CD狀態(tài)檢查
cmp cs:ctrl,next
jz ff
cmp cs:ctrl,back
jz rew

ff: ;前進(jìn)
cmp al,max_track ;是超過(guò)最大音軌
jb goo
mov al,0 ;如超過(guò),由第一音軌開(kāi)始
goo:
inc al ;音軌加一
jmp okk

rew: ;倒退
cmp al,1 ;是否小于最小音軌
ja dy
mov al,max_track ;如小于,由最大音軌開(kāi)始
jmp okk
dy:
dec al ;音軌減一

okk:
mov byte ptr cs:track,al
call pause ;暫停
cmp cs:ctrl,stop
jz exit
call play ;播放
exit:
pop es
pop ds
popa

q:
cmp cs:mark,1 ;用戶事件是否有效
jnz qq
popf
jmp dword ptr cs:user_dx;轉(zhuǎn)向(模擬)用戶鼠標(biāo)事件
qq:
popf
retf ;MY 鼠標(biāo)事件返回

new_33 proc near ;新的鼠標(biāo)中斷
cmp ax,8888h
jnz l005
mov ax,'zd' ;是否已駐留
iret ;中斷返回

l005:
cmp ax,000ch
jz l_000 ;設(shè)置鼠標(biāo)事件,轉(zhuǎn)l_000
cmp ax,0
jz mre
cmp ax,0021h
jnz l001 ;鼠標(biāo)初始化

mre:
mov cs:mark,0
pushf
call dword ptr cs:int33_off ;調(diào)用原鼠標(biāo)中斷初始化
pusha
push es
mov ax,cs
mov es,ax
mov ax,000ch ;0Ch號(hào)功能,設(shè)置鼠標(biāo)事件
mov cx,00001010b
mov dx,offset my ;指向 MY
pushf
call dword ptr cs:int33_off;設(shè)置本程序鼠標(biāo)事件 MY
pop es
popa
iret ;中斷返回
l001:
jmp dword ptr cs:int33_off ;調(diào)用其它鼠標(biāo)功能

l_000: ;
mov cs:user_dx,dx
mov cs:user_es,es ;保存用戶鼠標(biāo)事件向量
push es
push dx
push cs
pop es
mov dx,offset my ;指向 MY
mov cs:mark,1 ;設(shè)置標(biāo)志,表示是用戶事件
pushf
call dword ptr cs:int33_off;設(shè)置用戶鼠標(biāo)事件,
;實(shí)質(zhì)是指向本程序事件MY
pop dx
pop es
iret ;中斷返回
new_33 endp

init proc near ;初始化,讀取CD-AUDIO信息
mov track,1
mov di,offset track_buff
mov byte ptr cd_command[0],1ah
mov byte ptr cd_command[1],0
mov byte ptr cd_command[2],03
mov byte ptr cd_command[13],00
mov word ptr cd_command[20],0000h
mov word ptr cd_command[24],0000h
mov word ptr cd_command[22],0000h
mov word ptr cd_command[16],es
mov word ptr cd_command[14],offset cd_state
mov word ptr cd_command[18],0007h
mov byte ptr cd_state[0],0ah
mov ax,ds
mov es,ax
mov bx,offset cd_command
cd_int ;調(diào)用CD服務(wù)程序
mov al,byte ptr cd_state[1]
mov min_track,al ;最小音軌號(hào)
mov al,byte ptr cd_state[2]
mov max_track,al ;最大音軌號(hào)
mov al,byte ptr cd_state[5]
xor ah,ah
xor dx,dx
xor cx,cx
mov bx,4500 ;每分鐘扇區(qū)數(shù)
call szd
push dx
push ax
mov al,byte ptr cd_state[4]
xor ah,ah
xor dx,dx
xor cx,cx
mov bx,75 ;每秒鐘扇區(qū)數(shù)
call szd
pop bx
pop cx
add bx,ax
adc cx,dx
mov al,byte ptr cd_state[3]
xor ah,ah
xor dx,dx
add bx,ax
adc cx,dx
add bx,0ff6ah
adc cx,-01
mov red_max_h,cx
mov red_max_l,bx ;保存最大扇區(qū)數(shù)
test word ptr cd_command[3],8000h
je bza
mov ax,0ffffh ;出錯(cuò)AX=FFFF
jmp quit_2
bza:
mov ax,ds
xor dx,dx
mov word ptr cd_command[16],es
mov word ptr cd_command[14],offset cd_state
mov word ptr cd_command[18],0007h
mov byte ptr cd_state[0],0bh
mov si,word ptr min_track
jmp bzb
bzc:
mov ax,si
mov byte ptr cd_state[1],al ;al為音軌號(hào)
mov ax,ds
mov es,ax
mov ax,offset cd_command
mov bx,ax
cd_int
mov al,byte ptr cd_state[4]
xor ah,ah
xor dx,dx
xor cx,cx
mov bx,4500
call szd
push dx
push ax
mov al,byte ptr cd_state[3]
xor ah,ah
xor dx,dx
xor cx,cx
mov bx,75
call szd
pop bx
pop cx
add bx,ax
adc cx,dx
mov al,byte ptr cd_state[2]
xor ah,ah
xor dx,dx
add bx,ax
adc cx,dx
add bx,0ff6ah
adc cx,-01
mov word ptr [di+2],cx
mov word ptr [di+0],bx
add di,4
test word ptr cd_command[3],8000h
je bzd
mov ax,0ffffh ;出錯(cuò)
jmp quit_2
bzd:
inc si ;音軌號(hào)加1
bzb:
cmp si,word ptr max_track ;是否超過(guò)最大音軌號(hào)
ja quit_2
jmp bzc
quit_2:ret
init endp

szd proc near ;乘法計(jì)算
push si
xchg ax,si

 

萬(wàn)企互聯(lián)
標(biāo)簽: