ChiWriter
Scientific word processing software
From Wikipedia, the free encyclopedia
ChiWriter was a scientific word processor for MS-DOS, created by Cay Horstmann and released commercially in 1986.
| ChiWriter | |
|---|---|
A document published in 1989, using ChiWriter with user-designed fonts. | |
| Developer | Cay Horstmann |
| Initial release | 1986[1] |
| Final release | |
| Written in | C and C++[6][a] |
| Operating system | MS-DOS |
| Type | Word processor |
| License | Proprietary |
It was one of the first WYSIWYG word processors that could write mathematical formulas, even on IBM PC XT computers. It was easier to use than TeX. It was relatively affordable[7] and ran on personal computers, unlike TeX, which ran on expensive Unix computers[citation needed].
ChiWriter was discontinued in 1996.[1] Since then, Horstmann has placed the ChiWriter executable in the public domain.[8] The source is unpublished.[9]
Operation
ChiWriter let a user write text that was subscripted or superscripted with respect to the current text line (above or below, by half the base line height). This text was treated as part of the core line, enabling complex formulae, such as fractions. It supported up to 20 fonts simultaneously, including fonts with Greek, Cyrillic, and mathematical symbols. Users could combine symbols to create larger objects, such as sums and integrals. Thus, ChiWriter facilitated writing mathematical and scientific texts.
It was easier to use than TeX, making it popular with scientists.[citation needed] It focused on speed of use and on interactive editing, rather than on control over styling.[2]
Though it was a DOS application, it used graphics display modes, implementing its own GUI.[10] It used its own with fixed width, bitmap fonts (not vector fonts). Every font had the same fixed dimensions, but different sets were available for different output devices (for example, low-resolution fonts for video displays and high-resolution fonts for printers). A font editor allowed one to modify fonts and to add user-designed symbols and new fonts, including proportional fonts.
History
In 1988, Horstmann Software Design Corporation was advertising ChiWriter as "completely 'what-you-see-is-what-you-get'" along with several optional components, such as support for graphics beyond EGA, 24-pin dot-matrix printers, and laser printers.[7] A combination of market forces led to the company's demise.[10] In 2001,[b] Horstmann wrote:
- Q: Why was there never a Windows version of ChiWriter?
A: In a word, we ran out of money. A team of four programmers was working on the Windows version, when the Windows 3.0 popularity made DOS programs hard to sell. When sales dropped, we had to lay off the programmers one by one. At the same time, Microsoft Word became more powerful and set a minimum standard for what a word processor would need to deliver. The "suite wars" that put a word processor on many computers for free didn't help. Eventually, we just had to throw in the towel.[11]
Access to old ChiWriter documents today
Via conversion to TeX
Horstmann Software Design sold a ChiWriter-to-TeX converter. This is not available from Horstmann's website.[12]
Via laser output
As of 2020,[13] ChiWriter can run on modern computers, in a virtual machine running DOS. Virtualizers known to work include VirtualBox and DosBox.[13] Once ChiWriter is running, assuming it has the laser printing option, use it to output a PostScript (*.ps) file from each document. PostScript is readily convertible to PDF.
Via dot-matrix output
ChiPBM is a program written in C[c] by Dmitry Zaitsev, to convert dot-matrix output from ChiWriter.[14] It understands the subset of Epson ESC/P codes emitted by ChiWriter, and outputs portable bitmap data (PBM).[15] This is an output format for graphics, that is still used in 2025.
ChiPBM was announced by Zaitsev in February 2017, through self-promotion on Wikipedia.[15] It is apparently freeware: the source code seems unpublished[14] and the executable can be downloaded free of charge.[16][d] As of December 2025, the ChiPBM executable on Zaitsev's website is built for x86-64 computers running Microsoft Windows.[c] There is no manual.[c]
Instructions: use ChiWriter to print-to-file in "quality printing mode". This creates a *.bin file, containing bitmap graphics and ESC/P codes. Then, run ChiPBM to convert the *.bin file to a *.pbm file.[15] Use other tools to convert PBM to common document formats. For example, the graphics editor GIMP can convert PBM to PDF.
External links
- ChiWriter FAQ - Horstmann's hidden[17] ChiWriter page. Includes downloadable copies of ChiWriter versions 3 and 4.
- ChiWriter and user applications - Joop van den Eijnde's page on ChiWriter fonts, printer drivers, and user advice.
- daze.ho.ua - Zaitsev's software page, including ChiPBM.
Notes
- The programming languages used for Chiwriter are easily determined from strings embedded by the compilers into the executables. But compilers aren't obligated to identify themselves. So, other languages may have been used too. 8088 assembly is likely to have been used in some places. This would be a fair guess for the miniscule executable marked "unknown" below.
$ wget https://horstmann.com/ChiWriter/cw4.zip
$ unzip cw4.zip # the last version still on Horstmann's site; file dated 2015-12-04.
...
$ ls -l *.EXE
-rw------- 1 bw bw 67702 Oct 19 2007 324.EXE
-rw------- 1 bw bw 683152 Oct 19 2007 CW.EXE
-rw------- 1 bw bw 50034 Oct 19 2007 DOCUMENT.EXE
-rw------- 1 bw bw 16684 Oct 19 2007 FCS.EXE
-rw------- 1 bw bw 85156 Oct 19 2007 FD.EXE
-rw------- 1 bw bw 41876 Oct 19 2007 MAINT.EXE
-rw------- 1 bw bw 941 Oct 19 2007 PALETTE.EXE
-rw------- 1 bw bw 17032 Oct 19 2007 PINSTALL.EXE
-rw------- 1 bw bw 62430 Oct 19 2007 TESTSCR.EXE
$ file *.EXE
324.EXE: MS-DOS executable, MZ for MS-DOS
CW.EXE: MS-DOS executable, MZ for MS-DOS
DOCUMENT.EXE: MS-DOS executable, MZ for MS-DOS, ZIP self-extracting archive
FCS.EXE: MS-DOS executable, MZ for MS-DOS
FD.EXE: MS-DOS executable, MZ for MS-DOS
MAINT.EXE: MS-DOS executable, MZ for MS-DOS
PALETTE.EXE: MS-DOS executable, MZ for MS-DOS
PINSTALL.EXE: MS-DOS executable, MZ for MS-DOS Self-extracting PKZIP archive
TESTSCR.EXE: MS-DOS executable, MZ for MS-DOS
$ L=`file *.EXE |sed '/archive/d; s/:.*//'`
$ for j in $L; do
> echo $j:
> strings $j |egrep -m1 'Borland|Turbo|Zortech' || echo unknown
> done |
> sed '/:$/ ! s/^/ /'
324.EXE:
Borland C++ - Copyright 1991 Borland Intl.
CW.EXE:
Borland C++ - Copyright 1991 Borland Intl.
FCS.EXE:
Turbo C++ - Copyright 1990 Borland Intl.
FD.EXE:
Borland C++ - Copyright 1991 Borland Intl.
MAINT.EXE:
Turbo-C - Copyright (c) 1988 Borland Intl.
PALETTE.EXE:
unknown
TESTSCR.EXE:
Zortech C 3.0r1 library, Copyright (C) 1988-1991 S, written by Walter Bright
- The Internet Archive's earliest timestamp for the web page that once contained this text is 23 September 2001 (and the snapshot was taken on 31 January 2002). But the page may have existed earlier and the quoted words may have been present in those earlier versions.
- Metadata embedded in the ChiPBM executable, dated 17 June 2023:
$ wget http://daze.ho.ua/chipbm.exe
2025-12-26 19:59:23 URL:http://daze.ho.ua/chipbm.exe [136021/136021] -> "chipbm.exe" [1]
$ ls -l chipbm.exe
-rw------- 1 bw bw 136021 Jun 17 2023 chipbm.exe
$ file chipbm.exe
chipbm.exe: PE32+ executable (console) x86-64, for MS Windows
$ unzip chipbm.exe # is it a self-extracting archive (a package)? No. So, no documentation:
Archive: chipbm.exe
End-of-central-directory signature not found. Either this file is not
a zipfile, or it constitutes one disk of a multi-part archive. In the
latter case the central directory and zipfile comment will be found on
the last disk(s) of this archive.
unzip: cannot find zipfile directory in one of chipbm.exe or
chipbm.exe.zip, and cannot find chipbm.exe.ZIP, period.
$ strings chipbm.exe |grep -m1 'GNU C'
GNU C 4.9.2 -m64 -mtune=generic -march=x86-64 -g -O2 -std=gnu99
- HTTP header fields, from the ChiPBM executable's URL, accessed on 26 December 2025:
Content-Type: application/x-msdownload
Last-Modified: Sat, 17 Jun 2023 18:02:33 GMT
ETag: 21355-5fe571b136bb1
Content-Length: 136021