HRBTSR.ASM
上传用户:kylngs
上传日期:2020-09-09
资源大小:2k
文件大小:7k
- code segment
- assume cs:code;DS:CODE
- org 100h
- begin: jmp init
- int09 dd ?
- newint proc far
- sti
- push ax
- push es
- sub ax,ax
- mov es,ax
- in al,60h
- cmp al,18h ;'o'
- je origin
- cmp al,13h ;'r'
- je replay
- cmp al,1fh ;'s'
- je stop
- cmp al,23h ;'h'
- je help
- cmp al,19h ;'p'
- je play
- jmp jieshu
- MAIN PROC NEAR
- CLI ;TO AVOID MULTI STRIKS THE KEYS
- PUSH AX
- PUSH CX
- MOV AL,10110100B
- OUT 43H,AL
- MOV AX,65535
- OUT 42H,AL
- MOV AL,AH
- OUT 42H,AL
- IN AL,61H
- MOV AH,AL
- OR AL,3
- OUT 61H,AL
- MOV CX,65535
- GIU : LOOP GIU
- IN AL,61H
- AND AL,11111100B
- OUT 61H,AL
- POP AX
- POP CX
- RET
- MAIN ENDP
- SUBPRG PROC NEAR
- CLI
- PUSH AX
- PUSH CX
- MOV AL,10110100B
- OUT 43H,AL
- MOV AX,65535
- OUT 42H,AL
- MOV AL,AH
- OUT 42H,AL
- IN AL,61H
- MOV AH,AL
- OR AL,3
- OUT 61H,AL
- MOV CX,65535
- JIACH: LOOP JIACH
- IN AL,61H
- AND AL,11111100B
- OUT 61H,AL
- MOV CX,58253
- SIMS: LOOP SIMS
- POP AX
- POP CX
- RET
- SUBPRG ENDP
- LING PROC NEAR
- CLI
- PUSH AX
- PUSH CX
- MOV AL,10110100B
- OUT 43H,AL
- MOV AX,10500
- OUT 42H,AL
- MOV AL,AH
- OUT 42H,AL
- IN AL,61H
- MOV AH,AL
- OR AL,3
- OUT 61H,AL
- MOV CX,10500
- LIUQI: LOOP LIUQI
- IN AL,61H
- AND AL,11111100B
- OUT 61H,AL
- MOV CX,7750
- SIWU: LOOP SIWU
- POP AX
- POP CX
- RET
- LING ENDP
- YAO PROC FAR
- CLI
- PUSH AX
- PUSH CX
- MOV AL,10110100B
- OUT 43H,AL
- MOV AX,10500
- OUT 42H,AL
- MOV AL,AH
- OUT 42H,AL
- IN AL,61H
- MOV AH,AL
- OR AL,3
- OUT 61H,AL
- MOV CX,10500
- LIUQ: LOOP LIUQ
- IN AL,61H
- AND AL,11111100B
- OUT 61H,AL
- MOV CX,25000
- YISIWU: LOOP YISIWU
- POP AX
- POP CX
- RET
- YAO ENDP
- stop: call main
- call subprg
- call ling
- call ling
- call ling
- call yao
- call ling
- call yao
- call ling
- call yao
- call yao
- call yao
- call yao
- call ling
- call yao
- call ling
- call yao
- call ling ;common
- call ling
- call yao
- call yao
- call ling
- call yao
- call ling
- call ling
- call ling
- call yao
- call ling
- call ling
- call yao
- call ling
- call yao
- call yao
- call yao
- call yao
- sti
- jmp jieshu
- origin: call main
- call subprg
- call ling
- call ling
- call ling
- call yao
- call ling
- call yao
- call ling
- call yao
- call yao
- call yao
- call yao
- call ling
- call yao
- call ling
- call yao
- call ling ;common
- call ling
- call ling
- call yao
- call yao
- call ling
- call ling
- call ling
- call ling
- call yao
- call yao
- call ling
- call ling
- call yao
- call yao
- call yao
- call yao
- call yao
- STI
- jmp jieshu
- replay: call main
- call subprg
- call ling
- call ling
- call ling
- call yao
- call ling
- call yao
- call ling
- call yao
- call yao
- call yao
- call yao
- call ling
- call yao
- call ling
- call yao
- call ling ;common
- call yao
- call yao
- call ling
- call ling
- call yao
- call ling
- call yao
- call ling
- call ling
- call ling
- call yao
- call yao
- call ling
- call yao
- call ling
- call yao
- call yao
- STI
- JMP JIESHU
- play: call main
- call subprg
- call ling
- call ling
- call ling
- call yao
- call ling
- call yao
- call ling
- call yao
- call yao
- call yao
- call yao
- call ling
- call yao
- call ling
- call yao
- call ling ;common
- call yao
- call yao
- call yao
- call ling
- call yao
- call ling
- call ling
- call ling
- call ling
- call ling
- call ling
- call yao
- call ling
- call yao
- call yao
- call yao
- call yao
- sti
- jmp jieshu
- ;channel:
- ; call main
- ; call subprg
- ; call ling
- ; call ling
- ; call ling
- ; call yao
- ; call ling
- ; call yao
- ; call ling
- ; call yao
- ; call yao
- ; call yao
- ; call yao
- ; call ling
- ; call yao
- ; call ling
- ; call yao
- ; call ling ;common
- ; call ling
- ; call yao
- ; call yao
- ; call yao
- ; call yao
- ; call ling
- ; call ling
- ; call ling
- ; call yao
- ; call ling
- ; call ling
- ; call ling
- ; call ling
- ; call yao
- ; call yao
- ; call yao
- ; call yao
- ; sti
- ; jmp jieshu
- HELP: PUSH AX
- PUSH CX
- MOV AL,10110100B
- OUT 43H,AL
- MOV AX,65535
- OUT 42H,AL
- MOV AL,AH
- OUT 42H,AL
- IN AL,61H
- MOV AH,AL
- OR AL,3
- OUT 61H,AL
- MOV CX,1600 ;10KHz LOGIC "1"
- LOGICYAO: LOOP LOGICYAO
- IN AL,61H
- AND AL,11111100B
- OUT 61H,AL
- MOV CX,1600
- LOGICLING: LOOP LOGICLING
- POP AX
- POP CX
- JMP JIESHU
- jieshu: pop es
- pop ax
- pushf
- call cs:[int09]
- iret
- newint endp
- assume cs:code,ds:code
- init proc near
- mov ax,3509h
- int 21h
- mov word ptr int09,bx
- mov word ptr int09[2],es
- mov ax,2509h
- mov dx,offset newint
- int 21h
- mov ah,31h
- mov dx,50h
- int 21h
- init endp
- code ends
- end begin