The File Formats Handbook - by Guenter Born
 
Today, each applications program uses its own vendor-specific format 
to store data. Yet end-users demand that programs accept data files
that may have been created by totally different and sometimes
competing programs. Software developers in particular depend on the
file format information of different applications programs to imple-
ment advanced import and export functions. Unfortunately, most of the
information about file formats is confidential, not well-documented,
or not available for public use.
 
In 1987 and 1988 Guenter Born was involved in projects that require the
exchange of data between spreadsheets, databases and self-developed
software. While working on these projects, he noticed that expressions 
such as DIF, SYLK, WK1, SDF and so on were being used by several different 
vendors. A survey of the existing literature revealed no published 
information on these topics.
 
So Born decided to create a definitive reference about these and other 
popular file formats. Two years later, the first edition of the file 
formats book was released for the German market. Over the years, more and 
more material became available and, by the end of 1994, three books about 
file formats were written by Born and published for the German market.

Until now, this useful information has only been available for 
German-speaking programmers and software developers. Fortunately, 
International Thomson Computer Press has undertaken the task to publish
the book in English under the title "The File Formats Handbook" -- an 
invaluable source of the file formats used by popular software products 
in the areas of databases, spreadsheets, word processing, graphics, sound 
and multimedia.

This book is written for developers, consultants, researchers and students, 
giving them access to valid insider knowledge and offering them the 
opportunity to explore the secrets of file formats.

The Table of Contents below gives an overview of the book.

The File Formats Handbook - by Guenter Born
International Thomson Computer Press
1274 pages, 1995, ISBN 1-85032-117-5
Price: 79.95 American Dollars; 59.95 Pounds Sterling

--------
 
To purchase a copy of the book, contact your local bookstore. In case of 
difficulty, contact:

For the United States:
ITCP Customer Service   
7625 Empire Drive       
Florence, Kentucky  41042-2978
Tel: 1-606-525-6600
Fax: 1-606-525-7778

For the United Kingdom, Europe, Africa, the
Middle East:
International Thomson Publishing
Berkshire House
168-173 High Holborn
London WC1V 7AA
United Kingdom
Tel: 44-171-497-1422
Fax: 44-171-497-1426
e-mail: info@ITPUK.CO.UK

For Canada:
Nelson Canada
1120 Birchmount Road
Scarborough, Ontario
Canada M1K 5G4
Tel: 1-416-752-9100
Fax: 1-416-752-9646

For South and Central America:
International Thomson Eliseos
385, Piso 7
Col. Polanco
11560 Mexico D.F.
Mexico
Tel: 52-5-281-2656

For Australia and New Zealand:
Thomas Nelson Australia
102 Dodds Street        
South Melbourne, Victoria  3205
Australia
Tel: 613-9685-4111
Fax: 613-9685-4199

For Japan:
International Thomson Publishing Japan
Kyowa Building, 3F
22-1 Hirakawa-cho
Chiyoda ku
Tokyo 102 
Japan
Tel: 81-3-3221-1385
Fax: 81-3-3237-1459

For Asia (excluding Japan):
International Thomson Publishing Asia
Block 211               
Henderson Rd. #08-03
Henderson Industrial Park
Singapore 0315  
Tel: 65-272-6496        
Fax: 65-272-6498

 -----

