
  SVO.svobject

  © 1993-94 by Andreas R. Kleinert.

  FREEWARE. All rights reserved.

  Version      : 2.4
  Release Date : 27.03.1994


  Description
  ~~~~~~~~~~~
  SVO.svobject is an external Library-Module for the superview.library V2+.

  It contains SVDriver-Support for the superview.library V3+, and
  needs any SVDriver with Bitplane-/ChunkyPixel-Support.

  It supports reading and writing of SVO Files.
  In detail these are :

  Reading :

   - SVO V1.0  upto 256 Colors (future : also 16-24 Bit)

  Writing :

   - SVO V1.0  upto 256 Colors (future : also 16-24 Bit)


  File Format Information
  ~~~~~~~~~~~~~~~~~~~~~~~
  Pictures in the "SVO Graphics File Format" consist of two Files :
  The Header-File (<Picture>.svo) and the Data-File (<Picture>).
  The Header-File contains information about the Raw-Data in the
  Data-File. For loading and saving the Graphics it makes no difference,
  which FileName - Header-File or Data-File - is given.
  This is managed by the svobject.

  Because recognition of the Types of packed Files is only possible
  by reading the whole File into a buffer and then check it, we use
  two different Files for both : Graphics Information and Graphics.
  The Data-File CAN be packed, the Header-File MUST NOT be packed.

  The SVO.object does NOT save packed data, but it is possible, to pack
  the Data File with ANY XPK-Packer you like, because the SVO.object
  uses the xpk.library for decoding.

  The Data saved into the <Picture> File is written almost in the same
  way like in an IFF-ACBM : BitPlane after BitPlane.
  This allows efficient packing and unpacking with PowerPacker and all
  other XPK-Packers.

  Remember, that the original Data written by the SVO.object is NOT packed
  and therefore needs a lot of Diskspace. So pack it immediately after it
  has been written.


  Source-Code
  ~~~~~~~~~~~
  The "SVO Graphics File Format" is an "Open File Format", which means,
  that everyone is invented to use and support it and to make suggestions
  to improve the File Format or the Algorithms to handle it.

  To allow support of the File Format and to give an example, how to write
  your own superview.library compatible "svobjects", this distribution
  contains the full SourceCode of the "SVO.svobject".

  Feel free to use it for your own, commercial or non-commercial, programs !


  Author
  ~~~~~~
  Andreas R. Kleinert
  Grube Hohe Grethe 23
  D-57074 Siegen
  Germany


  History
  ~~~~~~~
  V2.4 (27.03.1994) :

   - removed internal SVDriver-Replacement, so that we now are really
     dependent on external SVDrivers in libs:svdrivers.
     This saves about 1600 Bytes diskspace and reduces redundancy.
   - replaced SAS/C's sprintf()-routine with own, RawDoFmt()-based one.
     This saves again about 1800 Bytes.
   - now using Utility-Library for integer operations (activated
     SAS/C's UTILLIB option) : this increases 68000-codesize a little
     bit, but increases speed on 68020+ systems
     (should also decrease codesize, but does not ...)


  V2.3 (25.03.1994) :

   - slightly improved internal BitMap-to-BitMap routine


  V2.2 (17.03.1994) :

   - fixed "large memory usage" bug in internal ECS-ChunkyPixel routine
   - added several security checks (zero-pointers)


  V2.1 (09.03.1994) :

   - very first "version 2" SVObject with SVDriver-Support
   - found bug in the SVO-FileFormat, when storing the 16-Bit and
     32-Bit ModeIDs :
     both are just defined as 16-Bit-UWORDs, so that the 32-Bit ModeID
     is theoretically _scratch_ !
     It does seem to work with SAS/C V6.5 nevertheless, but with this
     version the following work-around is done :
     The former "svo_Pad1" field becomes "svo_Version", which indicates
     extensions to the old 822-Byte-Header.
     With V1 a new 32-Byte-ModeID field is added, so that the old one
     becomes obsolete for reading of newer files.
     The OLD ViewMode32-Field is still written as before, but will only
     be read when handling files with version < 1 (= (BYTE)0).
   - internal routines : AUTOSCROLL now really works with big-sized Screens
   - fixed small bug im memory management routines


  V1.4 (24.01.1994) :

   - little internal improvements


  V1.3 (16.01.1994) :

   - improved speed


  V1.2 (04.01.1994) :

   - changed to recognize (reject) possible enhanced, future SVO Files
     (16-24 Bit)


  V1.1 (19.12.1993) :

   - first version


  Copyrights
  ~~~~~~~~~~
  Some of the mentioned names or products above may be copyrighted by
  companies or trademarks of companies.


