Skip to main content

                             PART I
                 THE ULTIMATE VIRUS KILLER BOOK


               7 - THE MEANING OF LIFE (NOT LIFF)
      (MISCELLANEOUS THINGS AND ANECDOTES REVOLVING AROUND
         THE LIFE AND WORK OF A VIRUS KILLER PROGRAMMER)


 Yes,  I promised some human interest,  so here it is.  For those
among you who are not particularly into this kind of informality,
continue with chapter 8 please.

 7.1      HOW THE "ULTIMATE VIRUS KILLER" WAS PROGRAMMED
          (A STORY OF MISCONCEPTION, ILL PROGRAMMING AND COMPILER
          PROBLEMS)

 Let me start by saying that God probably did not have a computer
programmer in mind when he created mankind and that I am probably
of  a rather non-mathematical persuasion as far as mankind  goes.
This is probably the reason why I am a student of English.
 Really, I am not an excellent programmer. Although I usually get
the things to work in the end - even without flaws or anything  -
the  means  I  use  to this end  would  probably  make  any  real
programmer  start  to retch...if he's lucky.  Structure  is  only
vaguely  recognisable  in what,  for lack of  a  better  word,  I
usually  refer to as my "Ultimate Virus Killer" program  code  or
source file. I think it might conceivably be a classic example of
something the word spaghetti code has been called into life for.
 Though I have improved my programming skills considerably during
the  development  time of the "Ultimate Virus Killer" -  it  took
quite  a  while,  so I should - even the latest  version  of  the
program's  source code would probably not be able to please  many
computer scientists and competing virus killer programmers alike.
But it's the bottom line that counts. And that bottom line reads,
clearly and concisely: It works. And it works fine.
 The  first  versions of the virus killer -  then  called  "Virus
Destruction  Utility" - did not contain any subroutines.  A  file
was  opened  all  over again for each kind  of  link  virus,  and
absolutely  brainstaggering  amounts of IF-THEN  loops  had  been
warped into a routine that was supposed to recognise innocent and
less innocent bootsectors.  As new recognitions had to be  added,
the source file was becoming more and more unwieldy.
 I had never heard of DATA lines, let alone compact routines that
read those data lines and then compared them with the contents of
the  bootsector.  This  technique now allows me  to  include  the
recognition of any new bootsector by merely adding one DATA  line
with  specific parameters.  Even link viruses and packed  program
files  are  recognised  like  this  now,  and  the  thousands  of
different versions of the Beilstein Virus only require about five
DATA lines.  And each new version of the "Ultimate Virus  Killer"
is not only better with regard to its sheer statistics,  but also
a  somewhat  better product from a programmer's  point  of  view.
Before the turn of the century it just might be able to please  a
few fellow programmers, albeit probably the less picky ones.

 My  own ability to code (or lack of it),  however,  was not  the
