home *** CD-ROM | disk | FTP | other *** search
/ Amiga GigaPD 3 / Amiga_GigaPD_v3_3of3.iso / fred_fish / fish_601-700_lha / fish_674.lha / IFFLIB / IFF.def < prev    next >
Text File  |  1993-06-02  |  4KB  |  144 lines

  1. (* ---------------------------------------------------------------------------
  2.  
  3.    IFF.def - Library Interface Module for the iff.library, V18.8, 31-Jul-90
  4.  
  5.    By Olivier Schraner, Roggenweg 6, 5036 Oberentfelden/AG, Switzerland
  6.    For A+L's "M2Amiga" Modula-2 Compiler V3.3 
  7.  
  8. --------------------------------------------------------------------------- *)
  9.  
  10. DEFINITION MODULE IFF {"iff.library",18};
  11.  
  12. FROM SYSTEM   IMPORT ADDRESS,CAST;
  13. FROM Graphics IMPORT BitMapPtr,ViewModeSet;
  14. FROM Exec     IMPORT MemReqs,MemReqSet;
  15.  
  16. CONST
  17.  badTask = -1;            (* IFFError() called by wrong task *)
  18.  cantOpenFile = 16;       (* File not found *)
  19.  readError = 17;          (* Error reading file *)
  20.  noMem = 18;              (* Not enough memory *)
  21.  notIFF = 19;             (* File is not an IFF file *)
  22.  writeError = 20;         (* Error writing file *)
  23.  noILBM = 24;             (* IFF file is not of type ILBM *)
  24.  noBMHD = 25;             (* BMHD chunk not found *)
  25.  noBODY = 26;             (* BODY chunk not found *)
  26.  tooManyPlanes = 27;      (* Obsolete since V18.6 *)
  27.  unknownCompression = 28; (* Unknown compression type *)
  28.  noANHD = 29;             (* ANHD chunk not found *)
  29.  noDLTA = 30;             (* DLTA chunk not found *)
  30.  
  31.  idFORM = CAST(LONGINT,"FORM") ;
  32.  idPROP = CAST(LONGINT,"PROP") ;
  33.  idLIST = CAST(LONGINT,"LIST") ;
  34.  idCAT  = CAST(LONGINT,"CAT ")-ORD(" ") ;
  35.  
  36.  idANIM = CAST(LONGINT,"ANIM") ;
  37.  idANHD = CAST(LONGINT,"ANHD") ;
  38.  idILBM = CAST(LONGINT,"ILBM") ;
  39.  idBMHD = CAST(LONGINT,"BMHD") ;
  40.  idBODY = CAST(LONGINT,"BODY") ;
  41.  idCAMG = CAST(LONGINT,"CAMG") ;
  42.  idCLUT = CAST(LONGINT,"CLUT") ;
  43.  idCMAP = CAST(LONGINT,"CMAP") ;
  44.  idCRNG = CAST(LONGINT,"CRNG") ;
  45.  idDLTA = CAST(LONGINT,"DLTA") ;
  46.  idSHAM = CAST(LONGINT,"SHAM") ;
  47.  
  48.  id8SVX = CAST(LONGINT,"8SVX") ;
  49.  idATAK = CAST(LONGINT,"ATAK") ;
  50.  idNAME = CAST(LONGINT,"NAME") ;
  51.  idRLSE = CAST(LONGINT,"RLSE") ;
  52.  idVHDR = CAST(LONGINT,"VHDR") ;
  53.  
  54.  
  55. TYPE
  56.  UByte=[0..255];
  57.  
  58.  Chunk=RECORD
  59.    ckID:LONGINT;
  60.    ckSize:LONGINT;
  61. (* ckData:ARRAY [1..ckSize] OF UByte; (variable size) *)
  62.  END;
  63.  ChunkPtr=POINTER TO Chunk;
  64.  
  65.  BitMapHeader=RECORD
  66.    w:CARDINAL;
  67.    h:CARDINAL;
  68.    x:INTEGER;
  69.    y:INTEGER;
  70.    nPlanes:UByte;
  71.    masking:UByte;
  72.    compression:UByte;
  73.    pad1:UByte;
  74.    transparentColor:CARDINAL;
  75.    xAspect:UByte;
  76.    yAspect:UByte;
  77.    pageWidth:INTEGER;
  78.    pageHeight:INTEGER;
  79.  END;
  80.  BitMapHeaderPtr=POINTER TO BitMapHeader;
  81.  
  82.  AnimHeader=RECORD
  83.    operation:UByte;
  84.    mask:UByte;
  85.    w:CARDINAL;
  86.    h:CARDINAL;
  87.    x:INTEGER;
  88.    y:INTEGER;
  89.    absTime:LONGCARD;
  90.    relTime:LONGCARD;
  91.    interleave:UByte;
  92.    pad0:UByte;
  93.    bits:LONGCARD;
  94.    pad:ARRAY [0..15] OF UByte;
  95.  END;
  96.  AnimHeaderPtr=POINTER TO AnimHeader;
  97.  
  98.  CompressionFlags=(cmpByteRun1,cf1,cf2,cf3,cf4,cf5,cf6,thisIsHAM,cf8,cf9,
  99.                    cf10,cf11,cf12,cf13,cf14,cf15,cf16,cf17,cf18,cf19,cf20,
  100.                    cf21,cf22,cf23,cf24,cf25,cf26,cf27,cf28,cf29,cf30,cf31);
  101.  CompressionFlagSet=SET OF CompressionFlags;
  102.  
  103.  
  104.  
  105. PROCEDURE OpenIFF(filename{8}:ADDRESS):ADDRESS; CODE -30;
  106.  
  107. PROCEDURE CloseIFF(ifffile{9}:ADDRESS); CODE -36;
  108.  
  109. PROCEDURE FindChunk(ifffile{9}:ADDRESS;
  110.                     chunkname{0}:LONGINT):ADDRESS; CODE -42;
  111.  
  112. PROCEDURE GetBMHD(ifffile{9}:ADDRESS):BitMapHeaderPtr; CODE -48;
  113.  
  114. PROCEDURE GetColorTab(ifffile{9}:ADDRESS;
  115.                       colortable{8}:ADDRESS):LONGINT; CODE -54;
  116.  
  117. PROCEDURE DecodePic(ifffile{9}:ADDRESS;
  118.                     bitmap{8}:BitMapPtr):BOOLEAN; CODE -60;
  119.  
  120. PROCEDURE SaveBitMap(filename{8}:ADDRESS;
  121.                      bitmap{9}:BitMapPtr;
  122.                      colortable{10}:ADDRESS;
  123.                      flags{0}:CompressionFlagSet):BOOLEAN; CODE -66;
  124.  
  125. PROCEDURE SaveClip(filename{8}:ADDRESS;
  126.                    bitmap{9}:BitMapPtr;
  127.                    coltab{10}:ADDRESS;
  128.                    flags{0}:CompressionFlagSet;
  129.                    xoff{1}:LONGINT;
  130.                    yoff{2}:LONGINT;
  131.                    width{3}:LONGINT;
  132.                    height{4}:LONGINT):BOOLEAN; CODE -72;
  133.  
  134. PROCEDURE IFFError():LONGINT; CODE -78;
  135.  
  136. PROCEDURE GetViewModes(ifffile{9}:ADDRESS):ViewModeSet; CODE -84;
  137.  
  138. PROCEDURE NewOpenIFF(filename{8}:ADDRESS;type{0}:MemReqSet):ADDRESS; CODE -90;
  139.  
  140. PROCEDURE ModifyFrame(modForm{9}:ADDRESS;bm{8}:BitMapPtr):BOOLEAN; CODE -96;
  141.  
  142.  
  143. END IFF.
  144.