Classic Computer Magazine Archive START VOL. 2 NO. 2 / FALL 1987


ST Writer version 1.75

by Bruce D. Noonan, M.D.

It's new, it's improved, and it's free! It's ST Writer 1.75, the latest version of the simple but fast ST word processor. Dr. Bruce Noonan took a fantastic voyage into the source code of ST Writer, debugged the living daylights out of it, and here recounts the amazing story. You'll find the program on your START disk.

File STWRITER.ARC on your START disk.

In the Winter 1986 issue of START, I described the genesis of ST Writer, the fast, powerful non-GEM word processor for the ST. Now it's back, better than ever, with bugs fixed and new features added. There are even versions in Spanish, German and French.

Permit me to recap for a moment. When the ST first appeared, Atari decided they wanted to bundle a new word processor for the ST--and they needed a program quickly. In just two weeks, assembly language programmers Dan Oliver and John Feagans converted AtariWriter, a word processor for the Atari 800, to the ST--and ST Writer was born.

However, as with many products rushed to the market, ST Writer was not bug-free. In September of 1985 I spoke with Leonard Tramiel and Sig Hartmann and asked them when the bugs were going to be fixed. The discouraging answer was that ST Writer was "complete " I got permission to examine the ST Writer source code for bugs, and thus began one of the most time-consuming but educational challenges of my life--improving an already-fine product, just for the benefit of all ST owners.


Since "ST Writer Secrets" and ST Writer version 1.50 appeared in START, I've had an overwhelming number of letters and electronic mail on CompuServe regarding the program. It seems many of you (like myself) prefer the "vanilla but fast" ST Writer to whatever else is out there as your first-line word processor. So, in the last six months, I've taken many of your suggestions and incorporated them into the current version, 1.75, which you'll find free on your START disk!

In my quest for aftermarket support, I've tried to answer as many of your questions as possible personally by mail, electronic or otherwise, but the task has been somewhat overwhelming, what with my involvement in Seattle's Atari Trek '87 and other commitments. Nevertheless, 1.75 is now here, and I think it's darn near bullet-proof by now! I hope this article will help answer any additional questions you may have about this great public-domain word processor.


Some of the ST Writer bugs I corrected included fixing up some annoyances left from previous versions. For example, in version 1.50 you couldn't enter a [Control M] in the command line for searches or replacement. As many of you may recall, [Control M] is the normal carriage return character to the rest of the ASCII world, but ST Writer uses a null to terminate paragraphs.

One person asked if he could transmit SAVEd ST Writer files by modem to UPI, since ASCII files PRINTed to disk contain carriage returns (ASCII 13) and line feeds (ASCII 10) at the end of every line. I told him that SAVEd files always have the "DO RUN RUN STWRITER .PRG" identification string followed by the tab data at the top of a file. Fortunately, the computer that received his file would ignore all data except that following a special code, which he entered at the beginning of the file to be saved. Then, just before saving the file, he substituted [Control M] for all those carriage returns, using the global replace feature [Shift F7].

A number of you wrote to say that the START disk files LONGREF and QUICKREF were mangled. Before you can print these files to screen or paper, they must be LOADed into ST Writer, and PRINTed from the master menu. Printing via the desktop option will not work, as the files contain nulls for carriage returns, and are not ASCII files.


Some people wrote to complain about how fast the screen scrolled past in print preview. I agreed, and fixed it. Print preview still scrolls rapidly, but now almost any key except [Esc] will stop and start scrolling (I prefer to use the space bar). In addition, if a page wait code is present (a [Control W]), the scrolling will not occur until a key is pressed.

I found that when page numbers were double-wide, they did not appear with extra space in the print preview. I rewrote that portion of the code. I tried to fix it so that double- and triple-digit page numbers in headers and footers would be flush with the right margin when justification was on, but I couldn't find a way to do it. To work around the problem, print out pages 1 to 9 separately and find the page break. Then, just before the text for page 10, repeat the header line, including a [Control R] command to set the right margin one column less. (This will not affect the body of the text, only the header.) For pages 100 to 999, decrease the [Control R] in the header line by two less than the right margin for the body of the text. You can use the same technique for centering page numbers. (Thanks to John Woodley of Montgomery, Alabama, for the work-around.)

