home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / demos / genesis.dms / genesis.adf / IFFData.doc < prev    next >
Text File  |  1990-12-30  |  9KB  |  213 lines

  1.                                  
  2. ****************************************************************************
  3.                  IffD V1.0
  4.               Copyright © 1990 AUSTEX Software
  5.         Written by P N GOULDING and S J SMITH
  6. ****************************************************************************
  7.  
  8.  
  9.  
  10.  PURPOSE
  11.  ~~~~~~~
  12. The purpose of this program is to allow a user to load an IFF brush (or
  13. picture), then resave in the format desired.  As Iff files are normally
  14. compacted that can't be used in programs unless you uncompact them.  This
  15. is obviously not acceptible if you need to place an object on screen FAST.
  16. This utility is for programmers with access to an assembly that allows a
  17. person to "include" binary files eg. Devpac, Argasm, and others which use
  18. the "INCBIN" (or similar) command.
  19.  
  20.  
  21.  UPDATE HISTORY
  22.  ~~~~~~~~~~~~~~
  23.     *Internal AUSTEX use only *
  24.  
  25. 27-08-89 V0.1 Commenced this utility, Cli command to read an ILBM file and
  26.     resave it as a Linkable Object file of uncompacted data.
  27. 12-09-89 V0.2 Fixed bug in Get_Cmap routine, now handles all picture
  28. 24-09-90 V0.3 Fixed bug with Save_Object routine.
  29. 13-10-89 V0.4 Fixed bug with GET_DATA routine, was using Ble instead of
  30.     BLS.
  31. 07-01-90 V0.5 Time to optimise the size and speed.  Been through and cut out
  32.     about 1000 bytes, mainly reducing large error messages.  Now down to
  33.     1800 bytes. More to go yet.
  34. 12-01-90 Commenced V0.6 Decided to open a backdrop window and use intuition
  35.      to end the program rather then using the LMB directly.
  36. 16-06-90 Commenced V0.8 (Whatever happened to V0.7??)
  37.     Well, decided not to save it as an Object file anymore, now will be
  38.     saved as a straight data file with a small Special structure in the
  39.     beginning.  Designed to be used with the INCBIN command on most
  40.     assembers.
  41. 28-06-90 Commenced V0.9 Big Deal!  Just cleaned up the code a bit and fixed
  42.     small bug with the saved filename.  Got rid of a bit of code that was
  43.     a illegal.  It was only saving 20 - 25 bytes anyway. 
  44.  
  45. 26-08-90 Commenced V1.0     * Now releasable as FREEWARE *
  46.  
  47.     Changed from a CLI command to intuition format.  This is the beginning
  48.     of some major changes.  A window with gadgets selecting 3 different
  49.     data formats (Plane, Sprite or Attached Sprite) and 5 different
  50.     Structures (Special, Simple, VSprite, Bobs, or None).
  51. 20-10-90 Slightly modified the Attatched Sprite format saved, allows two
  52.     blank longwords between each sprite data.
  53.  
  54.         
  55.  USING
  56.  ~~~~~
  57. The program runs from CLI or workbench.  to use from Cli type
  58. "Iffd <FILENAME>" (dont type the quotes or angle brackets).  FILENAME is the
  59. name of the picture or brush to be loaded and is optional.
  60. To run from workbench "doubleclick" on the IffD icon to load the
  61. application, or alternately, Hold the Shift button down, click on the Icon
  62. of a file you wish to load, then "doubleclick" on the IffD icon.  It will
  63. now load the application program and the selected picture or brush.
  64.  
  65. Once the program is loaded a window is opened on the workbench.  There are
  66. three groups of gadgets in this window.  (As below)
  67.  
  68.       |---------------------------------------------------|
  69.       |   ----------    -------------------------------   |
  70.       |   | Planes |    |   © 1990  AUSTEX SOFTWARE   |   |
  71.       |   ----------    -------------------------------   |
  72.       |   ----------    ---------- ---------   ---------  |
  73.       |   |ASprite |    | Special| |VSprite|   |  Load |  |
  74.       |   ----------    ---------- ---------   ---------  |
  75.       |   ----------    ---------- ---------   ---------  |
  76.       |   | Sprite |    | Simple | |  Bobs |   |  Save |  |
  77.       |   ----------    ---------- ---------   ---------  |
  78.       |---------------------------------------------------|
  79.  
  80. The group on the right are obviously for loading/saving files.  Only
  81. Interleaved Bitmap (ILBM) files can be loaded.  These are the normal Iff
  82. files save by paint applications (Brushes or pictures).  Clicking on these
  83. gadgets will bring up an Arp requester.  NOTE: if Arp isn't in your Libs
  84. directory then these two gadgets will be ghosted (switched off).
  85. If there is any problem loading a file, then a simple error message will
  86. be displayed in the Status Window (The one containing "© 1990 Austex
  87. Software").
  88.  
  89.  
  90. DATA FORMATS
  91. ~~~~~~~~~~~~
  92.   When a ILBM file has been loaded, you will notice that one,
  93. or two, of the gadgets on the left will be Ghosted.  These are the "Data
  94. format" group of gadgets.  The three data formats are:
  95.  
  96. PLANES:        This means the data will be saved as 1 bitmap plane of data
  97. for each plane depth (plane 1, then plane 2, plane 3, etc....)
  98.  
  99. ASPRITE:    This saves the data in Attached sprite format, (16 colour
  100. sprite), this is 2 normal sprites following each other.  When using Sprite
  101. data (Either Attached or normal) it will be neccessary to place the control
  102. word at the beginning of the sprite data and the end of the sprite data.
  103. This can be done as follows:
  104.  
  105.     Sprite0
  106.         dc.w    $30a0,$4000    <-- Control words for hardware sprites
  107.         incbin    sprite0.dat    <-- Data file produced by IFFD
  108.         dc.l    0        <-- Control Long word to switch off
  109.                         the sprite
  110.  
  111. For the attached sprite, there is two blank longwords between the two data
  112. hunks.  These are the end control word for the first sprite and the start
  113. control word for the second sprite, they need to be set by the program
  114. using the sprites.
  115.  
  116. SPRITE:     Saves data in a normal sprite format. (Read hardware manual
  117. for the last two data formats).  To use the either of the sprite data formats
  118. the brush loaded in must be 16 pixels wide.  Also for SPRITE it must be 2
  119. bitplanes deep and for ASPRITE it must be 4 bitplanes deep (any height is
  120. acceptable).  A data format which is not sutiable for either of these will
  121. cause that particular gadget to be ghosted.  Naturally any form can be saved
  122. as PLANES data.
  123.  
  124. The middle group of gadgets is the "Structure type" gadgets.  Selecting
  125. one of these will include that structure at the beginning of the file. 
  126. The SPECIAL structure is not a commodore structure, it is one we at AUSTEX
  127. like for ourselves.  The structure is as follows:
  128.  
  129.     Structure    Special,0
  130.       WORD        Sp_Colours    ; Number of colour register words
  131.       WORD        Sp_Depth     ; Number of Bitplanes
  132.       LONG        Sp_Length    ; Length of 1 plane of Data
  133.       WORD        Sp_height    ; Height of 1 plane of data
  134.       WORD        Sp_width    ; Pixel Width of 1 plane of data
  135.       LABEL        Sp_Size
  136.  
  137. The SIMPLE structure is a simple sprite structure as in the commodore
  138. include files.  Only the ss_height value is setup by IFFD, but the data
  139. and colour registers are a fixed distance from the structure and can be
  140. easily setup by a program.  All other values are zeroed
  141.  
  142. The VSprite structure is the same as Commodore includes.  The values setup
  143. are vs_height, vs_width, vs_depth, all other values are zeroed.  Once
  144. again, since the imagedata and colour registers are a fixed distance from
  145. the structure, they can be setup by the program using this data.
  146.  
  147. The Bobs structure is the same as Commodore includes.  The only values
  148. setup are same as VSprite structure above.
  149.  
  150. Following the structure is the colour registers, one word for each
  151. colour register.  The value saved is same as that required by the
  152. hardware.  Eg. white is $0FFF, upper nibble is zeroed, next three nibbles
  153. are the Red, Green, Blue values.
  154.  
  155. Following the Colour registers is the actual data in the format selected.
  156.  
  157. If no structure gadget is highlighted then only the uncompacted data will
  158. be saved, No structure, and No colour registers.
  159.  
  160. The following is an example of the data saved with PLANES selected for data
  161. format and SPECIAL for structure type
  162.  
  163.  
  164.     0000: 00080003 00000084 00B00140 0E000A00    ...........Ê....
  165.  
  166.           ^   ^    ^    ^   ^    ^ First colour register ($0E00)
  167.               |   |    |        |   | Word pixel width of data ($140)
  168.           |   |    |        | Word height of data  ($B0)
  169.           |      |    | the length of each plane of data ($84)
  170.           |   | the number of planes of data (3)
  171.           | The number of colour registers (8)
  172.  
  173.  
  174.     0010: 0D800FE0 08F00080 0FFF000F 00000000    ...à.ð..........
  175.  
  176.           ^                          ^ The start of the first plane of data
  177.           | still on colour registers
  178.     
  179.     0020: 1C000000 00000200 00000000 03800000    ................
  180.     0030: 000003C0 00000000 01E00000 000001F0    ...À.....à.....ð
  181.  
  182.           ^ The rest of this file is just the picture, (or brush
  183.         sprite etc.) , data.
  184.  
  185.  
  186. These structure makes it easy to make a general routine for displaying the
  187. data.
  188.  
  189.  
  190.  FUTURE
  191.  ~~~~~~
  192. If you have any suggestions to make this a more usefull application then
  193. write and tell us.  I have heard that there is a similar style of program
  194. put out by KEFRENS but I have not seen it.  So I can not compare the two
  195. programs.  Perhaps somebody with the KEFRENS program would like to send me
  196. a copy (I'm assuming its P.D. of course)
  197.  
  198. If anybody would like the original assembly source code for this program
  199. then send two 3.5 Disks and $25 (Australian) to the following address and I
  200. will return one disk with the source on it. (I'll keep the other to cover
  201. mailing expense).  The $25 is the cost of the Source code to buy.  Hey!
  202. you can't expect everything for free.
  203.  
  204.  
  205.      AUSTEX Software
  206.      PO BOX 48
  207.      KIRWAN
  208.      QUEENSLAND 4817
  209.      AUSTRALIA.
  210.  
  211. ---------------------------------------------------------------------------
  212.  
  213.