Audio-enhanced computer assisted learning and computer controlled audio-instruction

Audio-enhanced computer assisted learning and computer controlled audio-instruction

AUDIO-ENHANCED COMPUTER ASSISTED LEARNING AND COMPUTER CONTROLLED AUDIO-INSTRUCTION K. MILLER. K. NORTON. The Polytechnic. R. C. REEW Wolverhampto...

2MB Sizes 0 Downloads 67 Views

AUDIO-ENHANCED COMPUTER ASSISTED LEARNING AND COMPUTER CONTROLLED AUDIO-INSTRUCTION K. MILLER. K.

NORTON.

The Polytechnic.

R. C. REEW

Wolverhampton

and D. M. SERVANT

WV1

1LY. England

Abstract-- A computer controlled language laboratory cassette recorder has been used as a computer peripheral to enhance computer asststed iearmng by the addition of an audio channel of communication. To facilitate the production of audio-enhanced CAL material a simple author code system has been devised. The same cassette recorder has also been used under the control of an “on-board” micro-computer to increase the flexibilrtj of audio-instruction by allowing branching amongst sections of audio material in response to answers to questions.

INTRODUCTION During the last decade. a great deal of work has been undertaken in developing instructional material which uses main frame computers. spanning a wide range of subject disciplines [l]. Some, of the developments in the United States. such as the Plato[2.3]. and TlCCIT[3] installations. have been particularly sophisticated and have not only provided enormous computational power for simulation work and file processing. but have also included random access to a range of peripherals important in educational technology. Thus computer assisted learning (CAL) has in many cases been enhanced by the incorporation. under computer control, of slides. video or film sequences and audio recordings. Computer based learning and training systems such as these are expensive and it is perhaps not surprising that such facilities are not available “in-house” to schools and colleges in general. Developments in the U.K.. which have been on a more modest scale. were largely as a result of the National Development Programme in Computer Assisted Learning which funded a number of projects [4] between 1973 and 1977. The software produced in this program has been of high quality. For example, the CALCHEM project based at Leeds University produced programs which were fully validated and documented to a high standard. These programs are quite sophisticated [S] and allow considerable freedom in the responses made by students, in that questions are not limited to the multiple choice type. Additionally statistics concerning student responses may be collected which assist the development of CAL material. and for the enthusiast who wants to produce his own teaching material CALCHEM offers an author language as a development aid. Interest in the use of the multi-media techniques as a means of enhancing CAL material. was evident as early as 1970 in work carried out by Sleeman[6] as part of the activities of the Computer Based Learning Project at Leeds University. In spite of this CALCHEM programs were not designed for multi-media use. presumably because of the lack of institutions with the facilities to use such material. In the last few years. with the advent of the micro-computer. the real cost of computer hardware has fallen dramaticaly. which has resulted in a great increase in the availability and use of computing facilities in the full spectrum of educational establishments. These micro-computers are now opening up the possibilities of CAL to educational institutions on a scale not possible earlier and multi-media instruction becomes a much more realistic possibility for educationalists in general rather than the minority who have had access to the specially implemented mainframe systems mentioned earlier. It is also clear from the large volume of work published to date that CAL can usefully contribute to most areas of educational endeavour even if additional media are not used. On the other hand. most areas would benefit from the use of the full battery of educational technology which. in principle. could be used. However at the present time most of the CAL material currently being produced for micro-computers, and which is available through program exchanges. is what could be described as orthodox CAL in the sense that no other medium apart from the computer itself and possibly a work-book is used in the instructional strategy. In multi-media instruction the combination of techniques selected is of fundamental importance. The decision has to be made bearing in mind the nature of material to be taught. the extra cost per

K. MILLER

34

YI d

work station associated with the necessary peripherals. and the cost Inherent in the preparation of the types of educational materials needed for each technique. It is necessary to strike a balance between what is a sensible improvement on orthodox CAL without making the cost per work station too high. nor making the development eFTott for the teaching material too great. In considering chemical appiications. we believe that the use of an audio channel with the micro-computer’s video display unit is a good combination. It is true that for some applications. such as the interpretation of spectra. slides would be an advantage. but the alternative of providing the student with real spectra from which he can make measurements seems perfectlq acceptable. Furthermore. the addition of slidr viewing facilities implies that extra space per work station is required and this factor becomes important when considering the impIementation of a learning laboratory with. say. 15-X) work stations. It is for these reasons that we have directed our attention to systems which enable teaching packages to be prepared easily using inexpensive cassette recorders in conjunction with micro-computers. Two distinct aspects of the use of a micro-computer linked with a cassette recorder are described m this paper. The first application describes the use of this combination as a cheap peripheral to enhance the quality of conventional CAL. a technique which we shall refer to as Alidio-Enha~~ced Computer Assisted Learning (AECAL). The second application describes how the combination also has a part to play in enhancing conventional audio tape programs for educational work. In this case since a visual screen display is not required. an on-board micro-computer is more appropriate and an order of magnitude cheapet than the full micro-computer system required for AECAL work. We shall refer to this latter application as Computer Controlled Audio-Instruction. THE

TAPE

RECORDER

The audio systems which have been used with the main frame CAL installations. such as PLATO. have used magnetic discs to store audio information[?j. To record a 3Omin commentary a large amount of disc storage is necessary. and although the situation may change in the future. the use of a random access audio-tape recorder is a relatively inexpenslve alternative for micro-comp~iter based systems. A micro-computer controlled tape recorder has been linked with a microfiche reader in a commercially available teaching system[7]. Here segments of audio commentary are recorded on one track and digital information. which identifies which image is displayed on the microfiche reader. is recorded on the second track. Gaps in the recording on the second track are used to mark the start and end of the segments of audio material on the other track. The only report of the use of an ordinary language laboratory tape recorder for computer control as part of a CAL system. is due to YarwoodEg] who used a reel-to-reel type tape recorder modified so that solenoid switches activated under computer control allowed the automatic change of operational mode. Tone burst markers. capable of being read in both rapid winding and play modes, were recorded on one track and were used to identify particular points of the audio-commentary recorded on the other track. We have adopted a similar approach to Yarwood in the use of tone burst markers. placed on one track to mark any required position in the audio commentary on the other track. but we have used a standard language laboratory cassette recorder which would respond to digital electronic signals for computer control purposes. Thts then allowed the recording of the audio commentary on any standard cassette recorder and the addition of the tone burst markers to the other track using the student recording facility associated with language laboratory work. A suitable tape recorder modified so that the tone burst markers on the “student track” could be read during rapid winding operations was provided by Tandberg Ltd. Such a tape recorder could still be used as a language laboratory tape recorder, as well as a micro-computer peripheral for AECAL programs. and as a stand-alone tape recorder with an on-board micro-computer for computer controlled audio instruction. THE

COMPUTER

INTERFACES

For AECAL the computer used was a Tandy Corporation TRS-X0 model I system with ih K expansion interface. a single mini-disk unit and Tandy Level if Disk Basic. The micro-computer \+as interfaced with the tape recorder. using an Intel 825.5 programmable interface which has a control port and three other R-bit parallel ports which can be configured as input or output. or a mixture of both. under software control. The least significant R-bits of the address bus were decoded by means ot a 74LS138 decoder so that the control port of the programmable interface was designated as Port

Audio-enhanced

CAL

+

and computer

controlled

Input ---+--

audio-mstructlnn

output

35

--j

Port c

z rewind

stop

FIN. 1 The use of Port C (198) with respect to tape recorder control

and feedback.