I also improved header and footer formatting. For example, if a header was wider than the selected margins, some of it would overflow (unpredictably) into a footer. I changed the routine to ignore any text extending past the right margin in a header or footer, but to observe any control functions that may have been placed there, such as a command to turn off an underline. This results in less calculation and allows more flexibility when creating headers that extend the width of a page even though the page width is later altered.


A further annoyance was that the letter flags (A,C,I or T) at the end of the middle line of the command box did not show up on every screen. This is troublesome if, for example, you're using special characters ([Alternate X] mode) and you are trying to type a menu command. Now, in [Alternate X] mode, an A is always present in the command box to alert you of this fact.

An additional flag has been added, too: D signals the deadkey mode. The deadkey allows you to get all those foreign vowels, such as umlauted ones, underlined a and o, and Scandinavian slashed os- in fact, just about any character in the ST character set that resembles a combination of a vowel and some other mark (^,_, ',Ä,/,~, ' ,-) can be produced. Toggle the deadkey function on and off with [Control Clr/Home]. For a u with an umlaut, for example, first type". Nothing will appear on the screen. Next, type u. An umlauted u (Äu) appears. This is simpler than looking up the character in a table and going through the [Alternate X] toggle. While deadkey is turned on, to get regular quotation marks requires hitting " " twice in succession.

Tom Hudson, author of DEGAS Elite and CAD-3D, uses ST Writer as his first-choice word processor. Thanks to his suggestion, you can now select or de-select letter quality printing (provided, of course that your printer supports it) without having to type in the [Control O] codes or pre-setting the printer configuration desk accessory.

