HRBTSR.ASM
上传用户:kylngs
上传日期:2020-09-09
资源大小:2k
文件大小:7k
源码类别:

汇编语言

开发平台:

DOS

  1. code segment
  2. assume cs:code;DS:CODE
  3. org 100h
  4. begin: jmp init
  5.        int09 dd ?
  6. newint proc far
  7.        sti
  8.        push ax
  9.        push es
  10.        sub ax,ax
  11.        mov es,ax
  12.        in al,60h
  13.        cmp al,18h        ;'o'
  14.        je origin
  15.        cmp al,13h        ;'r'
  16.        je  replay
  17.        cmp al,1fh        ;'s'
  18.        je stop           
  19.        cmp al,23h        ;'h'
  20.        je help
  21.        cmp al,19h        ;'p'
  22.        je play
  23.        jmp jieshu
  24. MAIN    PROC NEAR
  25.         CLI              ;TO AVOID MULTI STRIKS THE KEYS
  26.         PUSH AX
  27.         PUSH CX
  28.         MOV AL,10110100B
  29.         OUT 43H,AL
  30.         MOV AX,65535
  31.         OUT 42H,AL
  32.         MOV AL,AH
  33.         OUT 42H,AL
  34.         IN AL,61H
  35.         MOV AH,AL
  36.         OR AL,3
  37.         OUT 61H,AL
  38.         MOV CX,65535
  39. GIU  :  LOOP GIU
  40.         IN AL,61H
  41.         AND AL,11111100B
  42.         OUT 61H,AL
  43.         POP AX
  44.         POP CX
  45.         RET
  46. MAIN    ENDP
  47. SUBPRG  PROC NEAR
  48.         CLI
  49.         PUSH AX
  50.         PUSH CX
  51.         MOV AL,10110100B
  52.         OUT 43H,AL
  53.         MOV AX,65535
  54.         OUT 42H,AL
  55.         MOV AL,AH
  56.         OUT 42H,AL
  57.         IN AL,61H
  58.         MOV AH,AL
  59.         OR AL,3
  60.         OUT 61H,AL
  61.         MOV CX,65535
  62. JIACH:  LOOP JIACH
  63.         IN AL,61H
  64.         AND AL,11111100B
  65.         OUT 61H,AL
  66.         MOV CX,58253
  67. SIMS:   LOOP SIMS
  68.         POP AX
  69.         POP CX
  70.         RET
  71. SUBPRG  ENDP
  72. LING    PROC NEAR
  73.         CLI
  74.         PUSH AX
  75.         PUSH CX
  76.         MOV AL,10110100B
  77.         OUT 43H,AL
  78.         MOV AX,10500
  79.         OUT 42H,AL
  80.         MOV AL,AH
  81.         OUT 42H,AL
  82.         IN AL,61H
  83.         MOV AH,AL
  84.         OR AL,3
  85.         OUT 61H,AL
  86.         MOV CX,10500
  87. LIUQI:  LOOP LIUQI
  88.         IN AL,61H
  89.         AND AL,11111100B
  90.         OUT 61H,AL
  91.         MOV CX,7750
  92. SIWU:   LOOP SIWU
  93.         POP AX
  94.         POP CX
  95.         RET
  96. LING    ENDP
  97. YAO     PROC FAR
  98.         CLI
  99.         PUSH AX
  100.         PUSH CX
  101.         MOV AL,10110100B
  102.         OUT 43H,AL
  103.         MOV AX,10500
  104.         OUT 42H,AL
  105.         MOV AL,AH
  106.         OUT 42H,AL
  107.         IN AL,61H
  108.         MOV AH,AL
  109.         OR AL,3
  110.         OUT 61H,AL
  111.         MOV CX,10500
  112. LIUQ:   LOOP LIUQ
  113.         IN AL,61H
  114.         AND AL,11111100B
  115.         OUT 61H,AL
  116.         MOV CX,25000
  117. YISIWU: LOOP YISIWU
  118.         POP AX
  119.         POP CX
  120.         RET
  121. YAO     ENDP       
  122. stop:   call main
  123.         call subprg
  124.         call ling
  125.         call ling
  126.         call ling
  127.         call yao
  128.         call ling
  129.         call yao
  130.         call ling
  131.         call yao
  132.         call yao
  133.         call yao
  134.         call yao
  135.         call ling
  136.         call yao
  137.         call ling
  138.         call yao
  139.         call ling      ;common
  140.         call ling      
  141.         call yao
  142.         call yao
  143.         call ling
  144.         call yao
  145.         call ling
  146.         call ling
  147.         call ling
  148.         call yao
  149.         call ling
  150.         call ling
  151.         call yao
  152.         call ling
  153.         call yao
  154.         call yao
  155.         call yao
  156.         call yao
  157.         sti
  158.         jmp jieshu
  159. origin: call main
  160.         call subprg
  161.         call ling
  162.         call ling
  163.         call ling
  164.         call yao
  165.         call ling
  166.         call yao
  167.         call ling
  168.         call yao
  169.         call yao
  170.         call yao
  171.         call yao
  172.         call ling
  173.         call yao
  174.         call ling
  175.         call yao
  176.         call ling  ;common
  177.         call ling  
  178.         call ling
  179.         call yao
  180.         call yao
  181.         call ling
  182.         call ling
  183.         call ling
  184.         call ling
  185.         call yao
  186.         call yao
  187.         call ling
  188.         call ling
  189.         call yao
  190.         call yao
  191.         call yao
  192.         call yao
  193.         call yao
  194.         STI
  195.         jmp jieshu
  196. replay: call main
  197.         call subprg
  198.         call ling
  199.         call ling
  200.         call ling
  201.         call yao
  202.         call ling
  203.         call yao
  204.         call ling
  205.         call yao
  206.         call yao
  207.         call yao
  208.         call yao
  209.         call ling
  210.         call yao
  211.         call ling
  212.         call yao
  213.         call ling  ;common
  214.         call yao
  215.         call yao
  216.         call ling
  217.         call ling
  218.         call yao
  219.         call ling
  220.         call yao
  221.         call ling
  222.         call ling
  223.         call ling
  224.         call yao
  225.         call yao
  226.         call ling
  227.         call yao
  228.         call ling
  229.         call yao
  230.         call yao
  231.         STI
  232.         JMP JIESHU
  233. play:  call main
  234.        call subprg
  235.        call ling
  236.        call ling
  237.        call ling
  238.        call yao
  239.        call ling
  240.        call yao
  241.        call ling
  242.        call yao
  243.        call yao
  244.        call yao
  245.        call yao
  246.        call ling
  247.        call yao
  248.        call ling
  249.        call yao
  250.        call ling      ;common
  251.        call yao
  252.        call yao
  253.        call yao
  254.        call ling
  255.        call yao
  256.        call ling
  257.        call ling
  258.        call ling
  259.        call ling
  260.        call ling
  261.        call ling
  262.        call yao
  263.        call ling
  264.        call yao
  265.        call yao
  266.        call yao
  267.        call yao
  268.        sti
  269.        jmp jieshu
  270. ;channel:
  271. ;       call main
  272. ;       call subprg
  273. ;       call ling
  274. ;       call ling
  275. ;       call ling
  276. ;       call yao
  277. ;       call ling
  278. ;       call yao
  279. ;       call ling
  280. ;       call yao
  281. ;       call yao
  282. ;       call yao
  283. ;       call yao
  284. ;       call ling
  285. ;       call yao
  286. ;       call ling
  287. ;       call yao
  288. ;       call ling      ;common
  289. ;       call ling
  290. ;       call yao
  291. ;       call yao
  292. ;       call yao
  293. ;       call yao
  294. ;       call ling
  295. ;       call ling
  296. ;       call ling
  297. ;       call yao
  298. ;       call ling
  299. ;       call ling
  300. ;       call ling
  301. ;       call ling
  302. ;       call yao
  303. ;       call yao
  304. ;       call yao
  305. ;       call yao
  306. ;       sti
  307. ;       jmp jieshu
  308. HELP:      PUSH AX
  309.            PUSH CX
  310.            MOV AL,10110100B
  311.            OUT 43H,AL
  312.            MOV AX,65535
  313.            OUT 42H,AL
  314.            MOV AL,AH
  315.            OUT 42H,AL
  316.            IN AL,61H
  317.            MOV AH,AL
  318.            OR AL,3
  319.            OUT 61H,AL
  320.            MOV CX,1600          ;10KHz LOGIC "1"
  321. LOGICYAO:  LOOP LOGICYAO
  322.            IN AL,61H
  323.            AND AL,11111100B
  324.            OUT 61H,AL
  325.            MOV CX,1600
  326. LOGICLING: LOOP LOGICLING
  327.            POP AX
  328.            POP CX
  329.            JMP JIESHU
  330. jieshu:    pop es
  331.            pop ax
  332.            pushf
  333.            call cs:[int09]
  334.            iret
  335. newint     endp
  336. assume cs:code,ds:code
  337. init   proc near
  338.        mov ax,3509h
  339.        int 21h
  340.        mov word ptr int09,bx
  341.        mov word ptr int09[2],es
  342.        mov ax,2509h
  343.        mov dx,offset newint
  344.        int 21h
  345.        mov ah,31h
  346.        mov dx,50h
  347.        int 21h
  348. init   endp
  349.        code ends
  350.        end begin