Thiemo Mättig

DOS text viewers and editors

← Back to the index of my DOS archive

TView (1995)

TView is a "text viewer" I wrote in 1995 for manuals and digital letters I was giving to friends and mail contacts on floppy disks. I had two main features in mind when I started this little project: Being able to show more than 25 lines on a single screen (but less than the highly compressed 50 lines some programs offered as the only option). And I wanted all configuration embedded in the text file itself, while still being readable in regular text viewers.

The later goal is met with a mixture of formatting commands that resemble INI settings, batch programming and ANSI escape sequences. The text file can start with a block of INI-like settings like Zeilen=28 to increase the default number of lines from 25 to 28. There are commands to indent the text, specify a default background and text color, add colored header and footer lines, enable a percentage progress indicator, a rem command for comments, and even commands to change the RGB values of the 16 default text mode colors. All these commands are German (there are not even English aliases), so a German user is not confused by technical terms in a foreign language.

The text itself can be colored line by line by prefacing a line with an escape sequence like [3 to change the text color only, or [14,2 to change both the text and the background color of that line.

The feature to switch the screen away from the boring 25 lines default to really anything else (even including a 12 lines mode) uses a fascinating little hack, purely build in code with no font resources. What the program does first is to decide which of the three available hardware fonts fits best: the default font with 16 pixel height letters, 14 pixels (thats the one you know from the 640-by-350 pixels EGA mode) or 8 (typically used in 320-by-200 modes). Depending on the total number of rows and how the 400 pixel rows in the text mode can be divided, the hardware font is either scalled up, truncated by a few pixels on the top and bottom, or gets a little bit of line height added. The result is not always perfect. Many modes leave a rest when dividing 400 by the number of rows, leaving a black bar at the bottom of the screen. Sometimes characters like "g" are missing parts because of the truncation. But overall, the feature was successfully bending the restrictions of the limited text mode while keeping the font and overall look and feel the reader was probably used to.

There is an export function (press S) that strips all commands and color codes and a print function (press D) that does the same. There is even a screensaver included you can activate by (and only by) pressing the space bar.

The whole implementation is highly optimized for performance, uses interrupts and output registers for soft color fades and POKEs directly to the shared screen memory instead of using BASICs PRINT feature. Most of the code is barely readable because of all this, even if it makes use of not less than 12 procedures and functions. The main program is still more than 300 lines long.

Download the »TView« viewer and source code (PowerBASIC)

Ein Disketten-Magazin (1999)

Main menu of the magazine builders manual

»Ein Disketten-Magazin« (German for "a disk magazine") is, in a way, the successor of »TView«. It's one of the most trivial DOS magazine engines I could think of at the time: a directory of text files, possibly arranged in sub-directories, an .ini file listing all text files, and a single, very small executable. You can even rename the executable and .ini. My main goal was to make the engine as easy to use as possible, but beautiful and a pleasure to use the same time. I achieved the later by adding mouse support and manipulating the text modes color palette, as well as loading in a custom font. Unfortunately this also means I failed in terms of compatibility, because Windows will ignore all this and simply use the default font and colors. I also put a lot of effort into rearranging and documenting the source code so it can easily be changed by other programmers, making this the probably best documented BASIC source code I ever wrote. Unfortunately the guy I made this for never used it, as far as I know.

Download the »Disk Magazine« builder including all sources (PowerBASIC)

Teletext System (2000)

The »Teletext System« is a text mode viewer and editor I build for a collaborative offline magazine named »Telegram Text«, modeled after an idea by Klaus Quindt. The idea was to have a canvas very similar to the TV teletext system (typically referred to as »videotext« in Germany) with up to 1000 pages, each assigned to an individual person or group. An integrated, fully fledged-out editor modeled after the ACIDDraw ANSI editor allows to edit any page and create new ones with no further permission needed. Klaus, the main editor, would collect all contributions send in via email or by »snailmail« on floppy disk, decide what to accept, and distribute an up-to-date version on a regular basis.

The system intentionally runs in the default 80 columns text mode that displays fine in all Windows command windows and emulations, with the only modification being the blink flag turned off, which allows to use all 16 colors for the background. The editor allows to import .ans files and converts them to a format I came up with: plain text first, followed by run-length encoded color information, if any.

Unfortunately the idea of such a magazine was never realized.

Download the »Teletext System« including all sources (PowerBASIC)

Cream #0 (1998)

First page of the viewers manual, shown by the viewer

The German magazine »Cream« (1996–1998) was my first contact with the »diskmag« format, short for »disk magazine«. I was in contact with the main editor of the magazine and wanted to contribute to the next issue. To be able to contribute as best as I could I made this little viewer, which allowed me to preview the color coded texts I wrote in the magazines original colors and page layout. Unfortunately Cream #5 was never released. The texts got published in other German diskmags instead, most of them in »IMAgE«.

Download the »Cream #0« viewer and source code (PowerBASIC)

IMAgE reader (1999)

Main menu of issue 5 in the text mode reader

The German diskmag »IMAgE« (1998–1999) was build using three very different engines: The first two issues are Turbo Pascal programs utilizing a basic 16 color graphics mode. Issue 3 was a NeoBook document, and issue 4 and 5 got a dual DOS and Windows engine exclusively build for the magazine. All engines had more or less massive compatibility and stability problems, especially the later ones. Since IMAgE was one of the very few active German diskmags, I contributed to this magazine as well, mostly to the latest two issues. I even did a major part of the main editors job on issue 5 after it was pre-released and I realized almost no text utilizes the engines text coloring feature.

I wanted to preserve what I did and turned the preview tool I made while working on issue 5 into an alternative text mode reader. It's capable of showing the contents of four of the five issues, and even attempts to work around a few minor problems the original issues had.

TAP.MAG reader (2001)

TAP was an art project by »Tomaes«, a creative guy I had the honor to call my friend. His lovely little »TAP.MAG« magazine never had compatibility problems, and never needed an alternative interface. I did it anyway, just because I had fun reverse engineering file formats, and compiled what I learned into a text mode reader for the first three issues.

Download the »TAP.MAG« reader and source code (PowerBASIC)