199. whereas Port C. which was used to control the tape recorder was assigned as Port 198. The assignment of pins for Port C is given in Fig. 1. The programmable interface was configured so that the least significant four bits of Port C were used for micro-computer output to control the tape recorder and the most significant four bits were configured as input. Only one of these (C7) was. in fact. used. This gave a positive going signal from the tape recorder when a tone burst on track 2 of the tape was detected. Commentary relevant to the teaching material was recorded on to track 1 of the tape and the start and end of each block of audio information was identified by means of a 1 kHz tone burst of about 1 s duration. The format of the audio tape is shown in Fig. 2(a). Tone bursts may also be included within a commentary block to enable synchronisation of screen activity and sound. The tone bursts are counted from the beginning of the tape for the purpose of checking of the rape position. During rapid winding operations it was found necessary to disconnect the headphones under computer control to avoid the user hearing a high pitched whine from the recorded material on track 1. This was done by connecting the headphone lead through a reed-relay which was only activated during the playing of teaching material. The computer control was achieved by using the least significant bit of Port A (Port number 196). The appearance and holding of a logic 1 at this bit of Port A resulted in the switching on of a transistor which provided the current to activate the relay and cancel the muting. The muting operated again as soon as the least significant bit of Port A was reset to zero. For branched audio-tape work the cassette tape recorder was interfaced to an INTEL SDK-85 system design board. The input/output connections were identical with those for the AECAL system using the TRS-80. so that the tape recorder could be plugged into either computer. The SDK-85 board does not contain a tape recorder interface to allow the reading of digital information from the tape. Such information was necessary to define correct answers and other data

oudto

\

commentary

tone

bursts

blocks



oudio commentary

digital a7formatlon

I

/i Master

(b)

Student

tone

Tmek Track

bursts

Fig. 2. The format of the audio tape used for (a) audio-enhanced computer (b) computer controlled audio-instruction.

assisted learning

and

K. MILLER PI rrl.

36

items (as explained in the section on Computer Controlled Audio-Instruction). which were specific to a particular branched audio program. A suitable design has been suggested by INTEL[9] which we incorporated into the SDK-85 board with a modification of the INTEL software to incorporate a checksum on data read from the tape.

THE

AECAL

CONTROLLING THE

PROGR,\M

DAT;\

.AND

SET

The approach we have adopted is to design a general purpose program which will. on the one hand. control the tape recorder. and on the other interpret the author’s commands with respect to screen handling. response matching and animation sequences. The option is also provided to include user defined subroutines to allow simulations to be offered with audio enhancement. Branching within the CAL material as well as amongst the blocks of audio material is also possible. The control program is listed in Appendix A. Thus the computing part of our AECAL teaching package consists of a master control program and a data set which defines the teaching material and its sequential presentation. The control program was written in BASIC and the precise nature of the instructional material is defined by a set of DATA statements which are added by the author of the teaching material. The DATA statements each contain a numeric code which effectively forms a simple author language that tells the controlling program what must be done and in what order. In preparing teaching material the author has to write a set of BASIC data statements containing the instructional codes. For a given data statement the first number in the code refers to the type of action to be taken. For example. all codes starting with 4 refer to some action relating to the tape recorder. A code which starts with number 2 means that something is to be printed on the screen. Table 1 gives a key to the meaning of the instruction codes available. The teaching material is organised into a series of frames. The content of a frame normally relates to a single teaching point organ&d so that it can be conveniently held on the screen at one time without roll-over. This is not to imply that all this information is displayed at the same time. On the contrary. it is usual to reveal material gradually on the screen in synchronisation with the detection of tone burst on the tape which marks keywords on the commentary. We have supplied our students with a workbook which contains a copy of the material that

Table

I. The meaning

Meaning

Code

DATA I 0 -. DATA 7. n. “string” DATA 3 n P. DATA DATA DATA DATA /DATA

and grneral format of primary mstructmn to dehne the AECAL sequence

1. 4. 4. 4. 1.

I 2 3 -I S

DATA 5. II DATA

6. n

DATA

7. n

-.DATA

8 0

D.ATA

Y. n

DATA

YY. 0

codes used

of content

.After Inviting the user to respond bq prewng d key. clear the screen Print the given string starting at the screen posItion defined by the number n The following n codes define an anlmittlon sequence. see Fig. 3 for such a sequence Set the tape recorder to play Set the tape recorder to rewind Set the tape recorder to wind Set the tape recorder to stop Monitor for a tow burst detection signal from the tape recorder Enter the n’th user detined ~lmulatlon routine. Locate the n’th tow hurbt on the audlotapr and ret play. The follw~ng n codes refer to powhle rebponse> to a que~tlon dnd &tines an> requmxi hranch~ng. SW Fig. 1 for .tn example Enter an idling sc‘ctlon of the control proym which waits for the uber to press a key to Indlcate hla readiness to hcgln This bets the pointer to the next DATA statement to be executed to the current \:~tlur t n Thlh facllit!, 1s often necrssar) when branching amongst the DATA statements i’r required Terminates the .AECAL program. re\\inds the tape recoder and enters the Idling routlne

Audio-enhanced 9100 9170 9180 9190 9200 9210 9220 9230 9240 9250 9260 9270 9280 9290 9300 9310 9320

CAL and computer controlled audio-instruction DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA

3,8 1,l 2,408,"

H-Cl

37

w

1,l

H---Cl v 2,408," 1,l H-_---C1 n 2,408," 1,l 2,408," H-------C? ' 1,l 2,408,"H---------Cl" 1,l

2,408," H-------Cl 1,l 2,408," H-----C!. 1,l 2,406," H---Cl

' tr 11

Fig. 3. An example of the instruction codes used for animation.

appears on the screen with blanks for completion by the student. It is most important not to ask the student to undertake too many operations at once or he may be distracted. Therefore, at the end of each frame. prior to clearing the screen. the student is invited to refer to and, if necessary. update the corresponding information in the workbook. This action is taken when the control program obeys the instruction implied by the statement DATA 1. 0. The printing of text at any point in the teaching sequence is achieved by means of the DATA 2, n. “string” instruction. The TRS-80 micro-computer screen is subdivided into 1024 print positions and the control program prints the characters which make up the string starting at position n. The instruction code Data 3. n, can be used to define a simple animation sequence as shown in Fig. 3. Here the animation is that of a vibrating molecule of hydrogen chloride. Line number 9160 contains the primary instruction code for the animation. The 8 in this data statement means that there are 8 different pictures which make up the animation cycle. The data statements which define a given picture in the cycle are preceded by a secondary instructional code. The first number gives the relative length of time for which the picture is to be held. and the second tells the controlling program how many data statements are needed to make up the picture. In this example only one data statement is required for each of the pictures involved and the holding time is the same for each one. The instruction codes for the operation of the tace recorder (DATA 4. n) are all straightforward. The second number in the DATA statement selects the appropriate function except for DATA 4. 5. which tells the control program to monitor for the tone burst that marks the end of a block of audio commentary which has been played. When the tape recorder is in play mode the user may recall a portion of the commentary by pressing “R” on the keyboard. Whilst in play mode, the computer scans the keyboard as well as monitoring for the detection of the tone burst marking the end of an audio block. If “R” is pressed the rewind is automatically selected and maintained for about 2 s which amounts to a replay of the preceding few sentences. During the recall operation, the computer also monitors for a tone burst and if one is detected. then the audio material is replayed from a point immediately following the tone burst, This is necessary to avoid the student rewinding over the boundaries of audio blocks and thus obtaining commentary which is irrelevant to the current content of the screen. A repeat of a whole frame is available if the student presses “R” in response to the invitation to press a key at the end of a frame. In this case. not only does the tape recorder automatically rewind to the beginning of the audio block which is associated with the start of the frame, but it also begins to execute the instruction codes which start the frame afresh. This means all the text handling. question and response matching. or simulation material. which make up the frame are repeated. Another feature available during the play mode is that the user can stop the tape recorder and the computer by pressing the key “S”. This allows the student to pause or take a break without losing his place in the teaching sequence. After such a halt. pressing any key on the keyboard switches the tape recorder back to play and resumes processing of the instruction codes. The instruction code DATA 5. n. is used to enter one of a number of possible user supplied program blocks which may correspond. for example. with a computer simulation of processes as in orthodox CAL. The first of up to 6 of such blocks are inserted at line number 3010. the second at

