Microtext
Microtext
TUTORIAL
1. Introduction
An interactive computer system is one in which its users are able to communicate directly
with (and hence, control the progress of) the computational tasks running within it.
Associated with this mode of computer usage is the idea of human-computer dialogue
(Gaines & Shaw, 1983). This involves a ‘to and fro’ movement of information from the
user to the computer and, likewise, from the computer to the user. Typically, the user
sends a message of some sort to the computer; the computer analyses this and responds
accordingly-amongst other things, this response usually involves transmitting a
feedback message to the user. Information exchange continues in this way until one or
other of the communicating partners terminates the dialogue.
In order to permit the specification and generation of interactive computer dialogues
special software tools are necessary. Of particular importance are the different types of
dialogue programming language (DPL) that are available. A DPL is a programming
tool that is specially designed to enable the human-computer dialogue engineer to:
(a) specify the rules that must be followed during information exchange,
(b) verify that these are being obeyed, and,
(c) control and sustain the progress of the dialogue.
Examples of dialogue programming languages include: APL (Gilman & Rose, 1974);
BASIC (Coll, 1982); IPS (Barker & Steele, 1983); PILOT (Barker & Singh, 1983); LOGO
(Byte, 19823); SMALLTALK (Byte, 198 1); and MICROTEXT (Barker & Singh, 1984).
A DPL must provide a wide range of facilities. In particular, they must cater for:
(a) information output to the user,
(b) message input from the user,
(c) message analysis (via pattern matching, etc.),
td) action taking,
(e) response archival, and
(f) dialogue monitoring.
MICROTEXT is an example of a dialogue programming system that can be used for a
wide variety of interactive computing applications. It is of particular importance within
computer-based learning situations since it can be used to generate, control and sustain
167
0745-7138/84/020167+22 $03.00/O 0 1984 Academic Press Inc. (London) Limited
168 P. G. Barker
instructional dialogues for use in a wide variety of teaching and learning situations.
Unlike IPS and PILOT (which are essentially line orientated), MICROTEXT is a frame-
based system. A program written in this language is composed of one or more units
called modules. Each module is, in turn, constructed from a series of VDU frames that
may be stored on a variety of magnetic media. Modules, and the frames they contain,
may be subsequently recalled from these media into memory and then displayed as and
when they are needed. The MICROTEXT system contains its own built-in frame-based
editing facility that is used to create and modify frames. In Section 2 a description is
given of the general structure of frames, the way in which the editing system operates and
the format of programs created using this dialogue programming language. Naturally,
because of space limitations, the material that is presented will take the form of an
overview. More detailed technical information may be obtained from the appropriate
language reference manuals (Bevan & Watson, 1982; Bevan & Watson, 1983).
5 10 15 20 25 999 ?
. . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . .
Tom + 100, John -+ 200, + 300 -f-- Control information
(a)
L_J (b)
Column 20
(4 (d)
Figure 1. MICROTEXT module, frame and screen organization. (a) Module structure. (b) Logical frame organization. (c) VDU screen
organization -author’s view. (d) VDU screen organization-student’s view.
170 P. G. Barker
line and command line. The status line is not used when the system is in RUN mode.
However, in each of the other modes it displays: the current mode (COMMAND, EDIT
or TEST); the current storage device for the module; the current lesson and module
name; and the current frame number. The command line is used to display commands as
they are typed by the user (for example, PRINT 30) and for the display of error messages
(for example, NO ROOM IN MEMORY). Figure l(c) depicts the appearance of the
VDU screen as it would be seen by the program author when in command/edit mode.
When this frame is executed (by issuing a RUN command) the VDU screen appearance
would be similar to that shown in Figure l(d). This depicts how a user would see the
frame. The two lines of text commence at column position 20 within lines 15 and 16. On
the subsequent line the user has typed the reply TOM. Notice how a long horizontal line
is used as a prompt mechanism in order to indicate to the student when and where a
response is to be typed.
Cl
This is a simple CA1 lesson written Correct.
in MICROTEXT. It shows the frame A spider has 8 legs.
structure of a module and how to -60 RETURN 40
implement simple branching
.....................................
*2 (SCORE-O) Sorry. You're wrong.
This is a lesson about animals. A spider has 8 legs.
Do you wish to proceed? -60 RETURN 40
..... .. ............ ..........
;ES-5, NO+lOO, -2 *40
....................._...._........._ SJOIN
Name a creature with 100 legs
ZOIN ?
How many legs does an elephant have? centipede+45 (SCOREtl),-50
?= ............................. .....
(4-10 *45
4+15 Yes. You are correct.
>4+20 It is called a centipede
..................................... +55
*10 ............. ... ........
Wrong. Too few *50
KOMMENT Invoke a subroutine No. You are wrong.
+60 RETURN 25 It is called a centipede.
........................ ............ 60 RETURN 55
*15 ........... ..................
Correct. *55
$(SCORE+l) This is the end of the lesson.
160 RETURN 25 Your score was <SCORE>
.................................... -100
*20 . . . . . .._......_......._........._....~..
Wrong. Too many *El0
60 RETURN 25 Press RETURN in order to continue.
........................................ ?
*25
IJOIN . . . . . . . .._.._................_.._........
How many legs does a spider have? *100
?= SEND
&30 (SCOREtl) .,..... .............__._..._...........
+35
. .. .............. ...... .............. ...
to the variable JACK. The way in which alternative input variables are used is illustrated
in Figure 3. Here, the header line of frame 10 contains the phrase =X. This is used to
specify that the variable X is to be employed to store the user’s response to this frame.
The value of this variable is later analysed in frame 65 by the series of statements
commencing with ?X.
Various types of value comparison and pattern matching may be used. For example,
techniques are available to:
(1) ignore blanks in user input,
(2) match keywords only with complete words,
(3) specify that a keyword must prefix a string typed by the user,
(4) specify that a keyword must suffix a string,
(5) perform exact keyword matching,
(6) search for several keywords in any order,
(7) search for several keywords in a specified order,
(8) perform numeric range testing.
Some simple examples are shown in Figure 2.
In frame 2, the user’s reply would be tested to see if it contained the string YES or the
string NO. Similarly, the input to frame 40 would be examined for an occurrence of the
string CENTIPEDE. Numeric-value analysis is illustrated in frames 5 and 25. In the
former, the value typed by the user would be inspected to see if it was less than 4, equal to
4, or, greater than 4. Frame 25, however, would require an input value of exactly 8 for a
successful match.
MICROTEXT provides very sophisticated pattern matching facilities. Unfortunately,
we have only been able to illustrate the most elementary of these. The others are
described in more detail in the language reference manual (Bevan & Watson, 1983).
(d) Branching
As in other languages, branching in MICROTEXT may be of three different types:
MICROTEXT: a new dialogue programming language 175
cl Letter
Guessing game.
*16 IJOIN
MICROTEXT Implementation.
File: les.no4 BHELP 900
..,.._..............,._.................
loose-ends <lo>
*2
verticals <ve>
*5
obliques tab)
* throng answers were recorded for these
horizontals <ho>
* letters. The student response is
+ recorded curves <cu)
in the right-hand column.
. . . . . . . . . . . . ..~......................
;hich letter is this?
*5 SJOIN
s(J=o) tie> cans?
;le>+40,+35 *
1 am going to give you a description
. . . . . . . . . . . . . . . . . . . . . . . . . . .,.........
of one of the letters of the alphabet.
: will give you the number of *35
verticals NO!
horizontals You have the wrong answer.
obliques You should have typed <le?
curves, and, +45
loose-ends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .._.....
from which the letter is composed. *40
You must guess the letter. Yes, you are correct.
Type GO or HELP when you are ready to It's the letter <le>
proceed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .._
,............,....,.,.................~. *45
*6 BHELP OFF
SHELP 900 Would you like another go?
? Type YES or NO.
'GO'-lO,-7 7
. .._._..._..._.......................... %'+55,'YES'+55
*7 'N'+999,'NO'-999
Please enter the word GO or HELP if -50
you wish to proceed. . . . . . .. . . . . . . . .. . . . . . . . . .. . .. . . . . . . . . . .
d *50
.,....,................................ That's not a valid reply
*In +45
$kANDOM 26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .._.._._.
S(j=RANDOM) *55
7-i
J SHELP OFF
I-15 (le="A",obz2,ve=O,ho=l,cu=O,lo=2) 00 you need instructions?
_I
2-15 (1e="B",ob=O,ve=l,ho=O,cu=Z,lo=O)
3-15 (le="C",ob=O,ve=O,ho=O,cu=1,1o=2) 'Y'-5,'YES'+5
4-.15 (le="D",ob=O,ve=l,ho=O,cu=l,lo=G) 'N'+lO,'NO'+lO
5-15 (le="E",ob=O,ve=l,ho=3,cu=O,lo=3) . . . . . . . .. .. .. . . . . .. . . . . . . .. . . . .. . . . . . . .
C-15 (le="F",ob=O,ve=l,ho=Z,cu=O,lo=3) *I30
7.-15 (le="G",ob=O,ve=O,ho=l,cu=l,lo=3) Please answer YES or NO.
8-15 (le="H",ob=O.ve=2,ho=l,cu=O,lo=4) +55
g-.15 (le:“I”,ob=O,ve=l ,ho=Z,cu=O,lo=4) . . . ..~......~.._._......_..._......_..
IO-15 ~le:"J",ob=O,ve=1,ho=l,cu=l,l0=3)
*900
11>15 (le="K",ob=2,ve=l,ho=O,cu=O,lo=4)
ICOMMENT This is a HELP subroutine.
12-15 (le="L",ob=O,ve=l,ho=l,cu=0,lo=2)
Here is an axample
13-15 (le="M",ob=Z,ve=2,ho=O,cu=O,lO=2)
14-15 (le-"N",ob=l,ve=2,ho=O,cu=O,lo=2) =2
loose-ends
15.~15 (le="O",ob=O,ve~O,ho=O,cu=l,l~=O)
verticals =2
15-15 (le="P",ob=O,ve~l,ho=O,cu=l,lo=l)
obliques =2
17-15 (le="Q",ob=l,ve=O,ho=O,cu=l,lo=2)
horizontals =0
18-15 (le~"R",ob=l,ve~l,ho=D,cu=l,lo=2)
curves =o
"1
This represents the letter M.
?;;
I?.15 (le="S",ob=O,ve=0,ho=0,cu=2,lo=2)
. . . . . . . . . . .._.._.............._.........
*920
w.15 (le="T",ob=O,ve=1,ho=l,cu=O,lo=3)
21-15 (le:"U",ob=O,ve=2,ho=O,cu=1,lo~2)
Now you try
2'+15 (le="V",ob=Z,ve=O,ho=O,cu=O,lo=2)
-RETURN 10
23-15 (le="W",ob=4,ve=O,ho=O,cu=O,lo=2)
.._....._....,..................__,.,,..
24.-15 (le="X",ob=2,ve=O,ho=O,cu=O,lo=4)
?!%I5 (le="Y",ob=2,ve=l,ho=O,cu=O,lo=3) *999
?6..15 (le="Z",ob=l,ve=O,ho=2,cu=O,lo=2) End of game. Goodbye.
,_..._,,._,............................ BLINE 10
*15 SJOIN $SUMMARY
Have a go at this one:- $ENO
... ........ ...... .. ....... . .. . . . . . . . . . . . . . . . .. . .. . . . . . . . . . . . . . . . .. .
unconditional, conditional and subroutine invocation. The target (or destination) of any
branching operation (denoted by the + symbol) is always a frame number, a module
name (and frame number), or a variable whose value represents a frame number. In
Figure 2, frames 45 and 55 contain examples of unconditional branching. When frame
45 is executed two lines of text are printed on the user’s VDU screen and then a branch
(or jump) is then made to frame 55.
Conditional branching is always based on value comparison or pattern matching.
These operations are performed either on the current user input value or on some value
contained within a variable. The first of these possibilities is illustrated below:
*200
Name an animal.
In this example the user would be asked to name an animal. If the reply exactly matched
the string CAT a branch would be made to frame 300. Similarly, an exact response of
DOG would cause a branch to frame 400 while a response containing the string PIG (in
any position) would cause frame 500 to be invoked. However, if none of these options
are matched a branch to frame 600 would be made. Further examples of conditional
branching are illustrated in Figure 2 in frames 2, 5, 25, and 40. The second type of
branching based on value comparison is depicted in the following example:
*800
?JACK
‘CAT’ --+300, ‘DOG’ -+400
PIG+ 500
+ 600
In this case the value of the variableJACK is being tested (by means of a pseudo-input
operation). The value stored in JACK is compared with the options specified and
branching then made accordingly. Examples of this type of conditional branching are
depicted in Figure 3 (frame 65) and Figure 5 (frame 10).
Subroutines are used to provide a mechanism whereby a group of frames may be
executed in such a way that, after execution, a return is made to the frame following the
point of invocation-or, to some other specified point in the module. A subroutine is
invoked by means of a branch in which a RETURN is specified. This is illustrated
below:
*10
Hello.
What is your name?
+200 RETURN
.. ....... ... ....... .
$20
What is your age?
+ 200 RETURN
l
l
l
etc
MICROTEXT: a new dialogue programming language 177
*200 =REP
Type your answer below:
?
l
a
0
etc
. . . .. . .. . .. . .. . . .. .
*300
+ RETURN
During frame 10 a branch is made to the subroutine frames commencing at frame 200.
The frames from 200 onwards are executed and a return is ultimately made (to frame 20)
when the RETURN statement in frame 300 is encountered.
If it is required to make a return to a point other than the immediately following frame
the branch statement is modified slightly. Thus, the MICROTEXT statement -+ 200
RETURN 60 would cause the subroutine at frame 200 to be invoked with a return to
frame 60 on termination.
Similarly, the statement -+ 200 RETURN 100 would cause the same subroutine to be
invoked with a subsequent return to frame 100. Examples of the use of simple
subroutines are given in Figure 2,3, and 5. In Figure 2 frame 60 is a subroutine frame. It
is invoked at various points in the program by the following statements:
+ 60 RETURN 25 (in frames 10, 15 and 20)
-+ 60 RETURN 40 (in frames 30 and 35)
-+ 60 RETURN 55 (in frame 50)
The last line of this frame represents a summary item; it would cause the user’s response
to be entered into the dialogue summary. If this reply happened to be WASHINGTON
then the entry made in the summary would be capital: WASHINGTON. Entries in the
summary can be made more or less verbose-as illustrated in the following examples:
(i) *100
Please type your name:
?
-200
**(ANS)
(ii) *200
What is the capital of England?
?
DURHAM+ZO, LONDON+30
**user claimed that (ANS)was
**the capital of England.
(iii) *300
Is Washington the capital city of the USA?
The frame shown in the first example produces a minimal entry in the summary whereas
in the second frame the user’s reply is expanded quite considerably. In the third example,
the entry made in the summary will obviously depend upon whether the user replies with
a Y or N response. Another useful summary feature that the system provides is the
ability to make a trace of the frames executed; this can be achieved using the $TRACE
SUMMARY command. This facility is extremely useful when modules are being tested
and evaluated. Summaries may also be used to store variables which can be recalled later
in order to restart a presentation which, for one reason or another, was interrupted.
At any particular point in a module a summary may be displayed, archived or printed.
This is achieved from within a lesson by coding appropriate SUMMARY commands at
suitable points within the module. Some examples of such commands are presented
below along with the annotation that describes their effect:
The way in which this facility may be used to produce a simple dialogue trace is
illustrated in the MICROTEXT implementation of the letter guessing game presented in
Figure 5-see frames 2, 16 and 999.
Undoubtedly, the summary facilities of MICROTEXT provide a very powerful
mechanism for monitoring user interaction with software modules. It is thus a very
attractive feature of this dialogue programming language.
*I300
SCOMMENT A simple help subroutine
I would like you to type your SURNAME
followed by a comma and your CHRISTIAN
NAME. Here is an example:
BARKER, PHILIP
$PAUSE 100
+ RETURN
In the above example the help subroutine frame (number 800) is invoked only if the user
replies with the string ‘HELP’ when the input prompt is given. Any other response is
taken to be the user’s name.
Help facilities of the type described above enable the program author to design and
fabricate software which can be highly user-friendly. This is a very important
consideration when using computers for instructional use-particularly, for low age
groups or users that have an inherent fear of this type of technology.
5. MICROTEXT commands
An important feature of the MICROTEXT dialogue programming language is the wide
range of commands that the system makes available. These may be broadly classified
into two categories-direct and indirect. Those in the first category are issued directly by
the user when the MICROTEXT system is in command mode. Those in the second
category are used as embedded commands within a software module and are executed
only when the MICROTEXT system is operating in run mode. Run mode is initiated
from command mode by issuing a RUN command. When in this mode, indirect
commands (which all commence with a $ symbol) take effect and so may be used to
180 P. G. Barker
control the nature and progress of the dialogue that takes place between the user and the
computer. Some of the more important commands provided by the MICROTEXT
system are listed in Table 1.
The direct commands are listed in section (a) of the table. The purpose of most of
these has already been outlined. In general, they allow: (a) frames and modules to be
manipulated in various ways; (b) transitions from command mode into other modes;
and (c) the provision of a number of important programming aids, such as program
debugging tools (see below), and mechanisms for inspecting summaries and the values of
variables.
In Table l(b) the indirect commands have been further subdivided into three groups.
Those in the right-hand column provide the programmer with a means of controlling
(and examining) the signal levels of the input/output lines that constitute the
microcomputer’s external I/O port. It also contains special commands for the control of
ancillary peripheral devices-such as video-tape recorders, slide projectors and so on.
Because of ongoing development of the MICROTEXT language (and advances in
technology generally) the set of commands in the right-hand column is continually being
expanded. The groups of commands in the central column of Table l(b) are only
available with certain microcomputer systems. Where they are available they provide
MICROTEXT: a new dialogue programming language 18 1
facilities for the generation of sophisticated colour graphics and sound effects. By means
of these the software designer can greatly enhance the quality of frames and, of course,
the impact that they have on the user. Depending upon the type of hardware used, it is
possible to employ the high-resolution facilities provided by the CRT screen as well as
the low-resolution teletext block graphics. Obviously, the exact nature of the graphic
and sonic facilities that are available (and the way in which they are implemented) will
depend upon the type of microcomputer system that is used.
Several of the run mode commands listed in the left-hand column of Table l(b) have
already been described and their use illustrated in the example programs that have been
presented previously. They provide facilities to: control screen layout ($JOIN, $FIX,
$CLEAR, $SCROLL, $LINE, $MODE); perform case conversion @CASE); generate
random numbers @RANDOM); time events @TIME, $PAUSE); produce summaries
@SUMMARY); document the software @COMMENT); initialize variables and
summaries @NEW); control the use of help subroutines @HELP); monitor the flow of
control through a module @TRACE); and, control the interrupt options available to the
user during lesson execution (SALLOW). In addition to these commands, special
techniques exist to enable the programmer to utilize the operating system commands
belonging to the microcomputer upon which MICROTEXT is running. Some examples
of these ($*FX2,1, $*FX7,8, etc) and the way they are used are illustrated in frames 500.
510, and 8.50 of Figure 7. Naturally, these will be machine and implementation
dependent. Further details may be found in the appropriate language reference manuals
(Bevan & Watson, 1982, 1983).
6. Program debugging
In order to ensure that a MICROTEXT program runs correctly and produces the
intended results it should be extensively tested and debugged. This may be achieved by
running it in test mode. Entry into this mode takes place when the programmer issues a
TEST command; execution of the module may then commence from any specified
frame. Once the program is running in test mode its execution may be interrupted by
pressing a special key on the microcomputer keyboard. The system then enters into
interrupt mode and an interrupt menu is displayed within the frame command line on the
VDU screen. This takes the following form:
Cont Stop Back Goto Edit Vars $.
The programmer may now type in a single letter in order to indicate to the system what
action is to be taken. The significance of the options is as follows:
C causes the system to continue executing the module from the start of the current
frame;
S stops the execution and returns to command mode;
B makes the system go back to the beginning of the frame containing the previous
question;
G goes to a new user specified frame number;
E causes a transition into edit mode;
V causes variable names and values to be displayed on the VDU screen one at a
time; and,
182 P. G. Barker
Teletext TV system
I I
\[
Philips VP705
Feedback signals
-
Control Information for the disc
‘1
plus teletext overlay lnformatlon
RS232C interface for the TV system
A-‘, RS232C (1200 baud)
1300 baud)
In our experiments a BBC microcomputer system (Coll, 1982) was used to control the
video-disc player. For convenience, we used the microcomputer’s RS423 serial port
(Stone, 1982) in order to achieve the video-disc interconnection. A listing of a simple
illustrative control program written in MICROTEXT is presented in Figure 7. This
module controls the video-disc system in which a way that it repeatedly shows the end-
user a pre-specified sequence of frames that are retrieved sequentially from the optical
disc. The starting frame number, final frame number, number of repeats and the delay
interval (in seconds) between each repetition is specified by the end-user by means of a
simple interactive dialogue. A simple form-based menu similar to that shown in Figure 8
is used to prompt the user for the necessary control information. The way in which the
colour effects are produced will be described in detail later. Once the user has entered the
starting-frame and finishing-frame numbers (see MICROTEXT frames 110 and 112 in
Figure 7) the program deduces the required direction of play (either forward or reverse).
It then selects the appropriate video-disc command (Philips, 1982a) for this mode of
operation: either N for forward play (see frame 140) or 0 for play in the reverse direction
(see frame 130). Frame 170 uses a series of concatenation operations in order to
construct a picture retrieve command (PdddddR) and a picture stop command
(PdddddS) for the video-disc player. In these commands, ddddd represents the actual
video-disc frame number involved in the specified operation.
As soon as the control commands have been constructed, they are sent as character
strings to the video player via the microcomputer’s serial input/output port. Frame 200
sends a Teletext header command to the TV set in order to initialize its storage buffer.
Frame 220 is then used to cause the video-disc read head to move to the required picture.
After a suitable delay period (frame 222), the presentation of pictures from the disc
commences when the start play command is issued (frame 225). The video player must
now be told the picture number that it is to stop at; this is achieved by MICROTEXT
frame 230. At frame 250, the number of repeat showings is checked. Provided that the
required number of repeats has not been shown the system pauses for the time interval
specified by the user (frame 270) before branching back to frame 200 in order to initiate
another repeat performance.
The outstanding feature of the demonstration program presented in Figure 7 is
undoubtedly the colour effects associated with the various frames that are displayed to
the user-an example is given in Figure 8. The MICROTEXT author controls the use of
colour by means of appropriate combinations of function keys. The microcomputer
keyboard contains 10 function keys (labelled FGF9) each of which has a special
meaning. Combinations of these keys can be used to specify the colours that are to be
used for (a) the text that appears on the screen, and, (b) the background against which it
appears. These colour specifications are coded on a line-by-line basis. Coding colour
requirements is therefore extremely simple. If the MICROTEXT author types the
function key FO followed by F2 this will cause any subsequent text typed on that line to
appear in green against a black background. In order to specify the colour of the
background upon which text appears, a special control code combination is used-F2
followed by FO. Thus, if the author now types the following sequence:
\ /(
Text colour (red) Carriage return
\ ’ New background command
Background colour (yellow)
MICROTEXT: a new dialogue programming language 185
- _ .-__.
il '170
I” SCOMMENT Construct commands for the BCOMMENT Wait for acknowledgement
rliTh,s program my be used
MICKOIEXT $COMMENT control of the wdeo disc. SCDMMENT signal from the video disc.
***to show d series of frames from an S(SF="P"S<NUMl>&"R") ;$I;?:' Select RS423 port ior rnpu:
**#optical disc. $(LF="P"&CNUM2>&"S") l
*#lit shows the sequence repetitively . . . . . . . . . . . . .._..._.._.........-...... %COMMENT Select baud rate
*."w,th a t,me deiay between each *zoo J*FX7.R
'r*show,rq ;;;M,:NT Send teletext header command
II f-610,-800
*135
SLINE lb #I
###BEEN AROUND THE LOOP (DONE, TIMES
It:,THE STARTING AND LAST FRAME NUMBERS
###(REP, TIMES STILL TO GO AROUND
W** ARE THC SAME. @PLEASE RETYPE THEM bX
YX
BPAUSE (SEC:
j?ktlSE10
-200
$UNF:X
.._,..,,..,,..
-*loo
l400
iijc! .. ,... SSUM1+ARYPRINT
ICLEAR
S(SlARTm"h")
-,:I: -RETURN
.. . . . .. .
it would cause the string ‘THE CAT SAT HERE’ to appear on the screen in red letters
against a yellow background.
In Figure 7 the positions of the colour control codes are denoted by the # symbols
which appear at the beginning of lines contained within certain of the MICROTEXT
frames. Notice that in some frames (for example, frame 135) certain lines contain
function key combinations in positions other than at the start of a line. This has the
effect of causing a colour change from the point within the line at which the code
186 P. G. Barker
specification occurs. Thus, the last text line in frame 135 commences with white letters
but finishes with cyan ones at the end.
Undoubtedly, these simple key combinations provide the MICROTEXT author with
an easy means of producing impressive colour effects. Of course, Teletext graphic
characters (Reis, 1976) can also be employed in order to generate a wide variety of
graphic effects. These can be relayed to the Teletext TV and combined with images that
originate from the video-disc. Quite spectacular visual (and sonic) effects can therefore
be produced using this type of system.
8. Conclusion
MICROTEXT offers a very straightforward solution to many of the problems presented
by frame-based dialogue programming. A major advantage of this language is its
relative ease of learning. Indeed, once potential program authors have acquired its basic
rudiments it becomes very easy for them to generate effective software. Within the
MICROTEXT system there are particularly good facilities for (1) testing and debugging
software, (2) monitoring human-computer dialogues, and, (3) producing colourful and
graphically orientated frames. However, the language does have a number of minor
limitations-for example: arithmetic is restricted to integers; there is only a limited range
of arithmetic operators ( + and - ); there are no array variables (but these can be
simulated); the facilities for conditional statement execution are not as good as those
available in other languages (such as IPS and PILOT); and, at present, there is only a
relatively small number of standard built-in functions and commands for controlling
ancillary devices. Despite these limitations, however, MICROTEXT can be used to
create quite effective dialogue programs for use on microcomputer systems.
Undoubtedly, once dialogue engineers have experienced this language they will find it
an extremely useful and productive programming facility. Of course, it must be
emphasized that certain programs that have been used for illustration and discussion are
t
3 Lines (red background)
t
3 Lines (red background)
not as elegant and efficient as they could have been. These attributes have been sacrificed
in favour of ease of exposition. Therefore, the shortcomings of the programs presented
here should not be interpreted in terms of limitations imposed by MICROTEXT.
Acknowledgements
The author is indebted to Tim Skipper for programming many of the test modules used
during the investigation of the MICROTEXT system. He would also like to thank: (a)
Robert Watson, Nigel Bevan and Dianne Murray of the National Physical Laboratory;
and (b) Ravinder Singh of the UK’s National Computing Centre for their help and
many useful suggestions. Teesside Polytechnic is gratefully acknowledged for the
provision of financial resources to enable this work to be undertaken.
References
Barker, P. G. 1983~. Frame programming in BASIC. Working Paper, interactive Systems
Research Group, Department of Computer Science, Teesside Polytechnic.
Barker, P. G. 19836. Dialogue programming with PILOT. Electronics and Computing Month[v, 3
(3), 78-80 (Part 1); Issue 5, 70-72 (Part 2).
Barker, P. G. 1983~. Video disc programming for interactive video. Wireless World, 89 (1574).
44-48.
Barker, P. G. 1984. MUMEDALA-an approach to multi-media authoring. British Journal of
Educational Technology, 15 (l), 4-l 3.
Barker, P. G. & Singh, R. 1982. Author languages for computer based learning. British Journal qj’
Educational Technology, 13 (3), 167-196.
Barker, P. G. & Singh, R. 1983. A practical introduction to authoring for computer assisted
instruction. Part 2: PILOT. British Journal of Educational Technology, 14 (3), 17+200.
Barker, P. G. & Singh, R. 1984. A practical introduction to authoring for computer assisted
instruction. Part 3: MICROTEXT. British Journal of Educational Technology. 15 (2), 82-106.
Barker, P. G. & Steele, J. 1983. A practical introduction to authoring for computer assisted
instruction. Part I: IPS. British Journal of Educational Technology, 14 (I), 26-45.
Barker, P. G. & Yeates, H. 1984. Zntroducing Computer Assisted Learning. Englewood Cliffs, NJ:
Prentice-Hall. (to be published).
Bevan, N. & Watson, R. 1982. MZCROTEXT Reference Manual (V2.OC Preliminary edition).
National Physical Laboratory, UK.
Bevan, N. & Watson, R. (Eds) 1983. MZCROTEXT for the BBC Microcomputer. Cambridge:
Acornsoft Ltd.
Byte 1981. SMALLTALK, Special Edition of Byte: The Small Systems Journai, 6 (8).
Byte 1982a. Znreractive Videodiscs, Special Edition of Byte: The SmaN Systems Journal, 7, (6).
Bvte 19823. LOGO, Special Edition of Byte: The Small Systems Journal, 8 (8).
Coil, J., 1982. The BBC Microcomputer User Guide. London: British Broadcasting Corporation.
Duke, J. 1983. Interactive Video: Implications for Education and Training. CET Working Paper
No. 22, Council for Educational Technology for the Unitid Kingdom.
Gaines, B. R. & Shaw, M. L. G. 1983. Dialogue engineering. In Designing for Human-Computer
Communication (M. S. Sime & M. J. Coombs, eds), pp. 23-53. London: Academic Press.
Gilman, L. & Rose, A. J. 1974. APL: An Interactive Approach. New York: John Wiley.
Philips 1982a. Philips VP705 Professional Laservision-Operating Instructions, Publication No.
PRD-4044.
Philips 19826. Philips VP705 Professional Laservision-Product SpeciJication, Publication No.
PRD-4042.
188 P. G. Barker
Reis, C. W. B., (Ed.) 1976. Specification of standards for broadcast Teletext signals. In I&t
Technical Review, No. 2, 3rd Edition, pp. 76-89.
Stone, H. S. 1982. Microcomputer Interfacing. New York: Addison-Wesley.