home *** CD-ROM | disk | FTP | other *** search
/ Tools en Utilities / CDASS_5.ISO / shell / file / destroy.arj / DESTROY.A next >
Encoding:
Text File  |  1993-03-05  |  2.5 KB  |  113 lines

  1. ;Overschrijft file eerst met 'faces' zodat als hij teruggehaald
  2. ; wordt hij niet meer te lezen valt. En vernielt de filename.
  3. cseg      segment para public 'code'
  4.           assume cs:cseg,ds:dseg,ss:stack
  5.           org 100h
  6. MAIN:
  7.           jmp begin
  8.           ;gegevens
  9.           err_0    db 7, 'DESTROY <filename>', 13, 10, 36
  10.           err_1    db 7, 'Unable to open file!', 13, 10, 36
  11.           txt_0    db 10, 'Vince M    (c) 1993', 13, 10, 36
  12.           txt_1    db 13, 'File destroyed succesfull!', 13, 10, 36
  13.           msg_1    db 'Scanning...', 13, 36
  14.           msg_2    db 'Destroying...', 13, 36
  15.           size     dw 0
  16.           handle   dw 0
  17.           new_name db 'XXXXXXXX.XXX', 0
  18.           buffer   db 8 dup(1, 2)
  19.           buf_2    db 10h dup(0)
  20. begin:
  21.           ;instructies
  22.           mov si, 0080h  ;lengte parms
  23.           mov ax, [si]
  24.           cmp al, 0
  25.           je geen_parms
  26.           mov ah, 0
  27.           mov si, 0081h  ; add 0 (ASCIIZ)
  28.           add si, ax
  29.           mov [si], 0
  30.  
  31.           call mutate
  32.  
  33.           lea dx, txt_1
  34.           jmp stop
  35. geen_parms:
  36.           lea dx, err_0
  37.           jmp stop
  38. file_err:
  39.           lea dx, err_1
  40. stop:
  41.           mov ah, 9h
  42.           int 21h
  43.           lea dx, txt_0
  44.           mov ah, 9h
  45.           int 21h
  46.           int 20h
  47.  
  48. ;************
  49. mutate:
  50.           ;open file
  51.           mov dx, 0082h
  52.           mov ax, 3d02h
  53.           int 21h
  54.           jc file_err
  55.           mov handle, ax
  56.  
  57.           lea dx, msg_1
  58.           mov ah, 9h
  59.           int 21h
  60.           ;bepaal size
  61.           mov bx, handle
  62.           mov cx, 10h
  63.           lea dx, buf_2
  64. lees:
  65.           mov ah, 3fh
  66.           int 21h
  67.           add size, 1
  68.           cmp ax, 10h
  69.           jnb lees
  70.  
  71.           ;set pointer terug
  72.           mov ax, 4200h
  73.           mov cx, 0
  74.           mov dx, 0
  75. ;          mov bx, handle
  76.           int 21h
  77.  
  78.           lea dx, msg_2
  79.           mov ah, 9h
  80.           int 21h
  81.  
  82.           ;verander file
  83. ;          mov bx, handle
  84.           mov cx, 10h
  85.           lea dx, buffer
  86. meer:
  87.           mov ah, 40h
  88.           int 21h
  89.           sub size, 1
  90.           cmp size, 0
  91.           jne meer
  92.  
  93. sluit:
  94.           ;sluit file
  95. ;          mov bx, handle
  96.           mov ah, 3eh
  97.           int 21h
  98.           ;rename file
  99.           mov ah, 56h
  100.           mov dx, 0082h
  101.           lea di, new_name
  102.           int 21h
  103.           ;verwijder file
  104.           lea dx, new_name
  105.           mov ah, 41h
  106.           int 21h
  107.           ret
  108.  
  109. cseg      ends
  110.           end
  111.  
  112.  
  113.