Quick ADF Viewer
================
This is just a quick .ADF (Artworx Data Format) file viewer I decided
to write, because:

        a) The two that come with Artworx .91a ( both the C++ and
           PASCAL versions don't work! ).

        b) CIADRAW has useless ADF support.

        c) I have never come across ANY .ADF support that WORKS!

Features and stuff:
~~~~~~~~~~~~~~~~~~
        (-)  Supports unlimited file lengths due to incremental
             loading. This is almost seamless, you shouldn't be
             able to notice any/much disk I/O.  Should  be able
             to handle up to 4 gigs without a problem ( why not
             give it a try =)

        (-)  It works. Others don't.

        (-)  Nice little PGUP/PGDN scrolly things.

        (-)  Nice and fast, compact code, utilising only CRT...

How to use it:
~~~~~~~~~~~~~
Just type ADFVIEW <name of file> or something.

What was wrong with the others?:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
I didn't really try to use the C++ version that came with Artworx much
but:
        (a)  I tried it with a decently large file. Crashed.
        (b)  Short files (under 25 lines) display garbage underneath
             their graphics.
        (c)  Crashes on almost every graphic.

The PASCAL version was even worse:

        (a)  Un-necessarily used the DOS unit (for registers).
        (b)  Used another variable for reading extended keypresses,
             completely un-necessary.
        (c)  Exit_Stat used an Integer (2-bytes) whereas Boolean
             (1-byte) would be simpler and more efficient.
        (d)  Pointer was defined as an Integer! Big mistake, files
             over 200 lines caused the program to crash when reaching
             that position because it would overflow the 65535
             limit. LongInt would've been the correct choice.
        (e)  Number of lines was inaccurate due to a careless mistake
             (4298 instead of 4289).
        (f)  Count2 was defined, and never used.
        (g)  Pascal Registers were used. Pointless. Made the DOS unit
             necessary.
        (h)  The palette routines were good.. direct port access,
             meaning good speed. (palette was spelt incorrectly =)
        (i)  Blink bit routine and cursor routines were seperated
             (ie. one for ON, one for OFF) .. needlessly inefficient.
        (j)  VGA Font routine slow, using pascal regs instead of
             inline assembler, I assume this is because Shivan Bastard
             didn't know how to set ES and BP to the segment/offset
             of VGA_Font because a function can't be used inside inline
             assembler. Easy way around would be to define two variables
             as words and set them first then use them in the assembly
             part of the procedure. Eliminates need for DOS.TPU.
        (k)  Set_Textmode? why not just use Textmode(c80) since CRT
             is being used anyway.
        (l)  Crashed a lot.
        (m)  The last two lines were not being displayed due to the
             mistake mentioned earlier.
        (n)  Other annoying little things.

My little ADF viewer is far from perfect, but should work with any ADF
file and not crash at all.

Stuff:
~~~~~
You can contact me at:
        primus@stormfront.com.au

Check out my home page at:
        http://stormfront.com.au/~primus

Enjoy!

Primus

[kr]
