

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.amigaos.net/w/index.php?action=history&amp;feed=atom&amp;title=WORD_IFF_Document_Storage</id>
	<title>WORD IFF Document Storage - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.amigaos.net/w/index.php?action=history&amp;feed=atom&amp;title=WORD_IFF_Document_Storage"/>
	<link rel="alternate" type="text/html" href="https://wiki.amigaos.net/w/index.php?title=WORD_IFF_Document_Storage&amp;action=history"/>
	<updated>2026-05-06T17:16:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://wiki.amigaos.net/w/index.php?title=WORD_IFF_Document_Storage&amp;diff=2091&amp;oldid=prev</id>
		<title>Steven Solie: Created page with &quot;= WORD =  &lt;pre&gt; IFF FORM / CHUNK DESCRIPTION ============================  Form/Chunk IDs:    FORM   WORD    Chunks FONT,COLR,DOC,HEAD,FOOT,PCTS,PARA,TABS,PAGE,TEXT,FSCC,PINF ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.amigaos.net/w/index.php?title=WORD_IFF_Document_Storage&amp;diff=2091&amp;oldid=prev"/>
		<updated>2012-05-10T19:27:37Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;= WORD =  &amp;lt;pre&amp;gt; IFF FORM / CHUNK DESCRIPTION ============================  Form/Chunk IDs:    FORM   WORD    Chunks FONT,COLR,DOC,HEAD,FOOT,PCTS,PARA,TABS,PAGE,TEXT,FSCC,PINF ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= WORD =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
IFF FORM / CHUNK DESCRIPTION&lt;br /&gt;
============================&lt;br /&gt;
&lt;br /&gt;
Form/Chunk IDs:&lt;br /&gt;
   FORM   WORD&lt;br /&gt;
   Chunks FONT,COLR,DOC,HEAD,FOOT,PCTS,PARA,TABS,PAGE,TEXT,FSCC,PINF&lt;br /&gt;
&lt;br /&gt;
Date Submitted: 03/87&lt;br /&gt;
Submitted by:   James Bayless - New Horizons Software, Inc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
FORM&lt;br /&gt;
====&lt;br /&gt;
&lt;br /&gt;
FORM ID:  WORD&lt;br /&gt;
&lt;br /&gt;
FORM Purpose:  Document storage (supports color, fonts, pictures)&lt;br /&gt;
&lt;br /&gt;
FORM Description:&lt;br /&gt;
&lt;br /&gt;
This include file describes FORM WORD and its Chunks&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *      IFF Form WORD structures and defines&lt;br /&gt;
 *      Copyright (c) 1987 New Horizons Software, Inc.&lt;br /&gt;
 *&lt;br /&gt;
 *      Permission is hereby granted to use this file in any and all&lt;br /&gt;
 *      applications.  Modifying the structures or defines included&lt;br /&gt;
 *      in this file is not permitted without written consent of&lt;br /&gt;
 *      New Horizons Software, Inc.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#include &amp;amp;quot;:IFF/ILBM.h&amp;amp;quot;        /* Makes use of ILBM defines */&lt;br /&gt;
&lt;br /&gt;
#define ID_WORD      MakeID(&amp;#039;W&amp;#039;,&amp;#039;O&amp;#039;,&amp;#039;R&amp;#039;,&amp;#039;D&amp;#039;)      /* Form type */&lt;br /&gt;
&lt;br /&gt;
#define ID_FONT      MakeID(&amp;#039;F&amp;#039;,&amp;#039;O&amp;#039;,&amp;#039;N&amp;#039;,&amp;#039;T&amp;#039;)      /* Chunks */&lt;br /&gt;
#define ID_COLR      MakeID(&amp;#039;C&amp;#039;,&amp;#039;O&amp;#039;,&amp;#039;L&amp;#039;,&amp;#039;R&amp;#039;)&lt;br /&gt;
#define ID_DOC       MakeID(&amp;#039;D&amp;#039;,&amp;#039;O&amp;#039;,&amp;#039;C&amp;#039;,&amp;#039; &amp;#039;)&lt;br /&gt;
#define ID_HEAD      MakeID(&amp;#039;H&amp;#039;,&amp;#039;E&amp;#039;,&amp;#039;A&amp;#039;,&amp;#039;D&amp;#039;)&lt;br /&gt;
#define ID_FOOT      MakeID(&amp;#039;F&amp;#039;,&amp;#039;O&amp;#039;,&amp;#039;O&amp;#039;,&amp;#039;T&amp;#039;)&lt;br /&gt;
#define ID_PCTS      MakeID(&amp;#039;P&amp;#039;,&amp;#039;C&amp;#039;,&amp;#039;T&amp;#039;,&amp;#039;S&amp;#039;)&lt;br /&gt;
#define ID_PARA      MakeID(&amp;#039;P&amp;#039;,&amp;#039;A&amp;#039;,&amp;#039;R&amp;#039;,&amp;#039;A&amp;#039;)&lt;br /&gt;
#define ID_TABS      MakeID(&amp;#039;T&amp;#039;,&amp;#039;A&amp;#039;,&amp;#039;B&amp;#039;,&amp;#039;S&amp;#039;)&lt;br /&gt;
#define ID_PAGE      MakeID(&amp;#039;P&amp;#039;,&amp;#039;A&amp;#039;,&amp;#039;G&amp;#039;,&amp;#039;E&amp;#039;)&lt;br /&gt;
#define ID_TEXT      MakeID(&amp;#039;T&amp;#039;,&amp;#039;E&amp;#039;,&amp;#039;X&amp;#039;,&amp;#039;T&amp;#039;)&lt;br /&gt;
#define ID_FSCC      MakeID(&amp;#039;F&amp;#039;,&amp;#039;S&amp;#039;,&amp;#039;C&amp;#039;,&amp;#039;C&amp;#039;)&lt;br /&gt;
#define ID_PINF      MakeID(&amp;#039;P&amp;#039;,&amp;#039;I&amp;#039;,&amp;#039;N&amp;#039;,&amp;#039;F&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   Special text characters for page number, date, and time&lt;br /&gt;
 *   Note:  ProWrite currently supports only PAGENUM_CHAR, and only in&lt;br /&gt;
 *      headers and footers&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#define PAGENUM_CHAR   0x80&lt;br /&gt;
