summaryrefslogtreecommitdiff
path: root/Contrib/IFF.def
diff options
context:
space:
mode:
Diffstat (limited to 'Contrib/IFF.def')
-rw-r--r--Contrib/IFF.def143
1 files changed, 143 insertions, 0 deletions
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.