home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / JAGDEV_1.LZH / DEVELOP.JAG / VECTRONI.X! / LZJAG / README.TXT < prev    next >
Text File  |  1994-10-03  |  3KB  |  93 lines

  1. This archive contains code and tools necessary for doing LZSS compression
  2. on the Jaguar. LZSS is an efficient, yet lossless compression scheme
  3. that works well with both program code as well as graphics data or sound
  4. samples.
  5.  
  6.  
  7. NEW INCLUDES
  8. ------------
  9. WARNING!!! The source in this archive requires the newest versions of
  10. the Jaguar system include files (dated Sept 22, 1994 or later).  If you
  11. do not have these include files, you should download the latest INCLUD.ZIP 
  12. file from the Atari developer area on Compuserve or from the Atari
  13. Software Development BBS.
  14.  
  15.  
  16.  
  17. COMPRESSOR/DECOMPRESSOR UTILITY
  18. -------------------------------
  19. The Compression/decompression utility is named LZJAG.  It gets extracted
  20. to the JAGUAR\BIN directory.  It is very simple to use.  A command like:
  21.  
  22. lzjag -c file.bin
  23.  
  24. will create a file named FILE.LZJ that is compressed. A command like:
  25.  
  26. lzjag -x file.lzj
  27.  
  28. will create a file named FILE.BIN that is decompressed. Please note that
  29. the LZJ files created have no header; they are raw compressed data. 
  30. Therefore, you could potentially try to decompress a file that isn't 
  31. actually compressed and get strange results.
  32.  
  33.  
  34.  
  35.  
  36. LZJAG
  37. -----
  38. The JAGUAR\LZJAG directory contains the decompression routines and a
  39. test program that demonstrates how to use them.  The decompression
  40. routines are contained in DELZJAG.S, which must be assembled and
  41. linked with your code. To use the Jaguar GPU compressor you must:
  42.  
  43. 1. Copy (or better yet Blit) the GPU code from the ROM into GPU RAM. It is
  44.    currently assembled to run at $F03100 but that can be changed by
  45.    changing the .ORG statement in the DELZJAG.S file appropriately.
  46.  
  47. 2. Write the address of your compressed data and an output buffer to
  48.    addresses 'lzinbuf' and 'lzoutbuf' respectively.
  49.  
  50. 3. Write the address of a usable 8k block of buffer memory to 'lzworkbuf'.
  51.  
  52. 4. Load the GPU PC counter with the address of the routine ('delzss') and
  53.    start the GPU
  54.  
  55. 5. If you have other things to do that take time and don't use the GPU
  56.    or any of the above buffers, do them.
  57.  
  58. 6. Finally, poll the G_CTRL register to ensure the decompression is
  59.    finished.  The GPU will turn itself off when done.  You can change
  60.    this by editing DELZJAG.S if necessary.
  61.  
  62.  
  63. Things to be aware of: This subroutine does not use a stack but does use
  64. (and trash) registers r0-r19 though you can start the GPU in either register 
  65. bank.
  66.  
  67.  
  68.  
  69. TEST PROGRAM
  70. ------------
  71. The other source code files in this directory are for the sample program
  72. that demonstrates the decompression routines.  They make to form a short
  73. stub that follows the above procedure to decompress a 4k block of 
  74. compressed data into 26k of code at $100000 and then executes it (it 
  75. displays the Jaguar logo).
  76.  
  77.  
  78.  
  79. IN CLOSING...
  80. -------------
  81. The source code for LZJAG is available if you need it for some reason.
  82. It was built using Microsoft C/C++ 8.0 (Visual C++ v1.5) using the Huge 
  83. memory model.  Please contact me for more information, or if you have
  84. any questions.
  85.  
  86. Scott Sanders, Atari Corp.
  87. 1196 Borregas Ave.
  88. Sunnyvale, CA  94089
  89. Tel: (408) 745-2143
  90. Fax: (408) 745-2088
  91. Compuserve: 70007,1135
  92. Internet: 70007,1135@compuserve.com
  93.