#define DATE_CHAR      0x81&lt;br /&gt;
#define TIME_CHAR      0x82&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   Chunk structures follow&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   FONT - Font name/number table&lt;br /&gt;
 *   There are one of these for each font/size combination&lt;br /&gt;
 *   These chunks should appear at the top of the file (before document data)&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UBYTE   Num;         /* 0 .. 255 */&lt;br /&gt;
   UWORD   Size;&lt;br /&gt;
/* UBYTE   Name[];      */   /* NULL terminated, without &amp;amp;quot;.font&amp;amp;quot; */&lt;br /&gt;
} FontID;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   COLR - Color translation table&lt;br /&gt;
 *   Translates from color numbers used in file to ISO color numbers&lt;br /&gt;
 *   Should be at top of file (before document data)&lt;br /&gt;
 *   Note:  Currently ProWrite only checks these values to be its current map,&lt;br /&gt;
 *      it does no translation as it does for FONT chunks&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UBYTE   ISOColors[8];&lt;br /&gt;
} ISOColors;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   DOC - Begin document section&lt;br /&gt;
 *   All text and paragraph formatting following this chunk and up to a&lt;br /&gt;
 *   HEAD, FOOT, or PICT chunk belong to the document section&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#define PAGESTYLE_1   0      /* 1, 2, 3 */&lt;br /&gt;
#define PAGESTYLE_I   1      /* I, II, III */&lt;br /&gt;
#define PAGESTYLE_i   2      /* i, ii, iii */&lt;br /&gt;
#define PAGESTYLE_A   3      /* A, B, C */&lt;br /&gt;
#define PAGESTYLE_a   4      /* a, b, c */&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UWORD   StartPage;      /* Starting page number */&lt;br /&gt;
   UBYTE   PageNumStyle;   /* From defines above */&lt;br /&gt;
   UBYTE   pad1;&lt;br /&gt;
   LONG    pad2;&lt;br /&gt;
} DocHdr;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   HEAD/FOOT - Begin header/footer section&lt;br /&gt;
 *   All text and paragraph formatting following this chunk and up to a&lt;br /&gt;
 *   DOC, HEAD, FOOT, or PICT chunk belong to this header/footer&lt;br /&gt;
 *   Note:  This format supports multiple headers and footers, but currently&lt;br /&gt;
 *      ProWrite only allows a single header and footer per document&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#define PAGES_NONE   0&lt;br /&gt;
#define PAGES_LEFT   1&lt;br /&gt;
#define PAGES_RIGHT  2&lt;br /&gt;
#define PAGES_BOTH   3&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UBYTE   PageType;       /* From defines above */&lt;br /&gt;
   UBYTE   FirstPage;      /* 0 = Not on first page */&lt;br /&gt;
   LONG   pad;&lt;br /&gt;
} HeadHdr;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   PCTS - Begin picture section&lt;br /&gt;
 *   Note:  ProWrite currently requires NPlanes to be three (3)&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UBYTE   NPlanes;      /* Number of planes used in picture bitmaps */&lt;br /&gt;
   UBYTE   pad;&lt;br /&gt;
} PictHdr;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   PARA - New paragraph format&lt;br /&gt;
 *   This chunk should be inserted first when a new section is started (DOC,&lt;br /&gt;
 *      HEAD, or FOOT), and again whenever the paragraph format changes&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#define SPACE_SINGLE   0&lt;br /&gt;
