BEEST

The BEEST (animal) program was intended to demonstrate the possibilities of a multi-user system. It was written jointly by Luc and Jelte for the DJOE "open house" day of 1985 and was really the only multi-user CP/M program we ever wrote for the ORDINATOR.

The BEEST program was basically a multi-user binary decision tree builder. Each internal node of the tree contained a yes/no question; each leaf node contained an answer. The idea was to have all users simultaneously walk the decision tree, as determined by the answers to each yes/no question, until they arrived at a leaf node. If the leaf node's answer wasn't correct, the user was asked to enter the correct answer and a new question to differentiate the existing answer from the correct one, thus extending the tree with one question and one answer.

The name of the program derived from the initial contents of the tree, which had a root node containing the question IS HET EEN BEEST? (is it an animal?). If memory serves correctly, the initial answers where MENS (human) and OLIFANT (elephant). When we went to Oslo in 1986, we translated the BEEST program into English, thus producing ANIMAL, which always started by asking IS IT AN ANIMAL?

Although the program worked beautifully when used correctly, in practice visitors often entered garbage questions or answers or changed their mind halfway, thus messing up the decision tree. At first we had no other recourse than to restart the program, resetting the tree, but later a load/save function was implemented that allowed us to reverse to a "known good" tree when it had gone bad. The correct fix for the problem would have been an on-line tree editing facility, which we talked about but never implemented.

In order to make the program visually appealing to a visitor, we added a nice "logo" screen containing blown-up title and ASCII art. We later extended this idea to an advertising display on the console terminal; henceforth much time was spent each "open house" day to write advertisements, jokes, etc for the display.

The BEEST program ran in one of two modes: mother (server) or child (client). The first instance to be started would automatically become the mother; subsequent instances would become child programs relying on the mother program to keep the decision tree. The communication between mother and child programs was carried out over the three PIPEn devices of TS, which were implemented especially for this program.

BEEST was really the only program that ever used the PIPEn devices and it depended intimately on the scheduling details of the implementation. When these details changed in later years, BEEST stopped working and we never took the time to fix it.

The BEEST program is briefly mentioned on page 52 of the book "THE ORDINATOR PROJECT".