


                     NakedEye A SuperVga GIF viewer

                               Van Dao Mai
                          Wollongong University

                                July 1991


        1.1 Acknowledgements

        I think  it is  always the  work of  somebody else   that
        makes   your work  worth doing.  That is  why I  wish  to
        acknowledge the  good work  of  Jordan  Hargrave  (for  a
        SuperVGA BGI driver) and Gershon Elber (a GIFLIB library)
        for   their   excellent  work.  The  SVGA256  BGI  driver
        written by  Jordan for  the Borland  Turbo C  compiler is
        truly  superb. On the other hand, the GIF library written
        by Gershon  is impressive  and so  easy to use. I created
        this software  NakedEye Version  1.0 relying  on the  two
        software items  mentioned above  and found them extremely
        useful.

        1.2 Is there anything new ?

        I am afraid that I am not offering many new things as far
        as features   are   concerned,  but I  do think  there is
        something better.  I adopt a stand that I will not repeat
        what others  have previously  done beautifully.  This GIF
        viewer is  designed for  PCs  running  MsDos  using  some
        really good  old-fashioned programming  techniques  which
        have generally  been ignored  by the careless programmers
        of today's  computing world.  I do keep in the back of my
        mind that  the   little machines  we have  today are  the
        giants of  yesterday, and  if we  cannot make  them do  a
        better job then we have failed pretty badly.

        This GIF  viewer is designed to work and make the most of
        what a  small architecture  like that  of a PC can offer,
        typically 64K  memory segments  and a  maximum of 640K of
        conventional  memory.  To  work  within  this  restricted
        environment, the amount of memory the GIF viewer needs is
        1.5K of  conventional memory for  each opened image. This
        1.5K is used mainly for the colour table, and the rest of
        the image  is either in EMS (Expanded Memory LIM 4.#)  or
        in a  hard disk  buffer. Nevertheless,  this  program  is
        almost  as  fast  as  any  of  the  popular  GIF  viewers
        currently in  use by  the DOS  community. No  attempt has
        been   made to  optimise it for better efficiency. I have
        to admit  that this is sort of a  rough work  rather than
        the work of a fine artist with a lot time and dedication.
        I have  spent only a little bit of my  spare time on this
        GIF viewer to convince myself that the good old-fashioned
        techniques in programming are still very useful.

        1.3 Some highlights

        This GIF  viewer is  a pure  SuperVGA GIF viewer, it does
        not understand  anything less than the resolution 640x400
        (this is actually a lie, it does know 320x200, but I hate
        this low  resolution). The  BGI driver  by  Jordan  knows
        640x480, 800x600  and 1024x678  in 256 colours. Thanks to
        the beautiful  BGI driver,  we have  256 colours  for all
        resolutions of  SuperVGA (it  does not  handle modes with
        less colours).


             - Supports Resolutions : 640x400, 640x480, 800x600
               and 1024x678.

             - Supports 256 colours (out of 256K colours).
             - Can open up to 150 GIF files (about 40-50 Mbytes)
               and be ready for very fast switching between them.
             - Only 1.5K bytes is needed for each GIF picture in
               the conventional 640K memory and the rest is in
               EMS or/and hard disk.
             - Automatically detect the  idle  time  (when  the
               user is looking at the current picture) and make
               use of it to decode the next image in advance.
               This  method  gives NakedEye a substantial speed
               advantage to many other popular GIF viewers.
             - Provides automatic compression  of  the  colour
               table  to leave some colour entries for text and
               windows.
             - Does not have any complicated installation  or
               configuration, thanks to the BGI driver's ability
               to auto-detect the hardware type and handle it
               accordingly.
             - Is almost totally mouse-driven and needs minimal
               key strokes.
             - Gives some limited capabilities to resize and save
               the images in GIF format. Provides a set of
               exotic features uniquely designed for the
               pleasure  of the  eyes.  Well, in fact, these
               features are also very nice for viewing materials
               of scientific nature.

        1.4 Using NakedEye

        This GIF viewer is extremely easy to use, all you have to
        do is  to make  sure  that  all  its  files  are  in  one
        directory.

        readme       : a short information file
        NakedEye.txt : this documentation file
        Note.txt     : up to date information after version 1.0
        NakedEye.exe : the executable.
        Splayer.exe  : the VOC sound player.
        NakedEye.cfg : optional configuration file.
        Goth.chr     : font file.
        Litt.chr     : font file
        Svga256.bgi  : Jordan's SuperVGA BGI
                       driver.
        stories.rc   : miscellaneous messages.
        NakedEye.hlp : help information file.
        NakedEye.key : the key file (registered copy only).

        There are also some other documentation files which are
        not used by the program. There are various extra files
        in this release 1.0.1, please read the file NOTE.TXT for
        changes since the first version 1.0 

        The hardware  requirement for  this software to run is an
        IBM PC  or compatible  with a  SuperVGA video  card and a
        SuperVGA monitor.  The video card must have at least 512K
        RAM for  resolutions up  to 800x600  in 256  colours, and
        definitely 1Mb  RAM for  the resolution  1024x768 in  256
        colours.

        Here is the list of video cards supported by the SuperVGA
        graphics driver : Ahead, ATI, Chips & Tech, Everex,
        Paradise, Trident, Tseng (both 3000 and 4000 chipsets)
        and Video7.

        At the DOS prompt type NakedEye gif-files where gif-files
        is a  list of  GIF files (a wild card is accepted in each
        item of  the list). If directories are given they will be
        scanned and all GIF files within them will be loaded.

        All the GIF file names will be sorted  alphabetically,
        then  the file names will be displayed in a window
        awaiting your selection.

        After selecting  what you  would like  to load, hit the L
        key to  start loading the first image. Then NakedEye will
        display the  control  panel  window  and  wait  for  your
        commands. All  other images will be loaded on demand when
        you wish  to see  them. At  this point  hit F2  to  start
        loading the  rest of the GIF files in a slide show if you
        wish. If  you do not have a mouse, you will be limited to
        keyboard  commands.  Let's  first  look  at  the  Control
        Panel of NakedEye.

        1.4.1 The Control Panel

        Here is  the  Control  Panel  window  for  NakedEye.  All
        functions on  the panel are only accessible by the mouse.
        Some are  offered on  the keyboard  and will be described
        later.

       +------------------+
       |    NakedEye      |
       +------------------+
       | AboutMe   SHELL  |
       | 640x400  640x480 |
       | 800x600 1024x768 |  <--- Resolution changes
       |  Light+   Light- |
       |  Red+     Red-   |  <--- Colour intensity changes
       | Green+   Green-  |
       |  Blue+    Blue   |
       | Random   Puzzle  |  <- Chewing gums for the eyes
       |  Glass    Tiles  |  <- Maginfication glass
       | Convex   Concave |  <- Special mirrors
       | Previous  Next   |  <- Select picture
       |  Mag+     Mag-   |  <- Set maginfication factors
       | HorzFlip VertFlip|  <- Flip the image
       | Rotate90 BlkWhte |  <- Rotation, Black&White mode
       | ShakeIt  ShLevel |  <- More chewing gums for the eyes
       | Curtain  CurMode |  <- Even more chewing gums for the eyes
       | Pick'em  Kill'em |  <- And more of chewing gums
       |  Music    Mfile  |  <- Chewing gums for the ears
       |  Delay   Show'em |  <- Slide show commands
       | Scroll   Select  |  <- View commands
       | Resize    Save   |  
       | Rename   Delete  |  <- File selection commands
       |  <---     --->   |   
       |  ---^     ---v   |  <- Image shift commands
       | Memory   FullScr |  <- Memory report, Full Screen mode
       |  Open     Close  |  <- Open new image or closing current image
       | Restore   Exit   |  <- Redraw with original colour table, Exit
       |                  |
       +------------------+

        Please do  not feel  alarmed  if  you  find  it  hard  to
        understand the above control panel. Most of the functions
        are self-explanatory  as soon  as you try them. Some more
        complex functions  that need  some  explanation  will  be
        explained shortly.  But  first  let's  look  at  a  mouse
        technique, the  mouse is  seen as a big + sign. To select
        an area  you find  a suitable spot and press the leftmost
        button once,  then release it go to another spot opposite
        to form  a rectangle,  then press  the same  button  once
        again. The two points together help NakedEye to determine
        the size  of a  square area  (the  smaller  side  of  the
        rectangle). This  square area  will be used as the active
        image area directly affected by the current command.

             - Random moves blocks of pixels randomly.
             - Puzzle shifts blocks of pixels randomly.
             - Tiles changes the number of rows and columns that
               the whole image will be divided into when Random
               or Puzzle is active.
             - Glass acts as a real-time magnification glass. You
               have to select a square area to help NakedEye
               determine the size of the glass, then the real-
               time glass will move everywhere you move the
               mouse.
             - Convex acts as a special round mirror that is
               produced by variable magnification factors
               reducing/increasing gradually and steadily from
               the outside to the centre of a circular area.

               These mirrors are very expensive in CPU time,
               therefore it is recommended for 286 with a math
               co-processor or 386 or 486 machines only.

             - Concave is similar to Convex but has the opposite
               effect.

             - Mag + and Mag - are for setting the magnification
               factor for the Glass, Convex and Concave mirrors.

             - HorzFlip flips the image horizontally so that left
               becomes right and vice versa.

             - VertFlip flips the image vertically so that top
               becomes bottom and vice versa.

             - Rotate90 rotates the image by 90 degrees. This
               when combined with the flipping commands helps you
               to get the desired orientation for an image.

             - Shake'it lets you select an area. It then shakes
               the rectangle. If you press the mouse it will stop
               and wait for you to select a new area. To exit from
               this mode type ESCape key. ShLevel is for you to 
               the vibration level.

             - Curtain  draws a 50% visibility curtain across an
               area selected by the user. The direction can be 
               left-to-right, right-to-left, top-to-bottom or
               bottom-to-top according to the mode selected using
               CurMode.

             - BlkWhte reduces the colour table to a gray scale
               table to give a black and white look for the
               image. This is a mode only and can be turned off
               by the command Restore.

             - Pick'em is a command used to highlight small parts
               of the image. A portion of the image is extracted,
               and it will be floating inside the image area like
               a fish in an aquarium.

             - Kill'em kills the objects created by Pick'em so
               that they stop floating on the screen. The object
               to be eliminated will have to be selected
               individually.
             - Delay sets the value for the slide show. It is a
               rotary value (back to minimum when it passes the
               maximum).

             - Resize allows you to resize an image, the image is
               written into a file which can be loaded later. It
               is an expensive function because of the memory
               restriction of the PC architecture. A lot of disk
               swapping is done, but the good thing is that you
               can resize to any reasonable size (between 10-2000
               pixels wide or high). It takes about 5 minutes to
               resize an image to 1500x1500 and about 1.5 minutes
               to resize an image to 800x600 on a 25Mhz 386 PC.

             - Rename helps you to rename a GIF file. It is there 
               for you to put good or bad picture into a collection
               of similar names. Delete is the command to eliminate
               bad GIF files from your disk.

             - Save is an inexpensive routine that writes the
               image out in GIF format with the current
               magnification factor for viewing. This factor is
               determined by two keys strokes U to blow it up and
               D to get it down.

             - FullScr hides the control panel, to revert to the
               panel type F on the keyboard. The keystroke F is a
               toggle (on/off) key for the FullScreen mode.

             - Restore reloads the original colour table and
               redraws the image.

        1.4.2 The Keyboard Functions

        The keyboard is an alternative if you do not have a mouse
        to access  the control panel, and it also caters for some
        functions that  the control  panel does  not have room to
        accommodate. The  way to  work  the  keyboard  is  a  bit
        cunning, and  you do  not have  to know everything to get
        the most out of NakedEye. Many keys will be used to offer
        the same commands which can be activated from the control
        panel by  the mouse. If you do not have a mouse, then the
        keyboard has to be used instead. Not all functions on the
        control panel  are  offered  on  the  keyboard,  and  the
        reverse is  also true  that not all keyboard commands are
        on the Control Panel.


        Key 1, 2, 3 and 4 are for switching to different
             resolutions from 640x400 to 1024x768.
        A    tells about the program (AboutMe).
        B    goes back to previous image (Previous).
        C    closes current image (Close).
        D    reduces the display magnification factor by 1.
        E    exits to DOS (Exit).
        F    switches ON/OFF full-screen mode (FullScr).
        H    flips the image horizontally.
        M    Play the VOC sound file associated with the image
             (Please read NOTE.TXT for more information)
        N    goes to next image (Next).
        P    shows the Puzzle (Puzzle).
        R    restores the colour and redraws the image (Restore).
        T    toggles background/foreground colour.
        U    increases the magnification factor by 1.
        V    flips the image vertically.
        W    writes the images out (Save).
        F1   shows a help window.
        F2   does a slide show (Show'em).
        F3   changes time delay in seconds (Delay).
        F9   does shell escape to DOS (SHELL).
        F10  toggles ON/OFF the idle time detection and
             automatic next-image-decoding running in the
             background.
        ESC  stops the current command or exit back to DOS if no
             command is running.
        HOME shows the top-left corner of the current image.
        LEFT shifts the image left gradually.
        UP   shifts the image up gradually.
        DOWN shifts the image down gradually.
        RIGHT shifts the image right gradually.
        CTRL-S saves the gif file (Save).
        CTRL-R rotates the gif file by 90 degrees.
        CTRL-D dumps the screen. The only portion that fits into
             the window is dumped out in GIF format. This is
             very similar to Save but the source is the screen.
             The output file is "eye#.gif" where # is a number.


        Please note  that LEFT,  DOWN, UP and RIGHT are the arrow
        keys. You  can control  the scrolling  of the image using
        these keys.  It takes  time to refresh the screen in high
        resolution such  as 800x600  and 1024x768. This means you
        should not  type ahead  the speed  of the machine because
        this will eventually cause you to wait.

        You may  have noted that the magnification factor you get
        from the  keyboard is  not the  same as  the one  on  the
        control panel. The keyboard is for the whole image whilst
        the magnification  from the  panel is  for the  real-time
        magnifying glass, the convex and concave mirrors.

        The current  command can  be stopped by the ESC key or at
        other situations,  by holding  the leftmost  mouse button
        down (mouse-related commands)

        1.4.3 Other weird features

        There are  a couple of weird features that can be invoked
        from the  keyboard. When  NakedEye is  waiting  for  your
        command the  two keys  J and  K are  used to  change  the
        colour of  the mouse.  The mouse  has its colour from the
        colour table  of the  current GIF  image.  Sometimes  the
        mouse is  hard to  see and the keys can be used to change
        it. Initially  the colour of the mouse is set to the last
        colour index in the colour table.

        When you  are in  the shifting mode where the whole image
        drifts slowly,  the current  image is drifting up/down or
        left/right depending  on what  arrow key  was  used.  The
        arrow keys  are also  used to  slow  the  speed  down  or
        increase it depending upon in what direction the image is
        drifting. Simply  do some  experiments with  them and you
        will see that they are intuitive enough.

        You will  also notice  that the keys U and D are used for
        instant magnification and reduction of the current image.
        The way  they work  are through  duplicating pixels,  and
        this means  the image  will be  blown up  by 2,  3, 4 ...
        times   the    original   size.   NakedEye   limits   the
        magnification  factor   to  10,  but  It  also  offers  a
        magnification factor of 0.5. This strange number actually
        causes 50  of the pixels to be skipped in both directions
        and effectively  reduces the  image by half each side. It
        is the  only way  to bring  huge images (about 1500x1500)
        into the  SuperVGA  screen  instantly  without  the  huge
        overhead of  scaling. But  as soon as you are ready to do
        something else,  NakedEye will  return the  image back to
        the original  size, then  continue to do what you command
        it to do.

        1.5 What else do you need to know ?

        This  copy   of  the   software  is   offered  for   free
        (unregistered copy)  without warranty of any kind. If you
        are happy  with the  unregistered copy  and  its  limited
        functionality,  you are welcome to use it. However if you
        would like  to have  a fully  functional copy of NakedEye
        you should  register.  More  information  will  be  given
        later,  especially   if  you   support  an  environmental
        organisation  you  are  more  than  welcomed  to  have  a
        registered copy for free.

        NakedEye has been tested extensively, and no obvious bugs
        are known. There may be a minor problem with the SuperVGA
        graphics driver.

        The BGI  driver of  Jordan crashes on some video cards if
        you try to select the video mode that your hardware does
        not support.  On some good video cards the driver will be
        able to  come back and complain. I cannot handle the case
        when it crashes. The machine will have to be rebooted. To
        avoid this  situation, you  can explicitly  tell NakedEye
        about the video modes that your video card can handle.

        The variable resol in the file nakedeye.cfg can be set to
        the correct video modes.

        NakedEye does  not handle interlaced GIF files. This is a
        limitation due  to a  trade-off  in  the  design  of  the
        software.

        It uses  very little  memory for  each GIF file, and this
        makes it  too hard for decoding interlaced GIF files. You
        have to  convert interlaced  GIF files  into  normal  GIF
        files using  some utility  in the  public domain.  One of
        such utility is GifInter (created by Gershon Elber in his
        GIFLIB) for  the purpose.  Please look at the README file
        for more information.

        There are  a couple  of command line options that you can
        use to invoke NakedEye into a correct video resolution or
        avoid the automatic compression of the colour table. Here
        is the full UNIX and DOS style synopsis :


        NakedEye [-m] [-mRES] [-c] [-q] [-s] [-dSECS] [-ns] gif-files

        Or

        NakedEye gif-files [/m] [/mRE] [/c] [/q] [/s] [/dSECS] [/ns] 


        Gif-files is a list of GIF files or names with wild card
        or even directory names. The scanning process can take
        some time if you give NakedEye too many places to search
        for GIF files.

        Option -m is used to set the start-up resolution for the
        video card where RES is one of 320x200, 640x400, 640x480,
        800x600 and 1024x768. To save you from typing such a long
        string, NakedEye also understands /0, /1, /2, /3 and /4
        respectively.

        When -m is used with no argument NakedEye 1.0.1 will start
        up into a file selection menu for user to choose files.

        To start  NakedEye up in 800x600, simply type nakedeye /3
        *.gif, for instance.

        Option -c tells NakedEye not to compress the colour table
        for each  image. This  is useful  if you  do not  want to
        alter the  images fearing some problem later when you may
        like to  save them  into new GIF files.  I have not found
        any problems  with  compressing  the  colour  table.  The
        compression tends  to leave  a few  empty colour  entries
        behind to  be used  as colours  for the Control Panel and
        text.

        Option -q  is for  quick display  of  a  GIF  file.  When
        NakedEye sees  this flag it will display the GIF file (or
        the first  of many)  straight away  with FullScreen  mode
        turned ON.  You can  then manipulate  the  image  by  the
        keyboard or hit ESC to exit. Of course, you can hit the F
        key to toggle to normal mouse-driven mode and
        proceed as usual. To start a slide show simply hit the F2
        key after the first image has been loaded.

        Option -s  is for  starting up a slide show. A slide show
        can be started up by option -q then the F2 key, but there
        will be users who want to save one extra key stroke.

        Option -d  is used  to set  up a delay time value between
        each picture  in a  slide show  of the GIF pictures where
        SECS is  the amount  of time  in seconds.  To get a slide
        show going, the typical method is to run  NakedEye with a
        wild card to match all the desired GIF files and option -
        s for a quick start up straight into a slide show.

          nakedeye -s -d5 *.gif

        The above  command will  start NakedEye  and set it ready
        for you to have a slide show with 5 seconds delay between
        each image.  I assume  that you  have all the desired GIF
        files in  the current  directory. Of course, at first the
        show will  be much  slower than  5 seconds  between  each
        image because  a lot  of time  is needed to load (decode)
        the images into memory (and/or hard disk cache). Once all
        the GIF  files have  been decoded,  the speed can be very
        fast depending on how much memory your machine has.

        Option -ns  stops NakedEye  from sorting  the list of GIF
        files given  to it.  This may be what you desired so that
        you can  manually arrange  the images  into a  particular
        order.

        Perhaps you would have noticed that the DOS convention of
        option using  the /  character  is  also  supported.  The
        options can  be placed  anywhere on the command line even
        between the  list of  GIF files.  NakedEye  automatically
        discards all  non-GIF formatted  files if  you use a wild
        card. The  wild card  "*" means  everything that  can  be
        read. This is in fact the one I use myself all the time.

        There is  also a  configuration file  called nakedeye.cfg
        for you  to set  the default  start up  for your  PC. The
        sample file  is self-explanatory  with a  lot of comments
        inside. Simply  follow the  comments and set it right for
        your system. The most probable item that you would set is
        the default  start-up resolution.  This should  be set to
        the best  resolution you  have in  your hardware.  If you
        worry about  speed, also  set the swap buffer file's path
        to your  fastest hard  drive. In  case you  do not have a
        memory manager  LIM 4.#  installed, but  you have a large
        ramdisk installed,  then go for it! - set the path of the
        swap file  to this ramdisk to make swapping a lot faster.
        Please read the section  Configuring NakedEye if you plan
        to tune NakedEye to your taste.

        If NakedEye  crashes due  to some  system exception trap,
        the EMS  memory may  not be  freed, and  this  means  the
        machine  has  to  be  rebooted  to  get  the  EMS  memory
        functional again.  This is  inevitable for  this kind  of
        situation. To reduce the chance that this happens, please
        do not  use Ctrl-C  or Ctrl-Break  to break  the  program
        unless you  are desperate  to do  so, and  also do not to
        switch to  the video  modes  that  your  hardware  cannot
        handle. In  any problematic case hit the ESC key and wait
        for NakedEye  to complete  what it  is  doing  and  exits
        cleanly.

        In case  of crashes  you should  look for  a file  called
        buffer#.tmp in  your disk  and delete  it as  that is the
        swap file used for buffering the decoded GIF images.

        The software is designed to handle up to 50 Mbytes of GIF
        files in a session, therefore the swap buffer file can be
        very large.

        If you  use commands  that will  alter the actual size of
        the image  NakedEye will  have to performed a lot of disk
        I/O because  it is  designed to  conserve memory. It will
        create temporary files for swapping. These files all have
        the .tmp extensions to make it easy for you to identified
        and delete  them if the system crashes. It is a good idea
        to set  the variable  bufpath in    namedeye.cfg  to  the
        fastest hard  disk you  have, and  make  it  point  to  a
        directory that  is used  mainly for  temporary files that
        can be  removed any  time. For example, if you have drive
        C: as the fastest drive (and/or it has a lot of free disk
        space), the  bufpath should  be set  to c:\tmp.  Then you
        create c:\tmp to accommodate all the temporary files.

        1.6 Configuring NakedEye

        NakedEye will run fine in most situations with a decent
        hardware setup.  However, you  can get  the most  out  of
        NakedEye by doing some tuning to fit it in perfectly with
        your system.   You  can set the variables in nakedeye.cfg
        to alter the behaviour of NakedEye.

        svga is  a variable  to be  set to  the full path name to
        your preferred SuperVga BGI driver. Some video cards have
        their own  BGI driver,  therefore  if  the  standard  BGI
        driver which  comes with  NakedEye  does  not  work,  you
        should set this to the one that works.

         Here is an example

        svga=c:\mydriver.bgi

        You  have  to  be  careful  if  you  choose  a  different
        BGIdriver for  NakedEye. The  mapping of  the video  mode
        numbers and  the actual  resolution  in  the  Svga256.bgi
        driver is as follows:

           Mode 0  to  320x200
           Mode 1  to  640x400
           Mode 2  to  640x480
           Mode 3  to  800x600
           Mode 4  to  1024x768

        If the  mapping of your SuperVGA driver is different then
        some commands may switch NakedEye to a wrong resolution.

        bufpath is the directory path name to where the temporary
        buffer file  for NakedEye  to swap  decoded raster images
        out when  memory is low. It should be set to your fastest
        and/or largest hard disk.

        Here is an example

        bufpath=c:\tmp

        NakedEye uses the hard disk very often for swapping
        therefore it  creates a  number of  temporary files  that
        will be  removed when  no longer  needed.  However,  your
        system crashes  when NakedEye is running, these files may
        have to  be removed  manually if your are short of space.
        That is  why it  is a  good idea  to  set  bufpath  to  a
        directory which  is used mainly for temporary stuffs that
        can be removed at any time.

        ems is  a  yes/no  flag  to  indicate  whether  you  want
        NakedEye to use EMS memory. The default is yes as this is
        what most people want.

        greeting is  a yes/no  flag to  indicate that whether you
        want to  have the  LOGO display  when NakedEye starts up.
        You may want to disable it when you have got a registered
        copy of  the software  and do not want to wait 30 seconds
        for the LOGO to disappear.

        compress is  a yes/no  flag that  indicates  whether  you
        would like  NakedEye to  compress the  color  table.  The
        default is  yes because  this is  what  almost  everybody
        wants.

        quickstart is  a yes/no  flag that  indicates  whether  a
        quick start-up  is what  you want.  This is  identical to
        option /q  on the  command line. If it is set to yes, the
        LOGO and file selection menus are skipped altogether. But
        the only  difference is  that NakedEye will start up with
        the FullScreen  mode OFF  instead of ON NakedEye has been
        designed  to   be   simple.   This   configuration   step
        unfortunately  makes   it  look  a  little  bit  complex.
        However, it  is hoped  that you  will not have to do much
        configuration at  all and  still get what you want out of
        NakedEye.

        1.7 A pleasure-seeker's tour of NakedEye

        In this  section I  would like  to guide  you through the
        most enjoyable  ways to view GIF pictures using NakedEye.
        Obviously you  need to  have a  good  collection  of  GIF
        pictures preferably big GIF files. Then secondly you need
        a good  hardware setup  with SuperVga  resolutions up  to
        1024x768 pixels  in 256  colours. You really need a video
        card with  1  Mbyte  memory  to  support  the  resolution
        1024x768 in  256 colours.  Many people  have  cards  with
        512Kbyte memory,  but they  mistaken that  the  card  can
        support 1024x768 in 256 colours.

        1.7.1 A quick start for the greedy viewer

          All you really want is a quick start up and glance
        through the pictures. This is typical when you are about
        to select good GIF pictures out of hundreds that you have
        just copied. You can simply start NakedEye with option /q
        for a quick start.


          NakedEye /q GIF-FILE(s)


        Provided that you have a registered copy of the software,
        the LOGO  and selection  menu are skipped altogether with
        the /q option. NakedEye starts up in FullScreen mode, and
        this means  you do not see the Control Panel (however you
        can get  it by  typing F  to  toggle  between  FullScreen
        (KeyBoard-Driven) and MouseDriven mode.

        At this point you can have two options

        You can  enter a  slide show  by hitting the key F2 . The
        rest of  the selected  GIF  files  will  be  sequentially
        loaded. As  soon as they are loaded, NakedEye will run at
        its maximum  speed giving  you a  continuous  slide  show
        until the ESC key is typed.

        You can  view the  current picture  to your  satisfaction
        with all  the keyboard  commands. The typical commands to
        try out  would be   U magnifies the picture up by 2 times
        what it was before.  D reduces the picture by a factor of
        2 .

        The arrow keys can be used to shift the image left, down,
        up and  right. Please  note that  this only  works if the
        current  image  is  actually  larger  than  the  physical
        screen-size (or has been blown up by the U command). Keys
        H, V  can be used to flip the image. Rotation can only be
        activated by  the mouse, so you will have to use F to get
        back to  FullScreen mode  to able  to access  the Control
        Panel.

        The key  1, 2,  3 and  4 switches  to different  physical
        screen resolutions  if you do have different video modes.
        Key N  gives you  the  next  image.  Key  F  switches  to
        FullScreen mode  so that  you can  use the  Control Panel
        with the mouse


        1.7.2 Get the best out of small images

        Small images  can be  very frustration  to look. You must
        know how  hard it feels to have a very beautiful but tiny
        picture that  looks bad when you magnify it. NakedEye can
        help with  the ability  to switch  instantly to  a higher
        resolution video mode right after a magnification.

        Use the  key U  to blow the image up larger than the size
        you want to see.

        Then use  key 3  or 4  to bring the high resolution video
        mode in (800x600 or 1024x768). The net effect is that you
        have a  small reduction  in quality  but the same picture
        size is achieved.

        I suppose  this needs  the best resolution of 1024x768 to
        work well.   If  you do  not have  this then it may be of
        some comfort to know that I do not have a proper 1024x768
        pixels resolution either!.


        1.7.3 Beauty is in motion

        We all  know that  pictures on  computers suffer  a  huge
        reduction in beauty because they do not move !. This is a
        hard feeling,  and I  know it  well. That is why NakedEye
        gives you  something less  attractive,  but  pleasant  to
        have.

        The trick  is to  set a  picture larger  than the size of
        your screen into motion so that you can gradually see all
        of it.  While the  picture is shifting in a direction you
        can control  the speed  of this shift and, when the speed
        is slow,  you have  a wavy motion effect that is pleasant
        to the  eyes. The  best effect  is usually  a  very  slow
        motion that  gives a  watery and  wavy look of the moving
        image.


        Choose an  image larger  than your  physical screen (send
        the video  mode to lower resolution or blow it up so that
        it no longer fits into the screen). Use one of arrow keys
        to shift  the image  in one direction. While the image is
        in  motion,  use  the  arrow  that  is  opposite  to  the
        direction of  the moving  image to  slow it  down and the
        opposing arrow key to speed it up.

        Some experimentation  with this technique will give you a
        smooth control  over the  blurriness you  may like to see
        the image  when you  sit back  and enjoy this alternative
        sense of  motion. By the way I not commenting on what you
        may be looking at!

        1.7.4 The exotic and fantasy or simply love of beauty ?

        You will  find the  three mirrors  given by  the  program
        rather exotic.  These are  the Convex,  Concave  and  the
        Glass mirrors.  Some even  think that  these mirrors  are
        classic .  Well whatever  you feel  about them,  they are
        their purely for your pleasure.

        The convex  mirror performs  the effect of a convex round
        magnifying glass,  and the  concave mirror  performs  the
        opposite effect  which is  the concave  round  magnifying
        glass. You  must forgive  me if  I have got the two words
        convex and  concave mixed  up in this software. The Glass
        is a  straight square  glass, but  it is  special in  the
        sense that it is performed in real time.

        Convex gives  a rounded  magnification with  a  gradually
        increasing magnification  factor to  the centre to create
        the effect of growing in size.

        Concave gives a rounded de-magnification with a gradually
        reducing magnification factor to the centre to create the
        effect of shrinking in size.

        Glass gives  a real  time square  magnifying glass  which
        moves in synchronization with the mouse cursor.

        It is very easy to work these mirrors. Just do the normal
        selection of  two points on the image to specify the size
        of the  glass. NakedEye  will look  at the  size  of  the
        rectangle and  make the  mirror fit into the smaller side
        of it.

        A word  of warning  for the  round mirrors. They are very
        expensive if  you do  not have a proper 386 or a math-co-
        processor. The  size of the mirror should not be too big.
        NakedEye will  make sure  that it does not exceed 150x150
        as there  is not  enough memory to hold all the temporary
        frames needed  to get  a decent  speed out  of a PC lower
        than a  386. Once  again I  will not  comment on what you
        look at with these mirrors.

        NakedEye also  gives two  types of  chewing gum  for your
        eyes: Puzzle  and Random.  These are  probably great  for
        coffee breaks  as they  help you  to exercise  your eyes'
        muscles.

        The command  Pick'em is  a designed  for pure pleasure so
        that user can set up a number of most interesting objects
        in the  image. These  portions of  the image will then be
        floating like  fishes in an aquarium. This will certainly
        slow your  machine down if you have many objects floating
        around. The  spare time  that the machine is idle between
        commands is  used for  this function. The object selected
        will be drifting across the screen.

        To create  an object,  you can simply select Pick'em then
        use the  mouse to define a rectangular area on the screen
        covering the  object you  want. The  smaller side  of the
        rectangular area  will be the size of the object which is
        a square  area of image. This object is then recorded and
        will be floating about until you explicitly kill each one
        by selecting Kill'em then click the left most button when
        the mouse cursor is pointing at the object. To cancel the
        command simply click on an empty area. When you switch to
        a different image, the current objects are still floating
        about. However the colour table of the current image will
        be different  from that  of the previous image (where the
        objects come  from), and  this  means  the  objects  will
        change colour.  If you  switch to BackWhite mode then the
        differences between the colour tables will be minimised.

        After a  while you  would want  to eliminate  some of the
        objects. Simply  select Kill'em  then point to the object
        to be  eliminated. A click to empty space will cancel the
        command.


        1.7.5 Getting very large pictures into full view

        NakedEye allows  you to  get very large pictures into the
        physical size  of your  screen. If  D is  typed when  the
        image is  in normal size, a zoom factor of 0.5 is applied
        to reduce  the size  of the image by half each direction.
        This  will   fit  very  large  pictures  in  comfortably,
        especially when  you have 800x600 or even 1024x768 pixels
        resolution.

        An alternative  exists for  looking at different sections
        of the picture if it cannot fit on the screen. The scroll
        command from  the Control  Panel will allow you to scroll
        the image in both directions at the same time. Simply use
        the mouse  clicks to  form two  points on  the image. The
        size of  the rectangle is used to calculate the amount of
        scrolling desired in both directions.

        A final alternative is the shifting commands: Left, Down,
        Up and  Right indicated  by  the  arrows  shapes  on  the
        Control  Panel.  You  can  access  these  functions  very
        quickly by  the four  arrow keys.   The  shifting is at a
        constant number  of pixels,  but this can be altered when
        the image  is moving.  This creates  a wavy  slow  motion
        effect on the scrolling picture.

        1.7.6 Prepare a good slide show

        Preparing a  good slide  show is very easy with NakedEye.
        You simply work out the following points:

        The desired  screen resolution  depending on  the size of
        the GIF  pictures and  also the hardware you have. Select
        the  needed   option  from   /m640x400  or  /m640x480  or
        /m800x600 or /m1024x768 (to save typing use /1, /2, /3 or
        /4 respectively).

        Determine whether  you would  like NakeEye  to  sort  the
        images for  you. If  the answer  is NO  then remember the
        option /ns.

        Now you are ready to run NakedEye


           NakedEye /3 /ns /s *.gif


           The above  command will  start NakedEye in quick-start
        mode into  a slide  show where there is no time wasted in
        displaying  the  LOGO  and  file  menu.  The  switch  /ns
        prevents the automatic sorting of the file names.

        To interrupt  the show  simply  type  ESC  to  return  to
        command  mode.  You  can  use  the  keyboard  to  control
        NakedEye.

        Type F  will bring  back the  Control Panel  if you would
        like to use the mouse.

        Then you  can close the images that are not to your taste
        and set magnification factor by the keys U or D.

        There are  various things  that you  can do  to an  image
        which will  affect the  display of  all  images  such  as
        scrolling, magnification etc... You can simply experiment
        this all these to see the desired effects.

        1.7.7 Image orientation

        NakedEye gives  users a  number of  commands to alter the
        orientation of  the image. You can flip the current image
        horizontally or  vertically and  also  rotate  it  by  90
        degrees. Due  to the limits in memory architecture of the
        DOS machine, these commands can be slow.

        HorizFlip flips  the  current  image  horizontally.  This
        command is  fairly fast and can be accessed by the key H.
        If you  type ahead  many times, the image will be flipped
        left then right and vice versa.

        VertFlip flips the image vertically. It is an expensive
        command because  NakedEye  is  not  designed  to  use  up
        precious memory.  The whole  processed image  has  to  be
        dumped out  to secondary  storage (disk)  then  reloaded.
        This does  take time,  but if you run NakedEye from a RAM
        disk it should be fast.

        Rotate90 is  a very  expensive command. It takes about 40
        seconds to  rotate a  640x480 image, and about 90 seconds
        to do an 1800x600 image (on a 386 at 25Mhz and 16ms seek-
        time hard disk). Again this is a trade off between memory
        usage and  speed which  is, in  turn, dictated by the DOS
        architecture.

        With the  above commands,  you can  combine them to alter
        the orientation  of your  current picture.  Then you  can
        save them  if you  wish  with  the  Save  command.  These
        commands create temporary buffer files where you instruct
        NakedEye to  put them  (in the  configuration file) or by
        default the current directory. If your system crashes for
        some reason when one of these commands are active, please
        make sure  that you  remove them to save disk space. They
        all have the extension .tmp for you to recognise easily.

        1.7.8 Saving and resizing GIF images

        NakedEye gives  you some  limited capabilities  to modify
        GIF images  and save  them. All  the colour  changes will
        affect the  saved images. If you have magnified the image
        by the key U, this will be taken into account as well.

        It is  very straight  forward with  the command Save so I
        will not  talk about  it here.  There is  another command
        call Dump  that dumps  the screen  into a GIF file. It is
        very similar  to Save  but the only difference is that it
        only writes  whatever on the portion of the screen inside
        the window  boundaries. The  source of  the  image  comes
        straight from  the video  RAM of your machine, this means
        all the  alterations are  recorded into  the output file.
        NakedEye has  to avoid  disturbing the  screen  when  the
        command is activated by the key Ctrl-D.

        The command  Resize  is  not  simple  and  deserves  some
        consideration. The  memory limit  of a  DOS  architecture
        causes a big problem with resizing images. Most image are
        larger than  4Kbytes, therefore  cannot fit  into the one
        segment of memory allocated.

        NakedEye takes  a slow  but sure approach to resizing the
        image. It  first resizes  the horizontal  direction, then
        rotates the  whole image by 90 degrees, then performs the
        same resizing  again, then  finally rotates it back by 90
        degrees. The  net result  is that it can resize images to
        any size  between 10-2000 pixels in both directions. This
        process surely  takes quite  sometime to  complete if you
        deal with  images greater than 500x500 pixels in size. It
        is fairly  fast if  you have a lot of EMS memory, and the
        memory is not occupied by other GIF files.

        For the  above reason  the output  will be written into a
        file on  the disk,  and you  have to load it in using the
        command Open if you wish to look at it. When you activate
        command   Resize it will ask for three values: horizontal
        size, vertical  size and  the output  file name.  You can
        give it  an extra  option  s or  p standing for speed and
        precision respectively. If speed is preferred, the output
        file will  not be  of the  exact size  but the process is
        considerably faster.  The trade  off is  very reason able
        because the  difference is  less than 10 pixels different
        in both directions.

        NakedEye will handle raster images up to 2500x2500 pixels
        in size,  but you  are pushing  your luck  with this size
        unless you  have a  lot of  free disk space after loading
        the image (over 20 Mbytes).

        1.7.9 Fix colour problems

        The colour  tables of the GIF pictures can cause problems
        due to the fact that most do use full 256 colour entries.
        This mans  none is left for NakedEye to paint the Control
        Panel, the  mouse cursor and the text displayed. NakedEye
        tackles this  problem by  many different  ways which  may
        need your help as you move from one image to another.

        Colour table  compression is  performed automatically  to
        remove all  duplicate colour entries and modify the image
        to fit  into the new colours table. This tends to squeeze
        out up  to 5  entries  in  average,  and  this  is  about
        adequate for  NakedEye to   display the Control Panel and
        its LOGO.  The T  command allows you to toggle the colour
        of background  and foreground.  This helps because images
        tend  to   have  different  colours  for  background  and
        foreground.  The  commands  allows  the  borders  of  the
        windows to  show up  if it  has been  submerged into  the
        background colour.

        The colour  of the mouse can be very hard to see. If this
        is the  case then  the keys K and J can be used to select
        different colours  until you  can see  the  mouse  cursor
        clearly.

        1.8 Some conditions

        I do  not  make  any  promise  of  having  this  software
        supported free  of charge  in the  future. But  if anyone
        wants to  have a  special version custom made for certain
        purpose,  I   will  be  prepared  to  build  it  at  some
        negotiated cost.  In any  case, this  software is not for
        companies to  make money  out of.  Personal use  here  is
        granted for an unregistered copy of NakedEye , however an
        unregistered  copy   is  not  fully  activated,  and  you
        definitely miss  out some  of the exotic features. I will
        be very  happy to give a registered copy of this software
        out to  anyone who makes a reasonable donation to support
        an environmental  organisation for  instance  GreenPeace.
        Simply send  me a  proof of  such an  effort and  a self-
        addressed, pre-paid  courier  bag  (or  postpak)  with  a
        floppy disk and a registered copy will be sent to you.

        For others  who wish  to have  a fully functional copy of
        NakedEye, please send a registration form to me. You will
        receive the  latest  copy  of  NakedEye  and  a  properly
        typeset user guide.

        If you are on the Internet, I can e-mailed the key to you
        after receiving the registration form.

        I also  disclaim any  responsibility in case the software
        causes any  damage to  your computer.  It has been tested
        fully and  no bug  is currently  known, apart  from  some
        possible problems  with the SuperVga graphics driver when
        an unpopular video card is used.

        I hope  that everybody  will enjoy  NakedEye, please send
        all comments  to my e-mail address  mai@wampyr.uow.edu.au
        or mail me at

           Mr. Van Dao MAI
           50/7 Corrimal St.
           Wollongong N.S.W 2500
           Tel: 61 042 213346
           Australia

        Any  suggestion   for  improvement   would   be   greatly
        appreciated.