3510 and the remaining blocks start at lines 4010. 4510. 5010 and 5510. The listing in Appendix shows one such simulation block. Each simulation block of programming must terminate with BASIC instructlon GOT0 520 to allow the continued processing of D.ATA statement codes. To this facility the author of the teaching material obviously has to be proficient at programming BASIC. but this is becoming widely known as a standard micro-computer language. The instruction code DATA 6 n. is useful for ensuring that the tape is at the correct position Jt start of a new frame. Typically a new frame is started by a sequence of instruction codes such as:

.A the use in the

DATA 1.0 DATA 6. ‘0 where the start of the audio commentary for the next frame is marked by tone burst number 30. In order to test the user’s comprehension of the material It is necessary to incorporate questlons into the teaching sequence and to have some means of checking the responses. It is also desirable to provide remedial information for each incorrect answer and to allow for branching as a result of the student’s response. The questions are set up by means of text handling. using one or more instruction codesof the type DATA 2. n. “string”. The response checking and branching. on the audio tape as well as within the sequence of data statements. are accomplished using the instruction code DATA 7. n. Here the n denotes the number of possible responses and this data statement IS immediately followed by n further DATA statements which provide the control program with information relating to each response. The format of each of these secondary DATA statements is as follows: DATA nl. n2. “string” where “string” denotes a possible answer. n2 is the tone burst number which identifies the start of the audio block containing the comment on the answer defined by “string”. and a non-zero value of nl indicates the data statement which follows once the comment on the answer has been played. If nl has the value 0 then the control program continues with the sequence of DATA statements from the one which immediately follows the end of the set of n secondary data statements. If nl is other than 0 then interpretation of the data starts nl lines further down the list of DATA statements. This allows branching up and down the set of data statements. since nl can have negative as ~211 as positive values. In the example given in Fig. 4. there are only two meaningful responses to the question. although each may be input in different ways. Notice that the three responses which correspond to HCI are all routed to the same comment block on the audio tape (that preceded by tone burst number 27) whereas the other responses all make use of the immediately following audio block which is marked by the 28th tone burst. Neither type of response. in this instance. leads to branchmg amongst the DATA statements. The 0 value for the first digit in each secondary code ensures that the next DATA statement to provide an instruction code after playing the audio comment is that in line 10390 which monitors for the tone burst marking the end of the audio comments on the student’s response. Instruction code 8 causes the control program to enter an idling routine. which provides an eye catching display to be generated on the screen. The picture is held for a few seconds and is then regenerated from a clear screen. The repetitive sequence is broken by the user pressing any key. after which the computer asks if the user wants to start at the beginning of the program. If the user gives a negative response. the required frame number is input and the control program locates the tape at the correct position and starts consecutive interpretation of the DATA statements corresponding to the

10290

10300 1031c

10320 1033c 10340 10350 10360 10370

10380 10390

DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA DATA

Fig. 4. An example

2,458."Which will have the lower freauencv . . 2;524;"vibration, HCl or DCl?" 4,4 7,6 0,27,"HCl" 0,2?,"HCL" 0,27,"hcl" 0 28 ~~Dc~~~ 0;28;"DcL"

of "

0,28,~*dcl~~

U,5

of the use of mstruction

codes for response matching audio tape.

and branching

on the

Audio-enhanced

CAL and computer

controlled

audio-instructlon

39

requested. This facility is convenient if a student had previously used the package but had not completed it. or if only a section of the teaching sequence is required. Sometimes when branching is used amongst the DATA statements it is necessary to skip a block of DATA statements for some routes. This can be achieved by means of the coding DATA 9. n which causes the pointer (indicating the next data statement to be processed) to be set to the current value plus n. Finally. the instruction code which terminates the teaching sequence is DATA 99. 0. This causes the tape recorder to rewind and the computer enters the idling sequence. as defined for code DATA 8.0. The control program. given in Appendix A. is essentially composed of three sections. The first reads the complete set of data statements and transfers the data codes into arrays so that random access to any data statement code can be obtained. This section also identifies the start of each frame (as Indicated by a DATA 6. n codes) so that the user may enter the teachmg package at any frame he wishes. The second section is simply a control loop which interprets each data statement code in turn. The data statement to be interpreted is identified by means of a pointer (II). Initially II has the value 1 corresponding to the first data statement. Having interpreted and executed the code defined by this data statement. II is incremented and the next data statement code is processed. This sequential processing is repeated unless the data codes themselves require non-sequential operation. The third section is made up of separate blocks each associated with the interpretation of a data statement code. After interpreting and obeying the instructions required for a particular code. execution continues with the second program section described above. after incrementing the data statement pointer Il. Full details of these program blocks can be obtained from the listing and explanatory remarks contained in Appendix A. frame

COMPUTER

CONTROLLED

AUDIO-INSTRUCTION