> Table of Contents
> 
> Preface         xiv
> Introduction    xvi
> 
> PART 1 Database file formats
> 
> 1 File formats in dBASE II                               2
> 1.1 dBASE II - Format of DBF files                       2
>         1.2 Index file structure in dBASE II             6
>         1.3 MEM file format in dBASE II                  9
> 2 File formats in dBASE III                             10
>         2.1 DBF file format in dBASE III and dBASE III+ 10
>         2.2 Index file structure (NDX) in dBASE III     15
>         2.3 Clipper index file format (NTX)             18
>         2.4 MEM file format in dBASE III                22
>         2.5 DBT files in dBASE III (Memo files)         24
>         2.6 FRM files in dBASE III                      25
>         2.7 LBL files in dBASE III                      28
>         2.8 Format of the file DBPRINT.PTB              28
> 3 File formats in dBASE IV                              31
>         3.1 DBF file format in dBASE IV                 31
>         3.2 DBT file format in dBASE IV                 36
> 4 File formats in FoxPro                                38
>         4.1 FoxPro format of DBF files                  38
>         4.2 The structure of a FoxBase+ DBT file (memo file) 42
>         4.3 The structure of FoxPro FPT files (object files and memo 
files)
>  43
>         4.4 The structure of uncompressed IDX index files    46
>         4.5 The structure of a compact IDX index file   49
>         4.6 The format of multi-index files (CDX)       53
>         4.7 The structure of a FoxPro 1.0 label file (LBX)  53
> 5 Data exchange using the SDF format                    55
>         5.1 The DELIMITED option                        56
>         5.2 Import/export of external formats           57
>         5.3 The structure of a CSV file                 58
> 
> PART 2 Spreadsheet formats      
> 
> 6 LOTUS 1-2-3 WKS/WK1 file format                       62
>         6.1 WKS/WK1 formats in LOTUS 1-2-3 (up to version 2.01) 62
>         6.2 Record types in Lotus 1-2-3 (versions 1.1 to 2.01)  68
> 7 LOTUS 1-2-3 WK3 record                               105
>         7.1 Lotus 1-2-3 WK3 file format                105
>         7.2 LOTUS 1-2-3 FRM file format                145
> 8 LOTUS 1-2-3 PIC format                               146
>         8.1 File header                                146
>         8.2 Record descriptions                        146
> 9 LOTUS Symphony format                                151
>         9.1 Record types in Symphony                   152
> 10 Data Interchange Format (DIF)                       188
>         10.1 The structure of the DIF header           189
>         10.2 The DIF data record structure             194
> 11 Super Data Interchange format (SDI)                 200
> 11.1 The header of an SDI file                         201
> 11.2 Data section of an SDI file                       204
> 12 Standard Interface format (SIF)                     209
> 13 Symbolic Link Format (SYLK)                         211
>         13.1 Record descriptions                       212
> 14 SYLK format extensions for CHART                    230
> 14.1 Pseudo-records                                    230
> 14.2 GS record                                         236
> 14.3 GC record                                         236
> 15 Excel binary interchange format (BIFF)              252
> 15.1 The BIFF record structure in versions 2.0-4.0     252
> 15.2 Record types in BIFF2-BIFF4                       253
> 
> PART 3 Word processing formats  
> 
> 16 MS-Word format       356
>         16.1 Word headers (versions 3.0, 4.0, 5.0)      360
>         16.2 The Word text area         362
>         16.3 Format area in Word        363
>         16.4 Winword file format (1.0-6.0)      379
> 17 WordStar format      381
>         17.1 Symmetrical code sequences         386
>         17.2 Structure of a paragraph style library     402
> 18 WordPerfect format   405
>         18.1 WordPerfect header (version 5.0)   407
>         18.2 WordPerfect data areas     412
>         18.3 The WordPerfect 5.x/6.x format     464
>         18.4 WordPerfect Header (version 5.1+)  464
>         18.5 Text area in WordPerfect 5.1       467
> 19 Rich Text format (RTF version 1.2)   507
>         19.1 Destination control words  510
>         19.2 Revision and information group     515
>         19.3 Document formatting properties     516
>         19.4 Section formatting         521
>         19.5 Headers and footers        529
>         19.6 Paragraph formatting properties    529
>         19.7 Tabs formatting    532
>         19.8 Bullets and numbering      532
>         19.9 Paragraph borders  536
>         19.10 Paragraph shading         537
>         19.11 Paragraph positioning     539
>         19.12 Table definitions         541
>         19.13 Character formatting properties   543
>         19.14 Special control words     548
>         19.15 Picture control words     551
>         19.16 Object control words      553
>         19.17 Drawing objects control words     554
>         19.18 Miscellaneous control words       554
>         19.19 Bookmark  556
> 20 Standard Generalized Markup Language (SGML)  557
>         20.1 Structure of an SGML file  557
>         20.2 Structure of a document    558
> 21 AMI Pro version 3.0/4.0 file format  566
>         21.1 The contents of a SAM file         566
>         21.2 Document section   567
>         21.3 Text area  592
>         21.4 Embedded graphics  601
> 
> Part 4 Graphic Formats
> 
> 22 ZSOFT Paintbrush format (PCX)        605
>         22.1 Structure of the PCX header        607
>         22.2 Coding of PCX data         611
>         22.3 Format of the PC Paintbrush bitmap character       612
>         22.4 CAPTURE File Format (SCR)  615
> 23 GEM Image format (IMG)       616
>         23.1 IMG header         617
>         23.2 Storage of IMG data        620
>         23.3 Image compression in IMG files     621
> 24 GEM Metafile format (GEM)    628
>         24.1 Structure of the GEM Metafile header       628
>         24.2 Format of Metafile objects         630
> 25 Interchange File Format (IFF)        658
>         25.1 IFF header         659
>         25.2 IFF Blockstructure (CHUNK)         662
>         25.3 CHUNKs: ILBM FORM  664
>         25.4 CHUNKs: 8SVX FORM  671
>         25.5 CHUNKs: AIFF FORM  674
>         25.6 CHUNKs: SMUS FORM  675
>         25.7 CHUNKs: FTXT FORM  677
>         25.8 CHUNKs: WORD FORM  678
>         25.9 Other text CHUNKs  679
>         25.10 Miscellaneous CHUNKs      683
> 26 Graphics Interchange format (GIF)    684
>         26.1 GIF header         685
>         26.2 Logical Screen Descriptor block    686
>         26.3 Global Color Map block     688
>         26.4 Image Descriptor block     689
>         26.5 Local Color Map block      690
>         26.6 Extension block    690
>         26.7 Raster Data block  691
>         26.8 LZW Compression    692
>         26.9 Modified LZW Process for GIF Files         696
>         26.10 Sub-blocks with Raster Data       697
>         26.11 Block Terminator  697
>         26.12 Graphic Control Extension block (GIF89a)  697
>         26.13 Comment Extension block (GIF89a)  699
>         26.14 Plain Text Extension block (GIF89a)       700
>         26.15 Application Extension Block (GIF89a)      701
>         26.16 GIF Terminator    702
> 27 Tag Image File Format (TIFF)         703
>         27.1 TIFF header        704
>         27.2 Structure of the Image File Directory (IFD)        705
>         27.3 TIFF Compression Processes         748
> 28 Computer Graphic Metafile format (CGM)       755
>         28.1 Binary CGM Coding  756
>         28.2 Coding as ASCII text       762
>         28.3 Character coding with ISO characters       766
>         28.4 Metafile Commands  768
> 29 WordPerfect Graphic format (WPG)     779
>         29.1 WPG header         779
>         29.2 WPG records        780
> 30 AutoCAD Drawing Exchange format (DXF)        796
>         30.1 Structure of a DXF file    796
>         30.2 DXF Header         806
>         30.3 DXF TABLE section  807
>         30.4 BLOCK section of a DXF file        814
>         30.5 DXF ENTITIES Section       816
>         30.6 AutoCAD Binary DXF         829
> 31 Micrografx formats (PIC, DRW, GRF)   830
>         31.1 Graphic File Record Types  834
> 32 TARGA format (TGA)   865
>         32.1 TARGA header       866
> 33 Dr. Halo format (PIC, CUT, PAL)      874
>         33.1 PIC format         874
>         33.2 CUT format         878
>         33.3 PAL format         878
> 34 SUN Raster format (RAS)      880
>         34.1 RAS header         881
>         34.2 Palette data area  882
>         34.3 RAS data area      883
> 35 Adobe Photoshop format (PSD)         885
>         35.1 Photoshop header   886
>         35.2 Mode data block    887
>         35.3 Resource data block        887
>         35.4 Image data area    888
>         35.5 MAC Packbit Coding:        888
> 36 PCPAINT/Pictor format (PIC)  889
>         36.1 PCPAINT/Pictor header      889
>         36.2 PIC data area      891
> 37 JPEG/JFIF format (JPG)       895
>         37.1 Start Of Image (SOI) marker segment        896
>         37.2 End Of Image (EOI) marker segment  896
>         37.3 Application (APP0) marker segment  897
>         37.4 Extension APP0 (SOI) marker segment        898
>         37.5 Define Huffman Table (DHT) marker segment  900
>         37.6 Define Arithmetic Coding (DAC) marker segment      901
>         37.7 Define Quantization Table (DQT) marker segment     901
>         37.8 Define Restart Interval (DRI) marker segment       902
>         37.9 Start of Frame (SOF) marker segment        902
>         37.10 Color coding      904
>         37.11 Start Of Scan (SOS) marker segment        905
> 38 MAC-Paint format (MAC)       906
>         38.1 MAC header         907
>         38.2 MAC Data Area      909
>         38.3 MAC Packbit coding         910
> 39 MAC-Picture format (PICT)    911
>         39.1 PICT header        912
>         39.2 PICT data area     913
>         39.3 Image data records (PICT 1,2)      915
> 40 Atari NEOchrome format (NEO)         924
>         40.1 NEOchrome header   924
>         40.2 Data area of the NEOchrome file    927
> 41 NEOchrome Animation format (ANI)     928
>         41.1 NEOchrome ANI header       929
> 42 Animatic Film format (FLM)   930
>         42.1 Animatic Film header (FLM)         930
> 43 ComputerEyes Raw Data format (CE1,CE2)       932
>         43.1 ComputerEyes Raw Data header (CEx)         932
> 44 Cyber Paint Sequence format (SEQ)    934
>         44.1 Cyber Paint Sequence header (SEQ)  934
>         44.2 Structure of the frame     935
>         44.3 Compression process        936
> 45 Atari DEGAS format (PI*,PC*)         937
>         45.1 DEGAS PI* files    937
>         45.2 DEGAS Elite PC* files      938
> 46 Atari Tiny format (TNY, TN*)         940
> 47 Atari Imagic Film/Picture format (IC*)       943
> 48 Atari STAD format (PAC)      946
> 49 Autodesk Animator format (FLI)       948
>         49.1 FLI header         949
>         49.2 FLI frames         950
>         49.3 Animator CEL and PIC Format        954
> 50 Autodesk 3D Studio format (FLC)      955
>         50.1 FLC header         956
>         50.2 FLC frames         957
> 51 Amiga Animation format (ANI)         963
>         51.1 ANI header         964
>         51.2 ANI CHUNKs         964
> 52 Audio/Video Interleaved format (AVI)         969
>         52.1 Resource Interchange File Format (RIFF) specification      
969
>         52.2 Structure of a RIFF CHUNK  970
>         52.3 AVI structure      971
>         52.4 Other data CHUNKs  980
> 53 Intel Digital Video format (DVI)     981
>         53.1 AVSS format        982
>         53.2 DVI header         982
>         53.3 AVL header         983
>         53.4 Stream header      984
>         53.5 Audio stream header        986
>         53.6 Video stream header        987
>         53.7 Frame structure    988
> 54 MPEG Specification   989
> 55 Apple QuickTime format (QTM)         990
>         55.1 Movie Directory atom       992
>         55.2 Movie Header atom  992
>         55.3 Track Directory atom       994
>         55.4 Track Header atom  994
>         55.5 Media atom         995
>         55.6 Media Header atom  996
> 56 CAS Fax format (DCX)         997
>         56.1 DCX header         998
> 57 Adobe Illustrator format (AI)        999
>         57.1 AI header comments         1000
>         57.2 Script Setup       1003
> 58 Initial Graphics Exchange Language (IGES)    1020
>         58.1 Start section      1021
>         58.2 Global section     1022
>         58.3 Directory Entry section    1024
>         58.4 Parameter Data section     1025
>         58.5 Termination section        1026
>         58.6 Elements of an IGES file   1026
> 
> Part 5 Windows and OS/2 file formats
> 
> 59 Windows 2.0 Paint format (MSP)       1036
>         59.1 The MSP header     1036
>         59.2 The index table    1037
>         59.3 The data area      1038
> 60 Windows 3.x BMP and RLE format       1040
>         60.1 Windows 3.x Bitmap format (BMP)    1040
> 61 OS/2 Bitmap format (BMP, version 1.2)        1046
>         61.1 The data area      1048
> 62 OS/2 Bitmap format (BMP, version 2.x)        1049
>         62.1 The data area      1053
> 63 Windows Icon format (ICO)    1055
> 64 Windows Metafile format (WMF)        1057
>         64.1 The Metafile header        1057
> 65 Write binary format (WRI)    1085
>         65.1 The Write header   1086
>         65.2 Text and image areas       1087
>         65.3 Pictures in the text area  1088
>         65.4 OLE objects in the text area       1089
>         65.5 The format area    1090
>         65.6 Character property (CHP)   1091
>         65.7 Paragraph property (PAP)   1092
>         65.8 Section property   1093
>         65.9 Font table (FFNTB)         1095
> 66 Windows 3.x Calendar format (CAL)    1097
>         66.1 The header         1097
>         66.2 The data area      1098
>         66.3 Day-specific information area      1099
> 67 Windows Cardfile format (CRD)        1101
> 68  Clipboard format (CLP)      1103
> 69 Windows 3.x group files (GRP)        1105
> 
> PART 6 Sound formats    
> 
> 70 Creative Music Format (CMF)  1110
>         70.1 CMF header         1110
>         70.2 Instrument block   1112
>         70.3 Music block        1114
>         70.4 Structure of a Pause command       1115
>         70.5 Commands within the music block    1115
>         70.6 Data repetition in the music block         1120
> 71 Soundblaster Instrument format (SBI)         1121
> 72 Soundblaster Instrument Bank format (IBK)    1125
> 73 Creative Voice format (VOC)  1126
>         73.1 VOC header         1127
>         73.2 VOC data area      1127
> 74 Adlib Music format (ROL)     1133
>         74.1 ROL header         1133
>         74.2 ROL data area      1134
> 75 Adlib Instrument Bank format (BNK)   1138
>         75.1 Instrument name list       1139
>         75.2 Instrument data list       1139
> 76 AMIGA MOD format     1140
>         76.1 MOD header         1141
>         76.2 Note block         1141
>         76.3 Instrument data area       1142
> 77 AMIGA IFF format     1145
> 78 Audio IFF format (AIFF)      1146
> 79 Windows WAV format   1147
>         79.1 WAV header         1148
>         79.2 FMT CHUNK  1148
>         79.3 DATA CHUNK         1149
>  80 Standard MIDI format (SMF)  1150
>         80.1 MIDI Header CHUNK  1151
>         80.2 Track CHUNK        1152
>         80.3 Structure of a Delta time command  1153
>         80.4 Commands of the Track CHUNK        1153
>         80.5 MIDI events        1154
>         80.6 Meta events        1166
> 81 NeXt/Sun Audio format        1171
> 
> PART 7 Page description languages
> 
> 82 Hewlett Packard Graphic Language (HP-GL/2)   1174
>         82.1 Configuration and Status Group     1178
>         82.2 Vector Group       1180
>         82.3 Polygon Group      1183
>         82.4 Line and Fill Attributes Group     1185
>         82.5 Character Group    1187
>         82.6 Technical Graphics Extension       1192
>         82.7 Palette Extension  1195
>         82.8 Dual Context Extension     1196
>         82.9 Digitizing Extensions      1197
> 83 Hewlett Packard Printer Communication Language (PCL)         1198
>         83.1 Print Commands     1198
>         83.2 Page Description Commands  1199
>         83.3 Cursor Commands    1202
>         83.4 Font Selection     1204
>         83.5 Font Management    1207
>         83.6 Creating Loadable Fonts    1208
>         83.7 Graphics Commands  1209
>         83.8 Print Mode         1212
>         83.9 Macros     1215
>         83.10 Programming References    1216
>         83.11 PCL-Access Expansion      1217
> 84 Encapsulated PostScript format (EPS) version 3.0     1218
>         84.1 EPS structural conventions         1221
>         84.2 Necessary DSC header comments      1222
>         84.3 Optional header comments   1223
>         84.4 Body Comments      1225
>         84.5 Trailer comments   1227
>         84.6 Platform-specific formats for preview images       1227
>         84.7 Platform-independent formats for preview images    1228
>         84.8 PostScript instructions    1228
> 
> Appendices
> A Format conversion programs    1244
> B ISO 646 Character Set         1254
> C References    1256
> 
> Index           1258

*** End 17 - May - 1995



