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: September 2, 2003 03:51 PM Tuesday; Rod Welch

Start command improves memory for context management using Subject Index.

1...Summary/Objective
2...Memory Management Improved by New Platform Using Windows Start Command
....1...Fast and easy to use, hard to cause a failure, with minimal
....2...Procedures remain the same, so there is no learning curve --
........Improvements in new version...
........Problems...
....3...Memory improved management makes SDS more reliable.
....Pending Tasks to Support Full Range of SDS Features
3...The new scheme is to...
....1...Open Subject index at primary level from menu.
....2...Open Subject Index from Control Field to Find an Account
4...Start Limits Simultaneous Operations in Multiple Sessions
5...Solutions All Require Trade-offs of Utility for Memory
6...Extra Step to Press Enter or Double Click Least Time Consuming
7...000003 Subject Menu Call Start Command with 03501
8...000008 Macro 136 Enter Call to Look Up Subject for Control Field
9...Control Field Mileage Time Employee Function Subjects
10...Primary Subject or Function Index Click on Line above Control Field
11...Milg Emply Function Subject Open Primary Subject or Function Index
12...000008 Subject Descriptions Conform to Subjects in Control Field
13...04405 Subject Descriptions Conform to Subjects in Control Field
14...Subject Descriptions Conform to Subjects in Control Field
....ESC Quit Op from Subject Index
....Quit ESC Op from Subject Index
15...035012 Subject Index Launch Windows Start, Replace 03502 and 04402
16...03502 Replaced by 035021 to Run Windows Start Command Eliminate 04402
17...04402 Replaced by 035021 to Run Windows Start Command Eliminate 03502
....Start Launched with DOSE Call to Batch File
....SDS Record Swap Originating File to Adopt Changes in Start Session
....Transparent Operations Retain Original Utility of Subject Index
......Transfer File Return from Subject Index to SDS Record
......Subject Entered to Control Field Remove Default Subject Code Line
......Default Subject Code Remove When Subject Entered to Control Field
......Look for Subject Account Already Entered in Control Field
......Subject Descriptions Entered; Remove Line for Default Subject
......Code Look Up in SDS Record Failed Return to SI for Message
......Error Message Code Look Up in SDS Record Failed Return to SI
......Message Error Code Look Up in SDS Record Failed Return to SI
......End Subject Operations in 035012
18...03501.Bat Subject Index Open with Windows Start Command
19...03501 Subject Index Operation
....Originating File Spec and Positioning for Ctrl F6
....User ID Read and Check for Function Index Flag F in Col 50
....Transfer File Flags Determine Type of Processing and Errors
....Error Messages Transfer File Flags Determine Type of Processing
....Flags in Transfer File Determine Type of Processing
....Account Code Read Flags to Determine Type of Processing
....Code Capture for Transfer to 03501 Template to Process Look Up Op
....Look Up Code Op Capture for Transfer to 03501 Template to Process
....Function Index Opening Primary Flag 244 998
....Enter User ID in 03501 Evaluate Op Opening SI or Looking Up Code
....Get Command Read Subject Index File into Sndx
....Account Look Up Enables Context When Navigating Organic Structure
....Context Navigating Organic Structure for Account Code Look Up
....Improve Navigation by Creating Path to Look Up a Subject Code
....Navigation Improved by Creating Path to Look Up a Subject Code
....Account Code Look Up Steps thru Indexes to Create Navigation Path
....Switch to Cycle through Looking Up Subject Index Code
....Locate Command to Search for Code in an Index File
....Find Account File Level in Subject Index Specified in SDS Record
....Look for Actual Account Code in Every Index Level
....Subroutine Restore Account Line Returning from Prior Level F1 F3
....Switch Scroll Through Sub-indexes, Chained Indexes
....Chained and Master Indexes Need Special Treatment
....Account Code Found Return Control to User
....Error Message Code Look Up from SI to SDS Record Failed
....Profile Error Messages Code Look Up Complete
....Look Up Code Listed in SI Error Message Failed to Find in SDS Rec
....Ctrl F6 Scroll Edit Chain Open Originating SDS Record for Context
....Context Ctrl F6 Scroll Edit Chain Open Originating SDS Record
....F2 Save Needs to Return for Task Creating a New Subject Index Level
....F1 F3 Prior Level Index
.......Navigate Back to Exact Account Code Line in Sorted List
.......Sorted List Navigate Back to Exact Account Code Line
....F1 F2 Open Next Subject Index Level
......Instructions and Functions for Making New Subject Index Level
......New Subject Index Instruction Message and Function Assignments
......Message Instruction and Functions for Creating New Subject Index
......Make New Subject Index Level
......New Subject Index Build Organic Structure
....Find Subject Code in SDS Record that is Listed in Subject Index
....Cursor Positioned on Date Field 1st Step New Account ID
....Enter for Subject Index Operations
....Scope Enter Mouse 5 Tasks in Subject Index
....Enter, Mouse Scope 5 Tasks in Subject Index
....Mouse and Enter Scope 5 Tasks in Subject Index
....ESC for Subject Index Operations
....ESC $ Signals No Task to Perform Returning from 2nd Session
....Find Subject Account in SDS Record Listed in Subject Index
20...000001 Enter for Subject Index
21...Disconnect Transfer Subject from Master to Standard Index
22...Master Transfer Subject to Standard Index Disconnect
23...Disconnect Access Subject Index Customize to User Requirements
24...Access Subject Index Customize to User Requirements Disconnected


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

CONTACTS 

SUBJECTS
Experimenting with Start for Subject Index Work Did Not Get Very Far
Start Command Windows Improve Memory
Control Field Windows Start Command Save Memory for Subject - 03502
Subjects Look Up Description in Doc Log Subject Field, 03502, 000904
Subject Management 030501 and 030502
Windows Start Command Applied to Context Management
Start Command Apply to Context Management for Opening Subject Index
Clutter Multiple Windows Requires Careful Planning to Avoid Creating
04702 SDS Launch Apply Windows Start Command
Segment Index into Smaller Indexes that Fit SDS Memory Limitations