#define SPACE_DOUBLE   0x10&lt;br /&gt;
&lt;br /&gt;
#define JUSTIFY_LEFT    0&lt;br /&gt;
#define JUSTIFY_CENTER  1&lt;br /&gt;
#define JUSTIFY_RIGHT   2&lt;br /&gt;
#define JUSTIFY_FULL    3&lt;br /&gt;
&lt;br /&gt;
#define MISCSTYLE_NONE   0&lt;br /&gt;
#define MISCSTYLE_SUPER  1      /* Superscript */&lt;br /&gt;
#define MISCSTYLE_SUB    2      /* Subscript */&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UWORD   LeftIndent;    /* In decipoints (720 dpi) */&lt;br /&gt;
   UWORD   LeftMargin;&lt;br /&gt;
   UWORD   RightMargin;&lt;br /&gt;
   UBYTE   Spacing;       /* From defines above */&lt;br /&gt;
   UBYTE   Justify;       /* From defines above */&lt;br /&gt;
   UBYTE   FontNum;       /* FontNum, Style, etc. for first char in para*/&lt;br /&gt;
   UBYTE   Style;         /* Standard Amiga style bits */&lt;br /&gt;
   UBYTE   MiscStyle;     /* From defines above */&lt;br /&gt;
   UBYTE   Color;         /* Internal number, use COLR to translate */&lt;br /&gt;
   LONG    pad;&lt;br /&gt;
} ParaFormat;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   TABS - New tab stop types/locations&lt;br /&gt;
 *   Use an array of values in each chunk&lt;br /&gt;
 *   Like the PARA chunk, this should be inserted whenever the tab settings&lt;br /&gt;
 *      for a paragraph change&lt;br /&gt;
 *   Note:  ProWrite currently does not support TAB_CENTER&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
#define TAB_LEFT     0&lt;br /&gt;
#define TAB_CENTER   1&lt;br /&gt;
#define TAB_RIGHT    2&lt;br /&gt;
#define TAB_DECIMAL  3&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UWORD   Position;      /* In decipoints */&lt;br /&gt;
   UBYTE   Type;&lt;br /&gt;
   UBYTE   pad;&lt;br /&gt;
} TabStop;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   PAGE - Page break&lt;br /&gt;
 *   Just a marker -- this chunk has no data&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   TEXT - Paragraph text (one block per paragraph)&lt;br /&gt;
 *   Block is actual text, no need for separate structure&lt;br /&gt;
 *   If the paragraph is empty, this is an empty chunk -- there MUST be&lt;br /&gt;
 *   a TEXT block for every paragraph&lt;br /&gt;
 *   Note:  The only ctrl characters ProWrite can currently handle in TEXT&lt;br /&gt;
 *   chunks are Tab and PAGENUM_CHAR, ie no Return&amp;#039;s, etc.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   FSCC - Font/Style/Color changes in previous TEXT block&lt;br /&gt;
 *   Use an array of values in each chunk&lt;br /&gt;
 *   Only include this chunk if the previous TEXT block did not have&lt;br /&gt;
 *      the same Font/Style/Color for all its characters&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UWORD   Location;      /* Character location in TEXT chunk of change */&lt;br /&gt;
   UBYTE   FontNum;&lt;br /&gt;
   UBYTE   Style;&lt;br /&gt;
   UBYTE   MiscStyle;&lt;br /&gt;
   UBYTE   Color;&lt;br /&gt;
   UWORD   pad;&lt;br /&gt;
} FSCChange;&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 *   PINF - Picture info&lt;br /&gt;
 *   This chunk must only be in a PCTS section&lt;br /&gt;
 *   Must be followed by ILBM BODY chunk&lt;br /&gt;
 *   Pictures are treated independently of the document text (like a&lt;br /&gt;
 *      page-layout system), this chunk includes information about what&lt;br /&gt;
 *      page and location on the page the picture is at&lt;br /&gt;
 *   Note:  ProWrite currently only supports mskTransparentColor and&lt;br /&gt;
 *      mskHasMask masking&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
typedef struct {&lt;br /&gt;
   UWORD         Width, Height;   /* In pixels */&lt;br /&gt;
   UWORD         Page;         /* Which page picture is on (0..max) */&lt;br /&gt;
   UWORD         XPos, YPos;      /* Location on page in decipoints */&lt;br /&gt;
   Masking       Masking;      /* Like ILBM format */&lt;br /&gt;
   Compression   Compression;   /* Like ILBM format */&lt;br /&gt;
   UBYTE         TransparentColor;   /* Like ILBM format */&lt;br /&gt;
   UBYTE         pad;&lt;br /&gt;
} PictInfo;&lt;br /&gt;
&lt;br /&gt;
/* end */&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Steven Solie</name></author>
	</entry>
</feed>