;;06-13-85 OUTLN.DOC v1.1 07/24/85 Eric Gans French Dep't UCLA Los Angeles, CA 90024 Version 1.1 update: Added skip-line toggle, force blank spaces; corrected a couple of messages. In these days of the "outline-processors" KAMAS and the public-domain TOUR, a friend showed me an older program called OUTLINE that has no fancy command-structure but is all the easier to use. Instead of trying (and probably failing) to be its own word-processor, it processes Wordstar source files of any length that you create using commands that can be learned in about 30 seconds. The result of the processing is an outline in Wordstar DOC mode that can itself be edited directly. A great little program, but with a couple of drawbacks: 1. Allows only four outline levels, with no "0" level for ordinary text. 2. Limited number of entries at each level (39 for level 1, 26 for level 2, etc.) 2. The right margin cannot be more than 80 (although printers in compressed mode can handle 120). 3. The file takes up 16K on disk and, although not slow, could be a lot faster. (It uses so many PUSH's, POP's and DAD SP's that it must have been written in Forth.) OUTLN is a Z80 version of OUTLINE with the following improvements: 1. Allows 8 outline levels plus a "zero" level for straight text. 2. Allows right margins from 50-255 3. Creates a BAK file from your source (if you use the same name for source and destination); this can be disabled with a switch. 4. Occupies only 13 sectors (1.5 K) and is quite fast (30 seconds for an 80K source file). Format: outln sourcefile [destfile] [/switches] If no destfile given, the same name will be used and the source filename changed to fn.BAK. Switches: B = no BAK file. (Use only if destfile name not entered.) L = don't skip extra lines between headings (default will skip 1 line before headings @2-@8 and 2 before @0 and @1; with the L switch you skip one line before @0 and @1 and none otherwise) Mnn = Set right margin to nn. 50 <= nn <= 255. The default margin is 65, as in WS. The switches can be entered together in any order: /bm100 or /m100bl is acceptable Command structure: The outline levels (0-8) are entered following an "@". They may appear at any point in the text, although it is simpler to put them in the left margin. The outline remains in the order entered and is indented and numbered according to the level: @0 = text (flush left margin) @1 = roman caps I-CCLV = 255 @2 = Caps A-Z The 27th @2 will produce A & will continue to wrap around until 255 letters have been reached. @3 = Numbers 1-255 @4 = l.c. a-z as in @2 @5 = roman l.c. i-cclv as in @1 @6 = (Caps) (A)-(Z) as in @2 @7 = (Numbers) (1)-(255) as in @3 @8 = (l.c.) (a)-(z) as in @5 @l or @L = skip line toggle. Switches between skip-line and no skip modes (see "L" switch description) within the file, allowing you to close up or spread out the outline at different points. Spaces, crlf's and "soft" hyphens will be compressed to a single space when the outline is output. To force spaces (in formatting tables, etc.), use the underline character "_" This will only work within the predefined margins. For either "@" or "_" as a literal, precede it by @: "@_@_@_" will produce "___" Thus: @1 OUTLN @2 ease of operation @3 small size @3 simple command structure @4 single format @4 follows text order @3 speed @2 flexibility @3 allows direct entry using WS @l @3 allows files of any length @l @3 margins 50-255 @4 to format: 123 456 @4 use:_______123_____456 would appear (with the /l switch) as: I. OUTLN A. ease of operation 1. small size 2. simple command structure a. single format b. follows text order 3. speed B. flexibility 1. allows direct entry using WS 2. allows files of any length 3. margins 50-255 a. to format: 123 456 b. use: 123 456 Notes: If you want to edit the outline with WS, you should reset the right margin with ^OR if you used the "M" switch. OUTLN does nothing about page breaks since WS creates its own and kills any others already in the file (i.e., converts 8ah to 0ah) on editing or printing. Like OUTLINE, OUTLN give you total freedom in changing levels. You can mix them in any order, although of course the traditional format moves downward 1 level at a time and never permits a single entry at any level (e.g., no "A" without a "B"). It seemed counterproductive to waste code on error checking when it might just be useful in some application to jump from level 1 to level 5 ... and in any case, the program is simple enough so that you will have no difficulty in applying these constraints yourself. The enhancements of v1.1 were made at the suggestion of Dick Sheresh of Chula Vista CA. If you have other suggestions for additional features/corrections I will do my best to include them in a future version.