Computer controlled tape recorders have a part to play in audio tape programs for educational work. A wide range of commercial audio programs is available [lO.l l] and many educational establishments have produced “in-house” material which is usually available for use by others [ 12.131. One problem with the use of conventional audio-tape programs is the linear mode of presentation of material. In such systems the students hears all the material on the tape irrespective of his needs. The situation is improved by allowing branching amongst the blocks of audio material. We have increased the flexibility of use of the computer control tape recorder described in the context of AECAL above to allow such branching. For this application we have used a single board micro-computer with a hexadecimal keypad and a six-digit seven segment LED display panel. The design of the computer program and the organisation of the teaching material are closely related. In order to develop demonstration branched audio tapes we have adopted the scheme shown in Fig. 5. The teaching material is split up into a number of distinct teaching points. each of which is covered by a separate section of the package. which we call a frame. Typically a program comprises 10-15 frames and lasts from 20 to 30min of playing time. Each frame begins with an information block on the tape accompanied by illustrative material in a workbook. This block concludes with a diagnostic question designed to test the student’s comprehension of the material. We have opted for a multiple choice format. The tape recorder halts under computer control and by means of its seven segment display panel the computer signals that the student is required to respond. He does this by pressing one of the four keys. A. B. C or D of the computer’s hexadecimal keyboard. If the response is incorrect. the tape recorder winds rapidly to an appropriate block of remedial material and plays it. The student is then invited to respond to the question again. If the response is correct a short block reinforcing the answer is played. after which the computer automatically selects and plays the information block of the next frame. At the end of the last frame the computer stops the tape and displays an “end of package signal”. The controlling program which has been written in the INTEL systems implementation language PL M is listed in Appendix B. PL’M was chosen because of its structured nature and the fact that it produces concise object programs. The main program calls a number of external routines i.e. inputting from the SDK-85 keyboard. outputting to the sev’en segment displays. a time delay, dumping data onto cassette tape and loading from tape. The keyboard-scan. display and delay routines made use of routines which were already available in the SDK-85 monitor ROM. The object code derived from the PLiM program. together with the software for the tape recorder interface. was stored in EPROM. Each teaching package has a data set which defines the correct responses and the tone burst numbers which mark the start of the various types of audio block. The

K.

40

MILLERor ui

lnvlte Response

Comment (Correct

Fig. 5 Organisatlon

on 0 answer)

of the teaching

material

withm the frame.

data structure for each frame is shown in Table 2. This data has to be stored on the master track at the beginning of the tape as shown in Fig. 2(b). The data is first placed in RAM using the facilities of SDK-85 monitor and then dumped onto tape using the tape dump routine[9]. The start of the first block of audio commentary on the master track is marked by means of the first tone burst on the second track. The main routine of the program was written with the assumption that a correctly formatted tape will be placed in the cassette recorder and the tape mitially rewound.

Table

2.

(a)

Number of Frames (N) Data block. Frame I Data block. Frame 2 Data block. Frame N Data structure fnr Frame t Tone burst number for thr start of Frame 1 Correct answer for Frame 1 Tone burst number for comment on 4nswer (Frame I) Tone burst number for comment on Answer (Frame i) Tone burst number for comment on Answer (Frame I) Tone burst number for comment on Answer (Frame i)

Ib,

Data

structure used for .ludio-mstructwn

computer

controlled

.4 B C D

Audio-enhanced

CAL and computer

controlled

41

audio-instruction

The first thing the program does is to set play and call up the external routine which loads the data structure. The tone burst corresponding to the start of the first frame is then sought by calling the procedure PLAYBLOCK. This procedure merely winds or rewinds the tape to locate the tone burst which marks the start of the required audio block. Because of the overshoot of this tone burst a small amount of “hunting” has to be undertaken to set play at precisely the correct place on the tape as is apparent from the comments in the listing. Having located the correct point ori the tape. the play mode is selected without muting. During the search for this point the audio output is muted as with the AECAL application to avoid exposing the user to the high pitched whine otherwise heard during rapid winding operations. At the end of the information block the PLAYBLOCK procedure halts the tape and the main program calls the procedure GET RESPONSE. which outputs a signal on the seven segment displays (FFFF). to indicate that a response is required. and then scans the keyboard for a response. In some situations not all four responses (A. B. C and D) are required by the author. in which case the tone burst number corresponding to the unused letters (e.g. C or D) are set to 255 in the data set. The keyboard is continually scanned until a valid response is made by the student. Once an acceptable response is obtained. the appropriate comment block is played. If the response is correct then the information block of the next frame is located and played. but if it is incorrect then the student is invited to respond again. The program. as written. assumes that the frames are to be executed in the order that they are placed on the tape. In our experience of preparing demonstration packages. the restriction of branching to within a frame is not a serious limitation. The above sequence is repeated whilst the current frame number is less than the number of frames defined by the data structure. For N frames. the last frame is processed when the variable CURRENT has the value N - 1. because the frames are numbered 0 to N - 1 in the program. In order to use the system the student has to load and rewind the tape and start execution of the program which is stored in EPROM. From that point he can then ignore the tape recorder controls and concentrate on the commentary and workbook.

PREPARATION THE

OF

COMPUTER

AUDIO

CONTROLLED

MATERIAL

FOR

USE

WITH

AUDIO-INSTRUCTION

The teaching material is first organised to give a series of frames. each with the format shown in Fig. 5. A conventional workbook may be used to provide visual material to which the information. question and comment blocks of each frame may refer. When the commentary for these blocks has been prepared it is recorded on the master track of the tape. frame by frame. in the conventional way. except that the recording is started after the end of the digital information block (see Fig. 2b). As with the AECAL system. an orthodox language laboratory booth is used to add the locating tone bursts on the student track. The operator listens to the master track and at appropriate points adds these tone bursts (duration about 1 s) by operating a commercially available I kHz oscillator plugged into the student’s microphone socket.

THE

CURRENT

POSITION

(i) AEC.4L As part of revision study prior to examinations. several students have tried out the new technique of audio-enhanced computer assisted learning. Because we had only one set of equipment. only a few students could use the system in the time available. Each student was given a test before using the teaching package on Molecular Vibrations. The student’s responses were not corrected at this stage. Immediately after completing the teaching material. each student was tested again using the same questions. With only a few students involved in the trials. few conclusions can be drawn. It is. however, interesting to note that all the students dramatically improved their score in the post-test compared with the pre-test. Each student was asked to fill in a questionnaire about his attitude to the technique. All the students reported favourably on the experience and thought it could be a useful teaching method. Observation of the students using the material showed the necessity for the replay and stop facilities. Furthermore. the focusing of the student’s attention on the screen whilst the commentary was being played. followed by an enforced break at the end of the frame to update the workbook. seemed a successful approach.

This work has now reached the stage at which the prototype modified TCR 5600 cassette recorder is operating under the control of an INTEL SDK-85 micro-computer. This recorder winds forwards and backwards very rapidly and we have found that delays are seldom more than 2 or 3 s as the machine by-passes comment blocks whxh are not required in a particular path through the teaching package. So far we have only produced a few packages. chiefly to test the system. Nevertheless they have been designed with real educational objectives in mind and the simple trials which have been possible with the prototype system suggest that there will be real educational advantages. .~~I,r~o~~/rdymlc,nr.~~~ We gratefully and Tandberg AS obtained. (AECAL

ackno\4ledge collaboration and support (Oslo. Norway) from whom detatls of a tape recorder is now a registered trade name of Tandberg Ltd.)

from Tandherg Ltd (Leeds. U.K.) suitable for 4EC4L work can he

REFERENCES Hoye R. E. and Wang A. C. reds) /tt(i~j\. to Compru BUM/ L~~rr-~~im~. Educational Technology Publicatlons. U.S.A. (197’) Bitzer D.. The wide world of computer-bassd education. Itlrir~cc.\ irk Co~~p~rfr,r\ (Edited by RuhlnotT M. and Marshall C. Y.). Vol. 15. 239 pp. Acadetmc Press. New k.ork (197ht. Alpert D.. T/w Pluro Sptm UI C’w. p. 1x1. MorrIson F.. Plnnnin g a laqe scale Computer Assisted InstructIon Installation. the TICCIT experience. p. 187. P,ocwrlin+q.\ I)\ r/w I F/P 31d Wwltl Cur~frrrncr ON Cov~purers iu Erlucur~o~r (Edited bq Lecnrme 0. and Lewis R.I. p. 187. North Holland. .4msterdam (19751. National Development Programme in Computer Assisted Learning: ProJect Summaries and Program Index: Council for Educational Technology for the United Kingdom (19771. .Ayscough P. B. and Morris H.. Conrp~rr. Ed~rc. 2. XI (1979). Sleeman D. H.. The design and functron of terminals In computer based learmng network. Proc~cwlimqs c!t Cornp~r~o- Grtrplric~sSJ mpo.~i[rm. Brunei U mversity (U K1 ( 19761. Revov 4udiocard Teaching System. Revox ELA -\G. AV Ditlbion. Althardstrasbe 116. CH-XI05 Regensdurf-Zurich. Yarvood P J.. A computer Interactive qstem for use In teaching and assessment. .M.Sc. Thesis. Lintverslty uf Exeter I 19V’l. Wharton J.. Intel Application Note AP-29. Intel Corporatwn. Santa Clara. C.4 I 19771. C’hemlstr) Cassettes. The Marketing Department. The Royal Society of Chemistry. Burlington House. London WVI OBN. Ensland. AC’S Audio Course Catalogue. American Chemical Soclet!. Education Dlvlhlon. I I55 16th Street N.W. WashIngton. DC 20036. L’.S.A. Miller K.. Norton K. and Servant D. M.. Muc. C&w 16. 109 (1979). Higher Education Lcarnlng Programmes Information Service Catalogue. Britibh UniLersittes Film Council Llmited. I8 Dean Street. London WI V 6AA. England.

Audio-enhanced

CAL and computer controlled audio-instructlon

APPENDIX

LISTING

80 81 s8: 04 s8: ii 89 f 99 100 101

102 103 104 105 106 107 108 109 110 111 112

113 114 115 116 117 118 119 120 121 124

125 126 130 140

150 160 170 180 1go 200 210 220 230

THE

AECAL

A

CONTROL

RM

44ff444**44*44444444444444444444444444444444444444444444444444

REM

4

REM

4

REM 4

8;

OF

REM

43

PROGRAM

4

Audio-enhanced Computer Assisted Learning control

program 4 4

4444444444444444444444444444444444444444444444444444444444444

REM REMPrincipal author codes for data statements: REHDATA1 ,O : await response then clear the screen RM DATA2,n,%tringn : print string at screen position n RM DATA3.n : An animation sequence of n pictures. Each the data defining each picture is headed REM -. by DATAj,k where k indicates the no. of REM imnediately following DATAstatements which REM define the picture and .j is an integer which REM determines the relative-time for which the RM picture is held. (j E 1.2 or 3 typically) REM REMDATA4,n :-require cassette playe; to execute function n where n = 1 to 5 with the following meaning, REM 1 - set play, 2 - set rewind, 3 - set wind REM 4 - set stop, 5 - wait for detection of a REM tone burst. REM Rm DATA5,n : start n th user defined simulation block max. of 6 blocks available Wart lines REM for blocks 1 to 6 respectively are statement REM Nos. 3010.3510.4010.4510.5010.5510. Each RR4 blocky to &d with Ci, TO 520). REM REMDATA6,n : Locate the nth tone burst and set play REMDATA7,n : heads a set of n data staments which define the n alternative responses.Each poss.response REM REM has a DATAstatement of the format DATAk,m,%tring”, where the string is a REM possible response, m is the tone burst No. REM which marks the start of the appropriate RPI audio comment block and to allow branching RP( execution continues with the k+l DATAstatement REM after the set of n-involved in the matching. RM REMDATA8,0 : enter an idling routine which repeatedly displays AECAL. RM REMDATA9,n:Sets the pointer (II) to next DATAstatement REM to be interpreted to curretit value+n RM DATA99,0: Terminate run and go to idling block REM Configure I/O of 8255 programmable interface RM CMD“T” : REMhalt real time clock DEFINTA-Z DIM CD(280) ,NM(28O),A$(160) DIM SA(28Oo),WlOO),LX(25) OUT199,138 OUT198,0:CLS COSUB6800 :FOR I=1 TO 500:NEXT:GOSUB 6810:REM rewind PRINlY’his prograaae can only be used with a suitable cassette” PRINTVecorder.” PRINT:PRINT:PRINT:PRINTWhilstyou check that everything is ready” PRINT:PRINT”Iwill load the data.” - - It will only take a minute - - -” PRINT:PRINT:PRINT:PRINT:PRINT”-

K.

240 250 260 261 262

MILLER

t’f ul.

C=O:CC=l XN=O c&+1

REM RM Read in data statements.Store firstcode in array CD are put intoA8 263 REM and secondcode in NM.Strings the corresponding 264 REM and the for the c th data statement by the 265 REM stringis in the elementof a$ indicated 266 REM contentsof SA(c). 267 ;$ CD(C)NH(C) CD(C)=7THEN 300 % IF CD(C)=Z'OR COT0 340 :zz IF CD(C)=7THEN 320 340 310 READA$(CC):SA(C)=CC:CC=CC+l:GOTC PP=lTO NN:READCD(C+PP),NM(C+PP),A$(CGPP) 320 NN=NM(C):FOR PP:C=GNN:CC=CC+NN+l 330 SA(C+PP)=CC+PP:NEXT 340 IF CD(C)<>6THEN 360 XN=XN+l:Qlf(XN)=C THEN 260 $0" IF CD(C)<>99 49a RF?4 499 REM 500 REM Loopingthroughthe data statments starts here is the next to be 502 RM The II th DATA statement 503 REM interpreted. REWINDING 510 CLS:FOR111 TO 30:NEXTI:II=O:P9=l:TB=O:REM 515 IS=0 520 II.II+l 530 IF CD(U)=99 THEN 510 :RM enter idling block IS=11 540 IF CD(II)=6 T!iEN 541 RM To allow the repeatof a framestorethe data numbe;whichmarksthe startof the 542 RE3lstatement 543 REM currentframe in IS. 549 REM 550 REM Branch to block appropriate to the code in CD(I1) 552 560 ~~CDUIJ COTG 1010 1500 1550 2010 2990 ,601O,701O$3510,a912 570 PRINT"dataerrorin'dataiine NjII;:Eb the run if a non-existent code 572 REM The aboveterminates 573 REM is used. 1000 REM 1001REM Progrm blockfor DATA 1 1002REM 1010COSUB1210:RM scankeyboard,resultin g$. 1020 IF G$=V THEN COT0 1050 1030CLS:GOSUB 8200 :REMdraw border 1040GOT0 520 :RM end of DATA 1 blockif no repeatneeded 1050 II&S: REM To repeat frame reset r1 to that of first. 1051 RM DATAstatement in frame (Marked by DATA6,n code) 1060CLS:GOSUB 8200 :REMDraw a screenborder 1070Go-m 540 : REMEnd of DATA 1 block,when repeatneeded 1199 1200 1201 1210

RM

REM This routine offers

RM

the chance to repeat a frame

PRINT@96O,"Press a key afterreferring to or updatingyourwork book." 122%GOSUB6830 :RM STOP the cassette player

1230 G$=” ”

.4udho-enhanced CAL andcomputer controlted audio-mstructlon

1235 REM Wait for a keyboardreply 1240CtIh'KEY$:IF G$=""THEN 1240 1250 PRINT@960," 1270 Ran 149Q RM 1491 REM 1492 RM Programblockfor DATA Z,n,"string" 1495 REM (printstringat screenlocationn) 1500GOSUB1520 1510GOT0520 1520XC=SA(II) 1530 PRI~~M(II~,A$(XC); 1540 REI'URN 1547 REM 1548 RM block(DATA 3,n for n pictures) 1549 REM Startof animation storeno. of data statement whichstartsthe 1550BK=II:REM RM animation sequence 155'1 ,t 1555 P$=R animation sequencerepeated 7 times 1560FOR M&l TO ?:RE?4 1710 II=BK loopingover each picture 1720FOR M=l TO NH(BK):REM II=II+l PS=II:RM storeDATA statement no. for the start :;;s" 1736 RM of the H th picture. 1740FOR LL=l TO AN(II) 1745 REM This printsthe set of stringswhichmake up the 1746 RM m th picture 1750 II=II+l 1760XC=SA(II):PRI~~(II),A$(XC); 1765LX(LL)=LEN(A$(XC)) 1770NEXTLL 177522=5O*CD(PS) FOR XX=1 TO ZZ:NEXT:RMTIME DELAYTO HOLD PICTURE RM Now erasethe m th picture. 1783II=PS 1784FOR LL=l TO NMPS) 1785 11=x1+1 1787 R$=LE?=T$(P$,LX(LL)) 1790 PRINT@NH(II),R$; 1795NEXTLL 1800 NEXTM: REM Startnext picture 1810 NEXTMM :REMrepeatani&tion sequence 1820GOT0520 1999 REM 2000 REM Cassetteplayercontrolblock(DATA4,n) by 2 nd digitin DATA statement 2001 RM Actiondetermined 2002 REM 2010 ON NMII) GOT0 2020 ,203O,204O,205O,206O 2020GOSUB6800 :GOlU520 :REMset play 2030 GOSUB6810 :GOTO520 :REMset rewind 2040 GOSUB6820 :GOTO520 :RM se% wind 2050 GOSUB6830 :GOlU5X, :RM set stop 2055 RM What followsmonitorsfor a toneburst 520 2060 GOSUB6400 :IF CD(II)=4THEN lB=TB+l:GOlU 2985 REM 2986 RM Next block is for user definedsimulations

45

K. MILLER

46

r’f d.

2990 ON NM111 COT0 3010,3510,4010,4510,5010,5510 2992 PRINT"Simulation n;NM(II);w does not exist" 2994 PRINT"Error at data statement counterD l';II:STOP 3000GOT0 520 3005 REh The 1st simulation startsat 3010 3008 RM This drawsa graphof firstlya quadratic 3009 RM functionthen a mot-se type function. 3010 CLS:PRINT@ 83,"POTENTIAL ENERGYCURVE"; BOND LENGTH ---> "; 3020 PRINT@384,"[";:PRINT@448,"V";:PRINT@980," 3030 FOR Js3 TO CZ:SET(5,J):NEXT 3040FOR I=5 TO 120:SET(I,42):NEXT 3050 FOR l-T=1 TO 2 3060 IF 'IT=1 THEN LO=15ELSELO=22 3070 IF l'T=l THEN ULzlOOELSE ULz120 3080 FOR XX=LOTO UL:ZZ=(58-XX)[2 3090 IF IT=1 THEN YY=39-O.O5*ZZ 3100 IF TT=2 THEN W=39-3g*(l-EXP(-(xx-58)/25))[2 3110W=INT(YY) 3120 IF W<4 THEN3140 3130 SET(XX,YY) 3140 NEXT XX 3150 IF TTs2 THEN 3170 3160 GOSUB 6400 :TB=TB+l:RM

wait for a toneburstbefore 3161 REM startingto draw the 2nd curve. 3170 NEXTTT 3180GOT0 520 3510 REM 2nd user definedblockhere 4010 REM 3nd user definedblock 4510 REM 4rd user definedblock 5010 REM 5th user definedblock 5510 REM 6th user definedblock 5990 PRINT"No GOT0 520 at end of user definedblock";NM(II) 5991 STOP 6000 REM 6001 REM Tone burstlocator 6002 REM 6010 GOSUB6020 :COTO520 6015 THIS BLOCKCAN IS ALSO USED AS A SUBROUTINE 6018 RM Put mute on,setmute flag to 0, NM111 is 6019 RM tone burstsought,TB is toneburstcounter NM(II)>TB THEN6110 6020 FP=O:OUT196,O:IF THEN 6050 6030 IF NM(II)
winding

monitorfor toneburst

Audio-enhanced CAL and computercontrolled audio-lnsrructlon

6130 TB=TB+l:IFNM(II)>TBTHEN 6110 :REM wind more 6140 COSUB 6830 :GOSUB6810 :REM stop, then rewind 6142 REM stop rewindingon detectingtone burst 6145 FOR I=1 TO 140:NEXT 6150 X.INP(198)AND 128: IF X=0 THEN 6150 6155 REM set play,delayand wait for detection 6156 REM of tone burst again. 6160 GOSUB 6800:FOR I=1 TO 50:NEXT: :GOSUB6400 6165 RM Put mute off and set mute flag to 1 cancel mute and leave playing 6170 OUT 196,l:FPzl:RETURN:REM 6175 REM 6295 RP1 6300 REM Pulse Terminator.Returns tape recordercontrol 6301 Rm signal to 0 to end a +ve going square pulse. 6310 FOR I=1 TO 2:NEXT: OUT 198.0:RETURN 6400 RM Tone burst detector _ ’ 6401 RM When FP=O then mute is on and the call to this 6402 RM routine is from the tone burst locator. 6403 REM If the student recaps during play there is the 6404 RM of recappingover a tone burst. In this case 6405 REM FP=l the recap is overiddenby this routine 6410 IF FP.1 THEN 6450 6420 X=INP(198):X=XAND 128:IF X=0 THEN 6420 6430 X=INP(198):X=XAND 128:IF X=128 THEN 6430 6440 GOTO 6680 :REM exit when not recap case 6450 X=INP(198):X=XAND 128:IF X=0 THEN 648O:REM no tone burst 6451 RP1 yet, check for recap request 6460 XzINP(198):XzXAND 128:IF X-128 THEN 6460 6470 GOT0 6680 OR (M$=V") THEN 6500 6480 M$=INKEY$:IF(M$=l's") 6490 GOT0 6450 6500 GOSUB 6830 :REM stop cassette 6510 IF MS=VrrnTHEN 6550 :REM recap wanted 6515 REM scan keyboard for reply to restart 6520 FOR I=1 TO 20:NEXT I 6530 MS=INKEY$:IFM$="" THEN 6530 6540 GOSUB 6800 :GOTiJ 6450 6550 OUT 196,O:GOSUB6810 6560 I7zl X=INP(198):X=XAND 128 :;z IF X=128 THEN 6620 6590 I7=17+1:IF17<10 THEN 6570 6595 RM terminaterecap,setstop then wind a bit for overshoot 6600 GOSUB :GOSUB6820:FOR I=1 TO 10:NEXTI 6605 RM set play, and delay before monitoringfor tone burst :FOR I=1 TO 80:NEXT 1:OUT 196,1:GOTC6450 6610 GOSUB 6620 GOSUB 6830 :GOSUB6820 :RM set stoo then wind 6630 FOR I=1 TO 10:NEXT I 6640 GOSUB 6800 :FOR I=1 TO 5 : N!ZXT1:REM set play, wait for 6641 RM tone burst then cancel mute 6650 X=INP(198):X=XAND 128:IF X=0 THEN 6650 6660 XzINP(198):XzXAND 128:IF X=128 THEN 6660 6670 OUT 196,l:GOTo6450 6680 RFIURN 6790 RM 6791 REM Cassette control routines 6800 OUT 198,l:GOSUB6300 :RETURN:REMplay

K. MILLER tr d

6810 6820 6830 6840 6999 7000 7001 7010 7020 7030 7040 io50 7055 7060 7070 7080 7090 7100 7101 7110 7111 7112 7120 7130 7140 7145 7150 7160 7170 7180 7190 8000 8005 8010 8015 8020 8199 8200 8210 a220 8230 8240 8500 8510 8520 8525 8530 8535 8540 8545 8550 8555 8560 8565 8570 8575 8580

OUT lg8,2:cOSuB 6300 :RETURN:RM rewind OUT 198,4:GOSUB 6300 :RETURN:RM wind OUT 198,8:GOSUB 6300 :RETURN:REM stop FOR I=1 TO 20:NEXT:RETURN REM REM Response check block REM KK=II Pw NU=NM(II) PRINT@8%. “WAT IS YOUR ANSWER"::K$=" ":INPUT KJ PRINT@896;P$; RP1 looping over possible answers FOR I=1 TO NU II&K+1 NLSA(I1) IF KS<>A$(NN) THEN 7130 GOSUB 6020 :REM locate appropriate tone burst for students RM response II=KK+NU+CD(II):RM calculate next data statement no. REM to be executed after response matching (allows REM branching) GOT0 520 NEXT I II&K REM print permitted responses If no match PRINT@896,"TBE ALLOWED RESPONSES ARE:/"; FOR 1-l TO NU:NN=SA(KK+I):PRINTA$(NN);“/“; NEXT I FOR J-1 TO 3000:NEXT:PRINT@8%,P$;:REM show answers GOT0 7040 :REM invite another response REM subroutine to draw lines REM horizontal FOR 1~x1 TO X2 STEP N:SET(I,Y):NEXT:RETURN RM vertical FOR I=Yl TO Y2 STEP N:SET(X,I):NEXT:RETURN REMdraws a border on the screen Y=o:x~=~:x~=~~:N=~:GosuB 8010 X=12i':Yl=O:Y2=41:GOSUB 8020 Y=41:X1=127:X2=1:N:-1:GOSUB 8010 X=l:Y1=41:Y2=0:N=-l:GOSUB 8020 RETURN REM rem idling block displaying AECAL GOSUB 8200 Y=15:X1=8:X2=16:N=l:GOSUB 8010 Y=15:X1=18:X2=26:N=l:GOSUB 8010 Y=15:X1=28:X2=36:N=l:GOSUB 8010 Y=15:Xl=38:X2=46:N=l:GOSUB 8010 X=8:Y1=15:Y2=29:N=l:GOSUB 8020 X=16:Yl.l5:Y2=29:N=l:GOSUB 8020 X=18:Y1=15:Y2=29:N=l:GOSUB 8020 x=28:Y1=15:Y2=29: N=l:GOSUB 8020 X=38:Y1=15:Y2=29:Nzl:GOSUB 8020 X=46:Y1=15:Y2=29:N=l:GOSUB 8020 X=48:Yl=15:Y2=29:N=l:GOSUB 8020 Y=22:X1=8:X2=16:N=l:GOSUB 8010 Y=22:X1=18:X2=26:N=l:GOSUB 8010



Audio-enhanced CAL andcomputer controlled audio-Instruction

8010 8585 Y=22:X1=38:YZ'r46:N=l:GOSUB Y=29'zXl=i8:X2=26:N=l:GOSUB 8010 Y=29:X1=28:X2=36:N=l:GOSUB 8010 Y=2~:X1=48:X2=56:N=l:GOSUB 8010

::$i 8594

8610 8620 8630 8640

FOR NNr488TO 498:PRINT@NN,"?";:NEXT NN PRINT@8%,"Press a key"; 17~1 IF INKEYtz"" THEN 8660 ";:GOSUB8680 :GOTO520 PRINT@8%," ii::: 17=I7+1:IFI7<200 THEN 8640 CLS:GOSUB 8200 :GOTO8520 :RM if no replyredrawAECAL ii;; RPI REM This routineallowsrandomframeaccess i:Li PRINT@8%,"Starting at the beginning? (y or n, then enter)"; 8690 INPUTGt 8700 IF Gt"y" THEN GOT0 8810 8710 IF G$?W THEN 8740 PRINT@8%,Vypey (foryes) or n (forno) "i kg: GOTQ8680 8740 PRINT@%,"inputthe framenumberand pressenter "; INPUTKK: i:z: IF KKXI AND KKW THEN 8790 PRINTf?8%,"There is no such framenumberI “i i:z FOR I=1 TO 2000:NEXT 1:GO'l-Q 8740 II=QU(KK+l)-1:REM obtaindata statanent no. to start ss';;;RM the required franc 8200 :RM draw framethen seektone burst 8800 CLS:GOSUB 8810 RETURN 8910 REM DATA 9,n: Branching amongstdata statements REM resetpointerto next data statement 8912 II=II+NM(II)-1: to be interpreted. 8915 RM 8917 GOT0 520 8920 RM 8930 REM 8999 RM data statements starthere 9000DATA 8,O:RM this is alwaysthe firstone

49

K.

MILLER

cl d.

APPENDIX

PL,M

LISTING

COMPLITER

OF

THE

CONTROLLED

B

CONTROL

PROGRAM

FOR

AUDIO-INSTRL;CTION

MAIN$MODULE: ~~i*****************‘*******************************~******************* i il Program to control a modified Tandberg TCR 5600 cassette tape l l

recorderso that it functionsas an "intelligenttape recorder" for educationaland training purposes

l l l l

* l ***********************************************************************/ /*******************?*************************************************** Variablesused in this module ***********************************************************************/ DECLARE NO$OF$FRAMESBYTE, FRAME(20!STRUCTURE(INFORM BYTE, CORRECT$ANSBYTE, COMMENTBL(4)BYTE 1; /* The data structureof the program consists of 20 frames, each frame being divided up as follows:Tone burst number for the start of informationblock for frame -INFORM -CORRECT$ANS Correct answer for frame (A,B,C or D) -COMMENTBL(O) Tone burst number for start of comment block for answer A II 11 11 n I, I, II ,I 1, 11 B -COMMENTBL(l) II II ?I 11 11 II ,1 I, ,I 11 C -COMMENTBL(2) 11 If 11 I, 11 II (1 I, 1, II D -COMMENTBL(j) A tone burst number of 255 indicatesthat there is no comment block for this response i.e. it is an invalid response to the question. Access to a given part of the data structureis given thus:FRAME(I).INFORMcontains tone burst number for the start of information block for frame(i) FRAME(I).CORRECT$ANS contains the correct answer for frame(i) FRAME(I).COMMENTBL(2) contains the tone burst number for the start of l/ comment block for answer C. DECLARE CURRENT BYTE, /*Current number of frame being studied*/ BLOCK$REQUIREDBYTE, /*Tone burst number correspondingto block being searched for on tape l/ PRESENT$BLOCK$NUMBER BYTE , /*Indicatesthe block number where the tape head is located*/ RESPONSEBYTE, /*value input from keyboard by student in response to question on tape l/ RELSRESPONSEBYTE, /*relativeresponse value such that a keyed in value of "A" correspondsto 0, "B" to 1 etc l/ ANSWER.$CK BYTE, /*Flag set if student answers correctly*/ VALID$RESPONSEBYTE, /*Flag to indicate a valid response to the question i.e. if question says answer A,B or C and student presses D key then this is invalid*/ FORWARD BYTE, /*Flag to indicate tape moving in forward direction l/ TRUE LITERALLY 'OFFH' , FALSE LITERALLY 'O', /*Variablesto enable flags to be initialised*/ ERFLAG BYTE PUBLIC , /*flag to indicateerror conditionon reading data structure into memory from cassette*/ COUNT BYTE; /*variableto control time delays*/

Audio-enhanced

CAL and computer controlled audio-mstruchon

51

/*44444444444444*4444444444444444444444444444444444444444444444444444444

Procedures

to control

functions

of tape

recorder

44444444444444444444444444444444444444444444444444444444444444444444444/

CE’IDS: PROCEDUREEXTERNAL;END C!IlDS; /4External procedure to use cassette interface to load data structure from start of tape into RAMmemory 4/ TIMESDELAY:PROCEDURE EXTERNAL;END TIMEtDELAY; /* An adjustable time delay just sufficient to operate tape recorder controls a/ /4

This tape which port

section contains the basic I/O routines to operate the Tandberg recorder. The SDK-85 board provides a programmable I/O IC (8155) is configured so that one port is an output port and another is input. The ports are configured as fol1M.s:

PORT 20H

control word port- this requires the following OOOO1llOB so that port A is made an input port is made an output port

PORT 21H

PORT A- BIT 0

PORT 22H

PORT R - BIT 0 a negative

input

BIT 3 11 BIT 4 II

from tone burst

It I,

pulse ,I II

puts

detector

21 13 14 11 12 9

Input from tone burst Play Rewind Wind Cancel1 muting Stop

circuit

recorder

in play mode n rewind mode n wind mode causes cancelling of muting stops operation of recorder

The pins from these ports are connected to a socket this socket is located at position 54 on the board. are brought out to the tape recorder as follows PIN PIN PIN PIN PIN PIN

control word and port B

on the SDK-85 The following pins

detector

4/

DETECTtPULSE: PROCEDURE; DECLAREPULSEBIT BYTE; DECLAREREADPULSELITERALLY ‘PULSEBIT=(INPUT(2lH) AND 1)‘; READPULSE; DO WHILE PULSEBIT=O; READPULSE;END; /4 Wait until start of tone burst detected */ DO WHILE PULSEBIT- : READPULSE:END: /4 Wait until end of tone b&t detected and then return END DETECVPULSE; INITIALISE: PROCEDURE; OUTPUT(20H)=00001110B; /aSet up control word to configure ports4/ OUTPUT(22H)zOH; /* make all outputs high as negative pulses activate functions 4/ END INITIALISE;

a/

K. MILLER

er cd.

PLAY: PROCEDURE; OUTPUT(22H)rlH; CALL TIMEtDELAY; OUTPUT(ZZH)=OH; FORWARDzTRUE; END PLAY; REWIND: PROCEDURE; OUTPUT(22H)s2H; CALL TIMELDELAY; OUTPUT(22H)zOH; FORWARDzFALSE; END REWIND; WIND: PROCEDURE; OUTPUT(22H)=4H; CALL TIMEBDELAY; OUTPUT(22H)zOH; FORWARD=TRUE; END WIND; STOPTAPE: PROCEDURE; OUTPUT(22H)zlOH; CALL TIME$DELAY; OUTPUT(22H)zOH; END STOPTAPE; CANCELtMUTINC:PROCEDURE; OUTPUT(22H)zOgH; END CANCEL$MUTING; MUTING$ON:PROCEDURE; OUTPUT(22H)zOH; END MUTINGON; /* The followingroutines are used to control the 7 segment displays and the keyboard on the SDK-85 board. KBD - inputs one character from the keyboard, DD - displays a 2 digit value in the data diplay section and DA - displays a 4 digit value in the address display section l/ KBD: PROCEDUREBYTE EXTERNAL; END KBD; DD: PROCEDURE(VAL)EXTERNAL;DECLARE VAL BYTE; END DD; DA: PROCEDURE(ADDRVAL) EXTERNAL;DECLARE ADDRVAL ADDRESS; END DA; /*********************************************************************** Procedurewhich monitors for the presence of a tone burst - If a tone burst is detectedwhen the tape is going forward then the PRESENT$BLOCK$NUMBER is incrementedand if the tape is rewindingthen the PRESENT$BLOCK$NUMBER is decremented ***********************************************************************/ MONITORtFORIPULSE: PROCEDURE; CALL DETECTdPULSE;/*Use external routine to pick up tone burst*/ IF FORWARD THEN PRESENTtBLOCK$NUMBER=PRESENT$BLOCK$NUMBER+1; ELSE PRESENT$BLOCK$NUMBER=PRESENT$BLOCKtNUMBER-1; END MONITOR$FOR$PULSE;

Audio-enhanced CAL and computercontrolled audio-instruction

/4444444**44444444444444444444444444444444444444444444444444444444444444

Procedureto find a given block on the tape and play it. 44444444444444444444444444444444444444444444444444444444444444444444444/

PLAYBLOCK:PROCEDURE ; IF BLOCK$REQUIRED>PRESENT$BLOCK$NUMBER THEN DO; DO WHILE BLOCKtREQUIRED> PRESENT$BLOCK$NUMBER; CALL WIND; CALL MONITOR$FOR$PULSE; END; CALL REWIND; /*Having gone passed tone burst requiredback track to a point just in front of tone burst*/ CALL MONITOR$FOR$PULSE; END; ELSE /*as we are too far up the tape@/ DO; DO WHILE BLOCK$REQUIRED<= PRESENT$BLOCK$NUMBER; CALL REWIND; CALL MONITORtFOR$PUISE; END; END;

/4 Skip over the tone burst marking the start of block with muting on. Remove muting and play the block until another tone burst is detected.Play a little beyond this end tone burst so that if rewind next occurs the end tone burst is not missed 4/ CALL PLAY; /4Muting autcmaticallyon l/ 14Now playing block to st.udent4/ CALL MONITORtFOR$PULSE; CALL CANCEL$MUTING; CALL MONITORtFORtPULSE; CALL PLAY; /@forcesmuting on*/ DO COUNT=1 TO 100; CALL TIMEODELAY;END; /a delay so that tape stops beyond tone burst so that tone burst is not missed on rewind operation4/ CALL STOPTAPE; END PLAYOBLOCK; /4444444444444444444444444444444444444444444444444444*444444444444444444

Procedureto get student response to a question from the keyboard 44444444444444444444444444444444444444444444444444444444444444444444444/

GETSRESPONSE:PROCEDURE: CALL DACOFFFFH);CALL DDCOFFH);/4displaypranpt4/ RESFONSEzKBD; DO WHILE (RESPONSE< 10) OR (RESPONSE> 13); RESPQNSEGBD; END; REL$RESPONSE=RESPONSE-10; CALL DA(O); CALL DD(0); 14remove prompt=/ END GETtRESPONSE;

K. MILLER

er it/

/*********************************************************************** ************************************************************************ MAIN ROUTINE ************************************************************************ ***********************************************************************/ CALL INITIALISE;/*Initialiseports and state of tape recorderl/ /Fet data structurefrom the tape into RAM memory l/ CALL PLAY; ERFLAG=O; CALL CETDS; IF ERFL.AG 0 0 THEN DO; CALL STOPTAPE;CALL DD(O1); HALT; END; /*Failure to load data structurefrom tape- manual intervention required to rewind tape and start program again- new version with extra control of tape recorderwill improve on this l/ CURRENT=O;/*First frame required*/ PRESENT$BLOCK$NUMBER=O; /*Yet to reach start of first block on tape l/ DO WHILE CURRENT < NOQF$FRAMES; BLOCK$RWUIRED=FRAME(CURRENT).INFORJ4: CALL PLAYBLOCK; ANSWER$OK=FALSE; VALID$RESPONSE=FALSE; DO WHILE ( (NOT ANSrlER$OK) OR (NOT VALID$RESPGNSE)); CALL GETtRESPONSE; BLOCK$REQUIRED=FRAME(CURRENT).COMMENTBL(REL$RESPONSE); /* i.e. for the current frame extract the appropriate block number correspondingto the responseobtained*/ IF BLOCKtRWUIRED > 100 THEN VALIDtRESPONSE= FALSE; ELSE DO; CALL PLAYBLOCK; VALID$RESPGNSE=TRUE; END; IF RESPONSE=FRAME(CURRENT).CORRECT$ANS THEN ANSWER$OK=TRUE; END; CURRENT=CURRENT+l; /*go on to next frame */ :% DD(55H); CALL DA(5555H); END MAINbMODULE;