From ftp://fship.com/pub/multisoft/flagship/docu/dbfspecs.txt
or via link to  http://www.fship.com/ftp/docutxt/dbfspecs.txt

----------------------------------------------------------------------------
General format of .dbf files in Xbase languages                    19-Nov-96
----------------------------------------------------------------------------
Applies for / supported by:

   FS = FlagShip       D3 = dBaseIII+
   Fb = FoxBase        D4 = dBaseIV
   Fp = FoxPro         D5 = dBaseV
   CL = Clipper


1. DBF Structure
================

Byte   Description
------+--------------------------------------
0..n   .dbf header (see 2 for size, byte 8)
n+1    1st record of fixed length (see 2&3)  \\\
       2nd record (see 2 for size, byte 10)     \ if dbf is
       ...                                      / not empty
       last record                           ///
last   optional: 0x1a (eof byte)


2. DBF Header (variable size, depending on field count)
=======================================================

Byte Size Contents Description                  Applies for (supported by)
----+----+--------+----------------------------+-----------------------------
00     1   0x03    plain .dbf                   FS, D3, D4, D5, Fb, Fp, CL
           0x04    plain .dbf                   D4, D5  (FS)
           0x05    plain .dbf                   D5, Fp  (FS)
           0x83    with  .dbt memo              FS, D3, D4, D5, Fb, Fp, CL
           0xB3    with  .dbv memo or 2,4,8type FS
           0x8B    with  .dbt memo in D4 format D4, D5
           0x8E    with  SQL table              D4, D5
           0xF5    with  .fmp memo              Fp
01     3  YYMMDD   Last update digits           all
04     4  ulong    Number of records in file    all
08     2  ushort   Header size in bytes         all
10     2  ushort   Record size in bytes         all
12     2   0,0     Reserved                     all
14     1   0x01    Begin transaction            D4, D5
           0x00    End Transaction              D4, D5
           0x00    ignored                      FS, D3, Fb, Fp, CL
15     1   0x01    Encryptpted                  D4, D5
           0x00    normal visible               all
16    12   0 (1)   multi-user environment use   D4,D5
28     1   0x01    production index exists      Fp, D4, D5
           0x00    index upon demand            all
29     1   n       language driver ID           D4, D5
           0x01    codepage  437 DOS USA        Fp
           0x02    codepage  850 DOS Multi ling Fp
           0x03    codepage 1251 Windows ANSI   Fp
           0xC8    codepage 1250 Windows EE     Fp
           0x00    ignored                      FS, D3, Fb, Fp, CL
30     1   0x00    reserved                     all
31     1   n       update/integrity count       FS
           0x00    ignored                      D3, D4, D5, Fb, Fp, CL
32    n*32         Field Descriptor, see (2a)   all
+1     1   0x0D    Header Record Terminator     all


2a. Field descriptor array in dbf header (fix 32 bytes for each field)
========================================

Byte Size Contents Description                  Applies for (supported by)
----+----+--------+----------------------------+-----------------------------
0     11   ASCI    field name, 0x00 termin.     all
11     1   ASCI    field type  (see 2b)         all
12     4   n,n,n,n fld address in memory        D3
           n,n,0,0 offset from record begin     Fp
           0,0,0,0 ignored                      FS, D4, D5, Fb, CL
16     1   byte    Field length, bin (see 2b)   all \ FS,CL: for C field type,
17     1   byte    decimal count, bin           all / both used for fld lng
18     2   0,0     reserved                     all
20     1   byte    Work area ID                 D4, D5
           0x00    unused                       FS, D3, Fb, Fp, CL
21     2   n,n     multi-user dBase             D3, D4, D5
           0,0     ignored                      FS, Fb, Fp, CL
23     1   0x01    Set Fields                   D3, D4, D5
           0x00    ignored                      FS, Fb, Fp, CL
24     7   0..0    reserved                     all
31     1   0x01    Field is in .mdx index       D4, D5
           0x00    ignored                      FS, D3, Fb, Fp, CL


2b. Field type and size in dbf header, field descriptor (1 byte)
=======================================================

  Size Type      Description/Storage            Applies for (supported by)
