PC-Write

PC-Write was a word processor originally released in 1983 by a company (now defunct) called Quicksoft. It was released on a shareware basis, with a paid version available.

The files were basically plain text, with optional special functions causing control characters to be inserted. However, the default filename suggested when you started the program was "WORK.DOC", suggesting .doc as the default file extension to be used, which could be confusing given MS-Word's more well-known use of this extension. You could create or edit files with any extension, including .txt, however.

If you stick to characters found in the ASCII character encoding, and don't use any special PC-Write features, the resulting files will be completely ASCII, using the standard PC-DOS carriage return + linefeed for line breaks. If you use accented characters (you could type them by typing a letter, then the backtick (`), then another character representing the diacritical mark such as an apostrophe or tilde), those will use the active MS-DOS code page. Other features (accessed within PC-Write through Alt key combinations) will cause various control characters to be inserted into the file, but the rest of the content will remain plain text. The control characters have meanings that are specific to PC-Write, not generally resembling their "official" meaning (C0 controls) in the ASCII set; for instance, a variety of special commands are done as "dot commands" (on a line by themselves, with a dot followed by a special command) which are preceded by a control character that is entered as Alt-G in PC-Write but stored as Ctrl-K, which is officially the Vertical Tab character in ASCII.

Control characters
These are the control characters as stored in PC-Write documents, and their meanings. Mode toggles (for various font and color effects) are reset at line breaks, so they need to be set on each line of a multi-line enhanced passage.

Dot commands
These commands are intended to be on a line by themselves, beginning with the ^K (0B) control character (entered in PC-Write with Alt-G).


 * .. Comment line (followed by comment text; not printed)
 * .- Protect against reformatting (begin)
 * .+ End protection against reformatting
 * .D Mark beginning or end of footnote (can also use .DB and .DQ respectively)
 * .DB Begin footnote
 * .DD Begin footnote forced to bottom of page (starts a footnote in place of .DB, when footnotes are otherwise forced to end of text)
 * .DF:filename Load footnotes from external file (and force footnotes to be placed at end of text)
 * .DF: Turn off footnotes being forced to end of text
 * .DH:text Set footnote header to given text
 * .DM:n Footnote spacing (number of lines)
 * .DQ End footnote
 * .E:n Print n blank lines (n is a number, e.g., .E:2 to print 2 blank lines)
 * .E Marks beginning or end of block of text to keep on same page (can also use .EB and .EQ respectively)
 * .EA Turn on auto-page-breaks
 * .EB Marks beginning of block of text to keep on same page
 * .EL:n Makes page break in printout if n lines aren't available on current page
 * .EN Turn off auto-page-breaks
 * .EQ Marks end of block of text to keep on same page
 * .F:text Set 'text' as footer line in all pages
 * .F:$$$ Page number footer
 * .FL:text Set 'text' as footer line in left pages
 * .FQ Quit all footer lines
 * .FR:text Set 'text' as footer line in right pages
 * .H:text Set 'text' as header line in all pages
 * .H:$$$ Page number header
 * .HL:text Set 'text' as header line in left pages
 * .HR:text Set 'text' as header line in right pages
 * .HQ Quit all header lines
 * .I:text Add index entry 'text'
 * .IF:filename Index file name
 * .IW:n Index entry width n
 * .IX:n Index entry space n
 * .K:text Table of contents entry
 * .KF:filename Table of contents file
 * .KW:n Table of contents width
 * .KX:n Space for table of contents entry (number)
 * .L:n Set length of page to n lines
 * .LB:n Set length of text body to n lines
 * .M:n Set line spacing to n
 * .N:n Set this page's number to n
 * .O:filename Set output file
 * .PL:text Force text to left page
 * .PR:text Force text to right page
 * .Q:letter Quit (end) setting of regular font to given letter (started with .R:letter)
 * .QQ Quit all .R font settings (several might be in effect at once)
 * .R:letter Set regular font to setting coded by Alt and letter given in command (e.g., .R:B for bold)
 * .S:n Set line spacing per inch to n
 * .T:filename Insert file when printing
 * .TI:filename Insert unprocessed file (e.g., graphics)
 * .TL:n Insert file, adjust to length n
 * .TT:n,n Insert printer codes
 * .U Get keyboard input
 * .U:prompt Show 'prompt' and get keyboard input
 * .W:n Set width of header/footer to n characters
 * .X:n Set extra left margin of n
 * .XB:n Set bottom margin to n
 * .XF:n Set extra left margin of n characters for footers
 * .XH:n Extra left margin of n characters for headers
 * .XL:n Set extra left margin of n on left pages
 * .XR:n Set extra left margin of n on right pages
 * .XT:n Set top margin to n