Apple II File Type Notes _____________________________________________________________________________ Developer Technical Support File Type: $1A (26) Auxiliary Type: All Full Name: AppleWorks Word Processor File Short Name: AppleWorks WP File Revised by: Matt Deatherage & John Kinder, CLARIS Corp. September 1989 Written by: Bob Lissner February 1984 Files of this type and auxiliary type contain an AppleWorks(R) Word Processor file. Changes since May 1989: Updated to include AppleWorks 2.1 and AppleWorks 3.0. _____________________________________________________________________________ Files of type $1A and any auxiliary type contain an AppleWorks Word Processor file. AppleWorks is published by CLARIS. CLARIS also has additional information on AppleWorks files SEG.PR and SEG.ER. For information on AppleWorks, contact CLARIS at: CLARIS Corporation 5201 Patrick Henry Drive P.O. Box 58168 Santa Clara, CA 95052-8168 Technical Support Telephone: (408) 727-9054 AppleLink: Claris.Tech Customer Relations Telephone: (408) 727-8227 AppleLink: Claris.CR AppleWorks was created by Bob Lissner. AppleWorks 2.1 was done by Bob Lissner and John Kinder of CLARIS. AppleWorks 3.0 was done by Alan Bird, Rob Renstrom and Randy Brandt of Beagle Bros Software with John Kinder of CLARIS. Definitions The following definitions apply to AppleWorks files in addition to those defined for all Apple II file types: MRL Data base multiple record layout SRL Data base single record layout RAC Review/Add/Change screen DB AppleWorks or /// E-Z Pieces Data Base SS AppleWorks or /// E-Z Pieces Spreadsheet WP AppleWorks or /// E-Z Pieces Word Processor AW AppleWorks or /// E-Z Pieces Auxiliary Type Definitions The volume or subdirectory auxiliary type word for this file type is defined to control uppercase and lowercase display of filenames. The highest bit of the least significant byte corresponds to the first character of the filename, the next highest bit of the least significant byte corresponds to the second character, etc., through the second bit of the most significant byte, which corresponds to the fifteenth character of the filename. AppleWorks performs the following steps when it saves a file to disk: 1. Zeros all 16 bits of the auxiliary type word. 2. Examines the filename for lowercase letters. If one is found, it changes the corresponding bit in the auxiliary type word to 1 and changes the letter to uppercase. 3. Examines the filename for spaces. If one is found, it changes the corresponding bit in the auxiliary type word to 1 and changes the space to a period. When files are read from disk, the filename and auxiliary type information from the directory file entry are used to determine which characters should be lowercase and which periods should be displayed as spaces. If you use the auxiliary type bytes for a different purpose, AppleWorks will still display the filenames, but the wrong letters are likely lowercase. File Version Changes Certain features present in AppleWorks 3.0 files are not backward-compatible to 2.1 and earlier versions. Such features are noted in the text. AppleWorks Word Processor files which may not be loaded by versions prior to 3.0 are identified by a non-zero byte at location +183, referred to as location SFMinVers. Those features added for AppleWorks 2.0, 2.1 and 3.0 not previously documented are indicated with that version number in the margin. Word Processor Files Word Processor files start with a 300 byte header, followed by a number of variable length line records, one for each line on the screen. Header Record The header contains the following information: +000 to +003 Not used. +004 Byte $4F (79) +005 to +084 Bytes Tab stops. Either equal sign (=) or vertical bar (|) If SFMinVers is non- zero, these will be one of the following values: "=" - no tab "<" - left tab "^" - center tab ">" - right tab "." - decimal tab. +085 Byte Boolean: Zoom switch. +086 to +089 Four bytes not used. +090 Byte Boolean: Whether file is currently paginated (i.e., whether the page break lines are displayed). +091 Byte Minimum left margin that should be added to the margin that is appearing on the screen. This is normally one inch, shown in 10ths of an inch, 10 or $0A. +092 Byte Boolean: Whether file contains any mail- merge commands. +093 to +175 Bytes Not used. Reserved. 3.0 +176 Byte Boolean: Whether there are multiple rulers in the document. 3.0 +177 to +182 Bytes Used internally for keeping track of tab rulers. 3.0 +183 Byte SFMinVers. The minimum version of AppleWorks needed to read this document. If this document contains 3.0 specific features (tabs and multiple tab rulers, for example), this byte will contain the version number 30 ($1E). Otherwise, it will be zero ($00). +184 to +249 Bytes Reserved. +250 to +299 Bytes Available. Will never be used by AppleWorks. If you are creating this type of file, you can use this area to keep information that is important to your program. Line Records Line records are of three different types. The first line record after the 300 byte header corresponds to line 1, the next is line 2, and so on. The first two bytes of each line record contain enough information to establish the type. If SFMinVers is non-zero, the first line record (two bytes long) is invalid and should be skipped. Carriage Return Line Records Carriage return line records have a $D0 (208) in byte +001. Byte +000 is a one byte integer between 00 and 79 that is the horizontal screen position of this carriage return. Command Line Records Command line records are formatting commands that appear on the screen in the form: --------Double Space for example. These records can be identified by a value greater than $D0 (208) in byte +001. They are: Byte +001 Command Byte +000 ______________________________________________________________________ 3.0 $D4 reserved (used internally as ruler) 3.0 $D5 Page header end 3.0 $D6 Page footer end 3.0 $D7 Right justified $D8 Platen width Byte 10ths of an inch $D9 Left margin Byte 10ths of an inch $DA Right margin Byte 10ths of an inch $DB Chars per inch Byte $DC Proportional-1 No meaning $DD Proportional-2 $DE Indent Byte Characters $DF Justify $E0 Unjustify $E1 Center $E2 Paper length Byte 10ths of an inch $E3 Top margin Byte 10ths of an inch $E4 Bottom margin Byte 10ths of an inch $E5 Lines per inch Byte $E6 Single space $E7 Double space $E8 Triple space $E9 New page $EA Group begin $EB Group end $EC Page header $ED Page footer $EE Skip lines Byte Count $EF Page number Byte $F0 Pause each page $F1 Pause here $F2 Set marker Byte Marker number $F3 Page number Byte (add 256) $F4 Page break Byte Page number $F5 Page break Byte (add 256) $F6 Page break Byte (break in middle of paragraph) $F7 Page break Byte (add 256 in middle of paragraph) $FF End of file ______________________________________________________________________ Text Records Text records are the lines where text has been typed. The format is: +000 to +001 Word Number of bytes following this word. Since the maximum is about 80, byte +001 is always zero. Use byte +001 to identify text lines. 3.0 +002 If bit 7 is on, this line contains Tab and Tab Filler special codes (described below). The remaining seven bits are the screen column for the first text character. Usually will be zero, but may vary as a result of left margin, centering, and indent commands. If this byte is $FF, this text line is actually a ruler--ASCII equivalent of what appears on the top of the screen. +003 Byte If bit 7 (the high bit) of this byte is on, there is a carriage return on the end of this line. If off, no carriage return. Bits 6-0: Number of bytes of text following this byte. +004 to nnn Actual text bytes. Consists of ASCII characters and special codes. The special codes are values from $01 to $1F, and indicate special formatting features: Code Meaning _________________________________ $01 Begin boldface $02 Boldface end $03 Superscript begin $04 Superscript end $05 Subscript begin $06 Subscript end $07 Underline begin $08 Underline end $09 Print page number $0A Enter keyboard $0B Sticky space $0C Begin Mail merge 3.0 $0D Reserved 3.0 $0E Print Date 3.0 $0F Print Time 3.0 $10 Special Code 1 3.0 $11 Special Code 2 3.0 $12 Special Code 3 3.0 $13 Special Code 4 3.0 $14 Special Code 5 3.0 $15 Special Code 6 3.0 $16 Tab character 3.0 $17 Tab fill character (used in formatting lines) 3.0 $18 Reserved _________________________________ File Tags All AppleWorks files normally end with two bytes of $FF; tags are anything after that. Although File Tags were primarily designed by Beagle Bros, they can be used by any application that needs to create or modify an AppleWorks 3.0 file. Because versions of AppleWorks before 3.0 stop at the double $FF, they simply ignore tags. The File Tag structure is as follows: +000 Byte Tag ID. Should be $FF. +001 Byte 2nd ID byte. These values will be defined and arbitrated by Beagle Bros Software. Beagle may be reached at: Beagle Bros Inc 6215 Ferris Square, #100 San Diego, CA 92121 +002 to +003 Word Data length. If this is the last tag on the file, the low byte (+002) will be a count of the tags in this file, and the high byte (+003) will be $FF. +004 to nnn Bytes Actual tag data, immediately followed by the next four-byte tag ID. These bytes do not exist for the last tag. There is a maximum of 64 tags per file. Each tag may be no larger than 2K. AppleWorks is a registered trademark of Apple Computer, Inc. licensed to Claris Corporation.