THE WELCH COMPANY
440 Davis Court #1602
San Francisco, CA 94111-2496
415 781 5700
rodwelch@pacbell.net


S U M M A R Y


DIARY: January 1, 2003 08:34 AM Wednesday; Rod Welch

Revised adding anchors to paragraphs with justify on 1st pass.

1...Summary/Objective
2...Save Time and Money by Making Intelligence Faster and Easier
3...Moore's Law Integrated with KM Turns Computer Power into People Power
4...Implementation Empowers People to Choose When and Where to Add Anchors
5...Risk Management Recovery for Accidental Removal of an Anchor
6...Anchors Added with Justify for SDS Records and Editor Documents
7...000002 Macro 49 Modify to Add Anchors to Paragraphs
8...Anchors Added Where Needed and Avoided Where Not Needed
9...Anchors in Editor Files for Outline Structures Inline
10...Dear Avoid Anchor 1st Para in Correspondence Editor Files
11...Anchor Added to Paragraph Structures in SDS Records
12...SDS Indented Text Sublevels Avoid Anchors to Provide Context
13...Anchor Added Above Text in SDS and in Editor
14...Restore Anchor Removed by Alt F9 Macro 49
15...000006 Macro 980 Modify Macro 987 to Restore Removed Anchor
16...000008 Macro 155 Level 3 Profile Create F1 F1 Alt F3 to Macro 980


..............
Click here to comment!

CONTACTS 

SUBJECTS
Anchors and Format Added Automatically with Justify Op Alt
Anchors Add to All Para in SDS record During Save, F2 macro 142, 0702
Justify Anchors Addressability Links Incorporate into Macro 49 for Al
Time Saved Addressability Reducing Time to Create Anchors for Linking

