//DOS下演奏音乐,初学Dos时另人十分心奋的东西
code segment
assume cs:code
D1=131
D2=147
D3=165
D4=175
D5=196
D6=220
D7=247
Z1=262
Z2=294
Z3=330
Z4=349
Z5=392
Z6=440
Z7=494
G1=523
G2=587
G3=659
G4=714
G5=784
G6=880
G7=988
oldint8 dd ?
oldint9 dd ?
time dw 0
ascii DB 10H,11H,12H,13H,14H,15H,16H
DB 1EH,1FH,20H,21H,22H,23H,24H
DB 2CH,2DH,2EH,2FH,30H,31H,32H
music dw d1,d2,d3,d4,d5,d6,d7
dw z1,z2,z3,z4,z5,z6,z7
dw g1,g2,g3,g4,g5,g6,g7
newint8: dec cs:word ptr time
jz closev
new8_0: jmp cs:oldint8
closev: push ax
in al,61h
and al,0fdh
out 61h,al
pop ax
jmp new8_0
voice: mov cx,ax
mov dx,12h