------+---------+------------------------------+-----------------------------
C 1..n Char      ASCII (OEM code page chars)    all
                 rest= space, not \0 term.
                 n = 1..64kb (using deci count) FS
                 n = 1..32kb (using deci count) Fp, CL
                 n = 1..254                     all
D 8    Date      8 Ascii digits (0..9) in the   all
                 YYYYMMDD format
F 1..n Numeric   Ascii digits (-.0123456789)    FS, D4, D5, Fp
                 variable pos. of float.point
                 n = 1..20
N 1..n Numeric   Ascii digits (-.0123456789)    all
                 fix posit/no float.point
                 n = 1..20                      FS, Fp, CL
                 n = 1..18                      D3, D4, D5, Fb
L 1    Logical   Ascii chars (YyNnTtFf space)   FS, D3, Fb, Fp, CL
                 Ascii chars (YyNnTtFf ?)       D4, D5  (FS)
M 10   Memo      10 digits repres. the start    all
                 block posit. in .dbt file, or
                 10spaces if no entry in memo
V 10   Variable  Variable, bin/asc data in .dbv FS      (.dbf type = 0xB3)
                 4bytes bin= start pos in memo
                 4bytes bin= block size
                 1byte     = subtype
                 1byte     = reserved (0x1a)
                 10spaces if no entry in .dbv
P 10   Picture   binary data in .ftp            Fp      (.dbf type = 0x?5)
                 structure like M
B 10   Binary    binary data in .dbt            D5      (.dbf type = 0x?5)
                 structure like M
G 10   General   OLE objects                    D5, Fp  (.dbf type = 0x?5)
                 structure like M
2 2    short int binary int max +/- 32767       FS      (.dbf type = 0xB3)
4 4    long int  binary int max +/- 2147483647  FS      (.dbf type = 0xB3)
8 8    double    binary signed double IEEE      FS      (.dbf type = 0xB3)


3. Each Dbf record (fix length)
==================

Byte   Size  Description                           Applies for (supported by)
------+----+--------------------------------------+--------------------------
0      1    deleted flag "*" or not deleted " "     all
1..n   1..  x-times contents of fields, fixed       all
            length, unterminated.
            For n, see (2) byte 10..11


----------------------------------------------------------------------------
General format of FlagShip's 4.4x .idx index file                  16-Apr-97
----------------------------------------------------------------------------

1. THE INDEX HEADER (1024 bytes)

Byte Size Type   Default  Description
----+----+------+--------+--------------------------------------------------
 00   1   uchar   0x81    index type, version
 01   1   uchar    0      index status (unique=1, descend=2, uniq+desc=3)
 02   1   uchar    0      if num key: number of digits incl deci point
 03   1   uchar    0      -  num key: number of deci places
                  1..255  -  other key types: current key length
 04   4   ulong   0..n    number of keys in file
 08   4   ulong   0..n    page no of the root page
 12   4   ulong   0..n    page no of the list of free pages
 16   4   ulong   0..n    page no behind eof
 20   1   uchar   C,D,N,L index key type
 21   1   uchar           reserved
 22   2   ushort  512     size of each index page (in bytes)
 24   4   ulong   1..238  key length (in bytes) incl 4byte alignment
 28   4   ulong   2..41   max no of keys per page
 32 420   char    xxx\0   string of the index key expression + \0
452  60   char            reserved

512   1   char            reserved
513   1   uchar   0..255  data integrity check against dbf
514   4   uchar           reserved
518  20   char    xxx\0   first 19 chars of dbf name without path + \0
538 230   char     0      FOR condition as string + \0
768 256   char            sorting table active during the index creation


2. INDEX PAGES ea 512 bytes (binary tree)

Byte Size Type   Default  Description
----+----+------+--------+--------------------------------------------------
 00   4   ulong   0..n    number of keys in current page
 04   4   ulong   0..n    page no of the parent page
 08   2   ushort  0..n    ordinal no of the parent key in the parent page
 10   2   ushort          reserved
--                                        -------
 12   4   ulong   0..n    page no of child page  \
 16   4   ulong   1..n    record no in the dbf    \
 20   8   double          key = numeric            + n-times ea page
      4   ulong           key = date              /  see byte 28 in header
      n   char            key = char, logical    /
--                                        -------

.