0906 -
0906 -    ..
0907 - Summary/Objective
0908 -
090801 - Follow up ref SDS 27 0000, ref SDS 23 0000.
090802 -
090803 - Decided to try changing Alt F9 to justify a para so that an anchor is
090804 - created on the first pass, rather than require a second pass.  Used
090805 - the code developed for recognizing a 2nd pass to now remove an anchor
090806 - if Alt F9 is called twice on the same line within one second.  This
090807 - proved too risky, so finally eliminated this feature. ref SDS 0 NA5J
090808 - Provided some exceptions where anchors are generally not needed, so
090809 - that it is not necessary to continually remove unnecessary anchors
090810 - when justifying a paragraph. ref SDS 0 556H  Not sure, but it may take
090811 - a little time getting used to the functionality when anchors are
090812 - added, and when not.  The process of experimenting to gain experience
090813 - for learning enough to refine performance of the code can be somewhat
090814 - frustrating.  Hopefully, smoother integration between related systems
090815 - has now wrung out more of the busy work that consumes time generating
090816 - work product with flexible structure, and also increases ability to
090817 - enable others to cite the record, and so yield bigger savings of time
090818 - and money. ref SDS 0 PM53 Risk of accidentally removing an anchor that
090819 - is extensively linked, and so needs to be replaced, ref SDS 0 OF7J, is
090820 - addressed by saving the existing anchor string each pass; a new
090821 - function F1 F1 Alt F3 can restore it. ref SDS 0 4A4N
090823 -       ..
090824 -      [On 030102 notified Gary Johnson. ref SDS 28 0001
090826 -       ..
090827 -      [On 030102 changed code for F2 save to place anchors on heading
090828 -      lines and elimiated process of adding anchors every 15 lines.
090829 -      ref SDS 29 6I4H and ref SDS 29 NY4O
090830 -
090831 -
090832 -
090834 -  ..
0909 -
0910 -
0911 - Planning
0912 -
091201 - Save Time and Money by Making Intelligence Faster and Easier
091202 -
091203 - Follow up ref SDS 27 6C4L.
091204 -
091205 - Background on the problem to solve is in the record on 021228.
091206 - ref SDS 27 M16L
091208 -  ..
091209 - On 021228 the code was designed to enter a link on the second use of
091210 - Alt F9 calling macro 49 to justify a paragraph, if executed twice on
091211 - the same line within two seconds, ref SDS 27 2R3M, and this was
091212 - calculated to yield significant savings. ref SDS 27 6C61
091214 -  ..
091215 - Today, will try to improve savings further by making following
091216 - changes...
091217 -
091218 -    1.  Anchor is added on the first pass using Alt F9, if an anchor is
091219 -        not already above the para. ref SDS 0 DO8I
091221 -         ..
091222 -    2.  Anchor is removed on the 2nd pass, if executed within 1 second
091223 -        and on the same line as the prior pass. ref SDS 0 NA5J
091224 -
091225 -           Finally decided to eliminate this feature because it proved
091226 -           too risky, as explained below. ref SDS 0 OF7J
091228 -         ..
091229 -    3.  Editor files are now included, however, anchors for outline
091230 -        elements are inline, as shown by work below, ref SDS 0 0R9F,
091231 -        rather than above the line, as occurs with SDS records, because
091232 -        rendering in HTML after conversion with 0122 seems to work
091233 -        better.
091235 -         ..
091236 -    4.  Some "intelligence" is supplied to avoid adding anchors where
091237 -        they are likely not needed, per below, ref SDS 0 OY9O, as
091238 -        follows...
091239 -
091240 -        a.  In an editor file the first para below a "Dear" salutation
091241 -            line does not need an anchor because the default anchor for
091242 -            the Subject of the correspondence provides context.
091243 -            ref SDS 0 8V4G
091245 -             ..
091246 -        b.  The first element of indented text and lists do not get an
091247 -            anchor, like item a in this list, per above, because there
091248 -            is an anchor at a higher level that provides context.
091249 -            ref SDS 0 J24K If user wants an anchor for this, it can be
091250 -            entered with F1 F1 F5.
091252 -             ..
091253 -        c.  The first paragraph below a single line outline structure,
091254 -            which is often a title or heading line, does not get an
091255 -            anchor, because the outline element has an anchor and
091256 -            provides context for the narrative paragraph. ref SDS 0
091257 -            J74G
091259 -             ..
091260 -        d.  Indented text that does not have ordering elements, like 1,
091261 -            a or A, but there is a higher level text structure above
091262 -            the current para that has a left margin which is less than
091263 -            the target para, and if there is an anchor on that text
091264 -            structure within 6 lines of the target para, then avoid
091265 -            adding an anchor on the target para, because the anchor
091266 -            above provides context, as implemented below. ref SDS 0
091267 -            T670
091269 -             ..
091270 -        e.  Below "Follow up ref..." the first para does not need an
091271 -            anchor because there as anchor for the heading that is
091272 -            being followed up. ref SDS 0 244M
091274 -             ..
091275 -        f.  Continuation explanations signified by ... beginning on the
091276 -            left margin do not typically get an anchor, because the
091277 -            anchor is on the explanation above. ref SDS 0 DO8I
091278 -            Sometimes this condition needs an anchor, and so on this
091279 -            occassions an anchor can be added manually with F1 F1 F3.
091280 -            This planning is implemented below. ref SDS 0 0S9P and
091281 -            ref SDS 0 DO8I
091282 -
091283 -
091284 -
091285 -
0913 -

SUBJECTS
SDS Moore's Law Reduce Keystrokes Productivity Rises Working Smarter
Keystrokes Reduce Moore's Law Productivity Rises Working Smarter Not
Productivity Increase for Computer Chips under Moore's Law Aligns wit
SDS Moore's Law Reduce Keystrokes Productivity Rises Working Smarter
Collaboration Moore's Law SDS Reduce Keystrokes Productivity Rises Wo
SDS Moore's Law Collaboration Reduce Keystrokes Productivity Rises Wo

1508 -
150901 -  ..
150902 - Moore's Law Integrated with KM Turns Computer Power into People Power
150903 -
150904 - Savings calculated on 021230 are about doubled with this new design.
150905 - ref SDS 27 6C61
150906 -
150907 -      These numbers remind of Gordon Moore's calculations at Intel on
150908 -      improving performance of computers, reported on 960304.
150909 -      ref SDS 4 4004  At that time Moore's Law brought high hopes this
150910 -      would redound to better performance by people, but the record on
150911 -      970910 reports information overload is a big problem because
150912 -      executives do not have enough time think, ref SDS 5 3479  Later,
150913 -      on 001207 the economy fails when too many people have too many
150914 -      problems.  This history indicates that a faster paced world
150915 -      creates too many problems for people to handle with the popular
150916 -      tools people like. ref SDS 12 V54M  For example, on 010916 Eric
150917 -      Armstrong was discouraged that people are having too many
150918 -      problems finding the right information to get things done
150919 -      correctly. ref SDS 16 KA6H  Later, on 011003 Eric explained that
150920 -      faster computers pile up information so fast that productivity is
150921 -      paralyzed because people cannot find anything under Moore's Law.
150922 -      ref SDS 17 EC5N
150923 -
150924 -          [On 040305 upgrade to subject maintenance for Control Fields
150925 -          generates positive synergy that compounds benefits of
150926 -          Knowledge Space. ref SDS 30 BS5O
150928 -           ..
150929 -          [On 050618 reduced keystrokes and cognitive overhead to
150930 -          capture and enter replication with F3. ref SDS 31 5I7M
150932 -       ..
150933 -      On 991025 Peter Drucker explains in an article that historically
150934 -      productivity improves rapidly, the way computer speed has
150935 -      increased under Moore's law over the past 20 years, when, on rare
150936 -      occassions, a paradigm shift occurs.  Drucker cites the
150937 -      industrial revolution for dramatic gains in productivity,
150938 -      ref SDS 8 4077, and urged that today, in order to translate
150939 -      faster computers into better productivity to lift civilization,
150940 -      computer power must be applied to routinely aid human cognition.
150941 -      ref SDS 8 8925
150943 -       ..
150944 -      Morris Jones at Intel pointed to a solution on 010425 noting that
150945 -      using SDS is a utopia because everything is in the right place at
150946 -      the right time. ref SDS 14 EP7F  Later Eric Armstrong concurred,
150947 -      noting that SDS enables amazing memory. ref SDS 15 0001  Gary
150948 -      Johnson recently added to this idea by citing authority showing
150949 -      fast access to information relevant to immediate needs aids
150950 -      productvity, illustrated by the example on 020726. ref SDS 22
150951 -      2M5M  Work in recent days addresses this goal, and points to a
150952 -      powerful development path for further productivity gains.
150954 -       ..
150955 -      We are calculating time saved for people solving the problem of
150956 -      finding the right information at the right time, which translates
150957 -      directly into dollars.  The question arises about the full range
150958 -      of potential for saving people time doing KM rather than IT, that
150959 -      makes Gordon's calculations of faster computers an asset rather
150960 -      than a crushing liability which causes people to give up on
150961 -      improving communication, as noted by Drucker, reviewed on 931130.
150962 -      ref SDS 2 3851, and shown further on 020608 where most everyone
150963 -      has given up on KM. ref SDS 20 QV5G
150964 -
150966 -  ..
150967 - Implementation Empowers People to Choose When and Where to Add Anchors
150968 -
150969 - Follow up ref SDS 27 4C5L.
150970 -
150971 - Analysis on 021230 recognized that adding anchors automatically is
150972 - "tricky" because the variety of textual structure creates many
150973 - situations where an anchor is not needed nor wanted. ref SDS 27 4C5L.
150974 - This para is an example.  The purpose of anchors is to position people
150975 - in context, and this is acocmplished with this paragraph using the
150976 - anchor above the headline, which has an anchor generated automatically
150977 - by the F2 Save function.  To avoid unwanted anchors, the code
150978 - developed on 021230 was designed to use Alt F9 on the first pass only
150979 - to justify the text, then, if an anchor is desired, use Alt F9 again
150980 - within one second (initially used 2 seconds, ref SDS 27 4C5L, but this
150981 - proved a little sluggish, so changed to one), an anchor is added to
150982 - the para.
150984 -  ..
150985 - Unwanted anchors were removed with standard editing tools under the
150986 - code created on 021230.
150988 -  ..
150989 - Working with this for a few days, yielded further ideas, so today
150990 - decided to experiment to see if avoiding a second pass is feasible,
150991 - because this procedure reduces the effort of adding anchors to near
150992 - zero.  Reducing the effort for good management shows continued
150993 - progress the past few years in the record on 000824. ref SDS 11 0001
150995 -  ..
150996 - To address the issue of adding unwanted anchors, will reverse the use
150997 - of the 1-second-2nd-pass process, so that, instead of adding an
150998 - anchor, the 2nd pass now removes an unwanted anchor.
150999 -
151000 -          Wound up eliminating code that saves and replaces the anchor
151001 -          string, per risk management above. ref SDS 0 F46G
151003 -  ..
151004 - This still leaves open the issue of frequency using Alt F9 on a second
151005 - pass to remove unwanted anchors.  How often do anchors get created
151006 - that have to be immediately removed?  Two examples of common formats
151007 - in SDS that almost never need an anchor are listed above. ref SDS 0
151008 - 556H
151010 -  ..
151011 - The code is hardwired to avoid adding an anchor in these situations,
151012 - and if an anchor turns out to be needed, it can be added with F1 F1
151013 - F5.
151014 -
151015 -     This para is another example of text that does not need an anchor
151016 -     because its meaning is based on the explanation above, and that
151017 -     anchor is used for context.  Pressing Alt F9 on this para does not
151018 -     produce an anchor, because it is indented within six lines of an
151019 -     anchor.
151021 -      ..
151022 -     This para gets an anchor because there is not an outline element
151023 -     above it that is at a higher level and has an anchor.
151025 -      ..
151026 -     This para also gets an anchor because the para above is at the
151027 -     same outline level.
151028 -
151029 -         This para does not get an anchor with Alt F9, because it is
151030 -         within 6 lines of an upper level outline structure that has an
151031 -         anchor.
151033 -          ..
151034 -         This para gets an anchor because the para above is at the same
151035 -         outline level.
151037 -          ..
151038 -         Hopefully, these simple rules enable people to the cite the
151039 -         record in context, without apprecable time and effort by
151040 -         people who create the record.
151041 -
151043 -  ..
151044 - Risk Management Recovery for Accidental Removal of an Anchor
151045 -
151046 - There is a downside or risk of problems in the new system of removing
151047 - an anchor after using Alt F9 to justify text twice within one second,
151048 - per planning point 2 above. ref SDS 0 KO5P
151049 -
151050 -    It is convenient to be able to remove an anchor with minimal
151051 -    effort, but making it very easy also increases the risk of
151052 -    accidental, unintended removal.  So, we could be editing something
151053 -    or other, and justify the para, then do it again just for the heck
151054 -    of it, inadverantly, and boom, an anchor is removed, fast and easy.
151055 -    But it is a mistake.  There may be 10 or 100s of links to that
151056 -    anchor string.  How do we put it back to correct a mistake?
151058 -     ..
151059 -    We are reading the anchor, with macro 1361, per below, to determine
151060 -    whether one exists that needs to be removed using code, explained
151061 -    below. ref SDS 0 NA5J  Added code to save the anchor string,
151062 -    ref SDS 0 9V5J, and created new function, F1 F1 Alt F3 to restore
151063 -    an anchor removed by accident. ref SDS 0 T69L
151065 -     ..
151066 -    After completing the code and gaining experience creating records
151067 -    using the new code to remove an anchor by clicking Alt F9 within
151068 -    one second after entering anchor, per above, ref SDS 0 KO5P, the
151069 -    risk of accidental removal is too high to justify keeping this
151070 -    feature, even with recovery tools to use F1 F1 Alt F3.  As a
151071 -    result, removed this code, ref SDS 0 8U45, including the recovery
151072 -    tools, also, per below. ref SDS 0 T69L and ref SDS 0 4A4N
151073 -
151074 -
151075 -
151076 -
151077 -
151078 -
151079 -
1511 -

SUBJECTS
Justify Add Anchors on Paragraphs if Missing avoid in Editor Anchors,
Addressability Copy Location on Internet for Linking

1604 -
160501 -  ..
160502 - Anchors Added with Justify for SDS Records and Editor Documents
160503 - 000002  Macro 49 Modify to Add Anchors to Paragraphs
160504 -
160505 - Follow up ref SDS 27 T74N, ref SDS 23 KV9O.
160506 -
160507 - Today, revised the code as follows...
160508 -
160509 - Line 160, ref OF 3 2149, -label justfYk in 000002 about 60 lines
160510 - below.
160512 -     ..
160513 -    setcnt 139 87
160514 -    -if @47 != 3 -if @47 != 50 macro 541 -if @139 = 0 -exit
160515 -
160516 -       Set a flag for macro 541 to exit after setting the margins, and
160517 -       not do a bunch of other stuff for other things we don't need.
160519 -     ..
160520 -    setcnt 30 @4
160521 -    setcnt 31 @5
160522 -
160523 -       Save left and right margins.
160525 -  ..
160526 - Line 170, ref OF 3 GQ8M, -label justfYk under macro 49 in 000002 about
160527 - 70 lines below.
160529 -     ..
160530 -    immed /
160531 -    loc_cur 3 0
160532 -
160533 -       Move current line to top of screen, and put the cursor on that
160534 -       location to do the work; this is the left margin of the text,
160535 -       and we are going to find the top of the para.
160537 -     ..
160538 -      datecnt 10 0
160540 -        ..
160541 -       Capture date that includes hours, minutes and seconds, so we can
160542 -       calculate when Alt F9 calls macro 49 to justify the para twice
160543 -       within one second and cursor is on the same line, which
160544 -       identifies when the user wants to remove an anchor, per code
160545 -       below. ref SDS 0 HV8J
160547 -        ..
160548 -       Each pass the values are saved to compare on next pass for
160549 -       calculating one second param. ref OF 3 QN6G
160550 -
160551 -           Wound up unplugging this feature and all collateral code,
160552 -           per risk management explained above. ref SDS 0 F46G
160553 -
160555 -  ..
160556 - Line 190, ref OF 3 4212, -label sav3pos under macro 49 in 000002
160557 -
160558 -    This is a simple algorithm to keep the speed up and the code down.
160559 -    The objective is to allow justifying para when the thing hits a
160560 -    heading underline.  Dash and double dash ("-" and "=") cannot be
160561 -    used for underlining, because the char values are between 33 and
160562 -    126.  We can use the graphic char for this which is what I want to
160563 -    do.
160565 -       ..
160566 -      chrcnt 2 0
160567 -    savescr 7
160569 -     ..
160570 -    setcnt 0 @1
160572 -        ..
160573 -       Save the first char on prior pass which will be the top of para
160574 -       on the last pass, so we can avoid putting an anchor on a
160575 -       continuation string per above. ref SDS 0 H18M
160577 -     ..
160578 -    macro 1361
160579 -    setcnt 152 @2
160580 -    setcnt 153 @3
160581 -    setcnt 154 @4
160582 -    setcnt 155 @5
160583 -    getscr 7
160585 -        ..
160586 -       Save location with to come back after running macro 1361 to see
160587 -       if this is an anchor.
160588 -
160589 -          Wound up eliminating the code that saves the anchor string,
160590 -          per risk management above. ref SDS 0 F46G
160592 -        ..
160593 -       Change code on 021230 that identified when an anchor is already
160594 -       assigned based on reading the lt char. ref SDS 27 WB7O  Since we
160595 -       are now applying this to editor files, there are often many lt
160596 -       char for other HTML, so we need to use macro 1361 to identify an
160597 -       anchor.  At same time save anchor string in case it is removed
160598 -       by accident, per above. ref SDS 0 OF7J
160600 -     ..
160601 -    -if @6 = 1 -goto sdsJu
160602 -
160603 -       If we have an anchor, go process code to see if it should be
160604 -       justified into the text, or should be removed. ref SDS 0 QQ6K
160606 -     ..
160607 -    -if @1 = 32 -goto anawj
160608 -
160609 -       No anchor; when a space char is encountered this is the top of
160610 -       the para, so go add an anchor and then justify. ref SDS 0 DO8I
160612 -     ..
160613 -    -if @1 > 173 -goto dnra
160614 -
160615 -       If there is a line draw char then it is a heading, so go scroll
160616 -       up one line to the actual text, and justify the stuff.
160617 -       ref SDS 0 0V34
160618 -
160620 -     ..
160621 -    down
160622 -    -goto sav3pos
160624 -         ..
160625 -        There is no anchor and no space so keep scrolling the file down
160626 -        and go do the check again to find the top.
160627 -
160629 -  ..
160630 - Line 230, ref OF 3 BO5F, -label sdsJu in 0000002 under macro 49
160631 -
160632 -    -label sdsJu
160633 -    setcur 2 0
160634 -    eol
160635 -    setcur 7 0
160636 -    of 0
160637 -    getscr 7
160638 -    subcnt 7 @2
160640 -        ..
160641 -       Code can only get here, if an anchor is already entered; this
160642 -       step determines if the code is on a line by itself, because that
160643 -       governs whether we will scroll up and leave the anchor above the
160644 -       para, or start justify on the current line to incorporate the
160645 -       anchor into the text
160646 -
160648 -  ..
160649 - Line 250, ref OF 3 GV6H, -label sdsJu in 000002 about 30 lines below
160650 -
160651 -    setcnt 16 @15
160652 -
160653 -       Save seconds value from datecnt command above, ref SDS 0 8U45,
160654 -       so we can manipulate it and compare with actual value.
160656 -     ..
160657 -    -if @14 > @144 addcnt 16 60
160658 -    subcnt 16 @145
160659 -
160660 -       If the current day value is larger than the day value on the
160661 -       prior pass, then increment seconds by 60 to reflect that a cycle
160662 -       has passed between the first use of Alt F9 and the 2nd use.
160664 -     ..
160665 -    -if @24 != @35 -goto ctjawl
160666 -
160667 -       Line number is captured in counter 24 as the first step under
160668 -       macro 49, and is saved at the end of the process in counter 35,
160669 -       per below, ref SDS 0 J47L, so that the current line can be
160670 -       compared with the prior pass.
160672 -        ..
160673 -       If lines are not the same, so do not remove anchor; go check to
160674 -       see if anchor should be justified into the text. ref SDS 0 A56M
160675 -
160677 -     ..
160678 -    -if @12 = @142 -if @13 = @143 -if @14 = @144 -goto mbaaa
160679 -
160680 -       Getting here establishes that the User pressed Alt F9 twice on
160681 -       the same line, and that there is already an anchor at the top of
160682 -       the para, so do math to determine whether to remove the anchor
160683 -       if Alt F9 was pressed twice within one second.
160685 -        ..
160686 -       If the day, hour and minute params are the same, which are saved
160687 -       below, ref SDS 0 J47L, then maybe the seconds are within one
160688 -       second, so go check the seconds param.
160689 -
160691 -  ..
160692 - Line 270, ref OF 3 A58M, -label ctjawl in 000002
160693 -
160694 -    linecnt 36 0
160696 -         ..
160697 -        This means line numbers do not match, per above, ref SDS 0
160698 -        NX4V, and/or the day, hour and minute time params do not match,
160699 -        so get number of line where the anchor is positioned to
160700 -        determine if it is the same line where Alt F9 was executed, and
160701 -        if so, it means the user wants to incorporate the anchor into
160702 -        the text, rather than place it above the text.
160703 -
160704 -    -if @36 = @24 -goto nDMSok
160706 -         ..
160707 -        Line numbers are the same, so go justify the text and do not
160708 -        scroll up, so that the anchor is incorporated into the text.
160710 -     ..
160711 -    -goto dnra
160712 -
160713 -        Line numbers do not match, so go scroll up and leave the anchor
160714 -        above the text.
160715 -
160717 -  ..
160718 - Line 290, ref OF 3 NH9O, -label mbaaa in 000002
160719 -
160720 -    -if @16 > 1 -goto ctjawl
160721 -
160722 -        Above, we save the seconds param in counter 16, and did some
160723 -        math.  If more than one second has passed since the last time
160724 -        Alt F9 was called, then go justify the text and do not remove
160725 -        the anchor. ref SDS 0 A56M
160727 -            ..
160728 -           Note: all this code to track time of code and so forth, to
160729 -           remove anchors on the 2nd pass, has been removed because
160730 -           experience shows that removing anchors automatically is too
160731 -           risky, per above. ref SDS 0 F46G
160733 -      ..
160734 -    -if @7 < 6 immed d
160735 -    -if @7 > 5 macro 79
160736 -
160737 -        This means the User has pressed Alt F9 to call macro 49 twice
160738 -        within one second and with the cursor on the same line, so it
160739 -        is a call to remove the anchor.
160741 -         ..
160742 -        Counter 7 establishes if the cursor is on a line by itself
160743 -        above the text, or is within the text, per above. ref SDS 0
160744 -        QQ6K  If the anchor is above the text, then immed d need merely
160745 -        delete the line, which makes the next line the current line;
160746 -        and if the anchor is within the text, macro 79 removes the
160747 -        string, keeping the same line current ready to justify.
160749 -     ..
160750 -    -goto nDMSok
160751 -
160752 -        Go do the justify.
160753 -
160755 -  ..
160756 - Line 320, ref OF 3 DO3I, -label anawj in 000002 under macro 49
160758 -  ..
160759 - When the code reaches this location it has decided to add an anchor.
160760 -
160761 -    -if @0 = 46 -goto dnra
160762 -
160763 -       For editor and SDS records, if there is a continuation of text
160764 -       idenfification at the beginning of a para, ...., signified by
160765 -       the first char being a dot, then do not add an anchor, per
160766 -       planning. ref SDS 0 H18M
160767 -
160768 -    -if @47 = 1 -if @30 = 1 -goto 047o1
160770 -        ..
160771 -       For the editor, if left margin is column 1, then the para is not
160772 -       indented, so go add the anchor normally, after 1st checking to
160773 -       see if there is a "Dear" salutation on the line above.
160774 -       ref SDS 0 8V4G
160775 -
160776 -    -if @47 = 2 -if @30 = 10 -goto sdtop
160778 -        ..
160779 -       For SDS, if left margin is column 10, then go check to avoid
160780 -       adding an anchor below a "Follow up...."
160781 -
160783 -  ..
160784 - Anchors Added Where Needed and Avoided Where Not Needed
160785 -
160786 - Line 330, ref OF 3 OY4K, -label anawj in 000002 about 40 lines below.
160787 -
160788 - The code has now recognized that text to be justified is indented, and
160789 - so is an outline structure of some kind.
160791 -  ..
160792 - Evaluate outine structure to avoid adding an anchor to the first item
160793 - in a list, and if there is no ordering element, then the code checks
160794 - lines above to see if there is an anchor within a few lines above that
160795 - has an anchor and is at a higher outline level that already
160796 - accomplishes the purpose of links to provide context.
160798 -     ..
160799 -    z 1 @30
160800 -    loc_cur 0 1
160801 -    rel_cur 1 0
160802 -
160803 -       Zone from column 1 to the cursor position captured by macro 541
160804 -       that sets the left and right margins. ref OF 3 2149  Move the
160805 -       cursor to column 1 on the line below to look for outline
160806 -       structure, since it will always be below the cursor line from
160807 -       processing above.
160809 -     ..
160810 -    setcnt 0 0
160811 -    fr / 1. /
160812 -    -if @0 = 0 -goto oao1st
160813 -    fr / A. /
160814 -    -if @0 = 1 -goto oao1st
160815 -    fr / a. /
160816 -    -if @0 = 2 -goto oao1st
160817 -    fr / 1) /
160818 -    -if @0 = 3 -goto oao1st
160819 -    fr / A) /
160820 -    -if @0 = 4 -goto oao1st
160821 -    fr / a) /
160822 -    -label oao1st
160823 -    getscr 7
160824 -    -if @0 < 6 -goto dnra
160826 -        ..
160827 -       Use find right to figure out if this is a body of text that is
160828 -       the first element of an ordered list, and, if so, then do not
160829 -       add an anchor, because there should be an anchor at a higher
160830 -       outline level above this first element that provides access in
160831 -       context, per planning above. ref SDS 0 556H  goto dnra moves to
160832 -       code that does an up and then justifies the text in the para.
160833 -       ref SDS 0 0V34
160834 -
160836 -  ..
160837 - Line 420, ref OF 3 PSYS, -label oao1st in 000002 about 20 lines below
160838 -
160839 -    Avoid adding an anchor to a paragraph below an outine structure
160840 -    that is a one line heading like this....
160841 -
160842 -                       3.  Analysis
160843 -
160844 -                           In 400 BC Theucydes is attributed with
160845 -                           adapting literacy to thinking, rather than
160846 -                           merely transcribing oratory.
160847 -
160848 -    ...because in this case, "Analysis" will have an anchor, and if it
160849 -    is the first element in the list, then there will be an anchor
160850 -    above it.
160852 -     ..
160853 -    down
160854 -    rel_cur 0 -3
160855 -    chrcnt 1 0
160856 -    up
160857 -    rel_cur 0 3
160858 -    -if @1 = 32 -goto npos
160860 -        ..
160861 -       The cursor is on the line above the text ready to enter an
160862 -       anchor.  Scroll down to the line above and see if it is an
160863 -       outline structure.  After getting data to identify an outline
160864 -       structure, put the cursor back, and if it is not an outline
160865 -       structure then proceed with normal processing. ref SDS 0 GG3J
160867 -     ..
160868 -    rel_cur 1 -3
160869 -    chrcnt 1 0
160870 -    rel_cur -1 3
160871 -    -if @1 = 32 -goto dnra
160872 -
160873 -       This means the line above is a one line outline structure, so
160874 -       see if the paragraph being processed for an anchor is also an
160875 -       outline structure.  If not, then do not put an anchor on this
160876 -       paragraph because the code has put an anchor on the outline
160877 -       element above that provides context for this paragraph.
160878 -
160880 -     ..
160881 -    -label npos
160882 -    -if @47 = 2 -goto sdtop
160883 -
160884 -        SDS records can procede to special tests for adding anchors.
160885 -        ref SDS 0 244M
160886 -
160888 -  ..
160889 - Anchors in Editor Files for Outline Structures Inline
160890 -
160891 - Line 370, ref OF 3 0Q7L, -label oao1st in 000002
160892 -
160893 -              *** We are now only working on an editor file ***
160894 -
160895 -       This next code puts anchors for outline levels inline to support
160896 -       HTML, which is not an issue in SDS records.
160898 -     ..
160899 -    loc_cur 0 1
160900 -    rel_cur 1 0
160901 -    setcnt 0 0
160902 -    fr /./
160903 -    -if @0 = 0 -goto 471a
160904 -    setcnt 0 0
160905 -    fr /•/
160907 -        ..
160908 -       Use similar procedure for evaluating first element of an outline
160909 -       level; except, now generalize the investigation to look for
160910 -       outline identification, and if found, go place the anchor
160911 -       inline, rather than above the text, which has been adopted as
160912 -       standard practice.
160914 -  ..
160915 - Line 380, ref OF 3 JZ9F, -label 471a in 000002
160916 -
160917 -    getscr 7
160918 -    -if @0 > 0 -goto 0471r
160919 -
160920 -       After looking for outline structure, restore the cursor to the
160921 -       location for entering an anchor, and if no outline structure was
160922 -       found, then go enter an anchor above the text. ref SDS 0 QV4K
160924 -     ..
160925 -    up
160926 -    macro 34
160927 -    macro 987
160928 -
160929 -       Outline structure was found, so scroll up to split the text
160930 -       within margins and create the anchor.
160932 -     ..
160933 -    rel_cur 0 -5
160934 -    -goto nDMSok
160935 -
160936 -       Move the cursor back to the left margin and go do normal
160937 -       justify.
160938 -
160940 -  ..
160941 - Dear Avoid Anchor 1st Para in Correspondence Editor Files
160942 -
160943 - Line 420, ref OF 3 8S4I, -label 047o1
160944 -
160945 -    down
160946 -    z 1 5
160947 -    setcnt 0 0
160948 -    fr /Dear/
160949 -    loc_cur 0 1
160950 -    up
160951 -    -if @0 = 0 -goto dnra
160953 -        ..
160954 -       In an editor file, since the cursor is on the line above para
160955 -       ready to enter an anchor, scroll down one more line to see if
160956 -       there is a "Dear" salutation line, then scroll back up to
160957 -       position for entering an anchor.  If there is a "Dear" on the
160958 -       line above, then avoid entering an anchor on the para, since
160959 -       the "Subject" line at this location with an anchor that gives
160960 -       the first para of a letter context.
160961 -
160963 -  ..
160964 - Anchor Added to Paragraph Structures in SDS Records
160965 -
160966 - Line 450, ref OF 3 225M, -label sdtop in 000002
160967 -
160968 -    macro 18
160969 -    down
160970 -    loc_cur 0 1
160971 -    z 1 40
160972 -    errorcnt 0 0
160973 -    fr /Follow up /
160974 -    macro 19
160975 -    -if @0 = 0 -goto dnra
160977 -        ..
160978 -       Save location for entering an anchor at top of para, and
160979 -       investigate line above to see if is a Headline Follow up line,
160980 -       and if so do not need an anchor, so go scroll up and justify the
160981 -       text. ref SDS 0 0V34
160982 -
160984 -  ..
160985 - SDS Indented Text Sublevels Avoid Anchors to Provide Context
160986 -
160987 - Line 430, ref OF 3 O73M, -label lpfaai in 000002
160988 -
160989 -    setcnt 37 0
160990 -
160991 -        Set up to do a loop.
160993 -     ..
160994 -    -label lpfaai
160995 -    loc_cur 0 1
160996 -    setcnt 0 0
160997 -    down
160998 -    addcnt 37 1
160999 -    fr /</
161001 -         ..
161002 -        Look for anchor char.
161004 -     ..
161005 -    -if @37 > 6 -goto naait
161006 -
161007 -        If not found within 6 lines decide to go ahead and enter an
161008 -        anchor above target para. ref SDS 0 0U76
161010 -     ..
161011 -    -if @0 > 0 -goto lpfaai
161012 -
161013 -        Do a loop to scroll the record down no more than six (6) lines
161014 -        looking for an anchor above a text that is at a higher outline
161015 -        level than the current para.
161017 -     ..
161018 -    rel_cur 0 -1
161019 -    macro 1361
161020 -
161021 -       Test for an anchor.
161023 -     ..
161024 -    -if @6 = 0 -goto lpfaai
161025 -
161026 -       If not an anchor, continue loop. ref SDS 0 AZ7K
161028 -    ..
161029 -   setcur 3 0
161030 -   subcnt 3 5
161031 -
161032 -       If an anchor was found, get the column position to cmpare with
161033 -       the left margin of the target para.  Subtract 5 because macro
161034 -       1361 moves the cursor right 6 positions, and setcur value is one
161035 -       less than actual column.
161036 -
161037 -
161039 -  ..
161040 - Line 450, ref OF 3 537F, -label naait in 000002
161041 -
161042 -    macro 19
161043 -    -if @2 < @30 -if @0 = 0 -goto dnra
161044 -
161045 -        Restore cursor to initial position for entering an anchor in
161046 -        target para, and if left margin of text where anchor was found
161047 -        is less than left margin of target para, then don't enter an
161048 -        anchor, per planning above, ref SDS 0 EN3N, go scroll the file
161049 -        up and justify the para.
161050 -
161052 -  ..
161053 - Anchor Added Above Text in SDS and in Editor
161054 -
161055 - Line 480, ref OF 3 0782, -label 0471r in 000002
161056 -
161057 -    immed r
161058 -    up
161059 -    addcnt 170 1
161060 -    addcnt 24 1
161062 -        ..
161063 -       The line is blank so replicate it to maintain a blank line, and
161064 -       scroll up.  Increament line counter for restoring the cursor to
161065 -       original position, and increment counter for the line where
161066 -       anchor is entered.
161068 -     ..
161069 -    macro 987
161070 -    rel_cur 0 -5
161071 -
161072 -       Create the anchor; put cursor back.
161074 -     ..
161075 -    -label dnra
161076 -    up
161077 -    -goto nDMSok
161078 -
161079 -       Scroll the file up to the text, and go do justify.
161080 -
161082 -  ..
161083 - Line 530, ref OF 3 QN6G, -label nDMSok in 000002
161084 -
161085 -    setcnt 35 @24
161086 -
161087 -       Save line number to check next pass for testing to remove the
161088 -       anchor.
161090 -     ..
161091 -    setcnt 142 @12
161092 -    setcnt 143 @13
161093 -    setcnt 144 @14
161094 -    setcnt 145 @15
161096 -        ..
161097 -       Save day, hour, minute and seconds to check against next pass,
161098 -       per above. ref SDS 0 GV6H
161099 -
161100 -          Wound up eliminating code that saves and replaces the anchor
161101 -          string, per risk management above. ref SDS 0 F46G
161102 -
161103 -
161104 -
161105 -
1612 -

SUBJECTS
Anchor Replace Accidentally Removed by Alt F9 Call Macro 980 Using F1
Anchor Restore Anchor Accidentally Deleted by Alt F9 Using Macro 49 C

1804 -
180501 -  ..
180502 - Restore Anchor Removed by Alt F9 Macro 49
180503 - 000006  Macro 980 Modify Macro 987 to Restore Removed Anchor
180504 -
180505 - We need a new function to supplement F1 F1 F3, so will make F1 F1 Alt
180506 - F3 that runs macro 987, per below, ref SDS 0 4A4N, to create an anchor
180507 - using values stored from removing an anchor, per above. ref SDS 0 OF8K
180508 -
180509 -          Wound up eliminating the code that saves the anchor string,
180510 -          per risk management above. ref SDS 0 F46G
180512 -  ..
180513 - Line 2030, ref OF 4 FV4I, -entry 980 in 000006
180514 -
180515 -    setcnt 150 6329
180516 -
180517 -       Create flag for macro 987 to restore prior macro, rather than
180518 -       create new random anchor.
180520 -           ..
180521 -          Wound up eliminating code that saves and replaces the anchor
180522 -          string, per risk management above. ref SDS 0 F46G
180523 -
180525 -  ..
180526 - Line 2090, ref OF 4 WW4I, -entry 987 in 000002 about 60 lines below
180527 -
180528 -    ic 60
180529 -
180530 -       Enter normal < symbol for anchor.
180531 -
180532 -    -if @150 != 6329 -goto nratt
180534 -        ..
180535 -       If this is not a restore anchor op, then go nor normal op.
180536 -
180537 -          Wound up eliminating code that saves and replaces the anchor
180538 -          string, per risk management above. ref SDS 0 F46G
180540 -     ..
180541 -    ic @152
180542 -    ic @153
180543 -    ic @154
180544 -    ic @155
180545 -
180546 -       Enter the anchor string from values stored under macro 49, per
180547 -       above. ref SDS 0 9V5J
180549 -           ..
180550 -          Wound up eliminating the code that saves the anchor string,
180551 -          per risk management above. ref SDS 0 F46G
180553 -     ..
180554 -    setcnt 150 0
180555 -    join
180556 -    -exit
180557 -
180558 -       Reset flag for restore, join the text, and exit.
180559 -
180560 -          Wound up eliminating code that saves and replaces the anchor
180561 -          string, per risk management above. ref SDS 0 F46G
180562 -
180563 -
180564 -
180565 -
180566 -
1806 -

SUBJECTS
A03 Anchor Replace Deleted Anchor by Mistake Call Macro 980

1903 -
190401 -  ..
190402 - 000008  Macro 155 Level 3 Profile Create F1 F1 Alt F3 to Macro 980
190403 -
190404 - Line 670, ref OF 5 OE8G, -entry 156 in 000008
190405 -
190406 -    pa3 macro 980
190408 -        ..
190409 -       Assign new macro 980 to F1 F1 Alt F3 to restore an anchor string
190410 -       stored in counters, per above, ref SDS 0 U45H, in the event of
190411 -       inadvertant removal under risk management scenario developed,
190412 -       also, above. ref SDS 0 OF7J
190413 -
190414 -          Wound up eliminating code that saves and replaces the anchor
190415 -          string, per risk management above. ref SDS 0 F46G
190416 -
190417 -
190418 -
190419 -
190420 -
190421 -
190422 -
190423 -
190424 -
190425 -
190426 -
190427 -
190428 -
190429 -
1905 -