Ability Write

Ability Write (AWW for documents, AWP for templates) is the native format of the Write program in the Ability Office suite, though this program also supports some other, more widely-used formats.

Templates appear to be in a nearly identical format to documents, producing files of the same length with the main body part identical and some differences in headers and footers.

Current versions of Ability Write can read and write files of both the current 6.x format and an earlier 4.x format.

The format appears to store the text characters of the document contiguously in the middle of the document (with lots of header and footer parts that store other things like fonts and formatting). In the 6.x format, the characters are in a 16-bit encoding, little-endian; sometimes consistent with 16-bit Unicode or UTF-16 (ASCII characters show up as their normal values with extra 00 bytes between them to fill out the 16 bits), but on occasion other characters don't seem to be in Unicode values; Greek capital alpha came out as F041 (byte sequence 41 F0) in one test, though in other tests characters such as Greek and Hebrew came out in their normal Unicode positions. In the 4.x format, 8-bit characters are used, which is apparently unable to properly store non-ASCII characters, which map crudely onto ASCII characters, losing information.

The format appears to be a variety of the OLE2 Microsoft Compound File.

Identification
Files appear to begin with the hex bytes. However, so do files in Ability Spreadsheet, so you can't easily tell the difference other than by file extension. And it seems that other OLE2 files do as well, so it isn't actually distinctive.

Sample files

 * Write4.aww - Test document in Ability Write 4.x format
 * Write6.aww - Test document in Ability Write 6.x format
 * Write6.awp - Test template in Ability Write 6.x format
 * testletter.aww - Another 6.x document; sample business letter

Other links

 * Wikipedia article on Ability Office
 * Ability Software site