1612 -
1612 -    ..
1613 - Summary/Objective
1614 -
161401 - Follow up ref SDS 4 0000.
161402 -
161403 - Over the next several weeks, developed a platform and procedures for
161404 - using the Start command in the Microsoft Windows 2000, XP and 98
161405 - programs to support virutal memory capability for SDS by opening a 2nd
161406 - memory segment to perform context management with the Subject Index.
161407 - ref SDS 0 EO4G  The primary goal to improve memory management is
161408 - accomplished shown by preliminary testing. ref SDS 0 JM5S  Improvement
161409 - is largely transparent to the User, with minimal loss of utility.
161410 - ref SDS 0 OJ5N  Some new capability has been added to make existing
161411 - features more robust for navigating organic structure. ref SDS 0 JM4O
161412 - Several features were disconnected that do not seem useful at this
161413 - time. ref SDS 0 1X8K More experience is needed to assess impact on
161414 - productivity.  The next step is to continue building out the new
161415 - platform to support the full range of SDS capabilities available under
161416 - the original scheme. ref SDS 0 PPWR
161417 -
161418 -     [On 030914 report progress. ref SDS 10 0001
161420 -      ..
161421 -     [On 030920 developed a form of using Ctrl F6 that enables
161422 -     scrolling to the original SDS record, which is the most important
161423 -     issue using multiple sessions. ref SDS 11 11AE
161425 -      ..
161426 -     [On 030926 completed initial phase of improvements using Start for
161427 -     Subject Index, and submitted updated software to Gary at Aerospace company
161428 -     for testing. ref SDS 12 0001
161430 -      ..
161431 -     [On 040305 continued build out applying virtual memory developed
161432 -     today to the function that conforms descriptions for Control Field
161433 -     subjects to accounts in the indexing system for organic structure
161434 -     ref SDS 17 IR6J
161436 -      ..
161437 -     [On 060305 added flag for secondary memory situational awareness
161438 -     SDS records annotate Schedule/Diary 1a. ref SDS 20 BQ5H
161439 -
161440 -
161441 -
161442 -
161443 -
161444 -
161446 -  ..
1615 -
1616 -
1617 - Evaluation
1618 -
161801 - Memory Management Improved by New Platform Using Windows Start Command
161802 -
161803 - Follow up ref SDS 8 VO9K.
161804 -
161805 - On 030920 completed first part of converting SDS to use Start for
161806 - opening a second Windows session of DOS that provides another 640K of
161807 - memory that can directly interact and support the primary session.
161809 -  ..
161810 - Using the three (3) criteria developed to evaluate improvements on
161811 - 030810, ref SDS 8 VO9K, shows that the new system is...
161812 -
161813 -    1.  Fast and easy to use, hard to cause a failure, with minimal
161814 -        loss of performance. ref SDS 0 EO4G
161815 -
161816 -        After making all of the changes reported today that improve
161817 -        memory management, ref SDS 0 TJ4F, there is no noticable loss
161818 -        in speed and responsiveness.  The system should be less prone
161819 -        to failure and so more reliable now because of added memory for
161820 -        performing continuing tasks, explainded below. ref SDS 0 JM5S
161821 -
161823 -         ..
161824 -    2.  Procedures remain the same, so there is no learning curve --
161825 -        tasks work faster and better using existing skills.
161827 -         ..
161828 -        Original utility is provided by not using a 2nd window that was
161829 -        tried initially to access the originating SDS record needed for
161830 -        understanding context. ref SDS 0 PRVU  This method turned out
161831 -        to cause complexity, confusion and error, and so was abandoned
161832 -        after developing a way to use Ctrl F6 for scrolling between
161833 -        Subject Index operations and the originating SDS record.
161834 -        ref SDS 0 DV5N
161835 -
161836 -            [On 030920 developed a form of using Ctrl F6 that enables
161837 -            scrolling to the original SDS record in the 1st session to
161838 -            provide context while using the Subject Index in the 2nd
161839 -            session. ref SDS 11 11AE
161841 -         ..
161842 -        Improvements in new version...
161844 -         ..
161845 -        Besides improving memory, discussed in para 3, several other
161846 -        improvements were made.  All are transparent by leveraging
161847 -        existing skills....
161848 -
161849 -        a.  Navigate backward and forward when entering the Subject
161850 -            Index from a Control Field.  Formerly, it was only possible
161851 -            to move forward or go back and start at the Primary index
161852 -            level, skipping all the intermediate levels.  Now full
161853 -            navigation is supported. ref SDS 0 S430  This new feature
161854 -            complements current ability to access the organic structure
161855 -            at any level using Control Fields and Subject report
161856 -            mechanisms.
161858 -             ..
161859 -        b.  Navigate backward to selected account in sorted index,
161860 -            which was not possible in prior configuration.  This
161861 -            improves memory management by enabling tasks performed on a
161862 -            sorted listing to occur in a much smaller segmented list
161863 -            rather than in a large file assembed by the sort operation.
161864 -            ref SDS 0 C97F
161866 -             ..
161867 -        c.  Save index file when new subject is created and then is
161868 -            opened as a next level.  This makes creating a new index
161869 -            less complex, and so saves time by eliminating error that
161870 -            requires rework to fix mistakes. ref SDS 0 5Z5M
161872 -             ..
161873 -        d.  Making a new subject index level is easier and instructions
161874 -            are less confusing, reducing mistakes and frustrations.
161875 -            ref SDS 0 634K
161877 -         ..
161878 -        Problems...
161880 -             ..
161881 -        a.  Ctrl F6 was initially a major problem that reduced utility;
161882 -            it was later configured to scroll the edit chain for
161883 -            context and for using cut and paste to transfer language
161884 -            from the originating SDS record into a subject index file
161885 -            for creating new descriptions. As a result this is no
161886 -            longer a pending task. ref SDS 0 7W5J
161888 -             ..
161889 -        b.  Mouse pointer tends on many occassions to move the cursor
161890 -            to the position of the pointer in the originating session
161891 -            when a double click was called, rather than remain where
161892 -            the code positions the cursor ready to begin work in the
161893 -            new session.  Not sure if this is a mechanical malfunction
161894 -            with mouse, or is inherent with Windows.  The problem is
161895 -            not persistant, and is mostly a nusiance.
161896 -
161898 -         ..
161899 -    3.  Memory improved management makes SDS more reliable.
161901 -         ..
161902 -        Goal is significantly accomplished to reduce the frequency of
161903 -        program failures when system memory has been exceeded.  When a
161904 -        record like this one with 2000 plus lines opens the Subject
161905 -        Index to construct organic structure for organizing and
161906 -        applying context, the program now keeps running, rather than
161907 -        fail because memory limits were exceeded.  On 030810 a new
161908 -        system was developed to segment large indexes into smaller
161909 -        files that require less computer memory, ref SDS 8 QG7I; this
161910 -        reduced the problem of running out of memory. ref SDS 8 VP4O
161911 -        The new feature today running context management in a separate
161912 -        session complements the prior work and solves the gap in the
161913 -        prior solution by handling sorted indexes that assemble smaller
161914 -        chained segments into large indexes.
161916 -         ..
161917 -        The new design consolidates several separate macro files into
161918 -        fewer and smaller macros. ref SDS 0 P15M  Fewer and smaller
161919 -        files opened in memory spaces that are refreshed each time the
161920 -        Subject Index is used, reduces the rate of memory becoming
161921 -        fragmented, and so signficantly reduces frequency of failure
161922 -        when using SDS on large records and files.
161924 -         ..
161925 -        In simplest terms the new system in some cases provides 200K
161926 -        more RAM and in SDS that is very significant.  The record on
161927 -        010725 is a good example. ref SDS 3 0001  Previously, it was
161928 -        too big to perform even routine contact management functions.
161929 -        Now everything is supported, including working with sorted
161930 -        lists, which formerly caused almost any SDS session to fail
161931 -        when working with some of the large indexes.
161932 -
161934 -     ..
161935 -    Pending Tasks to Support Full Range of SDS Features
161936 -
161937 -
161938 -    1.  Document and streamline code.
161939 -
161940 -        This is mostly the code in 03501.  We need to name systems and
161941 -        explain relationships between different code features.  On
161942 -        030920 completeing the first lift to provide a working platform
161943 -        shows there is a good start on documentation, but a more
161944 -        careful review is needed that developes accounts in the SI for
161945 -        future work.
161947 -         ..
161948 -        As of 030923 this is about 80% done now.
161950 -         ..
161951 -    2.  SDS Record Open 2nd Session for Context Using Crtrl F6
161952 -
161953 -        It may be possible to address the most glaring weakness in the
161954 -        new system that reduces productivity, by providing a new
161955 -        function in 03501 that opens the original record on demand to
161956 -        provide context. ref SDS 0 TY4O  If this operation uses the
161957 -        same session of RAM it would provide cut and past features that
161958 -        expedite constructing new subject descriptions; however, this
161959 -        would have an adverse impact on memory, which conflicts with
161960 -        the aim of the exercise.  If new function opens another
161961 -        session, this would aid memory, but reduce productivity doing
161962 -        the work, which conflicts with the larger aim of SDS.
161963 -
161964 -            [On 030920 developed a form of using Ctrl F6 that enables
161965 -            scrolling to the original SDS record. ref SDS 11 11AE
161967 -         ..
161968 -    3.  Transfer file should be associated with originating SDS Record
161969 -
161970 -        Improve initial design that uses a common transfer file,
161971 -        stufq7y, with a unique filename for the User can have as many
161972 -        sessions of SDS running as desired, and the program will not
161973 -        commingle SI operations.  It is common to have multiple
161974 -        sessions of SDS running, and they all need to be able to use
161975 -        the SI independently, per below. ref SDS 0 TE5H
161976 -
161977 -            [On 030920 began work on this task. ref SDS 11 LK4K
161979 -         ..
161980 -    4.  Reports need access back and forth to SI
161981 -
161982 -        Right now we can launch a report from the original session
161983 -        using a Control Field, and we can launch a report op from
161984 -        within the SI which occurs in session 2.  The second session
161985 -        needs to be able open the SI and change the report
161986 -        specification for both functions and subjects.
161987 -
161988 -            [On 030920 work completed. ref SDS 11 3Z9M
161990 -         ..
161991 -    5.  Links
161992 -
161993 -        When an SDS record is opened in a report from session 2, it
161994 -        needs to be able to link back to the underlying record.  So
161995 -        this requires the code to make a distinction when a record is
161996 -        opened locally and when it is opened in session 2.
161998 -         ..
161999 -        This task can be accomplished with a work around by doing a
162000 -        report for the subject from the Control Field of an SDS
162001 -        record, rather than from the subject index.
162002 -
162003 -            [On 030920 began investigating ways to expand linking
162004 -            support. ref SDS 11 MW6M
162006 -         ..
162007 -    6.  Chain Start Sessions
162009 -         ..
162010 -        Eventually, may get to the point of opening any collateral
162011 -        record or file in a 2nd session.  Needs research for effect on
162012 -        Ctrl F6 scrolling the edit chain, discussed under planning.
162013 -        ref SDS 0 TY4O
162014 -
162015 -
162016 -
162017 -
162018 -
162020 -  ..
1621 -
1622 -
1623 - Planning
1624 -
162401 - Work on 030109 seemed to indicate that the Start command can be
162402 - applied with 030501 and 030502. ref SDS 4 0Q7O
162404 -  ..
162405 - The main objective is to improve memory management by opening a
162406 - separate session with a fresh and additional 640K of RAM.  Memory
162407 - overhead would be greatly reduced by not having both SDS records and
162408 - the Schedule in memory at the same time.  This would help solve
162409 - problems reported on 980710, ref SDS 1 005Q and later on 030810.
162410 - ref SDS 8 WY5G
162412 -  ..
162413 - On 030803 Morris seemed to indicate that a DOS extender program would
162414 - have this kind of effect, so it appears that using the Start command
162415 - is a big step for better memory. ref SDS 6 B549
162417 -  ..
162418 - The current version of SDS works by...
162419 -
162420 -    1.  03501 called from main menu in SDS records and the Schedule to
162421 -        open the SI at the primary level.  At this level, the user can
162422 -        open the Function index, or open a primary subject.  Features
162423 -        and functionality are controlled by 03501.
162425 -         ..
162426 -        Functions include...
162427 -
162428 -        a.  Enter or Double Click to enter a subject to an SDS Record
162429 -            Control Field.
162431 -             ..
162432 -            Ctrl F6 to switch between Subject Idex file (sndx) and SDS
162433 -            record to navigate for examining context that guides
162434 -            selection and construction of subjects in sndx.
162435 -
162436 -                [...below, encountered problem accomplishing this
162437 -                requirement. ref SDS 0 PRVU
162439 -                 ..
162440 -                [On 030920 developed a form of using Ctrl F6 that
162441 -                enables scrolling to the original SDS record.
162442 -                ref SDS 11 11AE
162444 -             ..
162445 -            Select subject listed in Subject Index and look for the
162446 -            account in the control field of the current record segment
162447 -            for the active SDS record in the originating session, and
162448 -            if the code is not already in this control field, enter it
162449 -            along with the subject description.
162451 -             ..
162452 -        b.  Open or create a subject at a lower level.
162453 -
162454 -            The code manages the organic structure, so that a user can
162455 -            step forward and then backward to navigate throughout the
162456 -            Subject Index.
162458 -             ..
162459 -        c.  Report on a subject.
162461 -             ..
162462 -        d.  Find where in the originating SDS record the subject is
162463 -            located.
162465 -             ..
162466 -        e.  Add, delete and modify subject accounts.
162467 -
162468 -            1)  Transfer account structures to other locations for
162469 -                multiple views.
162470 -
162471 -            2)  Replicate account structure for multiple descriptions.
162473 -                 ..
162474 -            3)  Cross-reference accounts
162475 -
162477 -         ..
162478 -    2.  03502 opens the Subject Index to find where an account in a
162479 -        Control Field is located to either edit the SI or find related
162480 -        subjects for entering in the SDS record Control Field.
162481 -
162482 -        a.  An index can be opened at any place along the organic
162483 -            structure of the subject in the Control Field.
162485 -                 ..
162486 -            1)  If the code is not found in the standard location
162487 -                based on the SI organic structure, then look in...
162488 -
162489 -                a)  Prior Level
162490 -
162491 -                    The code is somewhat foregiving by allowing a user
162492 -                    to place the next level in the current level, which
162493 -                    is handy when only a few instances exist, and for
162494 -                    the purpose of expanding span of attention.
162496 -                     ..
162497 -                b)  Master Index
162498 -
162499 -                    Large indexes are placed in a sub-level, and only
162500 -                    current active accounts are in the standard level
162501 -                    for the account.  This is used commonly for
162502 -                    projects, where there may be hundreds or thousands
162503 -                    of projects, but most are completed, and so the
162504 -                    project level only lists active account codes.
162506 -                     ..
162507 -                c)  Segmented Index
162508 -
162509 -                    We have a new system to reduce the size of indexes
162510 -                    in order to avoid running out of memory.
162512 -                     ..
162513 -                d)  Report an error back to original SDS record in the
162514 -                    original session.
162515 -
162517 -                 ..
162518 -            2)  Navigation is limited by the current scheme, because
162519 -                the code does not know how the organic account
162520 -                structure is assembled.
162522 -             ..
162523 -        b.  Call 03501 to provide functions at the level where the SI
162524 -            is opened, per above. ref SDS 0 LC99
162526 -                 ..
162527 -                (see limitation on navigation. ref SDS 0 NH6F)
162529 -             ..
162530 -        c.  Separate from subjects in Control Fields, 03502 calls code
162531 -            to open contact records for Employee and Billing entities
162532 -            in the Control Field.
162534 -             ..
162535 -        d.  Separate from Control Fields, the code can open the SI at
162536 -            the level where a subject for a document is listed in
162537 -            References.
162539 -  ..
162540 - Better memory management in the new system comes from the current SDS
162541 - session not loading 03501, 03502 nor SI files, including sorted lists
162542 - that get large and fragment memory.  Up until now, these conditions
162543 - continually prevent further operations and so reduce productivity by
162544 - requiring closing and starting new SDS sessions to have fresh memory.
162546 -  ..
162547 - This objective is accomplished by using a new, small front-end and
162548 - composite processor, 035012, to service ops currently performed by
162549 - both 03501 and 03502.  A transfer file will pass subject
162550 - indentification between originating files and the Start session that
162551 - performs subject index ops in sndx.  This will eliminate some of the
162552 - code in 03502 by allowing 03501 to step forward to the account
162553 - structure in the transfer file.  The new scheme adds functionality to
162554 - improve navigation for stepping back to prior levels, which is not
162555 - currently supported for 03502 ops, per above. ref SDS 0 NH6F
162557 -     ..
162558 -    Another way to further improve memory management would be to build
162559 -    a sorted list in a separate session.
162561 -  ..
162562 - The new scheme is to...
162563 -
162564 -    1.  Open Subject index at primary level from menu.
162565 -
162566 -        The new scheme will work exactly the same for the user by
162567 -        making the changes transparent.  The User will merely point
162568 -        and click, or move the cursor to a location and press Enter.
162569 -
162570 -        a.  000003 macro 80 calls new front end for opening SI,
162571 -            ref SDS 0 G28O, calls a new, composite processor for both
162572 -            03501 and 02502, c: sd 03 035012. ref SDS 0 P15M
162574 -             ..
162575 -            Build transfer file stufq7y, ref SDS 0 F14K
162576 -
162577 -                  There is a limitation having only a single transfer
162578 -                  file, because if multiple sessions are opened, then
162579 -                  the transfer file will be overwritten by subsequent
162580 -                  operations.  We can put the originaing filename in
162581 -                  the transfer file to prevent conflicts, but the most
162582 -                  that can be done is to ensure only one SI stream at a
162583 -                  time.  This is a pending task, per above. ref SDS 0
162584 -                  4V5O
162586 -                ..
162587 -               Content is
162588 -
162589 -                  filename
162590 -
162591 -                     This signifies to open SI at Primary level.
162593 -                   ..
162594 -                  function or subject account
162595 -
162596 -                     Returning from SI session this will load the
162597 -                     string into either function or subject control
162598 -                     field.
162599 -
162600 -                     Opening a Start session, this will look up a
162601 -                     code.
162602 -
162604 -             ..
162605 -        b.  Call new Start batch file
162606 -
162607 -               sd 01 03501.BAT, ref SDS 0 DV5N
162608 -
162609 -               Operates on content of stufq7y, created above.
162610 -               ref SDS 0 UI4N
162612 -             ..
162613 -            Set a flag telling session 1 that a session 2 op is active,
162614 -            and so when Enter or double click occurs next evaluate for
162615 -            continuing an operation to load a code or look for a code
162616 -            in the current SDS record running in session 1.  Finally,
162617 -            decided not to use a flag, and merely use the existence of
162618 -            the transfer file and the contents to control the
162619 -            operation.  This is implemented in 000003, per below,
162620 -            ref SDS 0 6B9O; and is also implemented in 000008.
162622 -             ..
162623 -            -exit so that session 1 is active along with session 2,
162624 -            enabling navigation to understand context needed for taking
162625 -            action in the 2nd session running the SI, per above.
162626 -            ref SDS 0 TY4O  This implements the solution to the problem
162627 -            analysed below, ref SDS 0 T25H, and is implemented in
162628 -            000003, also, below. ref SDS 0 6B9O
162630 -             ..
162631 -        c.  When Start session ends, new content is entered into the
162632 -            transfer file for processing, or there is no new content.
162633 -            In both cases, the operation ends by simply closing the SI,
162634 -            which emulates current performance.
162636 -             ..
162637 -            If additional processing is required, as a result of new
162638 -            content entered into the transfer file, then processing
162639 -            continues using the /wait parameter of the Windows Start
162640 -            command and all of the work is accomplishied seemlesly in
162641 -            the primary session after the 2nd session closes, as
162642 -            explained in option (d), below, ref SDS 0 XL9P, which was
162643 -            adopted and improved after trying and rejecting the first
162644 -            choice to use option (b), below. ref SDS 0 T25H
162645 -
162647 -         ..
162648 -    2.  Open Subject Index from Control Field to Find an Account
162649 -
162650 -        a.  000008 macro 136 recognizes Enter or double click from
162651 -            Control Field. ref SDS 0 FC9K
162652 -
162653 -        b.  Call macro 822 in 00003. ref SDS 0 GE5G
162655 -             ..
162656 -        c.  Macro 822 in 000003 calls 035012 to execute code that is
162657 -            moved from 03502 to capture subject account string and
162658 -            build stufq7y. ref SDS 0 377K
162660 -             ..
162661 -            Content is...
162662 -
162663 -            1)  filename
162665 -                 ..
162666 -            2)  subject account code is option %8
162667 -
162668 -                %8 is also a flag for macro 136 in 000008 to notify the
162669 -                user that a code was not found in the subject index.
162670 -                ref SDS 0 IS4M
162671 -
162673 -             ..
162674 -        d.  The operation will work differently from the original
162675 -            design implemented by 03502.
162677 -             ..
162678 -            03502 constructs the directory path and filename, and then
162679 -            finds the target subject in the appropriate index file.
162680 -            This method limits ability to navigate backward to only the
162681 -            Primary level, skipping all intermediate levels, or to
162682 -            close the SI and click between levels in the Control Field.
162684 -             ..
162685 -            This method is effective, but requires extra steps that
162686 -            take more time.  It can be improved by adding the ability
162687 -            to step back one level at a time within the SI.  This
162688 -            requires building the path when an account is opened,
162689 -            which in turn requires a special "switch" that allows code
162690 -            for opening the Subject Index to the primary level to also
162691 -            be used in a loop that opens consecutive levels of organic
162692 -            structure.
162694 -             ..
162695 -            03501 can be modified to do this,
162697 -             ..
162698 -            The subject or function code can be transferred to the 2nd
162699 -            session and read by 03501.  The SI can be opened at the
162700 -            primary level, and additional levels can be opened until
162701 -            the target account is located, per below. ref SDS 0 105N
162702 -            This scheme takes more time for the computer because there
162703 -            are more steps to process, but these still only take less
162704 -            than 1 second.  Giving the user a path to navigate
162705 -            backward, as well as forward saves a lot of keystrokes for
162706 -            the User and so this is a big savings.  In the 1985 - 1988
162707 -            period, when the original scheme was developed, processors
162708 -            were slower, and so saving time with software was
162709 -            important. Today, faster processors eliminate this issue.
162711 -             ..
162712 -            Another change automatically saves an index when using F1
162713 -            F2 or the mouse to scroll forward.  In this case, if the
162714 -            User finds there are no subsidiary subjects and decides to
162715 -            create some new subjects, an error message will no longer
162716 -            occur, if the User is starting a new account and forgot to
162717 -            save it, as explained below. ref SDS 0 T36H  This
162718 -            improvement enabled reducing the instruction for making a
162719 -            new subject and this reduces stress and potential for
162720 -            error, plus it saves time by not having to create subjects
162721 -            again that were lost because the index was not saved under
162722 -            the previousl regimine.
162723 -
162724 -
162725 -
162726 -
162727 -
162729 -  ..
1628 -
1629 -
1630 - Problems
1631 -
163101 - Start Limits Simultaneous Operations in Multiple Sessions
163102 -
163103 - There is a significant problem to overcome in accomplishing the
163104 - primary purpose of SI operations, switching between the Subject Idex
163105 - file (sndx) and SDS record to examin context that guides selection and
163106 - construction of subjects in sndx. per above. ref SDS 0 LC99
163108 -                 ..
163109 -                [On 030920 developed a form of using Ctrl F6 that
163110 -                enables scrolling to the original SDS record.
163111 -                ref SDS 11 11AE
163112 -
163113 -    1.  When the code that opens a 2nd session with the Start command
163114 -        ends with -exit, this allows the 1st session to operate
163115 -        normally by displaying the screen and enabling navigation with
163116 -        the mouse and function keys to scroll up and down.  This is the
163117 -        condition initially developed; it makes all of the subsidiary
163118 -        functions for the SI available.
163120 -         ..
163121 -        However, under this scheme there is a failure of the primary SI
163122 -        function.
163124 -         ..
163125 -        If the code in the 1st session that lanches the 2nd session
163126 -        merely -exits, then when Enter is called in the 2nd session to
163127 -        place a subject account and description in the transfer file,
163128 -        and then the 2nd session ends, when control passes back to the
163129 -        first session, since the code that launched the 2nd session
163130 -        ended with an exit command, the code cannot continue in the 1st
163131 -        session to enter the account and description placed in the the
163132 -        transfer file during session 2 in the Control Field of session
163133 -        1.
163135 -         ..
163136 -    2.  If an -exit command is not used in the 1st session, then when
163137 -        the 2nd session is launched, the code for entering results
163138 -        placed in the transfer file begins to execute immediately
163139 -        before anything has been selected in the 2nd session.
163141 -         ..
163142 -    3.  If a "wait" command is used to launch the 2nd session, then the
163143 -        code in the 1st session will wait until the 2nd session ends to
163144 -        execute, but in that case, the screen for the 1st session is
163145 -        entirely black, and so nothing can be examined to guide the
163146 -        selection process in the 2nd session.
163147 -
163148 -            [On 030920 developed a form of using Ctrl F6 that enables
163149 -            scrolling to the original SDS record. ref SDS 11 11AE
163150 -
163151 -
163153 -  ..
1632 -
1633 -
1634 - Ideas
1635 -
163501 - Solutions All Require Trade-offs of Utility for Memory
163502 -
163503 -
163504 -    a.  The Windows Start command has a parameter for "separate" and
163505 -        another for "shared."  One of these used in 03501.bat may offer
163506 -        a solution, ref SDS 0 DV5N, if it permits two sessions to share
163507 -        a common command stream, or otherwise resolves the problem
163508 -        explained in para 2. ref SDS 0 T16R
163510 -         ..
163511 -        Tried this and did not get favorable results.
163512 -
163513 -            The basic problem is that under the current scheme,
163514 -            everything works because there is a single e.exe program
163515 -            running.  Something that replicates the e.exe internal "e"
163516 -            and "ecur" commands is missing from the Start command
163517 -            system.
163519 -         ..
163520 -    b.  Use an -exit command when the 1st session calls a 2nd session
163521 -        for the Subject Index. ref SDS 0 6B9O  This will cause the 1st
163522 -        session to display normally and allow navigation required, per
163523 -        above. ref SDS 0 TY4O
163525 -         ..
163526 -        Analysis indicates this option (b) is the best choice to try
163527 -        first. ref SDS 0 P14O
163529 -         ..
163530 -        Create a flag in the 1st session that executes before the -exit
163531 -        command that launches the 2nd session.  This new flag will tell
163532 -        Enter and Double Click code for macro 136 in 000008 to launch
163533 -        the 2nd part of entering a subject into a Control Field, per
163534 -        below. ref SDS 0 IS4M  If the flag exists, the code will
163535 -        examine the transfer file and if there is a subject account and
163536 -        description, then the code will launch additional code in 04402
163537 -        that enters the code in the control field, or looks for the
163538 -        code in the SDS record depending on the flag set by 03501.
163540 -         ..
163541 -        This scheme requires the user to do more than merely press
163542 -        Enter or Double Click to load a subject into an SDS record,
163543 -        supported by the current design.  Instead, a message will
163544 -        display in the 1st session telling the user to press Enter or
163545 -        double click again to complete the task of entering a subject
163546 -        account and description into a control field.
163547 -
163548 -            [...below, tried this and it reduced productivity, so
163549 -            eliminated this method. ref SDS 0 IS4M
163551 -         ..
163552 -    c.  We need a flag or condition that signals to e.exe when the 2nd
163553 -        session is actually closed.  We need a way to cause e.exe to
163554 -        execute when the 2nd session actually closes and not when it
163555 -        executes.  The wait command does this, but it suspends e.exe
163556 -        entirely.
163558 -         ..
163559 -    d.  Use Wait to open SI and eliminate requirement for examining the
163560 -        original record for context, per requirements. ref SDS 0 TY4O
163562 -         ..
163563 -        The SDS record could be opened to study context by simply
163564 -        loading any account temporarily into the SDS record, then
163565 -        pressing Enter to return to the same location in the SI for
163566 -        contining work.  The temporary account could then be used to
163567 -        bounce back and forth between SI and the SDS record, which is
163568 -        somewhat analogous to using the e command in the current
163569 -        design.  The temporary account could then be removed after
163570 -        completing work.  This is somewhat facile, but leaves a black
163571 -        screen on the desktop that cannot be used until the SI is
163572 -        closed.  Experience showed that using the /b parameter with
163573 -        /wait in the Start command batch file, solves the problem.
163574 -        ref SDS 0 DV5N
163576 -         ..
163577 -        Analysis indicates this option (d) is the 2nd best choice, and
163578 -        subsequent experience established that this method is the best
163579 -        choice, and so was adopted. ref SDS 0 H65K
163580 -
163581 -            [On 030920 developed a form of using Ctrl F6 that enables
163582 -            scrolling to the original SDS record. ref SDS 11 11AE
163584 -         ..
163585 -    e.  Launch a 3rd session with the Start command that opens the SDS
163586 -        record in the 1st session to the same relative position in the
163587 -        1st session for examining the record to determine context that
163588 -        guides selection and construction of a subject.
163590 -         ..
163591 -        This might be doable.
163592 -
163593 -            [On 030920 developed a form of using Ctrl F6 that enables
163594 -            scrolling to the original SDS record. ref SDS 11 11AE
163596 -         ..
163597 -        Analysis indicates option (e) is the 3rd or 4th choice because
163598 -        it compounds the problem of screen complexity that causes
163599 -        confusion and mistakes. ref SDS 0 KB8T
163600 -
163601 -
163602 -
163603 -
163604 -
163606 -  ..
1637 -
1638 -
1639 - Analysis
1640 -
164001 - Extra Step to Press Enter or Double Click Least Time Consuming
164002 -
164003 -
164004 -    1.  Option (a) to configure Start parameters has not worked so far.
164005 -        There may be a combination that can work, but there is not an
164006 -        express explanation of how to do it. ref SDS 0 KB4K
164008 -         ..
164009 -        A question was submitted to Microsoft for support; Microsoft
164010 -        has failed to respond.
164012 -         ..
164013 -    2.  Option (b) seems the most promising for a direct and least
164014 -        obtrusive solution. ref SDS 0 T25H  An extra step is required,
164015 -        which may merely entail tapping Enter or double clicking twice.
164016 -        ref SDS 0 T26N  These steps do not take time and so seem like
164017 -        they should be fast and easy, even if they are not elegant.
164018 -
164019 -            [...below, tried this and it reduced productivity, so
164020 -            eliminated this method. ref SDS 0 IS4M
164022 -         ..
164023 -    3.  Option (c) requires Microsoft and Morris to both makes changes
164024 -        that enable SDS to run separate ops and then draw data from the
164025 -        2nd op into the 1st one based on a new flag. ref SDS 0 XL8S
164026 -        The chances of getting even one of these events is about 0,
164027 -        without coming up with some money.  (see analysis of option (a)
164028 -        on contacting Microsoft. ref SDS 0 J76H)
164030 -         ..
164031 -    4.  Option (d) to use the "wait" parameter with Start, ref SDS 0
164032 -        XL9P, is the 2nd best choice after (b), ref SDS 0 P14O, because
164033 -        "wait" should enable smooth operations, close to the current
164034 -        design, except the SDS record would not be visible for analysis
164035 -        of context to support work in the 2nd session running SI ops.
164036 -
164037 -            [...below, adopted this method with the /b parameter,
164038 -            ref SDS 0 DV5N, because it most closely fits current
164039 -            practice, and it turned out that having multiple windows
164040 -            for a single session caused complexity that was confusing.
164041 -            ref SDS 0 IS4M
164043 -         ..
164044 -        Loading a temporary account back to the SDS record for bouncing
164045 -        back by using the account to access the SI may be workable.
164046 -        ref SDS 0 J66L  This method is already used quite a bit for
164047 -        some circumstances in the current design.  Alignment with
164048 -        present practice reduces the sense of an awkward work around.
164050 -         ..
164051 -        Eliminating the need for pressing Enter twice improves on
164052 -        option (b), ref SDS 0 T26N, however, leaving a black screen
164053 -        that is idle in session 1 is distracting, and requiring the
164054 -        user to load a temporary subject account in order to have a
164055 -        path between the SI and the target SDS record, and then delete
164056 -        the temporary account once the actual account is created and
164057 -        entered, seems like a less desirable scheme than option b that
164058 -        merely requires pressing Enter or double clicking twice.
164059 -
164060 -            [...below, using /b with /wait parameters in Microsoft
164061 -            Start command eliminates problem of a black screen.
164062 -            ref SDS 0 DV5N
164064 -             ..
164065 -            [On 030920 developed a form of using Ctrl F6 that enables
164066 -            scrolling to the original SDS record. ref SDS 11 11AE
164068 -         ..
164069 -        For one thing, using a temporary subject account to switch
164070 -        between the SI and an SDS record is only marginally similar to
164071 -        using Medit "e" and "ecur" commands under the current design.
164072 -        Medit commands switch between files regardless of location in
164073 -        the file, so there is freedom to explore and position the
164074 -        record as needed.  On the other hand, using a specific account,
164075 -        as a path for access, provides only one place to switch back to
164076 -        the SI and one place to switch into an SDS record.  Experience
164077 -        shows this is a significant loss of utility relative to present
164078 -        practice.  Keeping an SDS record open, as proposed under option
164079 -        (b) allows switching between sessions by picking up the mouse
164080 -        and clicking on a window, which is slower and less convenient
164081 -        than using Ctrl F6, but still closer to current practice and to
164082 -        what is needed.  Additionally, remembering to delete temporary
164083 -        SI entries increases the chance of erroneous accounts occurring
164084 -        in the record that cause incorrect reporting, as a result of
164085 -        forgetting to delete a temporary entry in the Control Field
164086 -        under option (d).
164088 -         ..
164089 -    5.  Option (e) to open a 3rd session to display the current SDS
164090 -        record for examining context to support work in the SI session
164091 -        2, ref SDS 0 KB7L, would clutter the screen, which is already
164092 -        crowded, creating complexity, confusion and error.  Typically,
164093 -        there can be 3 or 4 sessions of SDS running working on
164094 -        different tasks concurrently.  If these open an SI session that
164095 -        doubles the traffic, so adding yet another session would seem
164096 -        to be debilitating.
164098 -         ..
164099 -        Probably need some experience to really evaluate this idea.
164100 -
164101 -            [On 030914 initial impression confirms that multiple
164102 -            windows for SI creates complexity that causes confusion.
164103 -            ref SDS 10 U98V
164104 -
164105 -            [On 030920 developed a form of using Ctrl F6 that enables
164106 -            scrolling to the original SDS record. ref SDS 11 11AE
164107 -
164108 -
164109 -
164111 -  ..
1642 -
1643 -
1644 - Progress
1645 -
164501 - Beginning today, and over the next 3 weeks, performed work shown
164502 - below.  Reporting is combined into one record that aids comprehension
164503 - of closely related, complex work.  Maintenance, corrections and
164504 - improvements are faster and easier using integrated reporting.
164505 -
164507 -  ..
164508 - 000003  Subject Menu Call Start Command with 03501
164509 -
164510 - Line 710, ref OF 10 GB6K, -label regmnu in 000003 about 70 lines below
164511 -
164512 -    -if @47 = 2 -if @2 > 29 -if @2 < 39 -goto m137G
164513 -
164514 -       SDS record menu executes subject operation.
164515 -       ref SDS 0 G28O
164516 -
164518 -  ..
164519 - Line 790, ref OF 10 1674, -label m137G in 000003
164520 -
164521 -    -label m137G
164522 -    -gosub cMflag
164523 -    @c:\sd\03\035012
164524 -    -exit
164525 -
164526 -       Close menu and call new composite macro 035012, ref SDS 0 P15M,
164527 -       to set up for calling a batch file that runs Windows Start
164528 -       command in the next command.
164529 -
164530 -
164532 -  ..
164533 - 000008  Macro 136 Enter Call to Look Up Subject for Control Field
164534 -
164535 - Line 1130, ref OF 11 FP5F, -entry 1362 in 000008 about 40 lines below
164536 -
164537 -    Initially developed code for launching multiple windows that
164538 -    required multiple use of Enter and double click to complete tasks
164539 -    for Subject Index begun in the 2nd session for subject index to
164540 -    implement plan above. ref SDS 0 T25H  This required new code to
164541 -    analyse a new transfer file, stufq7y, to determine results of tasks
164542 -    in the subject index and apply them in the 1st session.  Experience
164543 -    showed that having multiple windows open created complexity that
164544 -    reduced effectiveness and productivity by causing errors, per
164545 -    above, so moved the code developed for this step into 035012, per
164546 -    below. ref SDS 0 B44K
164547 -
164548 -
164550 -  ..
164551 - Control Field Mileage Time Employee Function Subjects
164552 - Primary Subject or Function Index Click on Line above Control Field
164553 - Milg Emply Function Subject Open Primary Subject or Function Index
164554 -
164555 - Line 1240, ref OF 11 0671, -label clfE in 000008 about 70 lines below
164556 -
164557 -    -label clfE
164558 -
164559 -    setcnt 93 996
164560 -    -if @3 = 0 -goto oCodes
164561 -    z 1 20
164562 -    fr /Milg/
164563 -    getscr 1
164564 -    -if @0 = 0 -goto oPSI1
164565 -
164566 -        Start flag 93 996 for macro 822 in 000003 to process code for
164567 -        looking up a function or subject code; if counter 3 = 0 User
164568 -        pressed Enter with the cursor on a Control Field line, so go do
164569 -        that step. -goto oCodes, ref SDS 0 GE5G  Otherwise if User
164570 -        pressed Enter or double clicked on a Control Field headline go
164571 -        determine which function to process. -goto oPSI1, ref SDS 0
164572 -        SE5L
164574 -  ..
164575 - Line 2010, ref OF 11 0888, -label oPSI1 in 00008 about 30 lines below
164576 -
164577 -    -label oPSI1
164578 -    rel_cur 1 0
164579 -    setcnt 93 997
164580 -    -if @125 > 33 -if @125 < 42 setcnt 93 998
164581 -    -if @125 > 65 -goto esidfc
164582 -
164583 -        This comes from determining that User pressed enter on a
164584 -        heading for a Control Field. ref SDS 0 FC9K   Move the cursor
164585 -        down onto a Control Field line ready to enter a code, if the
164586 -        user decides to take that action after opening the SI.  Set a
164587 -        flag 9 997 to open the SI and 9 998 to open the primary
164588 -        Function Index.  The code in 035012 interprets 9 998 to set a
164589 -        flag for 03501 to open the Primary Fucntion Index. ref SDS 0
164590 -        NS4J  If click beyond Subject/File then -goto esidfc.
164591 -        ref SDS 0 629L
164592 -
164593 -
164595 -  ..
164596 - Line 1950, ref OF 11 RZ6M, -label oCodes in 000008
164597 -
164598 -      -entry 143
164599 -    @c:\sd\03\035012
164600 -
164601 -       When User presses Enter or double clicks on a Control Field
164602 -       line, determined above. ref SDS 0 FC9K  Eliminated macro 143 and
164603 -       created new call to macro 822 that replaces 03502 for opening
164604 -       the subject index to an account in a Control Field.  Macro 822
164605 -       is in 000003, ref SDS 0 G28O, and calls a new macro file 035012
164606 -       that runs the front end from 03502 and also replaces macro
164607 -       04402, per below. ref SDS 0 P15M
164608 -
164609 -
164611 -  ..
164612 - 000008  Subject Descriptions Conform to Subjects in Control Field
164613 - 04405  Subject Descriptions Conform to Subjects in Control Field
164614 - Subject Descriptions Conform to Subjects in Control Field
164615 -
164616 - Line 2030, ref OF 11 0889, -label esidfc in 000008
164617 -
164618 -    -label esidfc
164619 -    @c:\sd\03\04405
164620 -    -exit
164621 -
164622 -        04405 confirms subject descriptions to the order of the subject
164623 -        accounts in the Control Field, called above. ref SDS 0 SE5L
164624 -
164625 -
164626 -
164627 -
1647 -

SUBJECTS
ESC Quit Subject Index Close Sessions

1703 -
170401 -     ..
170402 -    ESC Quit Op from Subject Index
170403 -    Quit ESC Op from Subject Index
170404 -
170405 -
170406 - Line 2910, ref OF 1 PL6G, -label ESCj in 03501
170407 -
170408 -    e c:\sd\03\03501
170409 -    macro 229
170410 -    purge sndx
170411 -    quit
170412 -
170413 -        Quit in Subject Index is called in 03501 by switching to 03501
170414 -        and purding the transfer file, macro 229, the purging sndx, and
170415 -        then quit in 03501.
170416 -
170417 -
170418 -
170419 -
170420 -
170421 -
1705 -

SUBJECTS
035012 Replace 03502 for Control Field Code Look-up in Subject Index
04402 Control Field Subjects Load from Subject Index, 04402
035012 Subject Index Opened from Control Field and Completes Entering
Subjects Load from Subject Index to Control Field, 04402

2006 -
200701 -  ..
200702 - 035012  Subject Index Launch Windows Start, Replace 03502 and 04402
200703 - 03502  Replaced by 035021 to Run Windows Start Command Eliminate 04402
200704 - 04402  Replaced by 035021 to Run Windows Start Command Eliminate 03502
200705 -
200706 - Started using some code from 03501 for the front end to set up the
200707 - current conditions that will then open sndx with 03501.bat  This new
200708 - macro consolidated code in 03502 and from 04402 with the result that
200709 - these macro files are no longer needed, per above. ref SDS 0 GE5G
200710 - Will save them for awhile to test out this new "grand scheme," and so
200711 - the original code can be used to complete the changes.
200713 -  ..
200714 - Line 50, ref OF 3 EV4O, -label 03502c in 035012
200715 -
200716 -    -label 03502c
200717 -
200718 -        This is the code that is imported from 03502.  We are
200719 -        integrating ops that were formerly separate by taking the front
200720 -        end from 03501 beginning with -label bHstar, ref SDS 0 FV6I,
200721 -        and also adding in the front end of code from 03502, beginning
200722 -        with this -label 30502c
200723 -
200724 -
200725 -
200727 -  ..
200728 - Line 370, ref OF 3 NS7M, -label noLvl in 035012
200729 -
200730 -    -label noLvl
200731 -    -gosub usID
200732 -
200733 -       First, call standard code that sets up stufq7y with the current
200734 -       filename using subroutine -label usID. ref SDS 0 F14K
200736 -     ..
200737 -    macro 1182
200738 -
200739 -       Capture the subject account code.
200740 -
200741 -    -if @247 != 888 -goto nMIlk
200742 -
200743 -
200745 -     ..
200746 -    setgbl 103 @100
200747 -
200748 -          For Master Index subroutine, go ahead and load "get"
200749 -
200750 -      -goto MI_lk
200751 -    -goto cflu
200752 -
200753 -       This code ends ops to capture the subject string, and then go
200754 -       enter it in a transfer file. ref SDS 0 377K
200755 -
200756 -
200757 -
200759 -  ..
200760 - Line 410, ref OF 3 EQ6N, -label Inv in 035012
200761 -
200762 -    -label Inv
200763 -    @c:\sd\03\03502 #2
200764 -    -goto end3
200765 -
200766 -        This will hopefully accomplish everything that is not part of
200767 -        opening the SI to an account in the Control Field.
200768 -
200769 -
200770 -
200772 -  ..
200773 - Line 420, ref OF 3 D55L, -label cflu in 035012
200774 -
200775 -    -label cflu
200776 -    e stufq7y
200777 -    immed a
200778 -    ic 37
200779 -    ic 56
200780 -    ic 32
200781 -    setcnt 86 1
200782 -    macro 1182
200783 -    save
200784 -    ecur 45
200785 -    purge stufq7y
200786 -    -goto 03502j
200787 -
200788 -        This code opens stufq7y that is created by other code in
200789 -        035012, per above, and so this code enters the subject account
200790 -        code with an identification flag using %8.
200791 -
200793 -  ..
200794 - Line 460, ref OF 3 F15K, -label usID in 035012
200795 -
200796 -    -label usID
200797 -    e 0W7J
200798 -    macro 301
200799 -    macro 856
200800 -    macro 841
200801 -    getgbl 1 241
200802 -    setgbl 241 0
200803 -    -if @1 != 998 -goto npfilu
200804 -    loc_cur 0 50
200805 -    ic 70
200806 -    save stufq7y
200807 -    ecur 45
200808 -    purge 0W7J
200809 -    -return
200810 -
200811 -        New subroutine to open a temporary file and save the current
200812 -        user ID to a file that can be used by 03501 to get the User ID.
200813 -        for opening the Subject Index in a separate Start session.
200814 -        ref SDS 0 1I5N  This also called by code that opens primary
200815 -        Subject Index and primary Function Index. ref SDS 0 WY3K
200817 -         ..
200818 -        getgbl 1 241 determines when User wants to open Primary
200819 -        Function Index, rather than Subject index, and in that case an
200820 -        F is entered on column 50, and is interpreted by 03501 when the
200821 -        2nd session is launched, per below. ref SDS 0 1I5N
200822 -
200823 -
200825 -  ..
200826 - Line 490, ref OF 3 TK6G, -label bHstarT in 035012
200827 -
200828 -    This code will do the front end and capture the user ID to save in
200829 -    a file for 03501 in a separate session.
200830 -
200831 -    -label bHstar
200832 -    setgbl 244 0
200833 -    -label bHstarT
200834 -    markcur 45
200835 -
200836 -
200838 -  ..
200839 - Line 550, ref OF 3 1520, -label bHstarT in 035012
200840 -
200841 -    setgbl 241 @9
200842 -    setcnt 9 0
200843 -    -if @47 = 2 -gosub usID
200844 -    -if @47 = 50 -gosub usID
200845 -
200846 -        Put value in counter 9 in global 241 that comes from macro 136
200847 -        which determines when user presses Enter or double clicks on a
200848 -        Control Field headline and so wants to open the primary
200849 -        function index or the primary subject index.  Reset the flag
200850 -        counter 9 each pass.  Global 241 can pass the condition to
200851 -        subroutine usID. Changed the code here by adding a new
200852 -        subroutine that puts the User ID in a file on the disk. -gosub
200853 -        usID, ref SDS 0 F14K
200854 -
200856 -     ..
200857 -    Start Launched with DOSE Call to Batch File
200858 -
200859 -
200860 - Line 720, ref OF 3 CT8M, -label 03502j in 035012
200861 -
200862 -    -label 03502j
200863 -    save
200864 -    -label anfisR
200865 -    dose /c c:\sd\01\03501.bat
200866 -
200867 -        Save SDS record to the disk, so it can be opened in the 2nd
200868 -        session to provide context to Subject Index operations using
200869 -        Ctrl F6.  -label ansisR is for a loop that cycles back to
200870 -        launch the Start session again to open the Subject Index and
200871 -        report an error message that the function to look for a subject
200872 -        in an SDS record failed.  dose /c ... 03501.bat launches the
200873 -        Windows Start session, and processing continues in this macro
200874 -        file 035012 after the SI session is closed using the /wait
200875 -        param in 03501.bat, per below. ref SDS 0 DV5N
200876 -
200878 -     ..
200879 -    SDS Record Swap Originating File to Adopt Changes in Start Session
200880 -
200882 -  ..
200883 - Line 740, ref OF 3 5N4M, -label 03502j in 035012 about 40 lines below
200884 -
200885 -        After Start session runs in prior step, swap out contents of
200886 -        originating SDS record by deleting contents of the file and
200887 -        reading from thet disk content that may have been created
200888 -        during the Start session for the Subject Index,
200889 -        per above.
200890 -
200891 -            [On 030920 this code was developed. ref SDS 11 FH43
200892 -
200893 -
200895 -     ..
200896 -    Transparent Operations Retain Original Utility of Subject Index
200897 -
200898 -    Per planning and anlaysis above, initially tried using multiple
200899 -    windows to give the User context by referencing the originating SDS
200900 -    record while working in the Subject Index, and then using a double
200901 -    click twice and pressing Enter twise for executing transactions.
200902 -    ref SDS 0 P14O  Experience the double enter method was doable but
200903 -    subject to error.  Experience also showed that opening multiple
200904 -    windows for a single operation is too complex when combined with
200905 -    performing tasks that use multiple sessions of SDS.  Complexity
200906 -    caused confusion and error.  Since performing multiple tasks in SDS
200907 -    is critical to productivity, using multiple windws for a single
200908 -    task was abandoned, per above. ref SDS 0 IS4M
200910 -     ..
200911 -    Developed code that closely emulates existing system of having all
200912 -    tasks related to an SDS session occur in a single window in order
200913 -    to retain clarity of association when different parts of the
200914 -    program are visible.
200915 -
200916 -
200918 -       ..
200919 -      Transfer File Return from Subject Index to SDS Record
200920 -
200921 -
200922 - Line 710, ref OF 3 R58M, -label 03502j in 030512 about 50 lines below
200923 -
200924 -      e stufq7y
200925 -      top
200926 -      loc_cur 3 43
200927 -      chrcnt 1 0
200928 -      ic 32
200929 -      save
200930 -      -if @1 = 36 -goto crfsite
200931 -      ecur 45
200932 -      -goto bMeNd
200933 -
200934 -           Open transfer file and check line 1 col 43.  If a $ char is
200935 -           entered, then it means processing is required; otherwise the
200936 -           User pressed ESC in SI and there is nothing to do, per
200937 -           below. ref SDS 0 YZ5M
200938 -
200939 -
200940 -
200941 -
200942 -
200943 -
200945 -  ..
200946 - Line 940, ref OF 3 WQ8M, -label lsactcf in 035012
200947 -
200948 -    -label lsactcf
200949 -
200950 -
200951 -
200952 -
200953 -
200954 -
200955 -
2010 -

SUBJECTS
Subjects Enter Account Codes into Control Field from Subject Index P
Load Code to SDS record, <Enter>, Mouse, 04402                         21
Enter Assigned Macro 232 in Subject Index by 03501
Subjects Load from Subject Index to Control Field, 04402

2406 -
240701 -       ..
240702 -      Subject Entered to Control Field Remove Default Subject Code Line
240703 -      Default Subject Code Remove When Subject Entered to Control Field
240704 -
240705 -
240706 - Line 1360, ref OF 3 IM5N, -label bMsPEc in 035012
240707 -
240708 -      -label bMsPEc
240709 -      line @15
240710 -      down
240711 -      loc_cur 3 55
240712 -      chrcnt 11 0
240713 -      rel_cur 0 1
240714 -      chrcnt 12 0
240715 -      loc_cur 3 53
240716 -      chrcnt 10 0
240717 -      -if @10 > 32 -if @11 != 37 -if @12 != 35 immed r
240718 -
240719 -         Place target line at top of the screen.  This sets up to
240720 -         write over a blank or the default subject, and to preserve
240721 -         any existing actual subjects.
240722 -
240724 -  ..
240725 - Line 1560, ref OF 3 7S7I, -label bMsPEc in 035012 about 60 lines
240726 - below
240727 -
240728 -    of 52
240729 -    loc_cur 0 1
240730 -    macro 641
240731 -    setcnt 86 4
240732 -    macro 1181
240733 -
240734 -        This enters subject account code into the SDS record Control
240735 -        Field copied from the temporary transfer file.  of 52 and
240736 -        loc_cur 0 1 positions control field on col 1 for entering a
240737 -        subject account string.  macro 641 clears existing string
240738 -        replicated from subject code that remains. setcnt 86 4 reflects
240739 -        fact that string is read in the transfer file from column 1,
240740 -        but actually begins on column 4 beyond the type flag field.
240741 -
240742 -            [On 031207 modified this code to create a loop that enters
240743 -            multiple subject account codes from a sorted subject index.
240744 -            ref SDS 16 WE60
240745 -
240747 -       ..
240748 -      Look for Subject Account Already Entered in Control Field
240749 -
240750 -
240751 - Line 1960, ref OF 3 S27G, -label funop3 in 035012 about 110 lines
240752 - below
240753 -
240754 -         Code initially searches the lines in the current Control
240755 -         Field for the subject account selected by the User for
240756 -         entering into the SDS record Control Field.  If the code is
240757 -         already there, the op ends and the user is notified the
240758 -         account is already entered.  If not, then processing
240759 -         continues to enter the code and notify the user, with the
240760 -         cursor on the target line for orientation.
240761 -
240762 -
240764 -       ..
240765 -      Subject Descriptions Entered; Remove Line for Default Subject
240766 -
240767 -
240768 - Line 1460, ref OF 3 SZ6O, -label CFop in 035012
240769 -
240770 -      -label CFop
240771 -      loc_cur 3 8
240772 -      setcnt 2 0
240773 -      z 8 27
240774 -      errorcnt 0 0
240775 -      up
240776 -      fr /efault Null Subj/
240777 -      -if @0 > 0 -goto ndnsh
240778 -      immed d
240779 -      loc_cur 0 8
240780 -      -goto up3z
240781 -      -label ndnsh
240782 -
240783 -         loc_cur 3 8 puts cursor on position for subject descriptions;
240784 -         setcnt 2 0 to set counter for determining when too many
240785 -         descriptions have been entered.  z 8 27 sets up look for a
240786 -         default subject description that should be removed if it
240787 -         exists.  This code will overwrite the default subject, and it
240788 -         removes the description for it, which will therefore always be
240789 -         on the line below the control field line, so do an up and then
240790 -         fr for the string, and if there, delete it, and if not, then
240791 -         jump and do regular operation.
240792 -
240793 -
240794 -
240795 -
2408 -

SUBJECTS
Subject Account Look Up in Control Field Modify to Apply New Memory

2503 -
250401 -       ..
250402 -      Code Look Up in SDS Record Failed Return to SI for Message
250403 -      Error Message Code Look Up in SDS Record Failed Return to SI
250404 -      Message Error Code Look Up in SDS Record Failed Return to SI
250405 -
250406 -      Follow up ref SDS 2 RY25.
250407 -
250408 -      The SDS record has read back into memory from the disk to conform
250409 -      the current record with any changes that might have been made
250410 -      while working in the Subject Index under a secondary memory
250411 -      segment.  The transfer file has been opened, and the code now
250412 -      investigates to determine what action to take...
250413 -
250415 -  ..
250416 - Line 1890, ref OF 3 F84H, -label ndlsR in 035012 about 50 lines below
250417 -
250418 -    loc_cur 5 1
250419 -    chrcnt 180 0
250420 -    rel_cur 0 1
250421 -    chrcnt 181 0
250422 -    -label funop3
250423 -    -if @180 = 37 -if @181 = 50 setcnt 127 837
250424 -    -if @180 = 37 -if @181 = 51 setcnt 127 838
250425 -    setgbl 127 @127
250426 -    -if @127 = 836 -goto funop1
250427 -    purge qsc
250428 -    macro 66
250429 -
250430 -        Read char in transfer file and if line 3 has $3, then setcnt
250431 -        127 to 838 to control op to look up an account in the SDS
250432 -        record where the User pressed Enter or double clicked on an
250433 -        account in the Subject Index.
250434 -
250435 -
250437 -  ..
250438 - Line 2180, ref OF 3 N44G, -label escf in 035012
250439 -
250440 -    -label escf
250441 -    macro 23
250442 -    -if @127 != 838 -goto kgfydb
250443 -    macro 229
250444 -    -goto anfisR
250445 -
250446 -        Search failed so, so macro 23 restores SDS record to original
250447 -        condition.  127 = 838 is code look op set in 03501, per below.
250448 -        ref SDS 0 QS5F so if not a code look up, then proceed, but
250449 -        othewise the code look up failed, so macro 229 closes transfer
250450 -        file, leaving the flag for a code look up which is interpreted
250451 -        in 03501 as an error, per below, ref SDS 0 N25L, so go call
250452 -        Windows Start command op again to open SI and report the error
250453 -        to the user where the command was initiated. If a code look up
250454 -        launched from the Subject Index fails, then call macro 229 to
250455 -        purge transfer file as it is and launch SI op again, goto
250456 -        anfisR. ref SDS 0 B44K
250457 -
250458 -
250460 -       ..
250461 -      End Subject Operations in 035012
250462 -
250463 -
250464 - Line 1460, ref OF 3 B55H, -label bMeNd in 035012
250465 -
250466 -    -label bMeNd
250467 -    setcnt 127 0
250468 -    setgbl 127 0
250469 -    purge stufq7y
250470 -    -label end3
250471 -    purge C:\SD\03\035012
250472 -
250473 -        End contact management operations by purging stufq7y and
250474 -        closing 035012.  Reset flags.
250475 -
250476 -
250477 -
250478 -
250479 -
250480 -
250481 -
2505 -

SUBJECTS
Start Command Control Field Save Memory for Subject - 03502
03501.bat Create Modify 03501 to Run Under Windows Start Command in S

2704 -
270501 -  ..
270502 - 03501.Bat  Subject Index Open with Windows Start Command
270503 -
270504 -
270505 - Line 30, ref OF 8 J03M, in 03501.bat
270506 -
270507 -     %systemroot%\system32\cmd.exe /C start /b /wait c:\sd\01\e sndx c:\sd\03\03501
270508 -
270509 -        Open sndx and run 03501, called by 035012, per above.
270510 -        ref SDS 0 B44K
270512 -         ..
270513 -        Testing shows that using the /b param to display the second
270514 -        session in the same window with the first session, to reduce
270515 -        screen clutter, then when processing ends, a black screen is
270516 -        displayed that prevents further action by the user.  If a /wait
270517 -        command is added, then when the 2nd session is closed, the
270518 -        first session displays and normal user functions are active.
270519 -        This emulates existing methods.  Using /b with /wait was
270520 -        therefore adopted after gaining experience with these options,
270521 -        and having success developing sequencing that accomplished the
270522 -        fluidity and responsiveness of the original SDS design.
270524 -      ..
270525 -     We could launch a second session automatically to view the SDS
270526 -     record for context, per planning above, ref SDS 0 PRVU, however,
270527 -     this can be controlled better from within the SI as a new function
270528 -     for Ctrl F6 to scroll the edit chain developed in 03501 that opens
270529 -     the SDS record only when needed.
270530 -
270531 -            [On 030920 developed a form of using Ctrl F6 that enables
270532 -            scrolling to the original SDS record. ref SDS 11 11AE
270534 -             ..
270535 -            [On 031114 developed new system of calling more steps with
270536 -            a single dose call to 03501.bat. ref SDS 15 5R5G
270537 -
270538 -
270539 -
270540 -
2706 -

SUBJECTS
03502 Control Field Code Look-up in Subject Index
Start Command Control Field Save Memory for Subject - 03502
03502 Subject Index Open Separate Window

3005 -
300601 -  ..
300602 - 03501  Subject Index Operation
300603 -
300604 - Line 160, ref OF 1 KP4J, -label bHstar in 03501
300605 -
300606 -    -label bHstar
300607 -    e c:\sd\03\03501
300609 -         ..
300610 -        This the call from batch file 03501.bat that launches the Start
300611 -        session with a new 1 MB of Memory.
300612 -
300613 -
300615 -     ..
300616 -    Originating File Spec and Positioning for Ctrl F6
300617 -
300618 -
300619 - Line 180, ref OF 1 HT5J, -label bHstar in 03501 about 30 lines below
300620 -
300621 -    e stufq7y
300622 -    top
300623 -    setcnt 86 1
300624 -    macro 1182
300625 -    loc_cur 0 48
300626 -    strcnt 1 4
300627 -    setgbl 65 @1
300628 -
300629 -        To enable Ctrl F6 to open the originating SDS record for
300630 -        context and continuous work in the start session for the
300631 -        subject index, macro file 035012 captures the file spec and
300632 -        cursor positioning and places it in line 1 of the transfer
300633 -        file. ref SDS 0 F14K This code captures this information and
300634 -        configures other code in 03501 for Ctrl F6 to open the
300635 -        originating SDS record with the same positioning.
300636 -
300637 -             [On 030920 Ctrl F6 was coded to support this feature.
300638 -             ref SDS 11 GH3X
300640 -         ..
300641 -        To the User the operation is seemless, but saves memory by
300642 -        avoiding entering the Schedule and any other subsidiary files
300643 -        that might also be in memory for the originating SDS record in
300644 -        the primary session.
300645 -
300646 -
300647 -
300649 -  ..
300650 - Line 210, ref OF 1 JH9J, -label bHstar in 03501 about 30 lines below
300651 -
300652 -    line 739    .....&& *%5
300653 -    loc_cur 4 12
300654 -
300655 -        First task is to load the code that opens the SDS record so
300656 -        jump to the line where the get command is processed, and place
300657 -        the cursor on the User ID field.
300658 -
300659 -
300660 -
300662 -     ..
300663 -    User ID Read and Check for Function Index Flag F in Col 50
300664 -
300665 -
300666 - Line 210, ref OF 1 1K3I, -label bHstar in 03501 about 30 lines
300667 - below
300668 -
300669 -    e stufq7y
300670 -    top
300671 -    loc_cur 0 10
300672 -    macro 851
300673 -    setgbl 275 @285
300674 -    setgbl 276 @286
300675 -    setgbl 277 @287
300676 -    setgbl 278 @288
300677 -    setgbl 279 @289
300678 -    loc_cur 0 50
300679 -    chrcnt 1 0
300680 -    -if @1 = 70 setgbl 244 998
300681 -
300682 -        This code uses the new stufq7y file with the originating
300683 -        filename created in 035012.  Open the stufq7y and read the User
300684 -        ID created by 035012, per above. ref SDS 0 F14K  Commands
300685 -        beginning with setgbgl 275 @285 set the session User ID.  Read
300686 -        col 50; if there is an F the user wants to open Primary
300687 -        Function Index, per above, ref SDS 0 JM5K, so set the flag to
300688 -        do that, interpreted at -label bH_pRmry,
300689 -
300690 -
300691 -
300692 -
3007 -

SUBJECTS
Error Messages Managed by 035012 and 03501
03501 Modify to Run Under Windows Start Command in Second Session for

3204 -
320501 -     ..
320502 -    Transfer File Flags Determine Type of Processing and Errors
320503 -    Error Messages Transfer File Flags Determine Type of Processing
320504 -    Flags in Transfer File Determine Type of Processing
320505 -    Account Code Read Flags to Determine Type of Processing
320506 -
320507 -
320508 - Line 230, ref OF 1 6O4G, -label bHstar in 03501 about 80 lines below
320509 -
320510 -    errorcnt 0 0
320511 -    up
320512 -    -if @0 > 0 -goto n2adl
320513 -    loc_cur 3 2
320514 -    chrcnt 119 0
320515 -
320516 -        We need a flag that tells the system when to look up a code
320517 -        captured from the originating SDS record.  This can be
320518 -        accomplished using the condition that when there is a code to
320519 -        look up, it is on line 2 in stufq7y, below the filename that
320520 -        has the user ID.  An "up" command therefore returns an error if
320521 -        there is no code to process, because there is only one line in
320522 -        the file.  If an error occurs, skip capturing the type of code
320523 -        being processed, either function or subject, and -goto n2adl,
320524 -        ref SDS 0 2H6M  If an error does not occur, then read the type
320525 -        of code into counter 119 and make it global for transferring
320526 -        into 03501. Under this scheme, 119 will be 0 if there is no
320527 -        code to look up, because the file was just opened, and so all
320528 -        counters start at 0.
320530 -         ..
320531 -        Error messages are also read at this time.
320532 -
320534 -  ..
320535 - Line 230, ref OF 1 554K, -label bHstar in 03501 about 100 lines below
320536 -
320537 -    -if @119 > 54 -goto nem5
320538 -    -if @119 = 49 setcnt 119 56
320539 -    -if @119 = 50 setcnt 119 55
320540 -    errorcnt 0 0
320541 -    loc_cur 4 4
320542 -    strcnt 127 3
320543 -    setgbl 127 @127
320544 -    -label nem5
320545 -    setgbl 119 @119
320546 -
320547 -        In the transfer file, -if @119 > 54 -goto nem5 this is saying
320548 -        the processing type is for either a function or a subject, so
320549 -        jump ahead to -label nem5 and setgbl 119 119 to tell the system
320550 -        to process a code look up.  Otherwise this is a message of some
320551 -        type coming back from an SDS record.  Set 119 to either 55 or
320552 -        56, which is 7 or 8 so that the code will proceed to open the
320553 -        organic structure to the specified location where a message can
320554 -        be given to the user in context.  To determin what error
320555 -        message to give, read the 3rd line; loc_cur 5 4 places cursor
320556 -        on message flag set originally by this op to look for a subject
320557 -        code in the originating SDS record, using setcnt 127 = 838, see
320558 -        below, ref SDS 0 HZ8M, strcnt 127 3 reads this message type
320559 -        flag and saves to globals for evaluation in sndx after the
320560 -        target line has been found and the profile is run to give
320561 -        control back to the user, per below. ref SDS 0 N25L
320562 -
320563 -
320565 -     ..
320566 -    Code Capture for Transfer to 03501 Template to Process Look Up Op
320567 -    Look Up Code Op Capture for Transfer to 03501 Template to Process
320568 -
320569 -
320570 - Line 280, ref OF 1 MG7K, -label bHstar in 03501 about 100 lines below
320571 -
320572 -    loc_cur 3 4
320573 -    macro 1188
320574 -
320575 -        Move the cursor to the account code string and use the long
320576 -        string processor to read it for transfer into a template in
320577 -        03501.
320578 -
320580 -  ..
320581 - Line 310, ref OF 1 1B8L, -label n2adl in 03501
320582 -
320583 -    -label n2adl
320584 -    e c:\sd\03\03501
320585 -    -gosub ptfg
320586 -
320587 -        Open 03501 and close stufq7y in order to transfer SDS record
320588 -        specification User ID and code look up if that is the op.  If
320589 -        there is not an F flag, then this is not a function code op,
320590 -        per above. ref SDS 0 SQ3G
320591 -
320592 -
320594 -     ..
320595 -    Function Index Opening Primary Flag 244 998
320596 -    Enter User ID in 03501 Evaluate Op Opening SI or Looking Up Code
320597 -
320598 -
320599 - Line 340, ref OF 1 KF9L, -label n2adl in 03501 about 30 lines below
320600 -
320601 -    macro 92
320602 -    getgbl 244 244
320603 -    getgbl 119 119
320604 -    -if @119 = 0 -if @244 = 10 setcnt 244 998
320605 -    setgbl 244 @244
320606 -    -if @119 = 0 -goto lpsio
320607 -    rel_cur 0 1
320608 -    savescr 4
320609 -
320610 -        Macro 92 enters User ID in get file command format captured in
320611 -        the prior command sequence with macro 851. ref SDS 0 1I5N
320612 -        getgbl 244 244 determines if this is an op to open Function
320613 -        primary index, per above. ref SDS 0 1I5N  getgbl 119 119 flag
320614 -        shows when a subject or function code was entered in the
320615 -        transfer file, stufq7y, which means the user wants to look up a
320616 -        particular code.  The prior step only sets global 119, if there
320617 -        is a 2nd line in the transfer file. Therefore, if 119 is 0,
320618 -        then this op is only loading the primary Function or Subject
320619 -        index, per above. ref SDS 0 SQ3G   setgbl 244 998 establishes
320620 -        when the Primary Function index is being opened, rather than
320621 -        the Primary Subject index. If 119 = 0 this means the user is
320622 -        only opening the SI or FI and there is not a second line to
320623 -        read, so can skip reading step to process the account code,
320624 -        because there is no code to process, the User wants to open a
320625 -        Primary indexes. -goto lpsio, ref SDS 0 VG7N
320627 -         ..
320628 -        At this point we know...
320629 -
320630 -               244 = 998              Function Index Open Primary
320631 -               244 = 0                Subject Index Open Primary
320632 -               119 = 7                Function code look up
320633 -               119 = 8                Subject code look up
320634 -
320635 -
320636 -
320638 -  ..
320639 - Line 360, ref OF 1 MH4O, -label n2adl in 03501 about 50 lines below
320640 -
320641 -    loc_cur 3 5
320642 -    ic @119
320643 -    -if @119 = 55 setgbl 224 998
320644 -    rel_cur 0 1
320645 -    setcnt 86 1
320646 -    macro 1189
320647 -
320648 -        After reading User ID, if 119 > 0 per above, ref SDS 0 X97J, it
320649 -        means this is a code look up op, so move cursor to position get
320650 -        command for entering the code to look up and put cursor on line
320651 -        with the code string on position that has the code type flag,
320652 -        which say 7 for fucntion or 8 for subject. It it is a function
320653 -        119 = 55, which is the char for 7, then setgbl 244 998.
320655 -     ..
320656 -    up
320657 -    loc_cur 4 18
320658 -
320659 -
320661 -  ..
320662 - Line 390, ref OF 1 TH3H, -label lpsio in 03501
320663 -
320664 -    -label lpsio
320665 -    e sndx
320666 -    setcnt 114 1
320667 -    setcnt 115 0
320668 -    -goto bPrimry
320669 -
320670 -        User wants to open Primary index established because user did
320671 -        not click on a code and this set 119 = 0, per above.
320672 -        ref SDS 0 X97J
320673 -
320674 -
320676 -     ..
320677 -    Get Command Read Subject Index File into Sndx
320678 -
320679 -
320680 - Line 1780, ref OF 1 QP6O, -label bH_dFlt in 03501
320681 -
320682 -    -label bH_dFlt
320683 -    *%5
320684 -    G h:\sd\06\00000\
320686 -         ..
320687 -        The code processes get command configured by reading transfer
320688 -        file, and by reading accounts the user selects for moving
320689 -        forward or backward in the organic structure.
320690 -
320692 -  ..
320693 - Line 1840, ref OF 1 X64N, -label bH_dFlt in 03501 about 40 lines
320694 - below
320695 -
320696 -    loc_cur 0 1
320697 -    -if @1 > 31 -goto bH_lD
320698 -    -if @241 = 1 -goto bH_n_Si
320699 -
320700 -        This is where the file is tested to see if an index actually
320701 -        exists for the specified subject.  The code cycles through
320702 -        several levels including checking a generic account 00000, and
320703 -        if the code is not found, then 241 = 1 is set, and this goes to
320704 -        code for creating a new index. -goto bH_n_Si, ref SDS 0 MH5I
320705 -
320706 -
320707 -
320709 -     ..
320710 -    Account Look Up Enables Context When Navigating Organic Structure
320711 -    Context Navigating Organic Structure for Account Code Look Up
320712 -
320713 -
320714 - Line 460, ref OF 1 2N6M, -label bHP_Env in 03501
320715 -
320716 -    -label bHP_Env
320717 -    -gosub initl
320718 -
320719 -        This is where the profile is initially configured when a new
320720 -        index is opened.  -gosub initl
320722 -  ..
320723 - Line 470, ref OF 1 4R3O, -label P_strdD in 03501
320724 -
320725 -    -label P_strdD
320726 -    top
320727 -    z 6 80
320728 -    l /../
320729 -    -gosub pfacosd
320730 -
320731 -        Starting at top of index, zone to find the first account
320732 -        identified with consecutive dots, then do subroutine that
320733 -        positions the target line in the middle of screen to give the
320734 -        user context showing what is above and below the current
320735 -        subject of interest.
320736 -
320738 -  ..
320739 - Line 500, ref OF 1 05O4, -label lpf1d in 03501 about 30 lines below
320740 -
320741 -    savescr 17
320742 -    -label lpf1d
320743 -    rel_cur 1 0
320744 -    chrcnt 1 0
320745 -    -if @1 = 32 -goto lpf1d
320746 -    -if @1 = 46 aw
320747 -    -if @1 != 46 getscr 17
320748 -
320749 -        Save initial position and do a loop to walk the cursor down to
320750 -        the first indented account if one exists.  The primary Subject
320751 -        Index and all of the Function indexes do not have indented
320752 -        lines.  Sub indexes for subjects all have sub-elements that are
320753 -        indented, so this code applies this distinction to place the
320754 -        cursor on a line that provides context.
320755 -
320756 -
320758 -     ..
320759 -    Improve Navigation by Creating Path to Look Up a Subject Code
320760 -    Navigation Improved by Creating Path to Look Up a Subject Code
320761 -    Account Code Look Up Steps thru Indexes to Create Navigation Path
320762 -    Switch to Cycle through Looking Up Subject Index Code
320763 -
320764 -
320765 - Line 540, ref OF 1 UN7M, -label lpf1d in 03501 about 30 lines below
320766 -
320767 -    -if @121 = 1 -goto 2ha2ts
320768 -    getgbl 119 119
320769 -    -if @119 = 0 -goto 2ha2ts
320770 -    -if @119 = 55 -if @243 = 102 -if @258 = 2 -goto micsop
320771 -    setcnt 258 2
320772 -
320773 -        This is a switch that supports new method of opening organic
320774 -        structure to the level in a control field by stepping through
320775 -        intermediate indexes.  This provides a path that supports F1 F3
320776 -        to navigate back, per below. ref SDS 0 YB5N
320778 -         ..
320779 -        Get flags that show if this is an op to find an account code in
320780 -        the Subject or Function index, or merely to open the primary
320781 -        index. When 121 = 1 the account code has been located because
320782 -        the profile has been processed, per below, ref SDS 0 T13K, and
320783 -        so the code can -goto 2ha2ts rather than look for a specific
320784 -        code.  When 119 = 0 no code look up op is required.  When 244 =
320785 -        998 the Primary Function Index is opened, per above.
320786 -        ref SDS 0 X97J
320787 -
320788 -
320790 -  ..
320791 - Line 630, ref OF 1 PUQQ, -label sfss1t in 03501
320792 -
320793 -    -label sfss1t
320794 -    setcnt 86 1
320795 -    setcnt 87 32
320796 -    macro 1188
320797 -    ic 42
320798 -    chrcnt 117 0
320799 -    setgbl 117 @117
320800 -
320801 -        This code provides a new system to look up codes in the index
320802 -        that are entered in an SDS record Control Field.  It enables
320803 -        the User to scroll back and forward, rather than only forward,
320804 -        as with the present system, per planning above. ref SDS 0 S430
320805 -        setcnt 87 32 causes macro 1188 to reads segments by stopping on
320806 -        a space, and captures succeeding segments by adding a * with
320807 -        the command ic 42 between segemnts until the entire string has
320808 -        been processed. The ic 42 command that enters * also moves the
320809 -        cursor ahead, so reading that position with the command chrcnt
320810 -        117 0 establishes when the entire account has been processed
320811 -        based on when 117 = 32, which is a space, and this flag is used
320812 -        below at -label itstpc. ref SDS 0 ON4K
320813 -
320814 -
320816 -     ..
320817 -    Locate Command to Search for Code in an Index File
320818 -    Find Account File Level in Subject Index Specified in SDS Record
320819 -
320820 -
320821 - Line 680, ref OF 1 DC4F, -label micsop in 03501
320822 -
320823 -    -label micsop
320824 -    setcnt 121 0
320825 -    errorcnt 0 0
320826 -    loc_cur 3 1
320827 -    -label fpaclar
320828 -    *%09f
320829 -    z 4
320830 -    **
320831 -    l /
320832 -    -if @0 > 0 -goto nffp
320833 -    macro 22
320834 -
320835 -        This is the first of a two step "find" operation.  It initially
320836 -        looks for the account level that corresponds to the index file
320837 -        structure, and if this is found, then marco 22 marks the
320838 -        location to look for the full account code.  This is done
320839 -        before reaching the actual file where the account should be
320840 -        located, because sometimes it is convenient to put an account
320841 -        in an index file a level prior to actual code structure, and so
320842 -        we need a way to know when the target account is actually
320843 -        found.  If the account line is not found then go see if there
320844 -        is a Master index, or a chained segment index, and if so look
320845 -        in those indexes for the target line. -goto nffp, ref SDS 0
320846 -        QJ7H,
320848 -         ..
320849 -        -label fpaclar provides a subroutine for F1 F3 that steps back
320850 -        to a prior level.  This code finds the account code line used
320851 -        to access the next level. ref SDS 0 C97F
320852 -
320853 -
320855 -     ..
320856 -    Look for Actual Account Code in Every Index Level
320857 -    Subroutine Restore Account Line Returning from Prior Level F1 F3
320858 -
320859 -
320860 - Line 720, ref OF 1 HF3G, -label fpaclar in 03501
320861 -
320862 -    z 4
320863 -    **
320864 -    l /
320865 -    -if @0 = 0 -goto acfnD
320866 -    macro 23
320867 -    -goto msiop
320868 -
320869 -        Develop new cycle that will step through the organic structure
320870 -        until the specified account is found.  Macro 23 restores the
320871 -        file to the top, and -goto msiop goes to code that checks for a
320872 -        Master Index, and chained segment index, and then looks for
320873 -        another index level.  If another index level is not found, then
320874 -        the subject index ends and reports an error back to the User in
320875 -        the SDS record.
320876 -
320877 -
320879 -     ..
320880 -    Switch Scroll Through Sub-indexes, Chained Indexes
320881 -
320882 -
320883 - Line 810, ref OF 1 NR5N, -label msiop in 03501 about 40 lines below
320884 -
320885 -    -label msiop
320886 -    -gosub pfacosd
320887 -    -if @115 = 1000 -goto facssrd
320888 -    -if @121 = 1 -goto 2ha2ts
320889 -    -if @117 > 32 -goto facssrd
320890 -    -if @243 = 102 -goto facssrd
320891 -    -goto 2ha2ts
320892 -
320893 -        This is a switch to open sub-indexes for subjects and
320894 -        functions.  The code has found a line in sndx that is part of
320895 -        what the user requested, and has moved this target line down to
320896 -        display context.  fr /.. / places the cursor on the description
320897 -        of the account that was found.  If this is an F1 F3 op to
320898 -        return to a prior level, go use code for reading the account,
320899 -        -goto facssrd. ref SDS 0 DR6N  If 121 = 1 it means the search
320900 -        code has found the target line, so go end processing and return
320901 -        control to user, because this is the target destination. -goto
320902 -        2ha2ts, ref SDS 0 FH8O  If this is not a F1 F3 and if the code
320903 -        has found the target account, then 117 > 32 means the code has
320904 -        not completed processing all of the levels in the account code
320905 -        to find the right index file with the get command, so go get
320906 -        the index for the next level, -goto facssrd. ref SDS 0 DR6N  If
320907 -        all of above tests pass, it means the code has found the target
320908 -        line, so go end procesing and return control to the user. -goto
320909 -        2ha2ts, ref SDS 0 FH8O
320910 -
320912 -     ..
320913 -    Chained and Master Indexes Need Special Treatment
320914 -
320915 -
320916 - Line 1050, ref OF 1 OR9I, -label nffp in 03501
320917 -
320918 -    -label nffp
320919 -    setcnt 164 213
320920 -    setgbl 164 213
320921 -    top
320922 -    setcnt 0 0
320923 -    up 10
320924 -    z 10 80
320925 -    l- /. Master Index /
320926 -    -if @0 = 0 -goto msiop
320927 -    up 10
320928 -    setcnt 0 0
320929 -    l- /$$/
320930 -    -if @0 = 2 -goto msiop
320931 -
320932 -        The search code has not found the account, ref SDS 0 ED5M, so
320933 -        setcnt 164 213 to flag looking for Master and then chained
320934 -        indexes.  top command and up 10 looks from within 10 lines of
320935 -        the top of the file for Master and symbol for chained indexes
320936 -        $$.  If Master or chained index found go open it and look for
320937 -        the target account code in it. -goto msiop. ref SDS 0 ON4K
320938 -
320939 -
320941 -  ..
320942 - Line 910, ref OF 1 ZQ8K, -label nffp in 03501 about 30 lines below
320943 -
320944 -    -gosub otfg
320945 -    top
320946 -    loc_cur 0 43
320947 -    ic 36
320948 -    save
320949 -    -goto ESCj
320950 -
320951 -        Open transfer file. Trying to close Subject Index to report
320952 -        back to SDS record that the code was not found.  Need flag $ in
320953 -        col 43 so 035012 will continue processing, per above,
320954 -        ref SDS 0 HL4L, to give an error message after finding that the
320955 -        content is the same. -goto ESCj, ref SDS 0 YZ5M,
320956 -
320957 -            [On 031002 developed 070301 to use "A" symbol instead of $
320958 -            to tell 035012 to replace the schedule with the file on the
320959 -            disk that has a new task for action item review meetings.
320960 -            ref SDS 13 344M
320962 -             ..
320963 -            [On 031014 developed 0042 to use "N" symbol instead of $ to
320964 -            tell 035012 to replace the schedule with the file on the
320965 -            disk that has a new task scheduled. ref SDS 14 3I4H
320966 -
320967 -
320969 -     ..
320970 -    Account Code Found Return Control to User
320971 -    Error Message Code Look Up from SI to SDS Record Failed
320972 -    Profile Error Messages Code Look Up Complete
320973 -    Look Up Code Listed in SI Error Message Failed to Find in SDS Rec
320974 -
320975 -
320976 - Line 960, ref OF 1 L46H, -label 2ha2ts in 03501
320977 -
320978 -     -label 2ha2ts
320979 -     load c:\sd\03\03501
320980 -     addcnt 134 1
320981 -
320982 -         Code has found target line, per above switch above that
320983 -         controls processing to look up accounts. ref SDS 0 ON4K
320984 -
320986 -     ..
320987 -    -label bP_pr
320988 -    -gosub bHpf081
320989 -    -if @100 = 3311 -goto delSI
320990 -    -if @142 = 99 -return
320991 -    getgbl 127 127
320992 -    -if @127 = 0 -exit
320993 -    beep
320994 -    -if @127 = 838 errormsg  Code not found in SDS record
320995 -    setcnt 127 0
320996 -    setgbl 127 0
320997 -    -exit
320998 -
320999 -        The code has completed finding a specified account from a
321000 -        control field or from a subject report spec.  -gosub bHpf081
321001 -        calls system profile to give user control of the computer; If
321002 -        @100 = 331 this is a op completing the deletion of an index
321003 -        file for this account, ref OF 1 8B6O, so go give the message.
321004 -        -if @142 = 99 -return is for Ctrl F6; Errors are evaluated with
321005 -        getgbl 127 127 gets flag set above when counter 119 is
321006 -        evaluated opening the transfer file. ref SDS 0 EM65  setgbl 127
321007 -        838 is set in transfer file by 032012, per above. ref SDS 0
321008 -        9A6J
321009 -
321010 -
321011 -
321012 -
321013 -
3211 -

SUBJECTS
Ctrl F6 E Command Scroll Between Subject and SDS Record Open in Start

3303 -
330401 -     ..
330402 -    Ctrl F6 Scroll Edit Chain Open Originating SDS Record for Context
330403 -    Context Ctrl F6 Scroll Edit Chain Open Originating SDS Record
330404 -
330405 -
330406 -        [On 030920 this work was performed. ref SDS 11 GH3X
330407 -
330408 -
330409 -
330410 -
330411 -
3305 -

SUBJECTS
Save New Index

3403 -
340401 -     ..
340402 -    F2 Save Needs to Return for Task Creating a New Subject Index Level
340403 -
340404 -
340405 - Line 990, ref OF 1 QR6H, -label bH_sVx in 03501
340406 -
340407 -    This is standard code to save an index.
340408 -
340409 -    -if @123 != 666 -goto nSrt
340410 -    -if @237 = 883 -return
340411 -
340412 -        Added code to avoid saving a sorted index when the "save" code
340413 -        is called by code for F1 F2 that uses code for F1 F3 to go back
340414 -        a level in order to create the structure needed for making a
340415 -        new index, if there is not an index for the next level when F1
340416 -        F2 is called to scroll forward in the organic structure.  The
340417 -        -return command avoids saving the sorted list, per below,
340418 -        ref SDS 0 HM5J, which would otherwise corrupt the index file.
340419 -
340421 -  ..
340422 - Line 940, ref OF 1 EU5G, -label svsif in 03501 about 40 lines below
340423 -
340424 -    -if @237 = 883 -return
340425 -
340426 -        This allows save to be called as a subroutine, which is needed
340427 -        for an improvement today that enables User to create a new
340428 -        subject index level without having to remember to save the
340429 -        initial level that uses code for processing a prior level, per
340430 -        below. ref SDS 0 T36H
340431 -
340432 -
340433 -
340434 -
340435 -
3405 -

SUBJECTS
F1 F3 Prior Level Navigate Back in Organic Structure
Position Target Account Line in Middle of Screen When Scrolling Back
Sorted Indexes Restore Position in Actual Index When Scrolling Back w

3705 -
370601 -     ..
370602 -    F1 F3 Prior Level Index
370603 -
370604 -
370605 - Line 1110, ref OF 1 WF6M, -label bH_prior in 03501
370606 -
370607 -    -label bH_prior
370608 -    setcnt 123 0
370609 -    setcnt 115 1000
370610 -    -if @163 != 1000 -goto ncnsil
370611 -    e c:\sd\03\03501
370612 -    -goto sbpsifa
370613 -
370614 -       setcnt 115 1000 tells code that changes the index files that a
370615 -       backward navigation op is underway.  If not an op to create a
370616 -       new index, -goto ncnsil. ref SDS 0 XD6L  163 = 1000 is set by
370617 -       code for creating a new index level, started by F1 F2, per
370618 -       below, ref SDS 0 363K, so open 03501 and jump to code that reads
370619 -       the prior index back into sndx; the locate command is already
370620 -       positioned by the prior pass using F1 F2 to open the next level.
370621 -
370623 -  ..
370624 - Line 1140, ref OF 1 X65G, -label ncnsil in 03501 about 20 lines
370625 - below
370626 -
370627 -    -label ncnsil
370628 -    z 1 60
370629 -    -if @123 != 666 -goto nsif4
370630 -    setgbl 123 666
370631 -    -goto psif5
370632 -
370633 -       Set a zone to do locate commands.  If this is not a sorted list,
370634 -       then use the account code at the top of the index as the
370635 -       parameter for locating the target line to restore the prior
370636 -       index level when stepping back. -goto nsif4, ref SDS 0 IV3J  If
370637 -       123 = 666 this is an assembled composite list so set a flag that
370638 -       a sorted index is being processed, and then go use the current
370639 -       line, -goto psif5, ref SDS 0 6P9L, to develop a search argument
370640 -       to find this same line in the corresponding index file, in other
370641 -       words, for a sorted list F1 F3 does not actually step back a
370642 -       level, but returns to the level where it is occurs in the
370643 -       organic structure.  This provides context for decision making,
370644 -       and the user can then continue navigating if needed.
370646 -  ..
370647 - Line 1170, ref OF 1 IM6I, -label bH_prior in 03501 about 40 lines
370648 - below
370649 -
370650 -    -label nsif4
370651 -    top
370652 -    l /../
370653 -
370655 -     ..
370656 -    -label psif5
370657 -    -gosub rsiacs
370658 -    setgbl 105 @100
370659 -
370660 -        Since we are scrolling backward, capture account at the top of
370661 -        the index as the key to look for the corresponding line in the
370662 -        prior index.  Find the first row of double dots from the top of
370663 -        the file this that will be the account in the prior level that
370664 -        openned the current level.  -gosub rsiacs reads the account
370665 -        code with macro 1188.  setgbl 105 @100 places the column of the
370666 -        end of the account code in global 105 to use for the ending
370667 -        search delimiter in the prior index.
370668 -
370670 -  ..
370671 - Line 1280, ref OF 1 SN8L, -label lp$s in 03501
370672 -
370673 -    getgbl 123 123
370674 -    -if @123 != 666 -goto npssi
370675 -
370676 -         Get global for a sorted list, and if it is a sorted list,
370677 -         then do a routine that checks any chained indexes.
370679 -     ..
370680 -    z 10 90
370681 -    errorcnt 0 0
370682 -    -label lp$s
370683 -    fr /$$$/
370684 -    -if @0 > 0 -goto egcar$
370685 -    immed d
370686 -
370687 -         The code is processing the get command stack, and this loop
370688 -         deletes file specs for chained indexes in order to start
370689 -         looking for the target account in a prior level at the initial
370690 -         level, otherwise there is no way to find the target line if it
370691 -         is a chained index that is not listed.  So, if it is not a
370692 -         chained index, just jump out and do not process the loop.
370693 -         -goto egcar$, ref SDS 0 5R7K
370695 -     ..
370696 -    loc_cur 15 1
370697 -    immed r
370698 -    loc_cur 4 1
370699 -    -goto lp$s
370701 -     ..
370702 -    -label egcar$
370703 -
370704 -
370706 -        ..
370707 -       Navigate Back to Exact Account Code Line in Sorted List
370708 -       Sorted List Navigate Back to Exact Account Code Line
370709 -
370710 -
370711 - Line 2050, ref OF 1 D16F, -label bH_mrk in 03501
370712 -
370713 -    -gosub fpaclar
370714 -    setcnt 115 0
370715 -
370716 -        Changed concept and method of saving and restoring position
370717 -        when navigating forward and backward for context management.
370718 -        Instead of marking each index level separately for positioning,
370719 -        will now use the new locate command developed for finding code
370720 -        in the index. -gosub fpaclar, ref SDS 0 ZE5M
370722 -         ..
370723 -        This improves memory management and increases support for
370724 -        context by enabling the user to find the actual listing for an
370725 -        account in a sorted list, and then navigate forward and
370726 -        backward from that position.
370728 -         ..
370729 -        Ctrl F6 in a sorted list can now scroll back to the smaller
370730 -        segmeneted index before opening an originating SDS record,
370731 -        which reduces the burden on opening a record from a large
370732 -        assembled sorted list.
370733 -
370734 -             [On 030920 developed new design for Ctrl F6 that scrolls
370735 -             the edit chain by initially opening the originating record
370736 -             so that operations in multiple sessions for better memory
370737 -             management appear transparent to the user. ref SDS 11 GH3X
370738 -
370740 -  ..
370741 - Line 2190, ref OF 1 XB4N, -label rstFlg in 03501
370742 -
370743 -    -label rstFlg
370744 -    setcnt 123 0
370745 -    setgbl 123 0
370746 -    setcnt 115 0
370747 -    -goto bP_pr
370748 -
370749 -        Code has determined this is an F1 F3 prior index op, because
370750 -        115 = 1000, so reset global counter 123 flags for a sorted
370751 -        list, set per above,
370752 -        in case that was the case, and reset the F1 F3 flag.
370753 -
370754 -
370755 -
370756 -
3708 -

SUBJECTS
F1 F2 Next Level Navigate Forward in Organic Structure
New Account Create at Next Level Called Automatically by F1 F2 and Us

3804 -
380501 -     ..
380502 -    F1 F2 Open Next Subject Index Level
380503 -
380504 -
380505 - Line 1550, ref OF 1 MT5G, -label bHSf2 in 03501
380506 -
380507 -    -label bHSI_S
380508 -
380509 -        This code begins process of opening a new index level, which is
380510 -        the initial step in making new accounts.
380512 -         ..
380513 -        Eliminated mark and return system used the past 15 years.  A
380514 -        new system was developed that does not require saving
380515 -        positioning to restore when navigating.  New code for F1 F3 to
380516 -        step back improves the prior method by enabling the User to
380517 -        open an index for the line of an account in an assembled,
380518 -        composite sorted list, per above. ref SDS 0 IV3J
380519 -
380521 -  ..
380522 - Line 1570, ref OF 1 SX6N, -label svscrI in 03501 about 40 lines below
380523 -
380524 -    setcnt 237 883
380525 -    -gosub bH_sVx
380526 -    setcnt 237 0
380527 -    setcnt 123 0
380528 -
380529 -        For opening next level, decided to add code that calls
380530 -        subroutine to save the current index level; requires flag
380531 -        setcnt 237 883 for -gosub bH_sVx, per above, ref SDS 0 FQ6M, so
380532 -        that if the User decides to make a new index; then reset flag
380533 -        so F2 save runs normally.  Per planning above, this feature
380534 -        eliminates prior problems that occurred when a new account code
380535 -        was created and then opened. ref SDS 0 5Z5M  At that point,
380536 -        there is an instruction that if the prior level was not saved,
380537 -        then the User has to return to the prior level.  Since it
380538 -        wasn't saved, all the work was lost and has to be created again
380539 -        then saved. Adding an automatic save feature when using F1 F2
380540 -        solves the problem, and so enables eliminating a long complex
380541 -        explanation for creating a new subject index level, per below.
380542 -        ref SDS 0 634K
380544 -         ..
380545 -        setcnt 123 0 command is moved today to below the call to the
380546 -        subroutine that saves the index, so that the save code will run
380547 -        but also will not save a sorted index, per above. ref SDS 0
380548 -        XN5M
380549 -
380551 -  ..
380552 - Line 1450, ref OF 1 S86M, -label facssrd in 03501
380553 -
380554 -    -label facssrd
380555 -    -gosub rsiacs
380556 -    setgbl 106 @100
380557 -
380558 -        Go to subroutine to capture the account string to load the get
380559 -        command for the account index file. -gosub rsiacs, ref SDS 0
380560 -        C48I, Since this same code will be used to create a new index
380561 -        level.  Make value global for line length in counter 100
380562 -        created using macro 1182 in the subroutine, so it can be used
380563 -        to set the zone for the operation that creates a new index
380564 -        level, if it turns that the next level does not yet exist, and
380565 -        the User decides to create it.
380566 -
380567 -
380569 -  ..
380570 - Line 1480, ref OF 1 QT9R, -label facssrd in 03501 about 40 lines
380571 - below
380572 -
380573 -    e c:\sd\03\03501
380574 -    line                && *%10
380575 -    loc_cur 4 5
380576 -    ins_text !      !
380577 -    getgbl 1 106
380578 -    inscnt 1 0
380579 -    loc_cur 6 4
380580 -    setcnt 86 4
380581 -    macro 1181
380582 -    getgbl 1 164
380583 -    -if @1 = 213 -goto pcsI3
380584 -    -goto ncsIj
380585 -    -label pcsI3
380586 -    z 1 90
380587 -    fl /$$/
380588 -    rel_cur 0 2
380589 -    -label ncsIj
380590 -    ins_text !./                                                  !
380591 -
380592 -        Open 03501 and load the search command so that if the next
380593 -        level does not exist, the code can get back to the same
380594 -        position in the current level.  This is needed for creating a
380595 -        new level and to restore the user to same context that existed
380596 -        when F1 F2 was pressed.  getgbl 1 164 checks to see if this is
380597 -        processing a chained segment index, and if so, shear off the
380598 -        numerical portion of $$nn that identifies a chained segmented
380599 -        index, because at the next level, the $$nn string has been
380600 -        incremented.
380601 -
380603 -  ..
380604 - Line 1630, ref OF 1 A63O, -label rsiacs in 03501
380605 -
380606 -    of 0
380607 -    loc_cur 0 1
380608 -    setcnt 80 0
380609 -    setcnt 86 1
380610 -    setcnt 0 0
380611 -    setcnt 87 46
380612 -    macro 1188
380613 -    setcnt 87 0
380614 -    -return
380615 -
380616 -        This subroutine captures account code to load get command, so
380617 -        loc_cur 0 1 puts cursor on col 1.
380618 -
380619 -
380620 -
380621 -
380622 -
3807 -

SUBJECTS
Instruction Message New Subject Index Account Explaining Press F1 to

3903 -
390401 -       ..
390402 -      Instructions and Functions for Making New Subject Index Level
390403 -      New Subject Index Instruction Message and Function Assignments
390404 -      Message Instruction and Functions for Creating New Subject Index
390405 -
390406 -
390407 - Line 1930, ref OF 1 MI6M, -label bH_n_Si in 03501
390408 -
390409 -    -label bH_n_Si
390410 -    g c:\sd\03\035011
390411 -    pfb1i savescr 15
390412 -    pfb1 @c:\sd\03\03501 -gg strtMp
390413 -
390414 -        Assign mouse pointer to execute F1, F3 and ESC.
390416 -     ..
390417 -    pf1 @c:\sd\03\03501 -gg bHn_SI, ref SDS 0 363K
390418 -
390419 -        Make a new subject index file.
390421 -     ..
390422 -    pf3 @c:\sd\03\03501 -gg nrgbtp
390423 -
390425 -         ..
390426 -        When the get file operation fails, per above, control passes to
390427 -        this section. ref SDS 0 B55N
390429 -         ..
390430 -        Get file 035011 is the message with instructions on how to
390431 -        start a new subject level. ref SDS 0 SC8F  pfb1i executes when
390432 -        the mouse is called and saves the cursor location; pfb1 calls
390433 -        mouse code pfb1 that is below the instructions in the file
390434 -        035011.  F1 executes the code to open a new level. -goto
390435 -        bHn_SI, ref SDS 0 363K  F3 executes code that returns to prior
390436 -        level, in effect provides a way for the user to have a change
390437 -        of mind and decide not to create a new level. ref SDS 0 YB5N
390439 -         ..
390440 -        Improvement made today that saves the current index when
390441 -        opening another level, ref SDS 0 T36H, elimiates the need for
390442 -        the user to remember about performing this task before calling
390443 -        F1 F2 to create a new index.  This eliminates the need for
390444 -        explaining in the menu screen about returning to the prior
390445 -        level to save new structure then using F1 F2 again to create a
390446 -        new index, before trying to start a new index level.
390447 -        Therefore, this screen is simplified by removing the
390448 -        instruction, which confuses new users (saying go back and do
390449 -        over what you just did, then go forward again to where you are
390450 -        now) trying to fathom the complexity of management supported by
390451 -        SDS.
390452 -
390453 -
390454 -
390455 -
3905 -

SUBJECTS
Instruction Message New Subject Index Account Explaining Press F1 to
F1 F2 F1 New Account Instruction Message Explaining Press F1 to Make

4104 -
410501 -       ..
410502 -      Make New Subject Index Level
410503 -      New Subject Index Build Organic Structure
410504 -
410505 -
410506 - Line 3130, ref OF 1 JQ3M, -label bHn_SI in 03501
410507 -
410508 -    -label bHn_SI
410509 -    setcnt 163 1000
410510 -    setcnt 121 1
410511 -    -gosub bH_prior
410512 -
410513 -        This code has to work differently now, because the change from
410514 -        using marks to identify positioning of prior levels uses an
410515 -        account code string at the top of sndx to determine the account
410516 -        to position in the prior level, rather than use a return to
410517 -        mark macros for navigation, per above. ref SDS 0 C97F  When the
410518 -        next index message is read into SNDX, there is no account code
410519 -        to find. For this op, we don't need it because the purpose of
410520 -        having this string is to load it into the locate command and
410521 -        this is already done by F1 F2.  So, all we have to is switch
410522 -        things around a bit.
410524 -         ..
410525 -        setcnt 163 1000 establishes this op is underway.  setcnt 121 1
410526 -        is to avoid doing a code lookup, per above. ref SDS 0 OI9L
410527 -        -gosub bH_prior calls code for F1 F3 that returns to the prior
410528 -        level, ref SDS 0 YB5N, to obtain the structure and beginning
410529 -        content for the new level.  These flags enable code for prior
410530 -        level to avoid configuring the account look up commands, since
410531 -        they are already configured.
410532 -
410534 -  ..
410535 - Line 30, ref OF 2 QH5F, in 035011
410536 -
410537 -    This is the message that is read into sndx with the get command,
410538 -    per above, ref SDS 0 MH5I, telling user what function keys to use
410539 -    or where to click the mouse to either start a new index, or go back
410540 -    to priorr level.
410541 -
410542 -
410544 -     ..
410545 -    Find Subject Code in SDS Record that is Listed in Subject Index
410546 -
410547 -
410548 - Line 3170, ref OF 1 AX7N, -label ticluo in 03501
410549 -
410550 -    -label ticluo
410551 -    immed a
410552 -    loc_cur 0 1
410553 -    rel_cur 1 0
410554 -    ic 37
410555 -    ic 51
410556 -    ic 32
410557 -    inscnt 127 0
410558 -
410559 -        Enter key and double click within columns 1 - 15 set counter
410560 -        127 838 for an operation to capture account code on the cursor
410561 -        line and look for this account anywhere in the SDS record.  At
410562 -        this point the code is in the trasfer file and has determined
410563 -        that 127 has been set to 838, so it adds a line and enters the
410564 -        flag 838 for 035012 when control passes back to the SDS record
410565 -        in the primary windows session.  The relative cursor position
410566 -        is saved to restore the Subject Index if the account is not
410567 -        found in the SDS record, which returns back through the Start
410568 -        session and opens the SI at this same location to notify the
410569 -        user that the search was not successful, per processing above.
410570 -        ref SDS 0 EM65
410571 -
410572 -
410574 -     ..
410575 -    Cursor Positioned on Date Field 1st Step New Account ID
410576 -
410577 -
410578 - Line 3300, ref OF 2 346I, -label genrl in 03501
410579 -
410580 -    datecnt 3 0
410581 -    ic 32
410582 -    pushc
410583 -    macro 87
410584 -
410585 -        Added pushc to save postion for restoring the cursor to the
410586 -        date field part of the account ID, after completing
410587 -        construction of the account structure.
410588 -
410589 -            [On 050303 major update added this code and reported in
410590 -            this record. ref SDS 18 379I
410591 -
410593 -  ..
410594 - Line 3320, ref OF 2 9A6O, -label genrl in 03501 about 60 lines below
410595 -
410596 -    immed 12a
410597 -    popc
410598 -    rel_cur 2 2
410599 -
410600 -        Position cursor on the month part of the date field in the
410601 -        account ID, because this normally needs to be edited first.
410602 -        The User already has captured account descriptions either from
410603 -        another subject, or from headlines in the SDS record.
410604 -
410605 -
410606 -
410607 -
410608 -
410609 -
410610 -
4107 -

SUBJECTS
Enter & Mouse Support, 920710
Enter Assigned Macro 232 in Subject Index by 03501

4204 -
420501 -     ..
420502 -    Enter for Subject Index Operations
420503 -
420504 -
420505 - Line 2610, ref OF 1 5590, -label bHpf081 in 03501 about 110 lines
420506 - below.
420507 -
420508 -    pfent macro 232
420509 -
420510 -        Enter in 03501 for subject index calls macro 232 in 000001.
420511 -        ref SDS 0 VN9K, which in turn calls -label ecsitcf in 03501 to
420512 -        execute several tasks. ref SDS 0 687G
420513 -
420515 -  ..
420516 - Line 2210, ref OF 1 UV6I, -label bHpf081 in 03501
420517 -
420518 -    -label bHpf081
420519 -    setcnt 121 1
420520 -
420521 -        changed main profile that sets up function key assignments to
420522 -        setcnt 121 1 because this means any code look up has been
420523 -        accomplished, and so provides a switch to prevent further code
420524 -        look up after control has passed to User, per above.
420525 -        ref SDS 0 OI9L
420526 -
420527 -
4206 -

SUBJECTS
Scope 5 Tasks Performed by Enter Mouse Macro 232

4303 -
430401 -     ..
430402 -    Scope Enter Mouse 5 Tasks in Subject Index
430403 -    Enter, Mouse Scope 5 Tasks in Subject Index
430404 -    Mouse and Enter Scope 5 Tasks in Subject Index
430405 -
430406 -
430407 - Line 2990, ref OF 1 QX8G, -label ecsitcf in 03501
430408 -
430409 -    -label ecsitcf
430410 -    -if @0 = 565 -if @127 = 838 -goto cluoo
430411 -    -goto ncluo
430412 -
430413 -        This is the main code for Enter in the subject index processed
430414 -        initially by macro 232 in 00001, ref SDS 0 VN9K, where it sets
430415 -        127 838 when the user wants to find a subject in an SDS record.
430416 -        It controls 6 tasks.  Enter or double click....
430417 -
430418 -           1.  1st 10 columns of a subject description captures the
430419 -               account code and the 1st 60 columns of the description
430420 -               and enters into a Control Field of an SDS record.
430422 -                ..
430423 -           2.  Beyond 1st 10 columns of subject description, the code
430424 -               goes and executes F1 F2 to open the next level in the
430425 -               organic structure for the current account.
430427 -                ..
430428 -           3.  1st 10 columns in front of the subject description the
430429 -               code calls macro 04401 to run a subject report for the
430430 -               current subject account.
430432 -                ..
430433 -           4.  Less than 10 columns in front of subject description the
430434 -               code executes F1 F3 to return to the pior level in the
430435 -               organic structure, i.e., goes back one level.
430437 -                ..
430438 -           5.  1st 15 columns of the file, the code finds the current
430439 -               account code in the originating SDS record; macro 232
430440 -               sets 127 838, per above. ref SDS 0 687G and is processed
430441 -               below. ref SDS 0 QS5F
430443 -                ..
430444 -           6.  If the cursor is not on a subject or function account
430445 -               line, then it performs a normal carrage return line
430446 -               feed function.
430447 -
430448 -
430449 -
4305 -

SUBJECTS
ESC Quit Close Subject Index Operation Macro 139 , 910522

4403 -
440401 -     ..
440402 -    ESC for Subject Index Operations
440403 -
440404 -
440405 - Line 2600, ref OF 1 XJ4N, -label bHpf081 in 03501 about 90 lines
440406 - below
440407 -
440408 -    pfesc @c:\sd\03\03501 -gg ESCj
440409 -
440410 -        ESC purges open files and calls quit, per below. ref SDS 0
440411 -        JJ8H,
440412 -
440413 -
440415 -     ..
440416 -    ESC $ Signals No Task to Perform Returning from 2nd Session
440417 -
440418 -
440419 - Line 3020, ref OF 1 GU3G -label ncluo in 03501
440420 -
440421 -    loc_cur 0 43
440422 -    ic 36
440423 -
440424 -        Enter $ in column 43 to establish that activity occurred.  When
440425 -        ESC is pressed, this symbol is not entered and so signals
440426 -        035012 when the 2nd session closes that there is nothing to do,
440427 -        per above. ref SDS 0 HL4L
440428 -
440429 -
440430 -
440432 -     ..
440433 -    Find Subject Account in SDS Record Listed in Subject Index
440434 -
440435 -
440436 - Line 3560, ref OF 1 RN6F, -label ncluo in 03501 about 100 lines below
440437 -
440438 -    getgbl 2 2
440439 -    ic 37
440440 -    -if @2 = 58 ic 49
440441 -    -if @2 != 58 ic 50
440442 -    ic 32
440443 -    setcnt 86 1
440444 -    -if @2 = 58 setcnt 86 4
440445 -    macro 1181
440446 -    -if @127 = 838 -goto ticluo
440447 -
440448 -        The code is called by Enter in SI, per above, ref SDS 0 SL8J,
440449 -        and is now in the transfer file stufq7y to enter a subject
440450 -        account string for processing in the originating SDS record by
440451 -        035012, per above. ref SDS 0 9A6J  getgbl 2 2 determines when a
440452 -        function or subject account is captured based on a colon ":" in
440453 -        column 2, because the subject index uses this method to tell
440454 -        the user which drive supports each subject.  ic 37 enters a %
440455 -        which flags the line for data type.  -if @2 = 58 then the
440456 -        account has a colon, so it is a subject, and this is identified
440457 -        with a "1", which is char 49. Otherwise enter a 2 for a
440458 -        function; these are interpreted by 035012 in the originaing
440459 -        session to tell the system whether to look in the Function or
440460 -        Subject field.  If 2 = 58 tells the code this is a control
440461 -        field op for subjects, so enter the account beginning with col
440462 -        4, since that is where the actual code begins in the Subject
440463 -        Index.
440464 -
440465 -
440466 -
440467 -
440469 -  ..
440470 - 000001  Enter for Subject Index
440471 -
440472 - Line 1610, ref OF 9 4125, -entry 232 in 00001
440473 -
440474 -    -entry 232
440475 -
440476 -        This is the standard operation when Enter is pressed or double
440477 -        click occurs in the Subject Index, per above. ref SDS 0 SL8J
440478 -
440480 -  ..
440481 - Line 1690, ref OF 9 4290, -label stcr141 in 000001 about 30 lines
440482 - below
440483 -
440484 -    -if @221 > @140 -if @221 <= @141 -goto 04402x
440485 -
440486 -        This is part of macro 232.  If Enter is pressed within 10
440487 -        characters of the beginning of the description, then go run
440488 -        03501 #13 to load a spec to a control field. -goto 04402x
440489 -
440491 -  ..
440492 - Line 1710, ref OF 9 RU5K, -label 04402x in 000001
440493 -
440494 -    -label 04402x
440495 -      @c:\sd\03\04402
440496 -    @c:\sd\03\03501 #13
440497 -    -exit
440498 -
440499 -        Former call to 04402 for entering subject spec at the cursor
440500 -        into the originating SDS record and enter the description, is
440501 -        changed because that code is now split between 03501 and
440502 -        035012.  Macro file 03501 starts the process by capturing the
440503 -        spec and putting it into the transfer file.  Work is completed
440504 -        by 035012 after the 2nd session is closed and control passes
440505 -        back to the primary session.
440506 -
440507 -
440508 -
440509 -
440510 -
440511 -
4406 -

SUBJECTS
User Access Level Customize for Security Need to Know Speed Ease of L
Copy from Master to Current the name & code of new project
Copy Subject Descriptions F3 Captures Subject Descriptions for Transf

4705 -
470601 -  ..
470602 - Disconnect Transfer Subject from Master to Standard Index
470603 - Master Transfer Subject to Standard Index Disconnect
470604 - Disconnect Access Subject Index Customize to User Requirements
470605 - Access Subject Index Customize to User Requirements Disconnected
470606 -
470607 - Line 3400, ref OF 1 G15M, -label mpnt in 03501
470608 -
470609 -    -label mpnt
470610 -    macro 16
470611 -    of 0
470612 -    line 1
470613 -
470614 -        Disconnected this subject because the code for transferring
470615 -        subjects to another index created on 030809, ref SDS 7 654G,
470616 -        makes this generally redundant; this saves some memory.
470617 -
470619 -  ..
470620 - Line 3290, ref OF 1 2X4M, -label pSIel in 03501
470621 -
470622 -    -label pSIel
470623 -    e c:\sd\03\03501
470624 -    z 1 4
470625 -    macro 22
470626 -    down
470627 -
470628 -        This code is described as a function to enable a user to
470629 -        customize the level of entering the SI, as explained in Help,
470630 -        h: sd 05 @03501 line 30. ref OF 12
470632 -         ..
470633 -        At this time the feature will not be supported, so unplugged
470634 -        it.
470635 -
470637 -  ..
470638 - Line 160, ref OF 7 7V7M, -label subjQ in 050409 about 70 lines below
470639 -
470640 -    ins_text "º Copy from Master to Current          º"
470641 -    loc_cur 0 80
470642 -    ins_text " @C:\SD\03\03501 #19  "
470643 -    rel_cur 1 -65
470644 -
470645 -        See explanation above. ref SDS 0 1X8K
470646 -
470647 -
470648 -
470650 -  ..
470651 - Line 170, ref OF 7 SM8J, -label subjQ in 050409 about 80 lines below
470652 -
470653 -    ins_text "º Set Start Level                      º"
470654 -    loc_cur 0 80
470655 -    ins_text " @C:\SD\03\03501 #18   "
470656 -    rel_cur 1 -65
470657 -
470658 -        Disconnected this in Subject Index menu for "subjects.
470659 -
470660 -
470661 -
470662 -
470663 -
470664 -
470665 -
470666 -
470667 -
470668 -
470669 -
470670 -
470671 -
470672 -
4707 -