From 819975036a4f8bc962d85bee0c2b532ad89e0673 Mon Sep 17 00:00:00 2001
From: "Christian A. Weber" <chris@gna.ch>
Date: Thu, 19 May 1994 15:26:31 +0000
Subject: Add Contrib directory with Modula-2 and Oberon bindings

---
 Contrib/IFF.def | 143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 143 insertions(+)
 create mode 100644 Contrib/IFF.def

(limited to 'Contrib/IFF.def')

diff --git a/Contrib/IFF.def b/Contrib/IFF.def
new file mode 100644
index 0000000..902cf3e
--- /dev/null
+++ b/Contrib/IFF.def
@@ -0,0 +1,143 @@
+(* ---------------------------------------------------------------------------
+
+   IFF.def - Library Interface Module for the iff.library, V18.8, 31-Jul-90
+
+   By Olivier Schraner, Roggenweg 6, 5036 Oberentfelden/AG, Switzerland
+   For A+L's "M2Amiga" Modula-2 Compiler V3.3 
+
+--------------------------------------------------------------------------- *)
+
+DEFINITION MODULE IFF {"iff.library",18};
+
+FROM SYSTEM   IMPORT ADDRESS,CAST;
+FROM Graphics IMPORT BitMapPtr,ViewModeSet;
+FROM Exec     IMPORT MemReqs,MemReqSet;
+
+CONST
+ badTask = -1;            (* IFFError() called by wrong task *)
+ cantOpenFile = 16;       (* File not found *)
+ readError = 17;          (* Error reading file *)
+ noMem = 18;              (* Not enough memory *)
+ notIFF = 19;             (* File is not an IFF file *)
+ writeError = 20;         (* Error writing file *)
+ noILBM = 24;             (* IFF file is not of type ILBM *)
+ noBMHD = 25;             (* BMHD chunk not found *)
+ noBODY = 26;             (* BODY chunk not found *)
+ tooManyPlanes = 27;      (* Obsolete since V18.6 *)
+ unknownCompression = 28; (* Unknown compression type *)
+ noANHD = 29;             (* ANHD chunk not found *)
+ noDLTA = 30;             (* DLTA chunk not found *)
+
+ idFORM = CAST(LONGINT,"FORM") ;
+ idPROP = CAST(LONGINT,"PROP") ;
+ idLIST = CAST(LONGINT,"LIST") ;
+ idCAT  = CAST(LONGINT,"CAT ")-ORD(" ") ;
+
+ idANIM = CAST(LONGINT,"ANIM") ;
+ idANHD = CAST(LONGINT,"ANHD") ;
+ idILBM = CAST(LONGINT,"ILBM") ;
+ idBMHD = CAST(LONGINT,"BMHD") ;
+ idBODY = CAST(LONGINT,"BODY") ;
+ idCAMG = CAST(LONGINT,"CAMG") ;
+ idCLUT = CAST(LONGINT,"CLUT") ;
+ idCMAP = CAST(LONGINT,"CMAP") ;
+ idCRNG = CAST(LONGINT,"CRNG") ;
+ idDLTA = CAST(LONGINT,"DLTA") ;
+ idSHAM = CAST(LONGINT,"SHAM") ;
+
+ id8SVX = CAST(LONGINT,"8SVX") ;
+ idATAK = CAST(LONGINT,"ATAK") ;
+ idNAME = CAST(LONGINT,"NAME") ;
+ idRLSE = CAST(LONGINT,"RLSE") ;
+ idVHDR = CAST(LONGINT,"VHDR") ;
+
+
+TYPE
+ UByte=[0..255];
+
+ Chunk=RECORD
+   ckID:LONGINT;
+   ckSize:LONGINT;
+(* ckData:ARRAY [1..ckSize] OF UByte; (variable size) *)
+ END;
+ ChunkPtr=POINTER TO Chunk;
+
+ BitMapHeader=RECORD
+   w:CARDINAL;
+   h:CARDINAL;
+   x:INTEGER;
+   y:INTEGER;
+   nPlanes:UByte;
+   masking:UByte;
+   compression:UByte;
+   pad1:UByte;
+   transparentColor:CARDINAL;
+   xAspect:UByte;
+   yAspect:UByte;
+   pageWidth:INTEGER;
+   pageHeight:INTEGER;
+ END;
+ BitMapHeaderPtr=POINTER TO BitMapHeader;
+
+ AnimHeader=RECORD
+   operation:UByte;
+   mask:UByte;
+   w:CARDINAL;
+   h:CARDINAL;
+   x:INTEGER;
+   y:INTEGER;
+   absTime:LONGCARD;
+   relTime:LONGCARD;
+   interleave:UByte;
+   pad0:UByte;
+   bits:LONGCARD;
+   pad:ARRAY [0..15] OF UByte;
+ END;
+ AnimHeaderPtr=POINTER TO AnimHeader;
+
+ CompressionFlags=(cmpByteRun1,cf1,cf2,cf3,cf4,cf5,cf6,thisIsHAM,cf8,cf9,
+                   cf10,cf11,cf12,cf13,cf14,cf15,cf16,cf17,cf18,cf19,cf20,
+                   cf21,cf22,cf23,cf24,cf25,cf26,cf27,cf28,cf29,cf30,cf31);
+ CompressionFlagSet=SET OF CompressionFlags;
+
+
+
+PROCEDURE OpenIFF(filename{8}:ADDRESS):ADDRESS; CODE -30;
+
+PROCEDURE CloseIFF(ifffile{9}:ADDRESS); CODE -36;
+
+PROCEDURE FindChunk(ifffile{9}:ADDRESS;
+                    chunkname{0}:LONGINT):ADDRESS; CODE -42;
+
+PROCEDURE GetBMHD(ifffile{9}:ADDRESS):BitMapHeaderPtr; CODE -48;
+
+PROCEDURE GetColorTab(ifffile{9}:ADDRESS;
+                      colortable{8}:ADDRESS):LONGINT; CODE -54;
+
+PROCEDURE DecodePic(ifffile{9}:ADDRESS;
+                    bitmap{8}:BitMapPtr):BOOLEAN; CODE -60;
+
+PROCEDURE SaveBitMap(filename{8}:ADDRESS;
+                     bitmap{9}:BitMapPtr;
+                     colortable{10}:ADDRESS;
+                     flags{0}:CompressionFlagSet):BOOLEAN; CODE -66;
+
+PROCEDURE SaveClip(filename{8}:ADDRESS;
+                   bitmap{9}:BitMapPtr;
+                   coltab{10}:ADDRESS;
+                   flags{0}:CompressionFlagSet;
+                   xoff{1}:LONGINT;
+                   yoff{2}:LONGINT;
+                   width{3}:LONGINT;
+                   height{4}:LONGINT):BOOLEAN; CODE -72;
+
+PROCEDURE IFFError():LONGINT; CODE -78;
+
+PROCEDURE GetViewModes(ifffile{9}:ADDRESS):ViewModeSet; CODE -84;
+
+PROCEDURE NewOpenIFF(filename{8}:ADDRESS;type{0}:MemReqSet):ADDRESS; CODE -90;
+
+PROCEDURE ModifyFrame(modForm{9}:ADDRESS;bm{8}:BitMapPtr):BOOLEAN; CODE -96;
+
+
+END IFF.
-- 
cgit v1.2.3

