OUTLN DOC(OUTLN10 COM* ;xxxxxxxx OUTLN.DOC v1.0 06/13/85 Eric Gans French Dep't UCLA Los Angeles, CA 90024 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 12 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 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 @3 allows files of any length @3 margins 60-125 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 60-125 (example actually produced by OUTLN) Notes: The literal "@" is produced by "@@" in the source file. "@" followed by anything else other than 0-9 will be skipped. No space is necessary after the @n entry (makes things neater though); extra blank spaces and carriage returns are "squeezed." "Soft" hyphens (1eh or 1fh) will be disregarded. 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. Since this is version 1.0, I would appreciate suggestions for additional features/corrections and will do my best to include them in future versions.:2=272<>!~(s1 ={!j$z22x(4G>/##(* #(#~ (L 9B >2M(:m (/ !\ !l: 2!2\<: (k,˾~@(08 02G_(GW: :O}0%o{z2:<2Ozc> w#{!G=o0$4>(#6= ~X((J(((((z Z.z*Z6)+6(+6)+6(+R# 0w+0w+{{0w+z0w+(/ 86X+6I+# 6V+6I+(06I+=  6V+{(/ 86C+6X+# 6L+6X+(06X+=  6L+z6C+= #6.#6 #6 #k,˾~ ( ( (((1 Ê k!˿ (+w:x (G~ #~ 66 #6 #Kx(>w#d0d 0 5\ѷ€:!OK!. !o S!KB81 >N<(Y:$ F!\:< \#!\l >B!AK"vl\!!-! !!!V!| ~O;##~0 _zWW !DOUTLN v1.0 (c) Eric Gans 06/13/85 outln sfln [dfln] [/sws] Switches: B=NoBak Mn=RtMarg->n (50