summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/CHANGES.DOC81
-rw-r--r--Examples/AnimExample.c6
-rw-r--r--Examples/EasyExample.c8
-rw-r--r--Examples/GrabScreen.c93
-rw-r--r--Examples/Grabber.S6
-rw-r--r--Examples/Makefile6
-rw-r--r--Programmer/iff.h60
-rw-r--r--Programmer/iff.i20
8 files changed, 164 insertions, 116 deletions
diff --git a/Documentation/CHANGES.DOC b/Documentation/CHANGES.DOC
index 9bef181..cadf439 100644
--- a/Documentation/CHANGES.DOC
+++ b/Documentation/CHANGES.DOC
@@ -1,27 +1,51 @@
**
-** $Id: CHANGES.DOC,v 22.2 92/06/03 23:52:06 chris Exp $
+** $Id: CHANGES.DOC,v 22.3 92/06/21 00:21:50 chris Exp $
**
-** $Author: chris $
-** $Release: 22.3 $
-** $Date: 92/06/03 23:52:06 $
+** $Author: Christian A. Weber $
+** $Release: 23.2 $
+** $Date: 92/06/20 17:21:50 $
**
+CHANGES FOR V23.2 (24-May-93)
+-----------------
+
+* The library no longer has a (unused) data hunk. This reduces its size.
+
+* iff.lib now has a version string.
+
+
+CHANGES FOR V23.1 (23-May-93, not released)
+-----------------
+
+* IFFL_PushChunk() and IFFL_PopChunk() know how to deal with nested FORMs.
+ The FORM type can be written manually (with a WriteChunkBytes() after
+ the IFFL_PushChunk(..., ID_FORM), or automatically.
+
+
+CHANGES FOR V22.4 (02-Jun-92)
+-----------------
+
+* IFFL_GetViewModes() doesn't set the HAM bit anymore if the IFF file has
+ no CAMG chunk. This is required for the AGA modes to work.
+
+
CHANGES FOR V22.3
-----------------
-* SaveClip() and SaveBitMap() won't crash on 68000 processors anymore
+* IFFL_SaveClip() and IFFL_SaveBitMap() won't crash on 68000 processors
+ anymore.
-* Minor bugs in documentation fixed
+* Minor bugs in documentation fixed.
CHANGES FOR V22.2
-----------------
-* Superfluous seeking in OpenIFF() removed (occurred only if the file was
- compressed with xpk)
+* Superfluous seeking in IFFL_OpenIFF() removed (occurred only if the
+ file was compressed with xpk)
* On popular demand, the MoviePRO ANIM player (plays Sculpt MOVIE and ANIM5)
is now included. It's still a BETA version, so use with care...
@@ -72,8 +96,8 @@ programmer's interface changed. Here's what's new:
* If you define the symbol IFFLIB_PRE21NAMES in your source codes, you
still can compile them using the old naming conventions. However,
- you will lose the ability to use iffparse.library in the same files
- because of the name clashes.
+ you will lose the ability to use iffparse.library in the same source
+ files because of some name clashes.
* In IFFL_SaveClip() and IFFL_SaveBitMap(), the color values are now
calculated correctly (multiplied, not shifted).
@@ -90,7 +114,7 @@ CHANGES FOR V20.1
-CHANGES FOR V19.1
+CHANGES FOR V19.1 (09-Oct-90)
-----------------
* SaveClip() and SaveBitMap() now correctly write 24 bitplane pictures.
@@ -103,7 +127,7 @@ CHANGES FOR V18.8
-----------------
* Modula-2 definition module and example program added, (contributed by
- Oliver Schraner, thanx!).
+ Olivier Schraner, thanx!).
* ShowIFF now adjusts the screen size according to the "normal" values
stored in GfxBase, for users of MoreRows or Kickstart 2.0.
@@ -116,19 +140,17 @@ CHANGES FOR V18.8
* No functional changes to the library (except new version number ;-)
-CHANGES FOR V18.7
+CHANGES FOR V18.7 (13-Apr-90)
-----------------
* You can now use DecodePic() to decode pictures with as many as 24
bitplanes. Although the original BitMap structure has only 8 pointers,
you can simply add more plane-pointers at the end of the structure.
- Note that these pictures must be in a normal bit-plane format (i.e.
- not the format for 'Deep ILBMs' specified by Commodore).
This feature enables my ShowIFF tool to directly display 24-bit pictures
- scanned with the ASDG color scanner (with limited colors, of course).
+ (with limited colors, of course).
-CHANGES FOR V18.6
+CHANGES FOR V18.6 (11-Apr-90)
-----------------
* DecodePic() can deal with pictures which have more planes than the
@@ -138,7 +160,7 @@ CHANGES FOR V18.6
is now obsolete.
-CHANGES FOR V18.5
+CHANGES FOR V18.5 (12-Mar-90)
-----------------
* OpenIFF() no longer trashes memory if a corrupt FORM (with some random
@@ -148,7 +170,7 @@ CHANGES FOR V18.5
supported by ShowIFF.
-CHANGES FOR V18.4
+CHANGES FOR V18.4 (28-Feb-90)
-----------------
* The library now handles poorly written BODY chunks correctly (such as
@@ -156,7 +178,7 @@ CHANGES FOR V18.4
a height or depth of 0.
-CHANGES FOR V18.2
+CHANGES FOR V18.2 (25-Feb-90)
-----------------
* The type IFFFILE has been redefined from 'CPTR' to 'void *'. This allows
@@ -169,7 +191,7 @@ CHANGES FOR V18.2
by ANIM readers for jumping from FORM to FORM (see example program).
-CHANGES FOR V18.1
+CHANGES FOR V18.1 (21-Feb-90)
-----------------
* New function ModifyFrame(). This functions takes a bitmap and modifies
@@ -220,7 +242,7 @@ This version never existed (the IFFLIB17.ZOO release contained iff.lib 16.4).
To avoid confusion, the new version number is now 18.
-CHANGES FOR V16.4
+CHANGES FOR V16.4 (16-May-89)
-----------------
* The ShowIFF.c example program was completely rewritten. It now uses the
@@ -239,14 +261,14 @@ CHANGES FOR V16.4
by HiSoft instead of the Manx 3.6 assembler)
-CHANGES FOR V16.3
+CHANGES FOR V16.3 (18-Mar-89)
-----------------
* The BMHD property chunks can now be in any order (which worked for V16.1,
but was broken in 16.2).
-CHANGES FOR V16.2
+CHANGES FOR V16.2 (03-Mar-89)
-----------------
* The SaveBitMap/SaveClip() routines sometimes generated a wrong CAMG chunk.
@@ -255,7 +277,7 @@ CHANGES FOR V16.2
* There are no more decruncher overruns corrupting the memory list
-CHANGES FOR V16.1
+CHANGES FOR V16.1 (01-Dec-88)
-----------------
Since V15.3 I got lots of suggestions, so I made the following changes.
@@ -289,3 +311,12 @@ Note that this version is fully downward-compatible to V15.3.
* The demo file 'ShowIFF.c' now correctly handles overscan pictures.
+
+-- [more boring version info deleted] --
+
+
+CHANGES FOR V1.0 (14-Dec-87)
+----------------
+
+* iff.library was born!
+
diff --git a/Examples/AnimExample.c b/Examples/AnimExample.c
index e45696d..1505a34 100644
--- a/Examples/AnimExample.c
+++ b/Examples/AnimExample.c
@@ -1,12 +1,12 @@
/*
**
-** $Id: AnimExample.c,v 21.1 92/05/28 17:09:27 chris Exp $
+** $Id: AnimExample.c,v 21.1 92/06/02 18:08:33 chris Exp $
** $Revision: 21.1 $
**
** $Filename: Examples/AnimExample.c $
** $Author: Christian A. Weber $
-** $Release: 21.1 $
-** $Date: 92/05/28 17:09:27 $
+** $Release: 23.2 $
+** $Date: 92/06/02 18:08:33 $
**
** A simple DPaint ANIM player. To compile with Lattice C 5.x, just
** type 'lmk'. For other compilers you may have to do minor changes.
diff --git a/Examples/EasyExample.c b/Examples/EasyExample.c
index c4cca07..11772f9 100644
--- a/Examples/EasyExample.c
+++ b/Examples/EasyExample.c
@@ -1,12 +1,12 @@
/*
**
-** $Id: EasyExample.c,v 21.1 92/05/28 17:09:27 chris Exp $
-** $Revision: 21.1 $
+** $Id: EasyExample.c,v 21.2 92/06/02 18:08:10 chris Exp $
+** $Revision: 21.2 $
**
** $Filename: Examples/EasyExample.c $
** $Author: Christian A. Weber $
-** $Release: 21.1 $
-** $Date: 92/05/28 17:09:27 $
+** $Release: 23.2 $
+** $Date: 92/06/02 18:08:10 $
**
** A simple ILBM file viewer. To compile with Lattice C 5.x, just
** type 'lmk'. For other compilers you may have to do minor changes.
diff --git a/Examples/GrabScreen.c b/Examples/GrabScreen.c
index fde0bf2..a3eca8d 100644
--- a/Examples/GrabScreen.c
+++ b/Examples/GrabScreen.c
@@ -1,20 +1,20 @@
/*
**
-** $Id: GrabScreen.c,v 21.1 92/05/18 01:05:18 chris Exp $
-** $Revision: 21.1 $
+** $Id: GrabScreen.c,v 22.4 93/02/03 02:06:54 chris Exp $
+** $Revision: 22.4 $
**
** $Filename: Examples/GrabScreen.c $
** $Author: Christian A. Weber $
-** $Release: 21.1 $
-** $Date: 92/05/18 01:05:18 $
+** $Release: 23.2 $
+** $Date: 93/02/03 02:06:54 $
**
-** IFF library example program. Compile with Lattice C 5.x.
+** IFF library example program. Compile with SAS/C 5.x or newer.
** This program saves the contents of the frontmost screen as an IFF file
** with filename 'RAM:grabscreen.pic'.
** This example makes use of the IFFL_PushChunk() / IFFL_WriteChunkBytes() /
** IFFL_PopChunk() functions, it does not use IFFL_SaveBitMap().
**
-** COPYRIGHT (C) 1987-1992 BY CHRISTIAN A. WEBER, BRUGGERWEG 2,
+** COPYRIGHT (C) 1987-1993 BY CHRISTIAN A. WEBER, BRUGGERWEG 2,
** CH-8037 ZUERICH, SWITZERLAND.
** THIS FILE MAY BE FREELY DISTRIBUTED. USE AT YOUR OWN RISK.
**
@@ -62,7 +62,7 @@
*/
struct Library *IFFBase;
-char version[] = "\0$VER: GrabScreen 21.2 by Christian A. Weber";
+char version[] = "\0$VER: GrabScreen 22.4 by Christian A. Weber";
/****************************************************************************
@@ -82,7 +82,7 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
/*
** Open the file for writing
*/
- if(iff = IFFL_OpenIFF(filename,IFFL_MODE_WRITE))
+ if (iff = IFFL_OpenIFF(filename, IFFL_MODE_WRITE) )
{
struct IFFL_BMHD bmhd;
ULONG modeid;
@@ -109,15 +109,15 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
/*
** Create the BMHD chunk. (goto considered useful :-))
*/
- if(IFFL_PushChunk(iff,ID_ILBM,ID_BMHD))
+ if (IFFL_PushChunk(iff, ID_ILBM, ID_BMHD) )
{
- if(!IFFL_WriteChunkBytes(iff,&bmhd,sizeof(bmhd)))
+ if (!IFFL_WriteChunkBytes(iff, &bmhd, sizeof(bmhd)) )
{
printf("Error writing BMHD data.\n");
goto error;
}
- if(!IFFL_PopChunk(iff))
+ if (!IFFL_PopChunk(iff) )
{
printf("Error closing BMHD chunk.\n");
goto error;
@@ -133,13 +133,13 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
** Create the CMAP chunk.
*/
count = screen->ViewPort.ColorMap->Count;
- if(colortable = AllocMem(count * 3, MEMF_ANY))
+ if (colortable = AllocMem(count * 3, MEMF_ANY))
{
int i;
- for(i=0; i<count; ++i)
+ for (i=0; i<count; ++i)
{
- UWORD rgb4 = GetRGB4(screen->ViewPort.ColorMap,i);
+ UWORD rgb4 = GetRGB4(screen->ViewPort.ColorMap, i);
colortable[i*3+0] = (rgb4 >> 4) & 0xF0;
colortable[i*3+0] |= colortable[i*3+0] >> 4;
@@ -151,15 +151,15 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
colortable[i*3+2] |= colortable[i*3+2] >> 4;
}
- if(IFFL_PushChunk(iff,ID_ILBM,ID_CMAP))
+ if (IFFL_PushChunk(iff, ID_ILBM, ID_CMAP) )
{
- if(!IFFL_WriteChunkBytes(iff,colortable,count * 3))
+ if (!IFFL_WriteChunkBytes(iff, colortable, count * 3) )
{
printf("Error writing CMAP data.\n");
goto error;
}
- if(!IFFL_PopChunk(iff))
+ if (!IFFL_PopChunk(iff) )
{
printf("Error closing CMAP chunk.\n");
goto error;
@@ -171,24 +171,24 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
goto error;
}
- FreeMem(colortable,count * 3);
+ FreeMem(colortable, count * 3);
}
/*
** Get the viewport's modes for the CAMG chunk.
*/
modeid = (GfxBase->LibNode.lib_Version >= 36) ?
- GetVPModeID(&screen->ViewPort) : (screen->ViewPort.Modes&OLDCAMGMASK);
+ GetVPModeID(&screen->ViewPort) : (screen->ViewPort.Modes & OLDCAMGMASK);
- if(IFFL_PushChunk(iff,ID_ILBM,ID_CAMG))
+ if (IFFL_PushChunk(iff, ID_ILBM, ID_CAMG) )
{
- if(!IFFL_WriteChunkBytes(iff,&modeid,sizeof(modeid)))
+ if (!IFFL_WriteChunkBytes(iff, &modeid, sizeof(modeid)) )
{
printf("Error writing CAMG data.\n");
goto error;
}
- if(!IFFL_PopChunk(iff))
+ if (!IFFL_PopChunk(iff) )
{
printf("Error closing CAMG chunk.\n");
goto error;
@@ -203,28 +203,35 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
/*
** Generate BODY
*/
- if(IFFL_PushChunk(iff,ID_ILBM,ID_BODY))
+ if (IFFL_PushChunk(iff, ID_ILBM, ID_BODY) )
{
UBYTE *bodybuf;
- if(bodybuf = AllocMem(BODYBUFSIZE,MEMF_ANY))
+ if (bodybuf = AllocMem(BODYBUFSIZE, MEMF_ANY) )
{
UBYTE *planes[MAXSAVEDEPTH];
- int row,rowbytes,iplane,bodysize=0;
+ int row, rowbytes, iplane, bodysize=0;
- rowbytes = bitmap->BytesPerRow;
+ /*
+ ** Under OS 3.x, we are not allowed to read the fields of a
+ ** BitMap structure directly (strange results may happen due
+ ** to ILBM modes), so we call GetBitMapAttr() under 3.x.
+ */
+ rowbytes = (GfxBase->LibNode.lib_Version >= 39) ?
+ (GetBitMapAttr(bitmap, BMA_WIDTH) >> 3) :
+ bitmap->BytesPerRow;
/*
** Copy the plane pointers into the local array "planes"
*/
- for(iplane=0; iplane < bmhd.nPlanes; ++iplane)
+ for (iplane=0; iplane < bmhd.nPlanes; ++iplane)
{
planes[iplane] = bitmap->Planes[iplane];
}
- for(row=0; row < bmhd.h; ++row)
+ for (row=0; row < bmhd.h; ++row)
{
- for(iplane=0; iplane < bmhd.nPlanes; ++iplane)
+ for (iplane=0; iplane < bmhd.nPlanes; ++iplane)
{
int comprsize;
@@ -232,9 +239,9 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
** To speed up things, we collect as much data
** as possible in bodybuf before we write it out.
*/
- if(bodysize > (BODYBUFSIZE-MAXPACKEDSIZE(rowbytes)))
+ if (bodysize > (BODYBUFSIZE-MAXPACKEDSIZE(rowbytes)) )
{
- if(!IFFL_WriteChunkBytes(iff,bodybuf,bodysize))
+ if (!IFFL_WriteChunkBytes(iff, bodybuf, bodysize) )
{
printf("Error writing BODY data.\n");
goto error;
@@ -245,30 +252,30 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
/*
** Compress the next row
*/
- if(!(comprsize = IFFL_CompressBlock(planes[iplane],
- bodybuf+bodysize,rowbytes,IFFL_COMPR_BYTERUN1)))
+ if ( !(comprsize = IFFL_CompressBlock(planes[iplane],
+ bodybuf+bodysize, rowbytes, IFFL_COMPR_BYTERUN1)) )
{
printf("Error compressing BODY data.\n");
goto error;
}
bodysize += comprsize;
- planes[iplane] += rowbytes;
+ planes[iplane] += bitmap->BytesPerRow; /* next line */
}
}
/*
** Now we're done, so flush the body data buffer
*/
- if(bodysize)
+ if (bodysize)
{
- if(!IFFL_WriteChunkBytes(iff,bodybuf,bodysize))
+ if (!IFFL_WriteChunkBytes(iff, bodybuf, bodysize) )
{
printf("Error writing BODY data.\n");
goto error;
}
}
- FreeMem(bodybuf,BODYBUFSIZE);
+ FreeMem(bodybuf, BODYBUFSIZE);
}
else
{
@@ -276,7 +283,7 @@ BOOL MySaveScreen(struct Screen *screen,char *filename)
goto error;
}
- if(!IFFL_PopChunk(iff))
+ if (!IFFL_PopChunk(iff) )
{
printf("Error closing BODY chunk.\n");
goto error;
@@ -299,6 +306,7 @@ error:
return result;
}
+
/****************************************************************************
** Main program
*/
@@ -307,21 +315,21 @@ int main(int argc, char **argv)
{
int result = RETURN_FAIL;
- if(GfxBase = (struct GfxBase *)OpenLibrary("graphics.library",0))
+ if (GfxBase = (struct GfxBase *)OpenLibrary("graphics.library", 0L) )
{
- if(IntuitionBase = (struct IntuitionBase *)OpenLibrary("intuition.library",0))
+ if (IntuitionBase = (void *)OpenLibrary("intuition.library", 0) )
{
/*
** For the new functions we need at least version 21 of iff.library.
*/
- if(IFFBase = OpenLibrary(IFFNAME,21))
+ if (IFFBase = OpenLibrary(IFFNAME, 21L) )
{
/*
** Note that we don't lock the screen, so it might go away while
** we're writing its contents to the file, and the picture may
** then contain garbage.
*/
- MySaveScreen(IntuitionBase->FirstScreen,"RAM:grabscreen.pic");
+ MySaveScreen(IntuitionBase->FirstScreen, "RAM:grabscreen.pic");
result = RETURN_OK;
CloseLibrary(IFFBase);
@@ -338,3 +346,4 @@ int main(int argc, char **argv)
return result;
}
+
diff --git a/Examples/Grabber.S b/Examples/Grabber.S
index 1a7faa1..3a3a91a 100644
--- a/Examples/Grabber.S
+++ b/Examples/Grabber.S
@@ -1,11 +1,11 @@
**
-** $Id: Grabber.S,v 21.1 92/05/28 17:09:27 chris Exp $
+** $Id: Grabber.S,v 21.1 92/06/02 18:09:22 chris Exp $
** $Revision: 21.1 $
**
** $Filename: Examples/Grabber.S $
** $Authors: Christian Haller, CHW $
-** $Release: 21.1 $
-** $Date: 92/05/28 17:09:27 $
+** $Release: 23.2 $
+** $Date: 92/06/02 18:09:22 $
**
** Example for low level Assembler hackers :-)
**
diff --git a/Examples/Makefile b/Examples/Makefile
index 3343a0d..5e4990f 100644
--- a/Examples/Makefile
+++ b/Examples/Makefile
@@ -1,11 +1,11 @@
##
-## $Id: $
-## $Revision: $
+## $Id: Makefile,v 21.1 92/06/02 18:14:03 chris Exp $
+## $Revision: 21.1 $
##
## $Filename: Examples/Makefile $
## $Author: Christian A. Weber $
## $Release: 21.1 $
-## $Date: 92/05/17 03:09:18 $
+## $Date: 92/06/02 18:14:03 $
##
## Makefile to build iff.library examples
##
diff --git a/Programmer/iff.h b/Programmer/iff.h
index de1faf5..98e4c2c 100644
--- a/Programmer/iff.h
+++ b/Programmer/iff.h
@@ -2,18 +2,18 @@
#define LIBRARIES_IFF_H
/*
**
-** $Id: iff.h,v 21.4 92/05/23 01:34:23 chris Exp $
-** $Revision: 21.4 $
+** $Id: iff.h,v 22.1 92/06/02 16:46:47 chris Exp $
+** $Revision: 22.1 $
**
-** $Filename: iff.h $
+** $Filename: Libraries/iff.h $
** $Author: Christian A. Weber $
-** $Release: 22.1 $
-** $Date: 92/05/23 01:34:23 $
+** $Release: 23.2 $
+** $Date: 92/06/02 16:46:47 $
**
** Standard header file for programs using iff.library
**
-** COPYRIGHT (C) 1987-1992 BY CHRISTIAN A. WEBER, BRUGGERWEG 2,
-** CH-8037 ZUERICH, SWITZERLAND.
+** COPYRIGHT (C) 1987-1993 BY CHRISTIAN A. WEBER, BRUGGERWEG 2,
+** CH-8037 ZUERICH, SWITZERLAND (chris@mighty.adsp.sub.org).
** THIS FILE MAY BE FREELY DISTRIBUTED. USE AT YOUR OWN RISK.
**
*/
@@ -23,7 +23,7 @@
#endif
#define IFFNAME "iff.library"
-#define IFFVERSION 22L /* Current library version */
+#define IFFVERSION 23L /* Current library version */
/****************************************************************************
** Error codes (returned by IFFL_IFFError())
@@ -94,7 +94,9 @@
#define ID_8SVX IFFL_MAKE_ID('8','S','V','X')
#define ID_ATAK IFFL_MAKE_ID('A','T','A','K')
+#ifndef ID_NAME
#define ID_NAME IFFL_MAKE_ID('N','A','M','E')
+#endif
#define ID_RLSE IFFL_MAKE_ID('R','L','S','E')
#define ID_VHDR IFFL_MAKE_ID('V','H','D','R')
@@ -124,30 +126,27 @@
** Structure definitions
*/
-#ifdef _IFFLIB
-
-typedef struct
-{
- BPTR File; /* DOS file handle */
- LONG FormSize; /* Größe des gesamten FORM */
- LONG ChunkSize; /* Größe des aktuellen Chunks */
- LONG ChunkFPos; /* Position im File wo dieser Chunk beginnt */
-} *IFFL_HANDLE;
-
-#else
-
-typedef void *IFFL_HANDLE; /* The IFF 'FileHandle' structure */
+/*
+** The private IFF 'FileHandle' structure
+*/
+typedef void *IFFL_HANDLE;
-#endif
-struct IFFL_Chunk /* Generic IFF chunk structure */
+/*
+** Generic IFF chunk structure
+*/
+struct IFFL_Chunk
{
LONG ckID;
LONG ckSize;
/* UBYTE ckData[ckSize] (variable sized data) */
};
-struct IFFL_BMHD /* BMHD chunk for ILBM files */
+
+/*
+** BMHD chunk (BitMapHeader) of ILBM files
+*/
+struct IFFL_BMHD
{
UWORD w,h;
WORD x,y;
@@ -160,7 +159,11 @@ struct IFFL_BMHD /* BMHD chunk for ILBM files */
WORD pageWidth,pageHeight;
};
-struct IFFL_ANHD /* ANHD chunk for ANIM files */
+
+/*
+** ANHD chunk (AnimHeader) of ANIM files
+*/
+struct IFFL_ANHD
{
UBYTE Operation;
UBYTE Mask;
@@ -182,8 +185,9 @@ struct IFFL_ANHD /* ANHD chunk for ANIM files */
#define AnimHeader IFFL_ANHD
#endif
+
/****************************************************************************
-** IFF library function prototypes (ANSI)
+** IFF library function prototypes (ANSI C)
*/
void IFFL_CloseIFF ( IFFL_HANDLE );
@@ -225,7 +229,7 @@ IFFL_HANDLE PPOpenIFF(char *,char *);
/****************************************************************************
-** Pragmas for Lattice C V5.x
+** Pragmas for SAS/C
** (generated with: 'fd2pragma iff_lib.fd iff_pragmas.h')
*/
@@ -271,5 +275,5 @@ extern struct Library *IFFBase;
#endif
-#endif !LIBRARIES_IFF_H
+#endif
diff --git a/Programmer/iff.i b/Programmer/iff.i
index b909e1c..bc304a5 100644
--- a/Programmer/iff.i
+++ b/Programmer/iff.i
@@ -1,18 +1,18 @@
IFND LIBRARIES_IFF_I
LIBRARIES_IFF_I SET 1
**
-** $Id: iff.i,v 21.3 92/05/23 01:34:36 chris Exp $
-** $Revision: 21.3 $
+** $Id: iff.i,v 22.1 92/06/02 16:46:32 chris Exp $
+** $Revision: 22.1 $
**
-** $Filename: iff.i $
+** $Filename: Libraries/iff.i $
** $Author: Christian A. Weber $
-** $Release: 22.1 $
-** $Date: 92/05/23 01:34:36 $
+** $Release: 23.2 $
+** $Date: 92/06/02 16:46:32 $
**
** Standard header file for programs using iff.library
**
** COPYRIGHT (C) 1987-1992 BY CHRISTIAN A. WEBER, BRUGGERWEG 2,
-** CH-8037 ZUERICH, SWITZERLAND.
+** CH-8037 ZUERICH, SWITZERLAND (chris@mighty.adsp.sub.org).
** THIS FILE MAY BE FREELY DISTRIBUTED. USE AT YOUR OWN RISK.
**
@@ -22,7 +22,7 @@ IFFNAME MACRO
dc.b 'iff.library',0
ENDM
-IFFVERSION: EQU 22 ; Current library version
+IFFVERSION: EQU 23 ; Current library version
*****************************************************************************
@@ -88,12 +88,16 @@ ID_SHAM EQU 'SHAM'
ID_8SVX EQU '8SVX'
ID_ATAK EQU 'ATAK'
+ IFND ID_NAME
ID_NAME EQU 'NAME'
+ ENDC
ID_RLSE EQU 'RLSE'
ID_VHDR EQU 'VHDR'
-*************** LIBRARY OFFSETS ******************************************
+*****************************************************************************
+** Library offsets (_LVOIFFL_...) are now in iff.lib.
+** For compatibility, here are the old (pre-V21) ones:
IFD IFFLIB_PRE21NAMES
_LVOOpenIFF EQU -30 ; (filename) (A0)