User Tools

Site Tools


Keeping Things on the Screen: "inhibit erase"

Let us consider a modified version of the simple language drill discussed in Chapter 7.

unit espo next espo back satisfy at 512 write Here is a simple drill on the first five Esperanto numbers. Press BACK when you feel satisfied with your understanding. at 1812 write Give the Esperanto for randu item,5 at 2015 writec item-2,one,two,three,four,five arrow 2113 answerc item-2;unu;du;tri;kvar;kvin

This version will greatly annoy the student after the first couple questions. Each time the student gets an “ok” and presses NEXT to move on to the next unit, the screen is erased and the student suffers through the introductory paragraph being written again on the screen. It turns out to be very annoying to see the same text replotted this way.

This is a situation where most of the material on the screen is not changing and should not be replotted. Only the item and the student's typing need be erased to make room for a new item and a new response. One way to do this involves judging correct responses “wrong”, as was done in the dialog using -concept- discussed in Chapter 7. You should use “specs nookno” to prevent the “no” from appearing, or you can use the regular -okword- and -noword- commands to change the standard TUTOR “ok” and “no”. For example, use the statement “noword Fine!” to cause “Fine!” to appear for a correct response. You would need to do a “noword no” whenever the student answers incorrectly. With all responses judged “wrong” we stay at the -arrowand do not move on to another main unit.

Another way to manage a screen on which little is changing involves “inhibit erase”. This statement prevents the normal full-screen erase upon leaving the present main unit. The next main unit must also execute an “inhibit erase” if no erase is to be performed upon leaving the second unit. We can rewrite our drill using this feature:

unit preespo at 512 write Here is a simple drill on the first five Esperanto numbers. Press BACK when you feel satisfied with your understanding. at 1812 write Give the Esperanto for goto espol unit espo at 2015 erase 5 $$ item area at 2115 erase 15 $$ response area entry espol inhibit erase $$ leave instructions on screen next espo back satisfy randu item,5 at 2015 writec item-2,one,two,three,four,five arrow 2113 answerc item-2;unu;du;tri;kvar;kvin

In unit “preespo” we display the instructions about the drill. We then go to “espo I”, where we “inhibit erase” and display the first item. After receiving an “ok”, the student moves on to the next main unit, “espo”. The screen is not erased since there was an “inhibit erase”. In unit “espo” we erase the area containing the displayed item, and we also erase the response area of the screen. We then fall through the -entry- command and display a new item. This process repeats continually, and only those parts of the screen which must be changed are erased.

It is important to place an explicit blank -erase- statement (“erase ”) at the beginning of unit “satisfy”. Since we have inhibited the normal full-screen erase, no erase will occur automatically when the student presses BACK to leave the drill. If unit “satisfy” does not explicitly erase the screen, the student will see a superposition of the drill display and the display produced by unit “satisfy”.

Similarly, if we specify a help unit, that unit should start with a full-screen erase. Upon completion of the help sequence, we should come back to unit “preespo” rather than “espo” in order to restore the screen display properly, like this:

entry espo1 base preespo $$ to come back to preespo from help help esphelp

The -base- command puts us in a help sequence, with the base unit being “preespo”. When a base unit has already been specified, pressing IIELP doesn't change the base unit (in other words, there is only one “level” of help). When we reach an -end- command or press BACK, we will return to the base unit, which is preespo. Note that unit “satisfy” should have a blank base statement to insure that we are in a non-help sequence. Otherwise, pressing BACK in unit “satisfy” will bring us to the base unit “preespo” again.

Interaction of "inhibit erase" with -restart-

There is a -restart- command which is used to specify in which unit a student should resume study upon returning to a PLATO terminal. For example, suppose the last -restart- statement encountered on Monday by student “Ann North” in course “lingvo” was “restart espo” in lesson “espnum”. On Wednesday she returns to a PLATO terminal and identifies herself by name (Ann North) and course (lingvo). Her registration records will show that she is to be restarted in unit “espo” of lesson “espnum” and she will automatically be taken to that point. As discussed previously, the “ieu” (initial entry unit) will be done, which among other things permits character set loading.

Unfortunately, restarting at unit “espo” means that the basic drill instructions contained in unit “preespo” will not appear (see last example). This is basically an initialization problem. You should use -restartcommands in such a way as to restart students only at the beginning of a section of this kind. In this particular case, we should have had a “restart preespo” rather than “restart espo”. This is analogous to our use of “base preespo” for returning from a help sequence. (The more common form of the -restart- is the blank -restart-, which means “restart in the present main unit.” We would place a blank -restart- in unit “preespo”.)

Aside from initialization questions related to TUTOR and the display screen, it should be pointed out that the student has comparable initialization problems. Since the student may be away for several days, it is often advisable to have your restart points only at the beginning of sections of the lesson. This way the student can ease back into the context, whereas restarting in the middle of a discussion may be quite confusing. In those lessons which include an index, the index unit may be the best restart point. On the other hand, you will want to arrange things to allow the student to restart in the middle of a section if that section is very long.

When a student restarts in a lesson, he or she starts at the unit specified by the last -restart- command. However, the student's saved variables, vl through v150, have whatever values were current at the time he or she left the last PLATO class session. Therefore, some care is required to initialize appropriate variables in the restart unit.

The -char- and -plot- Commands

In most cases, special characters are handled with a -charsetcommand and displayed with a -write- statement using the FONT key. Alternatively, -char- commands can be used to transmit character patterns to the terminal. If a -char- command sends a pattern to character slot 35 of the terminal, that character can be displayed using the -plot- command: “plot 35”. The arguments of the -char- command can be computed expressions so that a character can be constructed algorithmically. Similarly, the -plot- command may have a mathematical expression for its tag in order to choose the Nth character. See Appendix A for sources of detailed information on the -char- command.

The -dot- Command

The statement “dot 125,375” will plot a single dot at the specified location (“dot 1817” uses coarse grid). A sequence of -dot- commands can produce sixty dots per second on the plasma display panel. A -drawwith one point (“draw 125,375” or “draw 1817”) makes a single dot by drawing a minute line from this point to the same point (or itself) and, for technical reasons, will produce only twenty dots per second. (The commands -rdot- and -gdot- also exist.)

plato/tutor/inhibit_erase.txt · Last modified: 2023/08/05 18:55 by Site Administrator