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.

DeveloperCay Horstmann
Initial release1986; 40 years ago (1986)[1]
Written inC and C++[6][a]
Quick facts Developer, Initial release ...
ChiWriter
DeveloperCay Horstmann
Initial release1986; 40 years ago (1986)[1]
Final release
4.20B[2][3][4] / 1993[5]
Written inC and C++[6][a]
Operating systemMS-DOS
TypeWord processor
LicenseProprietary
Close

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.

Notes

  1. 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
     
  2. 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.
     
  3. 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
     
  4. 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

References

Related Articles

Wikiwand AI