I also could not leave the disk formatting feature alone. The new TOS ROMs in the Mega STs (coming with the blister chip) support skewing of sector placement in disk tracks to enhance reading speed. This version of ST Writer will support that formatting system with the new ROMs. (Editor's note: For an in-depth technical look at this procedure, see Dave Small and Dan Moore's article '`Hard Disk' Warfare" in the Spring 1987 issue of START.)

In earlier versions, underlining more than one word while out-denting extended the underline all the way to the left margin; I've rectified that little problem. I've also corrected a bug in form insertion that caused an extra page to be printed while retrieving data from a database, such as in mail merge. Remember, a database containing six names and addresses must be printed to disk (ASCII format), and requires that copies be set to 1, unless all six addressees are to receive more than one copy of the letter each.

Finally, I've fixed one of the most annoying ST Writer bugs: You can now merge a non-ST Writer file into a file already in memory without scrambling things into an unreadable mess.


Many of you are asking "What about the GEM version of ST Writer?" Well, I got tired of waiting for Atari, so I'm now in the process of doing it myself. No, it's not yet complete, and no, it won't be Thunder! compatible, but it will let you use dialog boxes for selecting printer options, file selection, and global formatting. Further, all menu functions can be selected with the mouse, and warning messages arrive in alert boxes.

It won't be Thunder! compatible because it must go through event_multi, a GEM function that handles input from the keyboard, mouse, timer, and message pipe. The function is also the reason such programs as 1ST Word are so slow. I had many pleas from ST users to produce a GEM version, while maintaining ST Writer's noted attribute--speed. I can't maintain this if using event_multi.

For those who don't want GEM, the program looks and runs as usual. But if you want to use the GEM features, clicking the left mouse button allows you to work in GEM. This is the only program I know of that allows this kind of toggle. Also, the GEM version will work in all three resolutions, making ST Writer the only word processor for the ST that can make that claim.

The final two features still waiting to be implemented are cursor positioning with the mouse and deselection of the GEM portion if the program is booted from an AUTO folder. John Feagans of Atari has promised to do this as soon as he can, but remember, he does this in his spare time-- so if you want to prod him, prod gently, okay?

When and where can you get ST Writer 2.0? As of this writing (mid-June) John Feagans has said "several months," so it might be available on CompuServe and other online services by the time you read this. If not, be patient, and keep your eyes peeled. A future issue of START will probably include Version 2.0 of ST Writer on its disk.

Bruce Noonan, M.D., is the godfather of Atari's public domain word processor, ST Writer; and is currently debugging ST Writer version 2.0.


Just as we were going to press, Bruce Noonon called the START offices and told us ST Writer version 2.0 is finished. It's still being debugged right now, but we'll bring you the completed version on the Winter 1987 START disk. Future START disks will also feature the Spanish, Germon and French versions of ST Writer.


When a filename is already selected and I want to save to another file, do I have to back space to erase the path/filename?

No. Press [Control X] to delete it.

My Brother 60 typewriter is connected to my ST through its buffer interface. I have to print two first lines in order to get the first line to print, as the print head moved to the extreme right, center, then extreme right again, printing on the roller.

Try deleting the Epson printer reset command from the CONFIG.TXT file replacing the 27, 64 with 255, 255, or check to see what a printer reset code should be for your printer.

I can only print 76 columns when using 12 print pitch with [Control R] set at 96.

Remember to set [Control G] to 8 when using elite (12 pitch) print. This will allow up to 96 columns on a normal width carriage.

How about a printer driver in Epson configuration to enable the use of the Atari ST character set as printed in the manual?

You can change the translation table in the CONFIG.TXT file to insert the ASCII code for the equivalent character in your printer's character set to match that in the Atari set. If the equivalent character does not exist in your printer's set, maybe you can download a font to your printer. However, this would require a separate program to design and download the font.

I am having trouble getting [Control O] to output a particular character at a specific point in my text.

[Control O] sends a string of printer commands to the printer immediately as it is read by the formatter in ST Writer. Unlike Atariwriter for the 8-bits, however the bytes are sent before the text is formatted on its "page'' in computer memory. Trying to preserve the byte on the formatted page in memory messes up the character count per line and word wrap. Sorry.

When I use [Control G] before a word, the first letter is omitted.

Correct! Suppose you want to bold the number 2. If you type [Control G][1] followed by 2, the program would interpret this as a 12, or italics elite! The proper way is to leave a space or some other character (such as a hyphen).

If I want to use carriage returns within a paragraph, the prior [Control P] always inserts a gratuitous line feed.

To avoid the line feed, simply change the paragraph spacing [Control D] from 4 to 2 prior to the paragraph in question.

Super and subscripts don't work properly.

Atari printers differ from Epson printers in that they use [ESC H] to terminate super- and subscripts, Instead of [ESC T]. For dot matrix printers, no "half roll" is performed as might be required by a daisy wheel printer. Adjust the printer driver file accordingly! Also, remember, if ST Writer is in a folder, the printer driver file XYZZX.DAT must be in the same folder directory! The exception to this is AUTO folders, in which case place the XYZZX.DAT file outside the AUTO folder.

I can't see the second column on print preview when using a condensed font.

Try splitting the columns by using only the dimensions of the first column, and setting the [Control M] (second column, left margin) to zero temporarily. The second column will show up as page 2 on print to screen, but at least you will be able to see it intact.

Sometimes while typing, I find that the space bar deletes characters rather than inserting a space.

Perhaps you have inadvertently hit the [Insert] key, which toggles the typeover/insert modes on and off.

I think I have a defective copy of ST Writer. Sometimes when I load it I see a capital "C" in the lower right corner in the message window. Sometimes there is an "I".

No, your copy is not defective. C tells you the Capslock key is active, I means you're in insert mode, and T means you're in typeover mode. [Alternate X] produces an A, showing you are using the alternate character set. Deadkey mode puts a D there. Since the [Alternate X] mode causes only alternate characters to come from the keyboard, A will appear on the menu screen to inform you that the keys you press to get menu items will not work unless you toggle out of [Alternate X] mode.