only  of  the problems I faced during the program's  gradual  and
ever  continuing  development.  As the  "Ultimate  Virus  Killer"
source  file  in  "GfA Basic" grew to be more  and  more  complex
(right now it's almost 400 Kb,  or 12,000 lines of source  code),
it  often happened that the program worked perfectly in the  "GfA
Basic" interpreter yet point-blank refused to operate at all once
compiled, bombing out hopelessly or locking up without as much as
a sound. If you are a programmer of "GfA Basic" yourself, chances
are substantial that you may have encountered  this,  too.  These
are  the most fervently hated errors,  I am sure  any  programmer
will  be happy to acknowledge.  Everything worked just  fine  but
after compiling it wouldn't any more. Exasperating, truly.
 The  worst  thing is that you usually end up  working  your  way
around bugs in "GfA Basic" or Atari's Operating  System.  Finding
them  entails PRINTing huge amounts of dummy texts all over  your
source file so that it may be estimated where the program got  to
before   it  crashed.   Once  it  has  been   established   where
approximately the program crashed, new messages had to be PRINTed
in  a  narrowed-down  piece of code,  the  whole  thing  compiled
again... Until you finally found the bug after a couple of hours'
worth of trial and error.
 Consider  yourself lucky,  dear reader,  that I am not going  to
elaborate   extensively  here  upon  the  manifold   problems   I
encountered when converting my code from "GfA Basic" version 2 to
version 3.  The strangest errors happened,  mouse cursors started
flashing  due to use of the INP(2) command instead of the  INKEY$
command,  variable management had to be altered... If "GfA Basic"
version  4  (though probably not called that)  will  ever  become
available,   I   wonder  which  slight  (or  none   too   slight)
incompatibilities will surface.

 7.2      OLD "ULTIMATE VIRUS KILLER" VERSIONS

 Each  time  a  new version of the  "Ultimate  Virus  Killer"  is
finished, I wish I'd never made the version directly before that.
That leaves little to the imagination as to what I feel about the
first  couple  of versions if you realise that a  total  of  over
thirty different versions have been made in nearly eight years!
 The problem with the older versions,  especially the really  old
ones,  is  that  they even suspect the latest  disk  immunization
method of being a virus.  As of version 4.2,  however,  a special
segment  was  built in to check the program's age  when  compared
with your internal computer's clock date; it will warn you if its
production date is more than one year before, in which case there
is  sufficient  reason no longer to use it.  The virus  scene  is
constantly moving and shifting,  growing and mutating,  and there
is no way of giving a guarantee that new viruses will be properly
recognised and efficiently battled by older virus killer versions
(this,  incidentally,  is  the reason why you should really  only
seriously consider using a virus killer that is constantly  being
updated and supported).
 I still regularly receive disks of people who found a suspicious
bootsector  using version 3.x of the program.  And in almost  all
cases  this  suspicious  bootsector  turns  out  to  contain  the
original Ghost Virus that has been known since  1988.  Sometimes,
especially  when the weather is either too hot or too  wet,  this
can get me a bit depressed.

 As you know by now,  development of the "Ultimate Virus  Killer"
started  in  December 1987,  shortly after the discovery  of  the
Signum  Virus  in Holland.  Originally it started off  as  Public
Domain (all versions 2.x) but I soon found out that I had to make
some  money  with  this or otherwise I could  simply  not  afford
supporting  it at all;  many people sent in disks that had to  be
returned,  more  than  half of them neglecting to  include  reply
postage,  International  Reply Coupons or,  indeed,  some  money.
That's why,  in April 1988,  version 3.0 was released.  It was  a
largely  worked-over version of the 2.x programs,  with  enhanced
statistics  and the introduction of the restore option  to  allow
you to put back various bootsector programs needed by many a game
or demo.  This version was commercial,  and I tried to get people
to buy it through writing articles concerning viruses in as  many
computer  magazines  as possible.  These articles had  a  certain
'advertisement'  flavour  about them,  but at least I  could  now
actually  afford  supporting  the program.  It  started  to  grow
continuously with regard to quality as well as quantity.
 In  version  3.1 (May 1988),  the BIOS  Parameter  Block  repair
option  was included after the appearance of the Signum  Virus  B
which  had  been  corrupted in memory causing this  part  of  the
disk's  bootsector  to be erased.  This routine remained  in  the
virus killer unaltered up to and including version 5.0.
 Version 3.2 of September 1988 was the first one that got sold in
reasonable  quantities  beyond the borders  of  the  Netherlands,
following  the  publication of one of my articles in  German  "ST
Magazine".  Now it finally got to the stage where I would receive
loads of mail from people sending in loads of bootsectors and new
viruses  for inclusion - more people got it,  more  people  found
suspected  stuff,  more people sent it in.  This was  my  biggest
lucky break.

-----------------------------------------------------------------

            Virus Destruction Utility (Public Domain)

2.0PRE    12-12-1987                         2.0       18-12-1987
2.1       18-01-1988                         2.2       20-01-1988
2.3       15-02-1988                         2.4       16-02-1988
                      2.5       27-03-1988

             Virus Destruction Utility (Commercial)

3.0       10-04-1988                         3.1       30-05-1988
3.2       11-09-1988                         3.3       01-03-1989
3.4       13-04-1989                         3.5       28-04-1989

               Atari ST Virus Killer (Commercial)

3.6       28-05-1989                         3.7       01-06-1989
3.8       14-06-1989                         3.9       31-08-1989

               Ultimate Virus Killer (Commercial)

4.0       24-05-1990                         4.1       28-06-1990
4.2       08-01-1991                         5.0       07-04-1991
5.1       27-06-1991                         5.2       18-08-1991
5.3       17-11-1991                         5.4       29-03-1992
5.5       05-07-1992                         5.6       29-09-1992
5.7       09-01-1993                         5.8       28-03-1993
5.9       06-06-1993                         6.0       03-10-1993
6.1       08-01-1994                         6.2       13-04-1994
6.3       17-07-1994                         6.4       22-01-1995
6.5       20-04-1995                         6.6       02-08-1995
6.7       05-11-1995                         6.8       04-02-1996

-----------------------------------------------------------------

       "Ultimate Virus Killer" versions and release dates

 I  threw myself on a University career to study Biology  at  the
time,  which caused many people to complain about delivery  times
and  the like.  I tasted freedom for the first time  during  that
year,  after having lived only with my parents before. Apart from
freedom,  I  also tasted late  nights,  alcohol,  and  girls.  In
retrospect,  a  period everybody should have had but that  nobody
would be proud of.  It took rather a longer time before the  next
version got released.
 In  March 1989 I quit my Biology studies,  which coincided  with
the  release  of version 3.3.  Its statistics  had  been  greatly
enhanced, but more importantly the scan partition option had been
included.  People were now allowed to scan an entire partition on
floppy-or hard disk for link viruses in one fell  swoop,  instead
of  them having to select each file separately such as  had  been
the case until then. This bit of clever recursive programming was
coded by good friend and professional programmer Stefan Posthuma,
who was to do a bit more in the future as  well.  Hum.  Actually,
all  really  clever bits of programming in  the  "Ultimate  Virus
Killer" seem to be his.  Hum.  The HELP mode was included in this
version as well.  This particular mode was coded by myself for  a
change.
 As of version 3.4 (April 1989) the program was fully legal  from
a  programmer's  point  of view.  Previously  I  had  loaded  the
bootsector  restore  data file on an absolute  address  (a  fixed
memory  address  that  was always the  same)  which  could  cause
crashes  with RAM disks installed or when the user had a  lot  of
resident software (AUTO folder programs, large desk accessories).
Again  it  was Stefan who broke the news to me that a  data  file
could  simply be loaded across a huge integer array for it to  be
loaded  correctly  on any system with any  memory  configuration.
Integer arrays,  you see, are not moved around in variable memory
once they've been defined.
 I was pretty active back then.  Version 3.5 was released in that
same month as well, which boasted a fully reprogrammed link virus
scan  which offered a 50% speed increase - effectively making  it
the  fastest  link  virus scanner anywhere  at  the  moment.  The
bootsector virus scan routine was rewritten as well,  though  not
offering such a dramatic speed increase.
 Some time earlier,  I had obtained a valuable contact in England
- Mr Niall McKiernon of what was then Excel Software. He had read
my  article about viruses in Les Ellingham's "Page 6"  (now  "New
Atari User", primarily a magazine aimed at Atari 8 bit users). He
sold  the  virus killer (previously known as  "Virus  Destruction
Utility")  in England for me and eventually got me  into  contact
with CRL who got the rights to the program and, as of version 3.6
(May 1989),  sold it commercially,  world-wide.  The name of  the
program became "Atari ST Virus Killer". Niall became my agent and
friend.
 The time I spent programming for CRL is not one I look back upon
with  great joy.  I waited until spring 1991 when they went  into
receivership  to allow me to transfer the rights to  someone  who
would  do an excellent job indeed - the same Mr  Niall  McKiernon
that had helped me earlier.  He had in the mean time set up a new
company called Douglas Communications. He spends most of his time
installing high-spec PC systems for customers, but on the side he
also  distributes  some  software titles such as  "Ed  Hak"  and,
indeed, the "Ultimate Virus Killer".
 The last update I sent to CRL was version 3.9 that was  released
in August 1989.  The next version that was commercially available
(albeit through Douglas Communications and under its current name
"Ultimate  Virus  Killer") was version 5.1,  in  June  1991.  The
program had been improved dramatically. Even though I had stopped
sending  updates to CRL,  I had continued improving  it.  It  was
almost  a  new  product.  But  let's get  back  into  the  proper
chronological order of things for now.
 In  May  1990,  after  having  spent  months  reprogramming  and
converting the whole shebang into "GfA Basic" version 3,  version
4.0 was finished. The reason for the delay was threefold. First I
had to debug the whole thing after converting it from "GfA Basic"
version 2 to version 3,  the two versions not being as compatible
as  the  adverts wanted to make you  believe.  Second,  I  had  a
tremendous lack of driving power, due to all kinds of complicated
things  involving  money  I would not like to  bother  you  with.
Third,  I had started working full-time in Germany for young  and
growing software company,  Thalion. That took up most of my spare
time.
 Anyway,  version  4.0 was enhanced a lot,  too.  It now  finally
worked  together  with the new TOS versions 1.04  and  1.06,  the
program checked itself for link virus infection at start-up,  the
disk immunization method was enhanced,  the system status  screen
was  blatantly  reprogrammed into the setup it would  have  until
version 5.9,  the non-executable bootsector virus type (see  4.5)
was  now  recognised and internal memory  management  was  vastly
improved.
 Version  4.1  (of June 1990) saw the inclusion of a  better  Rob
Northen  protection  checker.  Rob Northen is the  man  behind  a
company that devises copy protections for major  companies,  most
particularly  for  Ocean.   These  copy  protection  schemes  use
bootsectors  that are at least 95%  identical,  causing  frequent
faulty  recognition.  This was to happen  no  more.  Further,  an
option  to format a disk (although only  single  sided,  standard
format) was added as an option before allowing the user to  write
boot file to disk.
 In version 4.2,  I attempted to allow the program to check up to
26  partitions  -  which had previously been  a  maximum  of  A-I
(corresponding  with  the 10 buttons in the alert  box  routine).
This   attempt  failed  somewhat  because  I  did  not  have   an
appropriate system with that amount of hard disk partitions at my
disposal. It didn't get solved, debugged and properly implemented
until version 5.4.  The alert box output was made more  optically
pleasing,  and  the cursor keys could now also be used to  select
items  (which was done because a German reviewer had slagged  the
program off because it didn't have this option). A start was made
trying  to  make the program TT-compatible,  though  this  mainly
consisted   of  only  supporting  that  machine's   ST-compatible
resolutions.  Michael Bittner of Thalion software wrote a machine
code  routine  that  checked  all  of  RAM  for   reset-resistant
applications.  Previously this had been a bit of Basic code which
took  tediously  long,  especially on systems with  more  than  1
megabyte of memory.
 When I started doing business with Douglas Communications, apart
from  the  name change the version number was also  increased  to
5.0.  This  version  contained manifold small  bug  removals  and
further tiny changes.
 Version  5.1  was released in June 1991.  This  boasted  another
rather neat bit of programming by the Stefan Posthuma I mentioned
earlier:  A  new restore bootsector list  selector.  A  brilliant
piece of programming,  finally one could select the bootsector to
be repaired truly comfortably and quickly.  A demo version of 5.1
was made (5.0D GB) for the program's virgin appearance on a cover
disk, the "ST Format" one.
 I had in the mean time quit work at Thalion and was preparing to
become some kind of scholar again.  In September I started my new
University  career.   This  time  English,  however,  instead  of
Biology.
 August 1991 saw the release of version 5.2.  This now featured a
separate  restore program for people unfortunate enough  only  to
have  half  a megabyte of RAM.  These people had been  unable  to
repair any commercial disks in the one or two previous  versions.
The entire program was converted to version 3.6TT of "GfA Basic",
which  entailed a couple of slight incompatibilities  again  that
had  to be mastered in the process.  Most problems occurred  when
trying to rewrite bits of the program so that it utilised some of
the "GfA Basic" 3.6TT version's possibilities. The option to look
at a suspect bootsector was added,  and a first attempt was  made
to make the program work using any resolution bigger than 640  by
400 screen pixels as well.  The screen buffer routines had to  be
re-written, as well as all screen output. It was quite an effort,
as   the  entire  program  had  been  written  in  an   extremely
resolution-dependent  method;  back in 1987 when  everything  had
started nobody had bothered a bit about other screen  resolutions
and, predictably, neither had I.
 I could see the people at Atari grinning:  "We told you  so,  we
told you so, you should have stuck to the guidelines, tee-hee."
 Despite the fact that a few bugs crept  in,  inevitably,  during
this major re-write, all of it generally turned out to work quite
OK.
 In November 1991,  version 5.3 was released. It was now fully TT
compatible,   and  also  included  some  user  suggestions,  most
noteworthy  of which was the addition of an automatic  bootsector
virus  check  before  checking an entire  floppy  disk  for  link
viruses.
 Version 5.4,  March 1992,  was improved further still.  The link
virus  check was made up to 85% faster,  all cosmetic  bugs  were
discarded, and one could now truly check up to 26 partitions. The
BIOS  Parameter Block repair routine was re-written and now  also
supported  High Density (HD) and Extra High Density  (ED)  disks.
All new oddities involving the notebook version of the ST, the ST
Book
, were now considered as well. A demo version of 5.4 appeared
on the "Atari ST User" cover disk.
 Version 5.5, July 1992 (the version made parallel to the bulk of
the  early  writing for this book),  contained two  fairly  major
additions.  For  starters  the program could now be used  from  a
Command  Line Interpreter or as a .TTP  file;  also,  the  system
status screen had been optimised so that it would now also  check
XBRA  chains right to the end.  A German magazine had  written  a
very  bad review of the "Ultimate Virus Killer" in  which  (among
some  stuff  they came up with because they seemed to  be  biased
against the program) they noted the lack of the previous  version
to  do  this XBRA chain thing.  I am quite susceptible  to  plain
criticism  (I hate it - I prefer the constructive kind) and  most
of the time I implement ideas suggested by reviewers immediately.
So there.
 Late September 1992,  version 5.6 was released.  The link  virus
scan could now also warn you when compressed files were found and
the  internal program structure had been improved so as to  allow
for  75%  faster "GfA Basic" compilation times.  News  about  the
forthcoming  new  Falcon and the new "MultiTOS" had  reached  me,
causing  quite  a lot of extra work.  The program now  no  longer
hogged  all memory (i.e.  in a multi-tasking environment  it  was
possible  to start other programs after it,  even though  at  the
time it didn't truly multi-task as such).
 The change of the year saw the release of version 5.7, which now
came accompanied by a .CPX module for use with the Atari Extended
Modular Control Panel.  This module was written by a good  friend
of  mine,  Torbjørn Ose (also known as Lord Hackbear  of  Digital
Chaos/Delta  Force).  The  link  virus scan  now  also  supported
analysis  of a folder as an intermediate option between  a  whole
partition or a single file;  bootsector scan speed was  increased
by  85%  with its data format getting  20%  smaller;  the  'Virus
Probability  Factor' calculation got 17 times  faster;  the  link
virus check was made 42% faster; additional input flexibility was
added  to  the  repair  selector and  the  system  status  screen
analysis  speed improved by a factor of 3.  A few  demo  versions
were  released  as well,  one of them for the "ST  Review"  cover
disk.
 It  seemed as if speed increase became more and more  important.
This  was  largely  caused  by  Kai  Holst,   programmer  of  the
"Antidote"  virus  killer,  who  insisted  that  my  program  was
ponderously slow whereas his was lightning fast.  As a matter  of
fact he was quite right.
 So version 5.8,  released late March 1993,  saw yet another  few
speed  increases  besides the usual bug  alleviations.  The  link
virus  scan,  for example,  became even faster (a factor  3  when
compared  with 5.6).  On top of that,  the program was now  truly
Falcon-compatible  and could also be used as an accessory  simply
by renaming its extension to ".ACC".  A configuration option  was
added,  and  CPX  modules  could now also  be  checked  for  link
viruses.  On  the rather odd side of things,  this  version  also
included  support  for the WACOM graphics tablet instead  of  the
mouse.  A freak event,  I guess. WACOM support was removed in the
next version though, or the one after that.
 Version 5.9,  to be released three months later,  was a  version
that  mainly boasted increased statistics and some  serious  bugs
fixed.
 Version  6.0 (October 1993) was the latest major revamp  of  the
program.  Through using a library of ready GEM interface routines
for   "GfA   Basic"  (Gregor  Duchalski's   excellent   shareware
"Flydials") the program had now become fully  GEM-compatible.  It
supported  [ALTERNATE]  keyboard  shortcuts,   a  'flying  dialog
corner' to move the dialogs around the screen,  totally optimised
memory  management...the  whole enchilada.  Finally  the  Germans
would have to be satisfied,  who had insisted on their own  virus
killers ("Sagrotan" and "ToXis") being a lot better just  because
they  used GEM even though theuir statistics were mere  fragments
of those of the "Ultimate Virus Killer".  Extended file  selector
calls  were used on TOS 1.04 and higher,  and the  system  status
screen  and restore selector were  totally  reprogrammed.  System
screen analysis got 60% faster, link virus scan almost 75% faster
and  bootsector  scan  over 60% faster.  Over the  last  year  of
coding,  the bootsector virus scan had totalled a speed  increase
of 90%!  Whereas previous versions had had difficulty finding the
right  RAM configurations on TT,  strange STs  and  Falcon,  much
desired assistance by H.W.A.M.  de Beer, author of the invaluable
"SysInfo" diagnostic utility, now caused this to work properly at
all  times.  Last but not least,  the program now worked on  half
megabyte machines again, even when used as an accessory.
 Version 6.1 was finished in January 1994.  As usual after  major
re-writes  -  in  this  case the  GEM  compatibility  thing  with
"FlyDials"  in version 6.0 - there had been quite a few new  bugs
creeping  in  that  all  needed to  be  fixed.  Some  people  had
complained about the GEM resource (RSC) files being too  big,  so
instead  of two big files they became one smaller one  that  also
looked better.  Most important,  however, was the fact that a bug
was solved that had probably been present right from March  1989,
when  Stefan's scan partition routine was built in:  Due  to  the
internal GEMDOS memory pool being initialised improperly, no more
than  25  files  would  ever  be checked  in  a  folder  or  root
directory.  This  could cause vast amounts of files never  to  be
checked
,  which is not the kind of thing that promotes safety.  A
demo (numbered,  confusingly,  6.0GB D) was released for a second
occurrence on the "ST Format" cover disk.
 April 1994 saw the release of version 6.2.  The major change  in
this  version was the fact that just about all dialogs  were  now
displayed as windows. This meant that the "Ultimate Virus Killer"
didn't  just work with multi-tasking Operating Systems but  would
actually  allow  other programs to run  in  the  background,  too
(these  tasks used to be frozen,  simply).  A bug in "GfA  Basic"
which caused the inability to output to a printer attached to the
Falcon  was  fixed by writing a custom  printer  output  routine.
Also,  the magic 1500 mark in "total recognised bootsectors"  was
passed.
 The  most  important change in version 6.3 (July 1994)  was  the
fact that encoded viruses were now recognised - especially  those
not  yet known or written.  They would now be internally  decoded
prior to the 'Virus Probability Factor' algorithm being let loose
on  them.  There were also a few bugs (in the recognition of  the
dangerous Beilstein Virus and in the window redraw routine)  that
were  fixed.  In May,  a demo version had already been  made  for
release on a Shareware CD ROM project by ROMWARE GmbH.
 Then, quite suddenly, my life took a 180 degree turn. Or perhaps
the  terms  "flip-flopped",  "jumped  wildly"  or  "went  crazily
berserk  in  an  immensely pleasing way"  would  be  rather  more
appropriate.  In  September 1994 I met a girl called  Karin  that
eventually  triggered  me  to leave my  girlfriend  of  5  years,
Miranda. Everything suddenly became so new and exciting, so magic
and un-hinted-at beautiful that there was not another choice left
for me. This choice had quite a few repercussions in the field of
housing and general stability of life,  especially because  Karin
was  to leave for an extracurricular year of English  studies  at
the University of Bristol by the end of that month, not to return
for good until June 1995.  I had 9 months of hard-core loneliness
ahead of me.
 Hence the considerable delay until version 6.4 was released,  in
January 1995.  That was three months overdue. Version 6.4 catered
for  much  better recognition of Atari's "No  Roach"  bootsectors
(which  determine HD spin-up delays and such) and had  some  bugs
fixed.  Due  to the amazing "GfA Basic" development  aid  package
"ERGO!pro"  (by Columbus Software) I had been able to  throw  out
some  remains of old strands of code,  too,  as well as  optimise
variable  use  a bit.  Use of floppy drive B was also  made  more
comfortable;  previously the program had always reverted back  to
drive  A when checking viruses on drive B,  which  wasn't  really
neat  at  all.  This  bug had never caught  my  attention  simply
because I only had one disk drive and nobody had bothered to tell
me before.
 The last version to be made prior to the finishing of this book,
April  1995's version 6.5,  was the first since a long time  that
was  supplied in a German-language version again.  Compo now  did
the distribution there.  During the translation,  a few  cosmetic
errors were spotted and fixed.  Also,  the program could now - at
least theoretically - perform printer output to Atari's SLM laser
printer with a Diablo driver installed.
 In  June 1995,  Karin came back from her year  abroad.  My  life
became  much more interesting and vibrant,  and I set to  writing
the remainder of this book, as well as re-writing bits that I was
no longer content with.  Somewhere in the last week of June I had
"FastCopy"  ("buffer to hard disk" option on) demolish my  entire
partition that had the book's text file on it. I had a backup but
it was dated April 2nd.  So I spent the time until the middle  of
July working like a nut to get all of it re-written and ready  to
send off.
 In  a  weekend when Karin was away to her  parents  and  weather
wasn't  too hot,  I set about finishing version 6.6.  A few  days
later,  August 2nd 1995, it was finished indeed. There had been a
persistent  bug  in the link virus check when  scanning  a  whole
partition,  usually leading to a bomb crash and involuntary  exit
to the desktop. As it happened, this was caused by an obscure bug
that  I  strongly  suspect is at home either in  "GfA  Basic"  or
GEMDOS'  'fsnext' call,  causing it sometimes to specify  a  non-
existing file consisting solely of spaces heading off with a zero
byte.  It  was  fixed thanks to the kind assistance of  Piet  van
Zanten,  who  allowed me to use his system on which hard disk  it
occurred  (it never occurred on my own).  The program itself  was
also  improved on a few important points.  The  extensive  system
check screen analysis algorithm was upgraded with a speed gain of
45%,  incidentally  bringing  to light that some  viruses  really
ought  to have been recognised more properly (which  consequently
they were).  Also, most bootsector virus check dialogs displaying
some  kind  of  result  had a  "look  at  it"  button  added,  so
bootsectors  could  now  usually also be  looked  at  when  known
programs were found on them - including viruses.
 Version  6.7,  released  on November 5th  1995,  was  once  more
delayed. I had spent a lot of time writing my MA thesis so that I
would  finally  be able to graduate before the end of  the  year.
Although I had only amassed half a year's delay, it seemed like I
had  been studying English forever and I really wanted  to  round
things off. I had my eyes set on a second-phase studies to become
qualified as a teacher of English for secondary school.  I wanted
to  start  in January.  Because the previous version had  seen  a
major overhaul in the system status screen recognition  routines,
various small bugs had entered in that particular section of  the
program.  Most of them were sorted out in this  version.  Besides
that,  I had also paid a vision to the Dutch distributors of  the
C-Lab  Falcons (Mk I and Mk II) so that it could  be  ascertained
that the program ran bug-free on these fringe systrems
 On 4 February 1996,  version 6.8 was released.  It had not  been
changed much when compared with the previous version; as a matter
of fact, the only change was that the system status check was now
updated  to  support the "Magic" multi-tasking  Operating  System
without crashing.

 And with that ends the history of the "Ultimate Virus Killer" as
far as it's covered in this book.