## Blast From The Past

### Peeking Back Three Years: NL74 and NL75

#### Hey, Campers!

What was happening in the Liberty BASIC Newsletter in June of 2000, three years ago this month?

I'm glad you asked.

First of all, there were two newsletters issued in June of 2000: NL74 and NL75. Both were copyright Side by Side Software, a co-proprietor of which was the esteemed Alyce Watson.

One focus of Newsletter 74 was the open source editor, identified as Open13.bas in it's filename, but as "Open Source Editor v1.0" in the comments of the source code. The changes to the Open Source Editor at that time involved upgrades to allow it to recognize the new of the features of Liberty BASIC 2.0. Even though LB2 would not have its official release until six months later in December of 2000, LB programmers were busily shaking it down for its substantive features in a beta release.

Screenshot: Masthead of NL74

So, how was the Open Source Editor improved? Since, for the first time, the upcoming LB2 would feature subs, the newest version of the Open Source Editor would now search for the word "sub", and place that code line in the list of branch lables:

    if lower$(left$(trim$(line$),8))="sub" then
        branch$(bx)=trim$(line$)
        bx=bx+1
    end if

#### NL74 Discusses a Code Library

Not long prior to the publication of NL74, Cameron Arnott wrote a function that retrieved the color of a system attribute, such as a button or title bar color. Functions as useful as this deserve a special place. So Side by Side took the opportunity to include code library management in the new Open Source Editor.

The code library itself was a text file. Each code snippet would have a particular marker indicating the start of the snippet, `">"`, and a different marker indicating the end of the snippet, `"}"`. The code library management would open the text file, scan for these markers, and place the snippet titles in an array. The user could then extract the snippet by selecting the snippet title from a combo box.

Very nice, indeed! About a year later, however, the Open Source Editor was ported to LB3. At that time, snippet management was removed from the Editor since snippet management featured LB2 syntax.

Other topics in NL74 included the new capabilities of LB2's ComboBox control, and detailed discussions of several API functions: `ShellExecute`, `WinExec`, and `FindExecutable`.

#### Help Arrives in NL75

Issue #75 provided the first discussion of the creation of help documents in the history of the newsletter, a history which began two years earlier in April of 1998.

Side by Side started out by discussing how to open a standard .hlp file by invoking Microsoft's help engine, Winhelp. Liberty BASIC's native `RUN` command was sufficient for this:

    [help]
        run "winhelp liberty.hlp"
        goto [loop]

Following that, the article revealed how to accomplish the same task by API calls; namely, by use of the `ShellExecute` function which was also discussed in NL74.

After identifying the various help compilers provided for free by Microsoft, Side by Side discussed authoring tools for the creation of the actual help content. Specifically, a thorough explanation of the freeware tool, Oasis SE, was given. (Good news: Oasis SE is still out there, and still free. See [http://www.interfeb.com/] to download it.)

Before concluding the help discussion, Side by Side mentioned several ways in which native LB controls could be used to provide help content for users.

#### NL75 Sorts It Out

Newsletter #75 finished by featuring an extensive and carefully assembled program by David Szafranski on sorting algorithms. In David's introduction, he indicated that he found the code in the usenet newsgroup `alt.lang.basic`, and personally converted it to LB format. The program providing measurements of the time needed to sort a dataset using each of the following nine algorithms:

- Bubble Sort
- Bubble Sort (Enhanced 1)
- Bubble Sort (Enhanced 2)
- Exchange Sort
- Heap Sort
- Insertion Sort
- QSort
- Shell Sort
- LB Native Sort

Though splendidly crafted, David's sorting program will not run on my own system. Execution haults when the program attempts to call `"user.dll"` which is not a library component of Windows XP. `"user.dll"` was employed by David in order to use the `"GetTickCount"` function.

And that, my friends, is what happened three years ago this month in the Liberty BASIC Newsletter.