
Добавил:
sergey123
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
TITLE MUSIC.EXE
STACKSG SEGMENT PARA STACK 'Stack'
DW 128 DUP(?)
STACKSG ENDS
DATASG SEGMENT PARA 'Data'
DATASG ENDS
CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG, DS:DATASG, SS:STACKSG, ES:NOTHING
SOUND PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AL, 0B6H
OUT 43H, AL
MOV DX, 14H
MOV AX, 4F38H
DIV DI
OUT 42H, AL
MOV AL, AH
OUT 42H, AL
IN AL, 61H
MOV AH, AL
OR AL, 3
OUT 61H, AL
L1: MOV CX, 6801
L2: LOOP L2
DEC BX
JNZ L1
MOV AL, AH
OUT 61H, AL
POP DI
POP DX
POP CX
POP BX
POP AX
RET
SOUND ENDP
MAIN PROC
MOV BX, 50
L3: MOV AH, 0
INT 16H
CMP AL, 'x'
JE EXIT
CMP AL, 'q'
JE DO
CMP AL, 'w'
JE RE
CMP AL, 'e'
JE MI
CMP AL, 'r'
JE FA
CMP AL, 't'
JE SOL
CMP AL, 'y'
JE LA
CMP AL, 'u'
JE CI
CMP AL, 'm'
JE MEL
JNZ L3
DO: MOV DI, 131
CALL SOUND
JMP L3
RE: MOV DI, 147
CALL SOUND
JMP L3
MI: MOV DI, 165
CALL SOUND
JMP L3
FA: MOV DI, 175
CALL SOUND
JMP L3
SOL: MOV DI, 196
CALL SOUND
JMP L3
LA: MOV DI, 220
CALL SOUND
JMP L3
CI: MOV DI, 247
CALL SOUND
JMP L3
EXIT: MOV AH, 00H
MOV AL, 03H
INT 10H
MOV AX, 4C00H
INT 21H
RET
MEL: MOV DI, 147
CALL SOUND
MOV DI, 175
CALL SOUND
MOV DI, 220
CALL SOUND
MOV DI, 196
CALL SOUND
MOV DI, 196
CALL SOUND
MOV DI, 175
CALL SOUND
MOV DI, 165
CALL SOUND
MOV DI, 220
CALL SOUND
MOV DI, 220
CALL SOUND
MOV DI, 196
CALL SOUND
MOV DI, 196
CALL SOUND
MOV DI, 147
CALL SOUND
MOV DI, 147
CALL SOUND
MOV DI, 147
CALL SOUND
JMP L3
MAIN ENDP
CODESG ENDS
END MAIN
STACKSG SEGMENT PARA STACK 'Stack'
DW 128 DUP(?)
STACKSG ENDS
DATASG SEGMENT PARA 'Data'
DATASG ENDS
CODESG SEGMENT PARA 'Code'
ASSUME CS:CODESG, DS:DATASG, SS:STACKSG, ES:NOTHING
SOUND PROC
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH DI
MOV AL, 0B6H
OUT 43H, AL
MOV DX, 14H
MOV AX, 4F38H
DIV DI
OUT 42H, AL
MOV AL, AH
OUT 42H, AL
IN AL, 61H
MOV AH, AL
OR AL, 3
OUT 61H, AL
L1: MOV CX, 6801
L2: LOOP L2
DEC BX
JNZ L1
MOV AL, AH
OUT 61H, AL
POP DI
POP DX
POP CX
POP BX
POP AX
RET
SOUND ENDP
MAIN PROC
MOV BX, 50
L3: MOV AH, 0
INT 16H
CMP AL, 'x'
JE EXIT
CMP AL, 'q'
JE DO
CMP AL, 'w'
JE RE
CMP AL, 'e'
JE MI
CMP AL, 'r'
JE FA
CMP AL, 't'
JE SOL
CMP AL, 'y'
JE LA
CMP AL, 'u'
JE CI
CMP AL, 'm'
JE MEL
JNZ L3
DO: MOV DI, 131
CALL SOUND
JMP L3
RE: MOV DI, 147
CALL SOUND
JMP L3
MI: MOV DI, 165
CALL SOUND
JMP L3
FA: MOV DI, 175
CALL SOUND
JMP L3
SOL: MOV DI, 196
CALL SOUND
JMP L3
LA: MOV DI, 220
CALL SOUND
JMP L3
CI: MOV DI, 247
CALL SOUND
JMP L3
EXIT: MOV AH, 00H
MOV AL, 03H
INT 10H
MOV AX, 4C00H
INT 21H
RET
MEL: MOV DI, 147
CALL SOUND
MOV DI, 175
CALL SOUND
MOV DI, 220
CALL SOUND
MOV DI, 196
CALL SOUND
MOV DI, 196
CALL SOUND
MOV DI, 175
CALL SOUND
MOV DI, 165
CALL SOUND
MOV DI, 220
CALL SOUND
MOV DI, 220
CALL SOUND
MOV DI, 196
CALL SOUND
MOV DI, 196
CALL SOUND
MOV DI, 147
CALL SOUND
MOV DI, 147
CALL SOUND
MOV DI, 147
CALL SOUND
JMP L3
MAIN ENDP
CODESG ENDS
END MAIN