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.
Hex | Dec | ASCII Char | Ctrl Key | PC-Write Key | PC-Write meaning |
---|---|---|---|---|---|
00 | 0 | NUL | ^@ | Not used (Null character) | |
01 | 1 | SOH | ^A | Alt-S | Toggles Second Strike mode |
02 | 2 | STX | ^B | Alt-B | Toggles Bold mode |
03 | 3 | ETX | ^C | Alt-E | Toggles Elite Fast mode |
04 | 4 | EOT | ^D | Alt-V | Toggles Variable mode |
05 | 5 | ENQ | ^E | Alt-P | Toggles Pica Quality mode |
06 | 6 | ACK | ^F | Alt-C | Toggles Compressed mode |
07 | 7 | BEL | ^G | Alt-M | Toggles Marine Blue mode |
08 | 8 | BS | ^H | Alt-J | Toggles Jade Green mode |
09 | 9 | HT | ^I | Tab | Move to next tab stop. In some configurations, gets replaced with proper number of space characters. |
0A | 10 | LF | ^J | Enter | Linefeed: follows Carriage Return for line break. (Enter inserts two-character sequence ^M^J) |
0B | 11 | VT | ^K | Alt-G | Signals that what follows is a dot command or guide line (commands should be on a line by themselves) |
0C | 12 | FF | ^L | Shift-Alt-T | Soft page break. (If followed by ^O (0F), it's a hard page break, entered in PC-Write with Alt-T.) |
0D | 13 | CR | ^M | Enter | Carriage Return: precedes Linefeed for line break. (Enter inserts two-character sequence ^M^J) |
0E | 14 | SO | ^N | Alt-A | Toggles font align mode |
0F | 15 | SI | ^O | Alt-T | Follows ^L (0C) to indicate hard page break (Alt-T inserts two-character sequence ^L^O) |
10 | 16 | DLE | ^P | Alt-D | Toggles Double Wide mode |
11 | 17 | DC1 | ^Q | Alt-N | Flags where an automatic number needs to be inserted; follow with digit or letter then a non-digit/letter symbol, e.g., ^Q1. |
12 | 18 | DC2 | ^R | Alt-W | Toggles Double Underline mode |
13 | 19 | DC3 | ^S | Alt-O | Toggles Overstrike mode |
14 | 20 | DC4 | ^T | Alt-K | Keep Paragraph: used at end of paragraph to mark it not to be reformatted |
15 | 21 | NAK | ^U | Alt-I | Toggles Italic mode |
16 | 22 | SYN | ^V | Alt-Q | Toggles Quality Elite mode |
17 | 23 | ETB | ^W | Alt-U | Toggles Underline mode |
18 | 24 | CAN | ^X | Alt-H | Toggles Superscript mode |
19 | 25 | EM | ^Y | Alt-L | Toggles Subscript mode |
1A | 26 | SUB | ^Z | Not used (MS-DOS used it as end-of-file marker, but PC-Write didn't mark files this way) | |
1B | 27 | ESC | ^[ | Not used (Escape character) | |
1C | 28 | FS | ^\ | Alt-F | Toggles Fast Pica mode |
1D | 29 | GS | ^] | Shift-Ctrl-Hyphen | Soft Hyphen |
1E | 30 | RS | ^^ | Alt-R | Toggles Red mode |
1F | 31 | US | ^_ | Alt-Y | Toggles Yellow mode |
F6 | 246 | Ctrl-Hyphen | Hard Hyphen | ||
FA | 250 | Ctrl-Space | Hard Space | ||
FF | 255 | Shift-Ctrl-Space | Soft Space |
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